:root{color-scheme:dark;--bg:#071f29;--paper:#f5e6c9;--muted:#9eb8bb;--teal:#8ce8d7;--gold:#e4ba77;--line:#ffffff20}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 80% 0,#16414a,transparent 60%),var(--bg);color:var(--paper);font:15px/1.5 system-ui,sans-serif}button,select{font:inherit;color:inherit}button,select{border:1px solid #ffffff30;background:#153943;border-radius:9px;padding:9px 12px}button{cursor:pointer;transition:background .15s,transform .15s}button:hover:not(:disabled){background:#28535b;transform:translateY(-1px)}button:disabled{opacity:.38;cursor:default}button:focus-visible,select:focus-visible,a:focus-visible{outline:3px solid var(--teal);outline-offset:4px}a{color:var(--gold)}header{max-width:1420px;margin:auto;display:flex;align-items:center;gap:22px;padding:28px 35px}header #help{margin-left:auto;white-space:nowrap}h1,h2,h3,p{margin-top:0}h1{font:38px/1.1 Georgia,serif;margin-bottom:0;letter-spacing:-1px}h1 em{color:var(--muted);font-size:22px;font-weight:normal;letter-spacing:0;display:inline-block;margin-left:12px}.brand{text-decoration:none;border:1px solid var(--gold);border-radius:50%;width:58px;height:58px;display:flex;align-items:center;justify-content:center;font:16px Georgia;flex-shrink:0}.brand span{font-size:22px;margin:0 1px}.eyebrow{font-size:10px;letter-spacing:2.1px;font-weight:650;color:var(--gold);margin-bottom:10px}main{max-width:1420px;margin:auto;padding:0 35px}.chapterbar{border-block:1px solid var(--line);padding:13px 0;display:flex;align-items:center;gap:15px}.chapterbar label{color:var(--muted);font-size:13px}select{max-width:300px}#collection{margin-left:auto;font-size:12px;color:var(--gold)}.layout{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:26px;margin-top:24px}.play{min-width:0}.boardtop{display:flex;justify-content:space-between;padding:0 2px 12px;font-size:12px;letter-spacing:1px}#clock{color:var(--teal)}#map{position:relative;aspect-ratio:1000/650;border-radius:18px;overflow:hidden;border:1px solid #b9d2c33a;background:#0a303d}#map img{width:100%;height:100%;object-fit:cover;opacity:.85}#map svg,#stations,#fibers{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.fiber{stroke:var(--gold);stroke-width:2;stroke-dasharray:4 8;opacity:.6}.fiber.closed{opacity:.17}.stored{stroke:var(--teal);stroke-width:5;fill:none;filter:drop-shadow(0 0 5px #60e5e3)}.life{fill:#052831;stroke:var(--teal);stroke-width:1.4}.life-text{fill:#ddfff6;font:bold 19px system-ui;text-anchor:middle}.node,.fiberbutton{position:absolute;transform:translate(-50%,-50%);pointer-events:auto}.node{display:flex;flex-direction:column;align-items:center;min-width:82px}.badge{display:grid;place-items:center;border-radius:50%;width:39px;height:39px;border:1px solid var(--gold);color:var(--paper);background:#06232bed;box-shadow:0 4px 20px #001a25;font:bold 22px Georgia}.node .name{font-size:10px;letter-spacing:1px;text-shadow:0 2px 4px #000;margin-top:3px}.slots{font-size:12px;letter-spacing:4px;color:var(--teal);height:20px}.swap{font-size:11px;padding:4px 8px;background:#15414b}.fiberbutton{padding:5px 8px;font-size:11px;border-color:#ba955eb0;color:var(--gold);background:#08232df2;white-space:nowrap}.fiberbutton:disabled{opacity:.45}.message{min-height:56px;display:flex;align-items:center;padding:10px 4px;color:#c8dedb;font-size:13px}.toolbar{display:flex;gap:8px;flex-wrap:wrap}.toolbar button{font-size:12px}kbd{font:10px system-ui;margin-left:5px;opacity:.55}aside{border-left:1px solid var(--line);padding-left:25px}aside h2{font:25px Georgia;line-height:1.25}.request{border:1px solid var(--line);padding:11px 12px;border-radius:10px;margin-bottom:8px;display:flex;justify-content:space-between}.request.current{border-color:var(--gold);background:#e4ba7710}.request.done{opacity:.5}.request span:last-child{color:var(--muted);font-size:11px;align-self:center}.primary{background:var(--gold);border-color:var(--gold);color:#102f36;font-weight:650;width:100%}.primary:hover:not(:disabled){background:#f6d79c}#deliver{margin:7px 0 24px}.rulecard{border-top:1px solid var(--line);padding-top:20px;position:relative}.rulecard h3,.ledger-title{font-size:13px;font-weight:550;letter-spacing:.4px}.rulecard p,.footnote{font-size:12px;color:var(--muted)}.dot{display:none}.ledger-title{display:flex;justify-content:space-between;margin-top:22px}#memory{min-height:55px}.memoryrow{display:flex;justify-content:space-between;font-size:12px;padding:7px 0;border-bottom:1px solid var(--line)}.memoryrow b{color:var(--teal)}.footnote{font-size:10px;margin-top:15px}.below{display:grid;grid-template-columns:1fr 1fr;gap:70px;border-top:1px solid var(--line);margin-top:35px;padding:28px 0}.below h2{font:27px Georgia}.below>p{font-size:12px;color:var(--muted);max-width:490px}footer{max-width:1420px;margin:0 auto;padding:10px 35px 28px;display:flex;justify-content:space-between;font-size:10px;color:var(--muted)}dialog{max-width:570px;width:calc(100% - 28px);max-height:90vh;overflow:auto;background:#10343e;color:var(--paper);border:1px solid #ceae7655;border-radius:18px;padding:30px;box-shadow:0 20px 100px #0008}dialog::backdrop{background:#00141bcc;backdrop-filter:blur(5px)}dialog h2{font:32px Georgia}dialog p,dialog li{font-size:13px;color:#b8cece}dialog li{margin-bottom:10px}[hidden]{display:none!important}@media(max-width:1000px){header{gap:15px}h1{font-size:32px}h1 em{display:block;font-size:18px;margin:5px 0 0}.layout{grid-template-columns:minmax(0,1fr) 245px;gap:18px}aside{padding-left:18px}.toolbar kbd{display:none}}@media(max-width:760px){header{padding:20px 16px;gap:12px}.brand{width:43px;height:43px;font-size:12px}h1{font-size:27px}h1 em{font-size:15px}.eyebrow{font-size:8px;letter-spacing:1.3px}header #help{font-size:11px;padding:8px}main{padding:0 14px}.layout{grid-template-columns:1fr;margin-top:18px}aside{border:0;padding:18px 0 0;display:block}.rulecard{margin-top:10px}.boardtop{font-size:10px}select{font-size:12px;max-width:190px}#collection{font-size:10px}.badge{width:29px;height:29px;font-size:17px}.node .name{font-size:8px}.slots{font-size:10px;height:16px}.swap{font-size:9px;padding:3px 6px}.fiberbutton{font-size:9px;padding:4px 5px}.toolbar{gap:5px}.toolbar button{font-size:10px;padding:8px}.below{gap:20px;grid-template-columns:1fr;margin-top:24px}.below h2{margin:0}.below>p{margin:0}footer{padding:10px 14px 24px;gap:20px}footer span:last-child{max-width:150px}#deliver{margin-bottom:12px}aside .eyebrow{margin-bottom:5px}aside h2{font-size:22px;margin-bottom:15px}}
