:root{color-scheme:dark;--bg:#0a131e;--panel:#101d2c;--line:#2b3c4c;--ink:#f0f5f4;--muted:#9caebb;--cyan:#8cf0d4;--orange:#ffac68;--blue:#78b7ed}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.6 ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Hiragino Sans",sans-serif}button,input{font:inherit}button{border:1px solid var(--line);background:var(--panel);color:var(--ink);padding:10px 16px;border-radius:8px;cursor:pointer;min-height:44px}button:hover:enabled{border-color:var(--cyan)}button:focus-visible,input:focus-visible,a:focus-visible{outline:3px solid var(--orange);outline-offset:3px}button:disabled{opacity:.45;cursor:default}header{max-width:1450px;margin:auto;padding:24px 36px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);gap:20px}.brand{font-size:30px;font-weight:900;letter-spacing:-1.5px;color:var(--ink);text-decoration:none}.brand span{font-size:12px;letter-spacing:2px;color:var(--muted);margin-left:20px;font-weight:500}.topstats{display:flex;gap:28px;align-items:center}.topstats>span{font-size:12px;color:var(--muted);letter-spacing:1px}.topstats b{display:block;color:var(--ink);font-size:18px;letter-spacing:0;font-variant-numeric:tabular-nums}main{max-width:1450px;margin:auto;padding:32px 36px;display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:28px}.flightheading{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:20px}.eyebrow{font:12px/1.4 ui-monospace,monospace;letter-spacing:1.7px;color:var(--cyan)}h1{font-size:clamp(19px,2.4vw,30px);letter-spacing:-.8px;font-weight:600;margin:7px 0 0}h2{font-size:23px;margin:7px 0}h3{font-size:20px;margin:9px 0}.badge{border:1px solid var(--line);padding:6px 10px;border-radius:4px;color:var(--cyan);font-size:14px;white-space:nowrap}.arena{position:relative;background:var(--panel);height:440px;border:1px solid var(--line);border-radius:12px;overflow:hidden}canvas{display:block;width:100%;height:100%}.telemetry{position:absolute;top:20px;left:22px;right:22px;display:flex;gap:32px;pointer-events:none}.telemetry>div{display:flex;flex-direction:column}.telemetry span{color:var(--muted);font-size:13px}.telemetry strong{font:500 42px/1.2 ui-monospace,monospace}.telemetry strong span{font-size:18px}.telemetry b{font:20px/2 ui-monospace,monospace}.telemetry meter{width:90px;height:16px;margin-top:8px;accent-color:var(--cyan)}.sceneNote{position:absolute;bottom:14px;left:20px;right:20px;color:var(--muted);font-size:14px}.controls{display:flex;gap:16px;align-items:center;padding:20px 0 0}.controls label{flex:1;font-size:14px;color:var(--muted)}output{float:right;color:var(--ink);font:20px ui-monospace,monospace}input[type=range]{width:100%;display:block;accent-color:var(--cyan);margin-top:12px;height:20px}.primary{background:var(--cyan);color:var(--bg);font-weight:700;border-color:var(--cyan)}#launch{min-width:220px;font-size:19px;min-height:66px}#launch span{margin-left:30px}.footnote{color:var(--muted);font-size:13px;margin-top:12px}aside{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:22px}.garageheading p{font-size:14px;color:var(--muted);margin:6px 0 20px}.partgroup{border-top:1px solid var(--line);padding:14px 0}.partgroup h3{font-size:14px;font-weight:500;margin:0 0 8px;color:var(--muted)}.partoptions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.partoptions button{padding:10px 6px;font-size:14px;text-align:left;line-height:1.6}.partoptions button span{display:block;font-size:12px;color:var(--muted)}.partoptions button.selected{border-color:var(--cyan);background:#173a3a}.partoptions button.selected span{color:var(--cyan)}.next{border-top:1px solid var(--line);padding-top:20px;margin-top:10px}.next p{font-size:13px;color:var(--muted)}progress{width:100%;height:5px;accent-color:var(--cyan)}footer{max-width:1450px;margin:auto;display:flex;justify-content:space-between;gap:12px;padding:0 36px 24px;color:var(--muted);font:12px ui-monospace,monospace;letter-spacing:1px}.result{position:absolute;inset:15px;background:#0b1829f5;border:1px solid var(--line);border-radius:8px;padding:25px;text-align:center;overflow:auto}.result h2{font:54px/1.1 ui-monospace,monospace;margin:12px 0}.result p{margin:8px 0;font-size:14px}.result #reward{color:var(--orange)}.result #hint{color:var(--muted);margin-bottom:16px}.result button{margin:4px}dialog{width:min(480px,calc(100% - 30px));background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:12px;padding:24px}dialog::backdrop{background:#0009}dialog label{display:block;margin:20px 0}dialog p{font-size:14px;color:var(--muted)}.dialogheading{display:flex;align-items:center;justify-content:space-between}.pauseNotice{position:absolute;inset:40% 15% auto;background:var(--bg);padding:20px;text-align:center;border:1px solid var(--line);border-radius:8px}.warning{font-size:14px;color:var(--orange)}[hidden]{display:none!important}@media(max-width:950px){main{grid-template-columns:1fr;padding:20px}aside{display:grid;grid-template-columns:1fr 1fr;gap:16px}.garageheading{grid-column:1/-1}.garageheading p{margin:0}.arena{height:400px}header{padding:16px 20px}.brand span{display:none}footer{padding:0 20px 20px}}@media(max-width:540px){main{padding:16px 12px;gap:20px}header{padding:14px 16px}.brand{font-size:26px}.topstats{gap:14px}.topstats b{font-size:16px}.topstats button{padding:8px}.arena{height:380px}.telemetry{left:16px;top:16px;gap:22px}.telemetry strong{font-size:34px}.telemetry meter{width:60px}h1{font-size:19px}.badge{font-size:12px}.controls{gap:12px}#launch{min-width:150px;min-height:62px;font-size:17px}#launch span{margin-left:8px}aside{display:block}.result{padding:20px 12px}.result h2{font-size:44px}footer{flex-direction:column}.sceneNote{font-size:13px}.footnote{line-height:1.6}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

.missionBanner{display:flex;justify-content:space-between;align-items:center;gap:14px;border-left:3px solid var(--cyan);background:#163331;padding:14px 18px;margin-bottom:16px;border-radius:0 8px 8px 0}.missionBanner strong{display:block;font-size:18px;margin-top:3px}.missionBanner p{font-size:14px;color:var(--muted);margin:3px 0 0}.missionStamp{font:14px ui-monospace,monospace;color:var(--cyan);white-space:nowrap}.missionResult{border-top:1px solid var(--line);padding-top:12px;margin:12px 0;color:var(--cyan)}.missionResult p{color:var(--ink)}@media(max-width:540px){.missionBanner{padding:12px}.missionBanner strong{font-size:16px}.missionStamp{font-size:12px}.result{inset:8px}.result h2{font-size:36px}}

.controls label{min-width:0}input[type=range]{min-width:0}@media(max-width:540px){.controls{flex-wrap:wrap}.controls #pause{flex-basis:100%}.missionStamp{flex-shrink:0}}
@media(min-width:951px){.arena{height:clamp(280px,40vh,440px)}}

.challengePanel{padding:16px;margin-bottom:16px;border:1px solid #395965;border-radius:12px;background:#112a36}.challengePanel label{display:block;color:#8cf0d4;font-size:12px;margin-bottom:8px}.challengePanel select{width:100%;padding:10px;color:#eef7f6;background:#10202f;border:1px solid #55717d;border-radius:6px;font:inherit}.challengePanel p{font-size:13px;line-height:1.6;margin:8px 0}.challengePanel strong{font-size:13px}#challengeIssue{color:#ffc38b}.result{overflow-y:auto;max-height:100%}

.flightNotebook{margin:12px 0 20px;padding:12px;border:1px solid #395965;border-radius:8px}.flightNotebook summary{cursor:pointer;color:#8cf0d4}.flightNotebook p{font-size:13px;line-height:1.7}.flightNotebook h3{font-size:14px}.medalCollection{display:grid;gap:6px}.medalCollection button{font-size:12px;text-align:left;white-space:normal}.medalCollection button[aria-pressed=true]{border-color:#8cf0d4}#applyRecipe{width:100%;font-size:13px}

.windStatus{position:absolute;top:72px;left:12px;right:12px;background:#122331eb;color:#ffe6ac;padding:6px 10px;font-size:12px;border-radius:6px;pointer-events:none}

.windStatus[data-effect=slowed]{background:#71361f;color:#fff1de;border:1px solid #ffa56a}.windStatus[data-effect=protected]{background:#16493d;color:#c3ffe8;border:1px solid #8cf0d4}

.buildStats{background:#162c39;border-left:3px solid #8cf0d4;padding:10px 12px;margin:10px 0}.buildStats strong{font-size:12px;line-height:1.8}.buildStats p{font-size:12px;line-height:1.6;margin:5px 0;color:#afc3cd}

.journey{padding-bottom:20px;margin-bottom:20px;border-bottom:1px solid #426073}.journey h2{font-size:19px}.journey p{font-size:13px}.journey button{width:100%;margin:8px 0}.journey details{font-size:12px;margin:10px 0}.chapter{display:block;padding:7px;border-left:2px solid #334a5a;margin:5px 0;color:#9caebb}.chapter.current{border-color:#ffac68;color:#ffdbb5}.chapter.done{border-color:#8cf0d4;color:#8cf0d4}.daily{margin-top:14px;padding-top:12px;border-top:1px dashed #395965}.daily h3{font-size:15px}.activeGoal{background:#173b38;padding:9px 12px;border-left:3px solid #8cf0d4;font-size:13px}.result{background:linear-gradient(140deg,#0e2332f5,#182f38f5)}@media(max-width:850px){.journey{scroll-margin-top:12px}}

/* Compact flight instruments remain readable on phone widths. */
.telemetry{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:12px;top:12px;left:14px;right:14px;padding:8px 10px;background:#0b192ce6;border-radius:8px}.telemetry>div{min-width:0}.telemetry span{font-size:14px}.telemetry strong{font-size:30px;white-space:nowrap}.telemetry b{line-height:1.5;font-size:23px;white-space:nowrap}.telemetry meter{width:100%;max-width:85px;margin-top:2px;height:8px}.telemetry #speed{color:#b0f9e3;font-variant-numeric:tabular-nums}.windStatus{top:108px;font-size:14px}.impactNotice{position:absolute;bottom:72px;left:12px;right:12px;padding:9px 12px;border:1px solid #ffb275;border-radius:8px;background:#542c23f5;color:#fff0e1;font-size:14px;pointer-events:none}.impactNotice[data-blocked=true]{background:#173e59f5;border-color:#a9e8ff;color:#def7ff}#speedReport{color:#b0f9e3;font-variant-numeric:tabular-nums}
@media(max-width:540px){.telemetry{grid-template-columns:1fr 1fr;gap:2px 16px;padding:6px 10px}.telemetry>div:nth-child(n+3){flex-direction:row;align-items:center;gap:8px}.telemetry>div:nth-child(n+3) b{font-size:17px}.telemetry strong{font-size:27px}.telemetry #speed{font-size:27px;line-height:1.2}.telemetry #speedMeter{max-width:none}.telemetry #fuel{max-width:65px}.windStatus{top:126px;line-height:1.4}.impactNotice{bottom:80px;line-height:1.5}.telemetry small{font-size:12px}}
.recordActions{border-top:1px solid var(--line);margin-top:14px;padding-top:12px}.recordActions span{display:block;font-size:14px;color:var(--cyan)}.recordActions button{font-size:14px}#recipeMetric{display:block;width:100%;padding:10px;margin:6px 0 12px;background:var(--bg);color:var(--ink);border:1px solid var(--line);border-radius:6px;font:inherit;min-height:44px}#recordAim{border-left-color:var(--orange)}
.styleShop{margin-top:22px;padding-top:20px;border-top:1px solid var(--line)}.styleShop>p{font-size:14px;color:var(--muted)}#stylePreview{width:100%;height:auto;aspect-ratio:12/5;border:1px solid var(--line);border-radius:10px}#styleName{color:var(--ink);font-weight:600}.styleGroup{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:14px 0}.styleGroup h3{grid-column:1/-1;font-size:14px;color:var(--muted);margin:0}.styleGroup button{font-size:14px;padding:8px 4px}.styleGroup button[aria-pressed=true]{border-color:var(--cyan);background:#173a3a}#styleBuy,#stylePin{width:100%;margin-top:8px}#styleTarget,#coinTargetReport{color:var(--orange)}#styleMessage{min-height:1.6em}@media(min-width:541px) and (max-width:950px){.styleShop{grid-column:1/-1}.styleGroup{grid-template-columns:repeat(3,1fr)}}
#maintenanceRows>div,#supplyRows>div{padding:10px 0;border-top:1px solid var(--line)}#maintenanceRows p,#supplyRows p{font-size:14px;margin:0 0 8px}#supplyRows button{font-size:14px;padding:8px;margin:3px}#supplyRows button[aria-pressed=true]{border-color:var(--cyan);background:#173a3a}#workshopMessage,#wearReport{font-size:14px;color:var(--orange)}
/* Three working views: one screen on phones, flight plus tools on desktop. */
header{padding:12px 24px}.viewNav{display:flex;gap:8px;max-width:1450px;margin:auto;padding:10px 24px;background:var(--bg);position:sticky;top:0;z-index:5}.viewNav button{flex:1}.viewNav button[aria-pressed=true]{background:var(--cyan);color:var(--bg);border-color:var(--cyan)}#gameLayout{padding:8px 24px 20px;grid-template-columns:minmax(0,1fr);align-items:start}#gameLayout[data-view=garage],#gameLayout[data-view=records]{grid-template-columns:minmax(0,1fr) 370px}#garage,#recordsView{display:block;max-height:calc(100dvh - 155px);overflow-y:auto;overscroll-behavior:contain;position:sticky;top:66px;padding:18px}.flightheading{margin-bottom:10px}.flightheading h1{font-size:21px}.flightObjective{margin:6px 0;font-size:15px;color:var(--cyan)}.weatherBrief{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:8px 12px;margin-bottom:10px;background:#142b3c;border:1px solid #345064;border-radius:8px;font-size:14px}.weatherBrief span{color:var(--muted);font-size:13px}.arena{height:clamp(340px,calc(100dvh - 330px),650px)}.controls{padding-top:10px}.globalWarning{max-width:1400px;margin:8px auto;padding:0 16px}#recordsView .missionBanner{display:block}#recordsView .missionBanner button{margin:8px 0}#recordsView .challengePanel{margin-top:14px}.flightNotebook{margin-top:16px}.result{inset:8px;padding:16px;overscroll-behavior:contain}#flightView{min-width:0}#gameLayout[data-view=flight] #flightView{max-width:1200px;width:100%;margin:auto}
@media(max-width:950px){header{padding:8px 12px}.viewNav{padding:6px 10px;gap:6px}.viewNav button{font-size:14px;padding:8px 4px}#gameLayout,#gameLayout[data-view=garage],#gameLayout[data-view=records]{display:block;padding:4px 10px 16px}#gameLayout[data-view=garage] #flightView,#gameLayout[data-view=records] #flightView{display:none}#garage,#recordsView{position:static;max-height:none;overflow:visible;padding:14px}.flightheading{margin:4px 0}.flightheading h1{display:none}.flightheading .eyebrow{font-size:12px}.flightObjective{font-size:14px;line-height:1.4;margin:5px 0}.weatherBrief{padding:6px 9px;gap:0;margin-bottom:6px}.weatherBrief b{font-size:14px}.weatherBrief span{display:block;width:100%;font-size:12px}.arena{height:clamp(260px,calc(100svh - 300px),520px)}.controls{position:sticky;bottom:0;background:var(--bg);padding:8px 0 calc(8px + env(safe-area-inset-bottom));z-index:3}#launch{min-height:54px;min-width:130px}.footnote{margin:5px 0}#activeGoal,#recordAim{font-size:13px;padding:5px 8px;margin:4px 0}.result h2{font-size:34px}.result p{font-size:13px}.sceneNote{font-size:12px}.telemetry{top:6px}.windStatus{top:110px;font-size:12px}footer{font-size:11px;padding:0 12px 12px}}
