@import"https://fonts.googleapis.com/css2?family=Noto+Sans+TC:wght@300;400;500;700&family=Noto+Serif+TC:wght@400;500;700&display=swap";:root{--color-primary: #2c3e50;--color-primary-light: #34495e;--color-accent: #3498db;--color-accent-hover: #2980b9;--color-success: #27ae60;--color-warning: #f39c12;--color-danger: #e74c3c;--color-zen-dark: #1a1a2e;--color-zen-medium: #16213e;--color-zen-light: #0f3460;--color-zen-accent: #e94560;--color-zen-gold: #f4a261;--color-text-primary: #2c3e50;--color-text-secondary: #7f8c8d;--color-text-light: #ecf0f1;--color-text-muted: #95a5a6;--color-bg-primary: #ffffff;--color-bg-secondary: #f8f9fa;--color-bg-dark: #1a1a2e;--color-bg-card: #ffffff;--spacing-xs: .5rem;--spacing-sm: 1rem;--spacing-md: 1.5rem;--spacing-lg: 2rem;--spacing-xl: 3rem;--spacing-2xl: 4rem;--font-family-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans TC", "Microsoft JhengHei", sans-serif;--font-family-serif: "Noto Serif TC", "Times New Roman", serif;--font-family-mono: "Consolas", "Monaco", "Courier New", monospace;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--font-size-4xl: 2.25rem;--radius-sm: .25rem;--radius-md: .5rem;--radius-lg: 1rem;--radius-xl: 1.5rem;--radius-full: 9999px;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 10px 10px -5px rgba(0, 0, 0, .04);--transition-fast: .15s ease-in-out;--transition-base: .25s ease-in-out;--transition-slow: .35s ease-in-out;--container-sm: 640px;--container-md: 768px;--container-lg: 1024px;--container-xl: 1280px;--container-2xl: 1536px;--z-dropdown: 1000;--z-sticky: 1020;--z-fixed: 1030;--z-modal-backdrop: 1040;--z-modal: 1050;--z-popover: 1060;--z-tooltip: 1070}@media (prefers-color-scheme: dark){:root{--color-bg-primary: #1a1a2e;--color-bg-secondary: #16213e;--color-bg-card: #0f3460;--color-text-primary: #ecf0f1;--color-text-secondary: #bdc3c7}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;scroll-behavior:smooth}body{font-family:var(--font-family-sans);font-size:var(--font-size-base);line-height:1.6;color:var(--color-text-primary);background:linear-gradient(135deg,#667eea,#764ba2);min-height:100vh}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}*:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:var(--radius-sm)}.container{width:100%;max-width:var(--container-xl);margin:0 auto;padding:0 var(--spacing-md)}.header{text-align:center;padding:var(--spacing-2xl) var(--spacing-md);background:#1a1a2ecc;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:var(--color-text-light)}.site-title{font-family:var(--font-family-serif);font-size:clamp(2rem,5vw,3.5rem);font-weight:700;background:linear-gradient(135deg,#f093fb,#f5576c);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:var(--spacing-sm)}.site-subtitle{font-size:var(--font-size-lg);color:#ffffffe6;font-weight:300}.zen-decoration{display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm);margin-top:var(--spacing-lg);color:var(--color-zen-gold);font-size:var(--font-size-xl)}.zen-line{width:60px;height:1px;background:linear-gradient(90deg,transparent,var(--color-zen-gold),transparent)}.main{padding:var(--spacing-xl) 0 var(--spacing-2xl)}.toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--spacing-md);margin-bottom:var(--spacing-xl);padding:var(--spacing-md);background:#ffffff1a;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:var(--radius-xl)}.search-box{flex:1;min-width:200px}.search-input{width:100%;padding:.6rem 1rem .6rem 2.4rem;border:1px solid rgba(255,255,255,.3);border-radius:var(--radius-full);background:#ffffff26;color:var(--color-text-light);font-size:var(--font-size-base);font-family:var(--font-family-sans);outline:none;transition:all var(--transition-base);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%23ccc' viewBox='0 0 16 16'%3E%3Cpath d='M11.742 10.344a6.5 6.5 0 1 0-1.397 1.398h-.001c.03.04.062.078.098.115l3.85 3.85a1 1 0 0 0 1.415-1.414l-3.85-3.85a1.007 1.007 0 0 0-.115-.1zM12 6.5a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:.75rem center}.search-input::placeholder{color:#ffffff80}.search-input:focus{border-color:var(--color-zen-gold);background:#fff3;box-shadow:0 0 0 3px #f4a2614d}.category-filter{display:flex;gap:var(--spacing-xs);flex-wrap:wrap}.filter-btn{padding:.4rem 1rem;border:1px solid rgba(255,255,255,.3);border-radius:var(--radius-full);background:transparent;color:#fffc;font-size:var(--font-size-sm);font-family:var(--font-family-sans);cursor:pointer;transition:all var(--transition-fast)}.filter-btn:hover{background:#ffffff26;border-color:#ffffff80}.filter-btn.active{background:var(--color-zen-gold);color:#1a1a2e;border-color:var(--color-zen-gold);font-weight:500}.game-count{font-size:var(--font-size-sm);color:#fff9;white-space:nowrap;margin-left:auto}.games-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--spacing-lg);margin-bottom:var(--spacing-2xl)}.game-card{background:#fffffff2;border-radius:var(--radius-xl);padding:var(--spacing-lg);transition:transform var(--transition-base),box-shadow var(--transition-base);box-shadow:var(--shadow-md);display:flex;flex-direction:column;position:relative}.game-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-xl)}.featured-badge{position:absolute;top:var(--spacing-sm);right:var(--spacing-sm);padding:.2rem .6rem;background:linear-gradient(135deg,#f4a261,#e76f51);color:#fff;font-size:var(--font-size-xs);font-weight:700;border-radius:var(--radius-full);letter-spacing:1px;box-shadow:0 2px 8px #e76f5166}.card-category-tag{position:absolute;top:var(--spacing-sm);left:var(--spacing-sm);padding:.15rem .5rem;font-size:.7rem;font-weight:500;border-radius:var(--radius-full);color:#fff}.card-category-tag[data-category=禪意]{background:linear-gradient(135deg,#6c5ce7,#a29bfe)}.card-category-tag[data-category=經典]{background:linear-gradient(135deg,#00b894,#55efc4);color:#1a1a2e}.game-icon{font-size:3rem;text-align:center;margin-bottom:var(--spacing-md);margin-top:var(--spacing-sm)}.game-title{font-family:var(--font-family-serif);font-size:var(--font-size-2xl);margin-bottom:var(--spacing-xs);color:var(--color-primary)}.game-subtitle{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-bottom:var(--spacing-md);font-style:italic}.game-description{font-size:var(--font-size-base);color:var(--color-text-primary);margin-bottom:var(--spacing-md);flex-grow:1;line-height:1.7}.game-tags{display:flex;flex-wrap:wrap;gap:var(--spacing-xs);margin-bottom:var(--spacing-md)}.tag{display:inline-block;padding:.25rem .75rem;background:var(--color-zen-light);color:#fff;border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:500}.game-meta{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-md);font-size:var(--font-size-sm);color:var(--color-text-secondary)}.play-button{display:block;width:100%;padding:var(--spacing-sm) var(--spacing-md);background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;text-align:center;text-decoration:none;border-radius:var(--radius-lg);font-weight:500;font-size:var(--font-size-base);transition:transform var(--transition-fast),box-shadow var(--transition-fast);box-shadow:var(--shadow-md)}.play-button:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.play-button:active{transform:translateY(0)}.no-results{grid-column:1 / -1;text-align:center;padding:var(--spacing-2xl);color:var(--color-text-light)}.no-results-icon{font-size:3rem;display:block;margin-bottom:var(--spacing-md)}.no-results p{font-size:var(--font-size-lg);margin-bottom:var(--spacing-xs)}.no-results-hint{font-size:var(--font-size-sm);opacity:.6}.back-to-top{position:fixed;bottom:2rem;right:2rem;width:48px;height:48px;border-radius:50%;border:none;background:#1a1a2ed9;color:var(--color-zen-gold);font-size:1.2rem;cursor:pointer;opacity:0;visibility:hidden;transform:translateY(20px);transition:all var(--transition-base);box-shadow:var(--shadow-lg);z-index:100;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.back-to-top.visible{opacity:1;visibility:visible;transform:translateY(0)}.back-to-top:hover{background:#1a1a2ef2;transform:translateY(-3px)}.footer{background:#1a1a2ee6;color:var(--color-text-light);text-align:center;padding:var(--spacing-xl);margin-top:var(--spacing-2xl)}.footer-text{font-size:var(--font-size-sm);opacity:.8}@media (max-width: 768px){.games-grid{grid-template-columns:1fr}.header{padding:var(--spacing-xl) var(--spacing-md)}.site-title{font-size:2rem}.toolbar{flex-direction:column;align-items:stretch}.search-box{min-width:unset}.category-filter{justify-content:center}.game-count{text-align:center;margin-left:0}.back-to-top{bottom:1rem;right:1rem;width:40px;height:40px}}@media (min-width: 769px) and (max-width: 1024px){.games-grid{grid-template-columns:repeat(2,1fr)}}@media print{.header,.footer,.toolbar,.back-to-top{display:none}body{background:#fff}.play-button{display:none}.game-card{break-inside:avoid;box-shadow:none;border:1px solid #ccc}}@keyframes breathe{0%,to{opacity:1;transform:scale(1)}50%{opacity:.9;transform:scale(1.02)}}.site-title{animation:breathe 4s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.6}50%{opacity:1}}.zen-decoration{animation:pulse 3s ease-in-out infinite}.game-card{overflow:hidden;cursor:pointer;border:1px solid transparent;transition:transform .3s cubic-bezier(.34,1.56,.64,1),box-shadow .3s ease,border-color .3s ease}.game-card:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);transition:left .5s ease;pointer-events:none}.game-card:hover:before{left:100%}.game-card:hover{transform:translateY(-8px) scale(1.02);box-shadow:0 20px 40px -10px #677eea66,0 0 20px #764ba233;border-color:#677eea4d}.game-icon{transition:transform .3s cubic-bezier(.34,1.56,.64,1);display:inline-block}.game-card:hover .game-icon{transform:scale(1.2) rotate(5deg)}.tag{transition:all .2s ease;cursor:default;position:relative}.tag:hover{transform:translateY(-2px);box-shadow:0 4px 8px #0003}.play-button{position:relative;overflow:hidden;transition:all .3s cubic-bezier(.34,1.56,.64,1)}.play-button:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:#ffffff4d;transform:translate(-50%,-50%);transition:width .6s ease,height .6s ease}.play-button:hover:before{width:300px;height:300px}.play-button:hover{transform:translateY(-3px) scale(1.05);box-shadow:0 10px 25px #677eea66;background:linear-gradient(135deg,#7c8aff,#8a56c4)}.play-button:active{transform:translateY(-1px) scale(.98)}@keyframes gradient-shift{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}body{background:linear-gradient(135deg,#667eea,#764ba2,#667eea);background-size:200% 200%;animation:gradient-shift 15s ease infinite}.scroll-progress{position:fixed;top:0;left:0;width:0%;height:3px;background:linear-gradient(90deg,#f093fb,#f5576c);z-index:9999;transition:width .1s ease}@keyframes ripple{0%{transform:scale(0);opacity:1}to{transform:scale(4);opacity:0}}.ripple-effect{position:relative;overflow:hidden}.ripple-effect:after{content:"";position:absolute;top:50%;left:50%;width:20px;height:20px;background:#ffffff80;border-radius:50%;transform:translate(-50%,-50%) scale(0);pointer-events:none}.ripple-effect:active:after{animation:ripple .6s ease-out}@media (prefers-color-scheme: dark){.game-card{background:#1e1e2ee6;border-color:#677eea33}.game-card:hover{background:#232333f2;border-color:#677eea66}.tag{background:#677eea4d;color:#ffffffe6}.game-title{color:var(--color-text-light)}.game-description{color:#fffc}.game-subtitle,.game-meta span{color:#ffffff80}}.game-card,.play-button,.tag{will-change:transform}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}[data-tooltip]{position:relative;cursor:help}[data-tooltip]:before{content:attr(data-tooltip);position:absolute;bottom:100%;left:50%;transform:translate(-50%) translateY(-8px);padding:.5rem 1rem;background:#000000e6;color:#fff;font-size:.875rem;white-space:nowrap;border-radius:6px;opacity:0;pointer-events:none;transition:opacity .3s ease,transform .3s ease}[data-tooltip]:hover:before{opacity:1;transform:translate(-50%) translateY(-4px)}@keyframes new-pulse{0%,to{box-shadow:0 0 #2ed57399}50%{box-shadow:0 0 0 6px #2ed57300}}.new-badge{position:absolute;top:var(--spacing-sm);right:var(--spacing-sm);padding:.2rem .6rem;background:linear-gradient(135deg,#2ed573,#7bed9f);color:#1a1a2e;font-size:var(--font-size-xs);font-weight:700;border-radius:var(--radius-full);letter-spacing:1px;animation:new-pulse 2s ease-in-out infinite}.game-card.featured .new-badge{top:calc(var(--spacing-sm) + 1.6rem)}.game-card.observe-fade{opacity:0;transform:translateY(30px);transition:opacity .5s ease,transform .5s ease;transition-delay:calc(var(--card-index, 0) * 60ms)}.game-card.observe-fade.visible{opacity:1;transform:translateY(0)}@keyframes skeleton-shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.skeleton-card{background:#ffffff26;border-radius:var(--radius-xl);padding:var(--spacing-lg);min-height:320px}.skeleton-card:before{content:"";display:block;width:100%;height:100%;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.1) 50%,transparent 100%);background-size:200% 100%;animation:skeleton-shimmer 1.5s ease-in-out infinite;border-radius:var(--radius-xl)}.game-card{cursor:pointer}.game-card:active{transform:translateY(-2px) scale(.99)}.recently-played{margin-bottom:var(--spacing-xl)}.recent-title{font-family:var(--font-family-serif);font-size:var(--font-size-lg);color:var(--color-text-light);margin-bottom:var(--spacing-sm);opacity:.9}.recent-games{display:flex;gap:var(--spacing-xs);flex-wrap:wrap}.recent-chip{display:inline-flex;align-items:center;gap:.4rem;padding:.4rem 1rem;background:#ffffff26;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.2);border-radius:var(--radius-full);color:var(--color-text-light);text-decoration:none;font-size:var(--font-size-sm);transition:all var(--transition-fast)}.recent-chip:hover{background:#ffffff40;border-color:var(--color-zen-gold);transform:translateY(-2px)}.recent-icon{font-size:1.1rem}.recent-name{font-weight:500}
