.card.svelte-1p0odtn{background:transparent;border:1px solid var(--border);border-radius:0;padding:10px 14px;margin-bottom:12px}.card.today.svelte-1p0odtn{padding:14px 16px;border-color:var(--text)}.card-label.svelte-1p0odtn{margin-bottom:4px;font-size:.9rem;font-family:var(--font-mono)}.chip.svelte-1p0odtn{display:inline-block;padding:2px 8px;background:var(--accent);color:var(--bg);font-size:.75rem;font-weight:500;letter-spacing:.05em;text-transform:uppercase;font-family:var(--font-mono)}.muted.svelte-1p0odtn{color:var(--muted)}.chart.svelte-1p0odtn{width:100%;height:auto;display:block}.chart.svelte-1p0odtn .tide-pill-label{font-family:var(--font-mono);fill:var(--bg)}.chart.svelte-1p0odtn .hour-label{font-family:var(--font-mono)}.amplitude.svelte-1p0odtn{margin-top:8px}.amplitude-bar.svelte-1p0odtn{height:4px;background:var(--border);overflow:hidden}.amplitude-fill.svelte-1p0odtn{height:100%;background:var(--accent)}.amplitude-label.svelte-1p0odtn{display:block;margin-top:4px;font-size:.75rem;color:var(--muted);font-family:var(--font-mono)}.forecast.svelte-q0700j{display:flex;flex-direction:column;gap:12px}.callout.svelte-q0700j{margin:0 0 4px;padding:10px 14px;background:transparent;border:1px solid var(--text);border-radius:0;font-size:.95rem;line-height:1.3;font-family:var(--font-mono)}.callout.svelte-q0700j .direction:where(.svelte-q0700j){font-weight:500;font-family:var(--font-sans);font-style:italic}.callout.svelte-q0700j .sep:where(.svelte-q0700j){margin:0 6px;color:var(--muted)}@font-face{font-family:Alumni Sans Pinstripe;src:url(/fonts/AlumniSansPinstripe-Regular.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Alumni Sans Pinstripe;src:url(/fonts/AlumniSansPinstripe-Italic.ttf) format("truetype");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:Roboto;src:url(/fonts/Roboto-VariableFont_wdth_wght.ttf) format("truetype-variations"),url(/fonts/Roboto-VariableFont_wdth_wght.ttf) format("truetype");font-weight:100 900;font-stretch:75% 100%;font-style:normal;font-display:swap}@font-face{font-family:Roboto;src:url(/fonts/Roboto-Italic-VariableFont_wdth_wght.ttf) format("truetype-variations"),url(/fonts/Roboto-Italic-VariableFont_wdth_wght.ttf) format("truetype");font-weight:100 900;font-stretch:75% 100%;font-style:italic;font-display:swap}:root{--color-fill-rgb: 251, 254, 251;--color-text-base-rgb: 40, 39, 40;--color-accent-rgb: 0, 108, 172;--color-card-rgb: 230, 230, 230;--color-card-muted-rgb: 205, 205, 205;--color-border-rgb: 236, 233, 233;--tide-low-rgb: 255, 31, 90;--sunrise-rgb: 244, 167, 66;--sunset-rgb: 244, 63, 94;--bg: rgb(var(--color-fill-rgb));--surface: rgb(var(--color-card-rgb));--text: rgb(var(--color-text-base-rgb));--muted: rgba(var(--color-text-base-rgb), .6);--accent: rgb(var(--color-accent-rgb));--card-muted: rgb(var(--color-card-muted-rgb));--border: rgb(var(--color-border-rgb));--tide-high: rgb(var(--color-accent-rgb));--tide-low: rgb(var(--tide-low-rgb));--sunrise: rgb(var(--sunrise-rgb));--sunset: rgb(var(--sunset-rgb));--selection-bg: rgba(var(--color-accent-rgb), .7);--selection-fg: rgb(var(--color-fill-rgb));--font-sans: "Roboto", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;--font-display: "Alumni Sans Pinstripe", "Roboto", sans-serif;--font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace}:root[data-theme=dark]{--color-fill-rgb: 33, 39, 55;--color-text-base-rgb: 234, 237, 243;--color-accent-rgb: 255, 107, 1;--color-card-rgb: 52, 63, 96;--color-card-muted-rgb: 138, 51, 2;--color-border-rgb: 171, 75, 8;--tide-low-rgb: 251, 113, 133;--sunrise-rgb: 251, 191, 36;--sunset-rgb: 251, 113, 133}@media(prefers-color-scheme:dark){:root:not([data-theme]){--color-fill-rgb: 33, 39, 55;--color-text-base-rgb: 234, 237, 243;--color-accent-rgb: 255, 107, 1;--color-card-rgb: 52, 63, 96;--color-card-muted-rgb: 138, 51, 2;--color-border-rgb: 171, 75, 8;--tide-low-rgb: 251, 113, 133;--sunrise-rgb: 251, 191, 36;--sunset-rgb: 251, 113, 133}}*,*:before,*:after{box-sizing:border-box}html{overflow-y:scroll}html,body{margin:0;padding:0}body{background-color:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:1rem;line-height:1.6;min-height:100svh;-webkit-font-smoothing:antialiased}::selection{background:var(--selection-bg);color:var(--selection-fg)}main{max-width:480px;margin:0 auto;padding:16px}h1{font-family:var(--font-display);font-size:2.25rem;font-weight:400;line-height:1.2;letter-spacing:.01em;margin:0 0 6px}@media(min-width:640px){h1{font-size:3rem}}h2{font-size:1.125rem;font-weight:600;line-height:1.4;letter-spacing:.025em;margin:0 0 8px}p,li{line-height:1.6}a{color:var(--text);text-decoration:underline;text-decoration-style:dashed;text-underline-offset:8px}a:hover{color:var(--accent)}button:focus-visible,a:focus-visible,[role=button]:focus-visible{outline:2px dashed var(--accent);outline-offset:2px;text-decoration:none}hr{border:0;border-top:1px solid var(--border);margin:0}.muted{color:var(--muted)}.mono{font-family:var(--font-mono)}.theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;background:transparent;border:1px solid var(--text);border-radius:0;color:var(--text);cursor:pointer;padding:0;transition:color .12s ease,border-color .12s ease}.theme-toggle:hover{color:var(--accent);border-color:var(--accent)}.theme-toggle svg{width:20px;height:20px;transition:transform .2s ease}.theme-toggle:hover svg{transform:rotate(12deg)}.theme-toggle .glyph-sun{display:none}.theme-toggle .glyph-moon{display:block}:root[data-theme=dark] .theme-toggle .glyph-sun{display:block}:root[data-theme=dark] .theme-toggle .glyph-moon{display:none}@media(prefers-color-scheme:dark){:root:not([data-theme]) .theme-toggle .glyph-sun{display:block}:root:not([data-theme]) .theme-toggle .glyph-moon{display:none}}.brand{display:flex;align-items:center;gap:12px;margin:0 0 4px}.brand-icon{width:64px;height:64px;color:var(--text);display:block;flex:0 0 auto}.brand-icon-light{display:none}.brand-icon-dark{display:block}:root[data-theme=dark] .brand-icon-light{display:block}:root[data-theme=dark] .brand-icon-dark{display:none}@media(prefers-color-scheme:dark){:root:not([data-theme]) .brand-icon-light{display:block}:root:not([data-theme]) .brand-icon-dark{display:none}}.brand h1{margin:0;flex:1}.port-picker{display:flex;align-items:center;gap:8px;margin:16px 0;font-family:var(--font-mono)}.port-picker label{font-size:.875rem;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.port-picker input{flex:1;min-width:0;padding:8px 36px 8px 12px;background:transparent;border:1px solid var(--text);border-radius:0;color:var(--text);font-family:var(--font-sans);font-size:1rem;appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><circle cx='11' cy='11' r='6'/><path d='m20 20-3.5-3.5'/></svg>");background-repeat:no-repeat;background-position:right 10px center;background-size:16px 16px}.port-picker input::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none;width:14px;height:14px;background:linear-gradient(45deg,transparent 45%,currentColor 45% 55%,transparent 55%),linear-gradient(-45deg,transparent 45%,currentColor 45% 55%,transparent 55%);cursor:pointer;opacity:.6;margin-right:22px}.port-picker input:hover,.port-picker input:focus{border-color:var(--accent);color:var(--accent);outline:none}.port-picker input::placeholder{color:var(--muted);opacity:1}.stale-banner{background:rgba(var(--color-accent-rgb),.06);border-left:3px solid var(--accent);border-top:none;border-right:none;border-bottom:none;padding:10px 14px;font-size:.875rem;margin-bottom:12px}.port-header{display:flex;align-items:center;gap:8px;position:relative;margin-bottom:12px}.port-header h1{flex:1;margin-bottom:0}.share-button{background:transparent;border:1px solid var(--text);border-radius:0;color:var(--text);width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:0;transition:color .12s ease,border-color .12s ease}.share-button:hover{color:var(--accent);border-color:var(--accent)}.copy-toast{position:absolute;right:0;top:calc(100% + 4px);background:var(--accent);color:var(--bg);border-radius:0;padding:6px 10px;font-size:.8125rem;font-family:var(--font-mono);pointer-events:none}.locate-fallback{display:block;width:100%;padding:10px 16px;margin-bottom:12px;border-radius:0;border:1px solid var(--text);background:transparent;color:var(--text);font-family:var(--font-sans);font-size:1rem;cursor:pointer;transition:color .12s ease,border-color .12s ease}.locate-fallback:hover{color:var(--accent);border-color:var(--accent)}.empty{color:var(--muted);text-align:center;padding:32px 16px}.site-footer{margin-top:32px;font-family:var(--font-mono);font-size:.8125rem;color:var(--muted)}.site-footer hr{margin:0 0 16px}.site-footer-links{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline;margin:0 0 8px}.site-footer-links a{color:var(--muted);text-decoration:underline;text-decoration-style:dashed;text-underline-offset:4px}.site-footer-links a:hover{color:var(--accent)}.site-footer-links .dot{color:var(--muted);opacity:.6}.site-footer-copy{margin:0;color:var(--muted)}
