@font-face{font-family:Orbitron Variable;font-style:normal;font-display:swap;font-weight:400 900;src:url(/assets/orbitron-latin-wght-normal-Du7j2Vp2.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg: #12141a;--panel: #1a1d26;--panel-2: #222634;--panel-market: #262c3e;--line: #2e3446;--text: #e6e9f0;--muted: #8a91a6;--card-text: #c8cee0;--blue: #4c8dff;--green: #3fbf70;--red: #ff5f6d;--purple: #b07cff;--gold: #f5c451;--radius: 10px;--display: "Orbitron Variable", system-ui, sans-serif;font-synthesis:none}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;background:linear-gradient(180deg,#12141ab8,#12141ae0),url(/space.webp) center / cover no-repeat}button{font:inherit;color:inherit;background:var(--panel-2);border:1px solid var(--line);border-radius:8px;padding:8px 14px;cursor:pointer;transition:background .12s,border-color .12s,transform .06s}button:hover:not(:disabled){background:#2b3145;border-color:#3d465e}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.4;cursor:not-allowed}button.primary{background:var(--blue);border-color:var(--blue);color:#06101f;font-weight:600}button.primary:hover:not(:disabled){background:#6ba0ff;border-color:#6ba0ff}input{font:inherit;color:inherit;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:8px 12px}.app{max-width:1240px;margin:0 auto;padding:12px 16px 24px}.topbar{display:flex;align-items:baseline;gap:16px;flex-wrap:wrap;padding-bottom:10px;border-bottom:1px solid var(--line);margin-bottom:16px}.topbar h1{font-family:var(--display);font-size:16px;font-weight:700;margin:0;letter-spacing:.04em}.topbar .spacer{flex:1}.connect h1{font-family:var(--display);font-size:27px;font-weight:700;margin:0 0 6px;letter-spacing:.03em}.link-state{display:inline-flex;align-items:center;gap:6px;color:var(--gold);font-weight:600}.link-state .dot{width:7px;height:7px;border-radius:50%;background:currentColor;animation:link-pulse 1.1s ease-in-out infinite}@keyframes link-pulse{50%{opacity:.25}}.link-state.gone{color:var(--red)}.link-state.gone .dot{animation:none}.board{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:16px;align-items:start}@media(max-width:900px){.board{grid-template-columns:minmax(0,1fr)}}.stage{position:sticky;top:0;z-index:4;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);padding:8px 0 6px;margin-top:-8px}.stage .card-strip{max-height:32vh;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;padding:3px;margin:-3px}@media(max-width:900px){.stage .card-strip{max-height:26vh}}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px;margin-bottom:14px}.panel>h2{font-family:var(--display);font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 10px;font-weight:600}.panel.market{background:var(--panel-market)}.muted{color:var(--muted)}.small{font-size:13px}.market-row+.market-row{margin-top:14px}.market-row .label{font-size:11px;color:var(--muted);letter-spacing:.06em;margin-bottom:6px;display:flex;justify-content:space-between}.card-strip{display:grid;grid-template-columns:repeat(auto-fill,minmax(138px,1fr));gap:8px}.card{background:var(--panel-2);border:1px solid var(--line);border-top:3px solid var(--accent, var(--line));border-radius:8px;padding:8px 9px 9px;text-align:left;min-height:104px;display:flex;flex-direction:column;gap:2px}.card.blue{--accent: var(--blue)}.card.green{--accent: var(--green)}.card.red{--accent: var(--red)}.card.purple{--accent: var(--purple)}.card.landmark{--accent: var(--gold)}.card .act{font-weight:700;font-size:12px;color:var(--accent, var(--text));letter-spacing:.04em;display:flex;align-items:center;gap:4px}.icon{font-size:12px;line-height:1;font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif}.tally{display:flex;flex-wrap:wrap;gap:9px;margin-top:5px;font-size:12px;color:var(--muted)}.tally b{color:var(--text);font-weight:700;margin-left:2px}.card .name{font-family:var(--display);font-size:12.5px;font-weight:600;line-height:1.3;letter-spacing:-.005em}.card .text{font-size:12px;color:var(--card-text);line-height:1.4;margin-top:auto;padding-top:3px}.card .text .icon{font-size:13.5px;vertical-align:-1px}.card .head{display:flex;align-items:baseline;justify-content:space-between;gap:6px;min-height:14px}.card .cost{font-size:11px;font-weight:700;color:var(--gold);font-variant-numeric:tabular-nums;white-space:nowrap}.card .kind{font-size:11px;color:var(--muted);letter-spacing:.03em}.card .stack{align-self:flex-start;margin-top:6px;padding:1px 6px;border:1px solid var(--line);border-radius:4px;background:#ffffff0f;font-size:11px;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:.03em;color:var(--text)}.card.fired{animation:card-fire 1.1s ease-out}@keyframes card-fire{0%{box-shadow:0 0 0 2px var(--gold),0 0 22px #f5c45180;background:#3b3626;transform:translateY(-3px)}60%{box-shadow:0 0 0 2px #f5c45173,0 0 12px #f5c45133;background:#2f3040}to{box-shadow:none;background:var(--panel-2);transform:none}}button.card{cursor:pointer}button.card:disabled{opacity:1;cursor:default;background:#1e2230;border-color:var(--line)}button.card:disabled .name{color:#aab2c6}button.card:disabled .act{opacity:.55}button.card:disabled .cost{color:#a2874a}button.card.buildable{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}button.card.buildable:hover{background:#2b3145;transform:translateY(-2px)}.player{border:1px solid var(--line);border-left:3px solid transparent;border-radius:8px;padding:8px 10px;margin-bottom:8px;background:var(--panel-2)}.player.active{border-left-color:var(--gold)}.player.you{background:#232839}.player .head{display:flex;align-items:baseline;gap:8px}.player .who{font-weight:600}.player .coins{margin-left:auto;color:var(--gold);font-weight:700}.coins{position:relative}.floater{position:absolute;left:50%;bottom:100%;transform:translate(-50%);font-size:14px;font-weight:700;white-space:nowrap;pointer-events:none;text-shadow:0 1px 3px rgba(0,0,0,.6);animation:float-up 1.5s ease-out forwards}.floater.gain{color:var(--green)}.floater.loss{color:var(--red)}@keyframes float-up{0%{opacity:0;transform:translate(-50%,8px) scale(.85)}18%{opacity:1;transform:translate(-50%) scale(1.05)}35%{transform:translate(-50%,-3px) scale(1)}to{opacity:0;transform:translate(-50%,-26px) scale(1)}}.player .marks{font-size:11.5px;color:var(--muted);margin-top:2px}.city{border:1px solid var(--line);border-left:3px solid transparent;border-radius:8px;padding:10px 12px 12px;margin-bottom:12px;background:var(--panel-2)}.city.active{border-left-color:var(--gold)}.city.you{background:#232839}.city.retired{opacity:.55}.city.retired .card{filter:grayscale(.7)}.offline{margin-left:8px;padding:1px 7px;border:1px solid var(--line);border-radius:999px;background:#ff5f6d1f;color:var(--red);font-size:10.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;vertical-align:1px}.city-head{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:9px}.city-head .who{font-weight:600;font-size:15px}.city-head .coins{color:var(--gold);font-weight:700;font-size:15px}.city-head .tally{margin-top:0;margin-left:auto}.dice{display:flex;gap:8px;align-items:center}.die{width:34px;height:34px;border-radius:7px;background:#f2f4f8;display:grid;grid-template:repeat(3,1fr) / repeat(3,1fr);padding:5px;animation:roll .34s ease-out}.die .pip{display:block;width:6px;height:6px;border-radius:50%;background:#14171f;align-self:center;justify-self:center}@keyframes roll{0%{transform:rotate(-40deg) scale(.7);opacity:.3}60%{transform:rotate(8deg) scale(1.06)}to{transform:none;opacity:1}}.dice .total{font-size:22px;font-weight:700}.die.tumbling{animation:tumble .5s linear infinite}@keyframes tumble{0%{transform:rotate(0) translateY(0)}25%{transform:rotate(90deg) translateY(-6px)}50%{transform:rotate(180deg) translateY(0)}75%{transform:rotate(270deg) translateY(-4px)}to{transform:rotate(360deg) translateY(0)}}.sidebar{position:sticky;top:12px}@media(max-width:900px){.sidebar{position:static}}.log{height:calc(100vh - 130px);min-height:260px;overflow-y:auto;font-size:12.5px;line-height:1.55;display:flex;flex-direction:column}.log .entry{padding:1px 0}.log .entry.turn{color:var(--muted);border-bottom:1px solid var(--line);margin-bottom:5px;padding-bottom:5px}.log .entry.sub{padding-left:12px;color:var(--muted)}.log .gain{color:var(--green);font-weight:600}.log .loss{color:var(--red);font-weight:600}.log .who{font-weight:600}.actionbar{position:sticky;bottom:0;z-index:5;background:linear-gradient(to top,var(--bg) 70%,transparent);padding:12px 0 4px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}.actionbar .prompt{font-weight:600;margin-right:4px}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#080a0fb8;display:grid;place-items:center;padding:20px;z-index:10}.overlay .sheet{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:18px;max-width:760px;width:100%;max-height:84vh;overflow:auto}.overlay h3{margin:0 0 4px;font-size:15px}.banner{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;background:var(--panel-2);border:1px solid var(--gold);border-radius:var(--radius);padding:14px 16px;margin-bottom:14px;font-size:17px;font-weight:600}button.small{font-size:12px;padding:5px 10px}.error{background:#2a1a20;border:1px solid var(--red);color:#ffb3ba;border-radius:8px;padding:8px 12px;margin-bottom:10px;font-size:13px}.connect{max-width:380px;margin:60px auto;display:flex;flex-direction:column;gap:10px}.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.by-code{border-top:1px solid var(--line);padding-top:12px;margin-top:4px;display:flex;flex-direction:column;gap:8px}.by-code input{flex:1;min-width:0}.player.empty{border-style:dashed;background:none}.toast{position:fixed;top:14px;left:50%;transform:translate(-50%);z-index:20;background:var(--gold);color:#1b1503;font-weight:700;padding:9px 20px;border-radius:999px;box-shadow:0 8px 28px #00000080;pointer-events:none;animation:toast-in .2s ease-out}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,-16px)}to{opacity:1;transform:translate(-50%)}}@media(prefers-reduced-motion:reduce){.die,.die.tumbling,.card.fired,.toast{animation:none}.floater{animation:float-up 1.5s step-end forwards}}
