:root{--c-bg: #f7f4ef;--c-board: #bbada0;--c-tile-empty: #cdc1b4;--c-accent: #8f7a66;--c-accent-dark: #6d5c4e;--c-text: #3d2c24;--c-text-muted: #776e65;--c-white: #ffffff;--tile-2: #eee4da;--tile-2-text: #776e65;--tile-4: #ede0c8;--tile-4-text: #776e65;--tile-8: #f2b179;--tile-8-text: #f9f6f2;--tile-16: #f59563;--tile-16-text: #f9f6f2;--tile-32: #f67c5f;--tile-32-text: #f9f6f2;--tile-64: #f65e3b;--tile-64-text: #f9f6f2;--tile-128: #edcf72;--tile-128-text: #f9f6f2;--tile-256: #edcc61;--tile-256-text: #f9f6f2;--tile-512: #edc850;--tile-512-text: #f9f6f2;--tile-1024: #edc53f;--tile-1024-text: #f9f6f2;--tile-2048: #edc22e;--tile-2048-text: #f9f6f2;--tile-super: #3c3a32;--tile-super-text: #f9f6f2;--font: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--s1: 4px;--s2: 8px;--s3: 12px;--s4: 16px;--s5: 20px;--s6: 24px;--s8: 32px;--s10: 40px;--s12: 48px;--r-sm: 6px;--r-md: 10px;--r-lg: 16px;--r-xl: 24px;--sh-sm: 0 1px 3px rgba(0, 0, 0, .1);--sh-md: 0 4px 12px rgba(0, 0, 0, .12);--sh-lg: 0 8px 24px rgba(0, 0, 0, .16);--t-fast: .12s ease;--t-tile: .15s ease-in-out}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}html{height:100%;font-family:var(--font);-webkit-text-size-adjust:100%;text-size-adjust:100%}body{height:100%;background:var(--c-bg);color:var(--c-text);font-family:var(--font);font-size:16px;line-height:1.5;overflow:hidden;position:fixed;top:0;right:0;bottom:0;left:0;overscroll-behavior:none}#root{width:100%;height:100%;display:flex;flex-direction:column}.screen{width:100%;height:100%;display:flex;flex-direction:column;background:var(--c-bg);overflow:hidden}.permission-screen{align-items:center;justify-content:center;padding:var(--s6);overflow-y:auto}.permission-content{display:flex;flex-direction:column;align-items:center;gap:var(--s5);width:100%;max-width:380px;text-align:center;padding:var(--s4) 0}.app-title{font-size:38px;font-weight:800;color:var(--c-accent);letter-spacing:-.5px;line-height:1.1}.app-subtitle{font-size:16px;font-weight:500;color:var(--c-text-muted);margin-top:var(--s1)}.permission-icon-wrap{width:100px;height:100px;background:#bbada040;border-radius:var(--r-xl);display:flex;align-items:center;justify-content:center;border:2px solid rgba(187,173,160,.4)}.permission-desc{font-size:15px;line-height:1.65;color:var(--c-text-muted);max-width:320px}.btn-primary{display:flex;align-items:center;justify-content:center;width:100%;min-height:52px;padding:var(--s3) var(--s6);background:var(--c-accent);color:var(--c-white);font-family:var(--font);font-size:18px;font-weight:600;border:none;border-radius:var(--r-md);cursor:pointer;box-shadow:var(--sh-sm);transition:background var(--t-fast),transform var(--t-fast),opacity var(--t-fast);user-select:none;-webkit-user-select:none;letter-spacing:-.1px}.btn-primary:active{background:var(--c-accent-dark);transform:scale(.98)}.btn-primary:disabled{opacity:.55;pointer-events:none}.btn-secondary{display:flex;align-items:center;justify-content:center;width:100%;min-height:52px;padding:var(--s3) var(--s6);background:var(--c-tile-empty);color:var(--c-text);font-family:var(--font);font-size:17px;font-weight:600;border:none;border-radius:var(--r-md);cursor:pointer;transition:background var(--t-fast),transform var(--t-fast);user-select:none;-webkit-user-select:none}.btn-secondary:active{background:var(--c-board);transform:scale(.98)}.error-box{width:100%;background:#fff3f0;border:1.5px solid #f0c0b0;border-radius:var(--r-md);padding:var(--s5);display:flex;flex-direction:column;gap:var(--s3);text-align:left}.error-title{font-size:17px;font-weight:700}.error-detail{font-size:15px;line-height:1.55;color:var(--c-text-muted)}.error-steps{list-style:none;display:flex;flex-direction:column;gap:var(--s2)}.error-steps li{font-size:14px;line-height:1.55;color:var(--c-text-muted);padding-left:var(--s3);border-left:3px solid var(--c-accent)}.camera-preview{display:block;width:100%;height:100%;object-fit:contain;transform:scaleX(-1);background:#1a1a1a}.stub-screen{align-items:center;justify-content:center;gap:var(--s5);padding:var(--s6)}.stub-camera-wrap{flex:1;position:relative;overflow:hidden;background:#1a1a1a}.stub-content{padding:var(--s6);display:flex;flex-direction:column;align-items:center;gap:var(--s3);width:100%}.stub-label{font-size:13px;color:var(--c-text-muted);font-style:italic}.p2-camera-wrap{flex:1;position:relative;overflow:hidden;min-height:0;background:#1a1a1a}.mp-status{position:absolute;top:var(--s3);left:50%;transform:translate(-50%);padding:var(--s1) var(--s4);border-radius:100px;font-size:13px;font-weight:600;white-space:nowrap;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);pointer-events:none}.mp-status--loading{background:#0000008c;color:#fff}.mp-status--ready{background:#328c50d9;color:#fff}.mp-status--error{background:#be3232d9;color:#fff}.gesture-flash{position:absolute;bottom:var(--s5);left:50%;transform:translate(-50%);display:flex;align-items:center;gap:var(--s2);background:#8f7a66eb;color:#fff;padding:var(--s2) var(--s5);border-radius:100px;font-weight:700;white-space:nowrap;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);pointer-events:none;animation:gestureFlashIn .15s ease-out}.gesture-flash__arrow{font-size:26px;line-height:1}.gesture-flash__label{font-size:17px;letter-spacing:.06em}@keyframes gestureFlashIn{0%{transform:translate(-50%) scale(.75);opacity:0}to{transform:translate(-50%) scale(1);opacity:1}}.p2-debug{padding:var(--s2) var(--s4);background:#0000000a;border-top:1px solid rgba(0,0,0,.06);display:flex;flex-wrap:wrap;gap:var(--s1) var(--s5);font-size:11px;font-family:ui-monospace,SF Mono,Cascadia Code,monospace;color:var(--c-text-muted)}.p2-footer{padding:var(--s4) var(--s6) max(var(--s6),env(safe-area-inset-bottom));display:flex;flex-direction:column;align-items:center;gap:var(--s3)}.game-screen{display:flex;flex-direction:column}.score-bar{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:var(--s2) var(--s3);padding:max(var(--s2),env(safe-area-inset-top)) var(--s4) var(--s2);background:var(--c-bg);flex-shrink:0}.app-name{font-size:18px;font-weight:800;color:var(--c-accent);letter-spacing:-.3px}.score-box{display:flex;flex-direction:column;align-items:center;background:var(--c-board);border-radius:var(--r-sm);padding:var(--s1) var(--s4);min-width:72px}.score-label{font-size:11px;font-weight:700;letter-spacing:.08em;color:#f9f6f2;opacity:.8}.score-value{font-size:22px;font-weight:700;color:#f9f6f2;line-height:1.2}.btn-new-game{padding:var(--s2) var(--s4);background:var(--c-accent);color:var(--c-white);font-family:var(--font);font-size:14px;font-weight:600;border:none;border-radius:var(--r-sm);cursor:pointer;white-space:nowrap;transition:background var(--t-fast),transform var(--t-fast);user-select:none;-webkit-user-select:none}.btn-new-game:active{background:var(--c-accent-dark);transform:scale(.97)}.btn-pause{padding:var(--s2) var(--s4);background:transparent;color:var(--c-accent);font-family:var(--font);font-size:14px;font-weight:600;border:1.5px solid var(--c-accent);border-radius:var(--r-sm);cursor:pointer;white-space:nowrap;transition:background var(--t-fast),transform var(--t-fast);user-select:none;-webkit-user-select:none}.btn-pause:active{transform:scale(.97)}.btn-debug-toggle{display:inline-block;padding:var(--s2) var(--s4);background:transparent;color:var(--c-accent);font-family:var(--font);font-size:13px;font-weight:600;border:1.5px solid var(--c-accent);border-radius:var(--r-sm);cursor:pointer;white-space:nowrap;transition:background var(--t-fast),color var(--t-fast),transform var(--t-fast);user-select:none;-webkit-user-select:none}.btn-debug-toggle:active{transform:scale(.97)}.camera-zone{flex-shrink:0;position:relative;height:36vh;overflow:hidden;background:#111}.camera-intro{width:100%;height:100%;background:var(--c-bg);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--s2);padding:var(--s3) var(--s5);text-align:center}.camera-intro .app-title{font-size:22px;color:var(--c-accent)}.camera-intro .app-subtitle{font-size:13px;color:var(--c-text-muted);margin-top:0}.camera-intro-desc{font-size:12px;line-height:1.5;color:var(--c-text-muted);max-width:300px}.camera-intro .btn-primary{font-size:15px;min-height:40px;padding:var(--s2) var(--s5);width:auto;min-width:200px}.camera-intro .error-box{text-align:left;width:100%}.mp-badge{position:absolute;top:var(--s2);right:var(--s2);width:10px;height:10px;border-radius:50%;border:1.5px solid rgba(255,255,255,.4)}.mp-badge--loading{background:#aaa}.mp-badge--ready{background:#4caf50}.mp-badge--error{background:#e53935}.gesture-indicator{flex-shrink:0;height:34px;display:flex;align-items:center;justify-content:center;padding:0 var(--s4)}.gesture-indicator__idle{font-size:13px;color:var(--c-text-muted)}.gesture-indicator__active{font-size:14px;font-weight:700;color:var(--c-accent);animation:gestureFlashIn .12s ease-out}.board-zone{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;padding:var(--s3) var(--s4) max(var(--s4),env(safe-area-inset-bottom))}.board-wrap{position:relative;aspect-ratio:1;width:min(100%,calc(64vh - 180px));margin-inline:auto}.game-board{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--c-board);border-radius:var(--r-md);box-shadow:var(--sh-md)}.board-cell{position:absolute;background:var(--c-tile-empty);border-radius:var(--r-sm)}.tile{position:absolute;border-radius:var(--r-sm);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:clamp(14px,5.5vw,38px);line-height:1;transition:left var(--t-tile),top var(--t-tile);will-change:left,top;z-index:1}.tile-f3{font-size:clamp(12px,4.5vw,30px)}.tile-f4{font-size:clamp(10px,3.5vw,24px)}.tile-f5{font-size:clamp(9px,3vw,20px)}.tile-new{animation:tileSpawn .15s ease-out both}.tile-merged{animation:tileMerge .2s ease-out both;z-index:2}@keyframes tileSpawn{0%{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}@keyframes tileMerge{0%{transform:scale(.85)}50%{transform:scale(1.12)}to{transform:scale(1)}}.tile-2{background:var(--tile-2);color:var(--tile-2-text)}.tile-4{background:var(--tile-4);color:var(--tile-4-text)}.tile-8{background:var(--tile-8);color:var(--tile-8-text)}.tile-16{background:var(--tile-16);color:var(--tile-16-text)}.tile-32{background:var(--tile-32);color:var(--tile-32-text)}.tile-64{background:var(--tile-64);color:var(--tile-64-text)}.tile-128{background:var(--tile-128);color:var(--tile-128-text);font-size:clamp(12px,4.5vw,30px)}.tile-256{background:var(--tile-256);color:var(--tile-256-text);font-size:clamp(12px,4.5vw,30px)}.tile-512{background:var(--tile-512);color:var(--tile-512-text);font-size:clamp(12px,4.5vw,30px)}.tile-1024{background:var(--tile-1024);color:var(--tile-1024-text);font-size:clamp(10px,3.5vw,24px)}.tile-2048{background:var(--tile-2048);color:var(--tile-2048-text);font-size:clamp(10px,3.5vw,24px)}.tile-super{background:var(--tile-super);color:var(--tile-super-text)}@media (orientation: landscape){.game-screen{display:grid;grid-template-areas:"cam      score" "cam      board" "gesture  board";grid-template-columns:35% 1fr;grid-template-rows:auto 1fr auto}.camera-zone{grid-area:cam;height:auto}.score-bar{grid-area:score;padding:var(--s2) var(--s4);justify-content:flex-end;gap:var(--s3)}.score-bar .app-name{display:none}.gesture-indicator{grid-area:gesture;height:auto;padding:var(--s1) var(--s3)}.board-zone{grid-area:board;padding:var(--s2) var(--s3) var(--s2) 0}.board-wrap{width:min(100%,calc(100vh - 96px))}}.tracking-lost-banner{position:absolute;bottom:var(--s3);left:50%;transform:translate(-50%);padding:var(--s2) var(--s4);border-radius:100px;font-size:14px;font-weight:600;white-space:nowrap;background:#be3232e0;color:#fff;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);pointer-events:none;animation:gestureFlashIn .2s ease-out}.debug-panel{position:fixed;bottom:0;left:0;right:0;z-index:50;padding:var(--s2) var(--s3);background:#000000d1;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);display:flex;flex-wrap:wrap;gap:var(--s1) var(--s4);font-size:11px;font-family:ui-monospace,SF Mono,Cascadia Code,monospace;color:#ffffffd9;line-height:1.6}.debug-panel__gesture{color:#ffc107;font-weight:700}.camera-lost-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:center;justify-content:center;background:#f7f4efe0;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);animation:overlayFadeIn .25s ease-out}.camera-lost-panel{display:flex;flex-direction:column;align-items:center;gap:var(--s4);padding:var(--s8) var(--s6);width:100%;max-width:320px;text-align:center}.camera-lost-title{font-size:24px;font-weight:700;color:var(--c-text)}.camera-lost-desc{font-size:15px;color:var(--c-text-muted);line-height:1.5}.setup-screen{flex-direction:column;overflow:hidden}.setup-camera-wrap{position:relative;flex:1;min-height:0;overflow:hidden;background:#111}.setup-silhouette-wrap{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;pointer-events:none}.setup-silhouette-svg{height:90%;max-height:380px;width:auto;opacity:.7}.setup-banner{position:absolute;bottom:var(--s4);left:50%;transform:translate(-50%);padding:var(--s2) var(--s5);border-radius:100px;font-size:15px;font-weight:600;white-space:nowrap;background:#0000009e;color:#fff;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);pointer-events:none;transition:background .25s ease}.setup-banner--ok{background:#328c50e0}.setup-footer{flex-shrink:0;padding:var(--s5) var(--s6) max(var(--s6),env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:var(--s4);background:var(--c-bg)}.setup-title{font-size:24px;font-weight:700;color:var(--c-text);line-height:1.2}.setup-desc{font-size:15px;color:var(--c-text-muted);margin-top:var(--s1);line-height:1.55}.setup-error{font-size:14px;color:#c0392b;line-height:1.5}.setup-actions{display:flex;flex-direction:column;gap:var(--s3)}.setup-countdown{font-size:64px;font-weight:800;color:var(--c-accent);text-align:center;line-height:1;padding:var(--s2) 0;animation:countdownPop .35s ease-out both}@keyframes countdownPop{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}.tutorial-screen{position:relative;overflow:hidden;padding-top:max(var(--s2),env(safe-area-inset-top))}.tutorial-skip{position:absolute;top:max(var(--s3),env(safe-area-inset-top));right:var(--s4);padding:var(--s2) var(--s4);background:var(--c-tile-empty);color:var(--c-text-muted);font-family:var(--font);font-size:15px;font-weight:600;border:none;border-radius:100px;cursor:pointer;z-index:2;min-height:36px}.tutorial-slide{flex:1;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--s4) var(--s6) var(--s2);gap:var(--s4);animation:tutorialSlideIn .3s ease-out both}@keyframes tutorialSlideIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.tutorial-illus-wrap{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:100%;max-width:260px}.tutorial-svg{width:100%;height:auto;max-height:200px}.tutorial-gesture-label{font-size:28px;font-weight:800;color:var(--c-accent);letter-spacing:.04em;line-height:1}.tutorial-title{font-size:18px;font-weight:600;color:var(--c-text);text-align:center;line-height:1.5;max-width:300px}.tutorial-footer{flex-shrink:0;padding:var(--s3) var(--s6) max(var(--s6),env(safe-area-inset-bottom));display:flex;flex-direction:column;align-items:center;gap:var(--s3)}.tutorial-dots{display:flex;gap:var(--s2)}.tutorial-dot{width:8px;height:8px;border-radius:50%;background:var(--c-tile-empty);transition:background .2s ease,transform .2s ease}.tutorial-dot--active{background:var(--c-accent);transform:scale(1.25)}.tutorial-progress-track{width:100%;height:3px;background:var(--c-tile-empty);border-radius:100px;overflow:hidden}.tutorial-progress-bar{height:100%;width:100%;background:var(--c-accent);border-radius:100px;transform-origin:left center;animation:tutorialProgress linear forwards}@keyframes tutorialProgress{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.tutorial-next-btn{width:100%}.overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#eee4daba;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);border-radius:var(--r-md);z-index:10;animation:overlayFadeIn .2s ease-out}@keyframes overlayFadeIn{0%{opacity:0}to{opacity:1}}.overlay__panel{display:flex;flex-direction:column;align-items:center;gap:var(--s4);padding:var(--s8) var(--s6)}.overlay__title{font-size:36px;font-weight:800;color:var(--c-text)}.overlay--win .overlay__title{color:var(--c-accent)}.overlay__score{font-size:18px;color:var(--c-text-muted)}.overlay__score strong{color:var(--c-text);font-weight:700}.overlay__actions{display:flex;flex-direction:column;gap:var(--s3);width:min(200px,100%)}.framing-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#eee4dad1;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);border-radius:var(--r-md);z-index:10;animation:overlayFadeIn .2s ease-out}.framing-panel{display:flex;flex-direction:column;align-items:center;gap:var(--s4);padding:var(--s6);text-align:center;max-width:320px}.framing-title{font-size:26px;font-weight:800;color:var(--c-text)}.framing-desc{font-size:14px;line-height:1.5;color:var(--c-text-muted)}.framing-status{font-size:16px;font-weight:600;padding:var(--s2) var(--s4);border-radius:var(--r-sm);width:100%}.framing-status--wait{background:#8f7a6624;color:var(--c-text)}.framing-status--ok{background:#4caf502e;color:#2e7d32}.framing-count{font-size:72px;font-weight:800;line-height:1;color:var(--c-accent);animation:countPulse 1s ease-in-out infinite}.pause-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#eee4dadb;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);border-radius:var(--r-md);z-index:11;animation:overlayFadeIn .2s ease-out}.pause-panel{display:flex;flex-direction:column;align-items:center;gap:var(--s4);padding:var(--s6);text-align:center;max-width:320px}.pause-title{font-size:32px;font-weight:800;color:var(--c-text)}.pause-desc{font-size:14px;line-height:1.5;color:var(--c-text-muted)}.pause-panel .btn-primary{width:min(220px,100%)}@keyframes countPulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.12);opacity:.85}}.auth-screen{align-items:center;justify-content:safe center;overflow-y:auto;-webkit-overflow-scrolling:touch}.auth-inner{display:flex;flex-direction:column;align-items:center;gap:var(--s3);padding:var(--s6) var(--s5);text-align:center}.auth-inner .home-title{font-size:32px}.auth-inner .home-subtitle{margin-bottom:var(--s4)}.auth-inner{width:100%;max-width:400px}.auth-form{width:100%;display:flex;flex-direction:column;gap:var(--s4);padding:var(--s6) var(--s5);background:var(--c-white);border-radius:var(--r-lg);box-shadow:var(--sh-md);text-align:left}.auth-field{display:flex;flex-direction:column;gap:var(--s2);font-size:15px;font-weight:600;color:var(--c-text)}.auth-field input{min-height:48px;padding:0 var(--s4);font-family:var(--font);font-size:17px;color:var(--c-text);background:var(--c-bg);border:1.5px solid var(--c-tile-empty);border-radius:var(--r-md);transition:border-color var(--t-fast)}.auth-field input:focus{outline:none;border-color:var(--c-accent)}.auth-field small{font-size:13px;font-weight:500;color:var(--c-text-muted)}.auth-error{font-size:15px;font-weight:500;color:#a33a22;background:#fbe9e3;border-radius:var(--r-sm);padding:var(--s3)}.auth-link{min-height:44px;padding:0 var(--s2);font-family:var(--font);font-size:15px;font-weight:600;color:var(--c-accent);background:none;border:none;text-decoration:underline;text-underline-offset:3px;cursor:pointer}.auth-guest{margin-top:var(--s2)}.home-topbar{gap:var(--s3)}.home-account{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:500;color:var(--c-text-muted)}.btn-account{flex-shrink:0;min-height:44px;padding:0 var(--s4);font-family:var(--font);font-size:15px;font-weight:600;color:var(--c-accent);background:var(--c-white);border:none;border-radius:var(--r-md);box-shadow:var(--sh-sm);cursor:pointer;transition:transform var(--t-fast)}.btn-account:active{transform:scale(.97)}.dashboard-note{margin-top:calc(-1 * var(--s3));text-align:center;font-size:14px;color:var(--c-text-muted)}.dashboard-note .auth-link{min-height:0;padding:0;font-size:14px}.home-screen{overflow-y:auto;-webkit-overflow-scrolling:touch}.home-topbar{display:flex;justify-content:flex-end;align-items:center;min-height:32px}.home-inner{width:100%;max-width:520px;margin:0 auto;padding:max(var(--s6),env(safe-area-inset-top)) var(--s5) var(--s8);display:flex;flex-direction:column;gap:var(--s6)}.home-header{text-align:center;padding-top:var(--s4)}.home-title{font-size:34px;font-weight:800;color:var(--c-accent);letter-spacing:-.5px;line-height:1.1}.home-subtitle{font-size:16px;font-weight:500;color:var(--c-text-muted);margin-top:var(--s1)}.dashboard{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s3)}.stat-tile{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:var(--s4) var(--s2);background:var(--c-white);border-radius:var(--r-lg);box-shadow:var(--sh-sm);text-align:center}.stat-tile__value{font-size:clamp(18px,5vw,26px);font-weight:800;color:var(--c-text);line-height:1.1;white-space:nowrap}.stat-tile__label{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--c-text-muted)}.stat-tile__sub{font-size:11px;color:var(--c-text-muted);opacity:.8}.game-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--s3)}.game-card{display:flex;flex-direction:column;align-items:flex-start;gap:var(--s1);min-height:132px;padding:var(--s4);border:none;border-radius:var(--r-lg);background:var(--c-white);box-shadow:var(--sh-sm);font-family:var(--font);text-align:left;cursor:pointer;transition:transform var(--t-fast),box-shadow var(--t-fast)}.game-card:not(:disabled):active{transform:scale(.98);box-shadow:var(--sh-md)}.game-card__emoji{font-size:30px;line-height:1}.game-card__name{font-size:19px;font-weight:700;color:var(--c-text)}.game-card__tagline{font-size:13px;line-height:1.35;color:var(--c-text-muted);flex:1}.game-card__cta{align-self:stretch;margin-top:var(--s1);padding:var(--s2);border-radius:var(--r-sm);background:var(--c-accent);color:var(--c-white);font-size:15px;font-weight:700;text-align:center}.game-card__badge{align-self:flex-start;margin-top:var(--s1);padding:3px var(--s2);border-radius:999px;background:var(--c-tile-empty);color:var(--c-text-muted);font-size:12px;font-weight:700;letter-spacing:.02em}.game-card--soon{cursor:default;opacity:.7;box-shadow:none;background:#f1ece4}.btn-home{flex-shrink:0;width:44px;height:44px;display:flex;align-items:center;justify-content:center;border:none;border-radius:var(--r-sm);background:var(--c-board);color:var(--c-white);font-size:22px;font-weight:700;line-height:1;cursor:pointer;transition:background var(--t-fast)}.btn-home:active{background:var(--c-accent-dark)}.btn-new-game,.btn-pause,.btn-debug-toggle{display:inline-flex;align-items:center;min-height:40px}@media (max-width: 360px){.home-inner{padding-left:var(--s4);padding-right:var(--s4);gap:var(--s5)}.dashboard{gap:var(--s2)}.stat-tile{padding:var(--s3) var(--s1)}.game-card{min-height:120px;padding:var(--s3)}.score-box{min-width:60px;padding-inline:var(--s3)}.score-value{font-size:20px}}@media (min-width: 768px){.home-inner{padding-top:var(--s10);gap:var(--s8)}.home-title{font-size:40px}.home-subtitle{font-size:18px}.dashboard{gap:var(--s4)}.game-card{min-height:148px}}@media (hover: none){.game-card{-webkit-tap-highlight-color:transparent}}
