*,*:before,*:after{box-sizing:border-box}body{margin:0}img,svg{max-width:100%}:root{color-scheme:light;--paper: #f4f2ec;--surface: #fffefb;--ink: #101619;--ink-2: #4c5a5e;--muted: #86908c;--rule: #ded9cd;--rule-strong: #c2beb0;--accent: #1c5cab;--accent-soft: #e6eef9;--temp: #eb6834;--live: #2f8f57;--tide: #3a5f7d;--moon-lit: #f6efd8;--moon-dark: #5b686d;--lv1: #86b6ef;--lv2: #3987e5;--lv3: #1c5cab;--lv4: #0d366b;--closed: rgba(112,108,96,.6);--lab: 172px;--cellh: 30px;--plotmin: 900px;--pad: 20px;--sans: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono: "Cascadia Mono", Consolas, ui-monospace, "SF Mono", Menlo, monospace;--serif: Georgia, "Iowan Old Style", "Times New Roman", serif}@media(prefers-color-scheme:dark){:root:where(:not([data-theme=light])){color-scheme:dark;--paper:#0b0f11;--surface:#141a1d;--ink:#ffffff;--ink-2:#b6c1c1;--muted:#87918d;--rule:#26302f;--rule-strong:#3a4544;--accent:#6da7ec;--accent-soft:#16283f;--temp:#d95926;--live:#7fdca0;--tide:#8ab0cc;--moon-lit:#e2dcc8;--moon-dark:#1d2427;--lv1:#184f95;--lv2:#2a78d6;--lv3:#6da7ec;--lv4:#b7d3f6;--closed:rgba(190,196,190,.5)}}:root[data-theme=dark]{color-scheme:dark;--paper:#0b0f11;--surface:#141a1d;--ink:#ffffff;--ink-2:#b6c1c1;--muted:#87918d;--rule:#26302f;--rule-strong:#3a4544;--accent:#6da7ec;--accent-soft:#16283f;--temp:#d95926;--live:#7fdca0;--tide:#8ab0cc;--moon-lit:#e2dcc8;--moon-dark:#1d2427;--lv1:#184f95;--lv2:#2a78d6;--lv3:#6da7ec;--lv4:#b7d3f6;--closed:rgba(190,196,190,.5)}body{background:var(--paper);color:var(--ink);font-family:var(--sans);line-height:1.55;-webkit-font-smoothing:antialiased}.wrap{max-width:1180px;margin:0 auto;padding:40px 22px 96px;display:flex;flex-direction:column;gap:46px}.masthead{display:flex;flex-direction:column;gap:14px}.soundings{display:flex;align-items:flex-end;gap:5px;height:26px}.soundings i{display:block;width:3px;background:var(--rule-strong);border-radius:1px}.eyebrow{font-family:var(--mono);font-size:11px;letter-spacing:.17em;text-transform:uppercase;color:var(--muted);margin:0}h1{font-size:clamp(30px,5.2vw,50px);line-height:1.02;letter-spacing:-.022em;font-weight:650;text-wrap:balance;margin:0}.standfirst{font-family:var(--serif);font-style:italic;font-size:clamp(16px,2.1vw,20px);color:var(--ink-2);max-width:62ch;margin:0}.coords{font-family:var(--mono);font-size:12px;color:var(--muted);letter-spacing:.04em;margin:0}.keyfacts{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:1px;background:var(--rule);border:1px solid var(--rule);border-radius:3px;overflow:hidden;margin:0}.fact{background:var(--surface);padding:16px 18px;display:flex;flex-direction:column;gap:4px}.fact dt{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.fact dd{margin:0;font-size:19px;font-weight:620;letter-spacing:-.012em;display:flex;flex-direction:column;gap:2px}.fact .sub{font-size:12.5px;color:var(--ink-2);font-weight:400;letter-spacing:0}.briefline{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 14px;padding:14px var(--pad)}.briefline .badge{font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;padding:3px 8px;border-radius:2px;background:var(--accent);color:var(--surface)}.briefline .badge[data-score="0"]{background:var(--muted)}.briefline .badge[data-score="1"]{background:var(--tide)}.briefline .big{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:22px;font-weight:620;letter-spacing:-.01em}.briefline .sub{font-size:12.5px;color:var(--ink-2)}.briefline .sub .live{color:var(--live);font-weight:620;font-style:normal}.briefcols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--rule)}.bcol{padding:14px var(--pad) 16px;min-width:0}.bcol+.bcol{border-left:1px solid var(--rule)}.targets,.windows,.kit{list-style:none;margin:9px 0 0;padding:0}.targets li{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;margin-top:8px;font-size:13px}.targets li:first-child{margin-top:0}.targets b{font-weight:620;letter-spacing:-.008em}.targets .lead b{font-size:16.5px}.targets .lead p{flex-basis:100%;margin:3px 0 0;color:var(--ink-2);font-size:12.5px;line-height:1.45}.lv{display:inline-flex;align-items:center;gap:5px;font-family:var(--mono);font-size:9.5px;letter-spacing:.11em;text-transform:uppercase;color:var(--ink-2)}.lv:before{content:"";width:10px;height:10px;border-radius:2px;background:var(--lv2)}.lv[data-lv="1"]:before{background:var(--lv1)}.lv[data-lv="2"]:before{background:var(--lv2)}.lv[data-lv="3"]:before{background:var(--lv3)}.lv[data-lv="4"]:before{background:var(--lv4)}.shut{display:inline-flex;align-items:center;gap:5px;font-family:var(--mono);font-size:9.5px;letter-spacing:.11em;text-transform:uppercase;color:var(--ink-2)}.shut:before{content:"";width:10px;height:10px;border-radius:2px;background:repeating-linear-gradient(135deg,transparent 0 3px,var(--closed) 3px 4.4px);box-shadow:inset 0 0 0 1px var(--rule)}.windows li{padding:6px 0;border-top:1px dotted var(--rule)}.windows li:first-child{border-top:0;padding-top:0}.windows li.best{box-shadow:inset 2px 0 0 var(--accent);padding-left:9px}.windows .t{display:block;font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:12.5px}.windows li.best .t{color:var(--accent);font-weight:620}.windows .w{font-size:12px;color:var(--ink-2)}.windows .pin{font-family:var(--mono);font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-left:6px}.kit li{margin-top:9px;font-size:12.5px;color:var(--ink-2);line-height:1.45}.kit li:first-child{margin-top:0}.kit em{display:block;font-family:var(--mono);font-style:normal;font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.bnone{margin:9px 0 0;font-size:12.5px;color:var(--ink-2)}.bfoot{margin:10px 0 0;font-family:var(--serif);font-style:italic;font-size:12px;color:var(--muted);line-height:1.4}.briefwhy{border-top:1px solid var(--rule);padding:12px var(--pad) 15px}.briefwhy ul{margin:7px 0 0;padding-left:16px;font-size:12.5px;color:var(--ink-2);columns:2;column-gap:30px}.briefwhy li{margin:2px 0;break-inside:avoid}section{display:flex;flex-direction:column;gap:18px}.sechead{display:flex;flex-direction:column;gap:5px;border-top:1px solid var(--rule-strong);padding-top:14px}h2{font-size:clamp(20px,2.7vw,26px);font-weight:640;letter-spacing:-.016em;margin:0;text-wrap:balance}.deck{color:var(--ink-2);font-size:14.5px;max-width:70ch;margin:0}.card{background:var(--surface);border:1px solid var(--rule);border-radius:3px}.controls{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.seg{display:inline-flex;border:1px solid var(--rule-strong);border-radius:3px;overflow:hidden;background:var(--surface)}.seg button{font:inherit;font-size:12.5px;font-family:var(--mono);letter-spacing:.04em;padding:7px 13px;background:transparent;color:var(--ink-2);border:0;cursor:pointer}.seg button+button{border-left:1px solid var(--rule-strong)}.seg button[aria-pressed=true]{background:var(--accent-soft);color:var(--accent);font-weight:600}.seg button:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.scroller{overflow-x:auto}.plot{min-width:var(--plotmin);padding:var(--pad) var(--pad) 10px 0}.tempchart{margin-left:var(--lab)}.tempchart svg{display:block;width:100%;height:100px}.grid{display:grid;grid-template-columns:var(--lab) repeat(24,minmax(0,1fr))}.monthaxis{display:grid;grid-template-columns:var(--lab) repeat(12,minmax(0,1fr));border-bottom:1px solid var(--rule)}.monthaxis span{font-family:var(--mono);font-size:11px;letter-spacing:.08em;color:var(--muted);text-align:center;padding:6px 0;text-transform:uppercase}.monthaxis span+span{box-shadow:-1px 0 0 var(--rule)}.monthaxis span:first-child,.rowlab{position:sticky;left:0;z-index:2;background:var(--surface);padding-left:var(--pad)}.rowlab{font-size:12.5px;padding-right:12px;display:flex;flex-direction:column;justify-content:center;line-height:1.2;height:var(--cellh)}.rowlab b{font-weight:560;letter-spacing:-.005em}.rowlab em{font-family:var(--mono);font-style:normal;font-size:9.5px;color:var(--muted);letter-spacing:.05em}.scrolled .monthaxis span:first-child,.scrolled .rowlab{box-shadow:6px 0 8px -6px #00000038}.cell{height:var(--cellh);position:relative}.cell i{position:absolute;inset:1px;display:block;border-radius:1.5px}.cell[data-lv="0"] i{box-shadow:inset 0 0 0 1px var(--rule);opacity:.55}.cell[data-lv="1"] i{background:var(--lv1)}.cell[data-lv="2"] i{background:var(--lv2)}.cell[data-lv="3"] i{background:var(--lv3)}.cell[data-lv="4"] i{background:var(--lv4)}.cell[data-closed="1"] i:after{content:"";position:absolute;inset:0;border-radius:1.5px;background:repeating-linear-gradient(135deg,transparent 0 3px,var(--closed) 3px 4.4px)}.cell button{position:absolute;inset:0;background:none;border:0;padding:0;cursor:crosshair}.cell button:focus-visible{outline:2px solid var(--accent);outline-offset:-1px;border-radius:2px}.tip{position:fixed;z-index:20;pointer-events:none;background:var(--surface);border:1px solid var(--rule-strong);border-radius:3px;padding:10px 12px;max-width:min(268px,calc(100vw - 16px));box-shadow:0 6px 22px #00000029;font-size:12.5px;opacity:0;transition:opacity .1s;top:0;left:0}.tip[hidden]{display:none}.tip strong{display:block;font-size:13.5px;margin-bottom:1px}.tip .when{font-family:var(--mono);font-size:10.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}.tip .lvl{display:flex;align-items:center;gap:6px;margin:6px 0 2px;font-weight:600}.tip .sw{width:11px;height:11px;border-radius:2px;flex:none}.tip p{margin:4px 0 0;color:var(--ink-2);line-height:1.42}.tip .reg{margin-top:7px;padding-top:6px;border-top:1px solid var(--rule);font-family:var(--mono);font-size:10.5px;color:var(--ink-2);line-height:1.45}.legend{display:flex;flex-wrap:wrap;gap:16px 28px;align-items:center;padding:14px 20px 18px;border-top:1px solid var(--rule);font-size:12px;color:var(--ink-2)}.lscale{display:flex;align-items:center;gap:8px}.lscale .steps{display:flex;gap:2px}.lscale .steps span{width:26px;height:12px;border-radius:1.5px}.lkey{display:flex;align-items:center;gap:7px}.lkey .sw{width:14px;height:14px;border-radius:2px;flex:none}.lkey .hatch{background:repeating-linear-gradient(135deg,transparent 0 3px,var(--closed) 3px 4.4px);box-shadow:inset 0 0 0 1px var(--rule)}.tidenow-line{display:flex;align-items:baseline;flex-wrap:wrap;gap:5px 14px;padding:16px var(--pad) 2px}.tidenow-line .state{font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--surface);background:var(--tide);border-radius:2px;padding:3px 7px;align-self:center}.tidenow-line .big{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:22px;font-weight:620;color:var(--live);letter-spacing:-.015em}.tidenow-line .sub{font-size:12.5px;color:var(--ink-2)}.tidechart{padding:4px var(--pad) 0}.tideplot{position:relative;height:172px}.tideplot svg{display:block;width:100%;height:100%}.tidedot{position:absolute;width:9px;height:9px;margin:-4.5px 0 0 -4.5px;border-radius:50%;background:var(--tide);box-shadow:0 0 0 2px var(--surface)}.tidelab{position:absolute;display:flex;flex-direction:column;align-items:center;line-height:1.25;white-space:nowrap;pointer-events:none}.tidelab .v{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:12px;font-weight:620;letter-spacing:-.01em}.tidelab .t{font-family:var(--mono);font-size:9.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}.tidelab.hi{transform:translate(-50%,-100%);padding-bottom:10px}.tidelab.lo{transform:translate(-50%);padding-top:10px}.tidenow{position:absolute;top:0;bottom:0}.tidenow i{position:absolute;top:0;bottom:0;border-left:1px dashed var(--live);opacity:.5}.tidenow b{position:absolute;width:10px;height:10px;margin:-5px 0 0 -5px;border-radius:50%;background:var(--live);box-shadow:0 0 0 2px var(--surface),0 0 0 3.5px var(--live)}.tideaxis{position:relative;height:34px}.tideaxis .nowtag{top:15px}.tideaxis span{position:absolute;top:0;font-family:var(--mono);font-size:10px;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);transform:translate(-50%);white-space:nowrap}.tideaxis span[data-edge=l]{transform:none}.tideaxis span[data-edge=r]{transform:translate(-100%)}.tideaxis .nowtag{color:var(--live);font-weight:620;font-variant-numeric:tabular-nums}.tideaxis .nowtag:before{content:"";position:absolute;left:50%;top:-13px;height:9px;border-left:1px dashed var(--live);opacity:.5}.tidetable{border-top:1px solid var(--rule);margin-top:12px}.tidetable th:first-child,.tidetable td:first-child{padding-left:var(--pad)}.tidetable th:last-child,.tidetable td:last-child{padding-right:var(--pad)}.tidetable tr.past td{color:var(--muted)}.lkey .band{background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--rule-strong)}.moondisc{display:block;flex:none}.moonnow{display:flex;align-items:flex-start;flex-wrap:wrap;gap:16px 22px;padding:18px var(--pad) 16px}.moonnow-text{flex:1 1 240px;min-width:0}.moonname{margin:0;font-size:19px;font-weight:620;letter-spacing:-.012em}.moonnow-line{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 8px;margin:3px 0 0}.moonnow-line .big{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:22px;font-weight:620;letter-spacing:-.015em}.moonnow .sub{font-size:12.5px;color:var(--ink-2);margin:5px 0 0}.moonrate{flex:0 1 270px;border-left:1px solid var(--rule);padding-left:16px}.moonrate .badge{display:inline-block;font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;padding:3px 8px;border-radius:2px;background:var(--tide);color:var(--surface)}.moonrate .badge[data-score="0"]{background:var(--muted)}.moonrate ul{margin:9px 0 0;padding-left:15px;font-size:12.5px;color:var(--ink-2)}.moonrate li{margin:2px 0}.soltable{border-top:1px solid var(--rule)}.soltable th:first-child,.soltable td:first-child{padding-left:var(--pad)}.soltable th:last-child,.soltable td:last-child{padding-right:var(--pad)}.soltable tr.past td{color:var(--muted)}.solnote{margin:10px 0 0;padding:0 var(--pad);font-family:var(--serif);font-style:italic;font-size:12.5px;color:var(--muted)}.stripwrap{margin-top:16px;padding:14px var(--pad) 0;border-top:1px solid var(--rule)}.striphead{margin:0 0 8px;font-size:12px;color:var(--ink-2)}.striphead b{font-weight:620;color:var(--ink)}.moonstrip{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(30px,1fr);min-width:640px;align-items:end}.mday{position:relative;display:flex;flex-direction:column;align-items:center;gap:5px;padding:5px 0 6px;border-radius:2px}.mday[data-today]{background:var(--accent-soft)}.mdate{font-family:var(--mono);font-size:9.5px;letter-spacing:.05em;color:var(--muted)}.mday[data-today] .mdate{color:var(--live);font-weight:620}.mbar{display:flex;align-items:flex-end;width:9px;height:46px;border-bottom:1px solid var(--rule-strong)}.mbar i{display:block;width:100%;background:var(--tide);border-radius:2px 2px 0 0}.mtag{font-family:var(--mono);font-size:9px;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-2);min-height:12px;white-space:nowrap}.mday[data-principal] .mtag{color:var(--ink);font-weight:620}.mday button{position:absolute;inset:0;background:none;border:0;padding:0;cursor:crosshair}.mday button:focus-visible{outline:2px solid var(--accent);outline-offset:-1px;border-radius:2px}.bestnights{display:flex;flex-wrap:wrap;align-items:center;gap:9px 24px;margin:0;padding:14px var(--pad) 2px;font-size:12.5px;color:var(--ink-2)}.bn{display:flex;align-items:center;gap:7px}.bn b{font-family:var(--mono);font-size:11.5px;color:var(--ink);white-space:nowrap}.lkey .barkey{width:8px;height:14px;border-radius:2px 2px 0 0;background:var(--tide)}.legend .stationkey{font-family:var(--mono);font-size:10.5px;letter-spacing:.05em;color:var(--muted)}.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}table{border-collapse:collapse;width:100%;font-size:12.5px}th,td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--rule);vertical-align:top}thead th{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:500;white-space:nowrap}td.num,th.num{font-family:var(--mono);font-variant-numeric:tabular-nums;text-align:center;white-space:nowrap}tbody tr:hover{background:var(--accent-soft)}[hidden]{display:none!important}.months{display:grid;grid-template-columns:repeat(auto-fill,minmax(272px,1fr));gap:1px;background:var(--rule);border:1px solid var(--rule);border-radius:3px;overflow:hidden}.mcard{background:var(--surface);padding:18px;display:flex;flex-direction:column;gap:9px}.mcard header{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.mcard h3{margin:0;font-size:17px;font-weight:640;letter-spacing:-.01em}.mcard .wt{font-family:var(--mono);font-size:11.5px;color:var(--temp);font-variant-numeric:tabular-nums;white-space:nowrap}.target{display:flex;align-items:center;flex-wrap:wrap;gap:8px;font-size:14.5px;font-weight:600}.target .dot{width:9px;height:9px;border-radius:50%;flex:none}.mcard .also{font-size:12.5px;color:var(--ink-2);margin:0}.mcard .how{font-size:12.5px;color:var(--ink-2);border-top:1px solid var(--rule);padding-top:9px;margin:0}.rank{font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;padding:2px 6px;border-radius:2px;white-space:nowrap}.rank.prime{background:var(--accent);color:var(--surface)}.rank.good{background:var(--accent-soft);color:var(--accent)}.rank.slow{background:transparent;color:var(--muted);box-shadow:inset 0 0 0 1px var(--rule-strong)}.twocol{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:26px}.prose p{margin:0 0 11px;font-size:14.5px;color:var(--ink-2);max-width:66ch}.prose h3{font-size:13px;margin:0 0 8px;font-weight:650;letter-spacing:.02em}ul.tight{margin:0;padding-left:18px;font-size:14px;color:var(--ink-2)}ul.tight li{margin-bottom:6px}.note{font-family:var(--serif);font-style:italic;font-size:13.5px;color:var(--ink-2);border-left:2px solid var(--temp);padding:2px 0 2px 14px;max-width:70ch;margin:0}footer{border-top:1px solid var(--rule-strong);padding-top:18px;font-size:12.5px;color:var(--muted)}footer ol{padding-left:18px;margin:10px 0 0}footer li{margin-bottom:6px}footer b{color:var(--ink-2)}.hint{font-family:var(--serif);font-style:italic;font-size:12.5px;color:var(--muted);margin:0;display:none}@media(max-width:760px){:root{--lab: 104px;--cellh: 26px;--pad: 14px;--plotmin: 640px}.wrap{padding:26px 14px 64px;gap:34px}.keyfacts{grid-template-columns:repeat(auto-fit,minmax(148px,1fr))}.fact{padding:13px 14px}.fact dd{font-size:17px}.rowlab{font-size:11.5px;padding-right:8px}.rowlab em{display:none}.monthaxis span{font-size:10px;letter-spacing:.02em}.tempchart svg{height:78px}.hint{display:block}.legend{gap:10px 18px;padding:12px 14px 16px}.lscale .steps span{width:20px}.tideplot{height:146px}.tidenow-line .big{font-size:19px}.tidelab .v{font-size:11px}.moonnow{gap:14px 16px}.moonrate{flex-basis:100%;border-left:0;border-top:1px solid var(--rule);padding:12px 0 0}.moonnow-line .big{font-size:19px}.moonstrip{min-width:560px}.mbar{height:38px;width:8px}.twocol{gap:20px}.briefcols{grid-template-columns:1fr}.bcol+.bcol{border-left:0;border-top:1px solid var(--rule)}.briefline .big{font-size:19px}.briefwhy ul{columns:1}.tip{left:8px!important;right:8px;top:auto!important;bottom:10px;max-width:none;width:auto}#regs,#regs tbody,#regs tr,#regs td{display:block;width:100%}#regs thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}#regs tr{padding:12px 2px;border-bottom:1px solid var(--rule)}#regs td{border:0;padding:2px 0}#regs td[data-label]:before{content:attr(data-label) "  ";font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}#regs td:first-child{font-size:14.5px;padding-bottom:5px}}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.livekey{display:flex;align-items:center;gap:7px}.livekey .dot{width:9px;height:9px;border-radius:50%;background:var(--live);box-shadow:0 0 0 3px var(--surface),0 0 0 4px var(--live);flex:none}.livekey b{font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--live);font-weight:600}.stamp{font-family:var(--mono);font-size:10.5px;color:var(--muted);letter-spacing:.04em}.fact dd .live{font-family:var(--mono);font-size:12.5px;color:var(--live);font-weight:600;font-variant-numeric:tabular-nums}tr.liverow td{color:var(--live)}.moonfact{display:flex;align-items:center;gap:8px;font-size:17px}
