:root{color-scheme:dark;--bg: #0f141c;--panel: #1a2332;--panel-2: #243044;--text: #e8eef7;--muted: #9aa8bc;--accent: #c9a227;--accent-2: #8b1e1e;--line: #2c3a4f;--spring: #3d8f5a;--summer: #c9a227;--autumn: #c4783a;--winter: #7a9bb8;font-family:Segoe UI,system-ui,sans-serif;line-height:1.4;font-weight:400;color:var(--text);background:var(--bg)}*,*:before,*:after{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(1200px 600px at 20% -10%,#1e2a3d 0%,transparent 55%),radial-gradient(900px 500px at 90% 10%,#2a1c1c 0%,transparent 50%),var(--bg)}#app{min-height:100vh}.shell{display:flex;flex-direction:column;min-height:100vh;max-width:1280px;margin:0 auto;padding:.75rem 1rem 1rem;gap:.65rem}.topbar{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem 1.25rem;justify-content:space-between;padding:.65rem .85rem;background:color-mix(in srgb,var(--panel) 92%,black);border:1px solid var(--line);border-radius:10px}.brand{display:flex;flex-direction:column;gap:.1rem}.brand strong{font-size:1.15rem;letter-spacing:.02em}.muted{color:var(--muted);font-size:.85rem}.clock{display:flex;align-items:center;gap:.75rem;font-variant-numeric:tabular-nums}.season-pill{display:inline-block;padding:.25rem .7rem;border-radius:999px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;font-size:.8rem;border:1px solid var(--line);background:var(--panel-2)}.season-pill[data-season=Spring]{background:color-mix(in srgb,var(--spring) 35%,var(--panel-2));border-color:var(--spring)}.season-pill[data-season=Summer]{background:color-mix(in srgb,var(--summer) 35%,var(--panel-2));border-color:var(--summer)}.season-pill[data-season=Winter]{background:color-mix(in srgb,var(--winter) 40%,var(--panel-2));border-color:var(--winter)}.year{font-size:1.05rem;font-weight:600}.actions{display:flex;gap:.5rem}.btn{appearance:none;border:1px solid var(--line);background:var(--panel-2);color:var(--text);border-radius:8px;padding:.45rem .9rem;font:inherit;font-weight:600;cursor:pointer}.btn:hover{filter:brightness(1.08)}.btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn.primary{background:linear-gradient(180deg,#d4b03a,#a07818);color:#1a1204;border-color:#e0c56a}.btn.ghost{background:transparent}.hooks{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.5rem}.hook{display:flex;flex-direction:column;gap:.15rem;padding:.55rem .75rem;border-radius:8px;border:1px solid var(--line);background:var(--panel)}.hook-id{font-weight:700;color:var(--accent)}.hook-d{font-size:.85rem;color:var(--muted)}.stage{display:grid;grid-template-columns:1fr minmax(200px,260px);gap:.75rem;flex:1;min-height:420px}@media(max-width:820px){.stage{grid-template-columns:1fr}}.map{width:100%;height:min(70vh,640px);background:var(--panel);border:1px solid var(--line);border-radius:12px}.map-bg{fill:#121a26}.route{stroke:#c9a227aa;stroke-width:2.2;stroke-linecap:round}.hex polygon{fill:var(--fill);stroke:#0c1018;stroke-width:1.2;cursor:pointer;transition:filter .12s ease,stroke .12s ease}.hex:hover polygon{filter:brightness(1.12)}.hex.selected polygon{stroke:#f0d878;stroke-width:2.4;filter:brightness(1.15)}.hex.seat .marker{fill:var(--accent-2);stroke:#f0d878;stroke-width:1.5}.hex.bannerman .marker{fill:#2a5080;stroke:#a8c4e8;stroke-width:1.2}.hex .label{fill:#f4f7fb;font-size:9px;font-weight:700;text-anchor:middle;pointer-events:none;paint-order:stroke;stroke:#0c1018;stroke-width:2.5px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:.85rem 1rem}.panel h2,.panel h3{margin:.4rem 0 .35rem;font-size:.95rem;letter-spacing:.03em;text-transform:uppercase;color:var(--accent)}.panel h2{margin-top:0;font-size:1.05rem}.panel p{margin:.35rem 0;font-size:.92rem}.kv{display:grid;grid-template-columns:auto 1fr;gap:.25rem .75rem;margin:.4rem 0;font-size:.92rem}.kv dt{color:var(--muted)}.kv dd{margin:0}.footer{text-align:center;padding:.25rem}code{font-size:.85em;background:var(--panel-2);padding:.1rem .35rem;border-radius:4px}.season-pill[data-season=Autumn]{background:color-mix(in srgb,#c dig 35%,var(--panel-2));border-color:#c dig}
