/* Hallmark · macrostructure: working console with route-map interstitials · tone: LCARS · anchor hue: peach/lavender
 * pre-emit critique: P5 H4 E4 S5 R4 V3 · established LCARS system preserved by request
 * theme: custom · paper: oklch(0% 0 0) · display/body: Antonio
 * Palette audit: tested text pairs >= 7.68:1, with explicit hover, disabled, selected and focus states.
 * Desktop browser checks cover gameplay selection, destination states, and assisted reading history.
 */
@import url('./tokens.css');
@font-face {font-family:'Antonio';src:url('./fonts/antonio-600.ttf') format('truetype');font-weight:600;font-display:swap}
:root {--p-rail:20px;--p-curve:36px;--p-chart:oklch(12% .025 267);--p-line:oklch(36% .07 273);--p-white:oklch(98% .01 90);--p-negative:oklch(69% .16 29);--p-shadow:oklch(0% 0 0 / .88);--p-gap:12px;--p-motion:600ms}
*{box-sizing:border-box}html,body{margin:0;overflow-x:clip}body{background:var(--color-paper);color:var(--color-ink);font-family:var(--font-body);font-size:16px;line-height:1.5}h1,h2,h3,h4,p{margin:0}h1,h2,h3,h4,button,summary,.wordmark,.readout,.nav-label{font-family:var(--font-display);font-weight:600;text-transform:uppercase;font-style:normal}h1,h2,h3,h4{min-width:0;overflow-wrap:anywhere}h1{font-size:2rem;line-height:1.15;color:var(--color-accent)}h2{font-size:1.65rem;line-height:1.2}h3{font-size:1.25rem}button{min-height:44px;border:0;border-radius:var(--radius-pill);padding:8px 20px;background:var(--color-medium);color:var(--color-accent-ink);font-size:1.05rem;cursor:pointer;white-space:nowrap}button:hover:enabled{background:var(--p-white)}button:active:enabled{background:var(--color-hard)}button:disabled{background:var(--color-disabled);color:var(--color-disabled-ink);cursor:not-allowed}button.primary{background:var(--color-accent)}button.primary:hover:enabled{background:var(--p-white)}button.secondary{background:var(--color-hard)}button.text-button{background:var(--color-transparent);color:var(--color-muted);text-decoration:underline}button.text-button:hover{color:var(--p-white)}a{color:var(--color-accent);text-underline-offset:3px}a:hover{color:var(--p-white)}a:active{color:var(--color-hard)}:focus-visible{outline:3px solid var(--p-white);outline-offset:4px}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.skip{position:fixed;top:8px;left:8px;z-index:100;transform:translateY(-150%);padding:16px;background:var(--color-paper)}.skip:focus{transform:translateY(0)}.console{max-width:1060px;padding:0 16px;margin:16px auto}.masthead{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:0 0 12px 20px;border-left:var(--p-rail) solid var(--color-accent);border-bottom:12px solid var(--color-accent);border-bottom-left-radius:var(--p-curve);min-height:72px}.wordmark{font-size:2.25rem;line-height:1.15;text-decoration:none;letter-spacing:-.02em}.header-actions{display:flex;gap:4px}.header-actions button{background:var(--color-hard);padding:8px 16px}#screen{position:relative;margin-top:8px;padding:16px 0 24px 40px;min-height:440px}#screen::before{content:'';position:absolute;left:0;top:0;bottom:0;width:var(--p-rail);background:var(--color-accent)}#screen:focus{outline:0}footer{border-left:var(--p-rail) solid var(--color-medium);border-top:12px solid var(--color-medium);border-top-left-radius:var(--p-curve);padding:16px 0 8px 20px;display:flex;justify-content:space-between;gap:16px;font-size:.75rem;color:var(--color-muted)}footer a{min-height:32px}.screen-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px}.screen-head p{color:var(--color-muted);margin-top:8px;max-width:65ch}.screen-head .actions{flex-shrink:0}.actions{display:flex;flex-wrap:wrap;gap:8px}.eyeline{font-family:var(--font-display);font-size:1rem;text-transform:uppercase;color:var(--color-medium);margin-bottom:8px}.chart{position:relative;background:var(--p-chart);border-top:8px solid var(--color-medium);border-bottom:8px solid var(--color-hard);border-radius:36px 0 36px 0;overflow:hidden}.chart svg{display:block;width:100%;height:auto;max-height:340px}.chart text{font-family:var(--font-display);font-size:20px;fill:var(--color-ink)}.chart .chart-grid{stroke:var(--p-line);stroke-width:1;fill:none;opacity:.55}.chart .course{fill:none;stroke:var(--color-hard);stroke-width:3;stroke-dasharray:6 8}.chart .route-passed{stroke:var(--color-accent);stroke-dasharray:none}.chart .node{fill:var(--color-paper);stroke:var(--color-medium);stroke-width:3}.chart .node.current{stroke:var(--color-accent);stroke-width:5}.chart .node.credited{fill:var(--color-accent);stroke:var(--color-accent)}.chart .node.assisted{stroke:var(--color-tricky);stroke-dasharray:4 3}.chart .node.locked{stroke:var(--p-line)}.chart .node-halo{fill:none;stroke:var(--color-accent);stroke-width:1;opacity:.5}.chart .ship{fill:var(--p-white);stroke:var(--color-paper);stroke-width:2}.chart .star{fill:var(--color-muted)}.chart .dim-label{fill:var(--color-muted);font-size:16px}.chart-key{display:flex;gap:20px;flex-wrap:wrap;font-size:.875rem;color:var(--color-muted);margin:12px 0}.key-marker{display:inline-block;width:12px;height:12px;border-radius:50%;background:var(--color-accent);margin-right:8px}.key-marker.assisted{background:var(--color-transparent);border:2px dashed var(--color-tricky)}.route-stops{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:16px}.route-stop{background:var(--color-panel);color:var(--color-medium);border:1px solid var(--p-line);border-radius:0;text-align:left;padding:16px}.route-stop strong{display:block;font-size:1.3rem}.route-stop span{display:block;font:14px var(--font-body);margin-top:8px;white-space:normal;line-height:1.5}.route-stop.active{border-color:var(--color-accent);color:var(--color-accent)}.route-stop:hover:enabled{color:var(--color-accent-ink)}.destination-brief{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-top:24px}.destination-brief p{max-width:60ch;color:var(--color-muted)}.destination-brief button{flex-shrink:0}.stage-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:16px 0}.stage-card{border-radius:0;text-align:left;padding:16px;background:var(--color-panel);color:var(--color-ink);border-top:6px solid var(--group-color,var(--color-medium));white-space:normal}.stage-card span{display:block;font-size:.875rem;font-family:var(--font-body);text-transform:none;margin-top:8px;line-height:1.5}.stage-card strong{font-size:1.1rem}.stage-card:disabled{background:var(--color-panel);color:var(--color-muted)}.stage-card.credited{border-color:var(--color-accent)}.stage-card.assisted{border-color:var(--color-tricky)}.mission-meta{font-size:.875rem;color:var(--color-muted);margin-bottom:8px}.game-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}.game-head h1{font-size:1.55rem}.stage-readout{font-family:var(--font-display);color:var(--color-hard);text-transform:uppercase;white-space:nowrap}.feedback{font-size:.875rem;color:var(--color-accent);margin-bottom:12px}.feedback:empty{display:none}.board{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.tile{position:relative;white-space:normal;overflow-wrap:anywhere;min-height:84px;padding:12px 8px;background:var(--color-tile);font-size:1.22rem;line-height:1.3;border-radius:16px}.tile[data-color]{background:var(--group-color)}.tile[aria-pressed='true']{outline:3px solid var(--p-white);outline-offset:-6px;box-shadow:inset 0 0 0 7px var(--color-paper)}.tile .group-marker{position:absolute;right:8px;top:4px;font-size:.7rem;font-family:var(--font-body);line-height:1.2;border-bottom:1px solid currentColor}.level-1{--group-color:var(--color-easy)}.level-2{--group-color:var(--color-medium)}.level-3{--group-color:var(--color-hard)}.level-4{--group-color:var(--color-tricky)}.solved{grid-column:1/-1;min-height:84px;display:flex;flex-direction:column;justify-content:center;text-align:center;background:var(--group-color);color:var(--color-accent-ink);border-radius:32px;padding:12px 20px}.solved h2{font-size:1.2rem;margin-bottom:4px}.solved p{font-size:.875rem}.power-console{border-top:8px solid var(--color-hard);margin-top:20px;padding-top:12px}.power-labels{display:flex;justify-content:space-between;font-family:var(--font-display);text-transform:uppercase;color:var(--color-accent);font-size:1.1rem}.power-labels span:last-child{color:var(--color-hard)}.power-gauge{height:44px;position:relative;margin:8px 0}.unit-slot{position:absolute;width:20px;height:36px;border:1px solid var(--p-line);border-radius:10px;top:4px}.unit-slot.left{left:calc(var(--slot)*28px)}.unit-slot.right{left:calc(100% - 104px + var(--slot)*28px)}.power-unit{position:absolute;min-height:36px;height:36px;width:20px;padding:0;border-radius:10px;background:var(--color-accent);top:4px;left:calc(var(--slot)*28px)}.power-unit.diverted{left:calc(100% - 104px + var(--slot)*28px);background:var(--color-hard)}.power-unit.offline{background:var(--color-paper);border:1px solid var(--p-line);color:var(--color-muted);cursor:default}.power-unit.reserve[draggable='true']{cursor:grab}.power-direction{position:absolute;left:50%;top:8px;transform:translateX(-50%);font-size:1.4rem;color:var(--color-muted)}.sensor-target{position:absolute;right:-4px;top:0;width:112px;height:44px;border-radius:12px}.sensor-target.drag-over{outline:2px dashed var(--p-white);outline-offset:4px}.power-info{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:.875rem;color:var(--color-muted)}.game-actions{display:grid;grid-template-columns:1fr 1fr 1.4fr;gap:8px;margin-top:16px}.assisted-notice{color:var(--color-tricky);font-size:.875rem;margin-top:8px}.scan-library{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.scan-library button{font-size:.9rem;background:var(--color-panel);border:1px solid var(--color-hard);color:var(--color-hard);padding:8px 16px}.selection-count{font-size:.75rem;color:var(--color-muted);margin-top:8px;text-align:right}.history{margin-top:24px;border-top:1px solid var(--color-border);padding-top:16px}.history summary{cursor:pointer;min-height:44px;color:var(--color-medium)}.history ol{list-style:none;padding:0;margin:0}.history li{padding:12px 0;border-bottom:1px solid var(--color-border);font-size:.875rem}.pattern{display:flex;align-items:center;gap:8px;margin-bottom:8px}.pattern .cluster{display:flex;gap:4px;padding:4px;border:1px solid var(--color-border);border-radius:4px}.pattern i{display:block;width:16px;height:16px;background:var(--color-medium);border-radius:4px}.history-tiles{display:flex;gap:4px;flex-wrap:wrap;margin-top:8px}.history-tiles span{padding:4px 8px;background:var(--group-color,var(--color-panel));color:var(--color-accent-ink);border-radius:4px}.history p{color:var(--color-muted)}.compact-chart svg{max-height:176px}.review-head{display:flex;justify-content:space-between;align-items:baseline;gap:16px;margin:20px 0 12px}.review-head p{color:var(--color-muted);font-size:.875rem}.group-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:16px}.group-tabs button{background:var(--group-color);font-size:.95rem;padding:8px;min-height:44px}.group-tabs button[aria-pressed='true']{background:var(--color-paper);color:var(--group-color);box-shadow:inset 0 0 0 2px var(--group-color)}.set-story{padding:16px 0;border-top:8px solid var(--group-color);}.set-story h3{font-size:1.5rem;color:var(--group-color);margin-bottom:8px}.set-story p{max-width:70ch}.trivia-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:16px}.trivia-card{border:1px solid var(--color-border);border-top:8px solid var(--color-medium);border-radius:24px 0 24px 0;overflow:hidden;min-width:0}.card-art{position:relative;aspect-ratio:16/9;background:var(--p-chart);overflow:hidden;border-bottom:1px solid var(--color-border)}.card-art img{width:100%;height:100%;object-fit:cover;display:block}.card-art .archive-face{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:8px;width:100%;height:100%;padding:20px;text-align:center}.archive-face .archive-name{font-family:var(--font-display);color:var(--color-medium);font-size:2.2rem;text-transform:uppercase;line-height:1.15;overflow-wrap:anywhere}.archive-face .archive-label{font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:var(--color-muted)}.card-body{padding:20px}.card-body h3{font-size:1.5rem;color:var(--color-accent);margin-bottom:4px}.card-episode{font-size:.75rem;color:var(--color-muted);margin-bottom:12px}.card-body p{max-width:65ch}.card-links{display:flex;gap:12px;flex-wrap:wrap;margin-top:16px;font-size:.875rem}.card-links a{min-height:32px;display:inline-flex;align-items:center}.image-credit{font-size:.75rem;color:var(--color-muted);padding:8px 12px}.production{margin:20px 0;padding:16px 0;border-top:4px solid var(--color-hard)}.production h3{color:var(--color-hard);margin-bottom:8px}.production p{max-width:65ch}.production a{display:inline-block;margin-top:8px;font-size:.875rem}.report-total{display:flex;align-items:center;gap:20px;margin:20px 0}.report-total strong{font-family:var(--font-display);font-size:3.5rem;line-height:1;color:var(--color-accent)}.report-total p{max-width:52ch;color:var(--color-muted)}.report-list{list-style:none;margin:20px 0;padding:0}.report-list li{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px 0;border-top:1px solid var(--color-border)}.report-list h3{margin-bottom:4px}.report-list p{color:var(--color-muted);font-size:.875rem}.transit-title{margin-bottom:16px}.transit .chart{margin:20px 0}.transit-status{color:var(--color-muted);font-size:.875rem}.transit .course{stroke-dasharray:8 8;animation:course-flow 1s linear infinite}.ship-travel{offset-rotate:auto;animation:travel var(--travel-duration,1400ms) var(--ease-out) both}.demo-banner{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:8px 0 0 40px;color:var(--color-hard);font-size:.875rem}.demo-banner button{background:var(--color-transparent);color:var(--color-hard);font-size:.95rem;text-decoration:underline;padding:4px 8px}.preview-note{margin-top:20px;font-size:.875rem;color:var(--color-muted);max-width:65ch}.stage-status{color:var(--color-accent)}.stage-status.assisted{color:var(--color-tricky)}dialog{background:var(--color-paper);color:var(--color-ink);border:0;border-left:12px solid var(--color-accent);border-top:12px solid var(--color-accent);border-radius:36px 0 0 0;width:min(660px,calc(100% - 24px));max-height:calc(100dvh - 32px);padding:24px;overscroll-behavior:contain}dialog::backdrop{background:var(--p-shadow)}dialog>p{margin:16px 0;max-width:65ch}dialog h2{color:var(--color-accent);margin:8px 0 20px}.close{float:right;background:var(--color-hard);margin:0 0 12px 16px;padding:8px 16px}.preview-links{display:grid;gap:8px;margin:20px 0}.preview-links button{text-align:left;white-space:normal;border-radius:0}.scan-context{font-size:.875rem;color:var(--color-hard);padding-bottom:16px;clear:both}#card-dialog .trivia-card{border:0;border-radius:0}#card-dialog .card-body{padding:20px 0}#card-dialog .card-art{border-radius:20px 0 20px 0}.scanned-color{display:inline-block;padding:4px 12px;background:var(--group-color);color:var(--color-accent-ink);border-radius:16px;font-size:.875rem;margin-bottom:16px}
@keyframes course-flow{to{stroke-dashoffset:-32}}@keyframes travel{from{offset-distance:0%}to{offset-distance:100%}}
@media(max-width:760px){.screen-head{align-items:flex-start}.screen-head .actions{flex-shrink:1}.stage-list{grid-template-columns:repeat(2,minmax(0,1fr))}.destination-brief{align-items:flex-start}.chart svg{min-height:160px}.compact-chart svg{min-height:120px}.card-body{padding:16px}.tile{font-size:1.05rem}.screen-head h1{font-size:1.7rem}}
@media(max-width:540px){:root{--p-rail:12px;--p-curve:28px}.console{padding:0 8px;margin:8px auto}.masthead{padding-left:12px;gap:8px;min-height:60px;padding-bottom:8px}.wordmark{font-size:clamp(1.45rem,6vw,1.85rem)}.header-actions button{font-size:.875rem;padding:8px}.header-actions{gap:4px}#screen{padding:12px 0 20px 24px;min-height:420px}.screen-head{display:block;margin-bottom:16px}.screen-head .actions{margin-top:16px}.screen-head p{font-size:.875rem}.route-stops{grid-template-columns:1fr}.route-stop{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px}.route-stop span{margin:0;text-align:right}.destination-brief{display:block}.destination-brief button{margin-top:16px}.chart{border-radius:24px 0 24px 0}.chart svg{min-height:150px}.stage-list{gap:8px}.stage-card{padding:12px}.game-head{gap:8px}.game-head h1{font-size:1.3rem}.stage-readout{font-size:.875rem}.board{gap:4px}.tile{min-height:76px;font-size:.96rem;padding:8px 4px;border-radius:12px}.solved{min-height:76px;padding:12px;border-radius:24px}.solved h2{font-size:1rem}.solved p{font-size:.75rem}.power-console{margin-top:12px}.power-info{align-items:center;font-size:.75rem}.power-info button{font-size:.95rem;padding:8px 16px}.power-direction{font-size:1.1rem}.game-actions{gap:4px;margin-top:12px}.game-actions button{padding:8px;font-size:1rem}.trivia-grid{grid-template-columns:1fr;gap:16px}.group-tabs{gap:4px}.group-tabs button{font-size:.875rem}.review-head{display:block}.review-head p{margin-top:8px}.report-total{gap:16px}.report-total strong{font-size:2.8rem}.report-total p{font-size:.875rem}.report-list li{gap:8px}.report-list button{font-size:.9rem;padding:8px 12px}footer{padding-left:12px;font-size:.75rem;gap:8px}.demo-banner{margin-left:24px;font-size:.75rem}.demo-banner button{font-size:.875rem;white-space:normal}dialog{padding:16px;border-left-width:8px;border-top-width:8px}.chart-key{gap:12px;font-size:.75rem}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.power-unit.offline{display:grid;place-items:center}.power-unit.diverted{pointer-events:none}.card-art img.actor-portrait{object-position:center 24%}
@media(max-width:360px){.wordmark{font-size:1.35rem}.header-actions button{padding:8px 6px}.header-actions{gap:2px}.masthead{gap:4px}}

/* LCARS readability pass: clear inversion, normal cursor, compact signal history. */
:root{--font-body:var(--font-display);--color-disabled:oklch(21% .015 270);--color-disabled-ink:oklch(74% .015 270);--color-tile:oklch(91% .04 250);--color-tile-selected:oklch(4% .005 250);--color-selected-ink:oklch(98% .01 90);--color-history-1:oklch(87% .06 260);--color-history-2:oklch(64% .04 260);--color-history-3:oklch(43% .02 260);--color-history-4:oklch(26% .015 260)}
body{font-size:18px;letter-spacing:.015em}p,.power-info,.stage-readout,.selection-count,.image-credit,.card-episode,.card-links,.preview-note,footer{font-family:var(--font-display)}
button:disabled{background:var(--color-disabled);color:var(--color-disabled-ink);box-shadow:inset 0 0 0 2px var(--color-border);cursor:default;opacity:1}
.tile{color:var(--color-accent-ink);font-size:1.25rem;box-shadow:none}
.tile:hover:enabled{background:var(--color-tile-hover);color:var(--color-accent-ink)}
.tile[aria-pressed='true'],.tile[aria-pressed='true']:hover:enabled{background:var(--color-tile-selected);color:var(--color-selected-ink);outline:0;box-shadow:inset 0 0 0 4px var(--color-accent)}
.tile[data-color]{border-bottom:8px solid var(--group-color);background:var(--group-color)}
.tile[data-color][aria-pressed='true']{background:var(--color-tile-selected);box-shadow:inset 0 0 0 4px var(--group-color)}
.tile:focus-visible{outline:3px solid var(--p-white);outline-offset:3px}
.power-info{font-size:1.1rem;text-transform:uppercase;letter-spacing:.04em;color:var(--color-hard)}
.power-direction{width:64px;height:18px;top:13px;background:var(--color-hard);clip-path:polygon(0 30%,65% 30%,65% 0,100% 50%,65% 100%,65% 70%,0 70%)}
.history{margin-top:16px;padding-top:12px}.history-list{display:grid;gap:6px}.history li.history-row{display:grid;grid-template-columns:100px minmax(0,1fr);align-items:center;gap:12px;padding:0;border:0;min-height:24px}.history-blocks{display:flex;gap:4px;align-items:center}.history-cluster{display:flex;gap:2px}.history-dot{width:20px;height:20px;border-radius:3px;display:block;background:var(--color-history-1);border:1px solid var(--color-muted)}.history-dot.anonymous-1{background:var(--color-history-2)}.history-dot.anonymous-2{background:var(--color-history-3)}.history-dot.anonymous-3{background:var(--color-history-4)}.history-dot.found{background:var(--color-accent)}.history-dot.resolved{background:var(--group-color)}.history p.history-words{font-size:.875rem;line-height:1.4;color:var(--color-ink);text-transform:uppercase}.stage-card:disabled{color:var(--color-disabled-ink);border-top-color:var(--color-border)}
@media(max-width:540px){.tile{font-size:1rem}.history li.history-row{grid-template-columns:84px minmax(0,1fr);gap:8px}.history-dot{width:17px;height:17px}.history-blocks{gap:3px}.history-cluster{gap:1px}.power-info{font-size:1rem}}
.tile[aria-pressed='true'],.tile[aria-pressed='true']:hover:enabled{background:var(--color-selected);color:var(--color-accent-ink);outline:0;box-shadow:inset 0 0 0 3px var(--color-accent-ink),inset 0 0 0 6px var(--p-white)}
.tile[data-color][aria-pressed='true'],.tile[data-color][aria-pressed='true']:hover:enabled{background:var(--color-selected);color:var(--color-accent-ink);border-bottom-color:var(--group-color);box-shadow:inset 0 0 0 3px var(--color-accent-ink),inset 0 0 0 6px var(--p-white)}
.stage-card:hover:enabled,.stage-card:active:enabled,.route-stop:hover:enabled,.route-stop:active:enabled,.scan-library button:hover:enabled,.scan-library button:active:enabled{background:var(--p-white);color:var(--color-accent-ink)}
.stage-card:hover:enabled span,.stage-card:active:enabled span,.route-stop:hover:enabled span,.route-stop:active:enabled span{color:var(--color-accent-ink)}
.tile[aria-pressed='true']:focus-visible{outline:3px solid var(--p-white);outline-offset:3px}
/* Full expedition: compact LCARS controls with paired foreground/background states. */
:root{--color-focus:oklch(98% .01 90);--color-offline:oklch(32% .02 270);--color-label:oklch(84% .025 270)}
body{font-size:18px;line-height:1.55}button:hover:enabled{background:var(--p-white);color:var(--color-accent-ink)}button:active:enabled{background:var(--color-selected);color:var(--color-accent-ink)}
button.text-button:hover:enabled,button.text-button:active:enabled{background:var(--color-transparent);color:var(--p-white)}
.group-tabs button[aria-pressed='true']:hover:enabled,.group-tabs button[aria-pressed='true']:active:enabled{background:var(--color-paper);color:var(--group-color)}
.scan-library button:hover:enabled,.scan-library button:active:enabled{background:var(--p-white);color:var(--color-accent-ink)}
.tile[aria-pressed='true']:hover:enabled,.tile[aria-pressed='true']:active:enabled{background:var(--color-selected);color:var(--color-accent-ink)}
.tile[data-color]:not([aria-pressed='true']):hover:enabled{background:var(--group-color);color:var(--color-accent-ink);box-shadow:inset 0 0 0 3px var(--color-paper)}
.stage-card span{font-size:1rem}.stage-card:hover:enabled,.stage-card:active:enabled{background:var(--p-white);color:var(--color-accent-ink)}
button:disabled{border-color:var(--color-border);background:var(--color-disabled);color:var(--color-disabled-ink);cursor:default;opacity:1}
:focus-visible{outline:3px solid var(--color-focus);outline-offset:4px}
.destination-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:16px}.destination-list .route-stop{white-space:normal}.destination-list .route-stop:last-child:nth-child(odd){grid-column:1/-1}.route-pagination{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:16px}.route-pagination span{color:var(--color-label)}.key-marker.locked{background:var(--color-offline);border-radius:0}.chart-key{font-size:1rem}.chart .node.locked{stroke:var(--color-offline);fill:var(--color-paper)}
.power-unit.offline{background:var(--color-offline);border:2px solid var(--color-label);clip-path:polygon(0 0,100% 0,100% 32%,0 68%,0 0,0 78%,100% 42%,100% 100%,0 100%)}
.power-console{margin-top:12px}.power-info{font-size:1.1rem;line-height:1.3;min-height:44px}.sensor-status{padding:6px 12px;background:var(--color-hard);color:var(--color-accent-ink);border-radius:20px 0 0 20px}.power-unit{min-height:40px;height:40px;top:2px}.unit-slot{height:40px;top:2px}.power-unit.reserve:disabled{background:var(--color-accent);box-shadow:none;opacity:.7}.power-unit.reserve:hover:enabled{background:var(--p-white)}
.transmission{margin:16px 0;padding:12px 16px;border-left:8px solid var(--color-hard);background:var(--color-panel)}.transmission h2{font-size:1rem;color:var(--color-hard);margin-bottom:4px}.transmission p{font-size:1.1rem;color:var(--color-ink)}
.card-body p:not(.card-episode){font-size:1.15rem;line-height:1.55}.card-episode,.image-credit{font-size:.875rem}.card-links{font-size:1rem}.card-links a{min-height:40px}.production a{font-size:1rem}.production p,.set-story p{font-size:1.15rem}.card-art{aspect-ratio:16/9}.archive-face .archive-label{font-size:.875rem}.stage-status{font-size:1rem!important}.stage-card strong{font-size:1.2rem}.preview-note{font-size:1rem}.game-head h1{font-size:1.6rem}.stage-readout{font-size:1rem}.transfer-controls{display:flex;gap:8px;flex-wrap:wrap;margin-top:24px}.loading-readout{margin-top:12px;color:var(--color-hard)}footer{align-items:center;font-size:.875rem}footer .text-button{font-size:.9rem;padding:4px 8px}.history-words{overflow-wrap:anywhere}.history-row{border-left:0}.group-tabs button{white-space:nowrap}.game-actions{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.4fr)}
/* A group remains distinguishable by its lower-edge motif when color is unavailable. */
.tile[data-color='1']{border-bottom-style:solid}.tile[data-color='2']{border-bottom-style:double}.tile[data-color='3']{border-bottom-style:dashed}.tile[data-color='4']{border-bottom-style:dotted}
@media(max-width:540px){.destination-list{grid-template-columns:minmax(0,1fr)}.route-pagination button{padding:8px 12px}.route-pagination{gap:8px}.game-head{align-items:flex-start}.game-head h1{font-size:1.3rem}.stage-readout{font-size:.875rem;white-space:normal;text-align:right;max-width:40%}.sensor-status{font-size:.95rem;padding:6px 8px}.power-info{font-size:1rem}.group-tabs button{font-size:.8rem;padding:8px 4px}.card-body p:not(.card-episode){font-size:1.1rem}.stage-card span{font-size:.9rem}.stage-card strong{font-size:1.1rem}.report-list h3{font-size:1.1rem}.report-list p{font-size:.9rem}footer{font-size:.8rem}.chart-key{font-size:.9rem}}
@media(forced-colors:active){.tile[aria-pressed='true']{border:4px solid Highlight;outline:2px solid ButtonText;outline-offset:-8px;forced-color-adjust:auto}.history-dot{forced-color-adjust:none}.tile[data-color]{border-bottom-width:8px}.power-unit{border:2px solid ButtonText}}
.tile[data-color]{background-clip:padding-box}.history-dot.resolved{background-clip:padding-box;border-bottom:4px solid var(--group-color)}.history-dot.level-2.resolved{border-bottom-style:double}.history-dot.level-3.resolved{border-bottom-style:dashed}.history-dot.level-4.resolved{border-bottom-style:dotted}
.power-unit.offline{clip-path:none;background:var(--color-offline);border:1px solid var(--color-label)}.power-unit.offline::after{content:'';position:absolute;left:0;right:0;top:45%;height:4px;background:var(--color-paper);transform:rotate(-30deg)}
