
:root{color-scheme:dark;--bg:#090e24;--panel:#121a36;--panel2:#182345;--line:#ffffff1f;--ink:#f4f8ff;--muted:#9aa8c9;--aqua:#68f0e3;--yellow:#ffe38f;--pink:#e4a0fa}
*{box-sizing:border-box}html{min-height:100%}body{margin:0;min-height:100vh;background:radial-gradient(ellipse at 15% 5%,#233257 0,transparent 37%),radial-gradient(ellipse at 88% 75%,#242048 0,transparent 35%),#090e24;color:var(--ink);font:500 15px/1.5 ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;overflow-x:hidden}
body:before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.23;background-image:radial-gradient(#d8e7ff 1px,transparent 1px);background-size:55px 55px;background-position:12px 16px;mask-image:linear-gradient(to bottom,#000,transparent 90%)}
.shell{max-width:1170px;margin:0 auto;padding:27px 23px 30px;position:relative}
.top{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:22px}
.brand{display:flex;align-items:center;gap:13px}.brand-mark{height:47px;width:47px;display:grid;place-items:center;background:linear-gradient(145deg,#78f5db,#5197e9);border-radius:16px;box-shadow:0 0 32px #71eade36;position:relative;color:#192342;font-size:28px;font-weight:900}.brand-mark:after{content:"✦";position:absolute;font-size:12px;color:#ffebaf;right:-6px;top:-8px}
.brand-title{font-weight:900;letter-spacing:.13em;font-size:24px;line-height:1.05}.brand-caption{font-size:12px;color:var(--muted);letter-spacing:.05em;margin-top:5px}
.top-right{display:flex;align-items:center;gap:8px}.chip{background:#ffffff0b;border:1px solid var(--line);color:#cbd6ec;border-radius:100px;padding:8px 13px;font-size:12px;letter-spacing:.04em}
.icon-button{border:1px solid var(--line);background:#ffffff0c;color:#d6e7fa;width:40px;height:40px;border-radius:12px;display:grid;place-items:center;cursor:pointer;font-size:19px;transition:transform .15s,background .15s}.icon-button:hover{background:#ffffff20;transform:translateY(-2px)}.icon-button:focus-visible,.action:focus-visible,.dpad button:focus-visible{outline:3px solid var(--yellow);outline-offset:3px}
.layout{display:grid;grid-template-columns:minmax(0,1fr) 282px;gap:18px;align-items:start}.game-column{min-width:0}
.stage{position:relative;border-radius:23px;background:#101935;overflow:hidden;border:1px solid #7184b244;box-shadow:0 20px 75px #0007,0 1px 0 #ffffff20 inset;isolation:isolate}
.stage:before{position:absolute;z-index:1;pointer-events:none;content:"";inset:0;border-radius:inherit;box-shadow:inset 0 0 90px #03081965}
canvas{display:block;width:100%;height:auto;aspect-ratio:15/11;touch-action:none;user-select:none}
.overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;text-align:center;background:#090f29ba;backdrop-filter:blur(8px);z-index:5;padding:18px;overflow-y:auto}.overlay.hidden{display:none}
.modal{width:min(100%,440px);border-radius:26px;padding:31px 29px;background:linear-gradient(145deg,#1a2750f5,#111a37fa);border:1px solid #acc8fe48;box-shadow:0 25px 80px #0009,0 1px 0 #ffffff27 inset}
.modal-art{height:83px;display:flex;align-items:center;justify-content:center;font-size:60px;filter:drop-shadow(0 5px 20px #75e8fd67);animation:float 3s ease-in-out infinite}
@keyframes float{50%{transform:translateY(-7px)}}.eyebrow{text-transform:uppercase;color:var(--aqua);letter-spacing:.2em;font-size:10px;font-weight:800;margin:8px 0}.modal h1,.modal h2{font-size:clamp(25px,4.6vw,36px);line-height:1.14;letter-spacing:-.045em;margin:6px 0 10px;font-weight:900}.modal p{margin:0 auto 19px;max-width:340px;color:#c2cce5;font-size:14px;line-height:1.6}.modal .small{color:#a9b7d5;font-size:12px;margin-top:12px;margin-bottom:0}
.action{appearance:none;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:47px;border:0;border-radius:14px;padding:11px 24px;font-size:15px;font-weight:850;cursor:pointer;transition:transform .15s,filter .15s;background:linear-gradient(120deg,#81fbe0,#71b5f5);color:#10213e;box-shadow:0 8px 30px #59f1df34}.action:hover{transform:translateY(-2px);filter:brightness(1.07)}.action.secondary{background:#ffffff12;color:#e1eaff;border:1px solid #ffffff2e;box-shadow:none}.modal-actions{display:flex;flex-wrap:wrap;gap:9px;align-items:center;justify-content:center;margin-top:12px}
.tagline{display:flex;align-items:center;justify-content:space-between;color:#97aaca;font-size:12px;margin:12px 2px 0;gap:8px}.tagline strong{color:#dafbf6}
.side{display:flex;flex-direction:column;gap:14px}.panel{border:1px solid #ffffff1b;border-radius:19px;background:linear-gradient(148deg,#1b2546dd,#111a36df);padding:20px;box-shadow:0 10px 30px #0002}.panel-label{margin:0 0 17px;color:#93a6ca;font-size:11px;font-weight:800;letter-spacing:.16em;text-transform:uppercase}.stats{display:grid;grid-template-columns:1fr 1fr;gap:10px}.stat{background:#09112b80;border:1px solid #ffffff12;padding:11px 12px;border-radius:13px}.stat .name{color:#a7b6d6;font-size:11px;margin-bottom:3px}.stat .value{font-size:22px;letter-spacing:-.025em;font-weight:850;font-variant-numeric:tabular-nums}.stat .value.accent{color:var(--yellow)}
.life-row{display:flex;justify-content:space-between;align-items:center;color:#acbddd;font-size:12px;margin-top:19px}.hearts{font-size:23px;letter-spacing:3px;color:#ff91ab;text-shadow:0 0 14px #ff78aa60}.level-pips{display:flex;gap:7px;margin-top:12px}.pip{height:6px;background:#ffffff26;flex:1;border-radius:20px;transition:background .2s}.pip.done{background:#61bfc7}.pip.active{background:#ffe38f;box-shadow:0 0 13px #ffde8650}
.objective{display:flex;gap:13px;align-items:center;background:#111d3c;padding:13px;border-radius:13px;border:1px solid #ffffff16}.objective .symbol{font-size:30px;line-height:1}.objective strong{display:block;color:#fff;font-size:13px}.objective span:last-child{color:#9eafcc;font-size:12px}
.controls{text-align:center}.dpad{display:grid;grid-template-columns:repeat(3,52px);grid-template-rows:repeat(2,52px);justify-content:center;gap:5px;margin-top:4px}.dpad button{touch-action:none;border:1px solid #ffffff2c;cursor:pointer;color:#d6e8ff;background:linear-gradient(145deg,#334773,#1b2c54);border-radius:14px;font-size:23px;box-shadow:0 4px 0 #0b1732;transition:transform .08s,background .08s;user-select:none}.dpad button:active,.dpad button.pressed{transform:translateY(3px);box-shadow:0 1px 0 #0b1732;background:linear-gradient(145deg,#427e9d,#214367)}.dpad .empty{pointer-events:none}.hint{font-size:12px;color:#a3b0ce;margin-top:12px}.key{display:inline-block;background:#283556;border:1px solid #ffffff29;border-bottom-width:3px;border-radius:6px;padding:0px 6px;color:#dae5f9;font-size:11px}
.tip{font-size:12px;color:#b9c7df;display:flex;gap:10px;align-items:flex-start;margin-top:10px}.tip .dot{display:grid;place-items:center;width:22px;height:22px;flex:none;border-radius:7px;background:#274364;font-weight:900;color:#79efe5}.muted{color:#8b9bbb}.footer{margin-top:22px;text-align:center;color:#8091b5;font-size:11px}.toast{position:absolute;z-index:6;bottom:17px;left:50%;transform:translateX(-50%) translateY(10px);max-width:calc(100% - 30px);white-space:nowrap;background:#14264dee;border:1px solid #93dbe571;color:#edfbff;padding:10px 16px;border-radius:13px;font-size:13px;font-weight:750;box-shadow:0 10px 25px #0007;opacity:0;pointer-events:none;transition:opacity .16s,transform .16s}.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
@media(max-width:900px){.layout{grid-template-columns:1fr}.side{display:grid;grid-template-columns:1fr 1fr;align-items:start}.panel:last-child{grid-column:1/-1}.stage{max-width:800px;margin:auto}}@media(max-width:560px){.shell{padding:14px 10px 22px}.brand-mark{width:39px;height:39px;font-size:24px;border-radius:12px}.brand-title{font-size:20px}.brand-caption{font-size:10px}.top{margin-bottom:13px}.chip{display:none}.icon-button{height:37px;width:37px}.stage{border-radius:14px}.side{display:flex;align-items:stretch;gap:10px}.side .controls{order:-1}.panel{padding:14px}.panel-label{margin-bottom:10px}.stats{grid-template-columns:repeat(4,1fr);gap:6px}.stat{padding:9px 6px;text-align:center}.stat .name{font-size:10px}.stat .value{font-size:18px}.life-row{margin-top:12px}.controls{padding-bottom:16px}.modal{padding:22px 16px}.modal-art{height:58px;font-size:45px}.modal p{font-size:12.5px;margin-bottom:12px}.modal .small{font-size:11px}.action{min-height:42px;font-size:13px;padding:9px 14px}.tagline{font-size:11px}}
@media(prefers-reduced-motion:reduce){.modal-art{animation:none}*,*:before,*:after{scroll-behavior:auto!important}}

/* DELUXE: new UI + accessibility */
:root{--aqua:#77f5dd;--yellow:#ffdb7b}
body{background:radial-gradient(ellipse at 8% 0%,#1b2f53,transparent 40%),radial-gradient(ellipse at 94% 100%,#322456,transparent 43%),#080c20}
.brand-mark{box-shadow:0 10px 40px #48deca40}
.deluxe-flag{display:inline-flex;align-items:center;border:1px solid #70e5dc55;background:#56d6ca1e;color:#94fff2;border-radius:20px;padding:3px 8px;letter-spacing:.11em;font-size:9px;font-weight:900;vertical-align:middle;margin-left:6px}
.top-right{flex-wrap:wrap;justify-content:flex-end}
.stage{border-color:#a6c4fa36}
.action{touch-action:manipulation}
.modal{max-height:min(97%,525px);overflow:auto;scrollbar-width:thin;overscroll-behavior:contain;padding:25px 25px}
.modal p{white-space:pre-line}
.overlay{align-items:safe center;overscroll-behavior:contain}
.modal-actions .action{flex:1 1 auto}
.level-picker .action{min-width:45%;font-size:12px;padding:9px 10px;min-height:38px}
.secondary-action{border:1px solid #ffffff25;color:#deebff;background:#ffffff0f;border-radius:11px;padding:9px 11px;font:700 12px ui-sans-serif,system-ui;cursor:pointer}
.secondary-action:hover{background:#ffffff20}
.progress-wrap{height:8px;background:#07112d;border-radius:20px;overflow:hidden;margin-top:12px;border:1px solid #ffffff15}
.progress-fill{height:100%;width:0;background:linear-gradient(90deg,#6dece0,#ffe394);transition:width .25s}
.powerbox{margin-top:12px;background:#0d1731;border:1px solid #ffffff16;border-radius:12px;padding:11px 12px;display:flex;justify-content:space-between;gap:7px;align-items:center;min-height:52px}
.powerbox .power-text{font-size:12px;color:#c9d9f5}
.ability{display:inline-flex;gap:7px;align-items:center;flex-wrap:wrap}
.ability-button{min-width:72px;height:54px;border-radius:15px;border:1px solid #bafff382;background:linear-gradient(145deg,#75e6d2,#459ec6);box-shadow:0 5px 0 #0c324c;color:#0b2b43;font-weight:900;cursor:pointer;touch-action:manipulation}
.ability-button:disabled{opacity:.5;filter:grayscale(.4);cursor:not-allowed}
.ability-button:active:not(:disabled){transform:translateY(3px);box-shadow:0 2px 0 #0c324c}
.control-row{display:flex;justify-content:center;align-items:center;gap:17px}
.control-row .dpad{margin:0}
.run-tags{display:flex;gap:6px;flex-wrap:wrap;margin:12px 0 0}
.run-tag{color:#b7f6ee;font-size:11px;background:#153148a8;border:1px solid #6ae9da36;border-radius:20px;padding:3px 9px}
.medal{font-size:11px;color:#ffdea2;font-weight:800}
.guide-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.guide-grid div{background:#0d1733;border:1px solid #ffffff13;padding:10px;border-radius:10px;font-size:11px;color:#b8cbe8}
.guide-grid strong{color:#fff;display:block;font-size:12px}
.panel{backdrop-filter:blur(7px)}
select{color:#e6f8ff;background:#223353;border:1px solid #84c6d25c;border-radius:11px;padding:11px 12px;font:750 13px ui-sans-serif,system-ui;max-width:100%}
select option{color:#fff;background:#182847}
.toast{white-space:normal;text-align:center;min-width:160px}
@media(max-width:900px){.side{grid-template-columns:1fr 1fr}.side .controls{grid-column:1/-1}.control-row{gap:35px}}
@media(max-width:560px){.modal{max-height:calc(100% - 12px);border-radius:17px;padding:14px 12px}.overlay{padding:5px}.modal h1,.modal h2{font-size:22px}.modal-art{height:35px;font-size:31px}.modal .small{display:none}.modal p{font-size:11px;line-height:1.35;margin-bottom:8px}.eyebrow{margin:2px}.modal-actions{margin-top:7px}.top-right{gap:5px}.brand-caption{max-width:180px}.action{min-height:35px;padding:8px 10px;font-size:11.5px}.control-row{gap:14px}.ability-button{height:48px;min-width:65px}.level-picker .action{min-width:45%;font-size:10px;padding:7px 8px}.panel{border-radius:14px}.shell{padding-top:10px}}
@media(prefers-reduced-motion:reduce){.progress-fill{transition:none}.action,.icon-button{transition:none}}

@media(max-width:560px){.stage.has-modal{min-height:455px;background:radial-gradient(circle at 50% 75%,#253d65 0,#111a38 60%)}.stage.has-modal:before{box-shadow:inset 0 0 110px #09112d9c}.stage.has-modal .overlay{min-height:455px}.stage.has-modal .modal{max-height:calc(100% - 12px)}}
