:root{--bg: #12132a;--bg2: #1b1d3d;--panel: #22254a;--panel2: #2b2f5c;--line: rgba(255, 255, 255, .1);--ink: #f4f3ff;--ink2: #b9b8dc;--muted: #8a89b3;--accent: #ffcc33;--accent-ink: #3a2600;--good: #57d977;--bad: #ff4d6a;--blue: #5ab0ff;--radius: 18px;--display: "Fredoka", ui-rounded, "SF Pro Rounded", system-ui, sans-serif;--font: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0}body{background:radial-gradient(1200px 600px at 50% -10%,#2d2f6b 0%,var(--bg) 60%) fixed,var(--bg);color:var(--ink);font:15px/1.5 var(--font);-webkit-font-smoothing:antialiased;min-height:100vh}button{font:inherit;color:inherit}a{color:var(--accent)}[hidden]{display:none!important}h1,h2,b,.btn,.eyebrow,.tag,.pill{font-family:var(--display)}h1,h2{margin:0;line-height:1.1;letter-spacing:.01em}kbd{font:600 11px var(--font);opacity:.6;border:1px solid currentColor;border-radius:5px;padding:0 4px;margin-left:6px;vertical-align:2px}@media(pointer:coarse){kbd{display:none}}.btn{appearance:none;border:0;cursor:pointer;background:var(--panel2);color:var(--ink);padding:11px 18px;border-radius:14px;font-weight:600;font-size:16px;box-shadow:0 4px #00000059;transition:transform .06s,box-shadow .06s,filter .15s}.btn:hover{filter:brightness(1.12)}.btn:active{transform:translateY(3px);box-shadow:0 1px #00000059}.btn:disabled{opacity:.45;cursor:not-allowed;filter:none;transform:none}.btn.primary{background:linear-gradient(#ffd84d,#ffb400);color:var(--accent-ink);box-shadow:0 4px #b77a00}.btn.primary:active{box-shadow:0 1px #b77a00}.btn.big{font-size:21px;padding:14px 30px}.btn.ghost{background:transparent;box-shadow:none;color:var(--ink2)}.btn.ghost:hover{color:var(--ink);background:#ffffff0f}.icon-btn{appearance:none;border:0;background:#ffffff14;width:40px;height:40px;border-radius:12px;cursor:pointer;font-size:18px}.icon-btn:hover{background:#ffffff26}.cta{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.cta.col{flex-direction:column;align-items:stretch}.tag{display:inline-block;font-size:12px;font-weight:700;padding:1px 8px;border-radius:999px;background:#ffffff24;vertical-align:2px;letter-spacing:.04em}.tag.boss{background:#ff4d6a;color:#fff}.stars i{font-style:normal;color:#ffffff38}.stars i.on{color:var(--accent);text-shadow:0 0 6px rgba(255,204,51,.6)}.home{max-width:1040px;margin:0 auto;padding:14px 16px 40px}.topbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px}.brand{display:flex;gap:10px;align-items:center;color:var(--ink);text-decoration:none}.brand .logo{font-size:26px;width:44px;height:44px;display:grid;place-items:center;border-radius:14px;background:linear-gradient(135deg,#ff5f7e,#ffb400);box-shadow:0 4px #8c2a3d}.brand b{display:block;font-size:20px;line-height:1.1}.brand small{color:var(--muted);font-size:13px}.top-right{display:flex;gap:8px;align-items:center}.pill{background:#0000004d;border:1px solid var(--line);padding:7px 14px;border-radius:999px;font-size:16px}.hero{position:relative;overflow:hidden;display:grid;grid-template-columns:minmax(200px,340px) 1fr;gap:12px 28px;align-items:center;border-radius:26px;padding:26px 30px;background:linear-gradient(180deg,var(--sky1),var(--sky2));box-shadow:inset 0 -90px 0 -40px var(--ground),0 20px 50px -20px #0009;color:#fff}.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#0a0a1e00 30%,#0a0a1e8c);pointer-events:none}.hero>*{position:relative;z-index:1}.hero-art{display:grid;place-items:center}.hero-art .bob{width:min(300px,100%);animation:bob 2.6s ease-in-out infinite;filter:drop-shadow(0 16px 12px rgba(0,0,0,.35))}.hero .eyebrow{font-size:14px;opacity:.85;display:flex;gap:8px;align-items:center;flex-wrap:wrap}.hero h1{font-size:clamp(30px,5vw,46px);margin:4px 0 6px;text-shadow:0 3px 0 rgba(0,0,0,.25)}.goal{font-weight:600;font-size:17px;margin:0 0 10px}.fine{font-size:13px;opacity:.8;margin:12px 0 0}.rules{list-style:none;padding:0;margin:0 0 16px;display:grid;gap:8px}.rules li{display:flex;gap:10px;align-items:flex-start;background:#00000047;border:1px solid rgba(255,255,255,.12);border-radius:12px;padding:8px 12px}.rules .ri{font-size:22px;line-height:1.2}.rules b{display:block;font-size:16px}.rules span{font-size:14px;opacity:.92}.new{font-style:normal;font-size:11px;background:var(--good);color:#0b3317;padding:1px 6px;border-radius:6px;vertical-align:2px}.strip{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:16px 0}.strip>div{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:12px 14px;text-align:center}.strip b{display:block;font-size:26px}.strip span{color:var(--muted);font-size:13px}.panel{background:var(--bg2);border:1px solid var(--line);border-radius:22px;padding:18px;margin-top:16px}.panel-head{display:flex;flex-wrap:wrap;gap:4px 16px;align-items:baseline;margin-bottom:12px}.panel-head h2{font-size:24px}.panel-head p{margin:0;color:var(--muted);font-size:14px}.forge{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.up{display:flex;align-items:center;gap:12px;background:var(--panel);border-radius:16px;padding:12px;border:1px solid var(--line)}.up-icon{font-size:28px;width:50px;height:50px;display:grid;place-items:center;background:#00000040;border-radius:14px;flex:none}.up-body{flex:1;min-width:0}.up-body b{font-size:17px;margin-right:8px}.up-body small{display:block;color:var(--ink2);font-size:13px}.up-body small strong{color:var(--good);font-weight:600}.pips{display:inline-flex;gap:3px;vertical-align:1px}.pips i{width:14px;height:6px;border-radius:3px;background:#ffffff26}.pips i.on{background:var(--accent)}.btn.buy{padding:8px 12px;font-size:15px;flex:none}.maxed{font-family:var(--display);color:var(--accent);font-weight:700}.map{display:grid;gap:12px}.world{border-radius:18px;padding:12px;background:linear-gradient(180deg,var(--sky1),var(--sky2));box-shadow:inset 0 -30px 0 -10px var(--ground)}.world.locked{filter:grayscale(.85) brightness(.6)}.world-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:8px;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.5)}.world-head b{font-size:18px}.world-head span{font-size:13px;opacity:.85}.nodes{display:grid;grid-template-columns:repeat(10,1fr);gap:6px}.node{appearance:none;border:0;cursor:pointer;aspect-ratio:1;border-radius:50%;background:#ffffffeb;color:#22224a;display:grid;place-items:center;align-content:center;position:relative;box-shadow:0 3px #00000059;padding:0;transition:transform .1s}.node:hover:not(:disabled){transform:translateY(-2px)}.node .n{font-family:var(--display);font-weight:700;font-size:clamp(12px,2vw,18px);line-height:1}.node .stars{position:absolute;bottom:-9px;font-size:11px;letter-spacing:-1px;background:#22224a;border-radius:8px;padding:0 3px}.node .here{position:absolute;bottom:-9px;font:700 10px var(--display);background:var(--accent);color:var(--accent-ink);border-radius:8px;padding:0 5px}.node.boss{background:#ffe07a}.node.locked{background:#00000059;color:#fff9;cursor:default;box-shadow:none}.node.next{animation:pulse 1.4s ease-in-out infinite}.node.sel{outline:3px solid var(--accent);outline-offset:2px}.foot{text-align:center;color:var(--muted);font-size:13px;margin-top:26px}body.on-battle{overflow:hidden;overscroll-behavior:none}.battle{height:100vh;height:100dvh;display:flex;flex-direction:column;gap:8px;padding:10px 12px calc(10px + env(safe-area-inset-bottom));max-width:1200px;margin:0 auto;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.bhead{display:flex;align-items:center;gap:10px}.btitle{flex:1;min-width:0}.btitle small{display:block;color:var(--muted);font-size:12px}.btitle b{font-size:19px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}.hearts{font-size:24px;letter-spacing:2px;white-space:nowrap}.hearts i{font-style:normal;color:#ffffff2e;transition:color .2s}.hearts i.on{color:var(--bad);text-shadow:0 0 8px rgba(255,77,106,.6)}.bars{display:grid;gap:5px}.bar{position:relative;height:26px;border-radius:10px;background:#00000073;overflow:hidden;border:2px solid rgba(255,255,255,.12)}.bar .fill,.bar .ghost{position:absolute;inset:0 auto 0 0;border-radius:8px}.bar.hp .ghost{background:#fff;opacity:.55}.bar.hp .fill{background:linear-gradient(#ff7a8e,#e5264a);z-index:1;transition:width .05s}.bar .label{position:absolute;inset:0;display:grid;place-items:center;font:700 14px var(--display);z-index:2;text-shadow:0 1px 2px rgba(0,0,0,.7)}.bar.time{height:18px}.bar.time .fill{background:linear-gradient(#7fd0ff,#3a8dde)}.bar.time .fill.low{background:linear-gradient(#ffb36b,#ff6a2b)}.bar.time .label{font-size:12px;justify-items:end;padding-right:10px}.tmark{position:absolute;top:0;bottom:0;z-index:2;font:700 9px/14px var(--display);font-style:normal;color:var(--accent);border-left:2px solid rgba(255,204,51,.8);padding-left:3px;letter-spacing:-1px;pointer-events:none}.coin{display:inline-block;width:1em;height:1em;border-radius:50%;vertical-align:-.14em;margin-right:.25em;background:radial-gradient(circle at 35% 30%,#fff3b0,#fc3 45%,#d18a00);box-shadow:inset 0 0 0 .09em #b36f00}.arena-wrap{flex:1;min-height:0;display:grid;place-items:center}.arena{position:relative;overflow:hidden;border-radius:22px;cursor:crosshair;touch-action:none;background:linear-gradient(180deg,var(--sky1),var(--sky2));box-shadow:inset 0 0 0 3px #ffffff1a,0 20px 40px -20px #000c}.arena .ground{position:absolute;left:-10%;right:-10%;bottom:-30%;height:55%;border-radius:50%;background:var(--ground);opacity:.9}.enemy{position:absolute;left:0;top:0;pointer-events:none;will-change:transform}.enemy .body{width:100%;height:100%;animation:bob 1.8s ease-in-out infinite}.enemy .monster{width:100%;height:100%;display:block;overflow:visible}.enemy .shadow{position:absolute;left:22%;right:22%;bottom:8%;height:9%;border-radius:50%;background:#00000040}.enemy.flip .monster{transform:scaleX(-1)}.enemy.dead .body{animation:die .6s ease-in forwards}.enemy.gloat .body{animation:gloat .5s ease-in-out infinite alternate}.m-eyes{animation:blink 4s infinite;transform-origin:0 -18px}.m-wings path{transform-origin:0 0;animation:flap .25s ease-in-out infinite alternate}.m-leaf{transform-origin:0 -86px;animation:sway 2s ease-in-out infinite alternate}.m-spikes{fill:#8b8f9e;stroke:#4e5263;stroke-width:3;transform:scale(.82);transition:transform .25s,fill .2s}.battle[data-spikes=warn] .m-spikes{fill:#ffa53a;transform:scale(.95);animation:tremble .12s infinite}.battle[data-spikes=on] .m-spikes{fill:#ff2d4f;stroke:#8a0019;transform:scale(1.08)}.battle[data-spikes=on] .arena{box-shadow:inset 0 0 0 4px #ff2d4f,inset 0 0 60px #ff2d4f73}.shield{position:absolute;inset:-6%;border-radius:50%;border:5px solid rgba(160,230,255,.95);background:radial-gradient(circle at 35% 30%,#ffffff8c,#78c8ff47 50%,#5096ff59);box-shadow:0 0 30px #78d2ffcc;transition:opacity .15s,transform .2s}.battle[data-guard=open] .shield{opacity:0;transform:scale(1.3)}.battle[data-guard=warn] .shield{animation:flicker .1s infinite}.battle[data-guard=open] .enemy .body{filter:drop-shadow(0 0 16px rgba(255,230,80,.9))}.core{position:absolute;left:0;top:0;border-radius:50%;pointer-events:none;background:radial-gradient(circle,#fff 0 18%,#ffe45c 35%,#ff9d00 70%,#ff780000 72%);box-shadow:0 0 22px 6px #ffc828cc;animation:corepulse .5s ease-in-out infinite alternate}.bomb{position:absolute;left:0;top:0;border-radius:50%;pointer-events:none;display:grid;place-items:center;background:radial-gradient(circle at 35% 30%,#5a5a70,#1d1d28 70%);box-shadow:0 6px 12px #00000080;animation:drop .25s ease-out}.bomb .ring{position:absolute;inset:-7px;border-radius:50%;background:conic-gradient(#fc3 calc(var(--left) * 360deg),#ffffff26 0);-webkit-mask:radial-gradient(circle,transparent 62%,#000 64%);mask:radial-gradient(circle,transparent 62%,#000 64%)}.bomb .n{font:700 calc(34px * var(--s, 1) + 8px) var(--display);color:#fff;position:relative}.bomb.late{animation:jitter .1s infinite}.bomb.late .ring{background:conic-gradient(#ff3b3b calc(var(--left) * 360deg),#ffffff26 0)}.fx{position:absolute;inset:0;pointer-events:none}.pop{position:absolute;transform:translate(-50%,-50%);font:700 22px var(--display);color:#fff;text-shadow:0 2px 0 rgba(0,0,0,.65),0 0 6px rgba(0,0,0,.55);animation:pop .7s ease-out forwards;white-space:nowrap}.pop.crit{color:var(--accent);font-size:30px}.pop.blocked{color:#d7dbe8;font-size:17px}.pop.blocked.parry{color:#b9a4ff}.pop.miss{color:#fff9;font-size:15px}.pop.hurt{color:#ff4d6a;font-size:28px}.pop.good{color:var(--good)}.spark{position:absolute;width:9px;height:9px;border-radius:50%;margin:-4px;animation:spark .55s ease-out forwards}.start-hint{position:absolute;left:50%;bottom:7%;transform:translate(-50%);font:700 20px var(--display);color:#fff;background:#00000073;padding:8px 18px;border-radius:999px;pointer-events:none;animation:pulse 1.2s infinite;white-space:nowrap}.battle.live .start-hint{display:none}.toast{position:absolute;left:50%;top:12px;transform:translate(-50%,-160%);opacity:0;background:#141032eb;border:2px solid var(--accent);border-radius:14px;padding:8px 16px;pointer-events:none;text-align:center;transition:transform .25s;max-width:90%}.toast.show{transform:translate(-50%);opacity:1}.toast b{display:block;color:var(--accent)}.toast span{font-size:14px}.bfoot{display:grid;gap:6px}.gauge{display:flex;align-items:center;gap:10px}.gauge .track{position:relative;flex:1;height:14px;border-radius:8px;background:#00000073}.gauge .fill{position:absolute;inset:0 auto 0 0;border-radius:8px;background:linear-gradient(90deg,#57d977,#b6f06b);transition:background .15s}.gauge .fill.under{background:linear-gradient(90deg,#767b93,#a3a8c0)}.gauge .fill.over{background:linear-gradient(90deg,#b07cff,#ff4d6a)}.gauge .mark{position:absolute;top:-4px;bottom:-4px;width:3px;margin-left:-1px;border-radius:2px}.gauge .mark span{position:absolute;bottom:100%;transform:translate(-50%);font:700 11px var(--display);white-space:nowrap}.gauge .mark.min{background:var(--good);color:var(--good)}.gauge .mark.max{background:#b07cff;color:#b07cff}.gauge .cps{font-size:13px;color:var(--ink2);width:64px;text-align:right}.gauge .cps b{font-size:20px;color:var(--ink)}.goal-line{text-align:center;font:600 16px var(--display);min-height:24px}.battle.shake{animation:shake .35s}.battle.flash .arena{animation:flashy .4s}.modal{position:fixed;inset:0;z-index:10;display:grid;place-items:center;padding:16px;background:#0606149e;backdrop-filter:blur(3px);animation:fade .2s;overflow-y:auto}.card{position:relative;overflow:hidden;width:min(520px,100%);background:var(--bg2);border:1px solid var(--line);border-radius:24px;padding:24px;text-align:center;box-shadow:0 30px 80px #0009;animation:rise .25s ease-out}.card.small{width:min(340px,100%)}.card>*{position:relative}.card h2{font-size:34px;margin:2px 0 8px}.card .eyebrow{color:var(--ink2);font-size:14px;margin:0}.card .rules{text-align:left}.card .cta{justify-content:center;margin-top:16px}.card.intro{padding-top:0}.intro-top{margin:0 -24px 14px;padding:16px 24px 14px;background:linear-gradient(180deg,var(--sky1),var(--sky2));box-shadow:inset 0 -26px 0 -8px var(--ground)}.intro-top .eyebrow,.intro-top h2{color:#fff;text-shadow:0 2px 0 rgba(0,0,0,.45),0 0 12px rgba(0,0,0,.35)}.intro-top .eyebrow{display:inline-block;background:#00000059;padding:2px 10px;border-radius:999px;font-size:13px}.card.intro .goal{margin-bottom:12px}.intro-art{width:150px;margin:-6px auto 0;animation:bob 2s ease-in-out infinite;filter:drop-shadow(0 10px 8px rgba(0,0,0,.35))}.card .tip{color:var(--good);font-size:14px;margin:10px 0 0}.card .why{color:var(--ink2);margin:0 0 12px}.card.win .burst-bg{position:absolute;inset:-50%;background:repeating-conic-gradient(from 0deg,rgba(255,204,51,.1) 0 10deg,transparent 10deg 20deg);animation:spin 18s linear infinite}.big-stars{font-size:58px;line-height:1;margin:6px 0}.big-stars i{font-style:normal;display:inline-block;color:#ffffff26}.big-stars i.on{color:var(--accent);text-shadow:0 0 18px rgba(255,204,51,.8);animation:starpop .45s var(--d) both cubic-bezier(.3,1.8,.5,1)}.coins-won{font:700 22px var(--display);margin:4px 0 12px}.coins-won small{display:block;font-size:13px;color:var(--good)}.rstats{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.rstats div{background:#00000040;border-radius:12px;padding:8px 4px}.rstats b{display:block;font-size:20px}.rstats span{color:var(--muted);font-size:12px}@keyframes bob{50%{transform:translateY(-6px)}}@keyframes blink{0%,92%,to{transform:scaleY(1)}95%{transform:scaleY(.1)}}@keyframes flap{to{transform:rotate(-14deg)}}@keyframes sway{to{transform:rotate(8deg)}}@keyframes tremble{50%{transform:translate(1px,-1px) scale(.97)}}@keyframes jitter{50%{rotate:10deg;scale:1.06}}@keyframes flicker{50%{opacity:.35}}@keyframes corepulse{to{scale:1.1;filter:brightness(1.2)}}@keyframes drop{0%{scale:.4}}@keyframes pop{0%{opacity:0;transform:translate(-50%,-30%) scale(.6)}20%{opacity:1;transform:translate(-50%,-80%) scale(1.1)}to{opacity:0;transform:translate(calc(-50% + var(--dx)),-220%) scale(.9)}}@keyframes spark{to{transform:translate(var(--tx),var(--ty)) scale(.2);opacity:0}}@keyframes pulse{50%{transform:scale(1.06)}}.start-hint{animation-name:hintpulse}@keyframes hintpulse{50%{opacity:.6}}@keyframes shake{20%{transform:translate(-8px,3px)}40%{transform:translate(7px,-4px)}60%{transform:translate(-5px,2px)}80%{transform:translate(3px,-1px)}}@keyframes flashy{30%{filter:brightness(1.8) saturate(1.4)}}@keyframes die{30%{transform:scale(1.2,.8)}to{transform:scale(.1) rotate(40deg);opacity:0}}@keyframes gloat{to{transform:translateY(-14px) scale(1.05)}}@keyframes fade{0%{opacity:0}}@keyframes rise{0%{transform:translateY(20px);opacity:0}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes starpop{0%{transform:scale(0) rotate(-40deg)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important}}@media(max-width:720px){.intro-top{margin:0 -18px 12px;padding:12px 18px}.hero{grid-template-columns:1fr;padding:18px;text-align:left}.hero-art .bob{width:130px}.hero:after{background:linear-gradient(180deg,#0a0a1e00 25%,#0a0a1e8c)}.strip{grid-template-columns:repeat(2,1fr)}.forge{grid-template-columns:1fr}.nodes{grid-template-columns:repeat(5,1fr);row-gap:14px}.rstats{grid-template-columns:repeat(2,1fr)}.card{padding:18px}.card h2{font-size:28px}.intro-art{width:110px}.hearts{font-size:20px}.btitle b{font-size:16px}.bar{height:22px}}
