:root{--bg-top:#2b1056;--bg-bottom:#0f0828;--glow:#ff5cc847;--accent:#ff7ad9;--accent-2:#8f6bff;--gold:#ffd25e;--text:#fff;--muted:#ffffffb3;--panel:#1e103eeb;--panel-border:#ffffff29;--font:ui-rounded, "SF Pro Rounded", "Nunito", "Segoe UI", system-ui, -apple-system, Roboto, sans-serif}[data-theme="1"]{--bg-top:#0c4a63;--bg-bottom:#04192b;--glow:#50e6ff40;--accent:#4fe3ff;--accent-2:#3f8cff;--panel:#082a40eb}[data-theme="2"]{--bg-top:#6a1d43;--bg-bottom:#1f0b24;--glow:#ffaa5a47;--accent:#ffad5c;--accent-2:#ff5c8a;--panel:#3c102ceb}[data-theme="3"]{--bg-top:#114a37;--bg-bottom:#06190f;--glow:#8cffa038;--accent:#7dff9e;--accent-2:#2fd0a0;--panel:#0a2e22eb}[data-theme="4"]{--bg-top:#1d2766;--bg-bottom:#090c26;--glow:#a08cff47;--accent:#b9a4ff;--accent-2:#5c7cff;--panel:#141846eb}*{box-sizing:border-box}html,body{overscroll-behavior:none;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;height:100%;color:var(--text);font-family:var(--font);background-color:var(--bg-bottom);background-image:radial-gradient(120% 60% at 50% 0%, var(--glow), transparent 70%), linear-gradient(180deg, var(--bg-top), var(--bg-bottom));margin:0;transition:background-color .6s;overflow:hidden}#app{padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);flex-direction:column;display:flex;position:fixed;inset:0}#stage{flex:1;min-height:0;margin:4px 8px 10px;position:relative}#board{touch-action:none;position:absolute;inset:0}#hud{flex:none;grid-template-columns:68px 1fr 44px;grid-template-areas:"moves goals pause""score score score";align-items:center;gap:8px 10px;padding:10px 14px 4px;transition:opacity .25s;display:grid}#hud.off{visibility:hidden;opacity:0}.hud-moves{border:2px solid var(--panel-border);background:radial-gradient(circle at 35% 30%,#ffffff40,#ffffff0f);border-radius:50%;flex-direction:column;grid-area:moves;justify-content:center;align-items:center;width:68px;height:68px;display:flex}.hud-moves .label{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-size:10px}.hud-moves .value{font-size:28px;font-weight:900;line-height:1}.hud-moves.low .value{color:#ff8a8a;animation:.9s ease-in-out infinite pulse}.hud-goals{cursor:pointer;flex-wrap:wrap;grid-area:goals;justify-content:center;gap:14px;display:flex;position:relative}.goal{align-items:center;gap:4px;font-size:20px;font-weight:800;display:flex}.goal img{width:36px;height:36px}.hud-goals:after{content:"?";text-align:center;width:18px;height:18px;color:var(--muted);background:#ffffff29;border-radius:50%;align-self:center;font-size:12px;font-weight:800;line-height:18px}.goal .score-icon{color:var(--gold);font-size:26px}.goal.done b{color:#7dff9e}.goal.done b:after{content:" ✓"}.hud-score{grid-area:score;align-items:center;gap:12px;display:flex}.hud-score .bar{flex:1;padding:0 18px}.hud-score .track{background:#00000052;border-radius:99px;height:14px;margin:8px 0 20px;position:relative;box-shadow:inset 0 2px 4px #00000073,0 1px #ffffff14}.hud-score .fill{background:linear-gradient(90deg, var(--accent-2), var(--accent) 65%, var(--gold));box-shadow:0 0 12px var(--glow);clip-path:inset(0 100% 0 0 round 99px);border-radius:99px;transition:clip-path .45s ease-out;position:absolute;inset:0}.hud-score .fill:after{content:"";background:#fff6;border-radius:99px;height:3px;position:absolute;top:3px;left:6px;right:6px}.hud-score .mark{background:var(--bg-bottom);color:#ffffff4d;border:2px solid #ffffff38;border-radius:50%;place-items:center;width:30px;height:30px;margin:-15px 0 0 -15px;font-style:normal;transition:background .3s,border-color .3s,color .3s,box-shadow .3s;display:grid;position:absolute;top:50%;box-shadow:0 2px 6px #0006}.hud-score .mark svg{fill:currentColor;width:18px;height:18px}.hud-score .mark span{white-space:nowrap;color:var(--muted);font-variant-numeric:tabular-nums;font-size:10px;font-weight:700;position:absolute;top:calc(100% + 1px);left:50%;transform:translate(-50%)}.hud-score .mark.earned{background:radial-gradient(circle at 35% 30%, #fff4c2, var(--gold) 55%, #e29a1c);color:#7a4300;border-color:#fff1b8;animation:.45s cubic-bezier(.2,1.6,.4,1) mark-pop;box-shadow:0 0 14px #ffd25ebf}.hud-score .mark.earned span{color:var(--gold)}.hud-score .value{text-align:right;font-variant-numeric:tabular-nums;min-width:64px;font-size:18px}.btn{border:1px solid var(--panel-border);width:100%;color:var(--text);font:700 17px var(--font);cursor:pointer;background:#ffffff1a;border-radius:999px;margin:8px 0 0;padding:12px 18px;transition:transform 80ms;display:block}.btn:active{transform:scale(.96)}.btn.primary{background:linear-gradient(180deg, var(--accent), var(--accent-2));text-shadow:0 1px 2px #0000004d;border:none;box-shadow:0 6px 18px #00000059,inset 0 2px #ffffff59}.btn.big{padding:16px 22px;font-size:21px}.btn.ghost{color:var(--muted);background:0 0;border-color:#0000}.btn.danger{color:#ff9a9a}.btn.icon{grid-area:pause;width:44px;height:44px;margin:0;padding:0;font-size:16px}.btn.corner{position:absolute;top:16px;right:16px}.toggle{border:1px solid var(--panel-border);width:100%;color:var(--text);font:600 17px var(--font);background:#ffffff0f;border-radius:16px;justify-content:space-between;align-items:center;margin:8px 0 0;padding:12px 18px;display:flex}.toggle i{color:var(--muted);background:#ffffff1f;border-radius:999px;padding:3px 12px;font-style:normal}.toggle.on i{background:var(--accent);color:#1a0b33}#overlay{pointer-events:none;opacity:0;justify-content:center;align-items:center;padding:24px;transition:opacity .2s;display:flex;position:fixed;inset:0}#overlay.visible{pointer-events:auto;opacity:1;background:#0803188c}#overlay.visible.title,#overlay.visible.clear{background:0 0}.card{background:var(--panel);border:1px solid var(--panel-border);text-align:center;border-radius:28px;width:min(360px,100%);padding:26px 22px 18px;animation:.32s cubic-bezier(.2,1.4,.4,1) both card-in;box-shadow:0 20px 60px #00000080}.card h2{margin:0 0 12px;font-size:28px;font-weight:900}.card p{color:var(--muted);margin:8px 0}.card .goals{justify-content:center;gap:18px;margin:16px 0 6px;display:flex}.card .goal img{width:48px;height:48px}.card .goal{font-size:26px}.moves-line{font-size:17px}.badge{text-transform:uppercase;letter-spacing:.06em;border-radius:999px;margin-bottom:4px;padding:4px 14px;font-size:14px;font-weight:800;display:inline-block}.badge.hard{background:#ff5c7a}.badge.relief{color:#06261c;background:#2fd0a0}.badge.intro{background:var(--gold);color:#3b2400}.hint{font-size:15px}.goal-help{text-align:left;align-items:center;gap:12px;margin:12px 0;display:flex}.goal-help img{flex:none;width:44px;height:44px}.goal-help .score-icon{text-align:center;width:44px;color:var(--gold);flex:none;font-size:38px}.card.goals-help p{font-size:16px;line-height:1.35}.card.goals-help .goal-help p{color:var(--text);margin:0}.stars{justify-content:center;gap:6px;margin:8px 0 4px;display:flex}.star-slot{width:64px;height:64px;position:relative}.star-slot svg{width:100%;height:100%;position:absolute;inset:0}.star-slot .outline{fill:#ffffff0a;stroke:#fff6;stroke-width:.9px;stroke-dasharray:1.6 1.3;stroke-linejoin:round}.star-slot .earned{fill:var(--gold);stroke:var(--gold);stroke-width:.9px;stroke-linejoin:round;filter:drop-shadow(0 0 12px #ffd25e99);animation:.45s cubic-bezier(.2,1.6,.4,1) both star-in;animation-delay:calc(var(--i) * .28s + .2s)}.score-line b{color:var(--text);font-size:22px}.skip{padding-bottom:calc(env(safe-area-inset-bottom) + 18px);color:var(--muted);justify-content:center;align-items:flex-end;font-size:14px;display:flex;position:absolute;inset:0}.title-screen{flex-direction:column;justify-content:center;align-items:center;padding:24px;display:flex;position:absolute;inset:0}.title-screen .btn.big{width:min(280px,100%);margin-top:28px}.logo{letter-spacing:-.02em;background:linear-gradient(180deg, #fff, var(--accent) 60%, var(--accent-2));color:#0000;filter:drop-shadow(0 6px 18px #00000073);-webkit-background-clip:text;background-clip:text;margin:0;font-size:clamp(44px,13vw,84px);font-weight:900}.tagline{color:var(--muted);margin:4px 0 0;font-size:18px}.sub{color:var(--muted);margin:10px 0 0}.version{left:0;right:0;bottom:calc(10px + env(safe-area-inset-bottom));text-align:center;color:var(--muted);opacity:.7;margin:0;font-size:11px;position:absolute}.gems{pointer-events:none;position:absolute;inset:0;overflow:hidden}.float-gem{opacity:.85;width:64px;height:64px;animation:6s ease-in-out infinite alternate float;position:absolute}.g0{animation-delay:-1s;top:12%;left:8%}.g1{width:52px;height:52px;animation-delay:-3s;top:18%;right:10%}.g2{width:56px;height:56px;animation-delay:-2s;bottom:20%;left:14%}.g3{animation-delay:-4s;bottom:14%;right:14%}.g4{width:44px;height:44px;animation-delay:-5s;top:6%;left:44%}.g5{width:48px;height:48px;animation-delay:-2.5s;bottom:7%;left:40%}#praise{white-space:nowrap;color:#fff;text-shadow:0 0 18px var(--accent), 0 4px 0 #00000059;pointer-events:none;opacity:0;font-size:clamp(34px,10vw,56px);font-weight:900;position:absolute;top:40%;left:50%;transform:translate(-50%,-50%)}#praise.show{animation:1s ease-out both praise}#curtain{background:var(--bg-bottom);opacity:0;pointer-events:none;transition:opacity .2s;position:fixed;inset:0}#curtain.on{opacity:1;pointer-events:auto}@media (orientation:landscape) and (max-height:560px){#app{flex-direction:row}#hud{grid-template-columns:68px 1fr 44px;grid-template-areas:"moves.pause""goals goals goals""score score score";align-content:center;width:230px}}@keyframes pulse{50%{transform:scale(1.15)}}@keyframes card-in{0%{opacity:0;transform:scale(.88)translateY(12px)}}@keyframes mark-pop{50%{transform:scale(1.35)}}@keyframes star-in{0%{opacity:0;transform:scale(2.2)rotate(-30deg)}}@keyframes float{0%{transform:translateY(-10px)rotate(-8deg)}to{transform:translateY(14px)rotate(8deg)}}@keyframes praise{0%{opacity:0;transform:translate(-50%,-50%)scale(.5)}20%{opacity:1;transform:translate(-50%,-50%)scale(1.12)}35%{transform:translate(-50%,-50%)scale(1)}80%{opacity:1}to{opacity:0;transform:translate(-50%,-70%)scale(1)}}.reduced-motion .float-gem,.reduced-motion .hud-moves.low .value{animation:none}
