@font-face { font-family:'Power Banks Story';font-style:normal;font-weight:300;font-display:swap;src:url('/assets/fonts/lato-light-latin.woff2') format('woff2'); }
html { height: 100%; overflow: hidden; scroll-behavior: auto; }
/* Rack rewards stay on the instruments and board rim. */
.pack-surge { position: fixed; inset: 0; width: 100%; height: 100%; pointer-events: none; z-index: 3; overflow: visible; }
.pack-surge path { fill: none; stroke: #ffe098; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: .075 .925; filter: drop-shadow(0 0 2px #8ceede); }
.bank-rack.pack-full { border-color: #ffe098; box-shadow: inset 0 0 9px #8ceede55; }
.pack-reward .rail-label,.pack-reward #lives-count { color: #ffe098; }
.pack-reward .life-pips span:not(.spent) { background: linear-gradient(0deg,#d3b776 50%,#fff2bf 50%); }
.ship-status.pack-powered .ship-hull { stroke: #ffe098; }
.ship-status.pack-powered .ship-receiver { stroke: #ffe098; stroke-width: 2.5; }
@media (prefers-reduced-motion:reduce) { .pack-surge { display: none !important; } }
body.breakline-page { min-height: 0; height: 100dvh; display: flex; flex-direction: column; overflow: hidden; }
.playbar { flex: 0 0 auto; min-height: 56px; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 24px; padding: 8px 16px; background: linear-gradient(110deg,#122747,#15213f 65%,#2e204a); border-bottom: 2px solid transparent; border-image: linear-gradient(90deg,#72eaff,#8f66dc 75%,#ffd367) 1; }
.back-link { display: inline-flex; gap: 10px; align-items: center; min-height: 36px; color: #c4efff; font-size: 12px; font-weight: 700; text-decoration: none; border-radius: 6px; white-space: nowrap; }
.back-link:hover { color: #fff1ab; }
.playbar h1 { margin: 0; font: 400 23px/1.15 var(--display); color: #b8f3ff; background: none; -webkit-text-fill-color: currentColor; filter: none; letter-spacing: 0; text-shadow: 0 2px 0 #112445; }
.playbar-actions { display: flex; gap: 8px; }
.playbar-actions button { min-height: 36px; padding: 7px 12px; border: 1px solid #7189ae; border-radius: 8px; background: linear-gradient(#314a70,#1b2e50); color: #e4faff; font: 700 12px Arial,sans-serif; box-shadow: inset 0 1px 0 #c9ebff22,0 2px 0 #080f25; cursor: pointer; white-space: nowrap; }
.playbar-actions button:hover:not(:disabled) { border-color: #8de9ff; background: #354f76; }
.playbar-actions button:disabled { opacity: .45; cursor: default; }
.play-layout { flex: 1 1 0; min-height: 0; display: grid; grid-template-columns: 64px minmax(0,1fr) 176px; grid-template-rows: minmax(0,1fr); gap: 12px; padding: 12px; }
.bank-rack { min-height: 0; min-width: 0; display: flex; flex-direction: column; align-items: center; padding: 12px 4px 8px; border: 1px solid #527185; border-radius: 10px; background: linear-gradient(90deg,#101d30,#203548 50%,#111c31); box-shadow: inset 0 1px 0 #a3eff73d; }
.bank-rack .rail-label { font-size: 8px; letter-spacing: .09em; }
#bank-total { margin: 5px 0 8px; color: #c4fff0; font: 400 24px/1.1 var(--display); }
#bank-rack-canvas { display: block; width: 100%; flex: 1 1 0; min-height: 0; }
#bank-batch { margin-top: 8px; color: #a6bed0; font: 700 9px/1 Arial,sans-serif; white-space: nowrap; }
.game-stage { min-width: 0; min-height: 0; display: grid; place-items: center; position: relative; }
.arena-frame { width: 100%; height: 100%; min-width: 0; min-height: 0; padding: 5px; border: 1px solid #9adcf1; border-radius: 18px; background: var(--rim); box-shadow: inset 0 1px 0 #edffffa1,0 3px 0 #8460af,0 5px 0 #ad8745; }
.arena-wrap { position: relative; width: 100%; height: 100%; border: 2px solid #101b3e; border-radius: 11px; overflow: hidden; background: #20262c; }
#arena { display: block; width: 100%; height: 100%; touch-action: none; cursor: grab; outline-offset: -4px; }
#arena:active { cursor: grabbing; }
body.breakline-page { --wave-accent: #8be7ed; }
.arena-frame { border-color: var(--wave-accent); }
.round-rail { min-height: 0; display: flex; flex-direction: column; gap: 16px; padding: 20px 16px 16px; border-left: 1px solid #729cc44d; background: linear-gradient(180deg,#192c4899,#171b3655); border-radius: 10px; }
.rail-label { display: block; font-size: 10px; letter-spacing: .12em; font-weight: 700; text-transform: uppercase; color: #adcbdf; }
#score-value { display: block; margin-top: 5px; font: 400 52px/1.1 var(--display); color: #ffe09a; text-shadow: 0 3px 0 #66492d; font-variant-numeric: tabular-nums; }
#score-value[data-size="medium"] { font-size: 38px; }
#score-value[data-size="small"] { font-size: 28px; }
.wave-block { display: grid; grid-template-columns: 1fr auto; align-items: baseline; }
#round-number { font: 400 34px/1.1 var(--display); color: var(--wave-accent); }
#round-band { grid-column: 1 / 3; display: block; margin-top: 4px; color: #99b4cc; font-size: 10px; }
.wave-cue { grid-column: 1 / 3; min-height: 14px; margin-top: 5px; color: var(--wave-accent); }
.wave-cue[hidden] { display: block; visibility: hidden; }
#cue-wave { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
#cue-step { font: 700 11px/14px Arial,sans-serif; letter-spacing: .07em; text-transform: uppercase; }
.wave-cue.milestone { color: #ffe09a; }
.wave-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
.wave-heading strong { font: 400 34px/1.1 var(--display); color: #ffe3a0; }
#wave-size { color: #9db7cd; font-size: 10px; }
.run-lives .rail-label { display: flex; align-items: center; justify-content: space-between; }
#lives-count { color: #e2f7ff; font-size: 14px; }
.life-pips { display: flex; gap: 12px; margin-top: 11px; }
.life-pips span { width: 30px; height: 28px; background: linear-gradient(0deg,#8cdbe9 50%,#f3fbff 50%); clip-path: polygon(50% 0,100% 100%,50% 78%,0 100%); transition: opacity .18s; }
.life-pips .spent { opacity: .16; }
.run-record { display: grid; grid-template-columns: 1fr; gap: 14px; padding-top: 15px; border-top: 1px solid #729cc444; }
.run-record span { display: flex; flex-direction: column; gap: 6px; color: #a7bfd6; font-size: 10px; letter-spacing: .06em; text-transform: uppercase; }
.run-record strong { color: #ffdf92; font: 400 27px/1.1 var(--display); }
.collectible-display { margin-top: auto; display: flex; flex-direction: column; align-items: center; gap: 8px; padding-top: 8px; }
.shield-art { width: 70px; height: 70px; object-fit: contain; opacity: .25; transition: opacity .15s,transform .18s; }
.collectible-display.charged .shield-art { opacity: 1; transform: scale(1.05); }
.shield-glyph { display: block; width: 46px; height: 50px; background: linear-gradient(135deg,#fff2b2,#d7a348); clip-path: polygon(50% 0,100% 25%,86% 68%,50% 100%,14% 68%,0 25%); opacity: .22; }
.collectible-display.charged .shield-glyph { opacity: 1; }
#shield-status { color: #94aec8; font-size: 11px; }
#shield-status.charged { color: #ffe09a; }
.guide-shield { flex: 0 0 22px; height: 24px; background: linear-gradient(145deg,#fff2b2,#ce9943); clip-path: polygon(50% 0,100% 25%,85% 70%,50% 100%,15% 70%,0 25%); }
/* Optional flight manual: the action first, detailed rules on request. */
.help-dialog { box-sizing: border-box; width: min(780px,calc(100vw - 32px)); max-height: calc(100dvh - 32px); padding: 0; overflow: hidden; color: #dce8e6; border: 1px solid #6a7977; border-top-color: #aa986f; border-radius: 3px; background: linear-gradient(110deg,#25383d,#15252d 24%,#10212a); box-shadow: inset 0 0 0 4px #0a1824,0 8px 24px #030b12aa; }
.help-dialog[open] { display: flex; flex-direction: column; }
.help-dialog::backdrop { background: #081020bb; }
.help-content { min-height: 0; overflow: auto; padding: 24px 24px 0; scrollbar-color: #57747a #13252d; }
.help-heading h2 { margin: 0 0 5px; color: #e4eee8; font: 700 23px/1.2 Arial,sans-serif; letter-spacing: .035em; }
.help-dialog p { margin: 0; font-size: 13px; line-height: 1.55; color: #bdced3; }
.help-heading p { color: #d4e8df; }
.help-dialog .help-movement { margin: 18px 0 7px; color: #aac5cd; font-size: 12px; }
.help-movement strong { color: #d5e7e7; font-weight: 600; }
.help-movement span[aria-hidden] { padding: 0 8px; color: #739196; }
.help-sequence { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 20px; margin: 0; padding: 0; list-style: none; }
.help-sequence li { min-width: 0; }
.help-sequence svg { display: block; width: 100%; height: auto; margin-bottom: 10px; background: linear-gradient(180deg,#0a1c2700,#08192499); }
.help-dialog h3 { margin: 0 0 7px; color: #dbebe5; font: 700 14px/1.3 Arial,sans-serif; }
.help-sequence h3 span { padding-right: 5px; color: #b4a47e; font-size: 10px; letter-spacing: .05em; }
.help-dialog .help-fallback { margin: 21px 0 18px; padding-left: 11px; border-left: 2px dotted #ac9464; font-size: 12px; color: #c3bcaa; }
.help-details { border-top: 1px solid #61777b55; }
.help-details summary { padding: 14px 0; color: #b8d0d1; cursor: pointer; font: 600 12px/1.4 Arial,sans-serif; }
.help-details summary:hover { color: #e4eee8; }
.help-details summary:focus-visible { outline: 2px solid #e6cd93; outline-offset: 2px; }
.help-reference { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px 25px; padding: 5px 0; }
.help-reference h3 { color: #c8dcd8; font-size: 13px; }
.help-reference p { font-size: 12px; }
.help-reference p+p { margin-top: 8px; }
.help-shield { display: flex; align-items: center; gap: 10px; }
.help-shield img { flex: 0 0 32px; object-fit: contain; }
.help-footer { flex: 0 0 auto; padding: 12px 24px 20px; }
:is(.help-dialog,.new-run-dialog) .preview-button { width: 100%; margin: 0; }
.help-footer button span { color: #94aeb2; font-size: 10px; font-weight: 400; letter-spacing: .025em; }
.rail-help { flex: 1; display: flex; flex-direction: column; justify-content: center; gap: 25px; padding: 18px 0; }
.key-row { display: flex; gap: 5px; margin-top: 10px; }
kbd { display: grid; place-items: center; width: 27px; height: 27px; font: 700 12px Arial,sans-serif; color: #e2f5ff; background: linear-gradient(#355574,#253851); border: 1px solid #7597b4; border-radius: 5px; box-shadow: 0 3px 0 #101a30; }
.control-guide p { color: #b9ccdf; font-size: 11px; line-height: 1.8; margin: 13px 0 0; }
.field-guide { display: flex; flex-direction: column; gap: 15px; }
.field-guide div { display: flex; align-items: center; gap: 11px; }
.field-guide p { margin: 0; font-size: 11px; color: #c9d7e6; }
.guide-player { position: relative; width: 22px; height: 22px; background: linear-gradient(0deg,#82d6e7 50%,#f3fbff 50%); clip-path: polygon(100% 50%,0 0,16% 50%,0 100%); transform: rotate(-35deg); }
.guide-player::after { content: ''; position: absolute; left: 6px; top: 8px; width: 10px; height: 6px; background: #234354; clip-path: polygon(100% 50%,0 0,20% 50%,0 100%); }
.guide-charge { width: 22px; height: 22px; border: 2px solid #ffdc7b; border-radius: 50%; background: linear-gradient(145deg,#ffb695,#ff8064 40%,#b6333c); box-shadow: inset 0 0 0 3px #253248; }
.guide-block { width: 22px; height: 22px; border: 1px solid #9fb8c8; border-top: 3px solid #b7d5df; background: linear-gradient(145deg,#657f90,#415766); box-shadow: inset 0 0 0 3px #263c49,2px 3px 0 #16202b; }
.rail-shortcuts { margin: 0; padding-top: 14px; color: #a4bed6; font-size: 10px; border-top: 1px solid #7498bc35; }
.game-overlay { position: absolute; inset: 0; display: grid; place-items: center; padding: 18px; background: #0a12244d; backdrop-filter: blur(2px); }
.game-overlay[hidden] { display: none; }
.outcome-panel { position: relative; max-width: 370px; max-height: 100%; overflow: auto; padding: 24px; text-align: center; color: #e2ede8; border: 1px solid #5d777b; border-top-color: #ad9770; border-bottom-color: #354b55; border-radius: 3px; background: radial-gradient(circle at 9px 9px,#8a9997 1px,#101b24 1.5px,transparent 2.5px),radial-gradient(circle at calc(100% - 9px) 9px,#8a9997 1px,#101b24 1.5px,transparent 2.5px),linear-gradient(110deg,#2a3f44 0,#192c35 12px,#10222c 52%,#152730); box-shadow: inset 0 0 0 4px #0b1825,inset 5px 0 0 #7c8c8429,0 3px 0 #07111b,0 8px 20px #030a12aa; }
.outcome-panel .genre { margin: 0 0 13px; color: #c7b88e; font: 700 9px/1.3 Arial,sans-serif; letter-spacing: .19em; }
.outcome-panel h2 { margin: 0 0 15px; font: 700 clamp(22px,3vw,28px)/1.15 Arial,sans-serif; color: #e1eee8; text-shadow: none; letter-spacing: .015em; }
.outcome-panel p:not(.genre) { margin: 0 0 18px; color: #b5c9cc; font-size: 13px; line-height: 1.6; }
.outcome-panel p.panel-controls { font-size: 12px; color: #aeeaff; }
.control-touch { display: none; }
@media (pointer:coarse) {
 .control-keys { display: none; }
 .control-touch { display: inline; }
}
 .start-visual { display: block; width: 240px; max-width: 100%; height: auto; margin: -4px auto 12px; }
.game-overlay:not([data-state="ready"]) .start-visual { display: none; }
.outcome-panel .preview-button { min-width: 150px; }
.game-overlay[data-state="over"] { align-items: var(--outcome-y); justify-items: var(--outcome-x); background: transparent; backdrop-filter: none; }
.game-overlay[data-state="over"] .outcome-panel { width: min(282px,100%); padding: 20px 18px 14px; text-align: left; }
.game-overlay[data-state="over"] .outcome-panel h2 { display: flex; flex-direction: column; gap: 4px; margin-bottom: 12px; }
.game-overlay[data-state="over"] .result-number { font: 400 clamp(30px,3.4vw,40px)/1.05 var(--display); font-variant-numeric: tabular-nums; }
.game-overlay[data-state="over"] .result-unit { font: 700 9px/1.2 Arial,sans-serif; letter-spacing: .14em; text-transform: uppercase; color: #93b7bc; text-shadow: none; }
.game-overlay[data-state="over"].new-best .outcome-panel { border-top-color: #efd391; }
.game-overlay[data-state="over"].new-best .genre,.game-overlay[data-state="over"].new-best .result-number { color: #ffe09b; }
.game-overlay[data-state="over"] .outcome-panel #outcome-copy { display: flex; gap: 22px; align-items: center; line-height: 1.2; margin-bottom: 14px; padding: 12px 0; border-top: 1px solid #7c96962b; border-bottom: 1px solid #7c96962b; }
.result-stat { display: inline-flex; align-items: center; gap: 6px; }
.result-bank-icon { width: 16px; height: 34px; flex: 0 0 auto; }
.result-stat-text { display: flex; flex-direction: column; gap: 4px; }
.result-stat-text b { color: #c3eff1; font: 400 22px/1 var(--display); }
.result-stat-text > span { color: #accbdc; font: 700 8px/1.2 Arial,sans-serif; letter-spacing: .04em; text-transform: uppercase; }
.game-overlay[data-state="over"] .panel-controls { display: none; }
.game-overlay[data-state="over"] .preview-button { width: 100%; min-width: 0; }
.game-overlay[data-state="paused"] { align-items: var(--outcome-y); justify-items: var(--outcome-x); background: transparent; backdrop-filter: none; }
.game-overlay[data-state="paused"] .outcome-panel { width: min(250px,100%); padding: 20px 18px 14px; text-align: left; }
.game-overlay[data-state="paused"] .genre,.game-overlay[data-state="paused"] .panel-controls { display: none; }
.game-overlay[data-state="paused"] .outcome-panel h2 { font-size: 21px; margin-bottom: 8px; }
.game-overlay[data-state="paused"] .outcome-panel #outcome-copy { font-size: 13px; line-height: 1.5; margin-bottom: 14px; }
.game-overlay[data-state="paused"] .preview-button { width: 100%; min-width: 0; }
.restart-button { width: 100%; min-height: 44px; margin-top: 5px; padding: 8px 12px; border: 1px solid transparent; border-top-color: #6b878c36; border-radius: 2px; background: transparent; color: #a4b9bc; font: 600 11px Arial,sans-serif; cursor: pointer; }
.restart-button:hover { border-color: #758b8655; background: #bedacf08; color: #e4eeea; }
/* In-world command keys; story controls retain their cinematic treatment. */
.game-overlay:not([data-state="ready"]):not([data-state="interlude"]):not([data-state="restored"]) .preview-button,:is(.help-dialog,.new-run-dialog) .preview-button { min-height: 44px; padding: 11px 12px; justify-content: space-between; border: 1px solid #73949288; border-bottom-color: #344f58; border-radius: 2px; background: linear-gradient(180deg,#294149,#1a3039); color: #e2eee6; box-shadow: inset 3px 0 0 #a8cbb9,inset 0 1px 0 #c5d9ce16,0 2px 0 #07131c; font: 700 12px/1.3 Arial,sans-serif; letter-spacing: .055em; text-shadow: none; transform: none; filter: none; transition: background .15s,color .15s; }
.game-overlay:not([data-state="ready"]):not([data-state="interlude"]):not([data-state="restored"]) .preview-button:hover,:is(.help-dialog,.new-run-dialog) .preview-button:hover { background: linear-gradient(180deg,#36535a,#233c44); color: #fff1c9; }
.game-overlay:not([data-state="ready"]):not([data-state="interlude"]):not([data-state="restored"]) .preview-button:active,:is(.help-dialog,.new-run-dialog) .preview-button:active { background: #192d35; box-shadow: inset 3px 0 0 #d1bd8b,inset 0 1px 3px #07131c; }
.game-overlay:not([data-state="ready"]):not([data-state="interlude"]):not([data-state="restored"]) button:focus-visible,:is(.help-dialog,.new-run-dialog) button:focus-visible { outline: 2px solid #e6cd93; outline-offset: 3px; }
@property --edge-turn { syntax: '<angle>'; initial-value: 0deg; inherits: false; }
.arena-frame { position: relative; --wave-fill: 0turn; }
.arena-frame::after,.arena-frame::before { content: ''; position: absolute; pointer-events: none; inset: -1px; border-radius: 18px; padding: 2px; mask: linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0); mask-composite: exclude; }
.arena-frame::after { background: conic-gradient(from -90deg,#ffe39a var(--wave-fill),transparent 0); opacity: .8; }
.arena-frame::before { inset: -3px; padding: 3px; opacity: 0; background: conic-gradient(from var(--edge-turn),transparent 0deg,#f4ffff 18deg,var(--wave-accent) 40deg,transparent 65deg); }
.arena-frame.wave-transition::before { animation: edge-sweep .8s ease-out forwards; }
.arena-frame.wave-transition.milestone::before { padding: 4px; filter: drop-shadow(0 0 3px #ffdc89); }
.arena-frame.is-paused::before { animation-play-state: paused; }
@keyframes edge-sweep { from { --edge-turn: 0deg; opacity: 1; } 80% { opacity: 1; } to { --edge-turn: 360deg; opacity: 0; } }
@media (prefers-reduced-motion:no-preference) {
 .collectible-display.charged .shield-art { animation: shield-earned .35s ease-out; }
 @keyframes shield-earned { from { transform: scale(.7) rotate(-12deg); } 65% { transform: scale(1.14) rotate(3deg); } to { transform: scale(1.05); } }
}
@media (prefers-reduced-motion:reduce) { .arena-frame.wave-transition::before { animation: none; } }
@media (max-width:800px) {
 .playbar { gap: 12px; padding: 7px 12px; }
 .playbar h1 { font-size: 21px; }
 .playbar-actions button { padding: 7px 9px; font-size: 11px; }
 .play-layout { grid-template-columns: 32px minmax(0,1fr); grid-template-rows: minmax(0,1fr) auto; gap: 8px 6px; padding: 8px; }
 .bank-rack { grid-column: 1; grid-row: 1; padding: 8px 2px; border-radius: 7px; }
 .bank-rack .rail-label { font-size: 6px; letter-spacing: 0; }
 #bank-total { margin: 4px 0; font-size: 18px; }
 #bank-batch { font-size: 6px; margin-top: 4px; }
 .game-stage { grid-column: 2; grid-row: 1; }
 .round-rail { grid-column: 1 / -1; grid-row: 2; display: grid; grid-template-columns: minmax(75px,1.1fr) auto minmax(62px,1fr) auto; grid-template-rows: auto auto; align-items: center; gap: 4px 12px; padding: 8px 12px; border-left: 0; border-top: 1px solid #729cc44d; }
 .score-block { grid-column: 1; grid-row: 1 / 3; }
 .wave-block { grid-column: 2; grid-row: 1; display: flex; flex-direction: column; align-items: start; }
 .wave-status { grid-column: 3; grid-row: 1; }
 .run-lives { grid-column: 4; grid-row: 1; }
 .rail-label { font-size: 8px; }
 #score-value,#score-value[data-size="medium"] { font-size: 27px; }
 #score-value[data-size="small"] { font-size: 21px; }
 #round-number { font-size: 23px; margin-top: 2px; }
 #round-band,#wave-size { display: none; }
 .wave-cue { position: relative; min-height: 18px; margin: 2px 0 0; }
 #cue-step { position: absolute; left: 0; bottom: 0; white-space: nowrap; font-size: 8px; line-height: 10px; }
 .wave-heading { flex-direction: column; align-items: start; gap: 3px; }
 .wave-heading strong { font-size: 23px; }
 .life-pips { gap: 5px; margin-top: 7px; }
 .life-pips span { width: 16px; height: 17px; }
 #lives-count { font-size: 11px; }
 .run-record { grid-column: 2 / 4; grid-row: 2; display: block; padding: 0; border: 0; }
 .run-record span { flex-direction: row; align-items: baseline; gap: 5px; font-size: 8px; }
 .run-record strong { font-size: 12px; }
 .collectible-display { grid-column: 4; grid-row: 2; flex-direction: row; justify-content: end; gap: 4px; padding: 0; margin: 0; }
 .shield-art { width: 19px; height: 19px; }
 #shield-status { font-size: 8px; }
 .outcome-panel { padding: 20px 16px; }
 .outcome-panel p:not(.genre) { font-size: 12px; }
}
@media (max-width:480px) {
 .playbar { grid-template-columns: 1fr auto; gap: 4px 8px; }
 .back-link { grid-column: 1; grid-row: 1; font-size: 11px; }
 .playbar h1 { grid-column: 1; grid-row: 2; font-size: 19px; }
 .playbar-actions { grid-column: 2; grid-row: 1 / 3; }
}
@media (max-height:650px) and (min-width:801px) {
 .round-rail { padding-top: 14px; }
 #score-value { font-size: 45px; }
 .goal-copy { margin-bottom: 14px; }
 .rail-help { gap: 18px; padding: 12px 0; }
 .field-guide { gap: 10px; }
}
/* Keep the shield readout inside shorter desktop consoles without shrinking play. */
@media (min-width:801px) and (max-height:740px) {
 .round-rail { gap: 10px; padding-top: 14px; }
}

.guide-module { flex: 0 0 32px; object-fit: contain; }
#banks-full { white-space: nowrap; font-size: 29px; }
@media (max-width:800px) { #banks-full { font-size: 23px; } }

/* The ship's instruments share the existing screen allocation. */
.playbar .power-nameplate { justify-self: start; padding: 4px 11px 5px; border: 1px solid #74939f; border-bottom-color: #b09561; border-radius: 6px; background: linear-gradient(180deg,#314956,#172c3a 45%,#102031); box-shadow: inset 0 1px 0 #bddbe044,0 2px 0 #060e1c; font-size: 20px; letter-spacing: .02em; color: #c6f5ee; text-shadow: 0 2px 0 #0a1424; }
.round-rail { background: linear-gradient(105deg,#2b4350 0,#162d3f 3px,#162638 45%,#1b263d); border: 1px solid #597282; border-bottom-color: #aa8958; border-radius: 9px; box-shadow: inset 0 1px 0 #c2d7d329,inset -2px 0 0 #101b2c; }
.wave-block { padding-top: 10px; border-top: 1px solid #74929d33; }
#round-band { color: #c2dedc; font-size: 11px; font-weight: 700; }
#formation-name { grid-column: 1 / 3; margin-top: 4px; color: #91b0bd; font-size: 10px; }
/* A readable cutaway of the same hatch, forked mast and twin drives as the story art. */
.ship-status { padding-top: 7px; border-top: 1px solid #74929d33; color: #a8c3c9; text-align: center; }
.ship-status svg { display: block; width: 100%; height: 72px; }
.ship-shadow { fill: #071923; opacity: .75; }
.ship-hull { fill: url(#ship-hull-metal); stroke: #8aa7b4; stroke-width: 1.1; }
.ship-bevel { fill: #466472; }
.ship-seam { fill: none; stroke: #7a98a6; stroke-width: .8; }
.ship-mast { fill: #233f4d; stroke: #88a7b4; stroke-width: 1; }
.ship-relay-lines { fill: none; stroke: #567987; stroke-width: 1.5; }
.ship-relay { fill: #173542; stroke: #84a7b4; stroke-width: 1; }
.ship-relay-cross { fill: none; stroke: #6f939f; stroke-width: .8; }
.ship-drive { fill: #142a36; stroke: #7898a7; stroke-width: 1.2; }
.ship-drive-teeth { stroke-dasharray: 2 2; stroke-width: 2; }
.ship-drive-core { fill: #365663; stroke: #7c9da9; stroke-width: .7; }
.ship-hatch { fill: #071b26; stroke: #7c9aa5; stroke-width: 1; }
.ship-deck { fill: #3d5d66; }
.ship-hatch-detail { fill: none; stroke: #172d38; stroke-width: 1; }
.ship-ramp { fill: #304953; stroke: #72909a; stroke-width: .8; }
.ship-receiver { fill: none; stroke: #567782; stroke-width: 1; }
.ship-status.service-online .ship-deck { fill: #ffd38b; }
.ship-status.service-online .ship-hatch { stroke: #d0b480; }
.ship-status.service-online .ship-ramp { fill: #665c44; stroke: #ad9870; }
.ship-status.service-online { color: #e5cd9e; }
.ship-status.relay-online .ship-relay-lines { stroke: #92e8e8; }
.ship-status.relay-online .ship-relay-cross { stroke: #f0fffa; }
.ship-drive.drive-online .ship-drive-core { fill: #d8fff1; stroke: #ebfff7; }
#ship-status-label { display: block; margin-top: 3px; font-size: 10px; line-height: 1.3; }
.story-art { display: none; }
.game-overlay[data-state="ready"] { padding: 0; grid-template-rows: minmax(0,1fr) auto; gap: 0; background: #0b1525; backdrop-filter: none; }
.game-overlay[data-state="ready"] .story-art { display: block; width: 100%; height: 100%; min-height: 0; object-fit: contain; }
.game-overlay[data-state="ready"] .outcome-panel { width: 100%; max-width: none; padding: 12px 18px 14px; border: 0; border-top: 1px solid #7c888351; border-radius: 0; box-shadow: none; background: linear-gradient(180deg,#142637,#112031); }
.game-overlay[data-state="ready"] .genre { margin-bottom: 4px; color: #d3b67a; font-size: 9px; letter-spacing: .16em; }
.game-overlay[data-state="ready"] .outcome-panel h2 { margin-bottom: 6px; font-size: 24px; }
.game-overlay[data-state="ready"] #outcome-copy { max-width: 460px; margin: 0 auto 8px; font-size: 13px; line-height: 1.45; }
.game-overlay[data-state="ready"] .panel-controls { margin-bottom: 10px; font-size: 11px; line-height: 1.3; }
.game-overlay[data-state="ready"] .preview-button { min-height: 42px; padding-top: 9px; padding-bottom: 9px; }
@media (max-width:800px) {
 .playbar .power-nameplate { font-size: 18px; padding: 3px 7px; }
 .round-rail { border-radius: 9px; }
 .wave-block { position: relative; border: 0; padding: 0; }
 #round-band { display: block; position: absolute; left: 0; bottom: 0; margin: 0; font-size: 7px; line-height: 13px; white-space: nowrap; }
 .round-rail:has(.wave-cue:not([hidden])) #round-band { visibility: hidden; }
 #formation-name,.ship-status { display: none; }
 .game-overlay[data-state="ready"] .outcome-panel { padding: 12px 12px 14px; }
 .game-overlay[data-state="ready"] .outcome-panel h2 { font-size: 22px; }
 .game-overlay[data-state="ready"] #outcome-copy { font-size: 12px; }
}
@media (max-height:600px) and (min-width:801px) {
 .ship-status svg { height: 30px; }
 .game-overlay[data-state="ready"] .outcome-panel { padding: 8px 16px; }
 .game-overlay[data-state="ready"] .genre { display: none; }
}

/* Cinematic openings keep the complete image, with controls on the letterbox. */
.game-overlay:is([data-state="ready"],[data-state="interlude"],[data-state="restored"]) { display: block; padding: 0; background: #0a1522; backdrop-filter: none; }
.game-overlay:is([data-state="ready"],[data-state="interlude"],[data-state="restored"]) .story-art { display: block; position: absolute; inset: 0; width: 100%; height: 100%; min-height: 0; object-fit: contain; }
.game-overlay:is([data-state="ready"],[data-state="interlude"],[data-state="restored"]) .outcome-panel { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: flex-start; width: 100%; height: 100%; max-width: none; max-height: none; overflow: visible; padding: clamp(20px,3vw,34px); border: 0; border-radius: 0; background: radial-gradient(ellipse 660px 185px at 0 0,#07131ecc 0%,#07131e66 62%,transparent 100%),linear-gradient(180deg,#07131e85,transparent 24%,transparent 78%,#07131e85); box-shadow: none; text-align: left; pointer-events: none; }
.game-overlay:is([data-state="ready"],[data-state="interlude"],[data-state="restored"]) .genre,.game-overlay:is([data-state="ready"],[data-state="interlude"],[data-state="restored"]) .panel-controls { display: none; }
.game-overlay:is([data-state="ready"],[data-state="interlude"],[data-state="restored"]) .outcome-panel h2 { margin: 0 0 7px; color: #e2f0eb; font: 400 clamp(21px,2.2vw,29px)/1.1 var(--display); letter-spacing: .025em; text-shadow: 0 2px 7px #04101c; }
.game-overlay:is([data-state="ready"],[data-state="interlude"],[data-state="restored"]) #outcome-copy { max-width: min(560px,100%); margin: 0; color: #b5c2c8; font-family: 'Power Banks Story',Arial,sans-serif; font-size: 20px; font-weight: 300; line-height: 1.45; text-shadow: 0 1px 4px #04101c; }
.game-overlay:is([data-state="ready"],[data-state="interlude"],[data-state="restored"]) #start-button { align-self: center; width: auto; min-width: 180px; min-height: 48px; margin-top: auto; padding: 12px 18px; border: 1px solid transparent; border-radius: 4px; background: transparent; box-shadow: none; color: #e5f1eb; font-size: 0; text-shadow: 0 2px 6px #04101c; transform: none; filter: none; pointer-events: auto; }
.game-overlay:is([data-state="ready"],[data-state="interlude"],[data-state="restored"]) #start-button::before { content: 'Press Space to begin'; font: 600 12px/1.4 Arial,sans-serif; letter-spacing: .13em; text-transform: uppercase; }
.game-overlay[data-state="interlude"] #start-button::before { content: 'Press Space to continue'; }
.game-overlay:is([data-state="ready"],[data-state="interlude"],[data-state="restored"]) #start-button .arrow-icon { display: none; }
.game-overlay:is([data-state="ready"],[data-state="interlude"],[data-state="restored"]) #start-button:hover { background: #bdede50b; color: #fff4cc; }
.game-overlay:is([data-state="ready"],[data-state="interlude"],[data-state="restored"]) #start-button:focus-visible { outline: 1px solid #dac38a; outline-offset: 3px; }
@media (pointer:coarse) {
 .game-overlay[data-state="ready"] #start-button::before { content: 'Tap to begin'; }
 .game-overlay[data-state="interlude"] #start-button::before { content: 'Tap to continue'; }
}


/* One continuous console chassis; instruments sit in its recessed wells. */
body.breakline-page { background: linear-gradient(110deg,#3a5059 0,#273d48 2px,#21333e 21%,#293f49 60%,#1e313c calc(100% - 2px),#10222d); box-shadow: inset 0 1px 0 #a9c4cb44,inset 0 -1px 0 #07111a,inset 1px 0 0 #6e909744,inset -1px 0 0 #07111a; }
.playbar { background: linear-gradient(180deg,#8ca2a512,transparent 58%); border-bottom: 2px solid #091925; border-image: none; box-shadow: inset 0 -1px 0 #89a6ac38; }
.play-layout { background: transparent; }
.playbar .power-nameplate { border: 0; border-left: 2px solid #bca676; border-radius: 0; padding: 4px 11px 5px; background: transparent; box-shadow: none; color: #d6ebe8; text-shadow: 0 1px 1px #071720; }
.back-link { color: #acc7ce; }
.playbar-actions button { border: 1px solid #66818a77; border-bottom-color: #0b1c27; border-radius: 3px; background: linear-gradient(#2b434d,#20353f); color: #c9dcdf; box-shadow: inset 0 1px 0 #b9ced512,0 1px 0 #0e2029; }
.playbar-actions button:hover:not(:disabled) { border-color: #96b7bb; background: #324d56; color: #f1eedb; }
.bank-rack,.round-rail { border: 1px solid #0d202b; border-bottom-color: #6b84834a; border-right-color: #77939442; border-radius: 3px; background: linear-gradient(100deg,#0d202b,#132a36 46%,#10232e); box-shadow: inset 2px 2px 4px #020b1477,inset 0 0 0 1px #142c37,0 1px 0 #afc4bf0d; }
.bank-rack { border-right-color: #718b914d; }
.round-rail { border-left-color: #0b1d28; }
.arena-frame { border: 1px solid #76949b; border-bottom-color: #48656e; border-radius: 5px; background: linear-gradient(125deg,#667f86,#314c58 22%,#1b3542 64%,#425f67); box-shadow: inset 0 1px 0 #cfdfda44,inset 0 -1px 0 #0d2330,0 1px 0 #102631; }
.arena-wrap { border-color: #091c27; border-radius: 2px; }
.arena-frame::before,.arena-frame::after { border-radius: 5px; }
.wave-block,.run-record,.ship-status { border-color: #79979a2e; }
#score-value { text-shadow: 0 1px 0 #071722; }
.bank-rack.pack-full { border-color: #b6a777; box-shadow: inset 0 0 8px #a3e8d52d,inset 2px 2px 4px #020b1444; }
@media (max-width:800px) {
 .playbar .power-nameplate { padding: 3px 7px; }
 .bank-rack,.round-rail { border-radius: 3px; }
 .round-rail { border-top-color: #0b1d28; }
}

/* Relay Crown chapter presentation shares the cinematic opening language. */
.ship-status.relay-online .ship-relay { fill: #aeeffa; stroke: #e6fffb; }
.help-story-setting { display: flex; justify-content: center; align-items: center; gap: 8px; margin: 0 0 10px; color: #b7ccd6; font-size: 11px; line-height: 1.3; }
.help-story-setting input { width: 17px; height: 17px; margin: 0; accent-color: #a5ece4; }
.help-story-setting { justify-content: start; margin: 14px 0 0; }
.game-overlay[data-state="interlude"] .panel-controls { display: none; }

#game-overlay[hidden] { display: none; }

/* The restored ship offers real choices over the art, without a separate footer. */
.ship-drive.drive-online { fill: #1d4953; stroke: #8ceee5; }
.game-overlay[data-state="restored"] #start-button { min-width: 0; min-height: 44px; font: 600 12px/1.4 Arial,sans-serif; letter-spacing: .045em; }
.game-overlay[data-state="restored"] #start-button::before { content: none; }
.game-overlay[data-state="restored"] #restart-button { align-self: center; width: auto; min-height: 44px; margin: 2px 0 0; padding: 10px 18px; border: 1px solid transparent; background: transparent; color: #bccfd0; font: 600 11px/1.4 Arial,sans-serif; letter-spacing: .035em; text-shadow: 0 2px 6px #04101c; pointer-events: auto; }
.game-overlay[data-state="restored"] #restart-button:hover { background: #bdede50b; color: #fff4cc; }
.game-overlay[data-state="restored"] #restart-button:focus-visible { outline: 1px solid #dac38a; outline-offset: 3px; }

/* A completed ship remains an accomplishment when optional bonus play ends. */
.game-overlay[data-state="over"] .result-accomplishment { display: block; margin-top: 5px; color: #bde6d8; font: 600 11px/1.3 Arial,sans-serif; letter-spacing: .025em; text-transform: none; }
.game-overlay[data-state="over"] .result-best { color: #ffe09b; }

/* A shared milled faceplate connects the instruments when a saved arena
   leaves fitting space. These recesses never consume or resize play space. */
@media (min-width:801px) {
 .play-layout { position: relative; isolation: isolate; }
 .play-layout::before {
  content: ''; position: absolute; inset: 5px; z-index: -1; pointer-events: none;
  border: 1px solid #63808a66; border-bottom-color: #071b26;
  border-radius: 5px;
  background:
   linear-gradient(180deg,transparent calc(16% - 1px),#071e2970 16%,#94b1b122 calc(16% + 1px),transparent calc(16% + 2px)),
   linear-gradient(180deg,transparent calc(84% - 1px),#071e2970 84%,#94b1b122 calc(84% + 1px),transparent calc(84% + 2px)),
   linear-gradient(100deg,#304852,#263c46 32%,#2e454e 68%,#203741);
  box-shadow: inset 0 2px 0 #b6c8c128,inset 0 -2px 0 #06172088,inset 2px 0 0 #8ca8ac18,inset -2px 0 0 #07192266;
 }
 .game-stage::before {
  content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  border-inline: 1px solid #0d253166;
  background:
   linear-gradient(90deg,#0a202b55,transparent 12px,transparent calc(100% - 12px),#0a202b55),
   linear-gradient(180deg,#9bb4b318,transparent 9px,transparent calc(100% - 9px),#06172166);
  box-shadow: -1px 0 0 #93adb321,1px 0 0 #93adb321;
 }
}

/* Remembered chapter boards occupy the transition readout's existing row. */
.chapter-progress { grid-column: 1 / 3; grid-row: 4; display: flex; gap: 5px; align-items: center; align-self: center; height: 14px; margin-top: 5px; }
.chapter-progress[hidden] { display: none; }
.chapter-progress span { box-sizing: border-box; display: grid; place-items: center; flex: 1; height: 14px; border: 1px solid #405761; border-radius: 1px; background: #091b25; color: #829ca7; font: 600 10px/1 Arial,sans-serif; }
.chapter-progress .complete { background: #37555b; border-color: #789b9b; color: #d0e8df; }
.chapter-progress .current { border-color: #b1d9d9; border-bottom-width: 2px; color: #e4f3ed; }
.wave-block .wave-cue { grid-row: 4; }
.wave-cue:not([hidden]) + .chapter-progress { visibility: hidden; }

/* A deliberate restart is a small console choice, with Keep run first. */
.new-run-dialog { width: min(330px,calc(100vw - 40px)); padding: 22px; text-align: left; max-height: calc(100vh - 40px); }
.new-run-dialog::backdrop { background: #07121b70; }
.new-run-dialog h2 { font-size: 21px; margin-bottom: 10px; }
#new-run-summary { margin-bottom: 8px; color: #d5e9e3; font-weight: 700; font-variant-numeric: tabular-nums; }
#new-run-note { margin-bottom: 17px; font-size: 12px; line-height: 1.5; }
#keep-run-button span { color: #a3bdba; font-size: 10px; font-weight: 400; }

/* Earned field systems stay inside the existing ship instrument. */
.ship-fields { fill:none;stroke:#779d9d;stroke-width:1;opacity:.22; }
.ship-fields circle { stroke-dasharray:5 3; }
.ship-status.coils-online .ship-fields { stroke:#a4fff0;opacity:1;stroke-width:1.5; }
.ship-status.jump-online .ship-seam { stroke:#bedde3; }
.ship-status.jump-online .ship-drive-core { fill:#fff6c7; }

/* Temporary stage access uses the same compact ship-console treatment. */
.jump-dialog { width:min(710px,calc(100vw - 50px));max-height:calc(100vh - 64px);padding:23px;color:#d8e9e6;border:1px solid #799698;border-radius:3px;background:linear-gradient(120deg,#19303b,#0e202b);box-shadow:inset 0 1px 0 #bfd9d044,0 12px 40px #02091199; }
.jump-dialog::backdrop { background:#05111cb5; }
.jump-dialog h2 { font:400 24px/1.2 var(--display);margin:0 0 9px;color:#e1f0e6; }
.jump-dialog p { color:#abc3c7;font:12px/1.5 Arial,sans-serif;max-width:550px; }
.jump-dialog .jump-scenario { margin:16px 0 11px;color:#d8c795;font-weight:700; }
.jump-scenes { display:flex;align-items:center;gap:10px;margin:0 0 18px; }
.jump-scenes label { flex:0 0 auto;color:#bedddc;font:600 12px/1.3 Arial,sans-serif; }
.jump-scenes select { flex:1;min-width:0; }
.jump-scenes button { min-width:58px; }
#jump-chapters { display:grid;grid-template-columns:1fr 1fr;gap:14px 18px; }
#jump-chapters h3 { margin:0 0 6px;font:600 12px/1.3 Arial,sans-serif;color:#bedddc; }
.jump-levels { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px; }
.jump-dialog button,.jump-dialog select { min-height:44px;border:1px solid #58767c;border-bottom-color:#233c47;border-radius:2px;background:#223c46;color:#dcedea;font:600 11px/1.3 Arial,sans-serif;padding:8px;cursor:pointer; }
.jump-levels b { display:block;font:400 19px/1.2 var(--display);margin-bottom:4px;color:#d9e6bf; }
.jump-levels span { display:block;font-size:10px;font-weight:400; }
.jump-dialog button:hover { background:#34525a; }
.jump-dialog button:focus-visible,.jump-dialog select:focus-visible,.jump-dialog summary:focus-visible { outline:2px solid #d8c68f;outline-offset:2px; }
.jump-dialog button:disabled { opacity:.4;cursor:default; }
.jump-extras { margin-top:18px;border-top:1px solid #57777a66;padding-top:10px; }
.jump-extras summary { cursor:pointer;color:#b8d0d1;font:600 12px/1.4 Arial,sans-serif; }
.jump-extras>div { display:flex;gap:9px;align-items:center;margin-top:10px;font-size:12px; }
.jump-extras select { flex:1; }
.jump-dialog footer { display:flex;justify-content:flex-end;gap:10px;margin-top:17px; }
.jump-dialog [hidden] { display:none; }

/* Freight Dock uses the existing objective silhouette footprint. */
.dock-chassis { fill:url(#dock-status-metal);stroke:#8693ac;stroke-width:1; }
.dock-bevel { fill:#59617b;opacity:.55; }
.dock-seam { fill:none;stroke:#81929d;stroke-width:1;opacity:.55; }
.dock-berth { fill:#443f39;stroke:#625849;stroke-width:2; }
.dock-cargo { fill:#253d4c;stroke:#7e929e;stroke-width:1; }
.dock-cargo-detail { fill:none;stroke:#5d7986;stroke-width:1; }
.dock-arms { fill:none;stroke:#55777e;stroke-width:2.5; }
.dock-beacon-housing { fill:#203448;stroke:#7c8b9e;stroke-width:1; }
.dock-beacon { fill:none;stroke:#65567b;stroke-width:2; }
.ship-status.dock-berth-online .dock-berth { fill:#dac087;stroke:#edcc89; }
.ship-status.dock-lanes-online .dock-arms { stroke:#a0dadb; }
.ship-status.dock-lanes-online .dock-cargo-detail { stroke:#acc5c8; }
.ship-status.dock-beacon-online .dock-beacon { stroke:#dfc3ff; }
.ship-status.pack-powered .dock-chassis { stroke:#ffe098; }
.jump-scenario { margin:16px 0 5px;color:#d5dce3;font-size:13px;letter-spacing:.04em; }

/* Group a growing campaign without making the temporary picker a long wall. */
#jump-chapters { display:block; }
.jump-chapter-scenario { border-top:1px solid #58767c66;padding-top:10px;margin-top:12px; }
.jump-chapter-scenario>summary { cursor:pointer;color:#d8c795;font:600 13px/1.4 Arial,sans-serif;min-height:24px; }
.jump-scenario-levels { display:grid;grid-template-columns:1fr 1fr;gap:14px 18px;margin:12px 0 3px; }
.jump-current-key { color:#c6a6ef; }

/* The observatory occupies the existing objective readout, not arena space. */
.prism-support{fill:#284647;stroke:#7e9b99;stroke-width:1}
.prism-ring{stroke:#6c858b}
.prism-lens{fill:#142c35;stroke:#89a5ab;stroke-width:1.5}
.prism-facets{fill:none;stroke:#41616c;stroke-width:1}
.prism-ring-1 .prism-ring.first,.prism-ring-2 .prism-ring.second,.prism-ring-3 .prism-ring.third{stroke:#b7e7cc}
.ship-status.pack-powered .prism-support{stroke:#ffe098}
.help-offset{display:grid;grid-template-columns:160px 1fr;gap:15px;align-items:center;margin:20px 0;padding-top:16px;border-top:1px solid #58767c66}
.help-offset svg{width:160px;height:auto}.help-offset h3{margin:0 0 7px}.help-offset p{margin:0}
.help-offset[hidden]{display:none}

/* The earned lens wakes within the existing instrument readout. */
.prism-lens-waking .prism-facets{stroke:#abc6bb}
.prism-lens-focused .prism-lens{fill:#9fdbc9;stroke:#d6eee5}
.prism-lens-focused .prism-facets{stroke:#447d80}

/* Survey instruments share the earned observatory readout. */
.prism-survey{opacity:0;stroke:#ddc9f4}
.prism-survey-online .prism-survey{opacity:1}

/* Storm Harvester: recessed intake indicators retain the objective footprint. */
.harvester-deck{fill:#27363b;stroke:#a18b75;stroke-width:1.5}
.harvester-booms{fill:none;stroke:#596a72;stroke-width:6;stroke-linejoin:bevel}
.harvester-joints{fill:none;stroke:#a08b70;stroke-width:3}
.harvester-intake{fill:#102a32;stroke:#718c8e;stroke-width:1.5}
.harvester-seam{fill:none;stroke:#71858a;stroke-width:1.5}
.harvester-intake-1 .intake-one,.harvester-intake-2 .intake-two,.harvester-intake-3 .intake-three{fill:#a4dfdc;stroke:#e2f4df}
.ship-status.pack-powered .harvester-deck{stroke:#ffe098}

/* Collector arms unfold within the existing objective readout. */
.harvester-fan{display:none;fill:#273a3f;stroke:#93d4cf;stroke-width:1.6}
.harvester-arm-1 .arm-one,.harvester-arm-2 .arm-two,.harvester-arm-3 .arm-three{stroke:#a1dcd6}
.harvester-arm-1 .fan-one,.harvester-arm-2 .fan-two,.harvester-arm-3 .fan-three{display:block}

/* Earned induction crowns share the existing harvester objective. */
.harvester-core{display:none;fill:none;stroke:#f0d8a6;stroke-width:2.5;stroke-linejoin:bevel}
.harvester-core-1 .core-one,.harvester-core-2 .core-two,.harvester-core-3 .core-three{display:block}

/* Orbital Lock controls awaken in the same instrument footprint. */
.lock-pylon{fill:#263d43;stroke:#7b9697;stroke-width:1.5}
.lock-gate{fill:#172b33;stroke:#96adaa;stroke-width:2}
.lock-seams,.lock-aerial{fill:none;stroke:#677f82;stroke-width:1.5}
.lock-house{fill:#253d45;stroke:#a7aaa0;stroke-width:1.5}
.lock-window{fill:#10212c;stroke:#769795;stroke-width:1}
.lock-approach{fill:none;stroke:#425f60;stroke-width:2}
.lock-control-1 .window-one,.lock-control-2 .window-two,.lock-control-3 .window-three{fill:#ffe2ae;stroke:#fff0cd}
.lock-control-3 .lock-approach{stroke:#9ad7c6}

/* Earned lift mechanisms remain inside the existing lock readout. */
.lock-weight{fill:#30474d;stroke:#789693;stroke-width:1.5}
.lock-weight-1 .weight-left,.lock-weight-2 .weight-right{transform:translateY(-17px);fill:#94b6ab;stroke:#d6e8cd}
.lock-clamps{fill:none;stroke:#405962;stroke-width:4}
.lock-weight-3 .lock-clamps{stroke:#e0c89d;stroke-width:3}

/* The restored lock opens inside the existing compact objective. */
.lock-aperture{fill:#081922;stroke:#91bcb7;stroke-width:1.6}
.lock-open-1 .lock-aperture{rx:12px;ry:10px}
.lock-open-2 .lock-aperture{rx:22px;ry:19px}
.lock-open-3 .lock-aperture{rx:31px;ry:27px}
.lock-distant-stars{display:none}
.lock-open-3 .lock-distant-stars{display:block}

/* The ark's three root feeds wake within the established objective display. */
.seed-hull{fill:#283b38;stroke:#9cae91;stroke-width:1.6}
.seed-glass{fill:#142d31;stroke:#91aaa0;stroke-width:1.5}
.seed-ribs{fill:none;stroke:#4b6963;stroke-width:1.2}
.seed-feed{fill:#253c37;stroke:#577a6f;stroke-width:2}
.seed-pump-1 .feed-one,.seed-pump-2 .feed-two,.seed-pump-3 .feed-three{fill:#b1d6b5;stroke:#dbebbd}

/* Canopy baffles join the already powered root feeds in the same small readout. */
.seed-light{fill:none;stroke:#536b5e;stroke-width:2.5;stroke-linecap:round}
.seed-light-1 .light-one,.seed-light-2 .light-two,.seed-light-3 .light-three{stroke:#f0df9f}

/* Small archive cassettes complete the same ark readout beneath its canopy. */
.seed-vault{fill:#203b37;stroke:#617b70;stroke-width:1.3}
.seed-vault-1 .vault-one,.seed-vault-2 .vault-two,.seed-vault-3 .vault-three{fill:#c9b4dc;stroke:#f2e7d2}

/* A grounded excavator keeps earned joint warmth within the shared readout. */
.frost-track{fill:#1f3447;stroke:#8697a8;stroke-width:1.8}
.frost-tread{fill:none;stroke:#405e73;stroke-width:1.5}
.frost-body{fill:#3a4a5a;stroke:#bdc3c5;stroke-width:1.6}
.frost-cab{fill:#193a50;stroke:#899dad;stroke-width:1.5}
.frost-boom{fill:none;stroke:#8995a4;stroke-width:9;stroke-linecap:round;stroke-linejoin:round}
.frost-boom-inner{fill:none;stroke:#2a3e52;stroke-width:5;stroke-linecap:round;stroke-linejoin:round}
.frost-pivot{fill:#263a4d;stroke:#60778a;stroke-width:1.2}
.frost-joint{fill:#253950;stroke:#8398aa;stroke-width:2}
.frost-cutter{fill:#1c2b3c;stroke:#61798f;stroke-width:2}
.frost-cutter-teeth{fill:none;stroke:#61798f;stroke-width:3}
.frost-lock-1 .joint-one,.frost-lock-2 .joint-two,.frost-lock-3 .joint-three{fill:#d49a55;stroke:#ffe0a6}

/* Earned boom articulation stays inside the existing excavator readout. */
.frost-piston{fill:none;stroke:#49637a;stroke-width:2.5;stroke-linecap:round}
.frost-boom-1 .piston-one,.frost-boom-2 .piston-two{stroke:#adcfd1}
.frost-boom-1 .pivot-one,.frost-boom-2 .pivot-two,.frost-boom-3 .pivot-three{fill:#bbad7c;stroke:#f4dab1}
.frost-boom-3 .frost-boom-inner{stroke:#577384}

/* Cutter circuits awaken within the existing raised-arm silhouette. */
.frost-cutter-hub{fill:#233747;stroke:#40586e;stroke-width:1}
.frost-cutter-core{fill:none;stroke:#304a60;stroke-width:1.5}
.frost-cut-1 .frost-cutter{stroke:#90bfcc}
.frost-cut-2 .frost-cutter-hub{fill:#a0d8d5;stroke:#d4e6d7}
.frost-cut-2 .frost-cutter-core{stroke:#8ebfca}
.frost-cut-3 .frost-cutter{fill:#284f60;stroke:#bbdfdc}
.frost-cut-3 .frost-cutter-teeth{stroke:#d3bb88}

/* A cold crucible and three earned feed rails share the existing readout. */
.foundry-gantry{fill:none;stroke:#7b929f;stroke-width:3;stroke-linejoin:round}
.foundry-head{fill:#354553;stroke:#8c9da3;stroke-width:1.5}
.foundry-table{fill:#556672;stroke:#b1b8ad;stroke-width:1.5}
.foundry-table-recess{fill:#2e404d;stroke:#718892;stroke-width:1}
.foundry-vessel{fill:#394451;stroke:#aab0a8;stroke-width:1.8}
.foundry-rim{fill:#455563;stroke:#b6b6a6;stroke-width:1.6}
.foundry-hearth{fill:#162431}
.foundry-brace{fill:none;stroke:#5c7585;stroke-width:3}
.foundry-feed{fill:none;stroke:#385362;stroke-width:5;stroke-linecap:square;stroke-linejoin:round}
.foundry-inlet{fill:#2b404c;stroke:#71818a;stroke-width:1.2}
.foundry-louver{fill:none;stroke:#3c5665;stroke-width:1}
.foundry-feed-1 .feed-one,.foundry-feed-2 .feed-two,.foundry-feed-3 .feed-three{stroke:#b9955f}
.foundry-feed-1 .inlet-one,.foundry-feed-2 .inlet-two,.foundry-feed-3 .inlet-three{fill:#172933;stroke:#e6c897}
.foundry-feed-1 .louver-one,.foundry-feed-2 .louver-two,.foundry-feed-3 .louver-three{opacity:0}

/* Heat accumulates only in the earned crucible; head and casting well stay cold. */
.foundry-bath{fill:#bc955d;opacity:0;transform-origin:86px 27px;transform:scale(.3)}
.foundry-heat-1 .foundry-hearth{fill:#473a2d}
.foundry-heat-1 .foundry-bath{opacity:1}
.foundry-heat-2 .foundry-hearth{fill:#715032}
.foundry-heat-2 .foundry-bath{fill:#dfae68;transform:scale(.65)}
.foundry-heat-3 .foundry-hearth{fill:#b07a3f}
.foundry-heat-3 .foundry-bath{fill:#f5d896;transform:scale(1)}
.foundry-heat-3 .foundry-rim{stroke:#e0c397}

/* The casting head, clamps and formed ring retain the small physical readout. */
.foundry-active-head{fill:#586970;stroke:#d8be91;stroke-width:1.5;opacity:0}
.foundry-casting-support{fill:none;stroke:#a6aaa0;stroke-width:1.7;opacity:0}
.foundry-clamps{fill:none;stroke:#657b86;stroke-width:1.5;opacity:0}
.foundry-casting{fill:none;stroke:#efd3a1;stroke-width:2.4;opacity:0}
.foundry-cast-1 .foundry-head{opacity:0}
.foundry-cast-1 .foundry-active-head{opacity:1}
.foundry-cast-2 .foundry-clamps{stroke:#c8ac7f;opacity:1}
.foundry-cast-2 .foundry-table-recess{fill:#514439;stroke:#b99a6c}
.foundry-cast-3 .foundry-casting,.foundry-cast-3 .foundry-casting-support{opacity:1}
.foundry-cast-3 .foundry-table{stroke:#d7c2a1}

/* Opening intakes is the first earned restoration; main engines stay dark. */
.tide-sluice{fill:#253b47;stroke:#677d85;stroke-width:1.4}
.tide-pipes{fill:none;stroke:#6d6c61;stroke-width:5}
.tide-building{fill:#435963;stroke:#a8b7b5;stroke-width:1.6}
.tide-roof{fill:none;stroke:#829ca5;stroke-width:2}
.tide-engine{fill:#233944;stroke:#5f7b87;stroke-width:2}
.tide-deck{fill:#2d414b;stroke:#8ca0a4;stroke-width:1.5}
.tide-intake{fill:none;stroke:#97afb2;stroke-width:2.2}
.tide-mouth{fill:#152934}
.tide-gate{fill:#546b75;stroke:#91a6aa;stroke-width:1.2}
.tide-channel{fill:none;stroke:#325967;stroke-width:3}
.tide-intake-1 .gate-one,.tide-intake-2 .gate-two,.tide-intake-3 .gate-three{transform:translateY(-9px);stroke:#b8d8d8}
.tide-intake-1 .channel-one,.tide-intake-2 .channel-two,.tide-intake-3 .channel-three{stroke:#85c6cb}

/* Two pump crowns wake before the shared trunk; the upper sluice stays closed. */
.tide-pump-face{fill:#244750;stroke:#88c9c9;stroke-width:1.3;opacity:0}
.tide-riser{fill:#477f8a;stroke:#9bd1cf;stroke-width:1;opacity:0}
.tide-rotor{fill:none;stroke:#739492;stroke-width:1.5;opacity:0}
.tide-engine-1 .pump-one,.tide-engine-2 .pump-two{opacity:1}
.tide-engine-1 .rotor-one,.tide-engine-2 .rotor-two{opacity:1;stroke:#e0c8a0}
.tide-engine-3 .tide-pipes{stroke:#7cacae}
.tide-engine-3 .tide-riser{opacity:1}

/* The upper leaf retracts within its small fixed frame; earned machinery stays lit. */
.tide-sluice-frame{fill:#233a46;stroke:#879da5;stroke-width:1.2}
.tide-sluice-water{fill:#7bbec4;opacity:0}
.tide-sluice{transform-origin:80px 3px}
.tide-sluice-1 .tide-sluice-water{opacity:1}
.tide-sluice-1 .tide-sluice{transform:scaleY(.72)}
.tide-sluice-2 .tide-sluice{transform:scaleY(.44)}
.tide-sluice-3 .tide-sluice{transform:scaleY(.15);stroke:#b3d2d0}

/* Two released anchor drums earn a taut highline; the carrier stays dormant. */
.lift-pylon{fill:#465c60;stroke:#9fb7b1;stroke-width:1.5}
.lift-cable{fill:none;stroke:#74929a;stroke-width:1.5}
.cable-taut{opacity:0}
.lift-hangers,.lift-tethers{fill:none;stroke:#58747c;stroke-width:1.5}
.lift-pulley{fill:#38515a;stroke:#789594;stroke-width:1.3}
.lift-carrier{fill:#334c54;stroke:#7c9c9c;stroke-width:1.5}
.lift-window{fill:#1c303c}
.lift-drum{fill:#263e46;stroke:#8b9f9b;stroke-width:2}
.lift-hub{fill:none;stroke:#4c6570;stroke-width:1.5}
.lift-caliper{fill:none;stroke:#887866;stroke-width:3}
.lift-anchor-1 .drum-one,.lift-anchor-2 .drum-two{fill:#426e70;stroke:#c4d6be}
.lift-anchor-1 .hub-one,.lift-anchor-2 .hub-two{stroke:#dfc692}
.lift-anchor-1 .caliper-one{transform:translate(-4px,-2px)}
.lift-anchor-2 .caliper-two{transform:translate(4px,-2px)}
.lift-anchor-3 .cable-slack{opacity:0}
.lift-anchor-3 .cable-taut{opacity:1;stroke:#a9cbc7}

/* Cabin light, doorway and short boarding bridge restore the docked carrier. */
.lift-door{fill:#d5c796;stroke:#e3d3a9;stroke-width:1;opacity:0}
.lift-bridge{fill:#809691;stroke:#b7c8bb;stroke-width:1;opacity:0}
.lift-bridge-rail{fill:none;stroke:#aec3b6;stroke-width:1.2;opacity:0}
.lift-carrier-1 .lift-window{fill:#b8b68d}
.lift-carrier-2 .lift-door{opacity:1}
.lift-carrier-3 .lift-bridge,.lift-carrier-3 .lift-bridge-rail{opacity:1}

/* Far receiving beacon, safe bridge withdrawal, then the earned crossing. */
.lift-far-dock{fill:#344e57;stroke:#799491;stroke-width:1.2;opacity:0}
.lift-far-beacon{fill:#c4d8b5;opacity:0}
.lift-line-1 .lift-far-dock,.lift-line-1 .lift-far-beacon{opacity:1}
.lift-line-2 .lift-door{opacity:0}
.lift-line-2 .lift-bridge,.lift-line-2 .lift-bridge-rail{opacity:0}
.lift-line-3 .lift-travel{transform:translate(-68px,6px)}

/* The grounded walker earns its three lower coupling collars first. */
.walker-hull{fill:#69736c;stroke:#b5beac;stroke-width:1.5}
.walker-spine{fill:#435851;stroke:#8fa599;stroke-width:1.4}
.walker-engine{fill:#223b40;stroke:#6d8982;stroke-width:1.2}
.walker-window{fill:#263e41}
.walker-near-legs,.walker-far-legs{fill:none;stroke:#9aa98f;stroke-width:5;stroke-linejoin:round}
.walker-far-legs{stroke:#425b54;stroke-width:4}
.walker-collar{fill:#344945;stroke:#a28f67;stroke-width:2}
.walker-socket{fill:#253c3c;stroke:#657969;stroke-width:1}
.walker-coupler-1 .collar-one,.walker-coupler-2 .collar-two,.walker-coupler-3 .collar-three{fill:#46766d;stroke:#c4d3aa}
.walker-coupler-1 .socket-one,.walker-coupler-2 .socket-two,.walker-coupler-3 .socket-three{fill:#88c8b6;stroke:#cbe6cb}

/* Planted feet support the same hull as three hydraulic assemblies lift it. */
.walker-piston{fill:none;stroke:#a6d3c1;stroke-width:2.2;stroke-linecap:round;opacity:0}
.walker-stride-1 .piston-one,.walker-stride-2 .piston-two,.walker-stride-3 .piston-three{opacity:1}
.walker-stride-3 .walker-near-legs{stroke:#b0b9a2}

/* Three contained roof-drive cells earn the walker's first forward step. */
.walker-drive-cell{fill:#1c383c;opacity:0}
.walker-drive-1 .drive-one,.walker-drive-2 .drive-two,.walker-drive-3 .drive-three{fill:#c7ddbc;opacity:1}
.walker-drive-2 .walker-engine{fill:#446963;stroke:#a1bfb0}
.walker-drive-3 .walker-engine{fill:#527e71;stroke:#d8dfb8}

/* Three low receiver cassettes awaken below the still-dark main beacon. */
.wayfinder-base{fill:#34454e;stroke:#819d9d;stroke-width:1.4}
.wayfinder-tower{fill:#4a5c63;stroke:#a0b7b0;stroke-width:1.5}
.wayfinder-crown{fill:#7b827b;stroke:#b8bba9;stroke-width:1.5}
.wayfinder-beacon{fill:#182a36;stroke:#556970;stroke-width:1}
.wayfinder-brace{fill:none;stroke:#89968c;stroke-width:5}
.wayfinder-receiver{fill:#33414e;stroke:#9982ac;stroke-width:1.8}
.wayfinder-port{fill:#231e35;stroke:#6c5d7e;stroke-width:1}
.wayfinder-receiver-1 .receiver-one,.wayfinder-receiver-2 .receiver-two,.wayfinder-receiver-3 .receiver-three{fill:#625373;stroke:#c5b7d4}
.wayfinder-receiver-1 .port-one,.wayfinder-receiver-2 .port-two,.wayfinder-receiver-3 .port-three{fill:#b394d7;stroke:#ded1ec}

/* Earned physical opening of the existing vanes; the beacon stays dark. */
.wayfinder-crown.vane-left{transform-origin:65px 45px}
.wayfinder-crown.vane-right{transform-origin:95px 45px}
.wayfinder-vane-1 .vane-left{transform:rotate(-15deg)}
.wayfinder-vane-1 .vane-right{transform:rotate(15deg)}
.wayfinder-vane-2 .vane-left{transform:rotate(-30deg)}
.wayfinder-vane-2 .vane-right{transform:rotate(30deg)}
.wayfinder-vane-3 .vane-left{transform:rotate(-45deg)}
.wayfinder-vane-3 .vane-right{transform:rotate(45deg)}

/* The opened vanes frame three earned core circuits and a restrained signal. */
.wayfinder-core{fill:#182a36}
.wayfinder-signal{fill:none;stroke:#c4d6f0;stroke-width:1.3;opacity:0}
.wayfinder-core-1 .core-one,.wayfinder-core-2 .core-two,.wayfinder-core-3 .core-three{fill:#cad8ef}
.wayfinder-core-3 .wayfinder-beacon{stroke:#b6bddd}
.wayfinder-core-3 .wayfinder-signal{opacity:1}

/* Three lower archive shutters retract beneath the dormant memory drum. */
.echo-pier{fill:#58615f;stroke:#a3aaa1;stroke-width:1.4}
.echo-yoke{fill:none;stroke:#b0987b;stroke-width:3}
.echo-drum{fill:#293b43;stroke:#988b7c;stroke-width:3}
.echo-ring{fill:#182e39;stroke:#65777c;stroke-width:2}
.echo-core{fill:#112733;stroke:#42575c;stroke-width:1.5}
.echo-spokes{fill:none;stroke:#ad9677;stroke-width:2}
.echo-deck{fill:#3d5055;stroke:#a8aba0;stroke-width:1.6}
.echo-frame{fill:#142e38;stroke:#b99b76;stroke-width:2}
.echo-access{fill:#15323e}
.echo-shutter{fill:#58696d;stroke:#8d9a96;stroke-width:1.3}
.echo-ribs{fill:none;stroke:#a5aba1;stroke-width:1}
.echo-shutter.upper{transform-origin:0 56px}
.echo-shutter.lower{transform-origin:0 70px}
.echo-index-1 .shutter-one,.echo-index-2 .shutter-two,.echo-index-3 .shutter-three{transform:scaleY(.28)}
.echo-lock-hardware{opacity:0}
.echo-coupling{fill:none;stroke:#b18c69;stroke-width:1.4}
.echo-cell{fill:#8ac6cf;stroke:#d2e1d5;stroke-width:.7}
.echo-task-light{fill:none;stroke:#e2c698;stroke-width:1}
.echo-index-1 .hardware-one,.echo-index-2 .hardware-two,.echo-index-3 .hardware-three{opacity:1}
.echo-index-1 .ribs-one,.echo-index-2 .ribs-two,.echo-index-3 .ribs-three{opacity:0}
.echo-index-1 .access-one,.echo-index-2 .access-two,.echo-index-3 .access-three{fill:#173c46}

/* Open outer sleeves reveal three earned platter sectors; the core stays dark. */
.echo-platter{fill:#697e80;stroke:#b2a78e;stroke-width:1;opacity:0}
.echo-read-seam{fill:none;stroke:#92bcc2;stroke-width:1;opacity:0}
.echo-drum-1 .platter-one,.echo-drum-2 .platter-two,.echo-drum-3 .platter-three{opacity:1}
.echo-drum-1 .seam-one,.echo-drum-2 .seam-two,.echo-drum-3 .seam-three{opacity:1}

/* A small earned iris opening reveals the navigation mechanism inside the drum. */
.echo-navigation{opacity:0}
.echo-gimbal{fill:none;stroke:#c0a181;stroke-width:1.2}
.echo-route{fill:none;stroke:#79aeb7;stroke-width:.8}
.echo-route-point{fill:#bddade}
.echo-atlas-1 .echo-navigation{opacity:1}

/* Earned lower-air louvers open beneath Haven Spire's still-dormant habitat. */
.haven-rock{fill:#3e4a4d;stroke:#626d6a;stroke-width:1}
.haven-habitat,.haven-spire{fill:#b7b5a4;stroke:#d0c9b4;stroke-width:1.3}
.haven-roofs{fill:none;stroke:#b5a591;stroke-width:2}
.haven-windows{fill:none;stroke:#263e49;stroke-width:3}
.haven-riser{fill:#647b73;stroke:#ab9173;stroke-width:1.5}
.haven-copper{fill:none;stroke:#b9926e;stroke-width:1.8}
.haven-deck{fill:#4b6065;stroke:#a1aba1;stroke-width:1.4}
.haven-air-frame{fill:#172f3b;stroke:#aa8d73;stroke-width:1.5}
.haven-fan{fill:#335963;stroke:#bb9875;stroke-width:1.2}
.haven-fan path{fill:none;stroke-width:2.5}
.haven-louver{fill:#718083;stroke:#a0aaa0;stroke-width:1}
.haven-louver-lines{fill:none;stroke:#384f57;stroke-width:1.4}
.haven-air-light{fill:none;stroke:#667776;stroke-width:1.5}
.haven-air-1 .louver-one,.haven-air-2 .louver-two,.haven-air-3 .louver-three{transform:scaleY(.22);transform-origin:0 57px}
.haven-air-1 .lines-one,.haven-air-2 .lines-two,.haven-air-3 .lines-three{opacity:0}
.haven-air-1 .light-one,.haven-air-2 .light-two,.haven-air-3 .light-three{stroke:#9fc6c6}

/* Earned pressure work retracts the riser casing around three quiet chambers. */
.haven-riser{transform-box:fill-box;transform-origin:center}
.haven-riser-chamber{fill:#163d43;stroke:#bda07c;stroke-width:1.3}
.haven-pressure-pipe{fill:none;stroke:#a17e60;stroke-width:1.3}
.haven-pressure-cell{fill:#294e54;stroke:#77968d;stroke-width:.65}
.haven-pressure-1 .cell-one,.haven-pressure-2 .cell-two,.haven-pressure-3 .cell-three{fill:#a1d2d2;stroke:#d4e3cd}
.haven-pressure-3 .haven-pressure-pipe{stroke:#ceb08b}

/* Each restored residential circuit lights one recognizable bank of rooms. */
.haven-home-door{fill:#182f38;stroke:#9b927c;stroke-width:.8}
.haven-home-bridge{fill:none;stroke:#768c89;stroke-width:1.5}
.haven-habitation-1 .room-one,.haven-habitation-2 .room-two,.haven-habitation-3 .room-three{stroke:#e8cb93}
.haven-habitation-3 .haven-home-door{fill:#ebcc94;stroke:#f5e2b9}
.haven-habitation-3 .haven-home-bridge{stroke:#c9b995}

/* Three earned inlet shutters open below the dormant cistern and collectors. */
.skywell-support{fill:#43535b;stroke:#88948e;stroke-width:1.2}
.skywell-collector{fill:#99a9aa;stroke:#ccd1bd;stroke-width:1.3}
.skywell-ribs{fill:none;stroke:#7d989a;stroke-width:1.5}
.skywell-cistern{fill:#717e79;stroke:#b4a185;stroke-width:2.5}
.skywell-cistern-core{fill:#71878a;stroke:#b4a185;stroke-width:1.5}
.skywell-cistern-seam{fill:none;stroke:#405b61;stroke-width:1.5}
.skywell-deck{fill:#596d72;stroke:#b4b7a4;stroke-width:1.5}
.skywell-inlet-frame{fill:#182f39;stroke:#aa977d;stroke-width:1.3}
.skywell-inlet-water{fill:#7fa7b3;opacity:0}
.skywell-inlet-grille{fill:#758788;stroke:#abb3a6;stroke-width:1}
.skywell-inlet-slats{fill:none;stroke:#344e56;stroke-width:1.2}
.skywell-inlet-light{fill:none;stroke:#5d767a;stroke-width:1.2}
.skywell-inlet-1 .skywell-gate-one,.skywell-inlet-2 .skywell-gate-two,.skywell-inlet-3 .skywell-gate-three{transform:scaleY(.24);transform-origin:0 61px}
.skywell-inlet-1 .skywell-slats-one,.skywell-inlet-2 .skywell-slats-two,.skywell-inlet-3 .skywell-slats-three{opacity:0}
.skywell-inlet-1 .skywell-flow-one,.skywell-inlet-2 .skywell-flow-two,.skywell-inlet-3 .skywell-flow-three{opacity:1}
.skywell-inlet-1 .skywell-light-one,.skywell-inlet-2 .skywell-light-two,.skywell-inlet-3 .skywell-light-three{stroke:#d4c09b}

/* Earned shell openings reveal the cistern; the upper collector silhouette stays quiet. */
.skywell-reservoir-sector{opacity:0}
.skywell-reservoir-recess{fill:#193c49;stroke:#b39e80;stroke-width:1}
.skywell-reservoir-water{fill:#7aa7b8}
.skywell-reservoir-pipe{fill:none;stroke:#b3916e;stroke-width:1.1}
.skywell-reservoir-pump{fill:#577a81;stroke:#c5a582;stroke-width:1.2}
.skywell-cistern-1 .skywell-sector-one,.skywell-cistern-2 .skywell-sector-two,.skywell-cistern-3 .skywell-sector-three{opacity:1}

/* Restored collectors spread physically, while the cistern and inlets stay active. */
.skywell-collector-1 .skywell-vane-one,.skywell-collector-2 .skywell-vane-two,.skywell-collector-3 .skywell-vane-three{fill:#bdcdc5;stroke:#e2d9bb}
.skywell-collector-1 .skywell-rib-one,.skywell-collector-2 .skywell-rib-two,.skywell-collector-3 .skywell-rib-three{stroke:#749fa8}

/* Three shore terminals reconnect the moored ferry; cabin and pods remain quiet. */
.ferry-pod{fill:#263d48;stroke:#7b9093;stroke-width:1.2}
.ferry-hull{fill:#b2b8ad;stroke:#d4cdb7;stroke-width:1.6}
.ferry-cabin,.ferry-bridge{fill:#8eaaa9;stroke:#c4cbbb;stroke-width:1.2}
.ferry-window,.ferry-bridge-window{fill:#263e4b;stroke:#628087;stroke-width:.8}
.ferry-window-dividers{fill:none;stroke:#8b9890;stroke-width:1}
.ferry-hull-seam{fill:none;stroke:#798b86;stroke-width:1}
.ferry-coupling-frame{fill:#334c54;stroke:#ac8c68;stroke-width:1.5}
.ferry-terminal{fill:#9cbebe;stroke:#e6c296;stroke-width:1}
.ferry-shutter{fill:#9f9e89;stroke:#cfb993;stroke-width:.8}
.ferry-feed{fill:none;stroke:#675e4e;stroke-width:2}
.ferry-shore-1 .ferry-shutter-one,.ferry-shore-2 .ferry-shutter-two,.ferry-shore-3 .ferry-shutter-three{transform:scaleY(.22);transform-origin:0 54px}
.ferry-shore-1 .ferry-feed-one,.ferry-shore-2 .ferry-feed-two,.ferry-shore-3 .ferry-feed-three{stroke:#b89f70}

/* The exposed lift mechanisms power in turn; cabin and bridge remain dark. */
.ferry-lift-mechanisms{opacity:0}
.ferry-lift-chamber{fill:#263e48;stroke:#b49772;stroke-width:1.2}
.ferry-lift-core{fill:#365760;stroke:#bc9c75;stroke-width:1}
.ferry-lift-collar{fill:none;stroke:#c0ac8c;stroke-width:1.3}
.ferry-lift-1 .ferry-lift-mechanisms{opacity:1}
.ferry-lift-2 .ferry-lift-port,.ferry-lift-3 .ferry-lift-starboard{fill:#9dccd0;stroke:#c9e2db}

/* The moored ferry gains a lit passenger deck and an earned way aboard. */
.ferry-cabin-light{fill:#d6b880;opacity:0}
.ferry-cabin-1 .ferry-cabin-one,.ferry-cabin-2 .ferry-cabin-two,.ferry-cabin-3 .ferry-cabin-three{opacity:1}
.ferry-cabin-3 .ferry-bridge-window{fill:#ead09a;stroke:#dccdae}
.ferry-boarding{opacity:0}
.ferry-passenger-door{fill:#e0c38f;stroke:#9b9d8a;stroke-width:1}
.ferry-boarding-link{fill:none;stroke:#bba887;stroke-width:2.4;stroke-linejoin:round}
.ferry-cabin-3 .ferry-boarding{opacity:1}

/* Departure folds the boarding link, releases shore feeds, then clears the berth. */
.ferry-thrust{fill:none;stroke:#a3d1d0;stroke-width:1.6;stroke-linecap:round;opacity:0}
.ferry-departure-1 .ferry-passenger-door{fill:#344e57;stroke:#a9aa94}
.ferry-departure-2 .ferry-feed{opacity:.45}
.ferry-departure-3 .ferry-vessel{transform:translate(5px,-5px)}
.ferry-departure-3 .ferry-thrust{opacity:.8}

/* Three lower pilot-feed shutters open; the elevated lanterns remain unlit. */
.channel-water{fill:none;stroke:#587f8a;stroke-width:1;opacity:.65}
.channel-pylons{fill:#889a9b;stroke:#c4c5b5;stroke-width:1.4}
.channel-caps{fill:#889998;stroke:#c7b894;stroke-width:1.4}
.channel-lanterns{fill:#253b4c;stroke:#718c99;stroke-width:1}
.channel-trusses{fill:none;stroke:#556e76;stroke-width:1}
.channel-deck{fill:#698188;stroke:#b8b7a0;stroke-width:1.2}
.channel-frames{fill:#2c414b;stroke:#b38d64;stroke-width:1.5}
.channel-feed{fill:#b59a78;stroke:#dfc38f;stroke-width:1}
.channel-shutter{fill:#90998c;stroke:#c8b28c;stroke-width:1}
.channel-feed-1 .channel-shutter-one,.channel-feed-2 .channel-shutter-two,.channel-feed-3 .channel-shutter-three{transform:scaleY(.18);transform-origin:0 50px}
.channel-feed-1 .channel-feed-one,.channel-feed-2 .channel-feed-two,.channel-feed-3 .channel-feed-three{fill:#97c3bc;stroke:#e2c793}

/* Each small upper lantern opens onto its own copper reflector and glass lens. */
.channel-reflector{opacity:0}
.channel-copper{fill:#8d6d48;stroke:#d1b07c;stroke-width:1}
.channel-glass{fill:#628e9b;stroke:#add0ce;stroke-width:1}
.channel-glint{fill:none;stroke:#d3e3d7;stroke-width:1;opacity:.7}
.channel-pilot{fill:#ead19a}
.channel-cover{transform-box:fill-box;transform-origin:left center}
.channel-aligned-1 .channel-cover-one,.channel-aligned-2 .channel-cover-two,.channel-aligned-3 .channel-cover-three{transform:translateX(-1px) scaleX(.2)}
.channel-aligned-1 .channel-reflector-one,.channel-aligned-2 .channel-reflector-two,.channel-aligned-3 .channel-reflector-three{opacity:1}

/* The far range light opens, aligns its lens, then gains its earned beam. */
.channel-range-reflector,.channel-range-beam{opacity:0}
.channel-far-light{transform-box:fill-box;transform-origin:left center}
.channel-range-1 .channel-far-light{transform:translateX(-1px) scaleX(.18)}
.channel-range-1 .channel-range-reflector{opacity:1}
.channel-range-glass{fill:#344f60;stroke:#8aa6aa;stroke-width:1;transform-box:fill-box;transform-origin:center;transform:scaleX(.35)}
.channel-range-glint{fill:none;stroke:#c1d8d0;stroke-width:1;opacity:0}
.channel-range-core{fill:#273e50;stroke:#988966;stroke-width:.6}
.channel-range-2 .channel-range-glass{transform:scaleX(1);fill:#638995}
.channel-range-2 .channel-range-glint{opacity:.75}
.channel-range-3 .channel-range-core{fill:#ffebbc;stroke:#fff2d3}
.channel-range-beam{fill:#bee3da;stroke:#d5e9db;stroke-width:.5}
.channel-range-3 .channel-range-beam{opacity:.58}

/* Sounding Station retains its suspended bell while each lower seal opens. */
.sounding-water{fill:none;stroke:#557f89;stroke-width:1;opacity:.65}
.sounding-pylons,.sounding-gantry{fill:#7c999e;stroke:#b9c6bc;stroke-width:1.4}
.sounding-braces{fill:none;stroke:#405f6c;stroke-width:1.2}
.sounding-cables{fill:none;stroke:#bbc0a8;stroke-width:1.7}
.sounding-bell{fill:#8b9b94;stroke:#cbb998;stroke-width:1.4}
.sounding-bell-rim{fill:#665f57;stroke:#b18d66;stroke-width:1}
.sounding-window{fill:#263e50;stroke:#b99f77;stroke-width:1.5}
.sounding-deck{fill:#576f77;stroke:#a5b4ac;stroke-width:1.1}
.sounding-lock-frame{fill:#2d4652;stroke:#b1946e;stroke-width:1.4}
.sounding-seal{fill:#8f7962;stroke:#b5a588;stroke-width:1}
.sounding-cover{fill:#80968d;stroke:#c2b69b;stroke-width:1;transform-box:fill-box;transform-origin:left center}
.sounding-lock-1 .sounding-cover-one,.sounding-lock-2 .sounding-cover-two,.sounding-lock-3 .sounding-cover-three{transform:scaleX(.16)}
.sounding-lock-1 .sounding-seal-one,.sounding-lock-2 .sounding-seal-two,.sounding-lock-3 .sounding-seal-three{fill:#91c4bd;stroke:#dbbd87}

/* Earned ballast mechanisms share the station's copper/sea-green material. */
.sounding-ballast-frame{fill:#29444c;stroke:#ae9471;stroke-width:1}
.sounding-ballast-rotor{fill:#8f775b;stroke:#c9aa78;stroke-width:.8}
.sounding-ballast-blades{fill:none;stroke:#d0b080;stroke-width:1.8}
.sounding-ballast-cover{fill:#83978d;stroke:#c2b69b;stroke-width:1;transform-box:fill-box;transform-origin:left center}
.sounding-ballast-1 .sounding-ballast-left .sounding-ballast-cover,.sounding-ballast-2 .sounding-ballast-right .sounding-ballast-cover{transform:scaleX(.16)}
.sounding-ballast-3 .sounding-ballast-rotor{fill:#81b6b0;stroke:#e1c28c}
.sounding-ballast-3 .sounding-ballast-blades{stroke:#e0d39e}

/* Earned winch stages lower the same suspended bell without enlarging chrome. */
.sounding-winch-frame{fill:#2a4650;stroke:#b09872;stroke-width:1}
.sounding-winch-drum{fill:#8e785b;stroke:#c2a77b;stroke-width:1}
.sounding-winch-spindle{fill:none;stroke:#d4b588;stroke-width:1.3}
.sounding-winch-cover{fill:#869b91;stroke:#c8baa0;stroke-width:1;transform-box:fill-box;transform-origin:left center}
.sounding-winch-1 .sounding-winch-left .sounding-winch-cover,.sounding-winch-2 .sounding-winch-right .sounding-winch-cover{transform:scaleX(.16)}
.sounding-winch-3 .sounding-winch-drum{fill:#83b8b1;stroke:#e3c88f}
.sounding-winch-3 .sounding-window{fill:#d4d6b3;stroke:#ddbf89}
.sounding-winch-3 .sounding-bell-assembly{transform:translateY(10px)}
.sounding-winch-3 .sounding-cables{transform-box:fill-box;transform-origin:center top;transform:scaleY(1.715)}

/* The exchange's lower transfer seals awaken beneath a still-dormant gallery. */
.exchange-seabed{fill:none;stroke:#587d84;stroke-width:1;opacity:.65}
.exchange-shell{fill:#697d80;stroke:#a8b5ae;stroke-width:1.4}
.exchange-gallery{fill:#263c4f;stroke:#8d91a9;stroke-width:1.2}
.exchange-gallery-seams{fill:none;stroke:#677086;stroke-width:1}
.exchange-pipes{fill:none;stroke:#7c9695;stroke-width:3}
.exchange-hatch-frame{fill:#465b64;stroke:#a69a7a;stroke-width:1.4}
.exchange-main-hatch{fill:#76817e;stroke:#b3a68a;stroke-width:1}
.exchange-hatch-seam{fill:none;stroke:#4c6469;stroke-width:1.3}
.exchange-deck{fill:#465e66;stroke:#8faaa9;stroke-width:1.1}
.exchange-lock-frame{fill:#253e4c;stroke:#a78e6c;stroke-width:1.4}
.exchange-seal{fill:#846e57;stroke:#baa080;stroke-width:1}
.exchange-cover{fill:#738b86;stroke:#b7b098;stroke-width:1;transform-box:fill-box;transform-origin:left center}
.exchange-lock-1 .exchange-cover-one,.exchange-lock-2 .exchange-cover-two,.exchange-lock-3 .exchange-cover-three{transform:scaleX(.16)}
.exchange-lock-1 .exchange-seal-one,.exchange-lock-2 .exchange-seal-two,.exchange-lock-3 .exchange-seal-three{fill:#8cbdc0;stroke:#d6b788}

/* The central pressure hatch releases and opens; the upper gallery stays dark. */
.exchange-vestibule{fill:#27444a;stroke:#bc9870;stroke-width:1.3}
.exchange-inner-ribs{fill:none;stroke:#728f87;stroke-width:1}
.exchange-hatch-door{transform-box:fill-box;transform-origin:right center}
.exchange-hatch-latch{fill:#9f8f74;stroke:#d0bb93;stroke-width:.6}
.exchange-pressure-1 .exchange-hatch-latch-left{transform:translateX(-3px)}
.exchange-pressure-1 .exchange-hatch-latch-right{transform:translateX(3px)}
.exchange-pressure-2 .exchange-hatch-door{transform:translateX(1px) scaleX(.8)}
.exchange-pressure-3 .exchange-hatch-door{transform:translateX(3px) scaleX(.12)}
.exchange-pressure-3 .exchange-vestibule{fill:#665844;stroke:#d4b383}
.exchange-pressure-3 .exchange-inner-ribs{stroke:#baa789}

/* The upper station opens physically, then earns its quiet window light. */
.exchange-upper-windows{fill:#375761;stroke:#728b92;stroke-width:.8}
.exchange-upper-mullions{fill:none;stroke:#344a54;stroke-width:1.4}
.exchange-upper-shutter{fill:#263c4f;stroke:#8d91a9;stroke-width:.8}
.exchange-upper-cover{transform-box:fill-box}
.exchange-upper-cover-left{transform-origin:center top}
.exchange-upper-cover-right{transform-origin:center top}
.exchange-upper-1 .exchange-upper-cover-left{transform:translateY(-1px) scaleY(.14)}
.exchange-upper-2 .exchange-upper-cover-right{transform:translateY(-1px) scaleY(.14)}
.exchange-upper-3 .exchange-upper-windows{fill:#c6bc8e;stroke:#e0c79a}

/* Three earned clamp releases leave the cableworks' great drums dormant. */
.cable-seabed{fill:none;stroke:#567c82;stroke-width:1;opacity:.65}
.cable-frame,.cable-guide{fill:#617a7d;stroke:#adb4a0;stroke-width:1.3}
.cable-guide-head{fill:#425861;stroke:#a3987b;stroke-width:1.2}
.cable-guide-truss{fill:none;stroke:#3c5863;stroke-width:1.3}
.cable-drum{fill:#788884;stroke:#b9ac8e;stroke-width:1.7}
.cable-drum-core{fill:#425761;stroke:#9e8b72;stroke-width:1.2}
.cable-drum-spokes{fill:none;stroke:#788384;stroke-width:1.6}
.cable-strand{fill:none;stroke:#b59a6f;stroke-width:3}
.cable-clamp-seat{fill:#375462;stroke:#8c9d9e;stroke-width:1}
.cable-jaw{fill:#7d8f88;stroke:#c1b38e;stroke-width:1}
.cable-clamp-1 .cable-clamp-one .cable-jaw-left,.cable-clamp-2 .cable-clamp-two .cable-jaw-left,.cable-clamp-3 .cable-clamp-three .cable-jaw-left{transform:translateX(-4px)}
.cable-clamp-1 .cable-clamp-one .cable-jaw-right,.cable-clamp-2 .cable-clamp-two .cable-jaw-right,.cable-clamp-3 .cable-clamp-three .cable-jaw-right{transform:translateX(4px)}
.cable-clamp-1 .cable-clamp-one .cable-clamp-seat,.cable-clamp-2 .cable-clamp-two .cable-clamp-seat,.cable-clamp-3 .cable-clamp-three .cable-clamp-seat{fill:#729b95;stroke:#c9b586}

/* Earned drive covers reveal copper motors; the guide head remains dormant. */
.cable-motor-ring{fill:#876548;stroke:#c5a377;stroke-width:1.1}
.cable-motor-hub{fill:#465e66;stroke:#b39a6c;stroke-width:.8}
.cable-motor-winding{fill:none;stroke:#b59972;stroke-width:1.1}
.cable-motor-cover{fill:#596c70;stroke:#9d977c;stroke-width:1;transform-box:fill-box;transform-origin:left center}
.cable-drive-1 .cable-motor-left .cable-motor-cover,.cable-drive-2 .cable-motor-right .cable-motor-cover{transform:scaleX(.14)}
.cable-drive-3 .cable-motor-hub{fill:#8eb4aa;stroke:#e0c38c}
.cable-drive-3 .cable-motor-winding{stroke:#ddbd8e}
.cable-motor-pilot{fill:none;stroke:#91c7c0;stroke-width:1.4;stroke-dasharray:3 5;opacity:0}
.cable-drive-3 .cable-motor-pilot{opacity:1}

/* The earned guide wakes, takes the line, then sends it across the trench. */
.cable-guide-roller{fill:#8c795e;stroke:#c2a775;stroke-width:.5;opacity:0}
.cable-span-1 .cable-guide-head{fill:#607c7c;stroke:#bdbd98}
.cable-span-1 .cable-guide-roller{opacity:1;fill:#9fb9ab}
.cable-feed-line,.cable-outgoing-line{fill:none;stroke:#b79a72;stroke-width:2.5;stroke-linecap:round;opacity:0}
.cable-span-2 .cable-feed-line{opacity:1}
.cable-outgoing-rim{fill:none;stroke:#8b8970;stroke-width:3.8;opacity:0}
.cable-outgoing-line{stroke:#354c53;stroke-width:2.5}
.cable-far-receiver{fill:#91b0a4;stroke:#b2ab88;stroke-width:.6;opacity:0}
.cable-span-3 .cable-outgoing-line,.cable-span-3 .cable-outgoing-rim,.cable-span-3 .cable-far-receiver{opacity:1}

/* The balance motor wakes and lifts its weight; the main carrier stays low. */
.trench-seabed{fill:none;stroke:#5a7d85;stroke-width:1;opacity:.65}
.trench-incoming{fill:none;stroke:#938a6b;stroke-width:2.5}
.trench-frame{fill:#788c88;stroke:#b9b397;stroke-width:1.2}
.trench-braces{fill:none;stroke:#415e68;stroke-width:1.2}
.trench-pulley{fill:#5d6c6b;stroke:#b89c73;stroke-width:1}
.trench-carrier-cable,.trench-weight-cable{fill:none;stroke:#b0b29c;stroke-width:1.4}
.trench-cradle{fill:#415c65;stroke:#9b9e87;stroke-width:1}
.trench-weight,.trench-carrier{fill:#7c8d87;stroke:#c0b69c;stroke-width:1.2}
.trench-weight-ribs,.trench-carrier-seam{fill:none;stroke:#425d65;stroke-width:1.2}
.trench-window{fill:#243b4d;stroke:#728b90;stroke-width:1}
.trench-motor-frame{fill:#3b5260;stroke:#aa9473;stroke-width:1}
.trench-motor{fill:#77614e;stroke:#b99b74;stroke-width:1}
.trench-winding{fill:none;stroke:#b99a72;stroke-width:1}
.trench-motor-cover{fill:#7e8f87;stroke:#c1b394;stroke-width:1;transform-box:fill-box;transform-origin:center top}
.trench-balance-1 .trench-motor-cover{transform:translateY(-1px) scaleY(.13)}
.trench-balance-2 .trench-motor{fill:#9b89b0;stroke:#d8bb93}
.trench-balance-2 .trench-winding{stroke:#d1b2d8}
.trench-balance-3 .trench-counterweight{transform:translateY(-16px)}
.trench-balance-3 .trench-weight-cable{transform-box:fill-box;transform-origin:center top;transform:scaleY(.16)}

/* Warm carrier light, physical doors and a short earned threshold; no ascent. */
.trench-carrier-interior{fill:#344e55;stroke:#8e917e;stroke-width:.8}
.trench-carrier-floor{fill:none;stroke:#9c9e89;stroke-width:.8}
.trench-carrier-cargo{fill:#6c8a83;stroke:#b9a781;stroke-width:.6}
.trench-cargo-ribs{fill:none;stroke:#c1b18c;stroke-width:.6}
.trench-door-panel{fill:#7c8d87;stroke:#acb098;stroke-width:1}
.trench-door{transform-box:fill-box}
.trench-door-left{transform-origin:left center}
.trench-door-right{transform-origin:right center}
.trench-carrier-1 .trench-window{fill:#cec49c;stroke:#d9c69e}
.trench-carrier-2 .trench-door{transform:scaleX(.18)}
.trench-carrier-2 .trench-carrier-interior{fill:#74664e;stroke:#d0b78a}
.trench-carrier-2 .trench-carrier-floor{stroke:#baa98c}
.trench-threshold{fill:#84978d;stroke:#cbb98e;stroke-width:.8;opacity:0}
.trench-carrier-3 .trench-threshold{opacity:1}

/* The existing carrier rises only after its upper motors and lines are ready. */
.trench-upper-winding{fill:none;stroke:#d0ad78;stroke-width:1;opacity:0}
.trench-pulley-cover{fill:#5d6c6b;stroke:#b89c73;stroke-width:1;transform-box:fill-box;transform-origin:center top}
.trench-ascent-1 .trench-pulley-cover{transform:translateY(-1px) scaleY(.14)}
.trench-ascent-1 .trench-upper-winding{opacity:1}
.trench-ascent-1 .trench-pulley{fill:#9c7c55;stroke:#dbc397}
.trench-ascent-2 .trench-carrier-cable{stroke:#d1c5a6;stroke-width:1.7}
.trench-ascent-2 .trench-threshold{opacity:0}
.trench-ascent-3 .trench-carrier-assembly{transform:translateY(-24px)}
.trench-ascent-3 .trench-carrier-cable{transform-box:fill-box;transform-origin:center top;transform:scaleY(.226)}
.trench-ascent-3 .trench-counterweight{transform:translateY(-2px)}
.trench-ascent-3 .trench-weight-cable{transform:scaleY(.895)}

/* Rescue Raft keeps its shelter and recovery platform dormant at this chapter. */
.rescue-water{fill:none;stroke:#5d838b;stroke-width:1;opacity:.6}
.rescue-hull{fill:#526f73;stroke:#c6b794;stroke-width:1.4}
.rescue-rim{fill:none;stroke:#879d94;stroke-width:2}
.rescue-canopy{fill:#8a693b;stroke:#ba9660;stroke-width:1}
.rescue-folds{fill:none;stroke:#514c39;stroke-width:1.3}
.rescue-platform{fill:#344b55;stroke:#8b9890;stroke-width:1}
.rescue-platform-ribs{fill:none;stroke:#596b6b;stroke-width:1}
.rescue-crate{fill:#3e514f;stroke:#b1a77d;stroke-width:1.2}
.rescue-crate-ribs{fill:none;stroke:#829789;stroke-width:.8}
.rescue-cabinet{fill:#263e43;stroke:#ad9672;stroke-width:.8}
.rescue-cell{fill:#6d5a40;stroke:#998363;stroke-width:.7}
.rescue-cabinet-lid{fill:#617166;stroke:#b1a77d;stroke-width:.7;transform-box:fill-box;transform-origin:left center}
.rescue-link{fill:none;stroke:#475e59;stroke-width:1.5}
.rescue-reserves-1 .rescue-reserve-a .rescue-cell,.rescue-reserves-2 .rescue-reserve-b .rescue-cell{fill:#d2ae73;stroke:#eed3a2}
.rescue-reserves-1 .rescue-reserve-a .rescue-cabinet-lid,.rescue-reserves-2 .rescue-reserve-b .rescue-cabinet-lid{transform:translateX(-1px) scaleX(.12)}
.rescue-link-lamps{fill:none;stroke:#d2ad70;stroke-width:1.8;opacity:0}
.rescue-reserves-3 .rescue-link-lamps{opacity:1}

/* The rear shelter opens; the reserve cabinets and raised platform stay intact. */
.rescue-shelter-supports,.rescue-shelter-frame{fill:none;stroke:#b4ac8a;stroke-width:1.6;opacity:0}
.rescue-shelter-cloth{fill:#b18745;stroke:#d6b574;stroke-width:1;opacity:0}
.rescue-shelter-seams{fill:none;stroke:#876e40;stroke-width:1;opacity:0}
.rescue-shelter-1 .rescue-shelter-supports,.rescue-shelter-2 .rescue-shelter-frame{opacity:1}
.rescue-shelter-3 .rescue-shelter-cloth,.rescue-shelter-3 .rescue-shelter-seams{opacity:1}
.rescue-shelter-3 .rescue-canopy,.rescue-shelter-3 .rescue-folds{opacity:0}
.rescue-shelter-lamps{fill:#ddc08a;stroke:#aa9269;stroke-width:.7;opacity:0}
.rescue-shelter-3 .rescue-shelter-lamps{opacity:1}

/* Recovery hydraulics lower the same table before the access gangway deploys. */
.rescue-hydraulic-rest,.rescue-hydraulic-lowered{fill:none;stroke:#9da98c;stroke-width:2;opacity:0}
.rescue-hydraulic-power{fill:none;stroke:#d1af72;stroke-width:2.5;opacity:0}
.rescue-recovery-1 .rescue-hydraulic-rest,.rescue-recovery-1 .rescue-hydraulic-power{opacity:1}
.rescue-recovery-2 .rescue-hydraulic-rest{opacity:0}
.rescue-recovery-2 .rescue-hydraulic-lowered{opacity:1}
.rescue-recovery-2 .rescue-recovery-table{transform:translateY(8px)}
.rescue-gangway{fill:#647b78;stroke:#abb6a0;stroke-width:1;opacity:0}
.rescue-gangway-ribs,.rescue-gangway-rails{fill:none;stroke:#b3b79c;stroke-width:1;opacity:0}
.rescue-recovery-markers{fill:none;stroke:#d6bf80;stroke-width:1.6;opacity:0}
.rescue-recovery-3 .rescue-gangway,.rescue-recovery-3 .rescue-gangway-ribs,.rescue-recovery-3 .rescue-gangway-rails,.rescue-recovery-3 .rescue-recovery-markers{opacity:1}

/* Reserve power reaches the infirmary; its entrance and ward stay dormant. */
.infirmary-shore{fill:none;stroke:#658c8c;stroke-width:1;opacity:.6}
.infirmary-building{fill:#b5bba9;stroke:#d7d0ae;stroke-width:1.2}
.infirmary-roof{fill:#4e8a89;stroke:#a5bab0;stroke-width:1.1}
.infirmary-roof-ribs{fill:none;stroke:#3e6268;stroke-width:1}
.infirmary-upper{fill:#2a414c;stroke:#778d8a;stroke-width:1}
.infirmary-window-bars{fill:none;stroke:#8eaaa3;stroke-width:1}
.infirmary-arch{fill:#344c55;stroke:#d3c9a8;stroke-width:1.5}
.infirmary-door{fill:#615c49;stroke:#9a8b6a;stroke-width:1}
.infirmary-cabinet{fill:#3d504f;stroke:#a49270;stroke-width:1.2}
.infirmary-coils{fill:#6e5940;stroke:#a48b61;stroke-width:.8}
.infirmary-coil-ribs{fill:none;stroke:#bc9e68;stroke-width:1}
.infirmary-cover{fill:#b4b5a0;stroke:#d4c79f;stroke-width:1;transform-box:fill-box;transform-origin:left center}
.infirmary-feed{fill:none;stroke:#465f5d;stroke-width:1.5}
.infirmary-feed-lamps{fill:none;stroke:#dbbf82;stroke-width:1.7;opacity:0}
.infirmary-reserve-b .infirmary-cover{transform-origin:right center}
.infirmary-reserves-1 .infirmary-reserve-a .infirmary-cover{transform:translateX(-1px) scaleX(.12)}
.infirmary-reserves-2 .infirmary-reserve-b .infirmary-cover{transform:translateX(1px) scaleX(.12)}
.infirmary-reserves-1 .infirmary-reserve-a .infirmary-coils,.infirmary-reserves-2 .infirmary-reserve-b .infirmary-coils{fill:#bd9b61;stroke:#e4c992}
.infirmary-reserves-3 .infirmary-feed-lamps{opacity:1}

/* Reserve power wakes the ward windows and small vents; the entrance stays closed. */
.infirmary-ward-left,.infirmary-ward-right{fill:#c1ae81;opacity:0}
.infirmary-ward-beds{fill:#ddd6b9;stroke:#998e74;stroke-width:.65;opacity:0}
.infirmary-roof-vents{opacity:0}
.infirmary-vent-slots{fill:#29454a;stroke:#709b94;stroke-width:.6}
.infirmary-vent-lids{fill:#80aaa0;stroke:#bed0b7;stroke-width:.7}
.infirmary-wards-1 .infirmary-ward-left,.infirmary-wards-2 .infirmary-ward-right,.infirmary-wards-2 .infirmary-ward-beds,.infirmary-wards-3 .infirmary-roof-vents{opacity:1}

/* The final approach opens within the existing infirmary miniature. */
.infirmary-entrance-light,.infirmary-open-leaves,.infirmary-threshold-light,.infirmary-access{opacity:0}
.infirmary-entrance-light{fill:#c5a970;stroke:#e2c898;stroke-width:.6}
.infirmary-open-leaves{fill:#71664e;stroke:#b2a380;stroke-width:.8}
.infirmary-threshold-light{fill:none;stroke:#d4c59a;stroke-width:1.2}
.infirmary-access{fill:#b0b8a3;stroke:#8eaa9e;stroke-width:.6}
.infirmary-entrance-1 .infirmary-threshold-light,.infirmary-entrance-2 .infirmary-entrance-light,.infirmary-entrance-2 .infirmary-open-leaves,.infirmary-entrance-3 .infirmary-access{opacity:1}
.infirmary-entrance-2 .infirmary-door{opacity:0}
/* Keep the last restored place behind its compact earned result. */
.game-overlay.journey-result{background:#0a1522;backdrop-filter:none}
.game-overlay.journey-result .story-art{display:block;position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.game-overlay.journey-result .outcome-panel{position:relative;z-index:1}

/* Continuation 228: instrument type and painted console refinements.
   Box allocation, media-query dimensions and cinematic captions are unchanged. */
@font-face {
 font-family: 'Power Banks Instrument'; font-style: normal; font-weight: 200 800;
 font-display: swap; src: url('/assets/fonts/oxanium-latin-v21.woff2') format('woff2');
}
body.breakline-page {
 --instrument: 'Power Banks Instrument','Trebuchet MS',Arial,sans-serif;
 --readout-main: #f1dfb4;
 --readout-cool: #c6e2e7;
 --readout-label: #a8bec8;
 --readout-secondary: #96aebc;
}
#score-value,#round-number,#bank-total,#banks-full,.run-record strong,
.result-stat-text b,.game-overlay[data-state="over"] .result-number,
.jump-levels b,#lives-count,.chapter-progress span,#new-run-summary {
 font-family: var(--instrument); font-weight: 600;
 font-variant-numeric: lining-nums tabular-nums; font-feature-settings: "tnum" 1,"lnum" 1;
}
#score-value {
 font-weight: 600; color: var(--readout-main); letter-spacing: -.035em;
 text-shadow: 0 1px 1px #020c14;
}
#round-number { font-weight: 500; color: var(--wave-accent); }
#bank-total,#banks-full,.result-stat-text b { color: var(--readout-cool); }
.run-record strong { color: #c3ccd1; font-weight: 500; letter-spacing: -.015em; }
#lives-count { color: #e1eef0; }
.rail-label,.run-record span { color: var(--readout-label); letter-spacing: .1em; }
#round-band { color: #c7dadd; font-weight: 600; }
#formation-name,#wave-size,#bank-batch,#shield-status { color: var(--readout-secondary); }
#shield-status.charged { color: #eed6a0; }
#ship-status-label { color: #a8c2c8; }
.pack-reward .rail-label,.pack-reward #lives-count { color: #ffe098; }
.game-overlay[data-state="over"] .result-number { color: var(--readout-main); letter-spacing: -.025em; }
.game-overlay[data-state="over"].new-best .result-number,
.game-overlay[data-state="over"] .result-best { color: #ffe2a5; }
.game-overlay[data-state="over"] .result-unit,.result-stat-text > span { color: #aac2ca; }
.help-heading h2,.help-dialog h3,.outcome-panel h2,.jump-dialog h2,
.game-overlay:is([data-state="ready"],[data-state="interlude"],[data-state="restored"]) .outcome-panel h2 {
 font-family: var(--instrument); font-weight: 600; letter-spacing: .015em;
}
.playbar-actions button,.jump-dialog button,.jump-dialog select {
 font-family: var(--instrument); font-weight: 600; letter-spacing: .01em;
}
.jump-levels b { color: #d4e7de; }
.chapter-progress span { color: #9db3bd; }
.chapter-progress .complete { color: #d4e8e1; }
.chapter-progress .current { color: #edf5ef; border-color: var(--wave-accent); }

/* A recessed glass score face adds no padding, border or layout space. */
.score-block { position: relative; }
.score-block::before {
 content: ''; position: absolute; inset: -7px -8px; pointer-events: none;
 border-radius: 2px;
 background: linear-gradient(115deg,#b5dfeb08,transparent 47%),linear-gradient(180deg,#06131a26,transparent);
 box-shadow: inset 0 1px 0 #b9d4dc13,inset 0 -1px 0 #020b1466;
}
.score-block::after {
 content: ''; position: absolute; top: 4px; right: 0; width: 3px; height: 3px;
 pointer-events: none; border-radius: 50%; background: var(--wave-accent);
 box-shadow: 0 0 4px var(--wave-accent); opacity: .62;
}
@media (prefers-reduced-motion:no-preference) {
 .score-block::after { animation: instrument-powered 4.8s ease-in-out infinite; }
 @keyframes instrument-powered { 0%,100% { opacity: .45; } 50% { opacity: .82; } }
}
body:has(.arena-frame.is-paused) .score-block::after,
body:has(#game-overlay:not([hidden])) .score-block::after { animation: none; opacity: .45; }

/* Freight Dock: the casing shares the floor's steel, ochre and violet.
   These selectors never alter other chapters' chrome or authored accents. */
body.breakline-page.freight-dock-console {
 background: linear-gradient(110deg,#52515a 0,#373b45 2px,#292e37 21%,#343941 60%,#252a34 calc(100% - 2px),#171e29);
 box-shadow: inset 0 1px 0 #ccd0d034,inset 0 -1px 0 #101620,inset 1px 0 0 #90949b38,inset -1px 0 0 #0d1320;
 --readout-main: #eddbb0; --readout-cool: #c9d9e4;
 --readout-label: #b4bcc8; --readout-secondary: #a1adbf;
}
.freight-dock-console .playbar {
 background: linear-gradient(180deg,#b5ad9b10,transparent 58%);
 border-bottom-color: #121722; box-shadow: inset 0 -1px 0 #a990593b;
}
.freight-dock-console .playbar .power-nameplate { border-left-color: #b49a62; color: #e1e3e4; }
.freight-dock-console .back-link { color: #bdc7d3; }
.freight-dock-console .back-link:hover { color: #eee0b5; }
.freight-dock-console .playbar-actions button {
 border-color: #7f849163; border-bottom-color: #131a24;
 background: linear-gradient(#3d424d,#2b313c); color: #d7dce3;
 box-shadow: inset 0 1px 0 #dbd5ca12,0 1px 0 #141b23;
}
.freight-dock-console .playbar-actions button:hover:not(:disabled) {
 border-color: #b3a07f; background: #454855; color: #f1e7cf;
}
.freight-dock-console .bank-rack,.freight-dock-console .round-rail {
 border-color: #151c27; border-bottom-color: #a1988140; border-right-color: #8e92a044;
 background: linear-gradient(100deg,#171e2a,#202936 46%,#1b2330);
 box-shadow: inset 2px 2px 4px #070c1777,inset 0 0 0 1px #2e354112,0 1px 0 #d0c7ab0d;
}
.freight-dock-console .arena-frame {
 border-color: #87878e; border-bottom-color: #67616a;
 background: linear-gradient(125deg,#797b80,#454d59 22%,#293342 64%,#62616a);
 box-shadow: inset 0 1px 0 #ded8c544,inset 0 -1px 0 #161d2c,0 1px 0 #171f2a;
}
.freight-dock-console .arena-wrap { border-color: #101724; }
.freight-dock-console .wave-block,.freight-dock-console .run-record,
.freight-dock-console .ship-status { border-color: #9da4b62c; }
.freight-dock-console .chapter-progress span { background: #111c2b; border-color: #53606e; }
.freight-dock-console .chapter-progress .complete { background: #44454d; border-color: #948970; color: #e4dbc5; }
.freight-dock-console .chapter-progress .current { border-color: #bfafe0; color: #ece5f8; }
.freight-dock-console .bank-rack.pack-full {
 border-color: #c0a772; box-shadow: inset 0 0 8px #d4bf872d,inset 2px 2px 4px #020b1444;
}
.freight-dock-console .dock-beacon-online .dock-beacon { filter: drop-shadow(0 0 1.5px #bba0ed77); }
@media (min-width:801px) {
 .freight-dock-console .play-layout::before {
  border-color: #85889466; border-bottom-color: #111924;
  background:
   linear-gradient(180deg,transparent calc(16% - 1px),#111b2870 16%,#cac3ad1f calc(16% + 1px),transparent calc(16% + 2px)),
   linear-gradient(180deg,transparent calc(84% - 1px),#111b2870 84%,#cab98c24 calc(84% + 1px),transparent calc(84% + 2px)),
   linear-gradient(100deg,#414550,#313844 32%,#3b3f4b 68%,#2b323e);
  box-shadow: inset 0 2px 0 #d3cbb028,inset 0 -2px 0 #0c142088,inset 2px 0 0 #a6a1b018,inset -2px 0 0 #11182a66;
 }
}


/* Continuation 229: Relay Ship casing, scoped to its authored scenario.
   Paint only: existing box sizes, instrument type and chapter accents remain. */
body.breakline-page.relay-ship-console {
 background: linear-gradient(110deg,#465466 0,#2c3a4c 2px,#202c3c 21%,#293648 60%,#1d2838 calc(100% - 2px),#111b2a);
 box-shadow: inset 0 1px 0 #c2ccd62b,inset 0 -1px 0 #080f1a,inset 1px 0 0 #ac896234,inset -1px 0 0 #0b1421;
 --readout-main: #edddba; --readout-cool: #d0dfe7;
 --readout-label: #b0becb; --readout-secondary: #9eadbf;
}
.relay-ship-console .playbar {
 background: linear-gradient(180deg,#b5c4d20d,transparent 58%);
 border-bottom-color: #0b1421; box-shadow: inset 0 -1px 0 #b28a5933;
}
.relay-ship-console .playbar .power-nameplate { border-left-color: #af8b58; color: #dce1e5; }
.relay-ship-console .back-link { color: #bdc8d3; }
.relay-ship-console .back-link:hover { color: #ece3cf; }
.relay-ship-console .playbar-actions button {
 border-color: #83909f5c; border-bottom-color: #0b1421;
 background: linear-gradient(#354459,#253247); color: #d8dfe5;
 box-shadow: inset 0 1px 0 #d2d9df12,0 1px 0 #0d1725;
}
.relay-ship-console .playbar-actions button:hover:not(:disabled) {
 border-color: #ab9678; background: #3b4a60; color: #f0e9db;
}
.relay-ship-console .bank-rack,.relay-ship-console .round-rail {
 border-color: #0b1421; border-bottom-color: #a48b6540; border-right-color: #8593a442;
 background: linear-gradient(100deg,#0e1827,#172437 46%,#101c2c);
 box-shadow: inset 2px 2px 4px #03091480,inset 0 0 0 1px #647a9012,0 1px 0 #cdbb990d;
}
.relay-ship-console .score-block::before {
 background: linear-gradient(115deg,#c2dae809,transparent 47%),linear-gradient(180deg,#030b184d,#09152414);
 box-shadow: inset 0 1px 0 #b3c7d41a,inset 0 -1px 0 #b38d4e24,inset 0 2px 3px #01071333;
}
.relay-ship-console .score-block::after { box-shadow: 0 0 2px var(--wave-accent); }
.relay-ship-console .arena-frame {
 border-color: #78889b; border-bottom-color: #75664f;
 background: linear-gradient(125deg,#66768a,#35465b 22%,#1f2e43 64%,#655b4d);
 box-shadow: inset 0 1px 0 #d3dbe038,inset 0 -1px 0 #101a29,0 1px 0 #0d1725;
}
.relay-ship-console .arena-wrap { border-color: #0a1220; }
.relay-ship-console .wave-block,.relay-ship-console .run-record,
.relay-ship-console .ship-status { border-color: #ac94722b; }
.relay-ship-console #round-band { color: #cbd5df; }
.relay-ship-console #ship-status-label { color: #aebdcb; }
.relay-ship-console .chapter-progress span { background: #0b1626; border-color: #506076; }
.relay-ship-console .chapter-progress .complete { background: #394352; border-color: #9b8766; color: #e3d7bf; }
.relay-ship-console .bank-rack.pack-full {
 border-color: #b8a071; box-shadow: inset 0 0 6px #dcc08921,inset 2px 2px 4px #02081255;
}
@media (min-width:801px) {
 .relay-ship-console .play-layout::before {
  border-color: #7b889966; border-bottom-color: #0b1523;
  background:
   linear-gradient(180deg,transparent calc(16% - 1px),#0b142270 16%,#b9946121 calc(16% + 1px),transparent calc(16% + 2px)),
   linear-gradient(180deg,transparent calc(84% - 1px),#0b142270 84%,#b9946121 calc(84% + 1px),transparent calc(84% + 2px)),
   linear-gradient(100deg,#354357,#28364a 32%,#324056 68%,#243247);
  box-shadow: inset 0 2px 0 #c4cfda24,inset 0 -2px 0 #070f1d88,inset 2px 0 0 #a8927018,inset -2px 0 0 #0b142466;
 }
}

/* Continuation 230: Prism Observatory console, scoped to authored boards 25–33.
   Paint only. Existing geometry, instrument fonts, chapter accents and earned
   status/reward rules remain authoritative. Pearl titanium ribs surround dark
   optical glass; brass is confined to small joints and edge hardware. */
body.breakline-page.prism-console {
 background: linear-gradient(110deg,#697476 0,#414c4e 2px,#303c3e 21%,#3b4749 60%,#2b373a calc(100% - 2px),#182529);
 box-shadow: inset 0 1px 0 #d9e0df35,inset 0 -1px 0 #0a1418,inset 1px 0 0 #a2aaa63d,inset -1px 0 0 #111d21;
 --readout-main: #dce9e8; --readout-cool: #c9e2de;
 --readout-label: #b4c3c3; --readout-secondary: #a2b8b8;
}
.prism-console .playbar {
 background: linear-gradient(180deg,#d1dedb0e,transparent 58%);
 border-bottom-color: #101b20; box-shadow: inset 0 -1px 0 #a3947033;
}
.prism-console .playbar .power-nameplate { border-left-color: #ab9b76; color: #dee6e5; }
.prism-console .back-link { color: #c0cecc; }
.prism-console .back-link:hover { color: #edf2ec; }
.prism-console .playbar-actions button {
 border-color: #a2aeac58; border-bottom-color: #121e21;
 background: linear-gradient(#4b5759,#354346); color: #dce5e3;
 box-shadow: inset 0 1px 0 #e1e6df17,0 1px 0 #121e22;
}
.prism-console .playbar-actions button:hover:not(:disabled) {
 border-color: #b9beb2; background: #556366; color: #f0f3ed;
}
.prism-console .bank-rack,.prism-console .round-rail {
 border-color: #0e1d20; border-bottom-color: #a7997740; border-right-color: #9daaa449;
 background: linear-gradient(100deg,#101f25,#192d32 46%,#12252b);
 box-shadow: inset 2px 2px 4px #040f137d,inset 0 0 0 1px #8ba39a10,0 1px 0 #d1d6c811;
}
.prism-console .score-block::before {
 background: linear-gradient(115deg,#c8e1d90b,transparent 47%),linear-gradient(180deg,#0417114a,#0a211914);
 box-shadow: inset 0 1px 0 #c2d4c923,inset 0 -1px 0 #a18d6026,inset 0 2px 3px #010d103d;
}
.prism-console .score-block::after { box-shadow: 0 0 2px var(--wave-accent); }
.prism-console .arena-frame {
 border-color: #adb8b5; border-bottom-color: #747c74;
 background: linear-gradient(125deg,#9ca8a7,#63716f 22%,#334447 64%,#7e8378);
 box-shadow: inset 0 1px 0 #e4e7dd4a,inset 0 -1px 0 #172327,0 1px 0 #132026;
}
.prism-console .arena-wrap { border-color: #0b1a1f; }
.prism-console .wave-block,.prism-console .run-record,
.prism-console .ship-status { border-color: #bac3b62b; }
.prism-console #round-band { color: #d0dcda; }
.prism-console #ship-status-label { color: #b4cbc4; }
.prism-console .chapter-progress span { background: #102429; border-color: #657f7a; }
.prism-console .chapter-progress .complete { background: #374d4b; border-color: #a3b3a1; color: #deebe2; }
.prism-console .bank-rack.pack-full {
 border-color: #b4aa88; box-shadow: inset 0 0 6px #d7cc9b21,inset 2px 2px 4px #04121555;
}
@media (min-width:801px) {
 .prism-console .play-layout::before {
  border-color: #a4afaa70; border-bottom-color: #111f23;
  background:
   linear-gradient(180deg,transparent calc(16% - 1px),#0d1c2070 16%,#b3a27826 calc(16% + 1px),transparent calc(16% + 2px)),
   linear-gradient(180deg,transparent calc(84% - 1px),#0d1c2070 84%,#b3a27826 calc(84% + 1px),transparent calc(84% + 2px)),
   linear-gradient(100deg,#4d5a5b,#39494c 32%,#465758 68%,#34464a);
  box-shadow: inset 0 2px 0 #d7e0d931,inset 0 -2px 0 #0b171c88,inset 2px 0 0 #c7c7b31a,inset -2px 0 0 #12222766;
 }
}

/* Continuation 231: Storm Harvester console, scoped to authored boards 34–42.
   Paint only. Graphite casing, bronze seams and pale ceramic edge hardware
   echo the intake platform. Existing instrument type, dimensions, chapter
   accents and earned status/reward rules remain authoritative. */
body.breakline-page.harvester-console {
 background: linear-gradient(110deg,#625c53 0,#3c3d3d 2px,#2b3033 21%,#353b3e 60%,#262d31 calc(100% - 2px),#171e23);
 box-shadow: inset 0 1px 0 #d1c6ad2d,inset 0 -1px 0 #0b1115,inset 1px 0 0 #b38b593d,inset -1px 0 0 #111a1e;
 --readout-main: #eadac0; --readout-cool: #cce2e0;
 --readout-label: #bdbdb6; --readout-secondary: #aab8bc;
}
.harvester-console .playbar {
 background: linear-gradient(180deg,#d3c4a30d,transparent 58%);
 border-bottom-color: #10191d; box-shadow: inset 0 -1px 0 #b58b5936;
}
.harvester-console .playbar .power-nameplate { border-left-color: #b28a55; color: #e3e1d6; }
.harvester-console .back-link { color: #c5c8c4; }
.harvester-console .back-link:hover { color: #efe0c5; }
.harvester-console .playbar-actions button {
 border-color: #a6a18f54; border-bottom-color: #11191d;
 background: linear-gradient(#454b4b,#313a3e); color: #dfdfd4;
 box-shadow: inset 0 1px 0 #e3d7be16,0 1px 0 #10191e;
}
.harvester-console .playbar-actions button:hover:not(:disabled) {
 border-color: #b6a082; background: #515650; color: #f3e8d3;
}
.harvester-console .bank-rack,.harvester-console .round-rail {
 border-color: #111a20; border-bottom-color: #b58b5943; border-right-color: #aba28a43;
 background: linear-gradient(100deg,#111c22,#1b292e 46%,#142127);
 box-shadow: inset 2px 2px 4px #050d1280,inset 0 0 0 1px #a5b7ae0d,0 1px 0 #d6c39c10;
}
.harvester-console .score-block::before {
 background: linear-gradient(115deg,#c6dcd30a,transparent 47%),linear-gradient(180deg,#06101459,#10202514);
 box-shadow: inset 0 1px 0 #c3cdbd1c,inset 0 -1px 0 #b48a5928,inset 0 2px 3px #01080d40;
}
/* One existing utility lamp carries warmth without tinting gameplay signals. */
.harvester-console .score-block::after { background: #d5ac70; box-shadow: 0 0 2px #d5ac704d; }
.harvester-console .arena-frame {
 border-color: #a59f8e; border-bottom-color: #77644e;
 background: linear-gradient(125deg,#9c9d92,#596367 22%,#2d3b43 64%,#7a6953);
 box-shadow: inset 0 1px 0 #e1dcc944,inset 0 -1px 0 #131e24,0 1px 0 #10191f;
}
.harvester-console .arena-wrap { border-color: #0b171d; }
.harvester-console .wave-block,.harvester-console .run-record,
.harvester-console .ship-status { border-color: #b3956e2d; }
.harvester-console #round-band { color: #d3dad4; }
.harvester-console #ship-status-label { color: #b9c8c3; }
.harvester-console .chapter-progress span { background: #13232a; border-color: #66756f; }
.harvester-console .chapter-progress .complete { background: #414846; border-color: #a89573; color: #e4ddc8; }
.harvester-console .bank-rack.pack-full {
 border-color: #bea272; box-shadow: inset 0 0 6px #d9bd8921,inset 2px 2px 4px #040d1455;
}
@media (min-width:801px) {
 .harvester-console .play-layout::before {
  border-color: #a1998270; border-bottom-color: #111b21;
  background:
   linear-gradient(180deg,transparent calc(16% - 1px),#101a2178 16%,#b78b562a calc(16% + 1px),transparent calc(16% + 2px)),
   linear-gradient(180deg,transparent calc(84% - 1px),#101a2178 84%,#b78b562a calc(84% + 1px),transparent calc(84% + 2px)),
   linear-gradient(100deg,#434b4d,#303e45 32%,#3c484d 68%,#2c3b43);
  box-shadow: inset 0 2px 0 #d9d1bb2b,inset 0 -2px 0 #09121988,inset 2px 0 0 #c69c691e,inset -2px 0 0 #111e2666;
 }
}

/* Continuation 232: Orbital Lock boards 43–51. Scoped paint only.
   Pale gunmetal latch edges, petrol enamel and counterweight brass join the
   rack, board and readouts; existing sizes, font hierarchy and signals remain. */
body.breakline-page.orbital-lock-console {
 background: linear-gradient(110deg,#626c6b 0,#384448 2px,#283b40 21%,#314549 60%,#25363c calc(100% - 2px),#15252c);
 box-shadow: inset 0 1px 0 #d4e0d62b,inset 0 -1px 0 #0b181e,inset 1px 0 0 #9fa99c3d,inset -1px 0 0 #13252c;
 --readout-main: #eadcc0; --readout-cool: #d0e5e2;
 --readout-label: #bdcac5; --readout-secondary: #a9bfbd;
}
.orbital-lock-console .playbar {
 background: linear-gradient(180deg,#d3ded10d,transparent 58%);
 border-bottom-color: #101e25; box-shadow: inset 0 -1px 0 #a9947136;
}
.orbital-lock-console .playbar .power-nameplate { border-left-color: #a7946b; color: #e1e7df; }
.orbital-lock-console .back-link { color: #c4d2cc; }
.orbital-lock-console .back-link:hover { color: #eee5ce; }
.orbital-lock-console .playbar-actions button {
 border-color: #a8b5a854; border-bottom-color: #101e25;
 background: linear-gradient(#465b5d,#2e454b); color: #dee6dc;
 box-shadow: inset 0 1px 0 #dfe6d616,0 1px 0 #102129;
}
.orbital-lock-console .playbar-actions button:hover:not(:disabled) {
 border-color: #b6b599; background: #506965; color: #f0eedc;
}
.orbital-lock-console .bank-rack,.orbital-lock-console .round-rail {
 border-color: #101f26; border-bottom-color: #a9906043; border-right-color: #acb4a243;
 background: linear-gradient(100deg,#101f27,#182f35 46%,#11272e);
 box-shadow: inset 2px 2px 4px #030d1580,inset 0 0 0 1px #b5ccc10d,0 1px 0 #d7d4b910;
}
.orbital-lock-console .score-block::before {
 background: linear-gradient(115deg,#c7e1d60a,transparent 47%),linear-gradient(180deg,#04151b59,#0e2b3014);
 box-shadow: inset 0 1px 0 #c4d6c91c,inset 0 -1px 0 #ad946628,inset 0 2px 3px #010c1340;
}
.orbital-lock-console .score-block::after { background: #d0b786; box-shadow: 0 0 2px #d0b7864d; }
.orbital-lock-console .arena-frame {
 border-color: #a4b0a8; border-bottom-color: #7e7760;
 background: linear-gradient(125deg,#a6b0a9,#607779 22%,#304d55 64%,#817e69);
 box-shadow: inset 0 1px 0 #e0e6d744,inset 0 -1px 0 #13252d,0 1px 0 #0e2028;
}
.orbital-lock-console .arena-wrap { border-color: #0a1c25; }
.orbital-lock-console .wave-block,.orbital-lock-console .run-record,
.orbital-lock-console .ship-status { border-color: #b0b0972d; }
.orbital-lock-console #round-band { color: #d3e0d8; }
.orbital-lock-console #ship-status-label { color: #b9cec4; }
.orbital-lock-console .chapter-progress span { background: #102a31; border-color: #688782; }
.orbital-lock-console .chapter-progress .complete { background: #3b5651; border-color: #aaa78c; color: #e4e5d2; }
.orbital-lock-console .bank-rack.pack-full {
 border-color: #bfad7c; box-shadow: inset 0 0 6px #d9c89a21,inset 2px 2px 4px #03131b55;
}
@media (min-width:801px) {
 .orbital-lock-console .play-layout::before {
  border-color: #a0b1a070; border-bottom-color: #101f28;
  background:
   linear-gradient(180deg,transparent calc(16% - 1px),#0f222a78 16%,#b09a6c2a calc(16% + 1px),transparent calc(16% + 2px)),
   linear-gradient(180deg,transparent calc(84% - 1px),#0f222a78 84%,#b09a6c2a calc(84% + 1px),transparent calc(84% + 2px)),
   linear-gradient(100deg,#455d5e,#2e4a52 32%,#3a575b 68%,#2a434d);
  box-shadow: inset 0 2px 0 #dbe3d32b,inset 0 -2px 0 #081b2388,inset 2px 0 0 #c1b17c1e,inset -2px 0 0 #112c3566;
 }
}

/* Continuation 233: Seed Ark boards 52–60. Paint only; retained viewport,
   instrument hierarchy, controls and gameplay signals. Ceramic outer plates,
   copper service seams and forest-slate enamel share the illustrated ark. */
body.breakline-page.seed-ark-console {
 background: linear-gradient(110deg,#9b9a88 0,#59635a 2px,#293d36 21%,#35483e 60%,#2a3b35 calc(100% - 2px),#192b28);
 box-shadow: inset 0 1px 0 #ece6cb35,inset 0 -1px 0 #13231f,inset 1px 0 0 #cdc8b54a,inset -1px 0 0 #1c3028;
 --readout-main: #eee0ba; --readout-cool: #d9e8d9;
 --readout-label: #c5cec1; --readout-secondary: #b7c8b9;
}
.seed-ark-console .playbar {
 background: linear-gradient(180deg,#e8e3ca0d,transparent 58%);
 border-bottom-color: #172820; box-shadow: inset 0 -1px 0 #c69d7836;
}
.seed-ark-console .playbar .power-nameplate { border-left-color: #ba916c; color: #e8e8da; }
.seed-ark-console .back-link { color: #cdd6c7; }
.seed-ark-console .back-link:hover { color: #f2e9d3; }
.seed-ark-console .playbar-actions button {
 border-color: #c3c6ab54; border-bottom-color: #172820;
 background: linear-gradient(#526255,#34493e); color: #e4e9d8;
 box-shadow: inset 0 1px 0 #eee8ca19,0 1px 0 #172b22;
}
.seed-ark-console .playbar-actions button:hover:not(:disabled) {
 border-color: #c9bc97; background: #5a7060; color: #f4efd9;
}
.seed-ark-console .bank-rack,.seed-ark-console .round-rail {
 border-color: #15281f; border-bottom-color: #b58a6247; border-right-color: #c4c5ab43;
 background: linear-gradient(100deg,#13241f,#1b322a 46%,#152a23);
 box-shadow: inset 2px 2px 4px #08130e80,inset 0 0 0 1px #d2d8be0d,0 1px 0 #e2d8b810;
}
.seed-ark-console .score-block::before {
 background: linear-gradient(115deg,#d3e1bd0a,transparent 47%),linear-gradient(180deg,#0b211659,#17352214);
 box-shadow: inset 0 1px 0 #d4d9bc1c,inset 0 -1px 0 #c09b7028,inset 0 2px 3px #07130940;
}
.seed-ark-console .score-block::after { background: #d4b18b; box-shadow: 0 0 2px #d4b18b4d; }
.seed-ark-console .arena-frame {
 border-color: #c3c3af; border-bottom-color: #958464;
 background: linear-gradient(125deg,#c5c5b4,#82917e 22%,#405c49 64%,#99876e);
 box-shadow: inset 0 1px 0 #f0edda44,inset 0 -1px 0 #1d3226,0 1px 0 #16291f;
}
.seed-ark-console .arena-wrap { border-color: #142a1f; }
.seed-ark-console .wave-block,.seed-ark-console .run-record,
.seed-ark-console .ship-status { border-color: #c2b7942d; }
.seed-ark-console #round-band { color: #dce5d3; }
.seed-ark-console #ship-status-label { color: #c5d5be; }
.seed-ark-console .chapter-progress span { background: #1a3227; border-color: #81977b; }
.seed-ark-console .chapter-progress .complete { background: #496447; border-color: #b7b18b; color: #edecd5; }
.seed-ark-console .bank-rack.pack-full {
 border-color: #cbb583; box-shadow: inset 0 0 6px #e4cca021,inset 2px 2px 4px #12251a55;
}
@media (min-width:801px) {
 .seed-ark-console .play-layout::before {
  border-color: #b6c1a570; border-bottom-color: #172b22;
  background:
   linear-gradient(180deg,transparent calc(16% - 1px),#1b332378 16%,#be946c2a calc(16% + 1px),transparent calc(16% + 2px)),
   linear-gradient(180deg,transparent calc(84% - 1px),#1b332378 84%,#be946c2a calc(84% + 1px),transparent calc(84% + 2px)),
   linear-gradient(100deg,#5a6c58,#3b5842 32%,#4c6650 68%,#36513d);
  box-shadow: inset 0 2px 0 #e8e4c62b,inset 0 -2px 0 #10251788,inset 2px 0 0 #cbb2851e,inset -2px 0 0 #233c2966;
 }
}

/* Continuation 234: Frostline boards 61–69. Paint only; existing viewport,
   instrument hierarchy and gameplay signals retained. Insulated ivory steel,
   cold bluegray machinery and copper hinge seams from the ice excavator. */
body.breakline-page.frostline-console {
 background: linear-gradient(110deg,#8e9da5 0,#607783 2px,#263e4c 21%,#344c58 60%,#2b424e calc(100% - 2px),#172d3a);
 box-shadow: inset 0 1px 0 #e4e8dc35,inset 0 -1px 0 #122530,inset 1px 0 0 #c4c9c14a,inset -1px 0 0 #1b303b;
 --readout-main: #eee3c8; --readout-cool: #dceaf0;
 --readout-label: #c5d3da; --readout-secondary: #b4c8d3;
}
.frostline-console .playbar {
 background: linear-gradient(180deg,#e1e4da0d,transparent 58%);
 border-bottom-color: #172b36; box-shadow: inset 0 -1px 0 #bf967436;
}
.frostline-console .playbar .power-nameplate { border-left-color: #b79370; color: #e6e8e2; }
.frostline-console .back-link { color: #ccd8dd; }
.frostline-console .back-link:hover { color: #f1eddf; }
.frostline-console .playbar-actions button {
 border-color: #bfcbc954; border-bottom-color: #172b36;
 background: linear-gradient(#506575,#314b5c); color: #e2e9e9;
 box-shadow: inset 0 1px 0 #e8e7d519,0 1px 0 #172d3a;
}
.frostline-console .playbar-actions button:hover:not(:disabled) {
 border-color: #c0c8c7; background: #59788b; color: #f2eedf;
}
.frostline-console .bank-rack,.frostline-console .round-rail {
 border-color: #132b38; border-bottom-color: #ae896747; border-right-color: #c3cbc843;
 background: linear-gradient(100deg,#142630,#1c3442 46%,#162e3a);
 box-shadow: inset 2px 2px 4px #08172380,inset 0 0 0 1px #cddbe00d,0 1px 0 #dce1d310;
}
.frostline-console .score-block::before {
 background: linear-gradient(115deg,#c8dce50a,transparent 47%),linear-gradient(180deg,#102b3a59,#18354614);
 box-shadow: inset 0 1px 0 #d1dcde1c,inset 0 -1px 0 #ba967328,inset 0 2px 3px #0b1c2940;
}
.frostline-console .score-block::after { background: #c2a382; box-shadow: 0 0 2px #c2a3824d; }
.frostline-console .arena-frame {
 border-color: #c0c9c7; border-bottom-color: #918875;
 background: linear-gradient(125deg,#c9ceca,#899da7 22%,#436171 64%,#988876);
 box-shadow: inset 0 1px 0 #e8ece044,inset 0 -1px 0 #1c3644,0 1px 0 #142b38;
}
.frostline-console .arena-wrap { border-color: #132c3a; }
.frostline-console .wave-block,.frostline-console .run-record,
.frostline-console .ship-status { border-color: #b5c3c52d; }
.frostline-console #round-band { color: #dbe6e8; }
.frostline-console #ship-status-label { color: #c1d4df; }
.frostline-console .chapter-progress span { background: #1a3545; border-color: #7997a8; }
.frostline-console .chapter-progress .complete { background: #496b7b; border-color: #b6b5a6; color: #e9e9df; }
.frostline-console .bank-rack.pack-full {
 border-color: #c7b28e; box-shadow: inset 0 0 6px #dfc8a121,inset 2px 2px 4px #122b3955;
}
@media (min-width:801px) {
 .frostline-console .play-layout::before {
  border-color: #b5c3c670; border-bottom-color: #172d3a;
  background:
   linear-gradient(180deg,transparent calc(16% - 1px),#1b354578 16%,#b995742a calc(16% + 1px),transparent calc(16% + 2px)),
   linear-gradient(180deg,transparent calc(84% - 1px),#1b354578 84%,#b995742a calc(84% + 1px),transparent calc(84% + 2px)),
   linear-gradient(100deg,#5a7180,#3b5a6e 32%,#4c6c80 68%,#355468);
  box-shadow: inset 0 2px 0 #e0e4df2b,inset 0 -2px 0 #10273788,inset 2px 0 0 #c8b3951e,inset -2px 0 0 #233f5066;
 }
}

/* Continuation 235: Ember Foundry boards 70–78. Paint only; viewport,
   typography and signal hierarchy unchanged. Charcoal casting, copper seams,
   pale refractory inserts link the whole console to the feed/crucible scene. */
body.breakline-page.foundry-console {
 background: linear-gradient(110deg,#9b8b79 0,#746250 2px,#343333 21%,#45403a 60%,#3b3530 calc(100% - 2px),#211f1e);
 box-shadow: inset 0 1px 0 #ede2cb30,inset 0 -1px 0 #1b1d1e,inset 1px 0 0 #ba987348,inset -1px 0 0 #292523;
 --readout-main: #eee5d2; --readout-cool: #e3e5dd;
 --readout-label: #c9c6bb; --readout-secondary: #b9c1c0;
}
.foundry-console .playbar {
 background: linear-gradient(180deg,#e0ceb310,transparent 58%);
 border-bottom-color: #252321; box-shadow: inset 0 -1px 0 #b589623c;
}
.foundry-console .playbar .power-nameplate { border-left-color: #b68b63; color: #ebe4d6; }
.foundry-console .back-link { color: #d1ccc3; }
.foundry-console .back-link:hover { color: #f2ebdf; }
.foundry-console .playbar-actions button {
 border-color: #c0b49e54; border-bottom-color: #242222;
 background: linear-gradient(#595853,#373c3d); color: #e6e5dd;
 box-shadow: inset 0 1px 0 #eee1c919,0 1px 0 #211f1e;
}
.foundry-console .playbar-actions button:hover:not(:disabled) {
 border-color: #c8b79e; background: #62605a; color: #f4ede0;
}
.foundry-console .bank-rack,.foundry-console .round-rail {
 border-color: #1a2225; border-bottom-color: #b58a6247; border-right-color: #b6b1a143;
 background: linear-gradient(100deg,#192327,#273033 46%,#20292b);
 box-shadow: inset 2px 2px 4px #10151980,inset 0 0 0 1px #d8d5c40d,0 1px 0 #e1d1b710;
}
.foundry-console .score-block::before {
 background: linear-gradient(115deg,#e3d2b80a,transparent 47%),linear-gradient(180deg,#212b2e59,#30393814);
 box-shadow: inset 0 1px 0 #dcd4c41c,inset 0 -1px 0 #bd8f6428,inset 0 2px 3px #161e2240;
}
.foundry-console .score-block::after { background: #b08a65; box-shadow: 0 0 2px #b08a6540; }
.foundry-console .arena-frame {
 border-color: #b9ad99; border-bottom-color: #8f7054;
 background: linear-gradient(125deg,#bdb5a5,#8a8276 22%,#4d5555 64%,#947758);
 box-shadow: inset 0 1px 0 #eee3cc40,inset 0 -1px 0 #292c2d,0 1px 0 #202325;
}
.foundry-console .arena-wrap { border-color: #20282b; }
.foundry-console .wave-block,.foundry-console .run-record,
.foundry-console .ship-status { border-color: #c3b79f2d; }
.foundry-console #round-band { color: #e3dfd1; }
.foundry-console #ship-status-label { color: #c7c8bc; }
.foundry-console .chapter-progress span { background: #2a3335; border-color: #8c958f; }
.foundry-console .chapter-progress .complete { background: #536865; border-color: #b9ab90; color: #ece7da; }
.foundry-console .bank-rack.pack-full {
 border-color: #ceb38b; box-shadow: inset 0 0 6px #e3c49621,inset 2px 2px 4px #21292b55;
}
@media (min-width:801px) {
 .foundry-console .play-layout::before {
  border-color: #b7a88d70; border-bottom-color: #262624;
  background:
   linear-gradient(180deg,transparent calc(16% - 1px),#242c3078 16%,#ba90662e calc(16% + 1px),transparent calc(16% + 2px)),
   linear-gradient(180deg,transparent calc(84% - 1px),#242c3078 84%,#ba90662e calc(84% + 1px),transparent calc(84% + 2px)),
   linear-gradient(100deg,#655e54,#414947 32%,#59605a 68%,#484842);
  box-shadow: inset 0 2px 0 #e4d5b92b,inset 0 -2px 0 #1c222688,inset 2px 0 0 #c5a2781e,inset -2px 0 0 #37373266;
 }
}

/* Continuation 236: Tideworks boards 79–87. Paint only. Marine-service
   steel, pale weathered braces and bronze compression seams form one chassis. */
body.breakline-page.tideworks-console {
 background: linear-gradient(110deg,#a4b1b0 0,#778a8d 2px,#35474d 21%,#3e5157 60%,#445357 calc(100% - 2px),#202f36);
 box-shadow: inset 0 1px 0 #e0e9e530,inset 0 -1px 0 #18282f,inset 1px 0 0 #a6bdbe48,inset -1px 0 0 #203037;
 --readout-main: #e9e8dc; --readout-cool: #dce7e5;
 --readout-label: #c1cecd; --readout-secondary: #b1c5c8;
}
.tideworks-console .playbar {
 background: linear-gradient(180deg,#d6e6e210,transparent 58%);
 border-bottom-color: #1c2c33; box-shadow: inset 0 -1px 0 #b1906438;
}
.tideworks-console .playbar .power-nameplate { border-left-color: #ac8f65; color: #e0e9e4; }
.tideworks-console .back-link { color: #c7d7d6; }
.tideworks-console .back-link:hover { color: #edf3ed; }
.tideworks-console .playbar-actions button {
 border-color: #b4c7c354; border-bottom-color: #1c2c32;
 background: linear-gradient(#536970,#334951); color: #e0e9e5;
 box-shadow: inset 0 1px 0 #e1ece719,0 1px 0 #192930;
}
.tideworks-console .playbar-actions button:hover:not(:disabled) {
 border-color: #b9ccc7; background: #5b747b; color: #f0f4eb;
}
.tideworks-console .bank-rack,.tideworks-console .round-rail {
 border-color: #13272d; border-bottom-color: #ad8c6047; border-right-color: #a4bdba43;
 background: linear-gradient(100deg,#172c34,#263e46 46%,#1b333c);
 box-shadow: inset 2px 2px 4px #0c1b2280,inset 0 0 0 1px #cce1db0d,0 1px 0 #d6e3d910;
}
.tideworks-console .score-block::before {
 background: linear-gradient(115deg,#cfe5df0a,transparent 47%),linear-gradient(180deg,#203c4659,#324e5514);
 box-shadow: inset 0 1px 0 #d2e1d81c,inset 0 -1px 0 #a68c6228,inset 0 2px 3px #10242d40;
}
.tideworks-console .score-block::after { background: #b09a70; box-shadow: 0 0 2px #b09a7040; }
.tideworks-console .arena-frame {
 border-color: #acbbb7; border-bottom-color: #8d7958;
 background: linear-gradient(125deg,#b7c3be,#869c9f 22%,#425e68 64%,#8c805f);
 box-shadow: inset 0 1px 0 #e5ede340,inset 0 -1px 0 #203840,0 1px 0 #172c35;
}
.tideworks-console .arena-wrap { border-color: #162e37; }
.tideworks-console .wave-block,.tideworks-console .run-record,
.tideworks-console .ship-status { border-color: #bed0c52d; }
.tideworks-console #round-band { color: #d9e6df; }
.tideworks-console #ship-status-label { color: #bdcdc5; }
.tideworks-console .chapter-progress span { background: #27444c; border-color: #8ba7a6; }
.tideworks-console .chapter-progress .complete { background: #506f72; border-color: #b4b596; color: #e7eee4; }
.tideworks-console .bank-rack.pack-full {
 border-color: #c9b68c; box-shadow: inset 0 0 6px #d9d4ae21,inset 2px 2px 4px #203a4155;
}
@media (min-width:801px) {
 .tideworks-console .play-layout::before {
  border-color: #a8b9b170; border-bottom-color: #22363d;
  background:
   linear-gradient(180deg,transparent calc(16% - 1px),#18323b78 16%,#b4986a2e calc(16% + 1px),transparent calc(16% + 2px)),
   linear-gradient(180deg,transparent calc(84% - 1px),#18323b78 84%,#b4986a2e calc(84% + 1px),transparent calc(84% + 2px)),
   linear-gradient(100deg,#526971,#3b555f 32%,#59727a 68%,#435f68);
  box-shadow: inset 0 2px 0 #dce6de2b,inset 0 -2px 0 #142c3588,inset 2px 0 0 #b5c4b51e,inset -2px 0 0 #25434b66;
 }
}

/* Continuation 237: Skybridge boards 88–96. Paint only. Cable-drive station
   enamel, graphite ribs and weathered bronze seams form one chassis. */
body.breakline-page.skybridge-console {
 background: linear-gradient(110deg,#aab0a0 0,#7e897c 2px,#39443d 21%,#4b554b 60%,#525b50 calc(100% - 2px),#272f2a);
 box-shadow: inset 0 1px 0 #e9e5d730,inset 0 -1px 0 #202922,inset 1px 0 0 #bfc5ad48,inset -1px 0 0 #2d352c;
 --readout-main: #eee9dc; --readout-cool: #e0e6d9;
 --readout-label: #c6cebc; --readout-secondary: #bbc4b0;
}
.skybridge-console .playbar {
 background: linear-gradient(180deg,#e3e6cf10,transparent 58%);
 border-bottom-color: #252e27; box-shadow: inset 0 -1px 0 #b4986238;
}
.skybridge-console .playbar .power-nameplate { border-left-color: #b29662; color: #e5e8da; }
.skybridge-console .back-link { color: #d1d8c7; }
.skybridge-console .back-link:hover { color: #f1f1e4; }
.skybridge-console .playbar-actions button {
 border-color: #bfcbb154; border-bottom-color: #242d24;
 background: linear-gradient(#5c6a57,#3d4b3f); color: #e6e9dc;
 box-shadow: inset 0 1px 0 #eeeed919,0 1px 0 #212b23;
}
.skybridge-console .playbar-actions button:hover:not(:disabled) {
 border-color: #c2cfb5; background: #687a60; color: #f5f4e8;
}
.skybridge-console .bank-rack,.skybridge-console .round-rail {
 border-color: #1d291f; border-bottom-color: #b2966247; border-right-color: #b7c0a443;
 background: linear-gradient(100deg,#222e25,#333e32 46%,#263328);
 box-shadow: inset 2px 2px 4px #171e1880,inset 0 0 0 1px #dce3ca0d,0 1px 0 #e1e2ca10;
}
.skybridge-console .score-block::before {
 background: linear-gradient(115deg,#dce5c80a,transparent 47%),linear-gradient(180deg,#2d3c2c59,#41503b14);
 box-shadow: inset 0 1px 0 #e0e2c81c,inset 0 -1px 0 #b1976628,inset 0 2px 3px #1a271b40;
}
.skybridge-console .score-block::after { background: #b39b69; box-shadow: 0 0 2px #b39b6940; }
.skybridge-console .arena-frame {
 border-color: #b5bca6; border-bottom-color: #968258;
 background: linear-gradient(125deg,#bec5af,#929f85 22%,#4f634b 64%,#938562);
 box-shadow: inset 0 1px 0 #eeeede40,inset 0 -1px 0 #2d3b2b,0 1px 0 #233022;
}
.skybridge-console .arena-wrap { border-color: #223121; }
.skybridge-console .wave-block,.skybridge-console .run-record,
.skybridge-console .ship-status { border-color: #c9d0b52d; }
.skybridge-console #round-band { color: #e1e7d6; }
.skybridge-console #ship-status-label { color: #c8cdb5; }
.skybridge-console .chapter-progress span { background: #344531; border-color: #9aaa8b; }
.skybridge-console .chapter-progress .complete { background: #617957; border-color: #c0b68d; color: #eeeede; }
.skybridge-console .bank-rack.pack-full {
 border-color: #d1b987; box-shadow: inset 0 0 6px #e0d4a021,inset 2px 2px 4px #2d3c2955;
}
@media (min-width:801px) {
 .skybridge-console .play-layout::before {
  border-color: #b8bea170; border-bottom-color: #2c3829;
  background:
   linear-gradient(180deg,transparent calc(16% - 1px),#26352678 16%,#bca16c2e calc(16% + 1px),transparent calc(16% + 2px)),
   linear-gradient(180deg,transparent calc(84% - 1px),#26352678 84%,#bca16c2e calc(84% + 1px),transparent calc(84% + 2px)),
   linear-gradient(100deg,#5e7056,#4c6045 32%,#687c5c 68%,#566c4c);
  box-shadow: inset 0 2px 0 #e3e6cd2b,inset 0 -2px 0 #23302188,inset 2px 0 0 #c4c8aa1e,inset -2px 0 0 #34472f66;
 }
}

/* Continuation 238: Dune Walker boards 97–105. Paint only. Weathered ivory
   enamel, blue-gray structural bands and bronze seams share one chassis. */
body.breakline-page.dune-walker-console {
 background: linear-gradient(110deg,#aeb5b6 0,#83949c 2px,#34454e 21%,#455b64 60%,#626e72 calc(100% - 2px),#25353e);
 box-shadow: inset 0 1px 0 #eee6d830,inset 0 -1px 0 #20303a,inset 1px 0 0 #c9ccca48,inset -1px 0 0 #2d3b42;
 --readout-main: #efe8dc; --readout-cool: #dce9ee;
 --readout-label: #c7d1d3; --readout-secondary: #bdc9cb;
}
.dune-walker-console .playbar {
 background: linear-gradient(180deg,#e9e4d910,transparent 58%);
 border-bottom-color: #26343d; box-shadow: inset 0 -1px 0 #b5966c38;
}
.dune-walker-console .playbar .power-nameplate { border-left-color: #b59871; color: #e7e7df; }
.dune-walker-console .back-link { color: #d1dce0; }
.dune-walker-console .back-link:hover { color: #f2eee4; }
.dune-walker-console .playbar-actions button {
 border-color: #bdc9cd54; border-bottom-color: #25353f;
 background: linear-gradient(#5b717b,#3c515c); color: #e5eceb;
 box-shadow: inset 0 1px 0 #eee8dd19,0 1px 0 #21323c;
}
.dune-walker-console .playbar-actions button:hover:not(:disabled) {
 border-color: #c3d0d4; background: #657e89; color: #f6f1e8;
}
.dune-walker-console .bank-rack,.dune-walker-console .round-rail {
 border-color: #1d2e38; border-bottom-color: #b5987147; border-right-color: #bdc9ca43;
 background: linear-gradient(100deg,#22333e,#34464e 46%,#293b45);
 box-shadow: inset 2px 2px 4px #17252e80,inset 0 0 0 1px #dfe3dc0d,0 1px 0 #e5dfd210;
}
.dune-walker-console .score-block::before {
 background: linear-gradient(115deg,#e4e5dc0a,transparent 47%),linear-gradient(180deg,#30434e59,#465d6614);
 box-shadow: inset 0 1px 0 #e4e0d21c,inset 0 -1px 0 #b4987128,inset 0 2px 3px #1a2d3840;
}
.dune-walker-console .score-block::after { background: #b99a71; box-shadow: 0 0 2px #b99a7140; }
.dune-walker-console .arena-frame {
 border-color: #c5c3b8; border-bottom-color: #9b825d;
 background: linear-gradient(125deg,#d0cbbb,#a1b1b4 22%,#536d79 64%,#998b71);
 box-shadow: inset 0 1px 0 #f1eadb40,inset 0 -1px 0 #2d424d,0 1px 0 #23353e;
}
.dune-walker-console .arena-wrap { border-color: #223743; }
.dune-walker-console .wave-block,.dune-walker-console .run-record,
.dune-walker-console .ship-status { border-color: #cbd2cb2d; }
.dune-walker-console #round-band { color: #dfe8e9; }
.dune-walker-console #ship-status-label { color: #d0c8b7; }
.dune-walker-console .chapter-progress span { background: #334b56; border-color: #99afb6; }
.dune-walker-console .chapter-progress .complete { background: #577988; border-color: #c1b493; color: #efeadd; }
.dune-walker-console .bank-rack.pack-full {
 border-color: #d5ba8b; box-shadow: inset 0 0 6px #e5d7ad21,inset 2px 2px 4px #2d454f55;
}
@media (min-width:801px) {
 .dune-walker-console .play-layout::before {
  border-color: #bcc5c470; border-bottom-color: #2c414c;
  background:
   linear-gradient(180deg,transparent calc(16% - 1px),#293e4978 16%,#bda27a2e calc(16% + 1px),transparent calc(16% + 2px)),
   linear-gradient(180deg,transparent calc(84% - 1px),#293e4978 84%,#bda27a2e calc(84% + 1px),transparent calc(84% + 2px)),
   linear-gradient(100deg,#627b87,#4a6675 32%,#748995 68%,#597583);
  box-shadow: inset 0 2px 0 #e7e6dc2b,inset 0 -2px 0 #23394288,inset 2px 0 0 #c8c9ba1e,inset -2px 0 0 #344e5c66;
 }
}

/* Continuation 239: Wayfinder boards 106–114. Paint only: ivory station
   vanes, graphite instrument recesses and copper hinge seams. */
body.breakline-page.wayfinder-console {
 background: linear-gradient(110deg,#bcb5aa 0,#79767a 2px,#303138 21%,#45434a 60%,#696269 calc(100% - 2px),#292a31);
 box-shadow: inset 0 1px 0 #efe5d330,inset 0 -1px 0 #202128,inset 1px 0 0 #dbcfb745,inset -1px 0 0 #313039;
 --readout-main: #f0e4d0; --readout-cool: #e5e3ed;
 --readout-label: #cbc6ce; --readout-secondary: #bfbac5;
}
.wayfinder-console .playbar {
 background: linear-gradient(180deg,#eee4d011,transparent 58%);
 border-bottom-color: #27262d; box-shadow: inset 0 -1px 0 #c29c7838;
}
.wayfinder-console .playbar .power-nameplate { border-left-color: #b89a74; color: #ece6d9; }
.wayfinder-console .back-link { color: #d7d1d9; }
.wayfinder-console .back-link:hover { color: #f6edde; }
.wayfinder-console .playbar-actions button {
 border-color: #c1b4ad50; border-bottom-color: #24232b;
 background: linear-gradient(#55535e,#373641); color: #ebe5e2;
 box-shadow: inset 0 1px 0 #f0e6d31a,0 1px 0 #22212a;
}
.wayfinder-console .playbar-actions button:hover:not(:disabled) {
 border-color: #d1c5b2; background: #69616b; color: #faf0dd;
}
.wayfinder-console .bank-rack,.wayfinder-console .round-rail {
 border-color: #211f2a; border-bottom-color: #b4937347; border-right-color: #c5bbaa40;
 background: linear-gradient(100deg,#24232e,#35323d 46%,#292733);
 box-shadow: inset 2px 2px 4px #16141f88,inset 0 0 0 1px #eee3cf0d,0 1px 0 #e9ddca10;
}
.wayfinder-console .score-block::before {
 background: linear-gradient(115deg,#ede4d70a,transparent 47%),linear-gradient(180deg,#413a4659,#51445114);
 box-shadow: inset 0 1px 0 #e7dccd1c,inset 0 -1px 0 #b3907028,inset 0 2px 3px #19172140;
}
.wayfinder-console .score-block::after { background: #b69776; box-shadow: 0 0 2px #b6977638; }
.wayfinder-console .arena-frame {
 border-color: #c9c0ad; border-bottom-color: #947757;
 background: linear-gradient(125deg,#d3c9b5,#a6a099 22%,#66626e 64%,#a88f70);
 box-shadow: inset 0 1px 0 #f5ebd545,inset 0 -1px 0 #34303e,0 1px 0 #25212d;
}
.wayfinder-console .arena-wrap { border-color: #302938; }
.wayfinder-console .wave-block,.wayfinder-console .run-record,
.wayfinder-console .ship-status { border-color: #d6cbbb28; }
.wayfinder-console #round-band { color: #e5e0ec; }
.wayfinder-console #ship-status-label { color: #d4c5af; }
.wayfinder-console .chapter-progress span { background: #3b3544; border-color: #ada0b3; }
.wayfinder-console .chapter-progress .complete { background: #655871; border-color: #c8b291; color: #f2e8d9; }
.wayfinder-console .bank-rack.pack-full {
 border-color: #dfbf8c; box-shadow: inset 0 0 6px #e5cba221,inset 2px 2px 4px #3c304555;
}
@media (min-width:801px) {
 .wayfinder-console .play-layout::before {
  border-color: #cbc1ad65; border-bottom-color: #2c2934;
  background:
   linear-gradient(180deg,transparent calc(16% - 1px),#2b293578 16%,#c29b742e calc(16% + 1px),transparent calc(16% + 2px)),
   linear-gradient(180deg,transparent calc(84% - 1px),#2b293578 84%,#c29b742e calc(84% + 1px),transparent calc(84% + 2px)),
   linear-gradient(100deg,#6e6870,#554e5c 32%,#827775 68%,#645b66);
  box-shadow: inset 0 2px 0 #ede1cd2b,inset 0 -2px 0 #24202c88,inset 2px 0 0 #d6c9ae1e,inset -2px 0 0 #39313f66;
 }
}

/* Continuation 240: Echo Vault boards 115–123. Paint only: cold archive
   steel, dark ribbed instrument recesses and small copper indexing seams. */
body.breakline-page.echo-vault-console {
 background: linear-gradient(110deg,#aeb5b4 0,#737d80 2px,#2d353b 21%,#3d474c 60%,#738184 calc(100% - 2px),#293136);
 box-shadow: inset 0 1px 0 #e3e9e72d,inset 0 -1px 0 #1e282e,inset 1px 0 0 #d1ded940,inset -1px 0 0 #263237;
 --readout-main: #ede8dc; --readout-cool: #dcebef;
 --readout-label: #bfcfd1; --readout-secondary: #b4c2c7;
}
.echo-vault-console .playbar {
 background: linear-gradient(180deg,#e1ebe912,transparent 58%);
 border-bottom-color: #222b31; box-shadow: inset 0 -1px 0 #b98b683b;
}
.echo-vault-console .playbar .power-nameplate { border-left-color: #c0936e; color: #e4ece7; }
.echo-vault-console .back-link { color: #cbdadd; }
.echo-vault-console .back-link:hover { color: #f2eee2; }
.echo-vault-console .playbar-actions button {
 border-color: #aabbba50; border-bottom-color: #1d262c;
 background: linear-gradient(#4b5a60,#313f46); color: #e2ebe9;
 box-shadow: inset 0 1px 0 #e6ece31a,0 1px 0 #1b252b;
}
.echo-vault-console .playbar-actions button:hover:not(:disabled) {
 border-color: #c2d0ce; background: #5c6e72; color: #faf0df;
}
.echo-vault-console .bank-rack,.echo-vault-console .round-rail {
 border-color: #18242b; border-bottom-color: #bd916c47; border-right-color: #bdc7c040;
 background: linear-gradient(100deg,#1d2b32,#2d3c43 46%,#243239);
 box-shadow: inset 2px 2px 4px #101b2188,inset 0 0 0 1px #e7ebe00d,0 1px 0 #e0e5d610;
}
.echo-vault-console .score-block::before {
 background: linear-gradient(115deg,#e2ede70a,transparent 47%),linear-gradient(180deg,#364d5659,#43535214);
 box-shadow: inset 0 1px 0 #dce6df1c,inset 0 -1px 0 #b6855e28,inset 0 2px 3px #13212840;
}
.echo-vault-console .score-block::after { background: #c29671; box-shadow: 0 0 2px #c2967138; }
.echo-vault-console .arena-frame {
 border-color: #b9c4c1; border-bottom-color: #a17b5b;
 background: linear-gradient(125deg,#c9d1c9,#a6b1ac 22%,#62747a 64%,#ab8a6f);
 box-shadow: inset 0 1px 0 #e7eee245,inset 0 -1px 0 #27353d,0 1px 0 #1c2930;
}
.echo-vault-console .arena-wrap { border-color: #20313b; }
.echo-vault-console .wave-block,.echo-vault-console .run-record,
.echo-vault-console .ship-status { border-color: #cbd5cb28; }
.echo-vault-console #round-band { color: #dfe8e6; }
.echo-vault-console #ship-status-label { color: #d5bea3; }
.echo-vault-console .chapter-progress span { background: #2e424b; border-color: #99b1b8; }
.echo-vault-console .chapter-progress .complete { background: #4b666b; border-color: #c5a480; color: #f0e5d1; }
.echo-vault-console .bank-rack.pack-full {
 border-color: #dcbb8c; box-shadow: inset 0 0 6px #e1c99e21,inset 2px 2px 4px #2b3d4255;
}
@media (min-width:801px) {
 .echo-vault-console .play-layout::before {
  border-color: #c0cdc665; border-bottom-color: #223039;
  background:
   linear-gradient(180deg,transparent calc(16% - 1px),#22303978 16%,#c3956b2e calc(16% + 1px),transparent calc(16% + 2px)),
   linear-gradient(180deg,transparent calc(84% - 1px),#22303978 84%,#c3956b2e calc(84% + 1px),transparent calc(84% + 2px)),
   linear-gradient(100deg,#65777c,#475b64 32%,#75817f 68%,#536a73);
  box-shadow: inset 0 2px 0 #dce7db2b,inset 0 -2px 0 #19293188,inset 2px 0 0 #cbdace1e,inset -2px 0 0 #293a4166;
 }
}

/* Continuation 241: Haven Spire boards 124–132. Paint only: warm ivory
   air-service enamel, sea-glass instrument recesses and copper fittings. */
body.breakline-page.haven-spire-console {
 background: linear-gradient(110deg,#d0d0bd 0,#98a49a 2px,#435952 21%,#576b60 60%,#a3b0a0 calc(100% - 2px),#314940);
 box-shadow: inset 0 1px 0 #f6efcf30,inset 0 -1px 0 #203c35,inset 1px 0 0 #e3e8cf45,inset -1px 0 0 #2d493f;
 --readout-main: #f3edce; --readout-cool: #e0f0df;
 --readout-label: #c4d8c5; --readout-secondary: #bdcfbd;
}
.haven-spire-console .playbar {
 background: linear-gradient(180deg,#f2ebcf15,transparent 58%);
 border-bottom-color: #284236; box-shadow: inset 0 -1px 0 #b8906240;
}
.haven-spire-console .playbar .power-nameplate { border-left-color: #c49a68; color: #edf1dc; }
.haven-spire-console .back-link { color: #d7e4d0; }
.haven-spire-console .back-link:hover { color: #fff4d8; }
.haven-spire-console .playbar-actions button {
 border-color: #c2d0b652; border-bottom-color: #243e34;
 background: linear-gradient(#617667,#405c4d); color: #edf1dd;
 box-shadow: inset 0 1px 0 #fff3cf20,0 1px 0 #213c30;
}
.haven-spire-console .playbar-actions button:hover:not(:disabled) {
 border-color: #e1e5c5; background: #748973; color: #fff6de;
}
.haven-spire-console .bank-rack,.haven-spire-console .round-rail {
 border-color: #203c33; border-bottom-color: #be966745; border-right-color: #d1d9c445;
 background: linear-gradient(100deg,#213e38,#345047 46%,#2b453e);
 box-shadow: inset 2px 2px 4px #112a2188,inset 0 0 0 1px #f3efce11,0 1px 0 #e9e4c719;
}
.haven-spire-console .score-block::before {
 background: linear-gradient(115deg,#f6f0d10e,transparent 47%),linear-gradient(180deg,#65847050,#6d827414);
 box-shadow: inset 0 1px 0 #e7ebcb24,inset 0 -1px 0 #bc8e5f30,inset 0 2px 3px #1a392e40;
}
.haven-spire-console .score-block::after { background: #caa16d; box-shadow: 0 0 2px #caa16d38; }
.haven-spire-console .arena-frame {
 border-color: #d8dcc4; border-bottom-color: #b19266;
 background: linear-gradient(125deg,#e4e1c5,#c5ceb4 22%,#819887 64%,#bfaa80);
 box-shadow: inset 0 1px 0 #fff7d950,inset 0 -1px 0 #344c3f,0 1px 0 #1f3b30;
}
.haven-spire-console .arena-wrap { border-color: #294a40; }
.haven-spire-console .wave-block,.haven-spire-console .run-record,
.haven-spire-console .ship-status { border-color: #dee4c831; }
.haven-spire-console #round-band { color: #e8efd7; }
.haven-spire-console #ship-status-label { color: #dec49c; }
.haven-spire-console .chapter-progress span { background: #34584c; border-color: #afc8b0; }
.haven-spire-console .chapter-progress .complete { background: #628671; border-color: #d6b47f; color: #fbefd1; }
.haven-spire-console .bank-rack.pack-full {
 border-color: #ead096; box-shadow: inset 0 0 6px #eadeac25,inset 2px 2px 4px #34534155;
}
@media (min-width:801px) {
 .haven-spire-console .play-layout::before {
  border-color: #d5dfc76b; border-bottom-color: #294b3c;
  background:
   linear-gradient(180deg,transparent calc(16% - 1px),#294b3c78 16%,#c59c6534 calc(16% + 1px),transparent calc(16% + 2px)),
   linear-gradient(180deg,transparent calc(84% - 1px),#294b3c78 84%,#c59c6534 calc(84% + 1px),transparent calc(84% + 2px)),
   linear-gradient(100deg,#98aa91,#738c79 32%,#a2b298 68%,#809985);
  box-shadow: inset 0 2px 0 #f0ebc735,inset 0 -2px 0 #263f3388,inset 2px 0 0 #e1e7c425,inset -2px 0 0 #39584566;
 }
}

/* Continuation 242: Skywell boards 133–141. Paint only: weathered collector
   enamel, copper plumbing seams and deep water-teal instrument recesses. */
body.breakline-page.skywell-console {
 background: linear-gradient(110deg,#cbd5ca 0,#a2bcb3 2px,#3d5958 21%,#54706a 60%,#a9c2b7 calc(100% - 2px),#2b4748);
 box-shadow: inset 0 1px 0 #f2ecdc35,inset 0 -1px 0 #17393b,inset 1px 0 0 #e7ede148,inset -1px 0 0 #2c514f;
 --readout-main: #f1e9d8; --readout-cool: #ddf3eb;
 --readout-label: #bedbd5; --readout-secondary: #b4cec8;
}
.skywell-console .playbar {
 background: linear-gradient(180deg,#eaf3e417,transparent 58%);
 border-bottom-color: #234146; box-shadow: inset 0 -1px 0 #c28d6842;
}
.skywell-console .playbar .power-nameplate { border-left-color: #bf8d68; color: #e8f4e9; }
.skywell-console .back-link { color: #d3e8de; }
.skywell-console .back-link:hover { color: #fff1dc; }
.skywell-console .playbar-actions button {
 border-color: #afccbf52; border-bottom-color: #234247;
 background: linear-gradient(#657f77,#3c5e59); color: #e8f3e7;
 box-shadow: inset 0 1px 0 #f4f1dc22,0 1px 0 #1e3f40;
}
.skywell-console .playbar-actions button:hover:not(:disabled) {
 border-color: #e2e9d9; background: #78958a; color: #fff5e4;
}
.skywell-console .bank-rack,.skywell-console .round-rail {
 border-color: #1c3b40; border-bottom-color: #bb8b6545; border-right-color: #caddd14a;
 background: linear-gradient(100deg,#1e3c40,#30534f 46%,#27484a);
 box-shadow: inset 2px 2px 4px #0d2b2e88,inset 0 0 0 1px #f1ebd911,0 1px 0 #e9e9d71c;
}
.skywell-console .score-block::before {
 background: linear-gradient(115deg,#f1eee20e,transparent 47%),linear-gradient(180deg,#739c9250,#77998f14);
 box-shadow: inset 0 1px 0 #e4ecda25,inset 0 -1px 0 #be8b6532,inset 0 2px 3px #173b3b40;
}
.skywell-console .score-block::after { background: #cb956e; box-shadow: 0 0 2px #cb956e38; }
.skywell-console .arena-frame {
 border-color: #dbe5d8; border-bottom-color: #b99170;
 background: linear-gradient(125deg,#e6e8d9,#c7d9ca 22%,#87aa9e 64%,#baa286);
 box-shadow: inset 0 1px 0 #fff7e353,inset 0 -1px 0 #315650,0 1px 0 #1a3c3e;
}
.skywell-console .arena-wrap { border-color: #234c4d; }
.skywell-console .wave-block,.skywell-console .run-record,
.skywell-console .ship-status { border-color: #d6e8d831; }
.skywell-console #round-band { color: #e3f2e3; }
.skywell-console #ship-status-label { color: #dfc3a3; }
.skywell-console .chapter-progress span { background: #305954; border-color: #a9cbbd; }
.skywell-console .chapter-progress .complete { background: #598c79; border-color: #cfa67e; color: #fff0d8; }
.skywell-console .bank-rack.pack-full {
 border-color: #ead09e; box-shadow: inset 0 0 6px #eadeb125,inset 2px 2px 4px #315b5155;
}
@media (min-width:801px) {
 .skywell-console .play-layout::before {
  border-color: #d4e2d56b; border-bottom-color: #254c47;
  background:
   linear-gradient(180deg,transparent calc(16% - 1px),#254c4878 16%,#c18f6b34 calc(16% + 1px),transparent calc(16% + 2px)),
   linear-gradient(180deg,transparent calc(84% - 1px),#254c4878 84%,#c18f6b34 calc(84% + 1px),transparent calc(84% + 2px)),
   linear-gradient(100deg,#9bb9a9,#71978a 32%,#a5c3b1 68%,#7d9f92);
  box-shadow: inset 0 2px 0 #eeedda35,inset 0 -2px 0 #21474188,inset 2px 0 0 #e0ead225,inset -2px 0 0 #365e5666;
 }
}

/* Continuation 243: Harbor Ferry boards 142–153. Paint only: ivory marine
   hull seams, copper service trim and deep blue glazed instrument recesses. */
body.breakline-page.harbor-ferry-console {
 background: linear-gradient(110deg,#dbd9cd 0,#bcbfaf 2px,#394e5c 21%,#4f6672 60%,#c8cabc calc(100% - 2px),#2c414e);
 box-shadow: inset 0 1px 0 #fff2d640,inset 0 -1px 0 #172b3c,inset 1px 0 0 #e9e8d94a,inset -1px 0 0 #36525c;
 --readout-main: #f5ecd7; --readout-cool: #e2edf0;
 --readout-label: #c8d6df; --readout-secondary: #b3c9d5;
}
.harbor-ferry-console .playbar {
 background: linear-gradient(180deg,#edf0e618,transparent 58%);
 border-bottom-color: #213a4a; box-shadow: inset 0 -1px 0 #c18c6442;
}
.harbor-ferry-console .playbar .power-nameplate { border-left-color: #c99a72; color: #f2efe0; }
.harbor-ferry-console .back-link { color: #d4e0e6; }
.harbor-ferry-console .back-link:hover { color: #fff1d7; }
.harbor-ferry-console .playbar-actions button {
 border-color: #cbd7d453; border-bottom-color: #203a4b;
 background: linear-gradient(#617582,#3c5465); color: #f1efdf;
 box-shadow: inset 0 1px 0 #f8f1db24,0 1px 0 #172e40;
}
.harbor-ferry-console .playbar-actions button:hover:not(:disabled) {
 border-color: #eeeade; background: #758995; color: #fff6e4;
}
.harbor-ferry-console .bank-rack,.harbor-ferry-console .round-rail {
 border-color: #1a2e42; border-bottom-color: #c1916845; border-right-color: #e0e3d94a;
 background: linear-gradient(100deg,#192f42,#294a5e 46%,#223c50);
 box-shadow: inset 2px 2px 4px #071d3188,inset 0 0 0 1px #f3ead812,0 1px 0 #f0e7d41c;
}
.harbor-ferry-console .score-block::before {
 background: linear-gradient(115deg,#f3eadb0e,transparent 47%),linear-gradient(180deg,#839ba650,#6c899b14);
 box-shadow: inset 0 1px 0 #e7ede125,inset 0 -1px 0 #cb987032,inset 0 2px 3px #152d4540;
}
.harbor-ferry-console .score-block::after { background: #d0a079; box-shadow: 0 0 2px #d0a07938; }
.harbor-ferry-console .arena-frame {
 border-color: #e1e2d5; border-bottom-color: #ba9674;
 background: linear-gradient(125deg,#eae5d4,#d0d9ce 22%,#8eabb7 64%,#bca184);
 box-shadow: inset 0 1px 0 #fff6df53,inset 0 -1px 0 #375464,0 1px 0 #192f45;
}
.harbor-ferry-console .arena-wrap { border-color: #2b465b; }
.harbor-ferry-console .wave-block,.harbor-ferry-console .run-record,
.harbor-ferry-console .ship-status { border-color: #e0e8df31; }
.harbor-ferry-console #round-band { color: #e8eddf; }
.harbor-ferry-console #ship-status-label { color: #e2c6a5; }
.harbor-ferry-console .chapter-progress span { background: #304f67; border-color: #b7cbd0; }
.harbor-ferry-console .chapter-progress .complete { background: #557a90; border-color: #d2ab85; color: #fff0d5; }
.harbor-ferry-console .bank-rack.pack-full {
 border-color: #ead09e; box-shadow: inset 0 0 6px #eadeb125,inset 2px 2px 4px #314e6855;
}
@media (min-width:801px) {
 .harbor-ferry-console .play-layout::before {
  border-color: #e3e2d46b; border-bottom-color: #2a4254;
  background:
   linear-gradient(180deg,transparent calc(16% - 1px),#293e5178 16%,#c5987434 calc(16% + 1px),transparent calc(16% + 2px)),
   linear-gradient(180deg,transparent calc(84% - 1px),#293e5178 84%,#c5987434 calc(84% + 1px),transparent calc(84% + 2px)),
   linear-gradient(100deg,#bfc6bb,#829eaa 32%,#c9cfc1 68%,#97a9ad);
  box-shadow: inset 0 2px 0 #f8edd735,inset 0 -2px 0 #233e5488,inset 2px 0 0 #eee8d425,inset -2px 0 0 #435f6b66;
 }
}

/* Continuation 244: Channel Lights 154–162. Paint only: weathered optical
   instruments, ivory bezels, bronze adjusters and recessed blue slate. */
body.breakline-page.channel-lights-console {
 background: linear-gradient(110deg,#c9c4b5 0,#8b918b 2px,#344650 21%,#4b5a63 60%,#c3bba7 calc(100% - 2px),#34424b);
 box-shadow: inset 0 1px 0 #f1e7d440,inset 0 -1px 0 #16222e,inset 1px 0 0 #e1d9c64a,inset -1px 0 0 #4f5759;
 --readout-main: #f0e5ce; --readout-cool: #dee8ed;
 --readout-label: #c6d0d6; --readout-secondary: #afc0ca;
}
.channel-lights-console .playbar {
 background: linear-gradient(180deg,#ece3d518,transparent 58%);
 border-bottom-color: #263740; box-shadow: inset 0 -1px 0 #ad805842;
}
.channel-lights-console .playbar .power-nameplate { border-left-color: #be9065; color: #eae6da; }
.channel-lights-console .back-link { color: #d3dce1; }
.channel-lights-console .back-link:hover { color: #fff1d7; }
.channel-lights-console .playbar-actions button {
 border-color: #c1c5bd53; border-bottom-color: #243740;
 background: linear-gradient(#627078,#40535f); color: #e9e5d7;
 box-shadow: inset 0 1px 0 #eee4cc24,0 1px 0 #1b2c37;
}
.channel-lights-console .playbar-actions button:hover:not(:disabled) {
 border-color: #e9dfca; background: #79848a; color: #fff4df;
}
.channel-lights-console .bank-rack,.channel-lights-console .round-rail {
 border-color: #1b2935; border-bottom-color: #a77e5445; border-right-color: #d6ceba4a;
 background: linear-gradient(100deg,#1a2c39,#2d4250 46%,#253844);
 box-shadow: inset 2px 2px 4px #07172288,inset 0 0 0 1px #e7deca12,0 1px 0 #e4d9c21c;
}
.channel-lights-console .score-block::before {
 background: linear-gradient(115deg,#ede0c60e,transparent 47%),linear-gradient(180deg,#8c959750,#75818a14);
 box-shadow: inset 0 1px 0 #e2e0d225,inset 0 -1px 0 #bc8b5c32,inset 0 2px 3px #1a2b3940;
}
.channel-lights-console .score-block::after { background: #c09367; box-shadow: 0 0 2px #c0936738; }
.channel-lights-console .arena-frame {
 border-color: #dcd5c2; border-bottom-color: #ac805b;
 background: linear-gradient(125deg,#e5ddc9,#bbbdb3 22%,#8b9ca5 64%,#b29270);
 box-shadow: inset 0 1px 0 #fff1d553,inset 0 -1px 0 #405562,0 1px 0 #1d2d38;
}
.channel-lights-console .arena-wrap { border-color: #2c4050; }
.channel-lights-console .wave-block,.channel-lights-console .run-record,
.channel-lights-console .ship-status { border-color: #dfded031; }
.channel-lights-console #round-band { color: #e5e2d4; }
.channel-lights-console #ship-status-label { color: #d5b891; }
.channel-lights-console .chapter-progress span { background: #3c505f; border-color: #b2bfc5; }
.channel-lights-console .chapter-progress .complete { background: #657c89; border-color: #c29a6d; color: #fae7c4; }
.channel-lights-console .bank-rack.pack-full {
 border-color: #dec59c; box-shadow: inset 0 0 6px #dec59c25,inset 2px 2px 4px #3b4b5855;
}
@media (min-width:801px) {
 .channel-lights-console .play-layout::before {
  border-color: #d9d1bd6b; border-bottom-color: #2d3d48;
  background:
   linear-gradient(180deg,transparent calc(16% - 1px),#293c4b78 16%,#b58b5b34 calc(16% + 1px),transparent calc(16% + 2px)),
   linear-gradient(180deg,transparent calc(84% - 1px),#293c4b78 84%,#b58b5b34 calc(84% + 1px),transparent calc(84% + 2px)),
   linear-gradient(100deg,#b5b7ae,#81949e 32%,#c4beab 68%,#919da0);
  box-shadow: inset 0 2px 0 #e7dbc535,inset 0 -2px 0 #263b4a88,inset 2px 0 0 #e3dac525,inset -2px 0 0 #4b5c6466;
 }
}

/* Continuation 245: Sounding Station 163–171. Paint only: ivory pressure
   casing, bronze clamp bands and slate-blue recessed instrument panels. */
body.breakline-page.sounding-station-console {
 background: linear-gradient(110deg,#d0c8b8 0,#999b92 2px,#34444f 21%,#4b5863 60%,#c6baa4 calc(100% - 2px),#37434d);
 box-shadow: inset 0 1px 0 #f3e7d241,inset 0 -1px 0 #19242e,inset 1px 0 0 #e3d5bb4a,inset -1px 0 0 #575d60;
 --readout-main: #f1e5cd; --readout-cool: #dee8f1;
 --readout-label: #c8d1dc; --readout-secondary: #b2c0ce;
}
.sounding-station-console .playbar {
 background: linear-gradient(180deg,#e9e0ce1c,transparent 58%);
 border-bottom-color: #293740; box-shadow: inset 0 -1px 0 #ae795144;
}
.sounding-station-console .playbar .power-nameplate { border-left-color: #c28b59; color: #eee6d8; }
.sounding-station-console .back-link { color: #d7dfe8; }
.sounding-station-console .back-link:hover { color: #fff0d5; }
.sounding-station-console .playbar-actions button {
 border-color: #c8c6ba53; border-bottom-color: #283745;
 background: linear-gradient(#646e79,#435362); color: #eee5d5;
 box-shadow: inset 0 1px 0 #f0e0c626,0 1px 0 #1e2d38;
}
.sounding-station-console .playbar-actions button:hover:not(:disabled) {
 border-color: #eadeca; background: #7b858e; color: #fff3dc;
}
.sounding-station-console .bank-rack,.sounding-station-console .round-rail {
 border-color: #1d2937; border-bottom-color: #b17b5147; border-right-color: #dcd0b84a;
 background: linear-gradient(100deg,#1d2b3a,#304252 46%,#283846);
 box-shadow: inset 2px 2px 4px #09162288,inset 0 0 0 1px #e8ddc912,0 1px 0 #e8d8bd1c;
}
.sounding-station-console .score-block::before {
 background: linear-gradient(115deg,#eee0c50e,transparent 47%),linear-gradient(180deg,#93999c50,#79839014);
 box-shadow: inset 0 1px 0 #e7ded125,inset 0 -1px 0 #bd865832,inset 0 2px 3px #1e2c3a40;
}
.sounding-station-console .score-block::after { background: #c18a5a; box-shadow: 0 0 2px #c18a5a38; }
.sounding-station-console .arena-frame {
 border-color: #ded2bd; border-bottom-color: #af7e54;
 background: linear-gradient(125deg,#e8ddc6,#c6c2b6 22%,#909ba7 64%,#b18b63);
 box-shadow: inset 0 1px 0 #fff0d253,inset 0 -1px 0 #475763,0 1px 0 #202e39;
}
.sounding-station-console .arena-wrap { border-color: #314251; }
.sounding-station-console .wave-block,.sounding-station-console .run-record,
.sounding-station-console .ship-status { border-color: #e2dacf31; }
.sounding-station-console #round-band { color: #e9e1d2; }
.sounding-station-console #ship-status-label { color: #dabc91; }
.sounding-station-console .chapter-progress span { background: #405061; border-color: #bac1cb; }
.sounding-station-console .chapter-progress .complete { background: #687b8c; border-color: #c79866; color: #fae5c0; }
.sounding-station-console .bank-rack.pack-full {
 border-color: #e2c49b; box-shadow: inset 0 0 6px #e2c49b25,inset 2px 2px 4px #40505e55;
}
@media (min-width:801px) {
 .sounding-station-console .play-layout::before {
  border-color: #ddd0b96b; border-bottom-color: #313d49;
  background:
   linear-gradient(180deg,transparent calc(16% - 1px),#2d3d4c78 16%,#bd885934 calc(16% + 1px),transparent calc(16% + 2px)),
   linear-gradient(180deg,transparent calc(84% - 1px),#2d3d4c78 84%,#bd885934 calc(84% + 1px),transparent calc(84% + 2px)),
   linear-gradient(100deg,#c3c0b4,#8796a4 32%,#d0c3aa 68%,#969fa5);
  box-shadow: inset 0 2px 0 #eaddc435,inset 0 -2px 0 #293b4b88,inset 2px 0 0 #e7d8bd25,inset -2px 0 0 #525e6766;
 }
}

/* Continuation 246: Deepwater Exchange 172–180. Paint only: submerged
   blue pressure casing, aged ivory seams and oxidized copper clamps. */
body.breakline-page.deepwater-exchange-console {
 background: linear-gradient(110deg,#b9b9a7 0,#687f82 2px,#17394c 21%,#245064 60%,#a89c80 calc(100% - 2px),#1c3947);
 box-shadow: inset 0 1px 0 #d9ddc73b,inset 0 -1px 0 #102631,inset 1px 0 0 #dedbc043,inset -1px 0 0 #46636a;
 --readout-main: #f4e9d2; --readout-cool: #e5eff5;
 --readout-label: #d0e0e8; --readout-secondary: #b8cfd9;
}
.deepwater-exchange-console .playbar {
 background: linear-gradient(180deg,#dce3cf16,transparent 58%);
 border-bottom-color: #142f3a; box-shadow: inset 0 -1px 0 #95725444;
}
.deepwater-exchange-console .playbar .power-nameplate { border-left-color: #a67b55; color: #e8e5d4; }
.deepwater-exchange-console .back-link { color: #d7e5ec; }
.deepwater-exchange-console .back-link:hover { color: #fff0d5; }
.deepwater-exchange-console .playbar-actions button {
 border-color: #a9c3c653; border-bottom-color: #143444;
 background: linear-gradient(#386173,#244858); color: #eee8d6;
 box-shadow: inset 0 1px 0 #e0dfc526,0 1px 0 #0d2835;
}
.deepwater-exchange-console .playbar-actions button:hover:not(:disabled) {
 border-color: #dddac4; background: #4a7180; color: #fff3dc;
}
.deepwater-exchange-console .bank-rack,.deepwater-exchange-console .round-rail {
 border-color: #102834; border-bottom-color: #92715547; border-right-color: #c7ccba4a;
 background: linear-gradient(100deg,#0d2735,#173a4c 46%,#123140);
 box-shadow: inset 2px 2px 4px #03131e88,inset 0 0 0 1px #d9dfcd12,0 1px 0 #d9d8bb1c;
}
.deepwater-exchange-console .score-block::before {
 background: linear-gradient(115deg,#e2e0c50e,transparent 47%),linear-gradient(180deg,#70959850,#4f778614);
 box-shadow: inset 0 1px 0 #d5ddd025,inset 0 -1px 0 #a47a5432,inset 0 2px 3px #10313e40;
}
.deepwater-exchange-console .score-block::after { background: #a67d58; box-shadow: 0 0 2px #a67d5838; }
.deepwater-exchange-console .arena-frame {
 border-color: #c8cdb8; border-bottom-color: #927358;
 background: linear-gradient(125deg,#d8d9bf,#9cafaa 22%,#557d89 64%,#937d5e);
 box-shadow: inset 0 1px 0 #e7ecd053,inset 0 -1px 0 #2a5261,0 1px 0 #112d39;
}
.deepwater-exchange-console .arena-wrap { border-color: #214b5b; }
.deepwater-exchange-console .wave-block,.deepwater-exchange-console .run-record,
.deepwater-exchange-console .ship-status { border-color: #d5dfd331; }
.deepwater-exchange-console #round-band { color: #e6e7d6; }
.deepwater-exchange-console #ship-status-label { color: #c9b897; }
.deepwater-exchange-console .chapter-progress span { background: #234b60; border-color: #afc7cd; }
.deepwater-exchange-console .chapter-progress .complete { background: #487687; border-color: #aa8863; color: #f5e4c4; }
.deepwater-exchange-console .bank-rack.pack-full {
 border-color: #d4c5a0; box-shadow: inset 0 0 6px #d4c5a025,inset 2px 2px 4px #294f6055;
}
@media (min-width:801px) {
 .deepwater-exchange-console .play-layout::before {
  border-color: #c8cfb96b; border-bottom-color: #183847;
  background:
   linear-gradient(180deg,transparent calc(16% - 1px),#173d4c78 16%,#97745634 calc(16% + 1px),transparent calc(16% + 2px)),
   linear-gradient(180deg,transparent calc(84% - 1px),#173d4c78 84%,#97745634 calc(84% + 1px),transparent calc(84% + 2px)),
   linear-gradient(100deg,#8da6a1,#3c6c7c 32%,#a3b4a4 68%,#4c7885);
  box-shadow: inset 0 2px 0 #d4ddc435,inset 0 -2px 0 #123a4b88,inset 2px 0 0 #d4dbbd25,inset -2px 0 0 #335c6966;
 }
}

/* Continuation 247: Seabed Cableworks 181–189. Paint only: deep slate-blue
   steel, dark bronze cable clamps, black rubber and aged ivory casing. */
body.breakline-page.seabed-cableworks-console {
 background: linear-gradient(110deg,#c8beaa 0,#8c877c 2px,#263e50 21%,#3b5060 60%,#b9a88c calc(100% - 2px),#2b3e4b);
 box-shadow: inset 0 1px 0 #efe0c941,inset 0 -1px 0 #111e2a,inset 1px 0 0 #dcccaf4a,inset -1px 0 0 #4f5455;
 --readout-main: #eee1c8; --readout-cool: #d9e5ef;
 --readout-label: #c4d1dd; --readout-secondary: #aebfcc;
}
.seabed-cableworks-console .playbar {
 background: linear-gradient(180deg,#ddcdae1c,transparent 58%);
 border-bottom-color: #192c3b; box-shadow: inset 0 -1px 0 #976b4144;
}
.seabed-cableworks-console .playbar .power-nameplate { border-left-color: #b48350; color: #ebe0ce; }
.seabed-cableworks-console .back-link { color: #cfdce6; }
.seabed-cableworks-console .back-link:hover { color: #fff0d0; }
.seabed-cableworks-console .playbar-actions button {
 border-color: #beb7a553; border-bottom-color: #1c303f;
 background: linear-gradient(#566976,#354e60); color: #ede1cd;
 box-shadow: inset 0 1px 0 #ebd6b226,0 1px 0 #172834;
}
.seabed-cableworks-console .playbar-actions button:hover:not(:disabled) {
 border-color: #dfcfb5; background: #71828d; color: #fff1d5;
}
.seabed-cableworks-console .bank-rack,.seabed-cableworks-console .round-rail {
 border-color: #121f29; border-bottom-color: #9e704847; border-right-color: #cbbb9c4a;
 background: linear-gradient(100deg,#172936,#263d4d 46%,#203440);
 box-shadow: inset 2px 2px 4px #06131e88,inset 0 0 0 1px #e0d1b612,0 1px 0 #dec8a61c;
}
.seabed-cableworks-console .score-block::before {
 background: linear-gradient(115deg,#e7d5b30e,transparent 47%),linear-gradient(180deg,#80929a50,#61798714);
 box-shadow: inset 0 1px 0 #ddcfb725,inset 0 -1px 0 #a4754732,inset 0 2px 3px #152c3c40;
}
.seabed-cableworks-console .score-block::after { background: #ab7947; box-shadow: 0 0 2px #ab794738; }
.seabed-cableworks-console .arena-frame {
 border-color: #d4c5a8; border-bottom-color: #996c43;
 background: linear-gradient(125deg,#ded0b4,#b7b6a8 22%,#788d9a 64%,#9c7950);
 box-shadow: inset 0 1px 0 #fae8c553,inset 0 -1px 0 #344c5c,0 1px 0 #162a38;
}
.seabed-cableworks-console .arena-wrap { border-color: #263f50; }
.seabed-cableworks-console .wave-block,.seabed-cableworks-console .run-record,
.seabed-cableworks-console .ship-status { border-color: #d9ccB431; }
.seabed-cableworks-console #round-band { color: #e6dac5; }
.seabed-cableworks-console #ship-status-label { color: #d3b286; }
.seabed-cableworks-console .chapter-progress span { background: #344d5d; border-color: #aebbc5; }
.seabed-cableworks-console .chapter-progress .complete { background: #5c7586; border-color: #b88955; color: #f6dfb5; }
.seabed-cableworks-console .bank-rack.pack-full {
 border-color: #dabb8c; box-shadow: inset 0 0 6px #dabb8c25,inset 2px 2px 4px #324b5b55;
}
@media (min-width:801px) {
 .seabed-cableworks-console .play-layout::before {
  border-color: #d1c0a16b; border-bottom-color: #263b49;
  background:
   linear-gradient(180deg,transparent calc(16% - 1px),#213b4c78 16%,#a7774434 calc(16% + 1px),transparent calc(16% + 2px)),
   linear-gradient(180deg,transparent calc(84% - 1px),#213b4c78 84%,#a7774434 calc(84% + 1px),transparent calc(84% + 2px)),
   linear-gradient(100deg,#b7b3a3,#708998 32%,#bca987 68%,#8295a0);
  box-shadow: inset 0 2px 0 #dfcdae35,inset 0 -2px 0 #1d354788,inset 2px 0 0 #dfc8a325,inset -2px 0 0 #42566466;
 }
}

/* Continuation 248: Trench Lift 190–198. Paint only: cool marine gunmetal,
   ribbed structural lift steel, restrained aged bronze clamps. */
body.breakline-page.trench-lift-console {
 background: linear-gradient(110deg,#8e9da3 0,#536672 2px,#233a49 21%,#344c5b 60%,#758690 calc(100% - 2px),#263c49);
 box-shadow: inset 0 1px 0 #c7d6df41,inset 0 -1px 0 #0d1d28,inset 1px 0 0 #aabdc84a,inset -1px 0 0 #465d6a;
 --readout-main: #e0e8ed; --readout-cool: #d7e5ed;
 --readout-label: #c2d1dc; --readout-secondary: #aabbc8;
}
.trench-lift-console .playbar {
 background: linear-gradient(180deg,#b7cbd81c,transparent 58%);
 border-bottom-color: #152b39; box-shadow: inset 0 -1px 0 #856b4d44;
}
.trench-lift-console .playbar .power-nameplate { border-left-color: #9c815d; color: #dce7ed; }
.trench-lift-console .back-link { color: #cadbe5; }
.trench-lift-console .back-link:hover { color: #edf7fc; }
.trench-lift-console .playbar-actions button {
 border-color: #91a7b253; border-bottom-color: #192f3d;
 background: linear-gradient(#506875,#304958); color: #dfe9ef;
 box-shadow: inset 0 1px 0 #c2d5df26,0 1px 0 #142833;
}
.trench-lift-console .playbar-actions button:hover:not(:disabled) {
 border-color: #c2d4df; background: #637d8b; color: #f0f8fc;
}
.trench-lift-console .bank-rack,.trench-lift-console .round-rail {
 border-color: #101e28; border-bottom-color: #886e4f47; border-right-color: #9db2bd4a;
 background: linear-gradient(100deg,#142733,#233c4b 46%,#1a303e);
 box-shadow: inset 2px 2px 4px #06121d88,inset 0 0 0 1px #b7cbd612,0 1px 0 #a8beca1c;
}
.trench-lift-console .score-block::before {
 background: linear-gradient(115deg,#b8cdd90e,transparent 47%),linear-gradient(180deg,#6d879650,#49667514);
 box-shadow: inset 0 1px 0 #b5c9d525,inset 0 -1px 0 #8d745532,inset 0 2px 3px #122a3a40;
}
.trench-lift-console .score-block::after { background: #927653; box-shadow: 0 0 2px #92765338; }
.trench-lift-console .arena-frame {
 border-color: #9daeb9; border-bottom-color: #806747;
 background: linear-gradient(125deg,#a6b6c0,#7e95a3 22%,#526f80 64%,#7d725b);
 box-shadow: inset 0 1px 0 #cfdee853,inset 0 -1px 0 #284552,0 1px 0 #122936;
}
.trench-lift-console .arena-wrap { border-color: #203b4c; }
.trench-lift-console .wave-block,.trench-lift-console .run-record,
.trench-lift-console .ship-status { border-color: #abc0cd31; }
.trench-lift-console #round-band { color: #d6e2eb; }
.trench-lift-console #ship-status-label { color: #c1ae8b; }
.trench-lift-console .chapter-progress span { background: #2d4a5b; border-color: #a6bccb; }
.trench-lift-console .chapter-progress .complete { background: #506f81; border-color: #a58b63; color: #e6e7dc; }
.trench-lift-console .bank-rack.pack-full {
 border-color: #c6b893; box-shadow: inset 0 0 6px #c6b89325,inset 2px 2px 4px #29495755;
}
@media (min-width:801px) {
 .trench-lift-console .play-layout::before {
  border-color: #99aebc6b; border-bottom-color: #203947;
  background:
   linear-gradient(180deg,transparent calc(16% - 1px),#1b394b78 16%,#8b725134 calc(16% + 1px),transparent calc(16% + 2px)),
   linear-gradient(180deg,transparent calc(84% - 1px),#1b394b78 84%,#8b725134 calc(84% + 1px),transparent calc(84% + 2px)),
   linear-gradient(100deg,#8096a3,#4e6d7f 32%,#7d8e93 68%,#5d7b8c);
  box-shadow: inset 0 2px 0 #b7cbd835,inset 0 -2px 0 #17334588,inset 2px 0 0 #aec3cf25,inset -2px 0 0 #3b566766;
 }
}

/* Continuation 249: Rescue Raft 199–207. Paint only: dusk-blue marine
   graphite, restrained rescue ochre and bronze, warm ivory readouts. */
body.breakline-page.rescue-raft-console {
 background: linear-gradient(110deg,#929b9c 0,#596975 2px,#263944 21%,#344853 60%,#7d888d calc(100% - 2px),#293b45);
 box-shadow: inset 0 1px 0 #d5d8d041,inset 0 -1px 0 #151e25,inset 1px 0 0 #bbbca64a,inset -1px 0 0 #485c66;
 --readout-main: #efe9d9; --readout-cool: #e2e8e7;
 --readout-label: #d2d8d7; --readout-secondary: #b8c3c5;
}
.rescue-raft-console .playbar {
 background: linear-gradient(180deg,#d7ceaf1c,transparent 58%);
 border-bottom-color: #1b2a32; box-shadow: inset 0 -1px 0 #a87c4544;
}
.rescue-raft-console .playbar .power-nameplate { border-left-color: #b88a49; color: #eee7d8; }
.rescue-raft-console .back-link { color: #d8dfdc; }
.rescue-raft-console .back-link:hover { color: #fff6e2; }
.rescue-raft-console .playbar-actions button {
 border-color: #b5b19b53; border-bottom-color: #21323a;
 background: linear-gradient(#536771,#354b57); color: #eae8dc;
 box-shadow: inset 0 1px 0 #d8d3bc26,0 1px 0 #1b282f;
}
.rescue-raft-console .playbar-actions button:hover:not(:disabled) {
 border-color: #d2c7a7; background: #617781; color: #fff5df;
}
.rescue-raft-console .bank-rack,.rescue-raft-console .round-rail {
 border-color: #182328; border-bottom-color: #a77b4247; border-right-color: #afbab84a;
 background: linear-gradient(100deg,#192b35,#273e4a 46%,#20323d);
 box-shadow: inset 2px 2px 4px #101a2188,inset 0 0 0 1px #d1cbb812,0 1px 0 #c2c4b81c;
}
.rescue-raft-console .score-block::before {
 background: linear-gradient(115deg,#dbd3ba0e,transparent 47%),linear-gradient(180deg,#73848a50,#4b626d14);
 box-shadow: inset 0 1px 0 #d4ceb425,inset 0 -1px 0 #a2794432,inset 0 2px 3px #1b2b3540;
}
.rescue-raft-console .score-block::after { background: #af8144; box-shadow: 0 0 2px #af814438; }
.rescue-raft-console .arena-frame {
 border-color: #b4b9b4; border-bottom-color: #956d3c;
 background: linear-gradient(125deg,#adb7b8,#81939b 22%,#556e7a 64%,#928161);
 box-shadow: inset 0 1px 0 #e0dece53,inset 0 -1px 0 #30464f,0 1px 0 #20323d;
}
.rescue-raft-console .arena-wrap { border-color: #2a424f; }
.rescue-raft-console .wave-block,.rescue-raft-console .run-record,
.rescue-raft-console .ship-status { border-color: #c9c8b831; }
.rescue-raft-console #round-band { color: #ece6d8; }
.rescue-raft-console #ship-status-label { color: #d2b77f; }
.rescue-raft-console .chapter-progress span { background: #374d58; border-color: #b5c0bd; }
.rescue-raft-console .chapter-progress .complete { background: #596f79; border-color: #b38b4e; color: #f1e7ca; }
.rescue-raft-console .bank-rack.pack-full {
 border-color: #dbbd7d; box-shadow: inset 0 0 6px #dbbd7d25,inset 2px 2px 4px #3c515b55;
}
@media (min-width:801px) {
 .rescue-raft-console .play-layout::before {
  border-color: #b7bab06b; border-bottom-color: #2a3d47;
  background:
   linear-gradient(180deg,transparent calc(16% - 1px),#283f4a78 16%,#a57b4634 calc(16% + 1px),transparent calc(16% + 2px)),
   linear-gradient(180deg,transparent calc(84% - 1px),#283f4a78 84%,#a57b4634 calc(84% + 1px),transparent calc(84% + 2px)),
   linear-gradient(100deg,#86989f,#536f7d 32%,#899494 68%,#697f89);
  box-shadow: inset 0 2px 0 #d1cfba35,inset 0 -2px 0 #223b4688,inset 2px 0 0 #c8cbb825,inset -2px 0 0 #43596466;
 }
}

/* Optional local scenario recovery, separate from full-run scoring. */
.outcome-panel .recovery-note { margin: 0 0 2px; color: #a8b9b9; font: 400 11px/1.45 "Power Banks Instrument",Arial,sans-serif; }
#recover-scenario { font-family: "Power Banks Instrument",Arial,sans-serif; color: #d3e3dc; }

/* Direct access within the temporary stage/scene picker. */
.jump-find { display:grid;gap:7px;margin:16px 0; }
.jump-find label { color:#bedddc;font:600 12px/1.3 var(--instrument); }
.jump-find input { width:100%;min-height:42px;padding:9px 12px;border:1px solid #58767c;border-radius:2px;background:#0e222c;color:#e1eee9;font:400 15px/1.4 var(--instrument); }
.jump-find input::placeholder { color:#92aeb5;opacity:1; }
.jump-find input:focus-visible { outline:2px solid #d8c68f;outline-offset:2px; }
.jump-dialog #jump-chapters[hidden] { display:none; }
.jump-matches { display:grid;grid-template-columns:1fr 1fr;gap:8px;max-height:max(120px,calc(100vh - 410px));overflow-y:auto;padding:3px; }
.jump-matches button { display:grid;gap:5px;text-align:left;align-content:start;min-height:65px; }
.jump-matches strong { font-size:13px;font-weight:600; }
.jump-matches span { color:#a8bec8;font-size:11px;font-weight:400; }
