@font-face{font-family:"Press Start 2P";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/press-start-2p-latin-400-normal-_wFEWmAB.woff2)format("woff2"),url(/assets/press-start-2p-latin-400-normal-KLytu4cr.woff)format("woff")}@font-face{font-family:Pixelify Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/pixelify-sans-latin-500-normal-DC052d-m.woff2)format("woff2"),url(/assets/pixelify-sans-latin-500-normal-Bq6pAlou.woff)format("woff")}@font-face{font-family:Pixelify Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/pixelify-sans-latin-700-normal-D3Xxx3QE.woff2)format("woff2"),url(/assets/pixelify-sans-latin-700-normal-BctWAS0u.woff)format("woff")}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/dm-sans-latin-400-normal-CW0RaeGs.woff2)format("woff2"),url(/assets/dm-sans-latin-400-normal-BwCSEQnW.woff)format("woff")}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/dm-sans-latin-500-normal-B9HHJjqV.woff2)format("woff2"),url(/assets/dm-sans-latin-500-normal-Dr3UlScf.woff)format("woff")}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/dm-sans-latin-700-normal-DvUfVpUG.woff2)format("woff2"),url(/assets/dm-sans-latin-700-normal-CUSSCpQX.woff)format("woff")}:root{--bg:#0e1620;--fg:#e6f0ee;--muted:#9db1ae;--card:#16222e;--line:#26384a;--accent:#4fd1c5;--amber:#ffb347;--pix:"Press Start 2P", ui-monospace, monospace;--pxl:"Pixelify Sans", "DM Sans", system-ui, sans-serif;--ui:"DM Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html,body{min-height:100vh;background-color:var(--bg);background-image:radial-gradient(circle at 15% 12%,#1c7c7d38,#0000 45%),radial-gradient(circle at 88% 85%,#d96b2729,#0000 45%),linear-gradient(#0e1620,#16222c);background-attachment:fixed;min-height:100dvh;margin:0}[hidden]{display:none!important}body{color:var(--fg);font-family:var(--ui);font-size:15px;line-height:1.5;overflow-x:hidden}#root{min-height:100vh;min-height:100dvh}.page{max-width:1040px;min-height:100vh;min-height:100dvh;padding-block:22px 48px;padding-left:max(16px, env(safe-area-inset-left,0px));padding-right:max(16px, env(safe-area-inset-right,0px));grid-template-columns:minmax(0,1fr);align-content:start;gap:22px;margin:0 auto;display:grid}.head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;display:flex}.logo{font-family:var(--pix);letter-spacing:.04em;text-shadow:3px 3px #06090d;font-size:clamp(16px,4vw,24px)}.logo b:first-child{color:#4fd1c5}.logo b:nth-child(2){color:#f6ad55}.logo b:nth-child(3){color:#63b3ed}.panel{background:var(--card);border:1px solid var(--line);border-radius:14px;grid-template-columns:minmax(0,1fr);gap:10px;min-width:0;max-width:100%;margin-top:16px;padding:16px;display:grid}.demo{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.demo span{color:var(--muted);font-size:13px;font-weight:700}.demo button{font:inherit;border:1px solid var(--line);min-height:44px;color:var(--fg);cursor:pointer;background:#1e2e3d;border-radius:10px;padding:0 12px;font-size:13px;font-weight:700}.demo button:hover{background:#27405a}.demo button[aria-pressed=true]{background:#2f8f7a;border-color:#4fd1c5}button:focus-visible,input:focus-visible{outline-offset:2px;outline:3px solid #fff;box-shadow:0 0 0 5px #000}.dev{width:100%;min-width:0;max-width:360px;margin:0 auto;position:relative}.appbar{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;min-width:0;max-width:100%;margin-bottom:12px;display:grid}.ab{color:#e6f0ee;min-width:0;max-width:100%;min-height:54px;font:700 11px / 1 var(--ui);cursor:pointer;background:#16222e;border:1px solid #2c4258;border-radius:12px;align-content:center;justify-items:center;gap:3px;padding:4px 2px;display:grid;position:relative}.ab:active{background:#27405a}.ab[aria-pressed=true]{background:#1d3a44;border-color:#4fd1c5}.ab svg,.dock svg,.ibar svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:22px;height:22px}.badge{color:#fff;min-width:20px;height:20px;line-height:20px;font:700 12px / 20px var(--ui);text-align:center;background:#c8242f;border:2px solid #0e1620;border-radius:10px;padding:0 3px;position:absolute;top:-8px;right:-4px}.area{min-width:0;max-width:100%;position:relative}.rig{min-width:0;max-width:100%;transition:transform .7s cubic-bezier(.6,-.15,.3,1),opacity .55s}.calm .rig{transition:none}.loop{background:#141e2866;border:5px solid #6b7c8c;border-bottom:0;border-radius:28px 28px 0 0;width:54px;height:26px;margin:0 auto -2px}.shell{--shell:#f4a6cf;--trim:#6fd7a8;background:radial-gradient(circle at 35% 18%, color-mix(in srgb, var(--shell) 70%, #fff) 0%, var(--shell) 50%, color-mix(in srgb, var(--shell) 52%, #000) 100%);-webkit-user-select:none;user-select:none;border-radius:46% 46% 42% 42%/13% 13% 12% 12%;grid-template-columns:minmax(0,1fr);gap:12px;min-width:0;max-width:100%;padding:34px 20px 26px;display:grid;position:relative;overflow:clip;box-shadow:inset 0 10px 18px #ffffff47,inset 0 -16px 24px #0000008c,0 24px 48px #000000b3,0 0 0 6px #0c1f24}.shell:before{content:"";border-radius:inherit;pointer-events:none;background-image:radial-gradient(#ffffff0f 1px,#0000 0);background-size:4px 4px;position:absolute;inset:0}.shell:after{content:"";border-radius:inherit;background:var(--pat,none);pointer-events:none;position:absolute;inset:0}.trim{background:linear-gradient(165deg, color-mix(in srgb, var(--trim) 75%, #fff), var(--trim) 50%, color-mix(in srgb, var(--trim) 55%, #000));z-index:1;pointer-events:none;border-top:6px solid #0c1f24;border-radius:42% 42% 50% 50%/28% 28% 72% 72%;width:112%;height:130px;position:absolute;bottom:-12px;left:-6%;box-shadow:inset 0 8px 12px #ffffff4d,inset 0 -18px 24px #00000080}.word{text-align:center;z-index:3;font-family:var(--pix);letter-spacing:.14em;color:#06292c;text-shadow:0 1px #ffffff59;font-size:10px;position:absolute;top:12px;left:0;right:0}.bezel{z-index:3;background:linear-gradient(145deg,#1b2830,#2c3e4a);border:5px solid #0c1f24;border-radius:24px;min-width:0;max-width:100%;padding:9px;position:relative;box-shadow:inset 0 4px 10px #000000d9,0 5px #ffffff1f}.hw{z-index:4;justify-content:center;gap:26px;margin-top:2px;padding-bottom:4px;display:flex;position:relative}.hwb{justify-items:center;gap:3px;display:grid}.hwb:nth-child(2){transform:translateY(12px)}.hwl{font:700 10px / 1 var(--ui);color:#3a1604;letter-spacing:.04em;margin-top:9px}.shell:not(.retro) .hw{display:none}.shell:not(.retro) .trim{height:76px}.shell:not(.retro){padding-bottom:34px}.shell.retro{padding-bottom:36px}.hw-btn svg{fill:none;stroke:#1d2a34;stroke-width:3px;stroke-linecap:round;stroke-linejoin:round;width:22px;height:22px}.hw-btn{cursor:pointer;width:48px;height:48px;font:700 13px var(--pix);color:#1d2a34;background:radial-gradient(circle at 35% 30%,#a9bdce 0%,#687b8c 65%,#3f4e5c 100%);border:4px solid #151e26;border-radius:50%;place-content:center;padding:0;transition:transform 60ms,box-shadow 60ms;display:grid;box-shadow:0 6px #151e26,0 10px 14px #00000080,inset 0 3px 4px #ffffff80}.hw-btn:active,.hw-btn.pressed{transform:translateY(5px);box-shadow:0 1px #151e26,0 3px 5px #0006,inset 0 2px 4px #ffffff4d}.retro .hw-btn{box-shadow:0 6px #151e26,0 0 0 3px #ffe27a8c,0 10px 14px #00000080,inset 0 3px 4px #ffffff80}.lcd{color:#e8f2f0;min-width:0;max-width:100%;font-family:var(--ui);background:#0f1b2a;border-radius:12px;grid-template-columns:minmax(0,1fr);gap:8px;padding:8px;display:grid;position:relative;overflow:clip;box-shadow:inset 0 0 0 2px #05090f}.lcd.warn{box-shadow:inset 0 0 0 3px var(--amber)}@media (prefers-reduced-motion:no-preference){.lcd.warn{animation:2.4s ease-in-out infinite glow}@keyframes glow{50%{box-shadow:inset 0 0 0 3px #ffd89a,inset 0 0 18px #ffb34759}}}.calm .lcd.warn{animation:none}.glare{pointer-events:none;z-index:5;background:linear-gradient(125deg,#ffffff1a 0%,#ffffff08 34%,#0000 34.5%);position:absolute;inset:0}.large{--fs:1.2}.px{font-family:var(--pxl)}.score,#controls{min-width:0;max-width:100%}.srow{justify-content:space-between;align-items:center;gap:8px;min-width:0;display:flex}.odo{align-items:baseline;gap:8px;min-width:0;display:flex}.sl{font-size:calc(12px * var(--fs,1));letter-spacing:.1em;color:#9fb6c8;font-weight:700}.digs{font-family:var(--pix);font-size:calc(20px * var(--fs,1));letter-spacing:2px;color:#ffe27a;text-shadow:0 2px #3a2b00}.pn{font:600 calc(15px * var(--fs,1)) / 1 var(--pxl);color:#bfe9d4;text-overflow:ellipsis;white-space:nowrap;max-width:48%;overflow:hidden}.meters{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;min-width:0;max-width:100%;display:grid}.m{align-content:start;gap:4px;min-width:0;max-width:100%;display:grid}.mt{font-size:calc(13px * var(--fs,1));align-items:center;gap:4px;min-width:0;min-height:16px;font-weight:700;line-height:1;display:flex}.mt svg{width:16px;height:16px;fill:var(--mc);stroke:none;flex:none}.mt .nmx{color:var(--mc)}.mt .mk{font-size:calc(11px * var(--fs,1));color:#cfe0ea;white-space:nowrap}.mb{background:#05090f;gap:1px;height:11px;padding:1px;display:flex}.mb i{background:#24364a;flex:1}.mb i.on{background:var(--mc)}.mn{font-size:calc(20px * var(--fs,1));color:var(--mc);font-weight:700;line-height:1}.m.low .mk{color:#ffd27a}.m.crit .mk{color:#ffb3a3}.stage{cursor:pointer;min-width:0;max-width:100%;line-height:0;position:relative;overflow:clip;box-shadow:0 0 0 2px #05090f}.stage canvas{aspect-ratio:4/3;width:100%;max-width:100%;height:auto;image-rendering:pixelated;display:block}.warnbar{z-index:4;line-height:1.3;font-size:calc(12px * var(--fs,1));color:#3a2200;background:#ffd89a;border:2px solid #c98a2b;border-radius:10px;padding:6px 9px;font-weight:700;position:absolute;top:6px;left:6px;right:6px}.toast{z-index:4;line-height:1.3;font-size:calc(13px * var(--fs,1));text-align:center;color:#06292c;opacity:0;pointer-events:none;background:#d9fbf1;border:2px solid #0c1f24;border-radius:10px;padding:6px 8px;font-weight:700;transition:opacity .2s,transform .2s;position:absolute;bottom:8px;left:8px;right:8px;transform:translateY(6px)}.toast.on{opacity:1;pointer-events:auto;transform:none}.gone{z-index:4;text-align:center;line-height:1.35;font-size:calc(14px * var(--fs,1));background:#0a121ed6;place-content:center;gap:10px;padding:18px;display:grid;position:absolute;inset:0}.dock{grid-template-columns:repeat(5,minmax(0,1fr));gap:5px;min-width:0;max-width:100%;display:grid}.dock button{min-width:0;max-width:100%;min-height:52px;font:700 calc(11px * var(--fs,1)) / 1.1 var(--ui);color:#06292c;cursor:pointer;background:linear-gradient(#fff,#cfe7e2);border:2px solid #05090f;border-radius:10px;justify-items:center;gap:2px;padding:5px 2px;display:grid;box-shadow:0 3px #05090f}.dock button:active{transform:translateY(2px);box-shadow:0 1px #05090f}.dock button[disabled]{opacity:.45;cursor:default}.ibar{grid-template-columns:repeat(5,minmax(0,1fr));gap:5px;min-width:0;max-width:100%;display:grid}.ibar span{min-width:0;max-width:100%;min-height:52px;font:700 calc(11px * var(--fs,1)) / 1.1 var(--ui);color:#9fb6c8;background:#162536;border:2px solid #2a4157;justify-items:center;gap:2px;padding:5px 2px;display:grid}.ibar span.sel{color:#fff;background:#2a3320;border-color:#ffd54a;box-shadow:0 0 0 2px #05090f}.ibar.off{opacity:.45}.hatch-panel{background:#162536;border:1px solid #2a4157;border-radius:10px;grid-template-columns:minmax(0,1fr);gap:6px;min-width:0;max-width:100%;padding:8px;display:grid}.hatch-label{font-size:calc(12px * var(--fs,1));letter-spacing:.08em;text-transform:uppercase;color:#9fb6c8;font-weight:700}.fi{gap:6px;display:flex}.fi input{color:#e8f2f0;min-width:0;min-height:44px;font:700 13px var(--pix);background:#0b1522;border:2px solid #3a5168;border-radius:10px;flex:1;padding:0 10px}.btn{font:700 calc(12px * var(--fs,1)) / 1.1 var(--ui);color:#06292c;cursor:pointer;background:linear-gradient(#fff,#cfe7e2);border:2px solid #05090f;border-radius:10px;min-width:44px;min-height:44px;padding:0 12px}.btn[disabled]{opacity:.45;cursor:default}.calm *,.calm :before,.calm :after{transition:none!important;animation:none!important}
