.page--puzzle{min-height:100dvh;display:flex;flex-direction:column;touch-action:manipulation}.puzzle-header{display:grid;grid-template-columns:auto 1fr auto auto auto;align-items:center;gap:.6rem;padding:1rem 4rem 1rem 1.25rem;border-bottom:1px solid var(--line-soft);position:sticky;top:0;z-index:10;backdrop-filter:blur(10px);background:color-mix(in srgb,var(--bg) 80%,transparent)}.puzzle-titles{padding-right:.4rem}.back{width:38px;height:38px;display:grid;place-items:center;border-radius:999px;background:var(--bg-elev);border:1px solid var(--line);font-size:1.1rem;transition:background var(--dur) var(--ease)}.back:hover{background:var(--bg-card-hover)}.puzzle-titles{min-width:0}.puzzle-name{margin:0;font-size:1.1rem;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.puzzle-meta{margin:.15rem 0 0;color:var(--text-muted);font-size:.82rem;display:flex;align-items:center;gap:.4rem}.puzzle-sep{opacity:.5}.puzzle-diff{text-transform:capitalize;color:var(--text)}.puzzle-timer{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:1.05rem;padding:.25rem .7rem;border-radius:999px;background:var(--bg-elev);border:1px solid var(--line-soft);color:var(--text)}.puzzle-timer.is-running{color:var(--accent);border-color:var(--accent-soft)}.puzzle-timer.is-done{color:var(--good);border-color:color-mix(in srgb,var(--good) 50%,transparent)}.puzzle-timer.is-paused{color:var(--text-muted);border-color:var(--line)}.puzzle-icon-btn{width:38px;height:38px;padding:0;display:grid;place-items:center;border-radius:999px;border:1px solid var(--line);background:var(--bg-elev);color:var(--text);cursor:pointer;transition:background var(--dur) var(--ease),color var(--dur) var(--ease),border-color var(--dur) var(--ease)}.puzzle-icon-btn:hover{background:var(--bg-card-hover)}.puzzle-icon-btn.is-active,.puzzle-icon-btn[aria-pressed="true"],.puzzle-icon-btn[aria-expanded="true"]{background:var(--accent);border-color:var(--accent);color:#1c1100}.puzzle-pause-btn svg{width:18px;height:18px;fill:currentColor}.puzzle-pause-btn .icon-play{display:none}.puzzle-pause-btn[aria-pressed="true"] .icon-pause{display:none}.puzzle-pause-btn[aria-pressed="true"] .icon-play{display:block}.puzzle-help-btn span{font-size:1.2rem;font-weight:700;line-height:1}.puzzle-difficulty-nav{padding:.6rem 1.25rem 0}.puzzle-difficulty-nav ul{list-style:none;padding:0;margin:0;display:flex;gap:.4rem}.puzzle-main{flex:1 1 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1.5rem 1rem;gap:1rem;min-height:0}.puzzle-stage-wrap{--stage-scale:1;--stage-base:720px;width:min(100%, calc(var(--stage-base) * var(--stage-scale)));max-width:100%;aspect-ratio:1 / 1;position:relative;border-radius:var(--radius-lg)}.puzzle-stage{width:100%;height:100%;background:var(--bg-elev);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow);overflow:hidden;position:relative;touch-action:none}.puzzle-pause-overlay{position:absolute;inset:0;z-index:5;border-radius:var(--radius-lg);overflow:hidden;backdrop-filter:blur(14px) saturate(.7);-webkit-backdrop-filter:blur(14px) saturate(.7);background:color-mix(in srgb,var(--bg) 55%,transparent);display:grid;place-items:center;animation:pause-overlay-in 0.25s var(--ease)}.puzzle-pause-overlay[hidden]{display:none}.pause-card{background:var(--bg-card);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:1.6rem 2rem 1.4rem;text-align:center;max-width:280px;animation:pause-card-pop 0.35s var(--ease)}.pause-card .pause-icon{font-size:2.6rem;line-height:1;margin-bottom:.3rem;display:block;animation:pause-icon-bob 3s ease-in-out infinite}.pause-card h2{margin:0;font-size:1.3rem;letter-spacing:-.01em}.pause-card .pause-tagline{margin:.2rem 0 1rem;color:var(--text-muted);font-size:.95rem}@keyframes pause-overlay-in{from{opacity:0}to{opacity:1}}@keyframes pause-card-pop{0%{transform:translateY(6px) scale(.96);opacity:0}60%{transform:translateY(0) scale(1.02);opacity:1}100%{transform:translateY(0) scale(1);opacity:1}}@keyframes pause-icon-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}@media (prefers-reduced-motion:reduce){.puzzle-pause-overlay,.pause-card,.pause-card .pause-icon{animation:none}}.puzzle-help-overlay{position:absolute;inset:0;z-index:6;border-radius:var(--radius-lg);overflow:hidden;backdrop-filter:blur(14px) saturate(.7);-webkit-backdrop-filter:blur(14px) saturate(.7);background:color-mix(in srgb,var(--bg) 55%,transparent);display:grid;place-items:center;padding:1rem;animation:pause-overlay-in 0.25s var(--ease)}.puzzle-help-overlay[hidden]{display:none}.help-card{position:relative;background:var(--bg-card);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:1.2rem 1.5rem 1.4rem;text-align:left;width:min(480px, 100%);max-height:100%;overflow-y:auto;animation:pause-card-pop 0.35s var(--ease)}.help-card h2{margin:0 2rem .4rem 0;font-size:1.3rem;letter-spacing:-.01em}.help-intro{margin:0 0 .8rem;color:var(--text-muted);font-size:.95rem;line-height:1.45}.help-section{margin-top:.6rem}.help-section h3{margin:0 0 .4rem;font-size:.95rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.help-section ul{margin:0;padding-left:1.1rem;color:var(--text)}.help-section li{margin:.25rem 0;line-height:1.4;font-size:.95rem}.help-close{position:absolute;top:.5rem;right:.5rem;width:30px;height:30px;padding:0;border:none;border-radius:999px;background:#fff0;color:var(--text-muted);font-size:1.4rem;line-height:1;cursor:pointer;transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}.help-close:hover{background:var(--bg-card-hover);color:var(--text)}@media (prefers-reduced-motion:reduce){.puzzle-help-overlay,.help-card{animation:none}}.puzzle-controls{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;justify-content:center}.puzzle-zoom,.puzzle-style,.puzzle-history{display:flex;gap:.3rem;align-items:center;justify-content:center}.puzzle-style:empty,.puzzle-history:empty{display:none}@media (max-width:720px){.puzzle-zoom{display:none}}.puzzle-zoom-btn,.puzzle-history-btn{width:2rem;height:2rem;padding:0;font-size:1.1rem;line-height:1;display:inline-flex;align-items:center;justify-content:center}.puzzle-zoom-btn:disabled,.puzzle-history-btn:disabled{cursor:not-allowed;color:var(--text-faint);opacity:.65}.puzzle-history-btn[hidden]{display:none}.puzzle-reset-popover{position:fixed;inset:unset;margin:0;translate:-50% 0;padding:.85rem 1rem .9rem;min-width:240px;background:var(--bg-card);color:var(--text);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);opacity:0;transition:opacity 0.15s var(--ease),translate 0.15s var(--ease),display 0.15s var(--ease) allow-discrete,overlay 0.15s var(--ease) allow-discrete}.puzzle-reset-popover:popover-open{opacity:1;translate:-50% 0}@starting-style{.puzzle-reset-popover:popover-open{opacity:0;translate:-50% -4px}}.puzzle-reset-popover::backdrop{background:#fff0}.puzzle-reset-popover__msg{margin:0 0 .7rem;font-size:.92rem;line-height:1.35;color:var(--text)}.puzzle-reset-popover__actions{display:flex;gap:.5rem;justify-content:flex-end}.puzzle-reset-popover .btn{padding:.4rem .85rem;font-size:.88rem}.puzzle-reset-popover .btn--warn{background:var(--warn);border-color:var(--warn);color:#1c1100}.puzzle-reset-popover .btn--warn:hover{background:color-mix(in srgb,var(--warn) 85%,white)}@media (prefers-reduced-motion:reduce){.puzzle-reset-popover{transition:none}}.puzzle-style-btn{padding:.35rem .7rem;font-size:.85rem;line-height:1}.puzzle-style-btn.is-active{border-color:var(--accent);color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,transparent)}.puzzle-toolbar{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;justify-content:center;min-height:1px}.puzzle-toolbar .tool{border:1px solid var(--line);background:var(--bg-elev);color:var(--text);border-radius:var(--radius);padding:.55rem .9rem;cursor:pointer;transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease)}.puzzle-toolbar .tool:hover{background:var(--bg-card-hover)}.puzzle-toolbar .tool.is-active{background:var(--accent);border-color:var(--accent);color:#1c1100}.puzzle-completion{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.6rem 1rem;padding:.9rem 1.1rem;background:var(--bg-card);border:1px solid color-mix(in srgb,var(--good) 50%,var(--line));border-radius:var(--radius-lg);box-shadow:var(--shadow);animation:completion-in 0.45s var(--ease)}.puzzle-completion[hidden]{display:none}.completion-emoji{font-size:1.4rem;line-height:1}.completion-text{color:var(--text);font-weight:600}.completion-text [data-final-time]{font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--good);margin-left:.2rem}@keyframes completion-in{0%{transform:translateY(8px);opacity:0}100%{transform:translateY(0);opacity:1}}