:root{--ink:#f4efe6;--muted:#f4efe69e;--amber:#ffc257;--cyan:#7fe9ff;--bg:#070614;--panel:#100e26c7;--line:#ffffff24;--sat:env(safe-area-inset-top,0px);--sab:env(safe-area-inset-bottom,0px);--sal:env(safe-area-inset-left,0px);--sar:env(safe-area-inset-right,0px)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}html,body{background:var(--bg);height:100%;color:var(--ink);touch-action:none;overscroll-behavior:none;margin:0;font-family:ui-rounded,SF Pro Rounded,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;overflow:hidden}#game{width:100%;height:100%;display:block;position:fixed;top:0;bottom:0;left:0;right:0}.hidden{display:none!important}button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation;background:0 0;border:0}#hud{pointer-events:none;position:fixed;top:0;bottom:0;left:0;right:0}.hud-top{top:calc(var(--sat) + 10px);left:calc(var(--sal) + 14px);right:calc(var(--sar) + 14px);grid-template-columns:1fr auto 1fr;align-items:start;gap:8px;display:grid;position:absolute}.hud-left{flex-direction:column;gap:6px;display:flex}#hearts{gap:4px;font-size:22px;line-height:1;display:flex}#hearts span{color:#ff6b7d;text-shadow:0 0 10px #ff6b7d99;transition:transform .2s,opacity .2s}#hearts span.off{color:#fff3;text-shadow:none;transform:scale(.8)}#shards{align-items:center;gap:5px;height:18px;display:flex}#shards i{border:1.5px solid #7fe9ff73;border-radius:2px;width:11px;height:11px;transition:background .15s,box-shadow .15s,transform .15s;transform:rotate(45deg)}#shards i.on{background:var(--cyan);border-color:var(--cyan);box-shadow:0 0 10px var(--cyan);transform:rotate(45deg)scale(1.1)}.hud-center{text-align:center}#levelLabel{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-size:13px;font-weight:600}#beaconDots{justify-content:center;gap:6px;margin-top:6px;display:flex}#beaconDots i{background:#ffffff29;border-radius:50%;width:10px;height:10px;transition:background .4s,box-shadow .4s}#beaconDots i.on{background:var(--amber);box-shadow:0 0 12px var(--amber)}.hud-right{flex-direction:column;align-items:flex-end;gap:6px;display:flex}#score{font-variant-numeric:tabular-nums;text-shadow:0 2px 12px #0009;font-size:22px;font-weight:700}.hud-buttons{pointer-events:auto;gap:8px;display:flex}.icon-btn{border:1px solid var(--line);-webkit-backdrop-filter:blur(6px);background:#ffffff1a;border-radius:50%;width:38px;height:38px;font-size:15px}.icon-btn.off{opacity:.4;text-decoration:line-through}#toast{left:50%;top:calc(var(--sat) + 92px);background:var(--panel);border:1px solid var(--line);text-align:center;opacity:0;-webkit-backdrop-filter:blur(8px);border-radius:999px;max-width:min(86vw,420px);padding:10px 16px;font-size:14px;font-weight:600;transition:opacity .3s,transform .3s;position:absolute;transform:translate(-50%)translateY(-6px)}#toast.show{opacity:1;transform:translate(-50%)translateY(0)}#arrows{position:absolute;top:0;bottom:0;left:0;right:0}.arrow{background:var(--amber);clip-path:polygon(50% 0,100% 100%,0 100%);opacity:0;will-change:transform, opacity;width:18px;height:16px;margin:-8px 0 0 -9px;transition:opacity .25s;position:absolute;top:0;left:0}.arrow.shard{background:var(--cyan);width:14px;height:12px;margin:-6px 0 0 -7px}#stick{opacity:0;background:#ffffff0d;border:2px solid #ffffff38;border-radius:50%;width:120px;height:120px;margin:-60px 0 0 -60px;transition:opacity .15s;position:absolute}#stick.on{opacity:1}#stickKnob{background:#ffffff59;border-radius:50%;width:52px;height:52px;margin:-26px 0 0 -26px;position:absolute;top:50%;left:50%;box-shadow:0 0 18px #ffc25780}#btnPulse{right:calc(var(--sar) + 22px);bottom:calc(var(--sab) + 34px);pointer-events:auto;color:#1a1206;background:radial-gradient(circle at 35% 30%, #fff1c9, var(--amber) 60%, #e08a1e);border-radius:50%;place-items:center;width:84px;height:84px;transition:transform 80ms,filter .2s,opacity .2s;display:grid;position:absolute;box-shadow:0 0 0 6px #ffc25729,0 8px 26px #ffaa2873}#btnPulse:active{transform:scale(.92)}#btnPulse.empty{filter:grayscale()brightness(.6);opacity:.6}#pulseCost{min-width:24px;height:24px;color:var(--cyan);border:1.5px solid var(--cyan);background:#0d0b22;border-radius:12px;place-items:center;font-size:12px;font-weight:800;display:grid;position:absolute;top:-2px;right:-2px}.screen{padding:calc(var(--sat) + 20px) 22px calc(var(--sab) + 20px);text-align:center;z-index:5;place-items:center;display:grid;position:fixed;top:0;bottom:0;left:0;right:0}#win,#finale{padding-bottom:calc(var(--sab) + 28px);background:linear-gradient(#05041000 45%,#050410b3 100%);align-items:end}#pause,#over{-webkit-backdrop-filter:blur(6px);background:#0504108c}#title{background:linear-gradient(#070614bf 0%,#07061400 38% 55%,#070614e0 100%);align-items:stretch}.title-inner{flex-direction:column;align-items:center;width:100%;max-width:440px;margin:0 auto;display:flex}.kicker{letter-spacing:.22em;text-transform:uppercase;color:var(--amber);margin-top:4vh;font-size:12px;font-weight:700}h1{letter-spacing:.08em;background:linear-gradient(180deg, #fff6dc, var(--amber));color:#0000;filter:drop-shadow(0 0 22px #ffc25773);-webkit-background-clip:text;background-clip:text;margin:8px 0 6px;font-size:clamp(44px,15vw,76px);font-weight:900}h2{margin:6px 0 16px;font-size:28px}.lead{color:var(--muted);max-width:300px;margin:0;font-size:15px;line-height:1.45}.muted{color:var(--muted);min-height:18px;margin-top:10px;font-size:13px}.primary{color:#1a1206;background:linear-gradient(180deg, #ffe09a, var(--amber));border-radius:999px;width:min(100%,280px);margin-left:auto;margin-right:auto;padding:16px 22px;font-size:18px;font-weight:800;transition:transform 80ms;display:block;box-shadow:0 8px 28px #ffaa2866}.primary:active{transform:scale(.96)}.ghost{color:var(--muted);margin:12px auto 0;padding:10px 18px;font-weight:600;display:block}.how{color:var(--muted);margin:14px 0 0;padding:0;font-size:13px;line-height:1.7;list-style:none}.how b{color:var(--ink)}.panel{background:var(--panel);border:1px solid var(--line);border-radius:26px;width:min(100%,360px);padding:26px 22px}.panel .kicker{margin-top:0}.stats{grid-template-columns:repeat(3,1fr);gap:8px;margin:4px 0 22px;display:grid}.stats span{font-variant-numeric:tabular-nums;font-size:24px;font-weight:800;display:block}.stats small{color:var(--muted);letter-spacing:.1em;text-transform:uppercase;font-size:11px}@media (orientation:landscape) and (max-height:480px){.how{display:none}h1{font-size:44px}.kicker{margin-top:0}}#splash{z-index:20;background:radial-gradient(circle at 50% 40%, #1c1546 0%, #0b0920 55%, var(--bg) 100%);flex-direction:column;justify-content:center;align-items:center;gap:10px;transition:opacity .6s;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}#splash.gone{opacity:0;pointer-events:none}.sp-stage{width:300px;height:320px;position:relative}.sp-star{background:#fff;border-radius:50%;width:3px;height:3px;animation:1.6s ease-in-out infinite sp-twinkle;position:absolute}.sp-planet{background:conic-gradient(from 30deg,#4a4568,#5d5782 22%,#3e3a5a 40%,#534d74 63%,#3a3654 82%,#4a4568);border-radius:50%;width:180px;height:180px;animation:1s ease-out 2.5s both sp-planet-glow;position:absolute;top:120px;left:60px;overflow:hidden;box-shadow:inset -18px -22px 40px #00000073}.sp-live{clip-path:circle(0% at 50% 0);background:conic-gradient(from 30deg,#6fcf7c,#93e394 22%,#57b96b 40%,#7ad884 63%,#4fae66 82%,#6fcf7c);border-radius:50%;animation:1.5s cubic-bezier(.3,.7,.3,1) 2.5s both sp-bloom;position:absolute;top:0;bottom:0;left:0;right:0;box-shadow:inset -18px -22px 40px #00281e59}.sp-rot{width:0;height:0;transform:rotate(var(--a,0deg));position:absolute;top:210px;left:150px}.sp-on{position:absolute;bottom:88px;left:0;transform:translate(-50%)}.sp-beacon{width:16px;height:44px}.sp-beacon b{clip-path:polygon(22% 0,78% 0,100% 100%,0 100%);background:linear-gradient(90deg,#8d889c,#5f5b75);width:16px;height:30px;position:absolute;bottom:0;left:0}.sp-beacon u{background:#3a3852;width:10px;height:10px;animation:.5s ease-out 2.4s both sp-crystal;position:absolute;top:0;left:3px;transform:rotate(45deg)}.sp-beacon s{opacity:0;transform-origin:bottom;background:linear-gradient(#ffc25700,#ffc257e6);width:6px;height:130px;animation:.7s ease-out 2.45s both sp-beam;position:absolute;bottom:40px;left:5px}.sp-shard{width:12px;height:12px;box-shadow:0 0 14px 4px var(--cyan);background:#d8fbff;margin-bottom:8px;animation:.75s cubic-bezier(.6,0,.9,.6) .35s both sp-fall,.25s ease-in 1.55s forwards sp-pick;transform:translate(-50%)rotate(45deg)}.sp-shadow{background:#33125f;border-radius:50% 50% 42% 42%;width:26px;height:20px;animation:.7s ease-in-out infinite sp-wobble,.45s ease-in 3s forwards sp-die;box-shadow:0 0 14px 2px #9a4dff8c}.sp-shadow.two{animation:.8s ease-in-out .2s infinite sp-wobble,.45s ease-in 3.35s forwards sp-die}.sp-shadow:before,.sp-shadow:after{content:"";background:#fff;border-radius:50%;width:5px;height:5px;position:absolute;top:6px}.sp-shadow:before{left:6px}.sp-shadow:after{right:6px}.sp-walk{animation:2.3s linear .2s both sp-walk}.sp-robot{width:22px;height:36px;animation:.28s ease-in-out .2s 8 alternate sp-bob}.sp-robot b{background:#f4efe6;border-radius:50% 50% 46% 46%;width:20px;height:21px;position:absolute;bottom:0;left:1px;box-shadow:inset 0 -5px #2b2740}.sp-robot u{background:#ffe2a0;border:2px solid #2b2740;border-radius:50%;width:14px;height:14px;animation:.4s ease-out 1.6s both sp-lamp;position:absolute;top:0;left:4px;box-shadow:0 0 16px 5px #ffc25799}.splash-name{letter-spacing:.22em;color:#ffe6b0;text-shadow:0 0 24px #ffc25799;padding-left:.22em;font-size:36px;font-weight:900;animation:.7s ease-out 3.3s both sp-rise}.splash-tag{letter-spacing:.08em;color:var(--muted);font-size:12px;animation:.7s ease-out 3.7s both sp-rise}@keyframes sp-twinkle{50%{opacity:.25;transform:scale(.7)}}@keyframes sp-fall{0%{opacity:0;bottom:320px;left:-90px}20%{opacity:1}to{opacity:1;bottom:88px;left:0}}@keyframes sp-pick{to{opacity:0;transform:translate(-50%)rotate(45deg)scale(2.2)}}@keyframes sp-walk{0%{transform:rotate(-92deg)}58%{transform:rotate(-42deg)}to{transform:rotate(-11deg)}}@keyframes sp-bob{to{transform:translate(-50%)translateY(-3px)}}@keyframes sp-lamp{0%{box-shadow:0 0 16px 5px #ffc25799}50%{box-shadow:0 0 30px 14px #7fe9ffe6}to{box-shadow:0 0 24px 9px #ffc257d9}}@keyframes sp-crystal{to{background:#ffe9b8;box-shadow:0 0 22px 9px #ffc257e6}}@keyframes sp-beam{0%{opacity:0;transform:scaleY(0)}to{opacity:.85;transform:scaleY(1)}}@keyframes sp-bloom{to{clip-path:circle(125% at 50% 0)}}@keyframes sp-planet-glow{to{box-shadow:inset -18px -22px 40px #0003,0 0 50px 6px #6fcf7c59}}@keyframes sp-wobble{50%{transform:translate(-50%)scale(1.1,.88)}}@keyframes sp-die{to{opacity:0;transform:translate(-50%)scale(.1)translateY(-20px)}}@keyframes sp-rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}.title-actions{width:100%;margin-top:auto;padding-bottom:10px}.row{justify-content:center;gap:10px;margin-top:12px;display:flex}.secondary{border:1px solid var(--line);-webkit-backdrop-filter:blur(8px);background:#ffffff1a;border-radius:999px;flex:1;max-width:160px;padding:12px 10px;font-size:14px;font-weight:700}.secondary:active{transform:scale(.96)}.secondary.done{color:var(--amber);border-color:#ffc25780}#map{-webkit-backdrop-filter:blur(10px);background:#050410d1;align-items:stretch;padding-left:16px;padding-right:16px}.map-inner{flex-direction:column;width:100%;max-width:460px;min-height:0;margin:0 auto;display:flex}.map-head{grid-template-columns:64px 1fr 64px;align-items:center;margin-bottom:14px;display:grid}.map-head h2{margin:0;font-size:22px}.map-head .icon-btn{font-size:24px;line-height:1}.star-total{color:var(--amber);text-align:right;font-variant-numeric:tabular-nums;font-weight:800}#mapGrid{-webkit-overflow-scrolling:touch;touch-action:pan-y;flex:1;grid-template-columns:repeat(4,1fr);align-content:start;gap:10px;min-height:0;padding:4px 2px 20px;display:grid;overflow-y:auto}.cell{aspect-ratio:1;border:1px solid var(--line);background:#ffffff12;border-radius:18px;flex-direction:column;justify-content:center;align-items:center;gap:4px;font-size:20px;font-weight:800;display:flex}.cell small{letter-spacing:1px;color:var(--amber);height:13px;font-size:11px}.cell small b,.stars-big b{color:#fff3;text-shadow:none;font-weight:400}.cell.locked{opacity:.35}.cell.current{border-color:var(--amber);box-shadow:0 0 16px #ffc25759}.cell:not(.locked):active{transform:scale(.94)}.stars-big{letter-spacing:6px;color:var(--amber);text-shadow:0 0 18px #ffc25799;margin:-6px 0 12px;font-size:34px}.secondary.wide{flex:none;width:100%;max-width:330px;margin:10px auto 0;display:block}.secondary.locked{opacity:.5;font-weight:600}.fin-note{max-width:none;margin:-6px 0 18px;font-size:14px}.fin-note b{color:var(--amber)}.icon-btn.lang{top:calc(var(--sat) + 12px);right:calc(var(--sar) + 14px);letter-spacing:.04em;z-index:2;width:46px;font-size:13px;font-weight:800;position:absolute}.sheet{-webkit-backdrop-filter:blur(10px);background:#050410d1;align-items:stretch;padding-left:16px;padding-right:16px}.star-total.center{text-align:center;margin:-4px 0 14px}.list{touch-action:pan-y;flex-direction:column;gap:10px;padding-bottom:20px;display:flex;overflow-y:auto}.rowi{border:1px solid var(--line);text-align:left;background:#ffffff12;border-radius:18px;grid-template-columns:1fr auto;align-items:center;gap:12px;padding:14px 16px;display:grid}.rowi b{font-size:16px;display:block}.rowi span{color:var(--muted);font-size:12px}.pips{gap:4px;margin-top:6px;display:flex}.pips i{background:#ffffff29;border-radius:3px;width:16px;height:5px}.pips i.on{background:var(--cyan);box-shadow:0 0 8px var(--cyan)}.pill{text-align:center;color:#1a1206;background:linear-gradient(180deg, #ffe09a, var(--amber));border-radius:999px;min-width:78px;padding:10px 14px;font-size:14px;font-weight:800}.pill.off{color:var(--muted);background:#ffffff1f}.pill.danger{color:#ff8a9a;background:#ff5a6e33;border:1px solid #ff5a6e80}.pill:active{transform:scale(.95)}.tabs{gap:8px;margin-bottom:12px;display:flex}.tabs button{border:1px solid var(--line);color:var(--muted);background:#ffffff12;border-radius:999px;flex:1;padding:10px;font-size:14px;font-weight:700}.tabs button.on{color:#1a1206;background:linear-gradient(180deg, #ffe09a, var(--amber))}#btnPulse.hintglow{animation:.8s ease-in-out infinite hintpulse}@keyframes hintpulse{50%{transform:scale(1.14);box-shadow:0 0 0 14px #ffc25747,0 8px 26px #ffaa2899}}#shards{flex-wrap:wrap;max-width:130px;height:auto;min-height:18px}#timer{color:var(--muted);font-variant-numeric:tabular-nums;margin-top:-4px;font-size:12px;font-weight:700}#timer.late{color:#ff8a9a}#powers{flex-direction:column;align-items:flex-start;gap:4px;display:flex}#powers span{color:#10101c;background:var(--c);box-shadow:0 0 10px var(--c);border-radius:999px;padding:3px 9px;font-size:11px;font-weight:800}.goals{text-align:left;width:-moz-fit-content;width:fit-content;margin:-2px auto 16px;font-size:14px;line-height:1.75}.goals i{color:#ffffff4d;width:20px;font-style:normal;font-weight:900;display:inline-block}.goals i.ok{color:var(--amber)}.icon-btn.lang{width:40px;font-size:18px}.sec{letter-spacing:.14em;text-transform:uppercase;color:var(--amber);text-align:left;margin:10px 4px 0;font-size:12px;font-weight:700}.swatches,.chips{flex-wrap:wrap;gap:10px;display:flex}.sw{background:radial-gradient(circle at 35% 30%, #fff, var(--c) 60%);width:54px;height:54px;box-shadow:0 0 14px var(--c);color:#10101c;border:3px solid #0000;border-radius:50%;font-size:12px;font-weight:900}.sw.on,.chip.on{border-color:#fff}.sw.lock,.chip.lock{opacity:.6}.chip{border:2px solid var(--line);background:#ffffff14;border-radius:999px;padding:10px 14px;font-size:14px;font-weight:700}.chip small{color:var(--amber);margin-left:6px;font-weight:800}.bar{background:#ffffff24;border-radius:3px;height:5px;margin-top:8px;overflow:hidden}.bar i{background:var(--cyan);border-radius:3px;height:100%;display:block}.rowi.done{border-color:#ffc25780}.rowi.done .bar i{background:var(--amber)}.reward{color:var(--amber);white-space:nowrap;font-weight:800}#story{background:#05041099}.story-text{color:var(--ink);margin:14px 4px 24px;font-size:18px;line-height:1.55}.fin-story{max-width:none;color:var(--ink);margin:-6px 0 16px;font-size:15px;font-style:italic}.cell{gap:2px;font-size:18px}.cell em{letter-spacing:.02em;color:var(--muted);height:9px;font-size:9px;font-style:normal;font-weight:600;line-height:1}.primary.alt{color:#06202a;background:linear-gradient(180deg, #c9f6ff, var(--cyan));margin-bottom:12px;box-shadow:0 8px 28px #7fe9ff66}.rowi.gift{border-color:#7fe9ff80}
