:root{--bg: #05070B;--bg-soft: #0A0E14;--panel: #0F141D;--panel-2: #141B26;--border: rgba(255, 255, 255, .07);--border-strong: rgba(255, 255, 255, .14);--text-color: #F2F6FA;--text-dim: #8A97AB;--text-faint: #5B6B80;--text-fainter: #4E5A6B;--grid-gap: 8px;--cell-size: 58px;--off-color: #121924;--off-glyph: #2C374A;--color-std: #2ff0c8;--color-bish: #d96bff;--color-bomb: #ff6a3d;--color-wall: #64748b;--color-archer: #9dff3d;--color-heavy: #4d8dff;--color-mirror: #35c4e8;--hint-color: #ffd166;--hint-dim: #a3925f;--warn-color: #ffb020;--danger-color: #ff5c5c;--accent: var(--color-std);--accent-soft: rgba(47, 240, 200, .1);--accent-line: rgba(47, 240, 200, .28);--accent-glow: rgba(47, 240, 200, .35);--radius: 16px;--radius-lg: 20px;--radius-xl: 26px;--shadow-card: 0 8px 24px rgba(0, 0, 0, .35);--font: "Figtree", system-ui, "Segoe UI", sans-serif;--font-display: "Space Grotesk", "Figtree", system-ui, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, monospace}*{box-sizing:border-box}html{scrollbar-gutter:stable}:root{--page-pad-v: 28px;--page-pad-top: 12px;--app-h: 100vh;--vgap: clamp(6px, 1.4vh, 18px)}@supports (height: 100svh){:root{--app-h: 100svh}}body{background-color:var(--bg);background-image:radial-gradient(120% 55% at 50% 0%,#12202b 0%,var(--bg) 62%);background-attachment:fixed;color:var(--text-color);font-family:var(--font);display:flex;align-items:flex-start;justify-content:center;min-height:var(--app-h);margin:0;padding:var(--page-pad-top) 16px 16px}body[data-screen=game]{background-image:radial-gradient(95% 45% at 50% 45%,#101c26 0%,var(--bg) 70%)}body[data-screen=stats]{background-image:none}h1,h2,h3{margin:0}button{font-family:var(--font)}.eyebrow{font-family:var(--font-mono);font-size:.66rem;font-weight:500;letter-spacing:2px;text-transform:uppercase;color:var(--text-faint);margin:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.screen{display:none;width:100%;max-width:480px}.screen.active{display:flex;flex-direction:column;align-items:center;min-height:calc(var(--app-h) - var(--page-pad-v))}#screen-title.active{position:fixed;inset:0;z-index:10;display:block;max-width:none;min-height:0;overflow:hidden;background-color:var(--bg)}body[data-screen=title]{background-image:none;overflow:hidden}.title-backdrop{position:absolute;inset:-20px;display:grid;grid-template-columns:repeat(var(--title-cols, 7),1fr);gap:6px;padding:20px;align-content:start}.title-tile{aspect-ratio:1;border-radius:10px;background-color:var(--off-color);border:1px solid var(--border);animation:title-pulse var(--title-dur, 7.7s) ease-in-out infinite;animation-delay:var(--title-delay, 0s)}@keyframes title-pulse{0%,7%{background-color:var(--off-color);border-color:var(--border);box-shadow:none}18%,34%{background-color:var(--accent);border-color:transparent;box-shadow:0 0 26px var(--accent-glow),inset 0 1px #ffffff59}46%,to{background-color:var(--off-color);border-color:var(--border);box-shadow:none}}.title-scrim{position:absolute;inset:0;background:linear-gradient(to top,var(--bg) 0,rgba(5,7,11,.9) 300px,rgba(5,7,11,.32) 520px,rgba(5,7,11,.55) 100%)}.title-content{position:relative;width:100%;max-width:480px;height:100%;margin:0 auto;display:flex;flex-direction:column;justify-content:flex-end;gap:clamp(14px,2.6vh,20px);padding:56px 28px max(40px,calc(env(safe-area-inset-bottom,0px) + 28px))}.title-wordmark{display:flex;flex-direction:column;gap:8px;animation:title-rise .5s ease both .05s}.title-logo{font-family:var(--font-display);font-size:clamp(3rem,17vw,4.125rem);font-weight:700;line-height:.9;letter-spacing:-.04em;color:var(--text-color)}.title-tagline{margin:0;max-width:290px;font-size:.9125rem;line-height:1.45;color:var(--text-dim);text-wrap:pretty}.title-actions{display:flex;flex-direction:column;gap:10px;padding:14px;border-radius:var(--radius-xl);background:#0f141db8;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.08);animation:title-rise .5s ease both .18s}.title-play{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:16px 20px;border:none;border-radius:var(--radius);background:var(--accent);color:var(--bg);font-size:1rem;font-weight:800;cursor:pointer;box-shadow:0 0 34px #2ff0c84d;transition:box-shadow .2s ease,transform .15s ease}.title-play:hover{box-shadow:0 0 44px #2ff0c873}.title-play:active{transform:scale(.985)}.title-play-arrow{opacity:.6}.title-secondary{display:flex;gap:8px}.title-link{flex:1;padding:12px;border:1px solid var(--border-strong);border-radius:14px;background:transparent;color:var(--text-color);font-size:.79rem;font-weight:700;cursor:pointer;transition:background .15s ease,border-color .15s ease}.title-link:hover{background:#ffffff0d;border-color:#ffffff38}@keyframes title-rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion: reduce){.title-tile{animation:none}.title-tile.is-on{background-color:var(--accent);border-color:transparent;box-shadow:0 0 26px var(--accent-glow),inset 0 1px #ffffff59}.title-wordmark,.title-actions{animation:none}}#screen-home.active{height:calc(var(--app-h) - var(--page-pad-v))}.home-content{width:100%;padding:0 2px;display:flex;flex-direction:column;flex:1 1 0;min-height:0;gap:var(--vgap);justify-content:space-between;text-align:left;overflow-y:auto;overscroll-behavior:contain}.home-content>*{flex:0 0 auto}.home-top{display:flex;flex-direction:column;gap:clamp(8px,1.6vh,18px)}.top-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:34px}.top-bar-right{display:flex;align-items:center;gap:8px}.game-logo{font-family:var(--font-display);font-size:.95rem;font-weight:700;letter-spacing:4px;color:var(--text-color);margin:0}.game-logo .logo-accent,.title-logo .logo-accent{color:var(--accent)}.streak-pill{display:flex;align-items:center;gap:6px;padding:6px 11px;border-radius:999px;background:#ffd1661a;border:1px solid rgba(255,209,102,.28)}.streak-flame{font-size:.75rem;line-height:1}.streak-count{font-family:var(--font-display);font-size:.82rem;font-weight:700;color:var(--hint-color)}.home-heading{display:flex;flex-direction:column;gap:4px}.home-title{font-family:var(--font-display);font-size:clamp(1.5rem,7vw,1.95rem);font-weight:700;letter-spacing:-.02em;line-height:1.1;color:var(--text-color)}.menu-stack{width:100%;display:flex;flex-direction:column;gap:clamp(8px,1.3vh,14px)}.menu-sep{height:1px;width:100%;background:linear-gradient(90deg,transparent,var(--border-strong) 15%,var(--border-strong) 85%,transparent)}.daily-list,.mode-list{display:flex;flex-direction:column;gap:10px;width:100%}.menu-row{--row-accent: var(--color-std);display:flex;align-items:center;gap:14px;width:100%;padding:clamp(10px,1.9vh,16px);border-radius:var(--radius-lg);background:var(--panel);border:1px solid var(--border);color:var(--text-color);text-align:left;cursor:pointer;transition:border-color .2s ease,transform .15s ease,box-shadow .2s ease}.daily-row[data-difficulty=easy]{--row-accent: var(--color-std)}.daily-row[data-difficulty=medium]{--row-accent: var(--color-heavy)}.daily-row[data-difficulty=hard]{--row-accent: var(--color-bish)}.mode-row[data-mode=gauntlet]{--row-accent: var(--color-bomb)}.mode-row[data-mode=blitz]{--row-accent: var(--hint-color)}.menu-row:hover{border-color:color-mix(in srgb,var(--row-accent) 45%,transparent);transform:translateY(-1px)}.menu-row:active{transform:translateY(0)}.daily-row.is-solved{background:linear-gradient(180deg,color-mix(in srgb,var(--row-accent) 7%,transparent),color-mix(in srgb,var(--row-accent) 2%,transparent));border-color:color-mix(in srgb,var(--row-accent) 22%,transparent)}.menu-icon{width:clamp(38px,10vw,44px);height:clamp(38px,10vw,44px);flex-shrink:0;border-radius:13px;display:flex;align-items:center;justify-content:center;font-size:1.2rem;font-weight:700;background:color-mix(in srgb,var(--row-accent) 14%,transparent);border:1px solid color-mix(in srgb,var(--row-accent) 35%,transparent);color:var(--row-accent)}.daily-row.is-solved .menu-icon{background:var(--row-accent);border-color:transparent;color:#001410bf;box-shadow:0 0 22px color-mix(in srgb,var(--row-accent) 45%,transparent)}.menu-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.menu-name{font-size:.98rem;font-weight:700;color:var(--text-color)}.menu-sub{font-size:.8rem;color:var(--text-dim)}.menu-state{flex-shrink:0;display:flex;flex-direction:column;align-items:flex-end;gap:3px}.menu-play{padding:9px 16px;border-radius:999px;font-size:.8rem;font-weight:700;color:var(--text-color);border:1px solid var(--border-strong);white-space:nowrap}.daily-row.is-next .menu-play{background:var(--text-color);border-color:transparent;color:var(--bg);font-weight:800}.daily-stars{display:flex;gap:2px;font-size:.72rem;color:var(--hint-color);line-height:1}.daily-stars .star-off{color:#2b3850}.daily-solved-tag{font-family:var(--font-mono);font-size:.6rem;letter-spacing:1px;color:var(--row-accent)}.mode-row .menu-icon{font-size:1.3rem}.mode-best{font-family:var(--font-mono);font-size:.6rem;letter-spacing:1px;text-transform:uppercase;color:var(--text-faint);white-space:nowrap}.mode-best:empty{display:none}.mode-row.has-best .mode-best{color:var(--row-accent)}.practice-block{width:100%;display:flex;flex-direction:column;gap:8px}.practice-row{display:flex;align-items:center;gap:14px;width:100%;padding:clamp(9px,1.5vh,14px) 16px;border-radius:var(--radius-lg);background:transparent;border:1px dashed var(--border-strong);color:var(--text-color);text-align:left;cursor:pointer;transition:border-color .2s ease}.practice-row:hover{border-color:var(--accent)}.practice-dots{display:grid;grid-template-columns:repeat(2,9px);gap:3px;flex-shrink:0}.practice-dots i{width:9px;height:9px;border-radius:2px;background:#ffffff29}.practice-dots i:first-child,.practice-dots i:last-child{background:var(--accent)}.practice-body{flex:1;min-width:0;display:flex;flex-direction:column}.practice-name{font-size:.92rem;font-weight:700;color:var(--text-color)}.practice-sub{font-size:.75rem;color:var(--text-faint)}.practice-chevron{font-size:1.1rem;color:var(--text-faint);transition:transform .2s ease}.practice-row[aria-expanded=true] .practice-chevron{transform:rotate(90deg)}.practice-options{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.practice-options[hidden]{display:none}.practice-chip{padding:10px 8px;border-radius:14px;background:var(--panel);border:1px solid var(--border);color:var(--text-dim);font-size:.85rem;font-weight:700;cursor:pointer;transition:all .2s ease}.practice-chip:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.home-footer{width:100%;display:flex;flex-direction:column;gap:12px;padding-top:4px}.home-promo{display:flex;align-items:center;gap:10px;width:100%;padding:clamp(8px,1.3vh,12px) 14px;border-radius:var(--radius);background:linear-gradient(120deg,#2ff0c817,#4d8dff12);border:1px solid var(--accent-line);color:var(--text-dim);font-size:.82rem;text-align:left;cursor:pointer;transition:all .2s ease}.home-promo strong{color:var(--text-color);font-weight:700}.home-promo:hover{border-color:var(--accent)}.promo-text{flex:1;min-width:0}.promo-arrow{color:var(--accent);font-weight:700;transition:transform .2s ease}.home-promo:hover .promo-arrow{transform:translate(3px)}.home-promo-static{cursor:default;background:#ffffff08;border-color:var(--line)}.home-promo-static:hover{border-color:var(--line)}.home-nav{display:flex;align-items:center;justify-content:space-around;gap:8px;padding:10px 4px 0;border-top:1px solid var(--border)}.nav-item{display:flex;flex-direction:column;align-items:center;gap:6px;padding:2px 6px;min-width:64px;background:none;border:none;color:var(--text-faint);font-size:.65rem;font-weight:600;cursor:pointer;transition:color .2s ease}.nav-item:hover{color:var(--text-dim)}.nav-item.is-active{color:var(--accent);font-weight:700}.nav-icon{display:flex;align-items:flex-end;justify-content:center;height:16px}.nav-icon-play{display:grid;grid-template-columns:repeat(2,7px);gap:2px;align-content:center}.nav-icon-play i{width:7px;height:7px;border-radius:2px;background:currentColor}.nav-icon-stats{gap:2px}.nav-icon-stats i{width:4px;border-radius:1px;background:currentColor}.nav-icon-stats i:nth-child(1){height:7px}.nav-icon-stats i:nth-child(2){height:13px}.nav-icon-stats i:nth-child(3){height:10px}.nav-icon-help{align-items:center;width:15px;height:15px;margin-bottom:1px;border-radius:999px;border:1.5px solid currentColor;font-size:.6rem;font-weight:800}#screen-game{max-width:480px}#screen-game.active{height:calc(var(--app-h) - var(--page-pad-v))}.game-header{display:flex;align-items:center;justify-content:space-between;width:100%;gap:10px}.header-center{display:flex;align-items:center;min-width:0}.header-right{display:flex;align-items:center;gap:8px}.mode-pill{display:flex;align-items:center;gap:8px;padding:7px 14px;border-radius:999px;background:var(--accent-soft);border:1px solid var(--accent-line);font-family:var(--font-mono);font-size:.68rem;letter-spacing:1.5px;text-transform:uppercase;color:var(--accent);white-space:nowrap}.puzzle-label{color:color-mix(in srgb,var(--accent) 62%,transparent);overflow:hidden;text-overflow:ellipsis}.puzzle-label:not(:empty):before{content:"· "}.goal-reminder{margin:clamp(10px,2vh,20px) 0 0;font-size:.8rem;color:var(--text-faint);text-align:center}.goal-reminder strong{color:var(--text-dim)}.stats-container{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;width:100%;padding:clamp(16px,3.5vh,34px) 6px clamp(14px,2.6vh,26px)}.stat-box{display:flex;flex-direction:column;gap:4px;min-width:0}.stat-box:first-child{align-items:flex-start}.stat-box.stat-target{align-items:center}#stat-lights,.stat-box.run-only{align-items:flex-end}.stat-box small{font-family:var(--font-mono);font-size:.62rem;letter-spacing:1.5px;text-transform:uppercase;color:var(--text-faint)}.stat-box span{font-family:var(--font-display);font-size:clamp(1.6rem,8vw,2.1rem);font-weight:700;line-height:1;color:var(--text-color);font-variant-numeric:tabular-nums}.stat-box.stat-target span{color:var(--accent)}.highlight{color:var(--accent)!important}.grid-area{flex:1 1 0;min-height:0;width:100%;display:flex;align-items:center;justify-content:center}#game-grid{--grid-pad: 0px;--cell-size: clamp(26px, calc( (100vw - 32px - (var(--grid-cols, 7) - 1) * var(--grid-gap)) / var(--grid-cols, 7) ), 58px);display:grid;grid-gap:var(--grid-gap)}@supports (container-type: size){.grid-area{container-type:size}#game-grid{--board-max: calc( var(--grid-cols, 7) * 58px + (var(--grid-cols, 7) - 1) * var(--grid-gap) );--board-min: calc( var(--grid-cols, 7) * 26px + (var(--grid-cols, 7) - 1) * var(--grid-gap) );--board: clamp(var(--board-min), min(100cqw, 100cqh), var(--board-max));--cell-size: calc( (var(--board) - (var(--grid-cols, 7) - 1) * var(--grid-gap)) / var(--grid-cols, 7) );width:var(--board);height:var(--board)}}#game-grid.grid--fade-in .cell{opacity:0}#game-grid.grid--fade-in.grid--fade-in-active .cell{opacity:1}#game-grid.grid--loading .cell{opacity:0}.cell{width:var(--cell-size);height:var(--cell-size);background-color:var(--off-color);border-radius:calc(var(--cell-size) * .28);cursor:pointer;border:1px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:calc(var(--cell-size) * .38);font-weight:600;color:var(--off-glyph);transition:background-color .15s ease,box-shadow .15s ease,color .15s ease,transform .15s ease,opacity 1s ease;user-select:none}.cell:hover{border-color:var(--border-strong);transform:scale(1.05);z-index:5}.cell:active{transform:scale(.95)}.cell[data-type=wall]{background:var(--bg-soft);border-color:#ffffff0d;cursor:not-allowed;color:#252f3d}.cell[data-type=wall]:hover{transform:none}.cell[data-type=heavy],.cell[data-type=bishop],.cell[data-type=bomb],.cell[data-type=archer],.cell[data-type=mirror]{font-size:calc(var(--cell-size) * .5);font-weight:500}.cell.is-on{border-color:transparent;color:#001410bf}.cell.is-on[data-type=standard]{background-color:var(--color-std);box-shadow:0 0 26px color-mix(in srgb,var(--color-std) 45%,transparent),inset 0 1px #ffffff59}.cell.is-on[data-type=bishop]{background-color:var(--color-bish);box-shadow:0 0 26px color-mix(in srgb,var(--color-bish) 45%,transparent),inset 0 1px #ffffff59}.cell.is-on[data-type=bomb]{background-color:var(--color-bomb);box-shadow:0 0 26px color-mix(in srgb,var(--color-bomb) 45%,transparent),inset 0 1px #ffffff59}.cell.is-on[data-type=archer]{background-color:var(--color-archer);box-shadow:0 0 26px color-mix(in srgb,var(--color-archer) 45%,transparent),inset 0 1px #ffffff59}.cell.is-on[data-type=mirror]{background-color:var(--color-mirror);box-shadow:0 0 26px color-mix(in srgb,var(--color-mirror) 45%,transparent),inset 0 1px #ffffff59}.cell.is-on[data-type=heavy]{background-color:var(--color-heavy);box-shadow:0 0 26px color-mix(in srgb,var(--color-heavy) 50%,transparent),inset 0 1px #ffffff59;color:#fff}.cell.cell--hint[data-type]{border-color:var(--hint-color);box-shadow:0 0 0 1.5px var(--bg),0 0 0 3.5px var(--hint-color),0 0 16px 3px #ffd1668c;animation:hint-pulse 1.5s ease-in-out infinite;z-index:4}@keyframes hint-pulse{0%,to{box-shadow:0 0 0 1.5px var(--bg),0 0 0 3.5px var(--hint-color),0 0 8px 1px #ffd16659}50%{box-shadow:0 0 0 1.5px var(--bg),0 0 0 3.5px var(--hint-color),0 0 22px 6px #ffd166d9}}.game-actions{display:flex;align-items:center;gap:12px;margin-top:clamp(10px,2vh,18px);width:100%}.reveal-box{flex:1;min-width:0;display:flex}.reveal-btn,.hidden-value{flex:1;min-width:0;display:flex;align-items:center;justify-content:center;gap:10px;height:56px;padding:0 16px;border-radius:18px;background:#ffd1661a;border:1px solid rgba(255,209,102,.3);color:var(--hint-color);font-size:.92rem;font-weight:700;cursor:pointer;transition:all .2s ease}.reveal-btn:hover{background:#ffd16629;border-color:var(--hint-color)}.reveal-btn:disabled{display:none}.hint-emoji{font-size:1.05rem}.hint-note{font-family:var(--font-mono);font-size:.66rem;font-weight:500;color:var(--hint-dim);background:#ffd1661f;padding:3px 8px;border-radius:999px;white-space:nowrap}.hidden-value{display:none;cursor:default;font-size:.85rem;color:var(--hint-color)}.hidden-value.revealed{display:flex}.restart-btn{flex-shrink:0;width:56px;height:56px;border-radius:18px;background:transparent;border:1px solid var(--border-strong);color:var(--text-dim);font-size:1.2rem;cursor:pointer;transition:all .2s ease}.restart-btn:hover{color:var(--color-bomb);border-color:var(--color-bomb)}#message{min-height:20px;margin-top:6px;font-size:.82rem;color:var(--hint-color);font-weight:600;text-align:center}#message:empty{min-height:0}.primary-btn{width:100%;height:56px;padding:0 18px;background:var(--accent);color:#05221b;border:none;font-weight:800;font-size:1rem;border-radius:18px;cursor:pointer;transition:all .2s ease}.primary-btn:hover{filter:brightness(1.06);box-shadow:0 0 26px var(--accent-glow)}.primary-btn:active{transform:translateY(1px)}.secondary-btn{height:52px;padding:0 18px;background:transparent;color:var(--text-color);border:1px solid var(--border-strong);font-weight:700;font-size:.92rem;border-radius:16px;cursor:pointer;transition:all .2s ease}.secondary-btn:hover{border-color:var(--text-faint)}.text-btn{background:transparent;border:none;color:var(--text-faint);padding:8px 14px;cursor:pointer;font-size:.85rem;font-weight:600;transition:color .2s ease}.text-btn:hover{color:var(--accent)}.icon-btn{background:transparent;border:1px solid var(--border-strong);color:var(--text-dim);font-size:1rem;width:38px;height:38px;border-radius:12px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;flex-shrink:0}.icon-btn:hover{border-color:var(--accent);color:var(--accent)}.modal{display:none;position:fixed;inset:0;background:#030509db;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);z-index:1000;align-items:center;justify-content:center;padding:16px}.modal.active{display:flex}.modal-content{background:var(--panel);border:1px solid var(--border-strong);border-radius:var(--radius-xl);padding:32px 26px 26px;max-width:420px;width:100%;text-align:center;box-shadow:0 24px 70px #000000b3;position:relative;animation:modalIn .25s ease}@keyframes modalIn{0%{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-large{max-width:560px;max-height:88vh;max-height:90dvh;overflow-y:auto}.modal-content h2{font-family:var(--font-display);font-size:1.55rem;font-weight:700;letter-spacing:-.02em}.modal-close{position:absolute;top:14px;right:14px;background:transparent;border:1px solid var(--border);color:var(--text-dim);font-size:1rem;width:32px;height:32px;border-radius:10px;cursor:pointer;transition:all .2s ease;z-index:2}.modal-close:hover{border-color:var(--color-bomb);color:var(--color-bomb)}.win-content{background:radial-gradient(85% 42% at 50% 0%,rgba(47,240,200,.14) 0%,transparent 62%),var(--panel);padding-top:22px}.win-dismiss{position:absolute;top:12px;right:12px;padding:6px 10px}.win-stars{display:flex;justify-content:center;gap:10px;font-size:1.9rem;margin:12px 0 10px;line-height:1}.win-stars .star{color:#2b3850}.win-stars .star.filled{color:var(--hint-color);text-shadow:0 0 22px rgba(255,209,102,.55);animation:starPop .45s ease backwards}.win-stars .star.filled:nth-child(2){animation-delay:.12s}.win-stars .star.filled:nth-child(3){animation-delay:.24s}@keyframes starPop{0%{transform:scale(0)}70%{transform:scale(1.3)}to{transform:scale(1)}}.win-rating{font-family:var(--font-display);font-size:clamp(1.9rem,9vw,2.35rem);font-weight:700;letter-spacing:-.02em;color:var(--text-color);margin:0}.win-message{color:var(--text-dim);font-size:.92rem;line-height:1.55;margin:10px auto 0;max-width:290px}.win-board{--win-cols: 5;--win-cell: 22px;display:grid;grid-template-columns:repeat(var(--win-cols),var(--win-cell));gap:5px;justify-content:center;margin:22px auto 0}.win-board .win-cell{width:var(--win-cell);height:var(--win-cell);border-radius:calc(var(--win-cell) * .3);background:var(--off-color);border:1px solid var(--border)}.win-board .win-cell.is-wall{background:var(--bg-soft);border-color:#ffffff0a}.win-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:22px 0 20px}.win-stat-item{background:var(--bg-soft);padding:13px 8px;border-radius:var(--radius);border:1px solid var(--border)}.win-stat-item span{display:block;font-family:var(--font-display);font-size:1.35rem;font-weight:700;line-height:1;color:var(--text-color)}.win-stat-item small{display:block;font-family:var(--font-mono);font-size:.56rem;letter-spacing:1.2px;text-transform:uppercase;color:var(--text-faint);margin-top:5px}.win-stat-target span{color:var(--accent)}.win-stat-streak{background:linear-gradient(180deg,rgba(255,209,102,.1),var(--bg-soft));border-color:#ffd1664d}.win-stat-streak span{color:var(--hint-color)}.win-actions{display:flex;flex-direction:column;gap:10px}.win-action-row{display:flex;gap:10px}.win-action-row .secondary-btn{flex:1}.help-content{text-align:left;background:radial-gradient(90% 40% at 50% 0%,rgba(47,240,200,.08) 0%,transparent 60%),var(--panel);padding-top:20px}.help-topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:26px}.help-progress{display:flex;gap:6px}.help-step-dot{width:22px;height:4px;padding:0;border:none;border-radius:999px;background:#ffffff24;cursor:pointer;transition:background .2s ease}.help-step-dot:hover{background:#ffffff4d}.help-step-dot.active,.help-step-dot.done{background:var(--accent)}.help-skip{padding:4px 6px;font-size:.8rem}.help-step{display:none}.help-step.active{display:block;animation:stepIn .25s ease}@keyframes stepIn{0%{opacity:0;transform:translate(8px)}to{opacity:1;transform:translate(0)}}.help-step h3{font-family:var(--font-display);font-size:clamp(1.35rem,6vw,1.75rem);font-weight:700;letter-spacing:-.02em;line-height:1.14;margin-bottom:12px}.help-step p{font-size:.92rem;line-height:1.6;color:var(--text-dim);margin:0 0 12px}.help-step p strong{color:var(--text-color)}.help-caption{font-family:var(--font-mono);font-size:.62rem;letter-spacing:1.6px;text-transform:uppercase;color:var(--text-faint);text-align:center}.goal-visual{display:flex;align-items:center;justify-content:center;gap:20px;margin:26px 0 16px}.goal-grid{display:grid;grid-template-columns:repeat(3,30px);gap:6px}.goal-cell{width:30px;height:30px;border-radius:9px;background:var(--off-color);border:1px solid var(--border)}.goal-cell.on{background:var(--color-std);border-color:transparent;box-shadow:0 0 20px var(--accent-glow),inset 0 1px #ffffff59}.goal-arrow{font-size:1.4rem;color:var(--text-faint)}.tryit-grid{display:grid;grid-template-columns:repeat(3,clamp(56px,18vw,74px));gap:9px;justify-content:center;margin:28px auto 0;width:fit-content}.tryit-cell{width:clamp(56px,18vw,74px);height:clamp(56px,18vw,74px);border-radius:19px;background:var(--off-color);border:1px solid var(--border);cursor:pointer;transition:all .15s ease;padding:0}.tryit-cell:hover{border-color:var(--border-strong);transform:scale(1.04)}.tryit-cell:active{transform:scale(.95)}.tryit-cell.on{background:var(--color-std);border-color:transparent;box-shadow:0 0 34px #2ff0c866,inset 0 1px #ffffff59}.tryit-result{min-height:24px;margin-top:22px;text-align:center;font-family:var(--font-mono);font-size:.66rem;letter-spacing:1.8px;text-transform:uppercase;color:var(--text-faint)}.tryit-result.success{color:var(--accent);letter-spacing:1.2px}.tryit-reset{display:block;margin:6px auto 0;font-size:.78rem}.help-legend{margin:18px 0 4px;display:flex;flex-direction:column;gap:8px}.legend-row{--legend-accent: var(--color-std);display:grid;grid-template-columns:150px 1fr 110px;gap:12px;align-items:center;padding:11px 13px;border-radius:var(--radius);background:var(--bg-soft);border:1px solid var(--border);cursor:pointer;user-select:none;transition:all .18s ease}.legend-row:hover{border-color:color-mix(in srgb,var(--legend-accent) 45%,transparent)}.legend-row:focus-visible{outline:2px solid var(--legend-accent);outline-offset:2px}.legend-row[data-type=standard]{--legend-accent: var(--color-std)}.legend-row[data-type=bishop]{--legend-accent: var(--color-bish)}.legend-row[data-type=bomb]{--legend-accent: var(--color-bomb)}.legend-row[data-type=archer]{--legend-accent: var(--color-archer)}.legend-row[data-type=heavy]{--legend-accent: var(--color-heavy)}.legend-row[data-type=mirror]{--legend-accent: var(--color-mirror)}.legend-row[data-type=wall]{--legend-accent: var(--color-wall)}.legend-left{display:grid;grid-template-columns:38px 1fr;gap:11px;align-items:center}.legend-badge{width:38px;height:38px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.15rem;background:var(--legend-accent);color:#001410bf;box-shadow:0 0 20px color-mix(in srgb,var(--legend-accent) 35%,transparent),inset 0 1px #ffffff59}.legend-row[data-type=heavy] .legend-badge,.legend-row[data-type=wall] .legend-badge{color:#fff}.legend-name{font-weight:700;color:var(--text-color);line-height:1.1;font-size:.92rem}.legend-sub{font-family:var(--font-mono);font-size:.6rem;color:var(--text-faint);margin-top:3px;text-transform:uppercase;letter-spacing:1.2px}.legend-desc{font-size:.82rem;color:var(--text-dim);line-height:1.45}.legend-preview{--mini: 12px;display:grid;grid-template-columns:repeat(5,var(--mini));gap:3px;justify-content:center}.legend-preview .mini-cell{width:var(--mini);height:var(--mini);border-radius:4px;background:var(--off-color);border:1px solid var(--border);transition:transform .12s ease}.legend-preview .mini-cell.is-source{background:var(--legend-accent);border-color:transparent;outline:2px solid #fff;outline-offset:-1px}.legend-preview .mini-cell.is-hit{background:var(--legend-accent);border-color:transparent;box-shadow:0 0 12px color-mix(in srgb,var(--legend-accent) 60%,transparent)}.legend-preview .mini-cell.is-wall{background:var(--bg-soft);border-color:#ffffff0d;box-shadow:none;outline:none}@keyframes miniPulse{0%{transform:scale(1);filter:brightness(1)}50%{transform:scale(1.15);filter:brightness(1.3)}to{transform:scale(1);filter:brightness(1)}}.legend-preview .mini-cell.flash{animation:miniPulse .38s ease}.help-points{list-style:none;padding:0;margin:16px 0 4px;display:flex;flex-direction:column;gap:10px}.help-points li{display:flex;gap:13px;align-items:flex-start;background:var(--bg-soft);border:1px solid var(--border);border-radius:var(--radius);padding:13px 15px;font-size:.86rem;line-height:1.5;color:var(--text-dim)}.help-points li strong{color:var(--text-color)}.point-icon{font-size:1.1rem;line-height:1.3;flex-shrink:0}.help-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:24px}.help-footer .secondary-btn,.help-footer .primary-btn{width:auto;min-width:128px}#screen-stats{max-width:560px}#screen-stats.active{justify-content:flex-start;min-height:0;padding-bottom:calc(20px + env(safe-area-inset-bottom,0px))}.stats-screen-content{width:100%;display:flex;flex-direction:column;gap:24px}.stats-header{position:sticky;top:calc(var(--page-pad-top) * -1);z-index:5;display:flex;align-items:center;gap:12px;padding:var(--page-pad-top) 0 12px;margin-bottom:-8px;background:var(--bg);border-bottom:1px solid var(--border)}.stats-header h1{font-family:var(--font-display);font-size:clamp(1.35rem,5.5vw,1.75rem);font-weight:700;letter-spacing:-.02em;flex:1;min-width:0}.stats-play-btn{border:1px solid var(--border-strong);border-radius:999px;padding:8px 16px;font-size:.82rem;font-weight:700;flex-shrink:0}.stats-play-btn:hover{border-color:var(--accent)}.stats-section{display:flex;flex-direction:column;gap:12px}.section-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px}.streak-hero{display:flex;align-items:center;gap:16px;padding:18px 20px;border-radius:22px;background:linear-gradient(140deg,#ffd16621,#ffd16605);border:1px solid rgba(255,209,102,.28)}.streak-hero-flame{font-size:1.75rem;line-height:1}.streak-hero-body{flex:1;min-width:0}.streak-hero-value{font-family:var(--font-display);font-size:2rem;font-weight:700;line-height:1;color:var(--hint-color)}.streak-hero-note{font-size:.8rem;color:var(--text-dim);margin-top:5px}.streak-dots{display:flex;gap:3px;flex-shrink:0}.streak-dots i{width:8px;height:8px;border-radius:999px;background:#ffffff1f}.streak-dots i.on{background:var(--hint-color)}.streak-hero.is-cold{background:var(--panel);border-color:var(--border)}.streak-hero.is-cold .streak-hero-flame{filter:grayscale(1);opacity:.5}.streak-hero.is-cold .streak-hero-value{color:var(--text-faint)}.stats-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.stat-card{background:var(--panel);border:1px solid var(--border);border-radius:18px;padding:15px 12px;min-width:0}.stat-value{font-family:var(--font-display);font-size:clamp(1.3rem,6vw,1.55rem);font-weight:700;color:var(--text-color);line-height:1}.stat-card:nth-child(2) .stat-value{color:var(--accent)}.stat-label{font-family:var(--font-mono);font-size:.56rem;color:var(--text-faint);text-transform:uppercase;letter-spacing:1.2px;margin-top:6px}.stat-note{font-size:.68rem;color:var(--text-fainter);margin-top:4px;line-height:1.3}.stats-footnote{margin:0;font-size:.75rem;color:var(--text-faint)}.bests-list{display:flex;flex-direction:column;gap:12px}.best-card{--best-accent: var(--accent);display:grid;grid-template-columns:76px minmax(0,1fr) 100px;align-items:center;gap:14px}.best-card.diff-easy{--best-accent: var(--color-std)}.best-card.diff-medium{--best-accent: var(--color-heavy)}.best-card.diff-hard{--best-accent: var(--color-bish)}.best-card.run-gauntlet{--best-accent: var(--color-bomb)}.best-card.run-blitz{--best-accent: var(--hint-color)}.best-difficulty{font-size:.82rem;font-weight:700;color:var(--text-color);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.best-bar{height:8px;border-radius:999px;background:#ffffff0f;overflow:hidden}.best-bar span{display:block;height:100%;border-radius:999px;background:var(--best-accent)}.best-sub{text-align:right;white-space:nowrap;min-width:0}.best-sub strong{display:block;font-size:.76rem;font-weight:700;color:var(--text-color)}.best-sub em{display:block;font-style:normal;font-size:.64rem;color:var(--text-faint);margin-top:2px;overflow:hidden;text-overflow:ellipsis}.best-card-empty .best-difficulty,.best-card-empty .best-sub strong{color:var(--text-faint)}.history-filters{display:flex;gap:6px}.filter-chip{background:transparent;border:1px solid var(--border);border-radius:999px;padding:6px 13px;color:var(--text-dim);font-size:.76rem;font-weight:600;cursor:pointer;transition:all .2s ease}.filter-chip:hover{border-color:var(--border-strong);color:var(--text-color)}.filter-chip.active{background:var(--accent-soft);border-color:var(--accent-line);color:var(--accent)}.history-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.history-row{display:flex;align-items:center;gap:12px;padding:13px 15px;border-radius:var(--radius);background:var(--panel);border:1px solid var(--border)}.hr-dot{width:10px;height:10px;border-radius:3px;flex-shrink:0;background:var(--text-faint)}.hr-dot.diff-easy{background:var(--color-std)}.hr-dot.diff-medium{background:var(--color-heavy)}.hr-dot.diff-hard{background:var(--color-bish)}.hr-info{flex:1;min-width:0}.hr-title{font-size:.86rem;font-weight:600;color:var(--text-color);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hr-sub{font-size:.72rem;color:var(--text-faint);margin-top:1px}.hr-score{text-align:right;flex-shrink:0}.hr-moves{font-family:var(--font-display);font-size:.92rem;font-weight:700;color:var(--text-color)}.hr-rating{font-family:var(--font-mono);font-size:.56rem;letter-spacing:1px;text-transform:uppercase;color:var(--text-faint);margin-top:3px}.rating-perfect .hr-rating{color:var(--hint-color)}.rating-great .hr-rating{color:var(--accent)}.history-more-btn{align-self:center;border:1px solid var(--border);border-radius:999px;padding:9px 20px;font-size:.82rem;font-weight:600}.history-more-btn:hover{border-color:var(--accent)}.skeleton-card,.skeleton-row{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);animation:stats-pulse 1.4s ease-in-out infinite}.skeleton-card{height:22px;border-radius:999px;display:block}.skeleton-row{height:58px;display:block}@keyframes stats-pulse{0%,to{opacity:1}50%{opacity:.45}}.stats-error{text-align:center;padding:20px 16px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-dim)}.stats-error p{margin:0 0 10px;font-size:.86rem}.stats-error .text-btn{border:1px solid var(--border);border-radius:999px;padding:8px 18px;font-size:.82rem}.stats-error .text-btn:hover{border-color:var(--accent)}.empty-text{text-align:center;padding:24px 16px;color:var(--text-faint);font-size:.85rem;background:var(--panel);border:1px dashed var(--border);border-radius:var(--radius);list-style:none}.run-only,.run-banner{display:none}body[data-mode=gauntlet] .run-banner,body[data-mode=blitz] .run-banner{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px;margin-top:12px}body[data-mode=gauntlet] #stat-budget,body[data-mode=blitz] #stat-clock{display:flex}body[data-mode=gauntlet] #stat-lights,body[data-mode=blitz] #stat-lights,body[data-mode=gauntlet] #share-btn,body[data-mode=blitz] #share-btn,body[data-mode=gauntlet] .restart-btn,body[data-mode=blitz] .restart-btn{display:none}.run-banner span{font-family:var(--font-mono);font-size:.62rem;letter-spacing:1.4px;text-transform:uppercase;padding:5px 11px;border-radius:999px;border:1px solid var(--border);color:var(--text-faint)}.run-banner .run-stage{color:var(--bg);background:var(--accent);border-color:transparent}.run-banner .run-best:empty{display:none}.stat-box.is-low span{color:var(--warn-color)}.stat-box.is-low small{color:color-mix(in srgb,var(--warn-color) 60%,var(--text-faint))}.stat-box.is-critical span{color:var(--danger-color);animation:budget-pulse 1s ease-in-out infinite}.stat-box.is-critical small{color:color-mix(in srgb,var(--danger-color) 60%,var(--text-faint))}@keyframes budget-pulse{0%,to{opacity:1}50%{opacity:.55}}#screen-game{position:relative}.stage-toast{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) scale(.85);padding:12px 26px;border-radius:999px;font-family:var(--font-display);font-size:1.1rem;font-weight:700;background:#05070beb;border:1px solid var(--border-strong);color:var(--text-color);box-shadow:0 10px 30px #0000008c;opacity:0;pointer-events:none;transition:opacity .18s ease,transform .18s ease;z-index:50}.stage-toast.visible{opacity:1;transform:translate(-50%,-50%) scale(1)}.stage-toast.rating-perfect{color:var(--accent);border-color:var(--accent);box-shadow:0 10px 30px #0000008c,0 0 26px var(--accent-glow)}.stage-toast.rating-great{color:var(--color-archer);border-color:var(--color-archer)}.run-over-icon{font-size:2.4rem;line-height:1;margin-bottom:8px}.run-over-reason{color:var(--text-dim);font-size:.86rem;margin:8px 0 18px;line-height:1.55}.run-over-score{display:flex;flex-direction:column;align-items:center;gap:4px;margin-bottom:14px}.run-score-value{font-family:var(--font-display);font-size:3rem;font-weight:700;line-height:1;color:var(--accent);text-shadow:0 0 26px var(--accent-glow)}.run-score-label{font-family:var(--font-mono);font-size:.6rem;text-transform:uppercase;letter-spacing:1.4px;color:var(--text-faint)}.run-over-badge{display:inline-block;margin:0 auto 14px;padding:6px 15px;border-radius:999px;font-size:.75rem;font-weight:800;color:#05221b;background:var(--hint-color)}.run-over-content .primary-btn{margin-top:6px}.run-over-content .text-btn{margin-top:8px}body[data-mode=blitz] .hint-note{display:inline-block}@media (max-width: 700px){:root{--page-pad-v: 24px;--page-pad-top: 10px}body{padding:var(--page-pad-top) 12px 14px}.legend-row{grid-template-columns:1fr;gap:8px}.legend-preview{justify-content:flex-start}.help-footer .secondary-btn,.help-footer .primary-btn{min-width:0;flex:1}.stats-screen-content{gap:20px}}@media (max-width: 420px){.stat-note{display:none}.filter-chip{padding:6px 11px;font-size:.72rem}.best-card{grid-template-columns:70px minmax(0,1fr) 92px;gap:10px}.nav-item{min-width:0}}@media (max-height: 660px){.goal-reminder{display:none}}@media (max-height: 640px){.menu-sub,.practice-sub{display:none}}@media (max-height: 600px){#first-time-banner,#stats-note{display:none!important}}@media (max-width: 330px){.menu-sub,.practice-sub{display:none}.nav-label{font-size:.6rem}}@media (orientation: landscape) and (max-height: 560px){#screen-home{max-width:860px}.home-content{display:grid;grid-template-columns:1fr 1fr;grid-auto-rows:min-content;align-content:start;column-gap:18px}.menu-stack{display:contents}.menu-sep{display:none}.home-top{grid-column:1 / -1;grid-row:1}.daily-list{grid-column:1;grid-row:2 / span 3;align-self:start}.mode-list{grid-column:2;grid-row:2;align-self:start}.practice-block{grid-column:2;grid-row:3;align-self:start}.home-footer{grid-column:2;grid-row:4;align-self:end}.home-title{font-size:1.4rem}.menu-sub,.practice-sub{display:none}.menu-row{padding:8px 12px}.menu-icon{width:34px;height:34px;border-radius:11px;font-size:1rem}.mode-row .menu-icon{font-size:1.1rem}.practice-row{padding:8px 14px}#screen-game{max-width:none}#screen-game.active{display:grid;grid-template-columns:minmax(140px,220px) minmax(0,1fr);grid-template-rows:auto auto auto auto minmax(0,1fr);column-gap:18px;align-items:start}.game-header{grid-area:1 / 1 / 2 / 3}.run-banner{grid-area:2 / 1 / 3 / 2}.stats-container{grid-area:3 / 1 / 4 / 2;grid-template-columns:repeat(2,1fr);padding-top:14px}.game-actions{grid-area:4 / 1 / 5 / 2;margin-top:0}#message{grid-area:5 / 1 / 6 / 2}.grid-area{grid-area:2 / 2 / 6 / 3;height:100%}.goal-reminder{display:none}body[data-mode=gauntlet] .run-banner,body[data-mode=blitz] .run-banner{justify-content:flex-start}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}body{padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}html,body{overscroll-behavior:none}#screen-stats{overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch}
