:root{color-scheme:dark;accent-color:var(--brass);--surface: rgba(17, 27, 37, .88);--surface-solid: #111b25;--surface-deep: #0d141a;--surface-hover: rgba(30, 40, 50, .92);--fill-1: rgba(255, 255, 255, .03);--fill-2: rgba(255, 255, 255, .05);--fill-3: rgba(255, 255, 255, .08);--fill-4: rgba(255, 255, 255, .16);--scrim: radial-gradient(ellipse at center, rgba(17, 27, 37, .55), rgba(10, 14, 18, .85));--scrim-flat: rgba(10, 14, 18, .7);--scrim-art: linear-gradient(90deg, rgba(10, 16, 22, .9) 0%, rgba(10, 16, 22, .55) 55%, rgba(10, 16, 22, .15) 100%);--scrim-art-dim: linear-gradient(90deg, rgba(10, 16, 22, .92), rgba(10, 16, 22, .78));--scrim-art-tall: linear-gradient(180deg, rgba(10, 16, 22, .85) 0%, rgba(10, 16, 22, .6) 45%, rgba(10, 16, 22, .8) 100%);--preview-ground: #2a3138;--ink: #ece6d6;--ink-dim: #b4bbbd;--ink-faint: #7d888c;--ink-on-brass: #1b1408;--ink-on-signal: #fff;--line: rgba(217, 164, 65, .28);--line-soft: rgba(255, 255, 255, .08);--brass: #d9a441;--brass-hi: #f0c46a;--brass-wash-1: color-mix(in srgb, var(--brass) 8%, transparent);--brass-wash-2: color-mix(in srgb, var(--brass) 15%, transparent);--brass-wash-3: color-mix(in srgb, var(--brass) 24%, transparent);--brass-feature: linear-gradient(135deg, var(--brass-wash-3), var(--brass-wash-1));--brass-feature-strong: linear-gradient(135deg, color-mix(in srgb, var(--brass) 34%, transparent), var(--brass-wash-2));--brass-plate: linear-gradient(180deg, color-mix(in srgb, var(--brass-hi) 55%, var(--brass)), var(--brass));--brass-plate-hi: linear-gradient(180deg, var(--brass-hi), color-mix(in srgb, var(--brass-hi) 45%, var(--brass)));--good: #7cc08b;--warn: #e3b450;--bad: #e07a5f;--info: #6fb3d2;--good-ink: #c9e8cf;--warn-ink: #f0d9a6;--bad-ink: #f3c0b2;--info-ink: #bfe0e8;--good-wash: color-mix(in srgb, var(--good) 12%, transparent);--warn-wash: color-mix(in srgb, var(--warn) 12%, transparent);--bad-wash: color-mix(in srgb, var(--bad) 20%, transparent);--info-wash: color-mix(in srgb, var(--info) 16%, transparent);--good-edge: color-mix(in srgb, var(--good) 50%, transparent);--warn-edge: color-mix(in srgb, var(--warn) 45%, transparent);--bad-edge: color-mix(in srgb, var(--bad) 50%, transparent);--focus: var(--info);--steel-hi: #cfe0ef;--map-ground: #c4cdcc;--map-ink: #2b2318;--map-ink-hi: #000;--map-paper: #f6f0e0;--map-halo: color-mix(in srgb, var(--map-paper) 92%, transparent);--map-plate: color-mix(in srgb, var(--map-paper) 72%, transparent);--map-chip: color-mix(in srgb, var(--map-paper) 95%, transparent);--map-chip-edge: color-mix(in srgb, var(--map-ink) 30%, transparent);--map-select: #7a3d0c;--map-red: #b8432a;--map-teal: #27858f;--map-rose: #f3c7b8;--map-ice: #c4e3e6;--map-sage: #cfe8d3;--map-straw: #f3e2b4;--ramp-price: linear-gradient(90deg, #27858f, #ede8d2 50%, #bd4529);--ramp-seq: linear-gradient(90deg, #bd4529, #eedc8c 50%, #408f54);--ramp-load: linear-gradient(90deg, #7fb8a4 0 33%, #e3b450 33% 66%, #d9534f 66%);--ramp-flow: repeating-linear-gradient(90deg, #f3e7c4 0 6px, #9b8f70 6px 10px);--series-1: var(--brass);--series-2: var(--info);--series-3: var(--good);--series-4: #b98ce0;--series-5: var(--warn);--series-flat: #d9c79a;--chart-ref: rgba(255, 255, 255, .35);--chart-ref-soft: rgba(255, 255, 255, .18);--f-display: "Old Standard TT", "Iowan Old Style", Georgia, serif;--f-body: "Public Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--f-mono: "JetBrains Mono", ui-monospace, Menlo, Consolas, monospace;--fs-2xs: 10px;--fs-xs: 11px;--fs-sm: 12px;--fs-md: 13px;--fs-lg: 15px;--fs-xl: 18px;--fs-2xl: 22px;--fs-3xl: 26px;--fs-4xl: 36px;--fs-5xl: 54px;--fs-hero: 76px;--lh-tight: 1.1;--lh-body: 1.45;--track-caps: .1em;--track-code: .3em;--r-xs: 3px;--r-sm: 6px;--r-md: 8px;--r-pill: 999px;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .35);--shadow-panel: 0 8px 28px rgba(10, 16, 22, .35);--shadow-tip: 0 6px 20px rgba(0, 0, 0, .35);--shadow-pop: 0 10px 30px rgba(0, 0, 0, .4);--shadow-lg: 0 12px 40px rgba(0, 0, 0, .45);--shadow-lift: 0 8px 24px color-mix(in srgb, var(--brass) 20%, transparent);--shadow-plate: inset 0 1px 0 rgba(255, 255, 255, .28), 0 1px 2px rgba(0, 0, 0, .3);--shadow-press: inset 0 1px 2px rgba(0, 0, 0, .35);--shadow-veil: 0 -14px 12px -6px rgba(17, 27, 37, .95);--ring: 0 0 0 2px var(--brass-hi);--glow: 0 0 12px color-mix(in srgb, var(--brass-hi) 60%, transparent);--text-lift: 0 2px 18px rgba(0, 0, 0, .5);--dur-fast: .12s;--dur-med: .25s;--dur-slow: .5s;--dur-move: .35s;--ease-out: cubic-bezier(.2, .7, .3, 1);--z-floaters: 3;--z-panel: 4;--z-float: 5;--z-decisions: 6;--z-popover: 20;--z-hovercard: 30;--z-tip: 31;--z-advisor: 35;--z-toast: 40;--z-modal: 50;--z-loading: 60}*{box-sizing:border-box}[hidden]{display:none!important}html,body{margin:0;height:100%;background:var(--map-ground);color:var(--ink);font:var(--fs-md)/var(--lh-body) var(--f-body);overflow:hidden;-webkit-font-smoothing:antialiased}button,select,input{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}*{scrollbar-width:thin;scrollbar-color:var(--line) transparent}.eyebrow{font:600 var(--fs-2xs)/1.2 var(--f-mono);letter-spacing:var(--track-caps);text-transform:uppercase;color:var(--ink-faint)}.num{font-family:var(--f-mono);font-variant-numeric:tabular-nums}.pos{color:var(--good)}.neg{color:var(--bad)}.warn{color:var(--warn)}.quiet{color:var(--ink-dim);margin:0;font-size:var(--fs-md)}.warnline{color:var(--warn);font-size:var(--fs-sm);margin:0}.err{color:var(--bad);white-space:pre-wrap;font-family:var(--f-mono);font-size:var(--fs-sm)}kbd{font:600 var(--fs-2xs) var(--f-mono);color:var(--ink-faint);border:1px solid var(--line-soft);border-radius:var(--r-xs);padding:0 4px}.ico{width:18px;height:18px;flex:none}.gi{width:20px;height:20px;object-fit:contain;flex:none;vertical-align:middle}.gi.sm{width:16px;height:16px;margin-right:2px}.bi{width:34px;height:34px;object-fit:contain;flex:none;margin:-4px 0}.medal{width:44px;height:44px;flex:none;border-radius:50%}.medal.sm{width:18px;height:18px;margin-right:3px;vertical-align:-4px}.medal.xs{width:22px;height:22px;grid-row:span 2;align-self:center}.sw{display:inline-block;width:9px;height:9px;border-radius:var(--r-xs);margin-right:6px;vertical-align:0}.sdot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:6px;vertical-align:0;box-shadow:0 0 0 1px var(--map-chip-edge)}@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important}}.glass{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);backdrop-filter:blur(8px);box-shadow:var(--shadow-panel)}.ornate{border-image:url(/art/ui/panel.png) 40 fill / 20px / 4px stretch;border-radius:0;background-color:transparent}.btn{display:inline-flex;align-items:center;gap:6px;background:var(--fill-2);border:1px solid var(--line);border-radius:var(--r-sm);padding:6px 12px;text-align:left;transition:background var(--dur-fast),border-color var(--dur-fast),box-shadow var(--dur-fast)}.btn:hover:not([disabled]){background:var(--brass-wash-2);border-color:var(--brass)}.btn:active:not([disabled]){box-shadow:var(--shadow-press)}.btn.primary{background:var(--brass-plate);border-color:var(--brass);color:var(--ink-on-brass);font-weight:600;box-shadow:var(--shadow-plate)}.btn.primary:hover:not([disabled]){background:var(--brass-plate-hi)}.btn.primary:active:not([disabled]){box-shadow:var(--shadow-press)}.btn.small{padding:4px 8px;font-size:var(--fs-sm)}.btn.big{padding:10px 18px;font-size:var(--fs-lg)}.btn[disabled]{opacity:.45;cursor:not-allowed}.btn .ico{width:15px;height:15px}.iconbtn{display:inline-grid;place-items:center;width:32px;height:32px;border-radius:var(--r-sm);border:1px solid transparent;background:transparent;color:var(--ink-dim);transition:background var(--dur-fast),color var(--dur-fast)}.iconbtn:hover{background:var(--fill-2);color:var(--ink);border-color:var(--line-soft)}.iconbtn.on{background:var(--brass);color:var(--ink-on-brass)}.locate{width:24px;height:24px}.locate .ico{width:15px;height:15px}.brass{width:30px;height:30px;padding:0;border:0;background:none;border-radius:50%;display:grid;place-items:center;opacity:.72;transition:opacity var(--dur-fast),transform var(--dur-fast)}.brass .bimg{width:30px;height:30px;display:block}.brass:hover{opacity:1;transform:translateY(-1px)}.brass.on{opacity:1;box-shadow:var(--ring),var(--glow)}.lnk{background:none;border:0;padding:0;color:var(--brass-hi);text-decoration:underline;text-underline-offset:2px}.seg{display:inline-flex;border:1px solid var(--line-soft);border-radius:var(--r-sm);overflow:hidden}.seg button{border:0;background:transparent;color:var(--ink);padding:4px 12px;font-weight:600;transition:background var(--dur-fast)}.seg button:hover:not([disabled]):not(.on){background:var(--fill-2)}.seg button+button{border-left:1px solid var(--line-soft)}.seg button.on{background:var(--brass);color:var(--ink-on-brass)}.seg button[disabled]{opacity:.35;cursor:not-allowed}.opts{display:flex;flex-wrap:wrap;gap:4px}.opt{display:inline-flex;align-items:center;gap:4px;background:none;border:1px solid var(--line-soft);border-radius:var(--r-sm);padding:4px 10px;font-size:var(--fs-sm);color:var(--ink-dim);transition:border-color var(--dur-fast),color var(--dur-fast),background var(--dur-fast)}.opt:hover:not([disabled]){border-color:var(--brass);color:var(--ink)}.opt.on{background:var(--brass-wash-2);border-color:var(--brass);color:var(--ink)}.opt.cur:not(.on){border-style:dashed}.opt[disabled]{opacity:.45;cursor:not-allowed}.opt small{font:var(--fs-2xs) var(--f-mono)}.chip{background:none;border:1px solid var(--line-soft);border-radius:var(--r-pill);padding:2px 10px;font-size:var(--fs-sm);color:var(--ink-dim);transition:color var(--dur-fast),border-color var(--dur-fast)}.chip:hover{color:var(--ink);border-color:var(--line)}.chip.on{background:var(--brass);border-color:var(--brass);color:var(--ink-on-brass);font-weight:600}.tabs{display:flex;gap:2px;border-bottom:1px solid var(--line-soft);margin-top:-4px}.tab{background:none;border:0;border-bottom:2px solid transparent;padding:8px 12px;color:var(--ink-dim);font-weight:500;transition:color var(--dur-fast)}.tab:hover{color:var(--ink)}.tab.on{color:var(--ink);border-bottom-color:var(--brass)}.tag{font:600 var(--fs-2xs) var(--f-mono);text-transform:uppercase;letter-spacing:var(--track-caps);padding:1px 6px;border-radius:var(--r-xs);margin-left:4px;background:var(--fill-3);color:var(--ink-dim)}.tag.bad{background:var(--bad-wash);color:var(--bad-ink)}.tag.cool{background:var(--info-wash);color:var(--info-ink)}.badge{display:inline-block;padding:2px 8px;border-radius:var(--r-pill);background:var(--brass);color:var(--ink-on-brass);font:600 var(--fs-2xs)/1.4 var(--f-mono);letter-spacing:var(--track-caps);text-transform:uppercase}.tool .badge{position:absolute;top:2px;left:8px;min-width:16px;height:16px;padding:0;border-radius:var(--r-pill);background:var(--bad);color:var(--ink-on-signal);font:600 var(--fs-2xs)/16px var(--f-mono);letter-spacing:0;font-style:normal;text-align:center}.upmark{margin-left:4px;color:var(--brass);font-size:var(--fs-2xs)}.gchip{display:inline-flex;align-items:center;gap:4px;font-size:var(--fs-sm);padding:2px 8px;border-radius:var(--r-pill);background:var(--fill-3)}.gchip i{width:8px;height:8px;border-radius:var(--r-xs)}.gchip b{font:600 var(--fs-xs) var(--f-mono)}.gchip.short{background:var(--bad-wash)}.gchip.surplus{background:var(--info-wash)}.card,.bcard,.opp,.law{display:grid;gap:6px;padding:10px 12px;border:1px solid var(--line-soft);border-radius:var(--r-sm);background:var(--fill-2)}.card.done,.opp.done{opacity:.55}.choice,.size{display:grid;gap:2px;text-align:left;padding:8px 12px;border-radius:var(--r-sm);border:1px solid var(--line-soft);background:var(--fill-2);color:var(--ink);transition:border-color var(--dur-fast),background var(--dur-fast)}.choice:hover,.size:hover{border-color:var(--brass);background:var(--brass-wash-1)}.size.on{border-color:var(--brass);background:var(--brass-wash-2)}.choice span,.size span{font-size:var(--fs-sm);color:var(--ink-dim)}.choice small{font:600 var(--fs-xs) var(--f-mono);color:var(--brass-hi)}.choices{display:grid;gap:6px}.kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.kpis>div{background:var(--fill-2);border:1px solid var(--line-soft);border-radius:var(--r-sm);padding:8px 10px;display:grid;gap:2px;min-width:0}.kpis b{font:600 var(--fs-xl) var(--f-mono);font-variant-numeric:tabular-nums}.kpis span:last-child:not(.eyebrow){font-size:var(--fs-xs);color:var(--ink-dim)}.note,.railnote,.verdict,.danger,.lawpreview,.forecast{margin:0;padding:8px 10px;border-radius:var(--r-sm);border:1px solid var(--line-soft);background:var(--fill-2);font-size:var(--fs-md)}.railnote{margin:8px 0;border-style:dashed;background:none}.note.good,.railnote.pos-note{border:1px solid var(--good-edge);background:var(--good-wash)}.note.warn,.railnote.warn-note,.danger.soft{border:1px solid var(--warn-edge);background:var(--warn-wash)}.note.bad,.danger{border-color:var(--bad-edge);background:var(--bad-wash)}.note.accent,.lawpreview,.forecast{border-color:var(--line);background:var(--brass-wash-1)}.danger{padding:6px 8px;font-size:var(--fs-sm);color:var(--bad-ink)}.danger.soft{color:var(--warn-ink)}.note.good{color:var(--good-ink)}.note.warn{color:var(--warn-ink)}.note.bad{color:var(--bad-ink)}.verdict{border-color:transparent}.verdict.ok{color:var(--good)}.verdict.warn{color:var(--warn)}.verdict.bad{color:var(--bad)}.railnote .btn{margin-top:6px}.menu,.pop{background:var(--surface-solid);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-pop);z-index:var(--z-popover)}.menu{position:absolute;top:calc(100% + 6px);left:0;display:grid;min-width:210px;padding:6px}.menu button{display:flex;gap:8px;align-items:center;background:none;border:0;padding:8px 10px;border-radius:var(--r-sm);text-align:left}.menu button:hover{background:var(--fill-2)}.pop{display:none;position:absolute;top:calc(100% + 8px);padding:10px 12px}.pop ul{list-style:none;margin:6px 0 0;padding:0;display:grid;gap:4px}.pop li{display:flex;justify-content:space-between;gap:8px;color:var(--ink-dim)}.pop p.quiet{margin:4px 0 6px;font-size:var(--fs-xs)}.field{display:grid;gap:6px}.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.actions{display:flex;flex-wrap:wrap;gap:6px}.input,#seed,.lobby input,.goodpick select,.smenu .code{background:var(--surface-solid);border:1px solid var(--line);border-radius:var(--r-sm);padding:8px 10px;transition:border-color var(--dur-fast)}.input:hover,#seed:hover,.lobby input:hover,.goodpick select:hover,.smenu .code:hover{border-color:var(--brass)}#seed{width:140px;font-family:var(--f-mono)}input[type=range]{accent-color:var(--brass)}input[type=checkbox]{width:18px;height:18px;accent-color:var(--brass)}.steps{list-style:none;margin:0;padding:0;display:grid;gap:6px}.steps li{display:grid;grid-template-columns:22px 1fr;gap:8px;align-items:center;color:var(--ink-faint);font-size:var(--fs-md)}.steps li span{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--line-soft);font:600 var(--fs-xs) var(--f-mono)}.steps li.active{color:var(--ink)}.steps li.active span{border-color:var(--brass);color:var(--brass)}.steps li.done{color:var(--ink-dim)}.steps li.done span{background:var(--brass);color:var(--ink-on-brass);border-color:var(--brass)}.bar{height:6px;background:var(--fill-3);border-radius:var(--r-xs);overflow:hidden}.bar i{display:block;height:100%;border-radius:var(--r-xs);background:var(--brass)}.bar.good i,.good>.bar i{background:var(--good)}.bar.mid i,.mid>.bar i{background:var(--warn)}.bar.bad i,.bad>.bar i{background:var(--bad)}.meter{display:inline-block;width:54px;height:6px;border-radius:var(--r-xs);background:var(--fill-3);overflow:hidden;vertical-align:middle}.meter i{display:block;height:100%;background:var(--info);border-radius:var(--r-xs)}.meter.busy i{background:var(--warn)}.meter.full i{background:var(--bad)}.fbar{height:6px;background:var(--fill-2);border-radius:var(--r-xs);overflow:hidden}.fbar i{display:block;height:100%}.spinner{width:34px;height:34px;border-radius:50%;border:3px solid var(--line);border-top-color:var(--brass);animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}table.dtable{width:100%;border-collapse:collapse;font-size:var(--fs-sm)}.dtable th{text-align:left;font:600 var(--fs-2xs) var(--f-mono);color:var(--ink-faint);text-transform:uppercase;letter-spacing:var(--track-caps);padding:0 4px 6px}.dtable td{padding:4px;border-top:1px solid var(--line-soft);vertical-align:middle}.dtable td small{display:block;color:var(--ink-faint);font-size:var(--fs-xs)}.dtable.dense td small{font-size:var(--fs-2xs)}.dtable .num,.dtable .n{text-align:right;font-family:var(--f-mono);font-variant-numeric:tabular-nums;white-space:nowrap}.dtable tfoot td,.dtable tr.sum td{font-weight:600;border-top:1px solid var(--line)}.dtable th .lnk{font:inherit;color:inherit}.dtable th.sorted{color:var(--ink)}.dtable tr.me td{background:var(--brass-wash-2)}.dtable tr[data-go],.dtable.rows tbody tr{cursor:pointer}.dtable.rows tbody tr:hover td{background:var(--brass-wash-1)}.chart{width:100%;height:auto;background:var(--fill-1);border-radius:var(--r-sm)}.chart .refline{stroke:var(--chart-ref);stroke-dasharray:4 3}.chart .axis{fill:var(--ink-faint);font:var(--fs-2xs) var(--f-mono)}.spark .ref{stroke:var(--chart-ref-soft);stroke-dasharray:2 2}.legend{display:grid;gap:4px;font-size:var(--fs-sm);color:var(--ink-dim)}.ramp{height:8px;border-radius:var(--r-pill)}.ramp.price{background:var(--ramp-price)}.ramp.seq{background:var(--ramp-seq)}.ramp.load{background:var(--ramp-load)}.lg-labels{display:flex;justify-content:space-between;font:var(--fs-2xs) var(--f-mono);color:var(--ink-faint)}.lg-flow{display:inline-block;width:26px;height:6px;border-radius:var(--r-xs);background:var(--ramp-flow);margin-right:6px;vertical-align:middle}.series-1{color:var(--series-1)}.series-2{color:var(--series-2)}.series-3{color:var(--series-3)}.series-4{color:var(--series-4)}.series-5{color:var(--series-5)}.labels{position:absolute;inset:0;pointer-events:none;overflow:hidden}.town-label{position:absolute;left:0;top:0;display:flex;flex-direction:column;align-items:center;gap:2px;white-space:nowrap}.town-label .nm{font:700 var(--fs-sm)/1 var(--f-display);color:var(--map-ink);text-shadow:0 0 3px var(--map-halo),0 0 3px var(--map-halo),0 0 6px var(--map-halo);letter-spacing:.02em}.town-label[data-tier="0"] .nm,.town-label[data-tier="1"] .nm{background:var(--map-plate);padding:1px 4px 2px;border-radius:var(--r-xs)}.town-label[data-tier="0"] .nm{font-size:var(--fs-xs);font-weight:400}.town-label[data-tier="2"] .nm{font-size:var(--fs-lg)}.town-label.port .nm{font-size:var(--fs-xl);letter-spacing:.06em;text-transform:uppercase}.town-label.hover .nm{color:var(--map-ink-hi)}.town-label.sel .nm{color:var(--map-select);font-size:var(--fs-lg)}.town-label.junction .nm{font:600 var(--fs-2xs) var(--f-mono)}.town-label.stated .nm{box-shadow:inset 0 -2px 0 var(--st);padding-bottom:1px}.town-label.dot>*{display:none!important}.town-label.dot:after{content:"";width:8px;height:8px;border-radius:50%;background:var(--map-ink);border:2px solid var(--map-halo);box-shadow:var(--shadow-sm)}.town-label .chip{font:600 var(--fs-2xs)/1 var(--f-mono);background:var(--map-chip);color:var(--map-ink);border:1px solid var(--map-chip-edge);padding:2px 4px;border-radius:var(--r-xs)}.town-label .chip[data-dir=up],.town-label .chip[data-dir=bad]{background:var(--map-rose)}.town-label .chip[data-dir=down]{background:var(--map-ice)}.town-label .chip[data-dir=good]{background:var(--map-sage)}.town-label .chip[data-dir=mid]{background:var(--map-straw)}.town-label .strike{display:none;font:700 var(--fs-2xs)/1 var(--f-mono);text-transform:uppercase;letter-spacing:var(--track-caps);color:var(--ink-on-signal);background:var(--map-red);padding:2px 4px;border-radius:var(--r-xs)}.town-label.striking .strike{display:block}.town-label .want{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--map-halo);border:2px solid var(--map-ink);box-shadow:var(--shadow-sm)}.town-label .want img{width:20px;height:20px}.town-label .want.short{border-color:var(--map-red);box-shadow:0 0 0 2px color-mix(in srgb,var(--map-red) 35%,transparent)}.town-label .want.spare{border-color:var(--map-teal)}.town-label .want.none{display:none}#app{position:fixed;inset:0}#app:not(.ingame)>.glass,#app:not(.ingame)>#builds,#app:not(.ingame)>#feed{display:none}#map{position:absolute;inset:0}#map canvas{display:block;touch-action:none}#clock,#treasury,#groups,#feed,#gazette,#panel,#builds,#toolbar,#lens,#objectives,#decisions,#modal>.start{zoom:var(--ui)}#clock{position:absolute;top:12px;left:12px;display:flex;align-items:center;gap:8px;padding:6px 8px}#clock .date{display:grid;line-height:1.05;min-width:92px}#clock .year{font:700 var(--fs-2xl) var(--f-display);color:var(--brass)}#clock .day{font-size:var(--fs-xs);color:var(--ink-dim)}#clock .speeds{display:flex;gap:4px;padding-left:6px;border-left:1px solid var(--line-soft)}#clock .speeds .ico{width:15px;height:15px}.turnctl{display:flex;gap:6px;align-items:center;padding-left:6px;border-left:1px solid var(--line-soft)}#run-turn{padding:6px 12px;font-weight:600}#run-turn.waiting,#run-turn.quiet{background:transparent;color:var(--brass-hi);box-shadow:none}#run-turn.hurry{animation:hurry 1s ease-in-out infinite}@keyframes hurry{50%{background:var(--bad);border-color:var(--bad)}}.tprog{width:110px;height:6px;border-radius:var(--r-xs);background:var(--fill-3);overflow:hidden}.tprog i{display:block;height:100%;background:var(--brass);transition:width var(--dur-med) linear}.turn-running #toolbar,.turn-running #panel{opacity:.55;pointer-events:none}#treasury{position:absolute;top:12px;left:50%;transform:translate(-50%);display:flex;gap:8px;align-items:center;padding:6px 14px;cursor:default}#treasury>.ico{color:var(--brass);width:22px;height:22px}#treasury>div:not(.pop)>b{font:600 var(--fs-xl) var(--f-mono);display:block}#treasury>div:not(.pop)>span{font-size:var(--fs-xs);color:var(--ink-dim)}#treasury .pop{left:50%;transform:translate(-50%);width:300px}#treasury:hover .pop{display:block}#treasury .pop p{margin-top:6px;font-size:var(--fs-xs)}.statechip{display:flex;align-items:center;gap:8px;margin-left:10px;padding:3px 10px 3px 4px;border:1px solid var(--line-soft);border-radius:var(--r-pill);background:var(--fill-1);color:var(--ink);transition:border-color var(--dur-fast)}.statechip:hover{border-color:var(--brass)}.statechip .sc-text{display:grid;text-align:left;line-height:1.15}.statechip .sc-text b{font:600 var(--fs-sm) var(--f-body)}.statechip .sc-text small{font-size:var(--fs-xs);color:var(--ink-dim)}.statechip.bump-up{animation:bumpUp .9s ease-out}.statechip.bump-down{animation:bumpDown .9s ease-out}@keyframes bumpUp{0%{box-shadow:0 0 color-mix(in srgb,var(--good) 90%,transparent)}to{box-shadow:0 0 0 10px transparent}}@keyframes bumpDown{0%{box-shadow:0 0 color-mix(in srgb,var(--bad) 90%,transparent)}to{box-shadow:0 0 0 10px transparent}}#groups{position:absolute;top:12px;right:12px;display:flex;gap:4px;padding:6px 6px 16px}.group{position:relative;display:grid;grid-template-columns:auto auto;gap:0 6px;padding:4px 6px;border-radius:var(--r-sm);outline:none;cursor:pointer;transition:background var(--dur-fast)}.group:hover,.group:focus{background:var(--fill-2)}.group .medal.xs{width:26px;height:26px;grid-row:auto}.group .gval{font:600 var(--fs-lg) var(--f-mono);align-self:center}.group.bad .gval{color:var(--bad)}.group .gname{position:absolute;left:0;right:0;bottom:-13px;text-align:center;font-size:var(--fs-2xs);color:var(--ink-faint);white-space:nowrap}.group .gbar{display:none}.group .pop{right:0;width:240px}.group:hover .pop,.group:focus .pop{display:block}#objectives{position:absolute;top:66px;left:12px;width:min(310px,calc(100% - 24px));padding:14px 16px 12px;display:grid;gap:8px;max-height:calc(100vh - 140px);overflow:auto}.ohead{display:flex;justify-content:space-between;align-items:start;gap:8px}.ohead h3{margin:2px 0 0;font:700 var(--fs-xl)/1.15 var(--f-display);color:var(--brass-hi)}.ohead .eyebrow{color:var(--brass)}.ohead .eyebrow.sub{display:block;white-space:nowrap;opacity:.8;margin-top:2px}.obj{display:grid;gap:4px;padding-top:8px;border-top:1px solid var(--line-soft)}.ochap{display:flex;align-items:baseline;gap:6px;padding-top:8px;font:600 var(--fs-xs) var(--f-mono);text-transform:uppercase;letter-spacing:var(--track-caps);color:var(--ink-dim)}.ochap.next{flex-direction:column;gap:1px;color:var(--ink-faint)}.ochap.next span{font:400 var(--fs-sm) var(--f-body);text-transform:none;letter-spacing:0}.ochap.done{color:var(--ink-faint)}.obj .otop{display:flex;align-items:center;gap:6px}.obj .otop b{flex:1;font-weight:600;font-size:var(--fs-md)}.obj .otop .pts{margin-left:auto;font:600 var(--fs-xs) var(--f-mono);color:var(--brass-hi);white-space:nowrap}.obj p{margin:0;font-size:var(--fs-sm);color:var(--ink-dim)}.obj .bar{height:5px}.obj .oval{font:500 var(--fs-xs) var(--f-mono);color:var(--ink-dim)}.obj.done .otop b{color:var(--good)}.obj.failed{opacity:.7}.obj.failed .otop b{color:var(--bad);text-decoration:line-through}.omark{font-weight:700}.omark.ok{color:var(--good)}.omark.bad{color:var(--bad)}.obj.ambition{border-top-style:dashed}.obj.ambition .otop b{color:var(--brass-hi)}.obj.ambition.done .otop b{color:var(--good)}.obj.ambition .omark .star{color:var(--ink-dim);font-weight:400}.obj.ambition .omark .star.on{color:var(--brass)}#objectives table.standings{font-size:var(--fs-xs);table-layout:auto}#objectives table.standings td,#objectives table.standings th{padding:2px}#objectives table.standings td small{font-size:var(--fs-2xs)}#gazette{position:absolute;top:66px;left:12px;bottom:200px;width:min(360px,calc(100% - 24px));overflow:auto;padding:14px;display:grid;align-content:start;gap:8px;z-index:var(--z-float)}#gazette .close{position:absolute;top:10px;right:10px}#gazette article{display:grid;grid-template-columns:38px 1fr auto;gap:8px;align-items:baseline;padding:6px 0;border-top:1px solid var(--line-soft)}#gazette article p{margin:0;font-size:var(--fs-md);color:var(--ink-dim)}#gazette article.good p{color:var(--good-ink)}#gazette article.bad p{color:var(--bad-ink)}#gazette .when{font:600 var(--fs-xs) var(--f-mono);color:var(--ink-faint)}#feed{position:absolute;left:12px;bottom:64px;width:min(380px,calc(100% - 24px));display:grid;gap:6px;pointer-events:none}#app:has(#lens .legend:not(:empty)) #feed{bottom:132px}.feeditem{pointer-events:auto;background:var(--surface);border:1px solid var(--line);border-left:3px solid var(--ink-faint);border-radius:var(--r-sm);padding:6px 10px;display:flex;gap:8px;align-items:flex-start;animation:slidein var(--dur-med) var(--ease-out);transition:opacity var(--dur-slow),transform var(--dur-slow)}.feeditem p{margin:0;flex:1;font-size:var(--fs-md)}.feeditem.good{border-left-color:var(--good)}.feeditem.bad{border-left-color:var(--bad)}.feeditem.out{opacity:0;transform:translate(-8px)}@keyframes slidein{0%{opacity:0;transform:translate(-10px)}}#panel{position:absolute;top:66px;right:12px;bottom:12px;width:min(390px,calc(100% - 24px));overflow:auto;padding:16px;display:flex;flex-direction:column;gap:14px;z-index:var(--z-panel)}#panel .close{position:absolute;top:10px;right:10px}.phead{display:grid;gap:3px;padding-right:36px}.phead h2{font:700 var(--fs-3xl)/var(--lh-tight) var(--f-display);margin:0;text-wrap:balance}#panel h3{font:600 var(--fs-2xs)/1 var(--f-mono);letter-spacing:var(--track-caps);text-transform:uppercase;color:var(--ink-faint);margin:0 0 8px}#panel section{display:grid;gap:0}#builds{position:absolute;left:50%;transform:translate(-50%);bottom:156px;display:flex;gap:6px;flex-wrap:wrap;justify-content:center;max-width:min(720px,60vw);pointer-events:none}.bchip{display:grid;grid-template-columns:16px 1fr auto;gap:8px;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sm);padding:6px 10px;min-width:200px;font-size:var(--fs-sm)}.bchip .ico{width:16px;height:16px;color:var(--brass)}.bchip .bar{margin-top:4px;height:4px}#toolbar{position:absolute;left:50%;transform:translate(-50%);bottom:12px;display:flex;gap:2px;padding:4px;align-items:stretch}.tool{position:relative;display:grid;justify-items:center;gap:2px;background:none;border:1px solid transparent;border-radius:var(--r-sm);padding:6px 12px 4px;min-width:76px;color:var(--ink-dim);transition:background var(--dur-fast),color var(--dur-fast)}.tool .ico{width:22px;height:22px}.tool span{font-size:var(--fs-xs)}.tool kbd{position:absolute;top:3px;right:4px;border:0;padding:0;font-size:var(--fs-2xs)}.tool:hover{background:var(--fill-2);color:var(--ink)}.tool.on{background:var(--brass-wash-2);border-color:var(--brass);color:var(--ink)}.tool.on .ico{color:var(--brass)}.tool.mini{min-width:0;padding:6px 8px}.tool.mini .ico{width:19px;height:19px}.tsep{width:1px;background:var(--line-soft);margin:6px 4px}#lens{position:absolute;left:12px;bottom:12px;padding:6px 8px;display:grid;gap:6px}#lens .chips{display:flex;flex-wrap:wrap;gap:4px}#lens .legend:empty{display:none}.goodpick{display:flex;gap:8px;align-items:center;font-size:var(--fs-sm);color:var(--ink-dim)}.goodpick select{flex:1}#lens .goodpick select{padding:2px 4px;font-size:var(--fs-sm)}#nextstep{position:absolute;left:50%;transform:translate(-50%);bottom:80px;width:min(600px,calc(100% - 24px));padding:8px 12px 10px;display:grid;gap:4px;z-index:var(--z-float);border-color:var(--brass)}#nextstep .eyebrow{color:var(--brass)}#panel:not([hidden])~#nextstep{left:calc(50% - 200px)}.ns-body{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center}.ns-body p{margin:0;font-size:var(--fs-md)}.ns-body .gi{width:28px;height:28px}.ns-body .ico{width:22px;height:22px;color:var(--brass)}#decisions{position:absolute;right:12px;bottom:12px;width:min(380px,calc(100% - 24px));padding:14px 16px;z-index:var(--z-decisions);animation:slidein var(--dur-med) var(--ease-out)}#panel:not([hidden])~#decisions{right:414px;bottom:84px}#decisions.flash{animation:flash .6s ease-in-out 2}@keyframes flash{50%{box-shadow:var(--ring)}}.dcard{display:grid;gap:6px}.dcard h3{margin:0;font:700 var(--fs-xl) var(--f-display);color:var(--brass-hi)}.dcard.concession h3{color:var(--steel-hi)}.dcard p{margin:0;font-size:var(--fs-md)}.dtop{display:flex;justify-content:space-between}.dtop .when{font-size:var(--fs-xs);color:var(--warn)}#advisor{position:fixed;left:0;top:0;width:330px;padding:14px 16px 12px;z-index:var(--z-advisor);display:grid;gap:6px;box-shadow:var(--shadow-lg);transition:transform var(--dur-move) ease}#advisor h3{margin:0;font:700 var(--fs-xl) var(--f-display);color:var(--brass-hi)}#advisor p{margin:0;font-size:var(--fs-md);color:var(--ink)}.adv-head{display:flex;justify-content:space-between;align-items:center}.adv-dots{display:flex;gap:4px}.adv-dots i{width:7px;height:7px;border-radius:50%;background:var(--fill-4)}.adv-dots i.done{background:var(--brass)}.adv-dots i.on{background:var(--brass-hi);box-shadow:var(--glow)}.tut-target{outline:2px solid var(--brass-hi)!important;outline-offset:3px;animation:tutpulse 1.6s ease-in-out infinite}@keyframes tutpulse{50%{outline-color:color-mix(in srgb,var(--brass-hi) 25%,transparent)}}#hovercard{position:fixed;left:0;top:0;width:280px;padding:10px 12px;display:grid;gap:6px;pointer-events:none;z-index:var(--z-hovercard)}.hc-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.hc-head b{font:700 var(--fs-xl) var(--f-display)}.hc-head span{font-size:var(--fs-sm);color:var(--ink-dim)}.hc-sub{font-size:var(--fs-sm);color:var(--ink-faint);margin-top:-4px}.hc-row{display:flex;flex-wrap:wrap;gap:4px 6px;align-items:center;font-size:var(--fs-sm)}.hc-row .lbl{width:64px;color:var(--ink-faint);font-size:var(--fs-xs)}.hc-hint{font-size:var(--fs-xs);color:var(--brass)}#cursortip{position:fixed;left:0;top:0;display:grid;gap:2px;background:var(--surface-solid);border:1px solid var(--line);border-radius:var(--r-sm);padding:6px 10px;font-size:var(--fs-sm);pointer-events:none;z-index:var(--z-tip);max-width:320px;box-shadow:var(--shadow-tip)}#cursortip span{color:var(--ink-dim)}#toast{position:absolute;left:50%;top:70px;transform:translate(-50%);padding:8px 16px;border-radius:var(--r-sm);background:var(--surface-solid);border:1px solid var(--line);box-shadow:var(--shadow-pop);opacity:0;transition:opacity var(--dur-med);pointer-events:none;max-width:80vw;z-index:var(--z-toast)}#toast.show{opacity:1}#toast.bad{border-color:var(--bad)}#floaters{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:var(--z-floaters)}.floater{position:absolute;left:0;top:0;padding:4px 10px;border-radius:var(--r-pill);background:var(--surface);border:1px solid var(--brass);color:var(--brass-hi);font:600 var(--fs-md) var(--f-mono);white-space:nowrap}#loading{position:absolute;inset:0;display:grid;place-items:center;align-content:center;gap:12px;background:var(--scrim-flat);z-index:var(--z-loading);font:400 var(--fs-xl) var(--f-display)}@media (max-width: 900px){#groups{top:auto;bottom:84px;right:12px}#lens{display:none}#treasury{left:auto;right:12px;transform:none;top:12px}#objectives{top:auto;bottom:84px}#panel:not([hidden])~#decisions{right:12px;bottom:84px}}@media (min-width: 900px){#nextstep{left:calc((304px + 100%)/2);width:min(600px,calc(100% - 340px))}#panel:not([hidden])~#nextstep{left:calc((-98px + 100%)/2);width:min(600px,calc(100% - 750px))}}@media (max-width: 640px){#panel{top:auto;height:58vh;bottom:78px}.tool span,.tool kbd{display:none}.tool{min-width:48px}#groups{display:none}}.strata{display:grid;gap:6px}.stratum{display:grid;grid-template-columns:82px 1fr 78px 54px;gap:8px;align-items:center;font-size:var(--fs-md)}.stratum .word{color:var(--ink-dim);font-size:var(--fs-sm)}.stratum .num{text-align:right;color:var(--ink-dim)}.need{display:grid;grid-template-columns:22px 1fr auto;gap:10px;align-items:center;padding:8px 0;border-top:1px solid var(--line-soft)}.need>i{width:10px;height:10px;border-radius:var(--r-xs)}.need>.gi{width:22px;height:22px}.need span{display:block;font-size:var(--fs-sm);color:var(--ink-dim)}.need.short b{color:var(--bad-ink)}.need.surplus b{color:var(--info-ink)}.links{display:grid;gap:2px}.linkrow{display:grid;grid-template-columns:18px 1fr 54px 52px;gap:8px;align-items:center;background:none;border:0;border-radius:var(--r-sm);padding:6px 4px;text-align:left;color:var(--ink);transition:background var(--dur-fast)}.linkrow:hover{background:var(--fill-2)}.linkrow .ico{width:16px;height:16px;color:var(--ink-dim)}.linkrow .num{text-align:right;color:var(--ink-dim);font-size:var(--fs-sm)}table.market td.n span{display:block;font-size:var(--fs-xs);color:var(--ink-faint)}table.market .spk{color:var(--ink-dim)}.cards{display:grid;gap:10px}.bcard .top{display:flex;gap:8px;align-items:center}.bcard .top b{flex:1;font-weight:600}.bcard .lvl{font:600 var(--fs-sm) var(--f-mono);color:var(--brass)}.bcard .row{display:flex;gap:8px;align-items:center;font-size:var(--fs-sm)}.bcard .lbl{color:var(--ink-faint);width:54px}.bcard .io{font-size:var(--fs-sm);color:var(--ink-dim)}.flowrow{display:grid;grid-template-columns:16px 72px 1fr 60px 36px;gap:8px;align-items:center;padding:4px 0;border-top:1px solid var(--line-soft);font-size:var(--fs-md)}.flowrow .sw{margin:0}.flowrow .dir{color:var(--ink-dim);font-size:var(--fs-sm);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.flowrow .num{text-align:right}.opps{display:grid;gap:8px}.opp .top{display:flex;justify-content:space-between;align-items:center}.opp .val{font:600 var(--fs-lg) var(--f-mono);color:var(--brass-hi)}.opp .val small{font-size:var(--fs-xs);color:var(--ink-faint);font-weight:400}.opp .route{display:flex;align-items:center;gap:6px;font:700 var(--fs-lg) var(--f-display)}.opp .route .lnk{font:inherit;color:var(--ink);text-decoration-color:var(--line)}.opp .route .ico{width:15px;height:15px;color:var(--ink-faint)}.opp .meta{font-size:var(--fs-sm);color:var(--ink-dim)}.routebar{display:flex;justify-content:space-between;align-items:center;gap:8px}.profile{margin:0;display:grid;gap:3px}.profile svg{width:100%;height:84px;display:block;background:var(--fill-1);border-radius:var(--r-sm)}.profile .area{fill:var(--brass-wash-1)}.profile figcaption{display:flex;justify-content:space-between;font:var(--fs-2xs) var(--f-mono);color:var(--ink-faint)}.verdictline{margin:2px 0 8px;font-size:var(--fs-md)}.payline{margin:6px 0 2px;font-size:var(--fs-md)}.buildopts{display:grid;gap:6px}.buildopts .btn{display:grid;gap:1px;padding:8px 12px}.buildopts .btn small{font-size:var(--fs-xs);opacity:.75;font-weight:400}#panel .buildopts{position:sticky;bottom:-16px;margin:0 -16px -16px;padding:8px 16px 14px;background:var(--surface-solid);box-shadow:var(--shadow-veil);z-index:2}#panel .buildopts .verdictline{margin:0 0 8px}#panel .buildopts .tender{display:grid;gap:6px;margin-top:8px}#panel .buildopts .tender .eyebrow{margin-bottom:-2px}@media (max-height: 760px){#panel .buildopts{position:static;margin:8px 0 0;padding:0;box-shadow:none;background:none}}.railkind .seg{display:flex}.railkind .seg button{flex:1;font-size:var(--fs-sm);padding:4px 6px}.keys{font-size:var(--fs-sm)}.forecast{display:grid;gap:8px;padding:10px 12px}#panel .forecast h3{margin:0;color:var(--brass)}.forecast .fline{margin:0;font-size:var(--fs-md)}.flist{list-style:none;margin:0;padding:0;display:grid;gap:3px;font-size:var(--fs-sm);color:var(--ink-dim)}.flist b{color:var(--ink)}.flist.goals li:before{content:"◆ ";color:var(--brass)}table.lines td{vertical-align:top}section.petitions ul.plain{list-style:none;margin:0;padding:0;display:grid;gap:8px}section.petitions li{font-size:var(--fs-md);line-height:var(--lh-body)}section.bonds ul.plain{list-style:none;margin:0 0 8px;padding:0;display:grid;gap:6px;font-size:var(--fs-md)}section.petitions li .btn,section.bonds li .btn{margin-left:6px}.gcards{display:grid;gap:10px}.gcard{display:grid;grid-template-columns:44px 1fr;gap:10px;align-items:start}.gbody{display:grid;gap:4px}.gtop{display:flex;justify-content:space-between}.gtop .num{font-size:var(--fs-lg);font-weight:600}.causes{list-style:none;margin:0;padding:0;display:grid;gap:2px;font-size:var(--fs-sm)}.causes li{display:flex;justify-content:space-between;gap:8px;color:var(--ink-dim)}.laws{display:grid;gap:12px;margin-top:8px}.law .ltop{display:flex;justify-content:space-between;align-items:center}.law .ltop b{font:700 var(--fs-lg) var(--f-display)}.lawpreview{display:grid;gap:6px}.lawpreview ul{margin:0;padding-left:16px;display:grid;gap:3px;font-size:var(--fs-sm)}.lawpreview .was{display:block;color:var(--ink-faint);font-size:var(--fs-xs)}.gds{display:flex;flex-wrap:wrap;gap:4px 10px;font-size:var(--fs-sm)}.gd.pos{color:var(--good)}.gd.neg{color:var(--bad)}.pros-num{display:inline-grid;place-items:center;min-width:30px;height:30px;border-radius:50%;font:700 var(--fs-lg) var(--f-mono);color:var(--ink-on-brass)}.pros-num.sm{min-width:24px;height:24px;font-size:var(--fs-sm);margin-right:4px}.pros-num.good,.pros-big.good{background:var(--good)}.pros-num.mid,.pros-big.mid{background:var(--warn)}.pros-num.bad,.pros-big.bad{background:var(--bad)}.kpis b.pros-big{display:inline-block;justify-self:start;padding:0 10px;border-radius:var(--r-sm);color:var(--ink-on-brass)}.tr{font:600 var(--fs-xs) var(--f-mono);margin-left:3px}.tr.up{color:var(--good)}.tr.down{color:var(--bad)}.tr.flat{color:var(--ink-faint);font-size:var(--fs-2xs)}table.towns td.lack{color:var(--ink-dim);font-size:var(--fs-xs)}table.towns tr.norail td:first-child .lnk{color:var(--bad-ink)}.loopline{margin:6px 0 10px}.needcats{display:grid;gap:4px}.needcat{display:grid;grid-template-columns:70px 1fr 38px;align-items:center;gap:8px;font-size:var(--fs-sm)}.needcat .num{text-align:right;font-family:var(--f-mono)}.twinline{margin-top:6px}.scoreline{margin:8px 0 0;font-size:var(--fs-sm);color:var(--ink-dim)}.scoreline b{color:var(--ink)}table.standings{margin-top:8px}table.standings td small{margin-left:16px}table.standings td.num,table.standings th:nth-child(n+3){text-align:right;font-family:var(--f-mono)}table.standings td.sname{white-space:nowrap}table.standings tr.fallen td{opacity:.55}table.standings .lnk{color:var(--ink);text-decoration:none}table.standings.big{font-size:var(--fs-lg);margin:12px 0}.landbox ul.landlist{list-style:none;margin:4px 0;padding:0;display:grid;gap:3px}.landbox li{display:flex;align-items:center;gap:4px}.landbox li>span:first-of-type{flex:1}.landbox li small.price{display:block;color:var(--ink-faint);font-size:var(--fs-xs)}.askrow{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:6px 0 4px}.askrow input[type=range]{flex:1;min-width:90px}.askrow .btn{width:100%}#modal{position:absolute;inset:0;background:var(--scrim);display:grid;place-items:center;padding:16px;z-index:var(--z-modal);overflow:auto}#modal:has(.title-art),#modal.curtain{background:var(--surface-deep)}#modal:has(.smenu){background:var(--surface-deep);place-items:start center}#modal>.start{position:relative}#modal>.smenu{position:relative;margin-block:auto;zoom:var(--ui)}.title-art{position:absolute;inset:0;background:url(/art/concept/key_art.jpg) center / cover no-repeat}.title-art:after{content:"";position:absolute;inset:0;background:var(--scrim-art)}.title-art.dim:after{background:var(--scrim-art-dim)}.smenu.title{width:min(1100px,100%);display:grid;gap:14px;justify-items:start;padding:24px 8px}.smenu.title h1{font:700 var(--fs-hero)/1 var(--f-display);margin:0;color:var(--brass);letter-spacing:.01em;text-shadow:var(--text-lift)}.smenu .pitch{margin:0 0 8px;max-width:46ch;color:var(--ink);font-size:var(--fs-lg)}.smenu.title .lnk{margin-top:4px;font-size:var(--fs-md);color:var(--ink-dim)}.mlist{display:grid;gap:8px;width:min(440px,100%)}.mbtn{display:grid;grid-template-columns:1fr auto;column-gap:12px;align-items:center;text-align:left;padding:12px 18px;border-radius:var(--r-md);background:var(--surface);border:1px solid var(--line);backdrop-filter:blur(8px);transition:border-color var(--dur-fast),background var(--dur-fast),transform var(--dur-fast)}.mbtn b{font:700 var(--fs-2xl)/1.15 var(--f-display);color:var(--ink)}.mbtn span{grid-column:1;font-size:var(--fs-md);color:var(--ink-dim)}.mbtn .ico{grid-column:2;grid-row:1 / span 2;color:var(--ink-faint);transition:transform var(--dur-fast),color var(--dur-fast)}.mbtn:hover,.mbtn:focus-visible{border-color:var(--brass);background:var(--surface-hover)}.mbtn:hover .ico{color:var(--brass-hi);transform:translate(3px)}.mbtn.primary{border-color:var(--brass);background:var(--brass-feature-strong),var(--surface)}.mbtn.primary b,.mbtn.primary .ico{color:var(--brass-hi)}.smenu.glass{width:min(1000px,100%);padding:24px 28px 20px;display:grid;gap:14px}.smenu.narrow{width:min(640px,100%)}.mhead{display:flex;align-items:center;gap:14px}.mhead .btn{padding:4px 10px 4px 8px}.smenu h2{margin:0;font:700 var(--fs-4xl)/1.05 var(--f-display);color:var(--brass)}.smenu .lead{margin:-4px 0 0;color:var(--ink-dim);font-size:var(--fs-lg)}.picks{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}.pick{position:relative;display:flex;flex-direction:column;gap:6px;text-align:left;padding:16px 16px 14px;border-radius:var(--r-md);border:1px solid var(--line-soft);background:var(--fill-2);color:var(--ink);transition:border-color var(--dur-fast),transform var(--dur-fast),box-shadow var(--dur-fast)}.pick b{font:700 var(--fs-2xl)/1.15 var(--f-display);color:var(--ink)}.pick>span:not(.eyebrow,.badge,.go){font-size:var(--fs-md);color:var(--ink-dim)}.pick .go{margin-top:auto;padding-top:6px;color:var(--brass-hi);font-weight:600;display:flex;align-items:center;gap:6px}.pick:hover,.pick:focus-visible{border-color:var(--brass);transform:translateY(-1px);box-shadow:var(--shadow-lift)}.pick.rec{border-color:var(--brass);background:var(--brass-feature)}.pick.rec b{color:var(--brass-hi)}.pick>.badge{position:absolute;top:-9px;right:12px}.sbody{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:24px;align-items:start}.ssteps{display:grid;gap:16px;min-width:0}.mstep{display:grid;gap:8px}.mstep h3{display:flex;align-items:center;gap:8px;margin:0;font:700 var(--fs-xl) var(--f-display);color:var(--ink)}.mstep h3 i{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;border:1px solid var(--brass);color:var(--brass);font:600 var(--fs-xs) var(--f-mono);font-style:normal}.smenu .seg{justify-self:start;max-width:100%}.smenu .seg button{padding:6px 14px}.sizes{display:grid;grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:6px}.start-map{margin:0;display:grid;gap:6px;align-content:start}.start-map canvas{width:100%;height:auto;aspect-ratio:1;border-radius:var(--r-sm);border:1px solid var(--line);background:var(--preview-ground)}.start-map figcaption{font-size:var(--fs-sm);color:var(--ink-dim);text-align:center}.mgoals{list-style:none;margin:0;padding:0;display:grid;gap:6px}.mgoals li{display:grid;padding-left:16px;position:relative;font-size:var(--fs-md)}.mgoals li:before{content:"◆";position:absolute;left:0;top:1px;color:var(--brass);font-size:var(--fs-2xs)}.mgoals li span{color:var(--ink-dim)}.mcheck{display:grid;grid-template-columns:20px 1fr;gap:10px;align-items:start;cursor:pointer}.mcheck input{margin:2px 0 0}.mcheck span{display:grid}.mcheck small{color:var(--ink-dim);font-size:var(--fs-sm)}.smenu .code{width:100%;max-width:280px;padding:10px 14px;font:600 var(--fs-3xl) var(--f-mono);letter-spacing:var(--track-code);text-transform:uppercase}.howlist{margin:0;padding-left:18px;display:grid;gap:6px;color:var(--ink-dim)}.howlist b{color:var(--ink)}.smenu .earlier{margin:10px 0 0;font-size:var(--fs-md);color:var(--ink-dim)}.smenu .earlier .lnk small{color:var(--ink-faint)}.mfoot{display:flex;align-items:center;gap:14px;padding-top:14px;border-top:1px solid var(--line-soft)}.mfoot .quiet{flex:1;min-width:0}.mfoot .primary{margin-left:auto}.start{width:min(900px,100%);display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:24px;padding:28px}.start-copy{display:grid;gap:14px;align-content:start;min-width:0}.start h1{font:700 var(--fs-5xl)/1 var(--f-display);margin:0;color:var(--brass);letter-spacing:.01em}.start p{margin:0;color:var(--ink-dim);max-width:60ch}.start p.legendline{font-size:var(--fs-sm);margin-top:-6px}.start.end{grid-template-columns:minmax(0,1fr);width:min(560px,100%);max-height:calc(100vh - 32px);overflow-y:auto}.start.end .row.actions{position:sticky;bottom:-1px;padding:10px 0 2px;background:var(--surface-solid)}.start.end li .omark{white-space:nowrap;margin-right:6px}.start.end.win h1{color:var(--good)}.start.end.loss h1{color:var(--bad)}.objsum{list-style:none;margin:0;padding:0;display:grid;gap:6px}.objsum li{display:grid;grid-template-columns:18px 1fr;gap:8px;font-size:var(--fs-md)}.objsum li span:not(.omark){display:block;color:var(--ink-dim);font-size:var(--fs-sm)}.settings .srow{display:grid;grid-template-columns:130px 1fr auto;gap:12px;align-items:center}.settings label.srow:has(input[type=checkbox]){grid-template-columns:130px auto 1fr}.settings .srow input[type=range]{width:100%}.settings .srow input[type=checkbox]{justify-self:start}.settings .srow.sub>span:first-child{padding-left:14px;color:var(--ink-dim);font-size:var(--fs-sm)}.start.lobby,.start.handover{grid-template-columns:1fr;width:min(640px,100%)}.handover h1{font-size:var(--fs-4xl);margin:6px 0}.lobby{max-width:620px}.lobby .row{display:flex;gap:8px;align-items:center}.lobby .row input{flex:1;font:var(--fs-md) var(--f-mono)}.lobby ul.seats{list-style:none;padding:0;margin:10px 0;display:grid;gap:6px}.lobby ul.seats li{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--line-soft);border-radius:var(--r-md)}.lobby ul.seats li>div{flex:1;display:grid}.lobby ul.seats li small{color:var(--ink-faint)}.lobby ul.seats li.me{border-color:var(--brass);background:var(--brass-wash-2)}@media (max-width: 900px){.start{grid-template-columns:1fr}}@media (max-width: 760px){.smenu.title{padding:8px 0}.smenu.title h1{font-size:var(--fs-5xl)}.smenu.glass{padding:16px 16px 14px}.smenu h2{font-size:var(--fs-3xl)}.sbody{grid-template-columns:1fr;gap:16px}.title-art:after{background:var(--scrim-art-tall)}.sbody .start-map{width:min(260px,100%);justify-self:center}.mfoot{flex-wrap:wrap;position:sticky;bottom:-16px;z-index:1;margin:0 -16px -14px;padding:12px 16px 16px;background:var(--surface-solid);border-radius:0 0 var(--r-md) var(--r-md)}.mfoot .quiet{flex-basis:100%;order:-2}.mfoot .primary{order:-1;flex:1 1 100%;justify-content:center;margin:0}}
