:root{--ink:#131b22;--yellow:#ffcf40;--cream:#f6f1df;--muted:#a7b7bc;--cond:'Barlow Condensed',Impact,sans-serif;--sans:Barlow,Arial,sans-serif;color-scheme:dark}*{box-sizing:border-box}body{margin:0;background:var(--ink);color:var(--cream);font-family:var(--sans);overscroll-behavior:none}button,input{font:inherit}button{cursor:pointer;border:0;color:inherit;touch-action:manipulation}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid white;outline-offset:4px}button:disabled{cursor:wait;opacity:.6}[hidden]{display:none!important}a{color:inherit;text-decoration:none}.masthead{height:66px;max-width:1600px;padding:0 40px;margin:auto;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #ffffff16;gap:12px}.brand{font-family:var(--cond);font-size:23px;font-weight:800;letter-spacing:.04em;white-space:nowrap}.brand span{color:var(--yellow);margin-left:4px}.brand i{font-size:15px;font-weight:500;color:var(--muted);font-style:normal}.edition{font-size:10px;letter-spacing:.17em;color:var(--muted)}.small-button{background:none;font-size:10px;letter-spacing:.08em;padding:10px 0}.small-button span{margin-left:7px;color:var(--yellow);font-weight:700}.layout{display:grid;grid-template-columns:minmax(180px,1fr) min(460px,calc((100svh - 108px)*.565)) minmax(180px,1fr);gap:clamp(30px,5vw,100px);max-width:1400px;margin:18px auto 0;padding:0 40px;align-items:center}.game{position:relative;aspect-ratio:420/744;width:100%;background:#71bdce;isolation:isolate;overflow:hidden;box-shadow:0 24px 80px #0006;container-type:inline-size;border-radius:5px}canvas{width:100%;height:100%;display:block;touch-action:none}.editorial h2{font:800 clamp(40px,5vw,76px)/.91 var(--cond);letter-spacing:-.015em;margin:34px 0 25px}.editorial h2 em{color:var(--yellow);font-style:normal}.eyebrow{font-size:10px;letter-spacing:.17em;font-weight:700;display:block}.editorial>.eyebrow{color:var(--muted)}.editorial p{font-size:15px;line-height:1.6;color:var(--muted)}.numberline{margin-top:40px;display:flex;align-items:center;gap:15px;border-top:1px solid #ffffff22;padding-top:16px}.numberline b{font:700 56px var(--cond);color:var(--yellow)}.numberline span{font-size:10px;letter-spacing:.12em;line-height:1.5}.editorial .keyboard-note{font-size:12px;line-height:2;margin-top:30px}kbd{font:11px var(--sans);border:1px solid #ffffff30;border-radius:3px;padding:2px 5px;color:var(--cream)}.flight-notes{height:90%;display:flex;flex-direction:column;align-items:flex-start}.serial{font:600 20px var(--cond)}.serial span{font:9px var(--sans);letter-spacing:.12em;color:var(--muted)}.vertical{writing-mode:vertical-rl;font:700 16px var(--cond);letter-spacing:.18em;margin:30px 0 auto 0;color:var(--yellow)}.notes-bottom p{font-size:16px;line-height:1.5;color:var(--muted)}.notes-bottom strong{color:var(--cream);font-weight:500}.tiny{font-size:9px;color:#7b919a;line-height:1.6;letter-spacing:.06em}footer{text-align:center;font-size:9px;letter-spacing:.15em;color:#94a6ad;padding:11px 0}footer span{color:var(--yellow);margin:0 9px}
.screen{position:absolute;inset:0;padding:7%;z-index:5;display:flex;flex-direction:column;overflow-y:auto;scrollbar-width:thin}.title-screen{color:var(--ink);background:linear-gradient(180deg,#e4e6c488,transparent 54%,#f4eaca 83%)}.title-top{display:flex;justify-content:space-between;align-items:center;height:10%;flex-shrink:0}.title-top img{width:19%;height:auto;border-radius:50%;border:2px solid #131b22;transform:rotate(9deg);box-shadow:0 4px 0 #131b2222}.title-top .eyebrow{font-size:2.4cqw}.title-screen h1{font:900 22cqw/.82 var(--cond);letter-spacing:-.035em;margin:2% 0 0;z-index:1}.title-screen h1>span:first-child{display:block;font:700 7.5cqw/1.5 var(--cond);letter-spacing:.035em}.title-pl{display:block;font:600 3.3cqw/2.4 var(--cond);letter-spacing:.17em}.hero-caption{position:absolute;top:40%;left:7%;transform:rotate(-7deg);pointer-events:none}.hero-caption>span{font:600 3cqw var(--cond);letter-spacing:.1em}.hero-caption b{display:block;font:800 6cqw/.95 var(--cond);margin-top:5px}.hero-caption svg{width:60px;height:40px;fill:none;stroke:var(--ink);stroke-width:2;margin-left:20px}.title-bottom{margin-top:auto;z-index:2;padding-top:12px}.title-bottom p{font-size:3.5cqw;line-height:1.4;margin:0 0 4%;max-width:85%}.title-bottom p b{font-weight:600}.primary{display:flex;justify-content:space-between;align-items:center;min-height:54px;padding:13px 20px;background:var(--yellow);color:var(--ink);font:800 24px var(--cond);letter-spacing:.035em;border:1.5px solid var(--ink);box-shadow:0 4px 0 var(--ink);width:100%;flex-shrink:0}.primary span{font:30px var(--sans);line-height:1}.primary:hover{background:#ffdd74}.primary:active{transform:translateY(2px);box-shadow:0 2px 0 var(--ink)}.title-bottom .primary{background:var(--ink);color:var(--yellow);border-color:var(--ink);box-shadow:none;font-size:7cqw;min-height:13cqw}.title-actions{display:flex;justify-content:space-between;margin:13px 0 4px}.title-actions button{background:none;font-size:2.7cqw;font-weight:700;padding:8px 0;letter-spacing:.07em}.tilt-button{width:100%;padding:9px 0;background:none;border-top:1px solid #131b2230;font-size:2.6cqw;font-weight:600;letter-spacing:.02em}.title-foot{display:block;text-align:center;font-size:2cqw;letter-spacing:.12em;margin-top:6px;opacity:.65}.panel{background:#131b22f7}.panel h2,.result-screen h2{font:800 16cqw/.89 var(--cond);letter-spacing:-.015em;margin:4% 0}.panel>.eyebrow{color:var(--yellow)}.panel>p{font-size:15px;line-height:1.4;margin:10px 0}.brief-graphic{border-block:1px solid #ffffff24;margin:12px 0 0;padding:8px 0;display:flex;align-items:center;justify-content:space-between;font-size:44px;color:var(--yellow)}.brief-graphic span{font:700 30px var(--cond)}.rules{counter-reset:rules;list-style:none;padding:0;margin:12px 0 20px}.rules li{counter-increment:rules;position:relative;padding:10px 0 10px 29px;border-bottom:1px solid #ffffff15}.rules li:before{content:'0' counter(rules);position:absolute;left:0;top:12px;color:var(--yellow);font:600 14px var(--cond)}.rules b{display:block;font-size:16px;font-weight:600}.rules span{display:block;font-size:13px;line-height:1.4;color:#b5c6cc;margin-top:3px}.panel>.primary{margin-top:auto}.panel>small{display:block;margin:15px 0 0;text-align:center;font-size:11px;color:var(--muted)}.panel .fine{font-size:12px;color:var(--muted);line-height:1.4;margin-top:0}.centered{justify-content:center}.centered>.primary{margin-top:25px}.secondary{padding:16px 0;background:none;border:1px solid #a8b8be55;font-size:12px;font-weight:600;letter-spacing:.03em;margin-top:15px;width:100%;flex-shrink:0}.text-button{background:none;font-size:11px;padding:12px;width:100%;letter-spacing:.05em}
.hud{position:absolute;inset:0;pointer-events:none;padding:5%;color:var(--ink);z-index:2}.hud-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.hud-top span{display:block;font:600 11px var(--cond);letter-spacing:.15em}.hud-top b{display:block;font:800 24px var(--cond);letter-spacing:.03em;line-height:1.1}.icon-button{pointer-events:auto;border:1px solid #131b2240;border-radius:50%;background:#f8efd2c9;width:38px;height:38px;font-size:20px}.hud-data{display:flex;justify-content:space-between;margin-top:16px}.hud-data>div>span{font-size:9px;letter-spacing:.12em;font-weight:600;display:block}.hud-data strong{font:700 34px/1.15 var(--cond);display:block;font-variant-numeric:tabular-nums}.hud-data strong small{font-size:18px}.hud-score{text-align:right}.hud-score>small{font-size:9px;font-weight:700;letter-spacing:.1em}.altimeter{position:absolute;top:28%;left:5%;height:35%;width:5px;background:#131b2230;border-radius:9px}.altimeter i{position:absolute;bottom:10.4%;height:16.7%;background:var(--yellow);width:9px;left:-2px}.altimeter b{position:absolute;left:-3px;width:11px;height:3px;background:var(--ink);bottom:100%}.flight-message{position:absolute;top:18%;left:12%;right:12%;text-align:center;font:700 21px var(--cond);letter-spacing:.02em;color:var(--ink);text-shadow:0 1px 8px #fff8}.target-guide{position:absolute;bottom:21%;background:#131b22df;color:var(--yellow);font:600 11px var(--cond);letter-spacing:.08em;padding:5px 8px;transform:translateX(-50%);white-space:nowrap;transition:opacity .2s}.controls{position:absolute;bottom:max(4%,env(safe-area-inset-bottom));left:5%;right:5%;display:flex;gap:9px;z-index:4;align-items:stretch;touch-action:none}.controls button{touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;min-height:64px;border:1.5px solid var(--ink);box-shadow:0 4px 0 var(--ink)}.direction{background:#f8f0d8e8;color:var(--ink);width:22%;font:30px var(--sans);border-radius:8px}.direction.pressed{background:var(--yellow);transform:translateY(2px);box-shadow:0 2px 0 var(--ink)}.pull{flex:1;display:flex;gap:6px;align-items:center;justify-content:center;background:#172d39e8;color:#c4d4d7;border-radius:8px;padding:8px}.pull svg{width:25px;fill:none;stroke:currentColor;stroke-width:1.8}.pull span{font:700 17px/.95 var(--cond)}.pull small{display:block;font:500 10px var(--sans);margin-top:6px}.pull.ready{background:var(--yellow);color:var(--ink)}.pull.last{background:#fc764a;color:var(--ink);animation:callout .5s ease infinite alternate}.pull.opened{background:#eff4cf;color:var(--ink)}@keyframes callout{to{box-shadow:0 4px 0 var(--ink),0 0 0 4px #ffcf4066}}.toast{position:absolute;left:8%;right:8%;bottom:21%;text-align:center;z-index:10;pointer-events:none;font-size:13px;font-weight:600;background:#131b22ed;color:var(--cream);padding:10px 12px;transform:translateY(10px);opacity:0;transition:opacity .2s,transform .2s;border-radius:5px}.toast.visible{opacity:1;transform:translateY(0)}
.result-screen{background:linear-gradient(180deg,#f2eed38c,transparent 45%,#f5ecd9 68%);color:var(--ink)}.result-screen h2{font-size:18cqw}.result-screen>.eyebrow{font-size:2.5cqw}.result-spacer{flex:1;min-height:100px}.result-bottom>p{font-size:14px;line-height:1.35;margin:5px 0 13px}.result-stats{display:flex;justify-content:space-between;border-block:1px solid #131b2233;padding:10px 0}.result-stats span{display:block;font-size:9px;letter-spacing:.1em;font-weight:600}.result-stats b{font:700 38px/1.1 var(--cond);font-variant-numeric:tabular-nums}.result-stats b small{font-size:19px}.result-stats>div:last-child{text-align:right}.result-bottom .result-details{font-size:11px;margin:9px 0 15px}.result-bottom .secondary{border-color:#131b2240}.ranking{list-style:none;padding:0;margin:15px 0;overflow-y:auto;flex:1;counter-reset:rank}.ranking li{display:flex;align-items:center;gap:13px;border-bottom:1px solid #ffffff20;padding:12px 0;counter-increment:rank}.ranking li:before{content:counter(rank,decimal-leading-zero);font:700 25px var(--cond);color:var(--muted);width:28px}.ranking li:first-child:before{color:var(--yellow)}.ranking li>span{flex:1;min-width:0;overflow-wrap:anywhere;font-size:15px}.ranking li small{display:block;font-size:10px;color:var(--muted);margin-top:3px}.ranking li b{font:700 25px var(--cond);color:var(--yellow)}.ranking .empty:before{content:'✦'}.ranking .empty{color:var(--muted);font-size:14px;line-height:1.5}#rankSource{font-size:13px;color:var(--muted)}#scoreForm label{font-size:10px;letter-spacing:.1em;display:block;margin:8px 0}.form-row{display:flex;gap:8px}.form-row input{min-width:0;width:100%;border:1px solid #ffffff40;background:#ffffff09;padding:12px;color:var(--cream);font-size:16px;border-radius:0}.form-row .primary{width:56px;justify-content:center;padding:8px;min-height:49px}#saveStatus{margin-top:10px;min-height:32px}
@media(max-width:900px){.editorial,.flight-notes,.edition{display:none}.masthead{height:45px;padding:0 17px;max-width:500px}.brand{font-size:19px}.brand i{font-size:12px}.layout{display:block;padding:0;margin:0 auto;width:min(100%,calc((100svh - 69px)*.565));max-width:500px}.game{border-radius:0;box-shadow:none}footer{padding:7px 0;font-size:8px}.small-button{font-size:9px}.panel .rules b{font-size:3.8cqw}.panel .rules span{font-size:3.1cqw}.panel .rules li{padding-top:8px;padding-bottom:8px}.panel h2{font-size:15cqw}.primary{font-size:6cqw;min-height:12cqw}.brief-graphic{padding:3px 0;font-size:36px}.panel>p{font-size:3.6cqw}.result-bottom>p{font-size:3.5cqw}.result-stats b{font-size:9cqw}.result-spacer{min-height:70px}}
@media(max-width:600px) and (min-aspect-ratio:10/17){.layout{width:100%;max-width:440px}.game{aspect-ratio:420/690}.title-screen h1{font-size:20cqw}.hero-caption{top:39%}.title-bottom p{font-size:3.2cqw}.title-foot{display:none}.screen{padding:6%}.title-actions{margin-top:6px}.controls button{min-height:57px}.rules{margin-bottom:12px}.rules li{padding-block:7px}.panel .fine{font-size:11px}.result-spacer{min-height:65px}}
@media(orientation:landscape) and (max-height:600px){.masthead{height:36px;max-width:none}.layout{width:calc((100svh - 36px)*.565)}footer{display:none}.game{aspect-ratio:420/744}.screen{padding:5%}.title-actions{margin:3px 0}.title-foot{display:none}.title-bottom p{font-size:3cqw}.primary{min-height:10cqw}.title-bottom .primary{min-height:11cqw}.tilt-button{padding:5px 0}.rules li{padding:5px 0 5px 20px}.rules b{font-size:3cqw!important}.rules span{font-size:2.8cqw!important}.rules li:before{font-size:10px;top:5px}.brief-graphic{display:none}.panel>small{font-size:8px;margin-top:8px}.secondary,.text-button{padding:8px 0}.controls button{min-height:40px}.pull svg{display:none}.pull span{font-size:12px}.pull small{font-size:8px}.hud-top b{font-size:17px}.hud-data{margin-top:7px}.hud-data strong{font-size:23px}.hud-data>div>span{font-size:7px}.hud-score>small{font-size:7px}.icon-button{width:28px;height:28px}.result-spacer{min-height:20px}.result-bottom .result-details{margin:5px 0}.result-bottom>p{font-size:3cqw}.result-stats{padding:5px 0}.result-stats span{font-size:7px}.result-stats b{font-size:7cqw}.result-screen h2{font-size:16cqw}}
.dive{position:absolute;bottom:16%;left:50%;transform:translateX(-50%);z-index:4;background:#131b22e8;color:var(--yellow);border:1px solid #ffcf4077;border-radius:7px;padding:9px 20px;font:700 17px var(--cond);touch-action:none;user-select:none;white-space:nowrap}.dive small{font:9px var(--sans);display:block;margin-top:2px;color:#f4eacc}.dive.pressed{background:var(--yellow);color:var(--ink)}.dive.pressed small{color:var(--ink)}.speed-readout{position:absolute;left:5%;bottom:19%;font:700 17px var(--cond);color:var(--ink);z-index:2;text-shadow:0 1px 3px #fff6}.target-guide{bottom:24%}.toast{bottom:29%}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
