:root{color-scheme:dark;--bg:#080e14;--mint:#8bf4da;--amber:#ffc777;--ink:#dce9e9;--muted:#758e96;--line:#8bf4da22}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:Arial,Helvetica,sans-serif}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{font:11px Consolas,'Courier New',monospace;color:var(--muted);background:transparent;border:1px solid var(--line);cursor:pointer}button:hover{color:var(--mint);border-color:var(--mint)}button:disabled{opacity:.35;cursor:default}button:focus-visible,a:focus-visible,canvas:focus-visible{outline:2px solid var(--mint);outline-offset:4px}[hidden]{display:none!important}main{max-width:1600px;min-height:100svh;padding:0 4%;margin:auto;display:flex;flex-direction:column}header{height:83px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:12px}.brand{display:flex;align-items:center;gap:13px;font:700 12px Consolas,monospace;letter-spacing:2px}.brand svg{width:31px;height:26px;fill:none;stroke:var(--mint);stroke-width:1.5}.brand small{color:var(--muted);font-size:10px;letter-spacing:1px}.header-right{display:flex;align-items:center;gap:22px}.edition{font:9px Consolas,monospace;color:var(--muted);letter-spacing:2px}#sound{border:0;padding:10px 0;font-size:9px;letter-spacing:1px}#pause{width:32px;height:30px;color:var(--ink)}.game-shell{width:100%;max-width:1360px;margin:auto; padding:30px 0 22px}.game-heading{display:flex;align-items:center;gap:52px;margin-bottom:24px}.game-title{margin-right:auto}.game-title h1{font-size:24px;font-weight:500;letter-spacing:6px;margin:0 0 10px}.game-title>span,.stat>span,.fuel-stat>span{font:9px Consolas,monospace;letter-spacing:1.8px;color:var(--muted)}.stat>span,.fuel-stat>span{display:block;margin-bottom:9px}.stat strong{font:24px Consolas,monospace;letter-spacing:2px;font-weight:400}.fuel-stat{width:150px}.fuel-stat b{float:right;color:var(--mint);font-weight:400;letter-spacing:0}.fuel-track{height:4px;margin-top:18px;background:#8bf4da15}.fuel-track i{display:block;height:100%;background:var(--mint);transition:transform .15s linear;transform-origin:left;width:100%}.hull strong{color:var(--mint);font-size:23px;white-space:nowrap}.flight-frame{position:relative;border:1px solid #8bf4da30;background:#080e14;aspect-ratio:2/1;overflow:hidden}canvas{display:block;width:100%;height:100%;touch-action:none}.frame-caption{position:absolute;left:24px;right:24px;top:22px;display:flex;justify-content:space-between;font:9px Consolas,monospace;letter-spacing:2px;pointer-events:none;color:var(--muted)}#sector-label{color:var(--mint)}#flight-status{font-size:8px;letter-spacing:1.5px}.panel{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding:6% 7%;background:linear-gradient(90deg,#080e14f5 0%,#080e14eb 33%,#080e1400 75%)}.eyebrow{font:9px Consolas,monospace;color:var(--mint);letter-spacing:1.7px;line-height:1.7}.eyebrow i,.signal i{width:5px;height:5px;border-radius:50%;background:var(--mint);display:inline-block;margin-right:8px}h2{font-size:clamp(42px,5.4vw,78px);font-weight:400;letter-spacing:-3.5px;line-height:1.02;margin:22px 0 18px}h2 em{font-style:normal;color:var(--mint)}.panel p{font-size:14px;color:#dce9e9aa;line-height:1.8;margin:0}.primary{color:var(--bg);background:var(--mint);border:1px solid var(--mint);width:225px;display:flex;justify-content:space-between;align-items:center;padding:16px 18px;margin-top:26px;font-weight:bold;font-size:11px}.primary span{font-size:20px}.primary:hover{color:var(--bg);background:var(--ink)}.intro-note{font:8px Consolas,monospace;color:var(--muted);letter-spacing:1.3px;margin-top:18px}.crosshair{position:absolute;right:15px;bottom:9px;color:#8bf4da50;font:20px Consolas,monospace;pointer-events:none}.under-flight{display:flex;justify-content:space-between;gap:15px;padding:17px 0 23px;font:10px Consolas,monospace;color:var(--muted)}.signal{display:flex;align-items:center;gap:2px;line-height:1.5}.signal i{flex-shrink:0}.best-label{font-size:9px;letter-spacing:1px;white-space:nowrap}.best-label b{font-weight:400;color:var(--ink);margin-left:12px}.sectors{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}.sectors div{border-top:1px solid var(--line);padding:13px 0;color:#758e9688;font:9px Consolas,monospace;letter-spacing:.8px;white-space:nowrap}.sectors span{margin-right:10px;color:#758e9666}.sectors .active{border-color:var(--mint);color:var(--mint)}.sectors .active span{color:var(--mint)}.sectors .complete{color:var(--muted);border-color:#8bf4da60}.controls{display:flex;align-items:center;gap:24px;padding:16px 0 0;font:10px Consolas,monospace;color:var(--muted)}kbd{border:1px solid #dce9e92a;color:#dce9e9b3;font:9px Consolas,monospace;padding:4px 6px;display:inline-block;margin-right:4px}.controls-note{margin-left:auto;font-size:8px;letter-spacing:1px;white-space:nowrap}footer{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding:22px 0;font:8px Consolas,monospace;letter-spacing:1.3px;color:var(--muted)}footer a:hover{color:var(--mint)}.footer-divider{margin:0 14px;color:#758e9655}#touch{display:none;align-items:center;justify-content:space-between;padding-top:14px;gap:16px}#stick{position:relative;width:98px;height:98px;border-radius:50%;border:1px solid #8bf4da45;background:#8bf4da05;touch-action:none;user-select:none}#stick-knob{position:absolute;left:30px;top:30px;width:36px;height:36px;border:1px solid var(--mint);border-radius:50%;background:#8bf4da15;pointer-events:none}.stick-label{position:absolute;bottom:-14px;left:0;right:0;text-align:center;font:8px Consolas,monospace;letter-spacing:1px;color:var(--muted)}.touch-actions{display:flex;gap:12px}.touch-actions button{width:100px;height:65px;color:var(--mint);touch-action:none;user-select:none;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:8px}.touch-actions button:last-child{color:var(--amber);border-color:#ffc77740}.touch-actions button:active{background:#8bf4da15}.touch-actions button span{font-size:20px}body.playing .flight-frame{border-color:#8bf4da45}body:not(.playing) #touch{opacity:.4}@media(pointer:coarse){#touch{display:flex;margin:0 8px 15px}.controls{display:none}}@media(max-width:900px){.game-heading{gap:25px}.edition{display:none}.controls{gap:15px}.controls-note{display:none}.sectors{gap:6px}.sectors div{font-size:8px;letter-spacing:0}.sectors span{margin-right:5px}.panel{padding:5% 6%}h2{font-size:58px;margin:18px 0 14px}.panel p{font-size:12px}.eyebrow{font-size:8px;letter-spacing:1px}.primary{margin-top:18px;padding:12px 16px}.intro-note{font-size:7px;margin-top:13px}.frame-caption{top:15px;left:18px;right:18px;font-size:8px}}@media(max-width:600px){main{padding:0 5%}header{height:62px}.brand{font-size:10px;letter-spacing:1px;gap:8px}.brand small{display:none}.header-right{gap:12px}.game-shell{padding:24px 0}.game-heading{gap:17px;flex-wrap:wrap;justify-content:space-between;margin-bottom:16px}.game-title{width:100%;margin-bottom:6px}.game-title h1{font-size:23px;letter-spacing:5px}.game-title>span{font-size:8px}.stat strong{font-size:21px}.stat>span,.fuel-stat>span{font-size:8px}.fuel-stat{width:110px}.hull strong{font-size:20px}.flight-frame{aspect-ratio:1.3/1}.panel{padding:24px 7%;background:#080e14d9}h2{font-size:46px;letter-spacing:-2px;margin:13px 0}.eyebrow{font-size:7px;max-width:230px}.panel p{font-size:11px;line-height:1.6}.primary{width:195px;padding:10px 15px;margin-top:16px}.intro-note{font-size:6px;margin-top:12px;letter-spacing:.7px}.frame-caption{top:12px;left:12px;right:12px;font-size:7px;letter-spacing:1px}#flight-status{display:none}.sectors{grid-template-columns:repeat(3,1fr);gap:4px 10px}.sectors div{padding:9px 0;font-size:8px}.under-flight{font-size:9px;padding:13px 0 17px}.best-label{font-size:8px}.best-label b{margin-left:6px}.controls{flex-wrap:wrap;gap:12px;font-size:9px}footer{font-size:7px;letter-spacing:.5px;padding:18px 0}.footer-divider{margin:0 6px}}@media(max-height:600px) and (min-width:601px){header{height:52px}.game-shell{padding:14px 0;max-width:900px}.game-heading{margin-bottom:12px}.game-title h1{font-size:20px}.flight-frame{max-height:calc(100svh - 225px);min-height:220px;aspect-ratio:auto}h2{font-size:43px;margin:10px 0}.panel{padding:25px 6%}.panel p{font-size:11px}.primary{padding:9px 14px;margin-top:12px}.intro-note{margin-top:10px}.under-flight{padding:10px 0}.sectors div{padding:8px 0}.controls{padding-top:8px}footer{padding:12px 0}#touch{position:absolute;bottom:8px;left:8%;right:8%;padding:0;pointer-events:none;z-index:2}#stick,.touch-actions{pointer-events:auto}#stick{width:80px;height:80px}#stick-knob{left:21px;top:21px}.touch-actions button{height:50px;width:85px}.stick-label{display:none}body:not(.playing) #touch{display:none}}
/* Give short screens a definite canvas height; percentage sizing otherwise crops it. */
@media(max-height:600px) and (min-width:601px){.flight-frame{height:max(220px,calc(100svh - 225px));max-height:none}}
@media(max-width:600px){body:not(.playing) .frame-caption{visibility:hidden}.panel{padding:20px 7%}.panel h2{font-size:42px;margin:10px 0}.primary{margin-top:14px}.intro-note{margin-top:10px}}
/* Original SVG life icons share the instrument baseline. */
.hull strong{display:flex;align-items:center;gap:10px;min-height:24px;min-width:101px}.hull img{display:block;width:27px;height:auto}@media(max-width:600px){.hull strong{gap:8px;min-width:88px}.hull img{width:24px}}
.development-note{display:flex;align-items:baseline;gap:16px;margin:20px 0 0;padding-top:15px;border-top:1px solid var(--line);font:10px/1.6 Consolas,monospace;color:var(--muted)}.development-note strong{font-size:8px;letter-spacing:1.2px;color:var(--mint);font-weight:400;white-space:nowrap}@media(max-width:600px){.development-note{display:block;font-size:9px;margin-top:24px}.development-note strong{display:block;margin-bottom:5px}}@media(max-height:600px) and (min-width:601px){.development-note{margin-top:10px;padding-top:9px;font-size:9px}}
/* Keep audio and pause controls reachable while the flight scrolls into view. */
header{position:sticky;top:0;z-index:10;flex-shrink:0;background:var(--bg)}
#sound{min-height:36px;min-width:76px;padding:8px 10px;border:1px solid var(--line);color:var(--ink)}
#sound:hover,#sound[aria-pressed="true"]{color:var(--mint);border-color:#8bf4da60}
.touch-actions .fire-label{font-size:9px}
.touch-actions button[aria-pressed="true"]{background:#8bf4da15;border-color:var(--mint)}

body.attract .panel{background:linear-gradient(90deg,#080e14ed 0%,#080e14c0 42%,#080e1420 100%)}
body.cavern-level .flight-frame{width:100%;max-width:900px;margin:auto;aspect-ratio:960/1000;height:auto;min-height:0;max-height:none}
body.cavern-level .panel{background:#080e14e8}
body.cavern-level #cavern{position:absolute;inset:0}
body.cavern-level .hull strong{color:var(--mint);font-size:14px;letter-spacing:5px}
@media(max-width:600px){
  body.cavern-level #stick{width:82px;height:82px;flex-shrink:0}
  body.cavern-level #stick-knob{left:23px;top:23px}
  body.cavern-level #cavern-actions{gap:8px}
  body.cavern-level #cavern-actions button{width:78px}
}
@media(min-width:601px){
  body.cavern-level .game-shell{padding-top:14px;padding-bottom:14px}
  body.cavern-level .game-heading{margin-bottom:12px}
  body.cavern-level .flight-frame{width:min(900px,max(300px,calc((100svh - 270px) * .96)))}
  body.cavern-level .under-flight{padding:12px 0}
  body.cavern-level .development-note{margin-top:12px;padding-top:10px}
}

/* Compact flight instruments stay inside the canvas frame and pass through input. */
.flight-hud{position:absolute;top:12px;left:16px;right:16px;z-index:2;display:flex;justify-content:space-between;align-items:flex-start;gap:20px;pointer-events:none;text-shadow:0 1px 3px var(--bg)}
.flight-hud .stat>span,.flight-hud .fuel-stat>span{font-size:8px;letter-spacing:1px;margin-bottom:4px;color:var(--ink)}
.flight-hud .stat strong{font-size:16px;letter-spacing:1px;line-height:18px}
.flight-hud .fuel-stat{width:112px}
.flight-hud .fuel-stat b{color:var(--mint)}
.flight-hud .fuel-track{height:3px;margin-top:11px;background:#8bf4da22}
.flight-hud .hull strong{min-height:18px;min-width:68px;gap:6px}
.flight-hud .hull img{width:19px}
.frame-caption{top:54px;left:16px;right:16px;z-index:2;font-size:8px;letter-spacing:1px}
@media(max-width:600px){
  .flight-hud{top:9px;left:11px;right:11px;gap:12px}
  .flight-hud .stat>span,.flight-hud .fuel-stat>span{font-size:7px;letter-spacing:.8px;margin-bottom:3px}
  .flight-hud .stat strong{font-size:14px;line-height:16px}
  .flight-hud .fuel-stat{width:88px}
  .flight-hud .fuel-track{margin-top:10px}
  .flight-hud .hull strong{min-width:57px;min-height:16px;gap:5px}
  .flight-hud .hull img{width:16px}
  .frame-caption{top:47px;left:11px;right:11px;font-size:7px}
  .panel{padding:52px 7% 14px}
  .panel h2{font-size:36px;margin:8px 0}
  .panel .eyebrow{font-size:6px;letter-spacing:.8px}
  .panel p{font-size:10px;line-height:1.5}
  .panel .primary{margin-top:10px;padding:8px 14px}
  .panel .intro-note{margin-top:8px}
}
@media(max-width:360px){
  .panel{padding:47px 6% 10px}
  .panel h2{font-size:28px;margin:6px 0}
  .panel p{font-size:9px}
  .panel .eyebrow{font-size:5.5px;line-height:1.4}
  .panel .primary{padding:6px 14px;margin-top:8px}
  .panel .intro-note{font-size:5px;margin-top:6px}
}

@media(max-height:600px) and (min-width:601px){
  body:not(.playing) .frame-caption{visibility:hidden}
  .panel{padding:54px 6% 8px}
  .panel .eyebrow{font-size:6px;letter-spacing:.8px}
  .panel h2{font-size:30px;margin:6px 0;letter-spacing:-1.5px}
  .panel p{font-size:9px;line-height:1.35}
  .panel .primary{width:195px;padding:6px 14px;margin-top:8px;font-size:10px}
  .panel .primary span{font-size:16px}
  .panel .intro-note{font-size:5px;line-height:1.5;margin-top:6px}
}

/* Level three uses its own wide canvas, with controls outside the room. */
.reward-announcement{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
body.dungeon-level .flight-frame{width:100%;max-width:1200px;margin:auto;aspect-ratio:1200/760;height:auto;min-height:0;max-height:none}
body.dungeon-level #dungeon{position:absolute;inset:0}
body.dungeon-level .panel{background:#080e14e8}
body.dungeon-level .hull strong{font-size:14px;letter-spacing:5px}
body.dungeon-level #touch{position:static;justify-content:space-between;pointer-events:auto}
@media(min-width:601px){body.dungeon-level .flight-frame{width:min(1200px,max(500px,calc((100svh - 290px) * 1.579)))}body.dungeon-level .game-shell{padding-top:14px;padding-bottom:14px}body.dungeon-level .game-heading{margin-bottom:12px}}
@media(max-width:600px){body.dungeon-level .flight-frame{aspect-ratio:1200/760}body.dungeon-level .controls{gap:10px}body.dungeon-level #stick{width:98px;height:98px}body.dungeon-level #stick-knob{left:30px;top:30px}}
