:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--alberto:#19f;--ink:#e9f5ff;--muted:#9ab9d2;--line:#76bfff30;--accent:#8cd4ff;--surface:#102e49;--shell:#071522;--panel:linear-gradient(145deg,#173e5e,#102b44);--key:linear-gradient(145deg,#214f72,#123650);--key-hover:linear-gradient(145deg,#2b6088,#194866);--primary:linear-gradient(150deg,#65c6ff,var(--alberto));--primary-hover:linear-gradient(150deg,#85d4ff,#39adff);font-synthesis:none;background:var(--shell);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html,body{overscroll-behavior:none;width:100%;height:100%;margin:0;overflow:hidden}button,select,input{font:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;color:inherit}button:disabled{opacity:.45;cursor:default}button,a,select,input{outline-offset:4px}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible,canvas:focus-visible{outline:2px solid var(--accent)}[hidden]{display:none!important}h1,h2,p{margin-top:0}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;overflow:hidden;position:absolute!important}.app{background:radial-gradient(ellipse at 50% 38%,#123653 0,#0b2237 44%,var(--shell) 100%);isolation:isolate;width:100%;height:100dvh;padding:env(safe-area-inset-top,0px) env(safe-area-inset-right,0px) env(safe-area-inset-bottom,0px) env(safe-area-inset-left,0px);position:fixed;inset:0;overflow:hidden}.cabinet{--bezel:7px;aspect-ratio:1.16;background:linear-gradient(140deg,#547f9e 0,#2b506e 3%,#152e46 42%,#1b3d59 100%);border-radius:12px;width:min(92vw,112dvh);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:inset 0 1px #b8e3ff73,inset 1px 0 #8bc9fa40,inset -1px -2px #040e19,0 2px #040d17,0 18px 55px #0008}.display{inset:var(--bezel);background:#000;border-radius:2px;position:absolute;overflow:clip;box-shadow:0 0 0 2px #030c16,0 0 0 3px #75b9ef45}.display canvas{width:100%;height:100%;image-rendering:pixelated;image-rendering:crisp-edges;touch-action:none;outline-offset:-3px;border:0;display:block}#menu{position:absolute;inset:0}.app[data-screen=menu] #game,.app[data-screen=boot] #game{visibility:hidden}.boot-enter{touch-action:manipulation;background:#000;border:0;width:100%;height:100%;padding:0;display:block;position:absolute;inset:0}.boot-enter:disabled{opacity:1}#menu-loading{width:80%;height:78.125%;image-rendering:pixelated;image-rendering:crisp-edges;position:absolute;top:0;left:10%}.boot-enter:focus-visible{outline-offset:-4px}#menu-targets{pointer-events:none;position:absolute;inset:0}.menu-icon{pointer-events:auto;touch-action:manipulation;background:0 0;border:0;padding:0;position:absolute}.menu-icon:focus-visible{outline-offset:-4px;outline:1px dashed #fff6}.app[data-screen=boot] #menu-targets{display:none}.screen-tools{top:max(12px,env(safe-area-inset-top));z-index:4;pointer-events:none;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;gap:12px;height:44px;display:flex;position:absolute;left:12px;right:12px}.utility-tools,.context-tools,#menu-dock{align-items:center;gap:8px;display:flex}.context-tools{min-width:0}#menu-dock{gap:4px}.screen-button{background:var(--key);width:44px;height:44px;color:var(--ink);pointer-events:auto;touch-action:manipulation;border:1px solid #79beef44;border-radius:12px;flex-shrink:0;place-items:center;padding:0;transition:transform .12s cubic-bezier(.23,1,.32,1);display:grid;box-shadow:inset 0 1px #a4ddff40,inset 0 -2px #031324b3,0 3px 8px #0004}.screen-button svg{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;pointer-events:none;width:21px;height:21px}#menu-settings{color:#b4e5ff;background:linear-gradient(145deg,#215c86,#164263);border-color:#56baff66}.screen-button:active{transition:none;transform:translateY(1px)scale(.96);box-shadow:inset 0 2px 4px #0006}.screen-button:focus-visible{outline-offset:4px;transition:none}.screen-button.text-key{letter-spacing:1px;width:auto;min-width:52px;padding:0 13px;font:600 11px ui-monospace,monospace}#menu-select{min-width:44px;padding:0 8px}.app[data-screen=boot] .screen-tools,.app:not([data-screen=boot]) #boot-status,.app:not([data-screen=menu]) #menu-dock{display:none}.app[data-screen=paused] .screen-tools{visibility:hidden}@media (hover:hover) and (pointer:fine){.screen-button:hover{color:#f5fbff;background:var(--key-hover);border-color:#92d5ff88}#menu-settings:hover{background:linear-gradient(145deg,#2b709e,#20577f);border-color:#82d1ff99}}.touch-controls{pointer-events:none;z-index:3;-webkit-user-select:none;user-select:none;position:absolute;inset:0}.direction-controls,.action-controls{pointer-events:none;touch-action:none;width:144px;height:136px;position:absolute}.touch-controls button{pointer-events:auto;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;background:0 0;border:0;place-items:center;padding:5px;display:grid;position:absolute}.touch-controls button span{letter-spacing:1px;pointer-events:none;place-items:center;width:100%;height:100%;font:600 10px ui-monospace,monospace;transition:color 80ms,background 80ms,box-shadow 80ms;display:grid}.direction-controls:before{content:"";background:#183f5c;width:42px;height:35px;position:absolute;top:33px;left:51px;box-shadow:inset 0 1px #477b9e,inset 0 -3px #061827}.direction-controls:after{content:"";background:#0a263d;border-radius:1px;width:5px;height:5px;position:absolute;top:48px;left:69px;box-shadow:0 1px #3b729a}.direction-controls button{width:58px;height:64px;top:16px}.direction-controls [data-input=left]{left:0}.direction-controls [data-input=right]{right:0}.direction-controls button span{color:#d7efff;text-shadow:0 1px #000;background:linear-gradient(#285a7f,#19415f);border-radius:6px;font-size:17px;box-shadow:inset 0 1px #71afd9,inset 0 -4px #071e30,0 4px 7px #0006}.direction-controls [data-input=down]{height:56px;top:80px;left:43px}.direction-controls [data-input=down] span{color:#7495ad;background:linear-gradient(#163a55,#112e46);font-size:13px;box-shadow:inset 0 1px #356484,inset 0 -3px #071b2b,0 3px 6px #0004}.touch-controls[data-return=true] [data-input=down] span{color:#e9f7ff;background:linear-gradient(#2777ab,#165684);box-shadow:inset 0 1px #8bd5ff,inset 0 -3px #082d4b,0 0 0 1px #59bfff80}.action-controls button{width:64px;height:64px;top:59px;left:0}.action-controls [data-input=jump]{width:78px;height:78px;top:5px;left:66px}.action-controls button span{background:linear-gradient(145deg,#65c6ff,var(--alberto));color:#052b49;text-shadow:0 1px #a8dfff80;border-radius:50%;box-shadow:inset 0 2px 1px #b5e8ff,inset 0 -5px 1px #0962a6,0 5px #051422,0 7px 12px #0006}.action-controls [data-input=jump] span{color:#113955;text-shadow:0 1px #f0fbff;background:linear-gradient(145deg,#e0f5ff,#a6d9f5);box-shadow:inset 0 2px 1px #f5fcff,inset 0 -5px 1px #528eb5,0 5px #051422,0 7px 12px #0006}.touch-controls button.held span{filter:brightness(.96);transition:none;transform:translateY(3px);box-shadow:inset 0 2px 4px #0008,0 1px #040f1b}.touch-controls button:focus-visible{outline-offset:-2px;border-radius:7px}.app[data-screen=paused] .touch-controls{visibility:hidden}.app:not([data-screen=menu]) #menu-settings,.app:not([data-screen=menu]) #continue-save,.app:not([data-menu-screen=menu]) #continue-save{display:none}.primary,.secondary{border:1px solid #78b8e355;border-radius:10px;justify-content:center;align-items:center;gap:12px;width:100%;min-height:48px;padding:12px 16px;font-size:15px;font-weight:600;transition:transform .12s cubic-bezier(.23,1,.32,1);display:flex}.primary{background:var(--primary);color:#052b49;border-color:#b5e8ff80;box-shadow:inset 0 1px #d1f0ffb3,inset 0 -3px #0962a6,0 3px #051422,0 5px 8px #0003}.secondary{background:var(--key);color:var(--ink);box-shadow:inset 0 1px #98d4ff44,inset 0 -2px #071e30,0 2px 4px #0003}.primary:active,.secondary:active{transition:none;transform:translateY(2px);box-shadow:inset 0 2px 4px #0004}.menu-action,.text-button{color:#bdd9ed;text-align:center;background:0 0;border:0;border-radius:8px;width:100%;min-height:44px;padding:12px;font-size:14px;display:block}.menu-action:active,.text-button:active{background:#04182b80}.screen-overlay{z-index:6;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#020c18b8;place-items:center;padding:16px;display:grid;position:absolute;inset:0;overflow:auto}.pause-panel,dialog{background:var(--panel);color:var(--ink);border:1px solid #71baff66;border-radius:18px;box-shadow:inset 0 1px #a5dcff4d,inset 0 -2px #071b2c,0 0 0 3px #04111ee6,0 20px 64px #0009}.pause-panel{flex-direction:column;gap:4px;width:min(100%,304px);padding:24px;display:flex}.pause-heading{justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:22px;display:flex}.pause-panel h1,dialog h2{letter-spacing:-.4px;margin:0;font-size:21px;font-weight:600;line-height:1.3}.pause-heading span{color:var(--muted);white-space:nowrap;font-size:12px}.pause-panel .primary{margin-bottom:8px}.muted{color:var(--muted);line-height:1.6}.small{font-size:12px}.eyebrow{color:var(--muted);letter-spacing:1px;font-size:10px}.save-status{left:50%;top:max(16px,env(safe-area-inset-top));z-index:9;border:1px solid var(--line);text-align:center;pointer-events:none;opacity:0;background:#123451f2;border-radius:8px;max-width:min(480px,100% - 144px);margin:0;padding:10px 14px;font-size:12px;line-height:1.5;transition:opacity .15s;position:absolute;transform:translate(-50%);box-shadow:0 8px 24px #0006}.save-status[data-visible=true]{opacity:1}.save-status:empty{display:none}.save-status[data-error=true]{pointer-events:auto;border-color:#ffad92}.loading-error{z-index:7;background:var(--shell);color:#fff;text-align:center;place-items:center;padding:24px;font-size:14px;display:grid;position:absolute;inset:0}dialog{--panel-width:340px;inset:env(safe-area-inset-top,0px) env(safe-area-inset-right,0px) env(safe-area-inset-bottom,0px) env(safe-area-inset-left,0px);height:fit-content;width:min(var(--panel-width),calc(100% - 32px));max-height:calc(100dvh - max(16px,env(safe-area-inset-top)) - max(16px,env(safe-area-inset-bottom)));overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#477b9e #102b44;margin:auto;padding:24px;position:fixed}dialog::backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#020c18b8}body:has(dialog[open]) .screen-overlay{visibility:hidden}dialog h2{margin:2px 40px 22px 0}dialog p{font-size:13px;line-height:1.6}dialog .primary{margin-top:18px}.close-dialog{color:#9fc6e1;background:0 0;border:0;border-radius:10px;place-items:center;width:44px;height:44px;font:24px/1 -apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;display:grid;position:absolute;top:14px;right:14px}.close-dialog:active{background:#04182b80}.settings-rows{flex-direction:column;display:flex}.setting-row{border:0;border-bottom:1px solid var(--line);width:100%;min-height:54px;color:var(--ink);text-align:left;background:0 0;border-radius:0;justify-content:space-between;align-items:center;gap:12px;padding:0;font-size:14px;display:flex}.setting-row:last-child{border-bottom:0}.setting-value{color:#aacce4;align-items:center;gap:10px;font-size:13px;display:flex}.key-light{background:#7bceff;border-radius:50%;width:6px;height:6px;box-shadow:0 0 5px #19f6}.setting-row[aria-pressed=false] .key-light{background:#071c2d;box-shadow:inset 0 1px 2px #0008}#edit-player-name{white-space:nowrap;text-overflow:ellipsis;letter-spacing:.5px;max-width:100px;font:12px ui-monospace,monospace;overflow:hidden}.setting-row select{width:auto;min-width:70px;max-width:50%;min-height:44px;box-shadow:none;color:#aacce4;text-align:right;cursor:pointer;background:0 0;border:0;padding:8px 4px;font-size:13px}.setting-row select option{background:var(--surface);color:var(--ink)}#settings-status{color:#ffc3a6;margin:12px 0 0}#settings-status:empty{display:none}input,select{color:var(--ink);background:#0a2238;border:1px solid #629fca66;border-radius:8px;max-width:100%;padding:12px;font-size:14px;line-height:1.5;box-shadow:inset 0 2px 5px #020d19a6}input::placeholder{color:#80a8c7}label{font-size:13px}#player-nickname{letter-spacing:8px;text-transform:uppercase;color:#a9e1ff;width:100%;padding:14px 16px;font:600 24px ui-monospace,monospace;display:block}#nickname-help{margin:10px 0 0}#nickname-skip{margin-top:8px}.form-error{color:#ffc3a6;margin:12px 0 0;font-size:12px}.form-error:empty{display:none}#developer-dialog,#saves-dialog,#help-dialog,#credits-dialog{--panel-width:500px}.demo-grid{grid-template-columns:repeat(2,1fr);gap:10px;margin:18px 0;display:grid}.demo-grid button{min-height:44px;font-size:13px}#saves-dialog label{color:#b7d5ec;margin:20px 0 8px;display:block}#saves-dialog input,#saves-dialog select{width:100%}#saves-dialog select[size]{min-height:120px}.save-row{align-items:center;gap:10px;margin-top:12px;display:flex}.save-row>*{flex:1;min-width:0}#saves-dialog button:not(.close-dialog){font-size:13px}#use-player-save{margin-top:12px}#saves-dialog input[type=file]{margin-top:8px}#developer-status{overflow-wrap:anywhere;background:#0a2238;border:1px solid #629fca66;border-radius:8px;padding:12px;font-size:12px}#developer-status:empty{display:none}dialog dl{grid-template-columns:60px 1fr;gap:0 14px;margin:20px 0;font-size:13px;line-height:1.6;display:grid}dialog dt,dialog dd{border-bottom:1px solid var(--line);padding:12px 0}dialog dt{color:#8ed5ff;font-weight:600}dialog dd{color:#b7d5ec;margin:0}.help-notes summary{cursor:pointer;min-height:44px;padding:12px 0;font-size:13px}@media (hover:hover) and (pointer:fine){.primary:hover{background:var(--primary-hover)}.secondary:hover{background:var(--key-hover)}.menu-action:hover,.text-button:hover,.close-dialog:hover{color:#f0f9ff;background:#6bbfff14}button.setting-row:hover{color:#f5fbff}button.setting-row:hover .setting-value{color:#d6efff}}@media (max-width:600px){.save-status{top:auto;bottom:max(14px,env(safe-area-inset-bottom));width:max-content;max-width:calc(100% - 40px)}.save-row{flex-wrap:wrap}}@media (max-width:350px){dialog{padding:20px}.setting-row{font-size:13px}.setting-value,.setting-row select{font-size:12px}}@media (max-height:400px){dialog{padding:20px 24px}dialog h2{margin-bottom:14px}.setting-row{min-height:48px}.pause-panel{padding:20px 24px}.pause-heading{margin-bottom:16px}.screen-overlay{padding:12px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}@media (prefers-contrast:more){.touch-controls button span{outline:2px solid #b9e4ff}.direction-controls button span{color:#fff}.action-controls button span{color:#031b2d;text-shadow:none}.screen-button,.primary,.secondary,input,select{border-color:#b9e4ff}.muted,.setting-value,dialog dd{color:#d8eeff}}@media (prefers-reduced-transparency:reduce){.screen-overlay,dialog::backdrop{background:var(--shell)}}

