:root{color-scheme:dark;--gold:#ffd650;--cyan:#7eeeff;--scale:1;--touchOpacity:.72}*{box-sizing:border-box}html,body{margin:0;background:#061426;color:#fff;font:16px/1.5 system-ui,Segoe UI,sans-serif;width:100%;height:100%;overflow:hidden;touch-action:none;overscroll-behavior:none;user-select:none}button,select,input{font:inherit}button,select{color:#fff;background:#193753;border:1px solid #ffffff30;border-radius:12px;padding:12px 20px;cursor:pointer}button:hover,button:focus-visible{background:#285779;outline:2px solid var(--cyan);outline-offset:2px}button.primary{background:var(--gold);color:#071b36;border:0;font-weight:800}button:disabled{opacity:.38;cursor:default}#game{position:relative;height:100%;width:100%;display:grid;place-items:center;background:#020913}canvas{display:block;width:100%;height:100%;object-fit:contain}#overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:max(18px,env(safe-area-inset-top)) max(18px,env(safe-area-inset-right)) max(18px,env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left));background:linear-gradient(100deg,#031225df,#04182962);overflow:auto}#overlay:empty{display:none}.panel{width:min(930px,100%);max-height:100%;overflow:auto;touch-action:pan-y;scrollbar-color:#466c83 #10243a;padding:30px;border:1px solid #b4dcff35;border-radius:24px;background:linear-gradient(140deg,#0b254df2,#07172de8);box-shadow:0 20px 80px #0007}.title-panel{width:min(1050px,100%);background:linear-gradient(100deg,#071b3af5 35%,#061c3970);padding:40px}.eyebrow{text-transform:uppercase;letter-spacing:.25em;color:var(--cyan);font-size:12px;font-weight:800;margin:0 0 12px}h1{font-style:italic;letter-spacing:-.06em;font-size:clamp(42px,7vw,86px);line-height:.93;margin:12px 0;color:var(--gold);text-shadow:3px 5px 0 #023763}h1 small{display:block;font-size:.34em;letter-spacing:.02em;color:#fff;margin:12px 0 20px}h2{font-size:32px;margin:0 0 12px;line-height:1.1}h3{color:var(--gold);margin:8px 0}p{color:#c9dced;max-width:660px}.menu{display:flex;flex-wrap:wrap;gap:10px;margin:24px 0 16px}.menu button{min-width:145px}.muted{font-size:12px;color:#90abc1}.badge{display:inline-block;padding:5px 12px;border-radius:30px;background:#64d7ed17;border:1px solid #65d7ed38;font-size:12px;margin:4px 6px 4px 0;color:#c1efff}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:20px 0}.stage{padding:14px;text-align:left;min-height:92px}.stage small{display:block;color:#b5d5e9}.stage b{display:block;color:var(--gold)}.settings{display:grid;grid-template-columns:1fr 1fr;gap:14px}.settings label{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px;background:#fff08;border-radius:10px}.settings input[type=range]{width:120px;accent-color:var(--gold)}.help{display:grid;grid-template-columns:1fr 1fr;gap:12px}.help article{padding:14px;background:#ffffff08;border-radius:12px}.help .glyph{font-size:34px;color:var(--gold);float:left;margin-right:16px}.help p{margin:5px 0;font-size:14px}#hud{position:absolute;top:max(12px,env(safe-area-inset-top));left:max(18px,env(safe-area-inset-left));right:max(18px,env(safe-area-inset-right));display:flex;align-items:start;gap:20px;text-shadow:1px 2px 3px #0018;pointer-events:none}#hud[hidden]{display:none}.brand{font-size:24px;font-weight:1000;font-style:italic;color:var(--gold);line-height:1.1;flex:1}.brand span{display:block;font-size:12px;font-weight:700;color:#fff;letter-spacing:.03em;margin-top:6px}.stats{display:flex;gap:24px;background:#031429b8;padding:7px 18px;border:1px solid #fff2;border-radius:14px}.stats span{color:#b8dfee;font-size:10px;letter-spacing:.12em}.stats b{display:block;color:#fff;font-size:23px;line-height:1.1;letter-spacing:0}#pauseButton{pointer-events:auto;border-radius:50%;padding:8px 16px;background:#092842cf}#bossHud{position:absolute;top:70px;left:30%;right:30%;font-size:12px;text-align:center;background:#07172bcc;padding:4px;border-radius:10px}#bossHud progress{width:100%;height:8px;accent-color:#ff687a;display:block}#air{position:absolute;top:110px;left:45%;font-size:24px;color:#fff;background:#ba2540e0;padding:4px 12px;border-radius:12px}#notice{position:absolute;top:23%;left:50%;transform:translateX(-50%);padding:10px 22px;background:#061832dc;border-radius:30px;border:1px solid #a5e4ff60;transition:opacity .25s;opacity:0;text-align:center;pointer-events:none;font-weight:700;min-width:200px}#touch{display:none;position:absolute;bottom:max(18px,env(safe-area-inset-bottom));left:max(18px,env(safe-area-inset-left));right:max(18px,env(safe-area-inset-right));justify-content:space-between;pointer-events:none;opacity:var(--touchOpacity)}#touch button{pointer-events:auto;width:calc(62px * var(--scale));height:calc(62px * var(--scale));padding:0;border:2px solid #cde7ff88;border-radius:50%;background:#092341bb;font-weight:900;touch-action:none;box-shadow:0 5px 15px #0003}#touch button.active{background:#1eaad6b0}#touch .jump{width:calc(82px * var(--scale));height:calc(82px * var(--scale));background:#ddb82ebb;color:#071329;border-color:#ffef9f}#touch .dpad,#touch .actions{display:flex;align-items:end;gap:10px}#touch .super{width:45px;height:45px;font-size:25px;color:#ffe64c}#rotate{display:none;position:absolute;inset:0;background:#07162af5;align-items:center;justify-content:center;flex-direction:column;text-align:center;padding:25px}#rotate>span{font-size:70px;color:var(--gold)}#rotate strong{font-size:24px}@media(pointer:coarse){body.playing #touch{display:flex}}body.touch #touch{display:flex}body.menu-open #touch{display:none}@media(max-width:740px){.panel,.title-panel{padding:20px}.grid{grid-template-columns:1fr 1fr}.settings,.help{grid-template-columns:1fr}.stats{gap:12px;padding:7px 10px}.brand{font-size:19px}.stats b{font-size:18px}.menu{margin-top:15px}.menu button{min-width:115px;padding:10px 14px}h2{font-size:26px}}@media(orientation:portrait) and (pointer:coarse){body:not(.portrait-ok) #rotate{display:flex}}@media(max-height:500px){.title-panel{padding:20px}h1{font-size:44px}.menu{margin:12px 0}.panel>p{margin:8px 0}.badge{padding:2px 8px}#hud{top:7px}.stats b{font-size:18px}}

canvas{width:min(100vw,177.777778dvh);height:min(100dvh,56.25vw)}

.ending-overlay{align-self:flex-end;margin-bottom:15px}.ending-overlay button{background:#071c3bc9}#overlay:has(.ending-overlay){background:transparent;pointer-events:none}#overlay:has(.ending-overlay) button{pointer-events:auto}
