.landing.svelte-1ouge3p{min-height:100vh;color:var(--ink);background:var(--canvas)}.skip-link.svelte-1ouge3p{z-index:50;border-radius:var(--radius-pill);background:var(--surface);box-shadow:var(--shadow-md);padding:12px 16px;font-weight:700;position:fixed;top:8px;left:16px;transform:translateY(-150%)}.skip-link.svelte-1ouge3p:focus{transform:none}.site-header.svelte-1ouge3p,.hero.svelte-1ouge3p,.features.svelte-1ouge3p,.twin.svelte-1ouge3p,.access.svelte-1ouge3p,footer.svelte-1ouge3p{width:min(var(--content-max), calc(100% - 80px));margin-inline:auto}.site-header.svelte-1ouge3p{min-height:var(--topbar);align-items:center;gap:28px;padding-block:12px;display:flex}.wordmark.svelte-1ouge3p{min-height:var(--touch);font-size:var(--text-xl);letter-spacing:-.02em;align-items:center;gap:8px;font-weight:800;display:inline-flex}.brand-mark.svelte-1ouge3p{background:var(--sun);width:26px;height:26px;color:var(--sun-ink);border-radius:8px;place-items:center;display:grid}.brand-mark.svelte-1ouge3p svg{stroke-width:2.2px;width:16px;height:16px}nav.svelte-1ouge3p{gap:4px;margin:0 auto;display:flex}nav.svelte-1ouge3p a:where(.svelte-1ouge3p){min-height:var(--touch);border-radius:var(--radius-pill);color:var(--muted);align-items:center;padding:0 14px;font-weight:500;display:inline-flex}nav.svelte-1ouge3p a:where(.svelte-1ouge3p):hover{color:var(--ink);background:var(--surface-subtle)}.header-actions.svelte-1ouge3p{align-items:center;gap:10px;display:flex}.ghost.svelte-1ouge3p{border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--surface);align-items:center;min-height:40px;padding:0 16px;font-weight:600;display:inline-flex}.ghost.svelte-1ouge3p:hover{border-color:var(--line-strong)}.hero.svelte-1ouge3p{grid-template-columns:420px minmax(0,1fr);align-items:center;gap:40px;padding-block:12px 48px;display:grid}h1.svelte-1ouge3p{letter-spacing:-.03em;margin:0 0 12px;font-size:52px;font-weight:800;line-height:1.02}.lead.svelte-1ouge3p{color:var(--muted);margin:0 0 28px;font-size:18px}.login-card.svelte-1ouge3p{border:1px solid var(--line);border-radius:var(--radius-xl);background:var(--surface);box-shadow:var(--shadow-md);padding:22px}.login-card.svelte-1ouge3p h2:where(.svelte-1ouge3p){font-size:var(--text-xl);letter-spacing:-.01em;margin:0 0 14px;font-weight:800}.fieldset.svelte-1ouge3p{border:1px solid var(--line);border-radius:14px;margin:0 0 14px;overflow:hidden}.login-field.svelte-1ouge3p{padding:10px 14px;display:block}.login-field.svelte-1ouge3p+.login-field:where(.svelte-1ouge3p){border-top:1px solid var(--line)}.login-field.svelte-1ouge3p:focus-within{box-shadow:inset 0 0 0 2px var(--ink);border-radius:14px}.login-field.svelte-1ouge3p span:where(.svelte-1ouge3p){font-size:var(--text-xs);font-weight:700;display:block}.login-field.svelte-1ouge3p input:where(.svelte-1ouge3p){height:26px;min-height:0;font-size:var(--text-base);background:0 0;border:0;border-radius:0;padding:2px 0 0}.login-field.svelte-1ouge3p input:where(.svelte-1ouge3p):focus-visible{outline:none}.login-error.svelte-1ouge3p{color:var(--danger);font-size:var(--text-sm);margin:0 0 12px}.cta.svelte-1ouge3p{border-radius:var(--radius-md);background:var(--action);width:100%;min-height:50px;color:var(--on-accent);font-size:var(--text-base);justify-content:center;align-items:center;margin:4px 0 12px;padding:14px 20px;font-weight:700;display:inline-flex}.cta.svelte-1ouge3p:hover:not(:disabled){background:var(--action-hover)}.cta.svelte-1ouge3p:disabled{background:var(--accent-border);color:var(--on-accent)}.links.svelte-1ouge3p{font-size:var(--text-md);flex-wrap:wrap;justify-content:space-between;gap:12px;display:flex}.links.svelte-1ouge3p a:where(.svelte-1ouge3p){min-height:var(--touch);text-underline-offset:3px;align-items:center;font-weight:600;text-decoration:underline;display:inline-flex}.note.svelte-1ouge3p{color:var(--muted);font-size:var(--text-sm);align-items:center;gap:6px;margin:6px 0 0;display:flex}.note.svelte-1ouge3p svg{width:15px;height:15px}.bigmap.svelte-1ouge3p{aspect-ratio:660/600;background:var(--map-water);border-radius:24px;margin:0;position:relative;overflow:hidden}.map.svelte-1ouge3p{position:absolute;inset:0}.map-narrow.svelte-1ouge3p{display:none}.chart.svelte-1ouge3p{width:100%;height:100%;display:block;position:absolute;inset:0}.iso.svelte-1ouge3p{stroke:var(--map-iso)}.deep.svelte-1ouge3p{stroke:var(--map-water)}.shoal-2.svelte-1ouge3p{stroke:var(--map-shoal-2)}.shoal-1.svelte-1ouge3p{stroke:var(--map-shoal-1)}.land.svelte-1ouge3p{fill:var(--map-land);stroke:var(--map-coast)}.pin.svelte-1ouge3p{--dot:var(--state-sea);z-index:1;background:var(--dot);width:12px;height:12px;box-shadow:0 0 0 3px var(--surface), 0 2px 6px #00000040;border-radius:50%;position:absolute;transform:translate(-50%,-50%)}.pin.svelte-1ouge3p:after{content:"";background:var(--dot);opacity:.16;border-radius:50%;width:40px;height:40px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.state-port.svelte-1ouge3p{--dot:var(--state-port)}.pin.state-off.svelte-1ouge3p{background:var(--surface);box-shadow:inset 0 0 0 3px var(--state-off), 0 2px 6px #0000002e}.pin.state-off.svelte-1ouge3p:after{border:1.5px dashed var(--state-off);opacity:.8;background:0 0}.state-off.svelte-1ouge3p{--dot:var(--state-off)}.tag.svelte-1ouge3p{z-index:2;border-radius:var(--radius-pill);background:var(--surface);box-shadow:var(--shadow-label);font-size:var(--text-xs);white-space:nowrap;align-items:center;gap:6px;padding:5px 10px 5px 8px;font-weight:700;display:inline-flex;position:absolute}.tag.svelte-1ouge3p:before{content:"";background:var(--dot,var(--state-sea));border-radius:50%;width:8px;height:8px}.side-r.svelte-1ouge3p{transform:translate(16px,-50%)}.side-l.svelte-1ouge3p{transform:translate(calc(-100% - 16px),-50%)}.side-b.svelte-1ouge3p{transform:translate(-50%,16px)}.region.svelte-1ouge3p{z-index:1;color:var(--map-label);font-size:18px;font-weight:700;position:absolute;transform:translate(-50%,-50%)}.region.sea-name.svelte-1ouge3p{font-size:15px;font-weight:500}.float.svelte-1ouge3p{z-index:3;border-radius:var(--radius-lg);background:var(--surface);width:250px;box-shadow:var(--shadow-md);align-items:center;gap:12px;padding:12px;display:flex;position:absolute;bottom:36px;left:36px}.float-thumb.svelte-1ouge3p{border-radius:var(--radius-md);flex:none;width:56px;height:56px;position:relative;overflow:hidden}.float-thumb.svelte-1ouge3p .pin{width:10px;height:10px}.float.svelte-1ouge3p b:where(.svelte-1ouge3p){font-weight:800;display:block}.float.svelte-1ouge3p span:where(.svelte-1ouge3p) span:where(.svelte-1ouge3p){color:var(--muted);font-size:var(--text-sm);display:block}.float.svelte-1ouge3p .pill:where(.svelte-1ouge3p){margin-top:6px;display:inline-flex}.pill.svelte-1ouge3p{border-radius:var(--radius-pill);background:var(--surface-subtle);color:var(--muted);font-size:var(--text-sm);white-space:nowrap;align-items:center;gap:6px;padding:4px 10px;font-weight:600;display:inline-flex}.pill.state-port.svelte-1ouge3p,.pill.state-sea.svelte-1ouge3p,.pill.state-off.svelte-1ouge3p{background:color-mix(in srgb, var(--dot) 14%, var(--surface));color:var(--dot)}.pill.state-port.svelte-1ouge3p:before,.pill.state-sea.svelte-1ouge3p:before,.pill.state-off.svelte-1ouge3p:before{content:"";background:currentColor;border-radius:50%;width:7px;height:7px}.pill.state-port.svelte-1ouge3p{background:var(--state-port-soft)}.pill.state-sea.svelte-1ouge3p{--dot:var(--state-sea);background:var(--state-sea-soft)}.pill.state-off.svelte-1ouge3p{background:var(--state-off-soft)}.float.svelte-1ouge3p .pill.todo:where(.svelte-1ouge3p){background:var(--sun-soft);color:var(--sun-text)}.features.svelte-1ouge3p{grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;padding-block:8px 44px;display:grid}.feature.svelte-1ouge3p{border-radius:var(--radius-xl);background:var(--surface-subtle);padding:22px}.vis.svelte-1ouge3p{flex-wrap:wrap;align-items:center;gap:8px;min-height:84px;margin:0 0 14px;display:flex}.chip.svelte-1ouge3p{border-radius:var(--radius-pill);background:var(--surface);align-items:center;gap:8px;padding:9px 16px 9px 12px;font-weight:600;display:inline-flex;box-shadow:0 1px 3px #00000014}.chip.svelte-1ouge3p svg{width:16px;height:16px;color:var(--sun-text)}.faces.svelte-1ouge3p{display:flex}.face.svelte-1ouge3p{width:40px;height:40px;box-shadow:0 0 0 3px var(--surface-subtle);font-size:var(--text-md);border-radius:50%;place-items:center;font-weight:700;display:grid}.face.svelte-1ouge3p+.face:where(.svelte-1ouge3p){margin-left:-8px}.face.sea.svelte-1ouge3p{background:var(--sea-soft);color:var(--sea)}.face.moss.svelte-1ouge3p{background:var(--moss-soft);color:var(--moss)}.face.sun.svelte-1ouge3p{background:var(--sun-soft);color:var(--sun-text)}.roles.svelte-1ouge3p{flex-direction:column;gap:6px;display:flex}.roles.svelte-1ouge3p .pill:where(.svelte-1ouge3p){background:var(--surface)}.feature.svelte-1ouge3p h3:where(.svelte-1ouge3p),.twin.svelte-1ouge3p b:where(.svelte-1ouge3p){font-size:var(--text-xl);letter-spacing:-.01em;margin:0 0 4px;font-weight:800}.feature.svelte-1ouge3p p:where(.svelte-1ouge3p){color:var(--muted)}.twin.svelte-1ouge3p{grid-template-columns:1fr 1fr;gap:22px;padding-bottom:44px;display:grid}.twin.svelte-1ouge3p>div:where(.svelte-1ouge3p){border:1px solid var(--line);border-radius:var(--radius-xl);align-items:center;gap:16px;padding:18px 22px;display:flex}.twin.svelte-1ouge3p b:where(.svelte-1ouge3p){font-size:var(--text-lg);display:block}.twin.svelte-1ouge3p span:where(.svelte-1ouge3p) span:where(.svelte-1ouge3p){color:var(--muted)}.twin-icon.svelte-1ouge3p{border-radius:14px;flex:none;place-items:center;width:48px;height:48px;display:grid}.twin-icon.sea.svelte-1ouge3p{background:var(--sea-soft);color:var(--sea)}.twin-icon.moss.svelte-1ouge3p{background:var(--moss-soft);color:var(--moss)}.access.svelte-1ouge3p{border-radius:var(--radius-xl);background:var(--sun-soft);justify-content:space-between;align-items:center;gap:24px;margin-bottom:36px;padding:24px 28px;display:flex}.access.svelte-1ouge3p h2:where(.svelte-1ouge3p){font-size:var(--text-xl);letter-spacing:-.01em;margin:0;font-weight:800}.access.svelte-1ouge3p p:where(.svelte-1ouge3p){color:var(--sun-text);font-weight:600}.pill.on-sun.svelte-1ouge3p{background:var(--surface);color:var(--ink)}footer.svelte-1ouge3p{border-top:1px solid var(--line);color:var(--muted);font-size:var(--text-md);justify-content:space-between;align-items:center;gap:20px;padding-block:22px;display:flex}footer.svelte-1ouge3p .wordmark:where(.svelte-1ouge3p){color:var(--ink);font-size:var(--text-lg)}footer.svelte-1ouge3p>a:where(.svelte-1ouge3p):last-child{min-height:var(--touch);color:var(--ink);text-underline-offset:3px;align-items:center;font-weight:600;text-decoration:underline;display:inline-flex}@media (width<=1000px){.hero.svelte-1ouge3p{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px}h1.svelte-1ouge3p{font-size:42px}}@media (width<=760px){.site-header.svelte-1ouge3p,.hero.svelte-1ouge3p,.features.svelte-1ouge3p,.twin.svelte-1ouge3p,.access.svelte-1ouge3p,footer.svelte-1ouge3p{width:calc(100% - 32px)}.site-header.svelte-1ouge3p{gap:8px}.wordmark.svelte-1ouge3p{margin-right:auto}nav.svelte-1ouge3p{display:none}.hero.svelte-1ouge3p{grid-template-columns:1fr;gap:20px;padding-block:2px 24px}.bigmap.svelte-1ouge3p{aspect-ratio:auto;border-radius:var(--radius-xl);order:-1;height:230px}.map-wide.svelte-1ouge3p,.float.svelte-1ouge3p{display:none}.map-narrow.svelte-1ouge3p{display:block}h1.svelte-1ouge3p{letter-spacing:-.025em;margin-bottom:6px;font-size:32px;line-height:1.04}.lead.svelte-1ouge3p{font-size:var(--text-base);margin-bottom:18px}.login-card.svelte-1ouge3p{box-shadow:var(--shadow-sm);padding:18px}.features.svelte-1ouge3p{grid-template-columns:1fr;gap:10px;padding-bottom:24px}.feature.svelte-1ouge3p{border-radius:14px;padding:12px 14px}.vis.svelte-1ouge3p{display:none}.feature.svelte-1ouge3p h3:where(.svelte-1ouge3p){font-size:var(--text-base);margin:0;font-weight:700}.feature.svelte-1ouge3p p:where(.svelte-1ouge3p){font-size:var(--text-md)}.twin.svelte-1ouge3p{grid-template-columns:1fr;gap:10px;padding-bottom:24px}.twin.svelte-1ouge3p>div:where(.svelte-1ouge3p){padding:14px 16px}.access.svelte-1ouge3p{flex-direction:column;align-items:flex-start;padding:20px}footer.svelte-1ouge3p{flex-wrap:wrap}footer.svelte-1ouge3p p:where(.svelte-1ouge3p){flex-basis:100%;order:3}}
