:root{color-scheme:dark;font-family:monospace;background:#070c13;color:#f3dcb3}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}.cabinet{position:fixed;inset:0;background:#070c13}.screen{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;overflow:hidden}canvas{display:block;image-rendering:pixelated;image-rendering:crisp-edges;outline:0;max-width:100%;max-height:100%}.toolbar{position:absolute;bottom:15px;right:18px;display:flex;align-items:center;gap:6px;padding:7px 10px;border:1px solid #9c835346;background:#08131edc;opacity:0;transition:opacity .2s;z-index:3}.toolbar:focus-within,.cabinet.menu-visible .toolbar{opacity:1}.brand{font:bold 17px Georgia,serif;color:#efc17a;margin-right:8px}.brand small{font:bold 8px monospace;letter-spacing:1px}#controller{font-size:8px;color:#92aeb8;margin-right:12px}button{font:10px monospace;letter-spacing:1px;color:#dfc796;background:#172632;border:1px solid #8b754953;padding:8px 10px;cursor:pointer}button:hover,button:focus-visible{background:#344350;color:#ffdd9a;outline:1px solid #f6c77a}#loading{position:absolute;inset:0;display:grid;place-items:center;background:#09121a;font:18px Georgia,serif;letter-spacing:2px;z-index:5}#loading[hidden]{display:none}.control-hint{position:absolute;bottom:15px;left:20px;margin:0;font:9px monospace;letter-spacing:1px;color:#cbb88b;opacity:0;pointer-events:none;background:#08131edc;padding:10px}.cabinet.menu-visible .control-hint{opacity:1}:fullscreen{background:#070c13}@media(max-width:850px){.control-hint,#controller,.brand{display:none}.toolbar{bottom:8px;right:8px;padding:5px;gap:3px}button{font-size:8px;padding:7px 6px}}
html,body,.cabinet{touch-action:none;overscroll-behavior:none}#arcade-ui{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(640px,92vw);max-height:90vh;overflow:auto;z-index:4;padding:24px 36px;text-align:center;background:linear-gradient(#071624ed,#11273bf2);border:2px solid #b49964;box-shadow:0 12px 45px #0008;animation:menu-in .18s ease-out}#arcade-ui[hidden],#attract-label[hidden]{display:none}#arcade-ui h1{margin:0 0 12px;font:bold clamp(20px,3vw,35px) monospace;letter-spacing:3px;color:#ffe2a4;text-shadow:3px 3px #593526}#arcade-ui .logo-year{font:bold 28px monospace;margin:0;color:#daaa61;letter-spacing:12px}#arcade-ui .kicker{letter-spacing:3px;color:#a7bbc3;font-size:11px}#arcade-ui button{display:block;width:100%;font-size:13px;margin:6px 0;padding:10px}#arcade-ui p{line-height:1.55;font-size:12px}#arcade-ui label{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:20px 0;text-align:left;font-size:12px}#arcade-ui input[type=range]{width:45%;accent-color:#edc784}#arcade-ui input[type=checkbox]{width:20px;height:20px;accent-color:#edc784}#arcade-ui table{width:100%;font-size:11px;border-collapse:collapse}#arcade-ui td,#arcade-ui th{padding:7px 3px;border-bottom:1px solid #57717c}#initials{font:bold 28px monospace;text-align:center;width:150px;letter-spacing:8px;background:#09202e;color:#ffe0a1;border:1px solid #c5a468;padding:8px}#arcade-ui canvas{width:min(520px,100%);height:auto;margin:auto}.press-start{animation:prompt 1.5s steps(2,end) infinite;color:#edc78a}#attract-label{position:absolute;top:14%;left:50%;transform:translateX(-50%);z-index:4;font:bold 16px monospace;background:#071523df;padding:15px;border:1px solid #c6a06a;white-space:nowrap;animation:prompt 1.5s steps(2,end) infinite}#touch-controls{display:none;position:absolute;bottom:max(5px,env(safe-area-inset-bottom));left:10px;right:10px;z-index:3;justify-content:space-between;align-items:end;pointer-events:none}#touch-controls button{pointer-events:auto;min-width:56px;min-height:50px;font-size:17px;opacity:.85;touch-action:none;user-select:none;-webkit-user-select:none}#touch-controls div{display:flex;gap:8px}#touch-controls button[data-touch=jump]{min-width:84px;min-height:62px;border-color:#e1b77a} .force-touch #touch-controls{display:flex}@media(pointer:coarse){#touch-controls{display:flex}.toolbar{top:5px;bottom:auto}.control-hint{display:none}}@media(max-height:500px){#arcade-ui{padding:12px 24px;width:min(640px,85vw)}#arcade-ui.title-menu{display:grid;grid-template-columns:1fr 1fr;gap:3px 12px}#arcade-ui.title-menu h1,#arcade-ui.title-menu canvas,#arcade-ui.title-menu p{grid-column:1/-1}#arcade-ui .logo-year{font-size:18px;line-height:1;margin:0}#arcade-ui.title-menu canvas{max-height:60px;object-fit:contain}#arcade-ui button{font-size:11px;margin:2px 0;padding:7px}#arcade-ui p{margin:5px 0;font-size:10px}}@media(prefers-reduced-motion:reduce){#arcade-ui,.press-start,#attract-label{animation:none}}@keyframes menu-in{from{opacity:0;transform:translate(-50%,-48%)}to{opacity:1;transform:translate(-50%,-50%)}}@keyframes prompt{50%{opacity:.45}}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0,0,0,0);white-space:nowrap}.cabinet:has(#arcade-ui:not([hidden])) #touch-controls{display:none}.cabinet:has(#arcade-ui:not([hidden])) .toolbar{opacity:1}
.reduced-effects #arcade-ui,.reduced-effects .press-start,.reduced-effects #attract-label{animation:none}
#arcade-ui[hidden]{display:none!important}.force-touch .toolbar{top:5px;bottom:auto}
#arcade-ui{touch-action:pan-y;overscroll-behavior:contain}#arcade-ui select{font:12px monospace;background:#12283a;color:#edce97;border:1px solid #997f54;padding:6px}

/* Portrait phones have a close view, a route overview and a separate control deck. */
#portrait-hud,#route-overview,.touch-caption,.jump-arrow,.portrait-threat,#portrait-message{display:none}
#touch-controls .touch-move,#touch-controls .touch-action{display:flex;flex-direction:column;align-items:center;gap:8px}
.portrait-layout{height:var(--app-height,100dvh);display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);background:#09151f}
.portrait-layout #portrait-hud{display:block;padding:14px 16px 12px;background:linear-gradient(120deg,#172c36,#0b1824);border-bottom:1px solid #b99b6145;z-index:2}
.mobile-wordmark{min-height:42px;font:bold 19px Georgia,serif;letter-spacing:1px;color:#f3d69b}
.mobile-wordmark>span{font:10px monospace;color:#caa86c;letter-spacing:2px}
.mobile-wordmark>small{display:block;margin-top:4px;font:8px monospace;letter-spacing:2px;color:#93a9af}
.mobile-stats{display:grid;grid-template-columns:1fr .8fr 1fr;gap:12px;margin-top:7px}
.mobile-stats>div{display:flex;flex-direction:column;gap:4px}
.mobile-stats>div:last-child{text-align:right}.mobile-stats>div:nth-child(2){text-align:center}
.mobile-stats span{font:9px monospace;letter-spacing:1.7px;color:#9cafb6}
.mobile-stats strong{font:bold 19px monospace;letter-spacing:.8px;font-variant-numeric:tabular-nums;color:#f4dca5}
#mobile-lives{color:#efa887}
.portrait-layout .screen{position:relative;inset:auto;min-height:0;display:block;background:#152b38;isolation:isolate}
.portrait-layout #game{position:absolute;left:0;top:0;max-width:none;max-height:none;will-change:transform}
.portrait-layout .toolbar,.portrait-layout.force-touch .toolbar{top:calc(env(safe-area-inset-top) + 12px);right:calc(env(safe-area-inset-right) + 12px);bottom:auto;border:0;background:none;gap:7px;padding:0;opacity:1}
.portrait-layout .toolbar #restart,.portrait-layout .toolbar #fullscreen,.portrait-layout .toolbar .brand,.portrait-layout .toolbar #controller,.portrait-layout .control-hint{display:none}
.portrait-layout .toolbar button{width:40px;height:40px;padding:0;font-size:0;border-radius:10px;background:#203540;border:1px solid #bca57350;box-shadow:0 2px 0 #040c12}
.portrait-layout #sound::before{content:'♪';font:24px Georgia,serif}
.portrait-layout #sound[aria-pressed=false]::before{content:'♫';opacity:.4;text-decoration:line-through}
.portrait-layout #pause::before{content:'Ⅱ';font:bold 19px monospace}
.portrait-layout #route-overview{display:block;padding:10px 14px 8px;background:#0c1d28;border-top:1px solid #bb9e6a50;border-bottom:1px solid #bb9e6a35}
.route-caption{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:7px;font:9px monospace;letter-spacing:.5px;color:#b4c0be}
#mobile-level{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#mobile-bonus{white-space:nowrap;color:#b99c6b;font-size:8px}
#route-map{display:block;width:100%;height:32px;image-rendering:auto;border-radius:3px}
.portrait-layout #touch-controls{position:relative;inset:auto;display:flex;justify-content:space-between;align-items:center;gap:14px;padding:18px 20px 14px;min-height:150px;background:radial-gradient(ellipse at top,#1e3540,#0b1924 70%)}
.portrait-layout #touch-controls .direction-buttons{gap:10px}
.portrait-layout #touch-controls button{opacity:1;-webkit-tap-highlight-color:transparent;transition:background .08s,transform .08s;border:1px solid #c3ad785c;box-shadow:0 5px 0 #040c13,inset 0 1px #e8cf9640}
.portrait-layout #touch-controls button:active{transform:translateY(3px);background:#49606a;box-shadow:0 2px 0 #040c13,inset 0 1px #e8cf9650}
.portrait-layout #touch-controls button[data-touch=left],.portrait-layout #touch-controls button[data-touch=right]{width:clamp(60px,19vw,82px);height:72px;border-radius:17px;background:linear-gradient(#304955,#203642);font:25px Georgia,serif;color:#f0d9ab}
.portrait-layout #touch-controls button[data-touch=jump]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;width:92px;height:92px;min-width:0;min-height:0;border-radius:50%;background:linear-gradient(#ddbd7a,#a77a43);color:#17252e;font:bold 13px monospace;border:1px solid #ffe8b4;box-shadow:0 5px 0 #674a2d,inset 0 2px #fff0c277}
.portrait-layout #touch-controls button[data-touch=jump]:active{background:#f1d59b;box-shadow:0 2px 0 #674a2d}
.portrait-layout #touch-controls button[data-touch=pause]{display:none}
.portrait-layout .touch-caption{display:block;font:8px monospace;letter-spacing:1.2px;color:#a5b4b5;white-space:nowrap}
.portrait-layout .jump-arrow{display:block;font:31px Georgia,serif;line-height:1}
.portrait-layout #portrait-message:not([hidden]){display:block;position:absolute;top:18%;left:12px;right:12px;text-align:center;padding:15px 8px;border:1px solid #d7ba7b;background:#0b2035eb;box-shadow:0 6px 30px #0006;color:#ffe2a4;font:bold 20px Georgia,serif;z-index:1;pointer-events:none}
.portrait-layout .portrait-threat:not([hidden]){display:block;position:absolute;top:10px;padding:6px 8px;font:bold 10px monospace;color:#ffe2a4;border:1px solid #c3905a;background:#351c17de;z-index:1;pointer-events:none}
#threat-left{left:8px}#threat-right{right:8px}
.portrait-layout:has(#arcade-ui:not([hidden])) .toolbar,.portrait-layout:has(#arcade-ui:not([hidden])) #portrait-hud,.portrait-layout:has(#arcade-ui:not([hidden])) #route-overview{visibility:hidden}
.portrait-layout:has(#arcade-ui:not([hidden])) #touch-controls{display:flex;visibility:hidden}
.portrait-layout #arcade-ui{width:calc(100% - 28px);max-width:500px;max-height:calc(var(--app-height,100dvh) - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 28px);padding:24px 20px;border:1px solid #c1a16a;border-radius:18px;background:linear-gradient(155deg,#173342f7,#091925fa 70%);box-shadow:0 20px 80px #000b,inset 0 1px #ecd3973d;scrollbar-width:thin}
.portrait-layout #arcade-ui h1{font-size:24px;letter-spacing:1px;margin-bottom:18px}
.portrait-layout #arcade-ui p{font-size:13px;line-height:1.65}
.portrait-layout #arcade-ui button{min-height:48px;margin:9px 0;border-radius:9px;font-size:12px;letter-spacing:1px;padding:13px 9px;background:#203b4b}
.portrait-layout #arcade-ui.title-menu{display:grid;grid-template-columns:1fr 1fr;gap:8px 10px;padding-top:28px}
.portrait-layout #arcade-ui.title-menu>canvas,.portrait-layout #arcade-ui.title-menu>p{grid-column:1/-1;margin:0}
.portrait-layout #arcade-ui.title-menu>canvas{width:100%;max-height:none;margin-bottom:2px}
.portrait-layout #arcade-ui.title-menu .logo-year{font-size:22px;letter-spacing:10px;line-height:1.3}
.portrait-layout #arcade-ui.title-menu .kicker{font-size:9px;letter-spacing:2px;margin:1px 0 14px}
.portrait-layout #arcade-ui.title-menu button{margin:0;min-height:50px}
.portrait-layout #arcade-ui.title-menu button:first-of-type{grid-column:1/-1;min-height:58px;background:linear-gradient(#e6c68c,#b58b54);color:#172731;border-color:#eed7a7;font-weight:bold;font-size:16px;box-shadow:0 4px #695034}
.portrait-layout #arcade-ui.title-menu button:nth-of-type(2){grid-column:1/-1;margin:5px 0 0}
.portrait-layout #arcade-ui.title-menu .press-start{font-size:9px;letter-spacing:1px;margin:12px 0 0;color:#acc0c7}
.portrait-layout #arcade-ui label{font-size:12px;gap:10px;margin:22px 0}
.portrait-layout #arcade-ui select{max-width:52%;min-height:42px;font-size:11px}
.portrait-layout #arcade-ui input[type=range]{min-height:38px}
.portrait-layout #arcade-ui table{font-size:10px}.portrait-layout #arcade-ui th,.portrait-layout #arcade-ui td{padding:9px 2px}
.portrait-layout #attract-label{top:12%;max-width:calc(100% - 24px);padding:10px;font-size:10px}
@media(orientation:portrait) and (max-height:680px){.portrait-layout #portrait-hud{padding:10px 12px}.mobile-wordmark{min-height:35px;font-size:17px}.mobile-stats{margin-top:4px}.mobile-stats strong{font-size:16px}.portrait-layout .toolbar,.portrait-layout.force-touch .toolbar{top:calc(env(safe-area-inset-top) + 8px)}.portrait-layout #touch-controls{padding:12px 15px 10px;min-height:126px}.portrait-layout #touch-controls button[data-touch=jump]{width:78px;height:78px}.portrait-layout #touch-controls button[data-touch=left],.portrait-layout #touch-controls button[data-touch=right]{height:62px}.portrait-layout #route-overview{padding:7px 12px 6px}.portrait-layout #arcade-ui{padding:16px}.portrait-layout #arcade-ui.title-menu{padding:20px 17px;gap:6px 8px}.portrait-layout #arcade-ui.title-menu button{min-height:45px}.portrait-layout #arcade-ui.title-menu .kicker{margin-bottom:8px}}

.rotation-tip{display:none}.portrait-layout #arcade-ui.title-menu .rotation-tip{display:block;font-size:11px;line-height:1.5;color:#b7c9cc;letter-spacing:0;margin:-3px 4px 9px}
