@font-face{font-family:Redaction;src:url(/fonts/Redaction-Regular.woff2) format("woff2");font-weight:400;font-display:swap}@font-face{font-family:Inter;src:url(/fonts/Inter-Variable.woff2) format("woff2");font-weight:100 900;font-display:swap}@font-face{font-family:IBM Plex Mono;src:url(/fonts/IBMPlexMono-Regular.woff2) format("woff2");font-weight:400;font-display:swap}:root{--ink-900: oklch(.16 .012 150);--ink-800: oklch(.21 .014 150);--ink-700: oklch(.27 .016 150);--ink-600: oklch(.34 .018 150);--paper-50: oklch(.96 .006 110);--paper-200: oklch(.84 .008 130);--paper-400: oklch(.66 .01 140);--bridge-land: oklch(.74 .16 150);--bridge-strain: oklch(.8 .17 85);--bridge-tear: oklch(.62 .2 25);--sea-drift: oklch(.55 .11 200);--indeterminate: oklch(.48 .015 150);--ok: var(--bridge-land);--warn: var(--bridge-strain);--danger: var(--bridge-tear);--focus-ring: oklch(.85 .14 150 / .7);--step--1: .8rem;--step-0: 1rem;--step-1: 1.25rem;--step-2: 1.563rem;--step-3: 1.953rem;--step-4: 2.441rem;--space-1: .5rem;--space-2: .75rem;--space-3: 1rem;--space-4: 1.5rem;--space-5: 2.5rem;--space-6: 4rem;--spring-settle: linear(0, .5 7%, .97 14%, 1.06 21%, 1.02 35%, 1 50%);--spring-snap: cubic-bezier(.34, 1.56, .64, 1);--ease-drift: cubic-bezier(.4, 0, .2, 1);--dur-tick: 1s;--dur-settle: .42s;--dur-snap: .26s;--font-display: "Redaction", Georgia, "Times New Roman", serif;--font-ui: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--ink-900);color:var(--paper-50);font-family:var(--font-ui);font-size:var(--step-0);line-height:1.55;-webkit-font-smoothing:antialiased}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.root-shell{position:relative;min-height:100%}.canvas-overlay{position:fixed;inset:0;z-index:0;pointer-events:none}.poster-overlay{position:fixed;right:var(--space-4);bottom:var(--space-4);z-index:0;pointer-events:none;opacity:.85}@media (max-width: 720px){.poster-overlay{right:50%;transform:translate(50%);bottom:var(--space-2);opacity:.5}}.app{position:relative;z-index:1;max-width:1100px;margin:0 auto;padding:var(--space-4) var(--space-4) var(--space-6)}.topbar{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap;margin-bottom:var(--space-5)}.brand{font-family:var(--font-display);font-size:var(--step-4);line-height:1.05;letter-spacing:.04em;margin:0;color:var(--paper-50)}.status-cluster{display:flex;align-items:center;gap:var(--space-3);font-size:var(--step--1);color:var(--paper-200)}.dot{width:.6rem;height:.6rem;border-radius:50%;display:inline-block}.dot.ok{background:var(--ok);box-shadow:0 0 8px var(--ok)}.dot.down{background:var(--danger)}.sea-readout{padding-left:var(--space-3);border-left:1px solid var(--ink-600)}.layout{display:grid;grid-template-columns:minmax(180px,1fr) minmax(320px,2fr);gap:var(--space-4);align-items:start}.events{grid-column:1 / -1}@media (max-width: 720px){.layout{grid-template-columns:1fr}}.panel{background:var(--ink-800);border:1px solid var(--ink-700);border-radius:10px;padding:var(--space-4)}.mode-3d .panel{background:color-mix(in oklab,var(--ink-800) 94%,transparent);backdrop-filter:blur(3px)}.panel-h{font-family:var(--font-display);font-size:var(--step-1);font-weight:400;margin:0 0 var(--space-3);color:var(--paper-200)}.accent{color:var(--bridge-land)}.island-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-1)}.island-btn{width:100%;display:flex;align-items:center;gap:var(--space-2);background:transparent;border:1px solid transparent;border-radius:7px;padding:var(--space-2) var(--space-3);color:var(--paper-50);font:inherit;cursor:pointer;transition:background var(--dur-snap) var(--ease-drift),border-color var(--dur-snap) var(--ease-drift)}.island-btn:hover{background:var(--ink-700)}.island-row.garrisoned .island-btn{border-color:var(--bridge-land);background:color-mix(in oklab,var(--bridge-land) 12%,var(--ink-800))}.island-name{font-family:var(--font-mono);font-weight:600;flex:1}.island-integrity{color:var(--paper-400)}.badge{font-size:.65rem;text-transform:uppercase;letter-spacing:.06em;padding:.1rem .35rem;border-radius:4px}.badge.stale{background:var(--ink-600);color:var(--paper-200)}.bridge-table{width:100%;border-collapse:collapse;font-size:var(--step--1)}.bridge-table th,.bridge-table td{text-align:left;padding:var(--space-2);border-bottom:1px solid var(--ink-700)}.bridge-table th.num,.bridge-table td.num{text-align:right}.band-pill{display:inline-block;padding:.1rem .5rem;border-radius:999px;font-size:.7rem;letter-spacing:.02em}.band-pill.band-land{background:color-mix(in oklab,var(--bridge-land) 22%,transparent);color:var(--bridge-land)}.band-pill.band-channel{background:color-mix(in oklab,var(--bridge-strain) 20%,transparent);color:var(--bridge-strain)}.band-pill.band-tear{background:color-mix(in oklab,var(--bridge-tear) 22%,transparent);color:var(--bridge-tear)}.band-pill.band-indeterminate{background:color-mix(in oklab,var(--indeterminate) 30%,transparent);color:var(--paper-400)}.actions{display:flex;gap:var(--space-1);flex-wrap:wrap}.bridge-table td.actions .act{font-size:.7rem;padding:.2rem .45rem}.bridge-table{table-layout:fixed}.bridge-table th.num,.bridge-table td.num{width:3.2rem}.act{font:inherit;font-size:.75rem;border-radius:6px;border:1px solid var(--ink-600);background:var(--ink-700);color:var(--paper-50);padding:.25rem .6rem;cursor:pointer;transition:transform var(--dur-settle) var(--spring-settle),background var(--dur-snap) var(--ease-drift)}.act:hover:not(:disabled){background:var(--ink-600)}.act:active:not(:disabled){transform:scale(.94)}.act.reinforce{border-color:color-mix(in oklab,var(--bridge-land) 50%,var(--ink-600))}.act:disabled{opacity:.4;cursor:not-allowed}.hint{font-size:.78rem;color:var(--paper-400);margin:var(--space-3) 0 0}.claim-hint{font-size:.78rem;color:var(--paper-400);margin:0 0 var(--space-3)}.act.nothing{border-color:var(--ink-600);opacity:.92}.badge.yours{background:color-mix(in oklab,var(--bridge-land) 30%,transparent);color:var(--bridge-land);border:1px solid color-mix(in oklab,var(--bridge-land) 50%,transparent)}.row-strain-tag{margin-left:var(--space-1);font-size:.62rem;color:var(--bridge-strain);letter-spacing:.04em}tr.straining td{background:color-mix(in oklab,var(--bridge-strain) 8%,transparent)}.cost{font-size:.62rem;opacity:.7;margin-left:.25rem}.loopbar{display:flex;flex-direction:column;gap:var(--space-2);margin:0 0 var(--space-4);padding:var(--space-3);border:1px solid var(--ink-700);border-radius:10px;background:color-mix(in oklab,var(--ink-900) 60%,var(--ink-800))}.loopbar.has-strain{border-color:color-mix(in oklab,var(--bridge-strain) 55%,var(--ink-700));box-shadow:0 0 0 1px color-mix(in oklab,var(--bridge-strain) 25%,transparent),0 6px 24px color-mix(in oklab,var(--bridge-strain) 12%,transparent)}.rigging{display:flex;flex-direction:column;gap:var(--space-1)}.rigging-head{display:flex;align-items:baseline;gap:var(--space-2);flex-wrap:wrap}.rigging-label{font-family:var(--font-display);font-size:var(--step-0);letter-spacing:.08em;color:var(--paper-200)}.rigging-val{font-size:var(--step-1);color:var(--paper-50)}.rigging-state{font-size:.7rem;color:var(--paper-400);letter-spacing:.03em}.rigging-state.warn{color:var(--bridge-strain)}.rigging-bar{position:relative;height:.7rem;border-radius:999px;background:var(--ink-800);overflow:hidden;border:1px solid var(--ink-700)}.rigging-fill{position:absolute;inset:0;width:var(--fill, 100%);background:linear-gradient(90deg,color-mix(in oklab,var(--bridge-land) 70%,transparent),var(--bridge-land));transition:width .18s var(--ease-drift)}.rigging.low .rigging-fill{background:linear-gradient(90deg,color-mix(in oklab,var(--bridge-tear) 60%,transparent),var(--bridge-tear))}.rigging.bracing .rigging-fill{background:linear-gradient(90deg,color-mix(in oklab,var(--bridge-strain) 60%,transparent),var(--bridge-strain))}.strain-banner{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:8px;font-size:var(--step--1)}.strain-banner.calm{background:var(--ink-800);color:var(--paper-400)}.strain-banner.calm .strain-hint{color:var(--paper-400);opacity:.8}.strain-banner.open{background:color-mix(in oklab,var(--bridge-strain) 16%,var(--ink-800));border:1px solid color-mix(in oklab,var(--bridge-strain) 45%,transparent)}.strain-tag{font-family:var(--font-display);letter-spacing:.1em;color:var(--bridge-strain);font-size:var(--step-0)}.strain-pair{font-size:var(--step-1);color:var(--paper-50);font-weight:600}.strain-arrow{margin:0 .15rem;color:var(--bridge-strain)}.strain-dir{color:var(--paper-200);font-style:italic}.strain-left{font-size:var(--step-1);color:var(--paper-50);margin-left:auto}.strain-left.urgent{color:var(--bridge-tear)}.act-verbs{display:flex;gap:var(--space-1);flex-basis:100%;flex-wrap:wrap;margin-top:var(--space-1)}.act-verbs .act{font-size:.82rem;padding:.35rem .7rem}.act-done{flex-basis:100%;font-size:.8rem;color:var(--paper-200);margin-top:var(--space-1)}.streak{display:flex;gap:var(--space-3);align-items:baseline;flex-wrap:wrap;font-size:.78rem;color:var(--paper-200)}.streak-val strong{font-size:var(--step-1);color:var(--bridge-land)}.streak-sub,.streak-eff{color:var(--paper-400)}.resolve-beat{display:flex;gap:var(--space-2);align-items:center;flex-wrap:wrap;font-size:.78rem;padding:var(--space-1) var(--space-2);border-radius:7px;border-left:3px solid var(--ink-600)}.resolve-beat.absorbed{border-left-color:var(--bridge-land);background:color-mix(in oklab,var(--bridge-land) 10%,transparent)}.resolve-beat.breach{border-left-color:var(--bridge-tear);background:color-mix(in oklab,var(--bridge-tear) 10%,transparent)}.resolve-word{font-family:var(--font-display);letter-spacing:.06em}.resolve-beat.absorbed .resolve-word{color:var(--bridge-land)}.resolve-beat.breach .resolve-word{color:var(--bridge-tear)}.resolve-grade.right{color:var(--bridge-land)}.resolve-grade.wrong{color:var(--bridge-tear)}.resolve-grade.muted{color:var(--paper-400)}.resolve-protect{color:var(--bridge-land);font-size:.7rem;border:1px solid color-mix(in oklab,var(--bridge-land) 40%,transparent);border-radius:999px;padding:.05rem .4rem}.event-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px;font-family:var(--font-mono);font-size:.78rem}.event-row{padding:.2rem var(--space-2);border-left:2px solid var(--ink-600);color:var(--paper-200)}.event-row.muted{color:var(--paper-400);border-left-color:var(--ink-700)}.event-row.kind-bridge_break,.event-row.kind-strain_resolve{border-left-color:var(--bridge-tear)}.event-row.kind-strain_open{border-left-color:var(--bridge-strain)}.event-row.kind-bridge_open{border-left-color:var(--bridge-land)}.poster{margin:0;text-align:center;pointer-events:auto;max-width:360px}.poster-svg{width:min(46vw,240px);height:auto;border:1px solid var(--ink-700);border-radius:10px;background:var(--ink-900)}.poster-cap{font-size:.78rem;color:var(--paper-400);margin-top:var(--space-2)}.perf-overlay{position:fixed;bottom:8px;right:8px;z-index:10;background:#000000b3;color:var(--bridge-land);padding:4px 8px;font-size:.7rem;border-radius:6px}:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.coast-diff{position:fixed;inset:0;z-index:5;display:grid;place-items:center;padding:var(--space-3);background:#0a0f0bc7;backdrop-filter:blur(3px);animation:coast-in var(--dur-settle, .36s) var(--spring-snap) both}@keyframes coast-in{0%{opacity:0}to{opacity:1}}.coast-card{width:min(640px,96vw);max-height:92vh;overflow-y:auto;background:var(--ink-800);border:1px solid var(--ink-600);border-radius:6px;box-shadow:0 24px 80px #00000080;padding:var(--space-4);color:var(--paper-200)}.coast-head{margin-bottom:var(--space-3)}.coast-eyebrow{display:block;font-size:var(--step--1);letter-spacing:.14em;text-transform:uppercase;color:var(--paper-400);margin-bottom:var(--space-1)}.coast-h{font-family:var(--font-display, "Redaction"),Georgia,serif;font-size:var(--step-3);color:var(--paper-50);margin:0}.coast-recover{font-size:var(--step--1);margin:var(--space-1) 0 0}.coast-recover.ok{color:var(--bridge-land)}.coast-recover.warn{color:var(--bridge-strain)}.coast-headline{font-size:var(--step-1);line-height:1.4;color:var(--paper-100, var(--paper-50));margin:0 0 var(--space-4)}.coast-sub{font-size:var(--step--1);letter-spacing:.1em;text-transform:uppercase;color:var(--paper-400);margin:var(--space-3) 0 var(--space-2)}.coast-flat-note{font-size:var(--step-0);color:var(--paper-400);line-height:1.5;margin:0 0 var(--space-2);border-left:2px solid var(--sea-drift);padding-left:var(--space-2)}.coast-bridge-list{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-1)}.coast-bridge{display:grid;grid-template-columns:minmax(7em,1fr) auto 1fr auto auto;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-2);background:var(--ink-900);border-radius:4px;font-size:var(--step-0)}.coast-bridge.indet{opacity:.6;grid-template-columns:minmax(7em,1fr) 1fr}.cb-pair{color:var(--paper-200)}.cb-arrow{color:var(--paper-400);margin:0 .15em}.cb-before,.cb-after{color:var(--paper-400)}.cb-after{color:var(--paper-50)}.cb-track{position:relative;height:2px;background:var(--ink-600);border-radius:2px;overflow:hidden}.cb-pen{position:absolute;inset:0;transform-origin:left center;animation:pen-draw var(--dur-settle, .42s) var(--spring-settle) both}.cb-pen[data-dir=weaker]{background:linear-gradient(90deg,var(--bridge-land),var(--bridge-tear))}.cb-pen[data-dir=stronger]{background:linear-gradient(90deg,var(--bridge-tear),var(--bridge-land))}.cb-pen[data-dir=flat]{background:var(--sea-drift)}@keyframes pen-draw{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.cb-delta.weaker{color:var(--bridge-tear)}.cb-delta.stronger{color:var(--bridge-land)}.cb-delta.flat{color:var(--paper-400)}.cb-state.indet{color:var(--indeterminate);font-size:var(--step--1)}.coast-state{display:grid;gap:var(--space-2);margin:var(--space-3) 0}.coast-stat{display:grid;grid-template-columns:9em 4em 1fr;align-items:center;gap:var(--space-2)}.cs-label{color:var(--paper-400);font-size:var(--step--1);text-transform:uppercase;letter-spacing:.08em}.cs-val{color:var(--paper-50)}.cs-meter{height:6px;background:var(--ink-900);border-radius:3px;overflow:hidden}.cs-fill{display:block;height:100%;background:var(--bridge-land);transition:width var(--dur-settle, .42s) var(--ease-drift)}.cs-fill.rig{background:var(--sea-drift)}.coast-foresight{margin:var(--space-3) 0;padding-top:var(--space-3);border-top:1px solid var(--ink-700)}.coast-edge{display:flex;align-items:baseline;gap:var(--space-2);margin:0}.edge-num{font-size:var(--step-3);font-family:var(--font-mono, "IBM Plex Mono"),monospace}.edge-num.pos{color:var(--bridge-land)}.edge-num.neg{color:var(--bridge-tear)}.edge-label{font-size:var(--step--1);color:var(--paper-400);text-transform:uppercase;letter-spacing:.08em}.coast-edge-sub{color:var(--paper-400);font-size:var(--step-0);margin:var(--space-1) 0}.coast-honest{color:var(--paper-400);font-size:var(--step--1);line-height:1.5;margin:var(--space-1) 0 0;font-style:italic}.coast-foot{margin-top:var(--space-4);display:flex;justify-content:flex-end}.coast-enter,.coast-cta{font:inherit;font-size:var(--step-0);padding:var(--space-2) var(--space-4);background:var(--bridge-land);color:var(--ink-900);border:none;border-radius:4px;cursor:pointer;transition:transform var(--dur-snap, .18s) var(--spring-snap)}.coast-enter:hover,.coast-cta:hover{transform:translateY(-1px)}.coast-cta{display:inline-block;text-decoration:none;margin-right:var(--space-2)}.coast-skip,.coast-lede{color:var(--paper-400)}.coast-skip{background:none;border:1px solid var(--ink-600);border-radius:4px;padding:var(--space-2) var(--space-3);cursor:pointer;font:inherit}.coast-lede{font-size:var(--step-0);line-height:1.5;margin:var(--space-2) 0 var(--space-3)}.streak-standing{color:var(--bridge-land);font-size:var(--step--1);padding-left:var(--space-2);border-left:1px solid var(--ink-600)}@media (prefers-reduced-motion: reduce){:root{--dur-tick: 0ms;--dur-settle: 0ms;--dur-snap: 0ms;--spring-settle: linear(0, 1);--spring-snap: linear(0, 1)}*{animation:none!important;transition:none!important}}.view-tabs{position:relative;z-index:2;display:flex;gap:var(--space-2);padding:var(--space-3) var(--space-4) 0}.view-tab{background:none;border:1px solid var(--ink-600);border-bottom:none;border-radius:6px 6px 0 0;color:var(--paper-200);font:inherit;font-size:var(--step--1);letter-spacing:.04em;text-transform:lowercase;padding:var(--space-2) var(--space-3);cursor:pointer}.view-tab.active{color:var(--paper-50);border-color:var(--bridge-land);background:color-mix(in oklch,var(--bridge-land) 12%,transparent)}.social-panel{position:relative;z-index:1;max-width:64rem;margin:0 auto;padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-5);color:var(--paper-50)}.social-head{display:flex;flex-direction:column;gap:var(--space-2)}.social-title{font-family:var(--font-display, "Redaction", Georgia, serif);font-size:var(--step-3);letter-spacing:.01em;margin:0;color:var(--paper-50)}.social-sub{font-size:var(--step--1);color:var(--paper-200);margin:0}.social-conn.on{color:var(--bridge-land)}.social-conn.off{color:var(--bridge-strain)}.social-invariant{font-size:var(--step--1);line-height:1.5;color:var(--paper-200);border-left:2px solid var(--sea-drift);padding-left:var(--space-3);margin:var(--space-1) 0 0}.claim-map{display:flex;flex-direction:column;gap:var(--space-3)}.claim-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(9rem,1fr));gap:var(--space-2)}.claim-btn{width:100%;display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;background:var(--ink-800);border:1px solid var(--ink-600);border-radius:8px;padding:var(--space-2) var(--space-3);color:var(--paper-50);font:inherit;cursor:pointer;transition:border-color var(--dur-tick, .12s) var(--ease-drift, ease)}.claim-btn:hover{border-color:var(--paper-400)}.claim-cell.free .claim-btn{border-style:dashed}.claim-cell.held .claim-btn{border-color:var(--sea-drift)}.claim-cell.mine .claim-btn{border-color:var(--bridge-land);background:color-mix(in oklch,var(--bridge-land) 14%,var(--ink-800))}.claim-cell.abandoned .claim-btn{border-color:var(--bridge-strain);border-style:dotted}.claim-asset{font-size:var(--step-0);font-weight:600}.claim-state{font-size:var(--step--1);color:var(--paper-200)}.claim-standing{font-size:var(--step--1);color:var(--sea-drift)}.claim-hint{font-size:var(--step--1);line-height:1.5;color:var(--paper-200);margin:0}.claim-hint strong{color:var(--bridge-land);font-weight:600}.call-round{display:flex;flex-direction:column;gap:var(--space-3);border-top:1px solid var(--ink-600);padding-top:var(--space-4)}.round-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-3)}.round-title{font-family:var(--font-display, "Redaction", Georgia, serif);font-size:var(--step-1);margin:0}.round-open,.round-pick{background:var(--ink-700);border:1px solid var(--bridge-land);border-radius:6px;color:var(--paper-50);font:inherit;font-size:var(--step--1);padding:var(--space-2) var(--space-3);cursor:pointer}.round-open:hover,.round-pick:hover:not(:disabled){background:var(--ink-600)}.round-status{font-size:var(--step-0);line-height:1.5;color:var(--paper-50);margin:0}.round-options{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:var(--space-2)}.round-pick{display:flex;flex-direction:column;gap:2px;min-width:8rem}.round-pick:disabled{opacity:.55;cursor:default}.round-pick.picked{border-color:var(--paper-400)}.pick-pair{font-size:var(--step-0);font-weight:600}.pick-dir{font-size:var(--step--1);color:var(--paper-200)}.round-winners{border:1px solid var(--bridge-land);border-radius:8px;padding:var(--space-3);background:color-mix(in oklch,var(--bridge-land) 8%,var(--ink-900))}.winners-head{font-family:var(--font-display, "Redaction", Georgia, serif);font-size:var(--step-0);margin:0 0 var(--space-2);color:var(--bridge-land)}.winners-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-1)}.winner-row{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:baseline}.winner-name{font-size:var(--step-0);color:var(--paper-50);font-weight:600}.winner-bridge{font-size:var(--step--1);color:var(--paper-200)}.winner-edge{font-size:var(--step--1);color:var(--bridge-land)}.winners-note{font-size:var(--step--1);color:var(--paper-200);margin:var(--space-2) 0 0}.contest-toast{font-size:var(--step--1);color:var(--bridge-strain);border:1px solid var(--ink-600);border-radius:6px;padding:var(--space-2) var(--space-3);margin:0}
