:root{
  --ink:#0b1b26; --ink2:#14303f; --paper:#f7f9fa; --card:#fff;
  --line:#dbe4e8; --muted:#5b7383; --sea:#0d7490; --sea2:#0891b2;
  --high:#0369a1; --low:#b45309; --good:#15803d; --fair:#a16207; --poor:#b91c1c;
  --radius:10px; --wrap:1080px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);
  font:16px/1.65 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 20px}
a{color:var(--sea);text-decoration:none}
a:hover{text-decoration:underline}
h1,h2,h3{line-height:1.25;margin:0 0 .5em}
h1{font-size:clamp(1.6rem,4vw,2.3rem);letter-spacing:-.02em}
h2{font-size:1.3rem;margin-top:2rem}
h3{font-size:1.05rem}
p{margin:0 0 1rem}

header.site{background:var(--ink);color:#fff;padding:14px 0}
header.site a{color:#cfe6ef}
header.site .wrap{display:flex;gap:18px;align-items:center;flex-wrap:wrap}
.brand{font-weight:700;font-size:1.05rem;color:#fff!important;letter-spacing:-.01em}
.brand span{color:var(--sea2)}
nav.top{display:flex;gap:16px;font-size:.9rem;margin-left:auto;flex-wrap:wrap}

.hero{background:linear-gradient(160deg,var(--ink) 0%,var(--ink2) 100%);color:#fff;padding:40px 0 34px}
.hero h1{color:#fff}
.hero p{color:#b8d2de;max-width:62ch;margin:0}
.stamp{font-size:.8rem;color:#8fb3c2;margin-top:14px}

main{padding:28px 0 60px}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin:0 0 20px}
.grid{display:grid;gap:16px}
@media(min-width:720px){.g2{grid-template-columns:1fr 1fr}.g3{grid-template-columns:repeat(3,1fr)}}

/* tide table */
table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}
th,td{text-align:left;padding:9px 10px;border-bottom:1px solid var(--line)}
th{font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:600}
tr:last-child td{border-bottom:0}
.tide-HIGH{color:var(--high);font-weight:600}
.tide-LOW{color:var(--low);font-weight:600}
.time{font-size:1.05rem;font-weight:600}

.today{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));margin:0 0 6px}
.ev{background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:12px}
.ev .k{font-size:.7rem;text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}
.ev .t{font-size:1.45rem;font-weight:700;letter-spacing:-.02em}
.ev .m{font-size:.85rem;color:var(--muted)}

/* swim verdict */
.verdict{border-left:4px solid var(--line);padding:14px 16px;border-radius:0 8px 8px 0;background:var(--paper)}
.verdict.Good{border-color:var(--good)} .verdict.Fair{border-color:var(--fair)} .verdict.Poor{border-color:var(--poor)}
.verdict .v{font-weight:700;font-size:1.1rem}
.verdict.Good .v{color:var(--good)} .verdict.Fair .v{color:var(--fair)} .verdict.Poor .v{color:var(--poor)}

.metrics{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(110px,1fr))}
.metric{background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:12px}
.metric .n{font-size:1.3rem;font-weight:700;letter-spacing:-.02em}
.metric .l{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}

.pill{display:inline-block;background:#e2eef3;color:var(--ink2);border-radius:999px;
  padding:3px 11px;font-size:.75rem;font-weight:600;margin:0 6px 6px 0}

.locs{columns:220px;column-gap:24px;margin:0;padding:0;list-style:none}
.locs li{break-inside:avoid;padding:4px 0}
.locs .v{color:var(--muted);font-size:.8rem}

.note{background:#fffbeb;border:1px solid #fde68a;border-radius:8px;padding:14px 16px;font-size:.9rem}
.note strong{color:#92400e}

footer.site{background:var(--ink);color:#9fbecb;padding:30px 0;font-size:.85rem;margin-top:40px}
footer.site a{color:#cfe6ef}
footer.site p{margin:0 0 .6rem}

.crumb{font-size:.85rem;color:var(--muted);margin:0 0 14px}
.faq dt{font-weight:600;margin-top:14px}
.faq dd{margin:4px 0 0;color:var(--ink)}
