@font-face{font-family:Fredoka One;src:url(/2048-Solver/fonts/fredoka-one.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}:root{--bg:#faf8ef;--text:#776e65;--board-bg:#bbada0;--cell-bg:#cdc1b4;--accent:#8f7a66;--accent-hover:#9f8b77;--btn-bg:#eee4da;--btn-text:#776e65;--turn-color:#f67c5f;--branch-color:#6aa1d6;--tile-2:#eee4da;--tile-4:#ede0c8;--tile-8:#f2b179;--tile-16:#f59563;--tile-32:#f67c5f;--tile-64:#f65e3b;--tile-128:#edcf72;--tile-256:#edcc61;--tile-512:#edc850;--tile-1024:#edc53f;--tile-2048:#edc22e;--tile-super:#3c3a32;--font-display:"Fredoka One", "Trebuchet MS", sans-serif;--font-body:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif}*{box-sizing:border-box}body{font-family:var(--font-body);background:var(--bg);color:var(--text);background-image:radial-gradient(at 20% 0,#edc22e0a 0%,#0000 60%),radial-gradient(at 80% 100%,#8f7a660a 0%,#0000 60%);min-height:100vh;margin:0;padding:20px}#app{max-width:900px;margin:0 auto}.app-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;display:flex}.title-group{flex-direction:column;display:flex}h1{font-family:var(--font-display);letter-spacing:-.5px;color:var(--text);margin:0;font-size:52px;font-weight:400}.title-accent{font-family:var(--font-body);color:var(--accent);letter-spacing:.08em;text-transform:uppercase;vertical-align:baseline;font-size:.38em;font-weight:700}.scoreboard{gap:8px;display:flex}.score-box{background:var(--board-bg);color:#fff;text-align:center;border-radius:6px;flex-direction:column;min-width:68px;padding:8px 14px;display:flex;box-shadow:0 2px 8px #8f7a6626}.score-label{text-transform:uppercase;letter-spacing:.5px;color:#eee4da;font-size:10px}.score-value{font-family:var(--font-display);font-size:20px;font-weight:400}.workspace{grid-template-columns:1fr;gap:0;display:grid}@media (width>=768px){.workspace{grid-template-columns:minmax(320px,480px) minmax(240px,1fr);align-items:start;gap:24px}}.workspace-board{min-width:0}.workspace-coach{min-width:0;padding:4px 0}@media (width>=768px){.workspace-coach{padding:0}}.primary-actions{flex-wrap:wrap;align-items:center;gap:8px;margin:8px 0;display:flex}.mobile-only{display:flex}.desktop-only{display:none}@media (width>=768px){.mobile-only{display:none!important}.desktop-only{display:flex!important}}.settings-drawer{border:1px solid #e0d5c2;border-radius:6px;margin-top:12px;overflow:hidden}.settings-toggle{color:var(--accent);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;padding:8px 14px;font-size:13px;font-weight:600;list-style:none;display:flex}.settings-toggle::-webkit-details-marker{display:none}.settings-toggle:before{content:"▶";font-size:.85em;transition:transform .2s}details[open]>.settings-toggle:before{transform:rotate(90deg)}.settings-body{flex-direction:column;gap:8px;padding:8px 14px 14px;display:flex}@media (width>=768px){.settings-drawer{border:none;border-top:1px solid #e0d5c2;border-radius:0}}.board{background:var(--board-bg);aspect-ratio:1;-webkit-user-select:none;user-select:none;touch-action:none;border-radius:8px;grid-template-rows:repeat(4,1fr);grid-template-columns:repeat(4,1fr);gap:10px;width:100%;padding:10px;display:grid;box-shadow:0 4px 16px #8f7a662e,0 1px 3px #8f7a661a}.board-shell{position:relative}.tile-layer{pointer-events:none;z-index:1;position:absolute;inset:0}.cell,.tile-anim{font-family:var(--font-display);color:var(--text);border-radius:5px;justify-content:center;align-items:center;font-size:clamp(20px,5.5vw,42px);font-weight:400;display:flex}.cell{background:var(--cell-bg);transition:background .12s,color .12s,transform .12s}.tile-anim{will-change:transform;transition:transform .12s ease-in-out;position:absolute}.cell.empty{background:var(--cell-bg);color:#0000}.cell.new{animation:.16s pop}.cell.merged{animation:.16s merge}@keyframes pop{0%{transform:scale(0)}to{transform:scale(1)}}@keyframes merge{0%{transform:scale(1)}50%{transform:scale(1.15)}to{transform:scale(1)}}:is(.cell,.tile-anim).v-2{background:var(--tile-2)}:is(.cell,.tile-anim).v-4{background:var(--tile-4)}:is(.cell,.tile-anim).v-8{background:var(--tile-8);color:#f9f6f2}:is(.cell,.tile-anim).v-16{background:var(--tile-16);color:#f9f6f2}:is(.cell,.tile-anim).v-32{background:var(--tile-32);color:#f9f6f2}:is(.cell,.tile-anim).v-64{background:var(--tile-64);color:#f9f6f2}:is(.cell,.tile-anim).v-128{background:var(--tile-128);color:#f9f6f2;font-size:clamp(18px,5vw,36px)}:is(.cell,.tile-anim).v-256{background:var(--tile-256);color:#f9f6f2;font-size:clamp(18px,5vw,36px)}:is(.cell,.tile-anim).v-512{background:var(--tile-512);color:#f9f6f2;font-size:clamp(18px,5vw,36px)}:is(.cell,.tile-anim).v-1024{background:var(--tile-1024);color:#f9f6f2;font-size:clamp(14px,4vw,30px)}:is(.cell,.tile-anim).v-2048{background:var(--tile-2048);color:#f9f6f2;font-size:clamp(14px,4vw,30px)}:is(.cell,.tile-anim).v-super{background:var(--tile-super);color:#f9f6f2;font-size:clamp(14px,4vw,28px)}.status{text-align:center;min-height:24px;margin:10px 0;font-weight:600}.status.win{color:#edc22e}.status.lose{color:#f65e3b}.win-overlay{z-index:2;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:radial-gradient(circle at top,#ffffff2e,#0000 45%),#edc22ed1;border-radius:6px;justify-content:center;align-items:center;padding:20px;display:flex;position:absolute;inset:0;overflow:hidden}.win-overlay.hidden{display:none}.win-card{z-index:1;color:#5d4b1f;text-align:center;background:#fffbf0f5;border-radius:18px;width:min(100%,360px);padding:24px 22px;animation:.22s win-card-in;position:relative;box-shadow:0 20px 60px #5e450c38}.win-fireworks{pointer-events:none;position:absolute;inset:0}.firework,.spark{opacity:0;border-radius:999px;position:absolute}.firework{aspect-ratio:1;filter:blur(.4px);background:radial-gradient(circle,#fff 0 8%,#0000 9%),repeating-conic-gradient(#ff6432e6 0deg 10deg,#ffc832cc 10deg 20deg,#0000 20deg 30deg);width:150px;animation:1.8s ease-out infinite firework-burst}.firework-a{top:8%;left:8%}.firework-b{width:128px;animation-delay:.45s;top:12%;right:6%}.firework-c{width:112px;animation-delay:.9s;bottom:14%;left:18%}.spark{background:radial-gradient(circle,#fff 0 35%,#f84 36% 70%,#0000 71%);width:14px;height:14px;animation:2.4s ease-in-out infinite spark-float;box-shadow:0 0 22px #ff7832e6}.spark-a{top:18%;left:34%}.spark-b{animation-delay:.6s;top:24%;right:28%}.spark-c{animation-delay:1.1s;bottom:22%;right:18%}.spark-d{animation-delay:1.7s;bottom:16%;left:30%}.win-kicker{letter-spacing:.18em;text-transform:uppercase;color:#b8860b;margin:0 0 8px;font-size:12px;font-weight:800}.win-card h2{margin:0;font-size:clamp(28px,7vw,42px);line-height:.95}.win-message{color:#6f5b28;margin:14px 0 0;font-size:15px;line-height:1.45}.win-actions{flex-direction:column;align-items:center;gap:8px;margin-top:18px;display:flex}.win-actions .btn{width:min(100%,220px)}@keyframes win-card-in{0%{opacity:0;transform:translateY(12px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes firework-burst{0%{opacity:0;transform:scale(.2)}15%{opacity:1;transform:scale(.85)}40%{opacity:.8;transform:scale(1.05)}70%{opacity:.4;transform:scale(1.25)}to{opacity:0;transform:scale(1.42)}}@keyframes spark-float{0%,to{opacity:.2;transform:translateY(8px)scale(.8)}35%{opacity:.95;transform:translateY(-10px)scale(1.1)}70%{opacity:.45;transform:translateY(-22px)scale(.9)}}.control-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}#btn-share{text-align:center;justify-content:center;width:140px}.btn{background:var(--btn-bg);color:var(--btn-text);cursor:pointer;border:none;border-radius:6px;padding:8px 14px;font-size:14px;font-weight:700;transition:background .12s,box-shadow .12s,transform 80ms;box-shadow:0 1px 3px #8f7a6614}.btn:hover{background:#e4d8c8;box-shadow:0 2px 6px #8f7a6624}.btn:active{transform:scale(.97)}.btn.primary{background:var(--accent);color:#fff;box-shadow:0 2px 8px #8f7a6633}.btn.primary:hover{background:var(--accent-hover);box-shadow:0 3px 10px #8f7a6640}.btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.btn:disabled:active{transform:none}.seed-input,.speed-input,.depth-input{align-items:center;gap:6px;font-size:13px;display:inline-flex}.seed-input input{border:1px solid #cdc1b4;border-radius:4px;width:120px;padding:6px 8px;font-family:inherit;font-size:13px}.timeline-wrapper{margin-bottom:16px;position:relative}.timeline-header{text-transform:uppercase;letter-spacing:.5px;color:#8f7a66;justify-content:space-between;align-items:center;margin-bottom:6px;font-size:12px;display:flex}.timeline-position{font-variant-numeric:tabular-nums}.timeline{background:var(--cell-bg);border-radius:4px;gap:2px;height:36px;padding:4px;display:flex;position:relative;overflow:auto hidden}.timeline::-webkit-scrollbar{height:6px}.timeline::-webkit-scrollbar-thumb{background:#8f7a66;border-radius:3px}.tick{cursor:pointer;text-align:center;color:#fff;appearance:none;background:#bbb;border:none;border-radius:3px;flex:0 0 18px;min-width:18px;height:100%;padding:0;font-size:11px;line-height:24px;transition:transform 80ms;position:relative}.tick:focus-visible{outline:2px solid var(--accent);outline-offset:1px;z-index:2}.tick:hover{transform:scaleY(1.2)}.tick.branch:after{content:"";background:var(--branch-color);border-radius:50%;width:4px;height:4px;position:absolute;top:-2px;left:50%;transform:translate(-50%)}.tick.current{outline:2px solid var(--accent);outline-offset:1px;z-index:2}.timeline-legend{color:#8f7a66;flex-wrap:wrap;gap:12px;margin-top:8px;font-size:11px;display:flex}.legend-item{align-items:center;gap:4px;display:inline-flex}.legend-item .tick{border-radius:2px;flex:0 0 10px;min-width:10px;height:10px;position:relative}.ad-container{text-align:center}.ad-container:has(ins[data-ad-status=unfilled]){display:none}.ad-container ins{margin:16px 0}.app-footer{color:#8f7a66;text-align:center;border-top:1px solid #e0d5c2;padding-top:12px;font-size:12px}.sponsor{justify-content:center;margin-top:10px;display:flex}.footer-links{margin-top:8px;font-size:11px}.footer-links a{color:#a09080;text-decoration:none}.footer-links a:hover{text-decoration:underline}.strategy-link{color:var(--accent);font-weight:600;text-decoration:none}.strategy-link:hover{text-decoration:underline}kbd{background:var(--btn-bg);border:1px solid #cdc1b4;border-radius:3px;padding:1px 6px;font-family:inherit;font-size:11px}@media (width<=767px){body{padding:12px}#app{max-width:560px}h1{font-size:36px}.title-accent{font-size:.42em;display:block}.scoreboard{justify-content:space-between;width:100%}.win-card{padding:22px 18px}.win-actions .btn{width:100%}.workspace-coach{margin-top:4px}}.score-bars{background:#bbada01a;border:1px solid #bbada026;border-radius:8px;margin:12px 0;padding:14px 16px}.score-bars.hidden{display:none}.score-bar-row{align-items:center;gap:10px;height:26px;display:flex}.score-bar-row+.score-bar-row{margin-top:4px}.score-bar-label{color:var(--text);letter-spacing:.01em;flex:0 0 62px;font-size:13px;font-weight:600}.score-bar-track{background:var(--cell-bg);border-radius:7px;flex:1;height:14px;position:relative;overflow:hidden}.score-bar-fill{background:#a09080;border-radius:7px;width:0%;height:100%;transition:width .32s cubic-bezier(.22,1,.36,1)}.score-bar-best .score-bar-fill{background:linear-gradient(90deg, var(--accent) 0%, #b8956a 100%)}.score-bar-best .score-bar-label{color:var(--accent)}.score-bar-disabled{opacity:.4}.score-bar-value{color:var(--text);text-align:right;font-variant-numeric:tabular-nums;flex:0 0 58px;font-size:12px;font-weight:600}.score-bars-caption{color:#a09080;text-align:right;letter-spacing:.02em;margin-top:8px;font-size:11px}.score-bars-loading .score-bar-track{position:relative;overflow:hidden}.score-bars-loading .score-bar-track:after{content:"";background:linear-gradient(90deg,#0000 0%,#ffffff59 40% 60%,#0000 100%);animation:1.4s ease-in-out infinite shimmer;position:absolute;inset:0}.score-bars-error .score-bar-value{color:#a09080}.hint-overlay{z-index:1;pointer-events:none;border-radius:6px;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.hint-overlay.hidden{display:none}.hint-arrow{color:#8f7a668c;text-shadow:0 2px 12px #8f7a6640;font-size:clamp(48px,12vw,80px);line-height:1;animation:1.8s ease-in-out infinite hint-pulse}.hint-arrow-up{transform:translateY(-8px)}.hint-arrow-down{transform:translateY(8px)}.hint-arrow-left{transform:translate(-8px)}.hint-arrow-right{transform:translate(8px)}@keyframes hint-pulse{0%,to{opacity:.5;transform:scale(1)}50%{opacity:.85;transform:scale(1.08)}}.hint-arrow-up{animation:1.8s ease-in-out infinite hint-pulse-up}.hint-arrow-down{animation:1.8s ease-in-out infinite hint-pulse-down}.hint-arrow-left{animation:1.8s ease-in-out infinite hint-pulse-left}.hint-arrow-right{animation:1.8s ease-in-out infinite hint-pulse-right}@keyframes hint-pulse-up{0%,to{opacity:.5;transform:translateY(-8px)scale(1)}50%{opacity:.85;transform:translateY(-14px)scale(1.08)}}@keyframes hint-pulse-down{0%,to{opacity:.5;transform:translateY(8px)scale(1)}50%{opacity:.85;transform:translateY(14px)scale(1.08)}}@keyframes hint-pulse-left{0%,to{opacity:.5;transform:translate(-8px)scale(1)}50%{opacity:.85;transform:translate(-14px)scale(1.08)}}@keyframes hint-pulse-right{0%,to{opacity:.5;transform:translate(8px)scale(1)}50%{opacity:.85;transform:translate(14px)scale(1.08)}}.board-shell.hint-glow{border-radius:6px;transition:box-shadow .3s}.grade-badge-region{flex-wrap:wrap;align-items:center;gap:10px;min-height:32px;margin:8px 0;display:flex}.grade-badge{font-family:var(--font-display);letter-spacing:.01em;border-radius:14px;align-items:center;padding:5px 16px;font-size:16px;font-weight:400;display:inline-flex}.grade-badge.hidden{display:none}.grade-badge.grade-fade-in{animation:.12s ease-out grade-slide-in}.grade-perfect{color:#1e6e3a;background:#3ca05a38;font-weight:700;box-shadow:0 0 8px #3ca05a40}.grade-green{color:#3d7a3d;background:#68af682e}.grade-yellow{color:#8a7a2a;background:#d2b95a33}.grade-orange{color:#9a5e20;background:#e69b5033}.grade-red{color:#a83030;background:#dc5a502e}@keyframes grade-slide-in{0%{opacity:0;transform:translate(8px)}to{opacity:1;transform:translate(0)}}.grade-coach-note{color:#8f7a66;font-size:13px;font-style:italic;line-height:1.3}.grade-coach-note.hidden{display:none}.grade-streak{font-family:var(--font-display);color:#3d7a3d;letter-spacing:.01em;font-size:15px;font-weight:400}.grade-streak.hidden{display:none}.grade-streak.streak-bounce{animation:.3s cubic-bezier(.34,1.56,.64,1) streak-bounce}@keyframes streak-bounce{0%{transform:scale(1)}40%{transform:scale(1.35)}to{transform:scale(1)}}.grade-badge-loading:after{content:"";background:var(--cell-bg);border-radius:14px;width:64px;height:22px;display:block;position:relative;overflow:hidden}.grade-badge-loading:before{content:"";background:linear-gradient(90deg,#0000 0%,#fff6 40% 60%,#0000 100%);border-radius:14px;width:64px;height:22px;animation:1.4s ease-in-out infinite shimmer;position:absolute}.inspector{z-index:20;pointer-events:none;background:#faf6f0;border:1px solid #e0d5c2;border-radius:8px;width:max-content;max-width:300px;margin-bottom:4px;padding:12px 14px;position:absolute;bottom:100%;left:50%;transform:translate(-50%);box-shadow:0 4px 16px #00000026}.inspector.hidden{display:none}.inspector:focus{outline:2px solid var(--accent);outline-offset:2px}.inspector-header{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.inspector-title{color:var(--text);font-size:14px;font-weight:700}.inspector-close{min-width:0;padding:2px 8px;font-size:18px;line-height:1}.inspector-board{aspect-ratio:1;background:var(--board-bg);border-radius:4px;grid-template-rows:repeat(4,1fr);grid-template-columns:repeat(4,1fr);gap:3px;width:min(100%,160px);margin-bottom:10px;padding:3px;display:grid}.inspector-cell{background:var(--cell-bg);color:var(--text);border-radius:2px;justify-content:center;align-items:center;font-size:10px;font-weight:700;display:flex}.inspector-cell-empty{background:var(--cell-bg)}.inspector-cell-2{background:var(--tile-2)}.inspector-cell-4{background:var(--tile-4)}.inspector-cell-8{background:var(--tile-8);color:#f9f6f2}.inspector-cell-16{background:var(--tile-16);color:#f9f6f2}.inspector-cell-32{background:var(--tile-32);color:#f9f6f2}.inspector-cell-64{background:var(--tile-64);color:#f9f6f2}.inspector-cell-128{background:var(--tile-128);color:#f9f6f2;font-size:8px}.inspector-cell-256{background:var(--tile-256);color:#f9f6f2;font-size:8px}.inspector-cell-512{background:var(--tile-512);color:#f9f6f2;font-size:8px}.inspector-cell-1024{background:var(--tile-1024);color:#f9f6f2;font-size:7px}.inspector-cell-2048{background:var(--tile-2048);color:#f9f6f2;font-size:7px}.inspector-cell-super{background:var(--tile-super);color:#f9f6f2;font-size:7px}.inspector-grade-row{border-radius:10px;margin-bottom:8px;padding:3px 10px;font-size:13px;font-weight:800;display:inline-block}.inspector-grade-row.hidden{display:none}.inspector-grade-perfect{color:#1e6e3a;background:#3ca05a38;font-weight:700}.inspector-grade-green{color:#3d7a3d;background:#68af682e}.inspector-grade-yellow{color:#8a7a2a;background:#d2b95a33}.inspector-grade-orange{color:#9a5e20;background:#e69b5033}.inspector-grade-red{color:#a83030;background:#dc5a502e}.inspector-scores{color:#8f7a66;font-variant-numeric:tabular-nums;margin-bottom:6px;font-size:12px;line-height:1.5}.inspector-scores.hidden{display:none}.inspector-note{color:#8f7a66;font-size:13px;font-style:italic;line-height:1.3}.inspector-note.hidden{display:none}.debrief{margin:12px 0}.debrief.hidden{display:none}.debrief-card{background:#bbada01a;border:1px solid #e0d5c2;border-radius:8px;padding:16px 18px}.debrief-heading{color:var(--text);margin:0 0 12px;font-size:16px;font-weight:800}.debrief-stats{flex-direction:column;gap:8px;margin-bottom:14px;display:flex}.debrief-stat{flex-direction:column;gap:2px;display:flex}.debrief-stat-label{text-transform:uppercase;letter-spacing:.05em;color:#a09080;font-size:11px;font-weight:700}.debrief-stat-value{color:var(--text);font-size:14px;line-height:1.4}.debrief-stat-bad .debrief-stat-label{color:#a83030}.debrief-stat-good .debrief-stat-label{color:#3d7a3d}.debrief-retry{width:100%}.tick.tick-grade-best{background:#2d8a4e}.tick.tick-grade-good{background:#4a9e4a}.tick.tick-grade-ok{background:#c4a832}.tick.tick-grade-mistake{background:#d48a3a}.tick.tick-grade-blunder{background:#c44040}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(200%)}}@media (prefers-reduced-motion:reduce){.hint-arrow,.hint-arrow-up,.hint-arrow-down,.hint-arrow-left,.hint-arrow-right{opacity:.7;animation:none}.grade-badge.grade-fade-in,.grade-streak.streak-bounce{animation:none}.score-bar-fill,.board-shell.hint-glow{transition:none}.score-bars-loading .score-bar-track:after,.grade-badge-loading:before{opacity:.3;animation:none}.btn:active{transform:none}.settings-toggle:before,.tile-anim{transition:none}}
