.chain-door{margin-top:14px;padding-top:10px;border-top:1px solid var(--line)}.chain-door p{margin:8px 0 0;font-size:12px;line-height:1.5;color:var(--muted)}.chain-door button{font-size:13px;padding:6px 12px}.chain-status{color:var(--sand)}.chain-bar{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:6px 10px;margin-bottom:10px;background:var(--panel);border:1px solid var(--line);border-radius:6px;font-size:13px}.chain-bar button{font-size:13px;padding:3px 10px}.chain-dot{width:8px;height:8px;border-radius:50%;background:var(--kelp);flex:none}.chain-tx{color:var(--muted);font-size:12px;font-variant-numeric:tabular-nums}.chain-note{color:var(--sand);font-size:12px}.chain-error{color:var(--red);font-size:12px}.chain-link{color:var(--gold);margin-left:4px;font-size:12px}.tutorial-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:flex;align-items:center;justify-content:center;padding:24px;background:#0b2126e0}.tutorial-card{width:min(620px,92vw);max-height:calc(100vh - 96px);overflow:auto;background:var(--panel);border:1px solid var(--line);border-top:3px solid var(--buoy);border-radius:10px;padding:18px 22px 16px;box-shadow:0 10px 30px #00000073;animation:tutorial-in .14s ease}.tutorial-card:focus{outline:none}.tutorial-card:focus-visible{outline:2px solid var(--gold);outline-offset:3px}.tutorial-card h2{font-size:21px;color:var(--ink);text-transform:none;letter-spacing:0;margin:0 0 10px}.tutorial-step{margin:0 0 6px;font-size:12px;letter-spacing:1px;text-transform:uppercase;color:var(--sand)}.tutorial-line{margin:8px 0 0;font-size:15px;line-height:1.5}.tutorial-art{background:#0b2126;border:1px solid var(--line);border-radius:8px;padding:10px 12px}.tutorial-art svg{display:block;width:100%;height:auto}.tutorial-actions{display:flex;align-items:center;gap:10px;margin-top:16px;padding-top:12px;border-top:1px dashed var(--line)}.tutorial-actions button{padding:7px 14px}.tutorial-spacer{flex:1}.how-to-play{padding:4px 9px;font-size:13px;white-space:nowrap}@keyframes tutorial-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}:root{--bg: #eaf3fb;--panel: #ffffff;--panel-2: #f2f7fc;--sea: #b9d4ea;--line: #dbe6f0;--ink: #0f2742;--muted: #5b7088;--buoy: #1565c8;--buoy-bright: #1565c8;--gold: #1565c8;--kelp: #1565c8;--sand: #5b7088;--red: #0f2742;--red-line: #1565c8;--cy: #1565c8;--on: #ffffff;--card: rgba(255, 255, 255, .96);--hair: rgba(15, 39, 66, .1);--lift: 0 18px 40px -24px rgba(15, 39, 66, .45);--display: Bahnschrift, "Segoe UI Variable Display", "Segoe UI", system-ui, sans-serif;--mono: "Cascadia Mono", "SF Mono", Consolas, ui-monospace, monospace}body{font-family:var(--display);font-size:14px}.app{max-width:none;padding:0}.board{display:contents}.chart-panel{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;padding:0;margin:0;border:0;border-radius:0;background:var(--bg)}.chart-panel>h2,.chart-panel>.zone-readings{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.sea-stage{position:absolute;top:0;right:0;bottom:0;left:0}.sea-stage .sea-canvas{width:100%;height:100%;max-width:none;border:0;border-radius:0;cursor:crosshair}.sea-stage.flat .sea-canvas{width:auto;height:100%;max-width:100%;margin:0 auto;object-fit:contain}.sea-canvas:focus-visible{outline:2px solid var(--cy);outline-offset:-4px}.sea-labels{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden}.lb3{position:absolute;left:0;top:0;white-space:nowrap;font-size:10px;font-weight:600;letter-spacing:.08em}.lb3.place{margin-left:-50px;width:100px;text-align:center;color:#e6f6fb00;text-transform:uppercase;transition:color .3s ease}.lb3.place.on{color:var(--on)}.lb3.place.on:before{content:"";position:absolute;top:-3px;right:10px;bottom:-3px;left:10px;z-index:-1;border-radius:99px;background:var(--cy)}.lb3.ground{margin-left:-82px;width:164px;padding:7px 8px 6px;text-align:center;color:var(--ink);border-radius:14px;background:var(--card);box-shadow:var(--lift)}.lb3.ground .name{font-size:12px;font-weight:700;letter-spacing:.02em}.lb3.ground .fish{font-size:9px;font-weight:400;color:var(--muted);text-transform:uppercase;letter-spacing:.16em}.lb3.ground .bar{width:64px;height:3px;margin:5px auto 4px;border-radius:3px;background:#1565c82e;overflow:hidden}.lb3.ground .fill{height:100%;background:var(--cy);border-radius:3px}.lb3.ground .note{font-family:var(--mono);font-size:10px;font-weight:400;color:var(--muted);letter-spacing:0}.lb3.ground.crowded .note{color:var(--cy)}.lb3.hull{margin:-10px 0 0 -10px}.lb3.hull svg{display:block;width:20px;height:20px;padding:4px;border-radius:50%;background:var(--card);fill:var(--cy);stroke:var(--cy);box-shadow:0 0 0 1px var(--hair)}.lb3.hull.agent svg{width:16px;height:16px;padding:3px;margin:2px;opacity:.75}.lb3.hull.you svg{background:var(--cy);fill:var(--on);stroke:var(--on)}.lb3.hull .who{position:absolute;left:24px;top:3px;padding:1px 7px;border-radius:99px;background:var(--cy);color:var(--on);font-size:10px;letter-spacing:.04em}.lb3.hull.picked svg{box-shadow:0 0 0 2px var(--on),0 0 0 4px var(--cy)}.lb3.hull.idle{opacity:.35}header.topbar{position:fixed;top:14px;left:20px;right:20px;z-index:5;display:flex;flex-wrap:nowrap;align-items:center;gap:6px;margin:0;padding:6px 6px 6px 16px;border:1px solid var(--hair);border-radius:99px;background:var(--card);box-shadow:var(--lift)}.topbar h1{font-size:15px;font-weight:700;letter-spacing:.02em;text-transform:none;margin-right:10px}.topbar h1+.captain{margin:0 8px 0 -6px;font-size:13px;font-weight:500}.topbar .dial{display:flex;flex-direction:column;padding:0 14px;border-left:1px solid var(--hair);line-height:1.15}.topbar .captain+.dial{border-left:0}.topbar .dial-k{font-size:12px;letter-spacing:.12em;font-variant-caps:all-small-caps;color:var(--muted)}.topbar .dial-v{font-size:14px;font-weight:600;color:var(--ink);white-space:nowrap}.topbar .dial-v small{margin-left:3px;font-size:11px;font-weight:500;color:var(--muted)}.topbar .dial.gold .dial-v{color:var(--cy)}.topbar .muted{font-size:12px;margin-left:4px}.topbar .ghost:first-of-type{margin-left:auto}.topbar button{padding:7px 13px;font-size:12px;border-radius:99px}button{background:var(--cy);color:var(--on);font-weight:600;border-radius:99px}button:hover:not(:disabled){background:#0f4fa3}button.ghost{background:transparent;color:var(--ink);border:1px solid var(--hair)}button.ghost:hover:not(:disabled){background:#1565c814;color:var(--ink);border-color:#1565c859}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--cy)}input,select{background:var(--bg);border:1px solid var(--hair);border-radius:10px;color:var(--ink)}.books{position:fixed;left:20px;top:76px;z-index:3;pointer-events:none;padding:16px 22px 18px;border-radius:22px;background:var(--card);box-shadow:var(--lift)}.books-when{margin:0 0 14px;font-family:var(--mono);font-size:11px;color:var(--muted);letter-spacing:.06em;text-transform:uppercase}.books-k{display:block;font-size:10px;font-weight:600;color:var(--muted);letter-spacing:.18em;text-transform:uppercase}.books-v{display:block;font-weight:700;font-stretch:condensed;font-variant-numeric:tabular-nums;letter-spacing:-.03em;line-height:.95}.books-v small{font-size:12px;font-weight:400;letter-spacing:.04em;color:var(--muted);margin-left:8px}.books-worth .books-v{font-size:76px;color:var(--cy)}.books-debt{margin-top:14px}.books-debt .books-v{font-size:34px;color:var(--ink)}.deck{position:fixed;top:74px;right:20px;bottom:20px;width:384px;z-index:2;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--sea) transparent;display:flex;flex-direction:column;gap:10px;padding-bottom:40vh}.deck-nav{position:sticky;top:0;z-index:4;display:flex;gap:2px;padding:4px;border:1px solid var(--hair);border-radius:99px;background:var(--card)}.deck-nav button{flex:1;padding:7px 0;font-size:11px;font-weight:600;background:transparent;color:var(--muted)}.deck-nav button.on{background:var(--cy);color:var(--on)}.deck-nav button:hover:not(:disabled):not(.on){background:#1565c814;color:var(--ink)}.side,.panels{display:flex;flex-direction:column;gap:10px;margin:0}.deck .panel{background:var(--card);border:1px solid var(--hair);box-shadow:var(--lift);border-radius:20px;padding:16px 18px;scroll-margin-top:52px}.deck .panel h2{font-size:13px;font-weight:700;letter-spacing:.1em;color:var(--ink);margin-bottom:4px}.panel-note{margin:0 0 12px;font-size:12px;line-height:1.45;color:var(--muted)}.deck .panel h3{font-size:12px;color:var(--ink)}.deck .muted,.deck .hint{font-size:12px}.deck .num{font-family:var(--mono);font-size:13px}.ledger-cols{grid-template-columns:minmax(0,1fr)}.clock-price{font-family:var(--display);font-weight:700;font-size:44px;letter-spacing:-.03em;color:var(--cy)}.clock-bar{height:4px;border:0;background:#1565c824}.clock-fill{background:var(--cy)}.buyer-limits li,.landing-list li,.reason-list li,.harbour-list li,.event-list li,.chronicle-table td{border-top:1px solid var(--hair)}.sale-line{color:var(--cy);font-size:13px}.boat-card{background:transparent;border:1px solid var(--hair);border-radius:14px;padding:10px 12px}.boat-card.selected{border-color:var(--cy);box-shadow:inset 0 0 0 1px var(--cy)}.boat-head{font-weight:700;font-size:14px}.zone-buttons button,.mesh-row button{padding:5px 11px;font-size:12px}.toast-stack{left:28px;right:auto;bottom:24px}.toast{background:var(--card);border:1px solid var(--hair);border-left:3px solid var(--cy);border-radius:14px}.end-screen{background:#eaf3fbe6}.end-card,.auth-card{border-radius:22px;border:1px solid var(--hair);background:var(--card)}.trend-falling{color:var(--cy)}section.judges{border-radius:22px;background:var(--card);z-index:30}.offline-banner,.chain-bar{position:fixed;left:28px;bottom:24px;z-index:6;background:var(--card)}@media (max-width: 1100px){:root{--stage-h: clamp(380px, 58vh, 540px)}.deck{position:static;width:auto;margin:0 12px;padding:calc(var(--stage-h) + 16px) 0 24px;overflow:visible}.chart-panel{position:fixed;height:var(--stage-h);bottom:auto}.books{top:70px;left:12px;padding:10px 14px 12px;border-radius:16px}.books-when{margin-bottom:6px;font-size:10px}.books-worth .books-v{font-size:36px}.books-debt{margin-top:6px}.books-debt .books-v{font-size:20px}.lb3.ground{margin-left:-60px;width:120px;padding:5px 6px 4px;border-radius:12px}.lb3.ground .fish,.lb3.ground .bar{display:none}header.topbar{flex-wrap:wrap;left:12px;right:12px;border-radius:22px}}@media (max-width: 900px){.books{top:106px}}@media (prefers-reduced-motion: reduce){.lb3.place{transition:none}}.cover{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:24px;background:#0f27426b}.app-gate{display:flex;flex-direction:column;min-height:100vh;padding:16px 20px;background:var(--bg) url(/harbour-still.jpg) center / cover no-repeat}.app-gate .auth-card{width:min(420px,92vw);margin:auto;padding:26px 28px;background:var(--panel);box-shadow:var(--lift)}.app-gate.veiled .auth-card{visibility:hidden}.cover-card{width:min(600px,94vw);max-height:calc(100vh - 48px);overflow:auto;padding:34px 36px 26px;border:1px solid var(--hair);border-radius:26px;background:var(--panel);box-shadow:var(--lift);text-align:center}.cover-card:focus{outline:none}.cover-card:focus-visible{outline:2px solid var(--cy);outline-offset:3px}.cover-card h1{margin:0;font-size:46px;font-weight:700;font-stretch:condensed;letter-spacing:-.02em;color:var(--cy)}.cover-slogan{max-width:46ch;margin:12px auto 0;font-size:15px;line-height:1.55;color:var(--ink)}.cover-goal{max-width:46ch;margin:10px auto 0;font-size:13px;line-height:1.5;color:var(--muted)}.cover-card h2{margin:24px 0 6px;font-size:10px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}.cover-how{max-width:52ch;margin:0 auto;padding:0;text-align:left}.cover-step{display:grid;grid-template-columns:62px minmax(0,1fr);gap:10px;padding:9px 0;border-top:1px solid var(--hair)}.cover-step:first-child{border-top:0}.cover-step dt{padding-top:2px;font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--cy)}.cover-step dd{margin:0;font-size:13px;line-height:1.5;color:var(--ink)}.cover-actions{display:flex;justify-content:center;gap:10px;margin-top:24px}.cover-actions button{padding:12px 36px;font-size:15px}.cover-foot{margin:14px 0 0;font-size:12px;color:var(--muted)}a.ghost{display:inline-block;padding:12px 26px;font-size:15px;font-weight:600;text-decoration:none;color:var(--ink);border:1px solid var(--hair);border-radius:99px;background:transparent}a.ghost:hover{color:var(--ink);border-color:#1565c859;background:#1565c814}a.ghost:focus-visible{outline:2px solid var(--cy);outline-offset:2px}@media (prefers-reduced-motion: reduce){.cover-card{transition:none}}
