.stage{max-width:640px;margin-inline:auto}.arena{position:relative;width:100%;border:1px solid var(--line-strong);border-radius:var(--radius);overflow:hidden;background:var(--board)}canvas{width:100%;display:block;aspect-ratio:4/3;touch-action:none}canvas:focus-visible{outline:3px solid var(--accent);outline-offset:-4px}.turnbar{min-height:76px;display:block;padding:8px 12px}.turnbar p{margin:4px 0}.game-actions{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}.overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:var(--surface);padding:16px}.overlay[hidden]{display:none}.overlay>div{width:100%;max-width:440px;text-align:center}.overlay h2{font-size:22px;margin:0 0 8px}.upgrades{display:grid;gap:8px}.upgrades button{display:flex;justify-content:space-between;align-items:center;gap:8px;text-align:left;min-height:52px}.upgrades small{font-size:14px}.result-text{font-size:17px}.howto{max-width:800px;margin:32px auto}.howto p{line-height:1.85}.howto figure{margin:24px 0}.howto img{width:100%;max-width:640px;display:block;margin:auto}.howto table{width:100%;border-collapse:collapse}.howto th,.howto td{border:1px solid var(--line);padding:8px;text-align:left}.record{font-size:14px;min-height:24px}progress{width:120px;height:12px;vertical-align:middle;accent-color:var(--accent)}@media(max-width:480px){.wrap{padding-inline:12px}.game-title{font-size:24px}.game-lead{margin-block:8px}.turnbar{font-size:14px;min-height:64px}.game-actions .btn{font-size:15px;padding-inline:12px}.overlay{padding:8px}.overlay h2{font-size:18px}.upgrades button{min-height:48px;font-size:16px}.upgrades small{max-width:48%}}

/* Reserve the measured longest JA/EN message at 360/390px. */
.turnbar { --tb-msg-lines: 1; }
/* This game uses #message without the shared .message class. */
.turnbar #message { min-height: calc(var(--tb-msg-lines) * 1lh); }

/* Local role, input and result feedback; no simulation changes. */
.orbit-quality .turnbar{--tb-msg-lines:1;--tb-st-lines:1;--tb-rt:0px;padding:8px 12px}.orbit-quality #message{font-size:16px;line-height:24px;margin:4px 0;min-height:24px}.orbit-quality #xp-label{font-size:14px;line-height:20px;display:inline-block;min-height:40px;vertical-align:middle;max-width:calc(100% - 130px)}.orbit-quality #xp{height:12px}
.orbit-vitals{display:flex;align-items:center;gap:8px;height:20px;margin:4px 0}.orbit-vitals progress{flex:1;min-width:40px;height:8px}.orbit-vitals #orbit-effect{font-weight:700;font-size:14px;min-width:28px}.orbit-quality[data-effect=hurt] #orbit-effect{color:var(--ng)}.orbit-quality[data-effect=collect] #orbit-effect{color:var(--ok)}#health-marks{display:flex;gap:3px}#health-marks i{width:12px;height:12px;display:block;border:1px solid var(--line-strong);border-radius:50%}#health-marks .full{background:var(--ok)}#health-marks .empty{background:linear-gradient(45deg,transparent 40%,var(--ink) 42% 58%,transparent 60%)}
.orbit-input{display:flex;align-items:center;gap:8px;min-height:48px;margin:8px 0}.orbit-input .btn{min-width:44px;min-height:44px;padding:8px 12px}.orbit-input #orbit-input-state{flex:1;font-size:14px;line-height:20px}.orbit-compass{display:grid;place-items:center;width:32px;height:32px;border:1px dashed var(--line-strong);border-radius:50%;color:var(--muted);flex-shrink:0}.orbit-compass svg{width:22px;height:22px;opacity:.25;transform:rotate(var(--direction))}.orbit-compass.moving{border-style:solid;color:var(--accent)}.orbit-compass.moving svg{opacity:1}.orbit-legend{display:flex;flex-wrap:wrap;gap:6px 12px;font-size:14px;line-height:20px;margin:8px 0}.orbit-legend>span{display:flex;align-items:center;gap:4px}.orbit-legend svg{width:18px;height:18px;flex-shrink:0}
.orbit-callouts .overlay{position:static;inset:auto;border:1px solid var(--line-strong);border-radius:6px;padding:12px;margin:8px 0;min-height:0}.orbit-callouts .overlay>div{max-width:100%}.orbit-callouts .overlay h2{font-size:18px}.orbit-callouts .overlay p{font-size:16px;line-height:1.5;margin:8px 0}.orbit-callouts .controls{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.orbit-callouts .upgrades button{min-height:64px;justify-content:flex-start;font-size:17px;padding:8px;gap:8px}.orbit-choice-icon svg{width:24px;height:24px;display:block}.orbit-choice-text{flex:1;min-width:0}.orbit-choice-text strong,.orbit-choice-text small{display:block}.orbit-choice-text small{font-size:14px;max-width:none}.orbit-change{white-space:nowrap;font-size:16px;font-weight:700}.orbit-quality .game-actions .btn{font-size:17px;min-height:44px}.orbit-quality .game-actions{margin:8px 0}.orbit-quality .record{margin:8px 0;font-size:14px;line-height:20px}
#setup select{font:inherit;font-size:16px;min-height:44px;width:100%;padding:8px;background:var(--surface);color:var(--ink);border:1px solid var(--line-strong);border-radius:6px}#setup .field{display:flex;align-items:center;gap:12px}#setup .label{flex-shrink:0}
.article .howto-shot{position:relative;max-width:390px;margin:auto}.article .howto-shot>img{width:100%;height:auto;display:block}.article .howto-shot>svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.article figcaption{font-size:16px;line-height:1.65;margin-top:8px}
@media(min-width:641px){.orbit-quality{max-width:min(640px,max(400px,calc((100svh - 380px)*4/3)))}}

@media(min-width:641px){.orbit-quality[data-phase=upgrade] .arena{max-width:320px;margin-inline:auto}}

/* main-choice-layout: show all three choices together on wide, short screens. */
@media(min-width:641px){.orbit-quality[data-phase=upgrade]{max-width:640px}.orbit-quality[data-phase=upgrade] .upgrades{grid-template-columns:repeat(3,minmax(0,1fr))}.orbit-quality[data-phase=upgrade] .upgrades button{flex-wrap:wrap;align-content:center}.orbit-quality[data-phase=upgrade] .orbit-choice-text{flex:1 1 100px}.orbit-quality[data-phase=upgrade] .orbit-change{margin-left:auto}}
