.slay-puzzle-root,:root{--wood-base:#8a6248;--wood-light:#a88060;--wood-dark:#6e4a38;--wood-darker:#5a3c2c;--wood-highlight:#ffe1be24;--wood-highlight-strong:#ffebcd33;--wood-shadow:#2d1c121a;--wood-shadow-soft:#2d1c120d;--wood-bevel:6px;--wood-radius:6px;--wood-lip-depth:6px;--wood-mid:var(--wood-base);--recess-shadow:var(--wood-shadow);--orange-surface:#ff6b1a;--bg-deep:#081828;--bg-mid:#0d2240;--bg-glow:#28508259}.slay-puzzle-root,.slay-puzzle-root *{box-sizing:border-box}.slay-puzzle-root{--puzzle-fg:var(--foreground);--puzzle-muted:var(--muted-foreground);--puzzle-accent:var(--primary);--puzzle-accent-soft:color-mix(in oklch, var(--primary) 18%, transparent);--puzzle-highlight:var(--primary);--puzzle-highlight-soft:color-mix(in oklch, var(--primary) 30%, transparent);--puzzle-highlight-core:color-mix(in oklch, var(--primary-foreground) 8%, #fff);--puzzle-collected:color-mix(in oklch, var(--primary) 72%, var(--accent));--puzzle-progress:color-mix(in oklch, var(--primary) 80%, white);--puzzle-progress-track:color-mix(in oklch, var(--secondary) 24%, var(--foreground));--puzzle-glow-far:color-mix(in oklch, var(--primary) 48%, var(--secondary));--puzzle-glow-mid:color-mix(in oklch, var(--primary) 72%, white);--puzzle-glow-core:var(--puzzle-highlight-core);--board-glow-pad-x:20px;--board-glow-pad-y:12px;--puzzle-stat-moves:color-mix(in oklch, var(--secondary) 78%, var(--muted-foreground));--puzzle-stat-time:color-mix(in oklch, var(--accent) 82%, var(--muted-foreground));--puzzle-warn:color-mix(in oklch, var(--accent) 88%, #d97706);--puzzle-icon-bg:color-mix(in oklab, var(--foreground) 6%, var(--card));--puzzle-icon-border:color-mix(in oklab, var(--foreground) 22%, transparent);--puzzle-track:color-mix(in oklab, var(--foreground) 14%, transparent);--puzzle-stat:var(--foreground);--puzzle-win-surface:color-mix(in oklch, var(--secondary) 42%, var(--card));--puzzle-win-panel-top:color-mix(in oklch, var(--secondary) 62%, var(--card));--puzzle-win-panel-bottom:color-mix(in oklch, var(--primary) 46%, var(--card));color:var(--puzzle-fg);touch-action:none;-webkit-user-select:none;user-select:none;-webkit-font-smoothing:antialiased;background:0 0;justify-content:center;align-items:stretch;width:100%;height:auto;min-height:0;font-family:Segoe UI,system-ui,-apple-system,sans-serif;display:flex;overflow:hidden}.slay-puzzle-root:has(#game-screen.active){flex-direction:column;flex:auto;align-items:stretch;width:100%;height:100%;min-height:0;display:flex}.dark .slay-puzzle-root{--puzzle-accent-soft:color-mix(in oklch, var(--primary) 24%, transparent);--puzzle-highlight-soft:color-mix(in oklch, var(--primary) 36%, transparent);--puzzle-progress:color-mix(in oklch, var(--primary) 76%, white);--puzzle-glow-far:color-mix(in oklch, var(--primary) 52%, var(--secondary));--puzzle-glow-mid:color-mix(in oklch, var(--primary) 78%, white);--puzzle-progress-track:color-mix(in oklch, var(--secondary) 30%, var(--foreground));--puzzle-icon-bg:color-mix(in oklch, var(--foreground) 10%, transparent);--puzzle-icon-border:color-mix(in oklch, var(--foreground) 22%, transparent);--puzzle-track:color-mix(in oklch, var(--foreground) 16%, transparent);--puzzle-stat:var(--foreground);--puzzle-win-surface:color-mix(in oklch, var(--secondary) 36%, var(--card));--puzzle-win-panel-top:color-mix(in oklch, var(--secondary) 58%, var(--card));--puzzle-win-panel-bottom:color-mix(in oklch, var(--primary) 52%, var(--card))}.slay-puzzle-root #app,.slay-puzzle-root .slay-puzzle-app{flex-direction:column;width:100%;max-width:100%;height:auto;margin:0 auto;display:flex;position:relative}.slay-puzzle-root:has(#game-screen.active) #app{flex-direction:column;flex:auto;width:100%;max-width:100%;height:100%;min-height:0;display:flex}.slay-puzzle-root:has(#game-screen.active) .slay-puzzle-app{flex-direction:column;flex:auto;width:100%;max-width:100%;height:100%;min-height:0;display:flex}@media (min-width:768px){.slay-puzzle-root #app,.slay-puzzle-root .slay-puzzle-app{max-width:640px}.slay-puzzle-root:has(#game-screen.active) #app{max-width:min(100%,900px)}.slay-puzzle-root:has(#game-screen.active) .slay-puzzle-app{max-width:min(100%,900px)}}@media (min-width:1024px){.slay-puzzle-root #app,.slay-puzzle-root .slay-puzzle-app{max-width:720px}.slay-puzzle-root:has(#game-screen.active) #app{max-width:min(100%,980px)}.slay-puzzle-root:has(#game-screen.active) .slay-puzzle-app{max-width:min(100%,980px)}}.slay-puzzle-root .title{display:none}.slay-puzzle-root .screen{align-self:stretch;width:100%;padding:0}@media (min-width:768px){.slay-puzzle-root .screen{padding:0}}.slay-puzzle-root #menu-screen.screen.active{justify-content:flex-start;gap:8px;height:auto;min-height:0;padding:0 0 4px}.slay-puzzle-root #game-screen.screen.active{flex-direction:column;flex:auto;justify-content:flex-start;align-self:stretch;gap:6px;width:100%;height:100%;min-height:0;max-height:none;padding:4px 8px 8px;display:flex;position:relative;overflow:hidden}.slay-puzzle-root #game-screen.screen.active .play-hud{padding:10px 12px 8px}.slay-puzzle-root #game-screen.screen.active .play-hud__bar{margin-top:8px;padding-top:8px}@media (min-width:768px){.slay-puzzle-root #game-screen.screen.active{gap:8px;padding:6px 10px 8px}.slay-puzzle-root #game-screen.screen.active .play-hud{padding:12px 16px 10px}.slay-puzzle-root{--board-glow-pad-x:18px;--board-glow-pad-y:10px}}@media (min-width:1024px){.slay-puzzle-root #game-screen.screen.active{gap:10px;padding:6px 12px 8px}}@media (max-width:767px){.slay-puzzle-root #game-screen.active .play-hud{z-index:5;width:100%;margin:0;position:absolute;left:0;right:0}}.slay-puzzle-root:has(#game-screen.active) #app>#game-screen.active{flex:auto;height:100%;min-height:0}.slay-puzzle-root .menu-maze-preview{flex:none;width:100%;min-height:0;padding:0}.screen{flex-direction:column;align-items:center;height:100%;padding:24px 16px;display:none}.screen.active{display:flex}.title{color:#fff;text-align:center;text-shadow:0 1px #6b4226,0 3px #4a2e1a,0 5px #3a2210,0 8px 16px #0000008c;letter-spacing:1px;margin-top:40px;margin-bottom:24px;font-size:2rem;font-weight:900}.menu-titles{display:none}.menu-lock{background:color-mix(in oklab, var(--destructive) 18%, transparent);color:var(--destructive);text-align:center;border-radius:10px;margin:8px 16px 0;padding:8px 12px;font-size:.8rem}.menu-lock.hidden{display:none}.title-label,.menu-title{color:var(--puzzle-accent);text-align:center;overflow-wrap:anywhere;word-break:break-word;max-width:100%;font-size:.875rem;font-weight:600;line-height:1.3;transition:color .25s,transform .25s,filter .25s}.menu-title{margin-top:2px;margin-bottom:4px}@media (min-width:768px){.title-label,.menu-title{font-size:1.05rem}}@media (min-width:1024px){.title-label,.menu-title{font-size:1.125rem}}.title-label--collected,.menu-title--collected{color:var(--puzzle-collected);text-shadow:0 0 18px var(--puzzle-highlight-soft);font-weight:800}.dark .title-label--collected,.dark .menu-title--collected{color:var(--accent);text-shadow:0 0 20px var(--puzzle-highlight-soft), 0 0 40px color-mix(in oklch, var(--accent) 22%, transparent)}.title-name--celebrate{animation:.65s ease-in-out 4 titleNameCelebrate}@keyframes titleNameCelebrate{0%,to{filter:brightness();transform:scale(1)}50%{filter:brightness(1.15);transform:scale(1.04)}}.play-hud{background:var(--card);border:1px solid var(--border);width:100%;box-shadow:0 1px 3px color-mix(in oklab, var(--foreground) 6%, transparent);border-radius:14px;flex:none;margin-bottom:0;padding:12px 14px 10px;scroll-margin-top:8px}@media (min-width:768px){.play-hud{border-radius:16px;padding:14px 18px 12px}}@media (min-width:1024px){.play-hud{padding:16px 20px 14px}}.play-hud__head{align-items:flex-start;gap:10px;display:flex}.play-hud__info{text-align:center;flex:1;min-width:0;padding-right:44px}@media (min-width:768px){.play-hud__info{padding-right:48px}}.play-hud__bar{border-top:1px solid var(--border);grid-template-columns:1fr 1fr 1fr;align-items:stretch;margin-top:10px;padding-top:10px;display:grid;overflow:visible}@media (min-width:768px){.play-hud__bar{margin-top:12px;padding-top:12px}}.hud-cell{border-right:1px solid color-mix(in oklab, var(--border) 80%, transparent);justify-content:center;align-items:center;gap:.5rem;padding:2px 10px;display:flex}.hud-cell:last-child{border-right:none}@media (min-width:768px){.hud-cell{gap:.65rem;padding:4px 14px}}@media (min-width:1024px){.hud-cell{gap:.75rem;padding:4px 18px}}.hud-cell__icon{width:1.375rem;height:1.375rem;color:var(--puzzle-muted);flex-shrink:0}@media (min-width:768px){.hud-cell__icon{width:1.625rem;height:1.625rem}}@media (min-width:1024px){.hud-cell__icon{width:1.75rem;height:1.75rem}}.hud-cell__value,.stat-value{color:var(--puzzle-stat);font-variant-numeric:tabular-nums;letter-spacing:-.02em;font-size:clamp(1.375rem,1rem + 1.2vw,2rem);font-weight:700;line-height:1}.hud-cell--title{padding-inline:8px;overflow:visible}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.title-progress{justify-content:center;align-items:center;display:flex;position:relative;overflow:visible}.title-dots{align-items:center;gap:.45rem;padding:4px 6px;display:flex;overflow:visible}@media (min-width:768px){.title-dots{gap:.55rem}}.title-dot{background:var(--puzzle-track);border-radius:50%;width:.625rem;height:.625rem;transition:background .2s,transform .2s,box-shadow .2s}@media (min-width:768px){.title-dot{width:.75rem;height:.75rem}}@media (min-width:1024px){.title-dot{width:.8125rem;height:.8125rem}}.title-dot.is-filled{background:color-mix(in oklch, var(--primary) 68%, white);box-shadow:0 0 0 2px color-mix(in oklch, var(--primary) 75%, white), 0 0 6px 1px color-mix(in oklch, var(--primary) 85%, transparent), 0 0 14px 3px color-mix(in oklch, var(--primary) 65%, transparent), 0 0 22px 5px color-mix(in oklch, var(--primary) 42%, transparent);filter:brightness(1.08)}.title-dot.is-current{box-shadow:0 0 0 2px color-mix(in oklch, var(--primary) 90%, white), 0 0 10px 2px color-mix(in oklch, var(--primary) 55%, transparent);background:0 0;transform:scale(1.15)}.title-progress--complete .title-dot.is-filled{box-shadow:0 0 0 2px #fff, 0 0 8px 2px color-mix(in oklch, var(--primary) 95%, transparent), 0 0 18px 4px color-mix(in oklch, var(--primary) 78%, transparent), 0 0 28px 6px color-mix(in oklch, var(--primary) 55%, transparent);animation:1.35s ease-in-out infinite title-dot-complete-glow}.title-progress--complete .title-dot.is-current{box-shadow:0 0 0 2px var(--puzzle-glow-core), 0 0 14px 3px color-mix(in oklch, var(--primary) 85%, transparent), 0 0 28px 6px color-mix(in oklch, var(--primary) 58%, transparent);animation:1.35s ease-in-out 80ms infinite title-dot-complete-glow}@keyframes title-dot-complete-glow{0%,to{filter:brightness(1.08)}50%{filter:brightness(1.38)}}@media (prefers-reduced-motion:reduce){.title-progress--complete .title-dot{animation:none}}.title-progress-track{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.menu-maze-preview{flex:none;justify-content:center;align-items:center;width:100%;padding:0;display:flex}.board-frame{background:radial-gradient(ellipse 120% 80% at 30% 20%, var(--wood-highlight) 0%, transparent 55%), linear-gradient(148deg, var(--wood-light) 0%, var(--wood-base) 30%, var(--wood-dark) 100%);width:100%;max-width:100%;height:fit-content;box-shadow:0 1px 0 #ffe1be33 inset, 0 -2px 5px #2d1c1240 inset, 2px 4px 0 var(--wood-shadow-soft), 4px 8px 18px var(--wood-shadow);border-radius:18px;flex-shrink:0;align-self:center;padding:8px;position:relative}@media (min-width:768px){.board-frame{border-radius:26px;max-width:min(100%,560px);padding:11px}}@media (min-width:1024px){.board-frame{max-width:min(100%,640px);padding:12px}}.board-frame:before{content:"";pointer-events:none;z-index:0;background:linear-gradient(#ffe4c329 0%,#b088684d 8%,#78544073 22%,#5a403080 50%,#4632266b 100%);border-radius:14px;position:absolute;inset:4px;box-shadow:inset 0 0 0 1px #ffe1be1a,inset 0 1px #ffebcd2e,inset 0 3px #37261c1f,inset 0 5px 12px #2d1c1233}.board-frame:after{content:"";pointer-events:none;background:linear-gradient(135deg,#ffe6c81f 0%,#0000 38% 62%,#2d1c1224 100%);border-radius:18px;position:absolute;inset:0}.board-frame--preview{border-radius:18px;align-self:center;width:100%;max-width:100%;height:fit-content;padding:8px}@media (min-width:768px){.board-frame--preview{border-radius:22px;max-width:min(100%,520px);padding:10px}}@media (min-width:1024px){.board-frame--preview{max-width:min(100%,600px)}}.board-frame canvas{vertical-align:top;cursor:grab;z-index:1;border-radius:12px;width:100%;height:auto;display:block;position:relative;box-shadow:inset 0 1px #ffe1be1a,inset 0 3px 6px #2d1c121f,inset 0 8px 20px #2d1c1214}.board-frame canvas:active{cursor:grabbing}.play-btn{background:var(--primary);color:var(--primary-foreground);border-radius:var(--radius-lg,.625rem);cursor:pointer;width:min(100%,18rem);box-shadow:none;border:1px solid #0000;margin-top:4px;margin-bottom:0;padding:.875rem 2rem;font-size:1rem;font-weight:600;transition:background .15s,opacity .15s}.play-btn:hover{background:color-mix(in oklab, var(--primary) 82%, transparent);box-shadow:none;transform:none}.play-btn:active{box-shadow:none;opacity:.95;transform:translateY(1px)}.level-title{color:var(--puzzle-fg);margin-bottom:2px;font-size:clamp(1rem,.85rem + .5vw,1.35rem);font-weight:700;line-height:1.2}.stat--moves .hud-cell__icon{color:var(--puzzle-stat-moves)}.stat--time .hud-cell__icon{color:var(--puzzle-stat-time)}.stat--low .stat-value{color:var(--puzzle-warn)}.stat--critical .stat-value{color:var(--destructive);animation:.7s ease-in-out infinite statPulse}@keyframes statPulse{0%,to{opacity:1}50%{opacity:.55}}.overlay.puzzle-modal-overlay{z-index:50;background:color-mix(in oklab, var(--background) 20%, #08101c9e);-webkit-backdrop-filter:blur(8px);padding:1.25rem;position:fixed;inset:0}.dark .overlay.puzzle-modal-overlay{background:#040a14b8}.puzzle-modal{text-align:center;background:var(--card);width:min(100%,22rem);color:var(--card-foreground);border:1px solid var(--border);box-shadow:0 1px 3px color-mix(in oklab, var(--foreground) 8%, transparent), 0 20px 50px #00000047;border-radius:18px;margin:auto;padding:1.5rem 1.35rem 1.35rem;animation:.28s cubic-bezier(.34,1.25,.64,1) both puzzleModalIn}@media (min-width:768px){.puzzle-modal{border-radius:20px;width:min(100%,24rem);padding:1.75rem 1.5rem 1.5rem}}@keyframes puzzleModalIn{0%{opacity:0;transform:translateY(12px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}.puzzle-modal__badge{border-radius:999px;justify-content:center;align-items:center;width:3.25rem;height:3.25rem;margin:0 auto .85rem;display:inline-flex}@media (min-width:768px){.puzzle-modal__badge{width:3.5rem;height:3.5rem;margin-bottom:1rem}}.puzzle-modal__badge--danger{color:var(--destructive);background:color-mix(in oklch, var(--destructive) 14%, var(--card));border:1px solid color-mix(in oklch, var(--destructive) 22%, transparent)}.puzzle-modal__badge--warn{color:var(--puzzle-warn);background:color-mix(in oklch, var(--puzzle-warn) 14%, var(--card));border:1px solid color-mix(in oklch, var(--puzzle-warn) 24%, transparent)}.puzzle-modal__badge--lock{color:var(--puzzle-muted);background:color-mix(in oklab, var(--foreground) 6%, var(--card));border:1px solid color-mix(in oklab, var(--foreground) 12%, transparent)}.puzzle-modal__glyph{width:1.625rem;height:1.625rem;display:none}@media (min-width:768px){.puzzle-modal__glyph{width:1.75rem;height:1.75rem}}.puzzle-modal-overlay[data-variant=time] .puzzle-modal__glyph--time,.puzzle-modal-overlay[data-variant=moves] .puzzle-modal__glyph--moves,.puzzle-modal-overlay[data-variant=reset] .puzzle-modal__glyph--reset,.puzzle-modal-overlay[data-variant=back] .puzzle-modal__glyph--back,.puzzle-modal-overlay[data-variant=lock] .puzzle-modal__glyph--lock{display:block}.puzzle-modal__title{color:var(--foreground);letter-spacing:-.02em;margin:0 0 .5rem;font-size:clamp(1.2rem,1rem + .6vw,1.45rem);font-weight:800;line-height:1.25}.puzzle-modal__message{color:var(--muted-foreground);margin:0 0 1.25rem;font-size:clamp(.875rem,.8rem + .25vw,.975rem);line-height:1.45}.puzzle-modal__message:empty{margin:0;display:none}.puzzle-modal__actions{flex-direction:column;align-items:stretch;gap:.625rem;display:flex}.puzzle-modal__btn{border-radius:var(--radius-lg,.625rem);cursor:pointer;justify-content:center;align-items:center;width:100%;min-height:2.75rem;padding:.7rem 1.25rem;font-size:.9375rem;font-weight:600;line-height:1.2;transition:background .15s,border-color .15s,opacity .15s,transform .1s;display:inline-flex}@media (min-width:768px){.puzzle-modal__btn{min-height:2.875rem;font-size:1rem}}.puzzle-modal__btn--primary{background:var(--primary);color:var(--primary-foreground);border:1px solid #0000}.puzzle-modal__btn--primary:hover{background:color-mix(in oklab, var(--primary) 85%, transparent)}.puzzle-modal__btn--primary:active{opacity:.95;transform:translateY(1px)}.puzzle-modal__btn--ghost{color:var(--foreground);border:1px solid var(--border);background:0 0}.puzzle-modal__btn--ghost:hover{background:color-mix(in oklab, var(--foreground) 5%, var(--card))}.puzzle-modal__btn--ghost:active{transform:translateY(1px)}.header-actions{align-items:center;gap:6px;display:flex}.back-btn{width:44px;height:44px;color:var(--puzzle-muted);cursor:pointer;background:0 0;border:none;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;margin:-4px 0 -4px -4px;padding:0;transition:color .15s,background .15s;display:inline-flex}@media (min-width:768px){.back-btn{border-radius:12px;width:48px;height:48px;margin:-6px 0 -6px -6px}}.back-btn__icon{width:1.375rem;height:1.375rem;display:block}@media (min-width:768px){.back-btn__icon{width:1.5rem;height:1.5rem}}.back-btn:hover:not(:disabled){color:var(--puzzle-fg);background:color-mix(in oklab, var(--foreground) 6%, transparent)}.back-btn:active:not(:disabled){background:color-mix(in oklab, var(--foreground) 10%, transparent);transform:scale(.97)}.back-btn:disabled{opacity:.28;cursor:not-allowed}.play-btn.hidden{display:none!important}.game-container{flex:auto;justify-content:center;align-self:stretch;align-items:center;width:100%;min-height:0;display:flex;overflow:hidden}.slay-puzzle-root #game-screen.active .game-container{flex:auto;min-height:0;max-height:none;padding:2px 0 10px;overflow:visible}@media (max-width:767px){.slay-puzzle-root #game-screen.active .play-hud{align-self:stretch;width:auto;margin-inline:.35rem}.slay-puzzle-root #game-screen.active .game-container{width:100%;max-width:100%;margin:0;padding:2px 0 10px}.slay-puzzle-root #game-screen.active .game-container .board-frame{border-radius:14px;padding:4px}}.slay-puzzle-root #game-screen.active .game-container .board-frame{padding:4px}@media (min-width:768px){.slay-puzzle-root #game-screen.active .game-container .board-frame{padding:6px}.slay-puzzle-root #game-screen.active .game-container{padding:4px 6px}}.board-frame-glow{max-width:100%;max-height:100%;padding:var(--board-glow-pad-y) var(--board-glow-pad-x);box-sizing:border-box;flex:none;justify-content:center;align-items:center;display:flex;overflow:visible}.game-container .board-frame{flex:none;width:fit-content;min-width:0;height:fit-content;min-height:0;max-height:100%;position:relative;overflow:hidden;max-width:100%!important}.game-container .board-frame canvas{width:auto;max-width:none;height:auto;max-height:none;display:block}.board-progress{pointer-events:none;z-index:4;max-width:none;max-height:none;display:block;position:absolute;inset:0;overflow:visible;width:100%!important;height:100%!important}.board-progress__track,.board-progress__fill{fill:none;stroke-linecap:round;stroke-linejoin:round}.board-progress__track{stroke:color-mix(in oklch, var(--puzzle-progress-track) 72%, transparent);stroke-width:7px}.board-progress__fill{stroke:var(--puzzle-progress);stroke-width:7px;stroke-dasharray:100;stroke-dashoffset:100px;filter:none;transition:none}@media (min-width:768px){.board-progress__track,.board-progress__fill{stroke-width:9px}}.board-progress__bloom{fill:none;stroke:#0000;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:100;stroke-dashoffset:100px;opacity:0;pointer-events:none}.board-progress__bloom--far{stroke-width:22px}.board-progress__bloom--mid{stroke-width:12px}.game-container .board-frame.board-frame--complete{overflow:visible}.board-frame--complete .board-progress__bloom--far{stroke:var(--puzzle-glow-far);opacity:.9;filter:url(#board-progress-glow-far);animation:1.35s ease-in-out infinite board-progress-bloom-pulse}.board-frame--complete .board-progress__bloom--mid{stroke:var(--puzzle-glow-mid);opacity:1;filter:url(#board-progress-glow-mid);animation:1.35s ease-in-out 80ms infinite board-progress-bloom-pulse}.board-frame--complete .board-progress__fill{stroke:var(--puzzle-glow-core);stroke-width:10px}@keyframes board-progress-bloom-pulse{0%,to{opacity:.78}50%{opacity:1}}@media (prefers-reduced-motion:reduce){.board-frame--complete .board-progress__bloom{opacity:1;animation:none}}.overlay{z-index:10;pointer-events:auto;background:0 0;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.overlay.hidden{display:none}.overlay.win-overlay{z-index:50;background:color-mix(in oklab, var(--background) 35%, #08101cb8);-webkit-backdrop-filter:blur(8px);overscroll-behavior:contain;padding:12px;position:fixed;inset:0;overflow:auto}.dark .overlay.win-overlay{background:#040c18c7}.overlay.win-overlay.hidden{display:none}.win-reveal{width:min(100%,360px);box-shadow:0 16px 48px #00000047, 0 0 0 1px color-mix(in oklab, var(--foreground) 10%, transparent);background:var(--card);border-radius:20px;flex-direction:column;align-items:stretch;gap:0;margin:auto;display:flex;position:relative;overflow:hidden}.win-reveal-photo-wrap{aspect-ratio:4/5;width:100%;max-height:min(46dvh,320px);box-shadow:none;opacity:0;background:#1a120c;border-radius:0;position:relative;overflow:hidden;transform:translateY(10px)}@media (min-width:768px){.win-reveal{border-radius:22px;width:min(100%,380px)}.win-reveal-photo-wrap{aspect-ratio:1;max-height:none}}.win-overlay--playing .win-reveal-photo-wrap{animation:.55s cubic-bezier(.34,1.2,.64,1) forwards winPhotoWrapIn}@keyframes winPhotoWrapIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.win-reveal-photo{object-fit:cover;object-position:top center;transform-origin:50% 20%;will-change:transform;width:100%;height:100%;display:block;transform:scale(1)}.win-overlay--playing .win-reveal-photo{animation:3.2s cubic-bezier(.22,.61,.36,1) forwards winPhotoZoom}@keyframes winPhotoZoom{0%{filter:brightness(.92);transform:scale(1)}35%{filter:brightness(1.05)}to{filter:brightness(1.08);transform:scale(1.12)}}.win-reveal-shine{pointer-events:none;opacity:0;background:linear-gradient(120deg,#0000 35%,#ffffff2e 48%,#0000 62%);position:absolute;inset:0;transform:translate(-120%)}.win-overlay--playing .win-reveal-shine{animation:1.4s ease-out .25s forwards winShine}@keyframes winShine{0%{opacity:0;transform:translate(-120%)}20%{opacity:1}to{opacity:0;transform:translate(120%)}}.win-confetti{pointer-events:none;position:absolute;inset:-10% -5% 20%;overflow:hidden}.win-confetti span{top:-12%;left:var(--x);width:var(--s);height:calc(var(--s) * .55);background:var(--c);opacity:0;animation:confettiFall var(--d) linear var(--delay) forwards;border-radius:2px;position:absolute}@keyframes confettiFall{0%{opacity:1;transform:translate(0,0)rotate(0)}to{opacity:.15;transform:translate3d(var(--dx), 460px, 0) rotate(720deg)}}.win-card{z-index:2;background:linear-gradient(165deg, color-mix(in oklch, var(--secondary) 16%, var(--card)), var(--card) 52%, color-mix(in oklch, var(--primary) 12%, var(--card)));border:none;border-top:1px solid var(--border);text-align:center;width:100%;box-shadow:none;isolation:isolate;opacity:1;border-radius:0;padding:18px 20px 20px;position:relative;transform:translateY(10px)}.win-overlay--playing .win-card{animation:.55s cubic-bezier(.34,1.2,.64,1) forwards winCardIn}@keyframes winCardIn{0%{transform:translateY(10px)}to{transform:translateY(0)}}.win-stars{color:var(--accent);letter-spacing:8px;text-shadow:0 0 18px var(--puzzle-highlight-soft);margin-bottom:8px;font-size:1.65rem;animation:1s infinite alternate starPulse}@keyframes starPulse{0%{transform:scale(1)}to{transform:scale(1.1)}}.win-card h2{color:var(--card-foreground);opacity:1;margin-bottom:6px;font-size:1.1rem;font-weight:700;line-height:1.35}.win-title-earned{letter-spacing:-.015em;color:var(--accent);text-shadow:0 0 28px color-mix(in oklch, var(--accent) 58%, transparent), 0 2px 10px #0006;margin:4px 0 12px;font-size:clamp(1.55rem,1.2rem + 1.8vw,2.35rem);font-weight:800;line-height:1.2;animation:.8s cubic-bezier(.34,1.35,.64,1) 1.35s both winTitleEarnedIn}@media (min-width:768px){.win-title-earned{font-size:clamp(1.75rem,1.35rem + 1.4vw,2.65rem)}}.win-title-earned.hidden{display:none}@keyframes winTitleEarnedIn{0%{opacity:0;transform:translateY(10px)scale(.92)}to{opacity:1;transform:translateY(0)scale(1)}}.win-card p{color:var(--muted-foreground);opacity:1;margin-bottom:12px;font-size:.9rem}.win-card p:empty{margin:0;display:none}.win-card .play-btn{margin-bottom:0}.win-auto{color:var(--muted-foreground);opacity:1;margin-top:4px;font-size:.8rem}.win-actions{flex-direction:column;align-items:center;gap:10px;display:flex}.play-btn--ghost{color:var(--foreground);border:1px solid var(--border);box-shadow:none;background:0 0;width:min(100%,18rem);padding:.75rem 1.75rem;font-size:.95rem}.play-btn--ghost:hover{background:var(--muted);color:var(--foreground);box-shadow:none;transform:none}.hint{color:var(--puzzle-muted);text-align:center;margin-bottom:16px;font-size:.75rem}
