@font-face{font-family:Manrope;src:url('/assets/fonts/Manrope-Regular.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:Manrope;src:url('/assets/fonts/Manrope-SemiBold.ttf') format('truetype');font-weight:600;font-display:swap}
@font-face{font-family:Manrope;src:url('/assets/fonts/Manrope-Bold.ttf') format('truetype');font-weight:700;font-display:swap}

:root{--bg:#f6fbfa;--surface:#fff;--brand:#25b5a5;--action:#006a70;--deep:#0b3440;--text:#122930;--muted:#526e75;--subtle:#5c6e73;--border:#d9e5e5;--strong-border:#c9d9d6;--soft:#e7f7f4;--good:#16856e;--caution:#a55b00;--bad:#b3261e;--shadow:0 4px 12px rgba(11,52,64,.05)}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--text);font-family:Manrope,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.45}
button,input{font:inherit}
a{color:var(--action);text-underline-offset:3px}
.app-shell{width:min(720px,calc(100% - 64px));margin-inline:auto}
.shell{width:min(920px,calc(100% - 64px));margin-inline:auto}
.skip-link{position:absolute;left:-9999px;top:10px;background:var(--deep);color:#fff;padding:10px 14px;border-radius:8px;z-index:40}.skip-link:focus{left:10px}

.site-header{background:#fff;border-bottom:1px solid var(--border)}
.header-inner{min-height:72px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.brand{display:block;line-height:0}.brand img{display:block;width:116px;height:auto}
.header-link{color:var(--deep);font-size:.82rem;font-weight:700;text-decoration:none;border:1px solid var(--border);border-radius:999px;padding:7px 12px}
.header-link:hover{border-color:var(--brand);color:var(--action)}
.tagline{margin:0;color:var(--muted);font-size:.84rem;border-left:1px solid var(--border);padding-left:22px}
.top-nav{margin-left:auto;display:flex;gap:22px}.top-nav a{color:var(--text);text-decoration:none;font-weight:600;font-size:.86rem}

.page-shell{padding-block:30px 64px}
.today-intro h1{margin:0;color:var(--deep);font-size:27px;line-height:1.2;letter-spacing:-.025em}
.date-line{margin:4px 0 0;color:var(--brand);font-size:14px;font-weight:600}
.location-form{position:relative;margin-top:9px}
.location-form>label{display:block;color:var(--deep);font-size:14px;font-weight:700;margin-bottom:7px}
.search-row{display:grid;grid-template-columns:1fr auto;align-items:center;background:#fff;border:1px solid var(--strong-border);border-radius:13px;padding:4px 4px 4px 12px;box-shadow:0 3px 10px rgba(11,52,64,.035)}
.search-row input{min-width:0;border:0;outline:0;padding:9px 4px;background:transparent;color:var(--text);font-size:14px}
.search-row button{border:0;border-radius:9px;background:var(--action);color:#fff;padding:9px 14px;font-size:13px;font-weight:700;cursor:pointer}
.search-row button:hover{background:var(--deep)}.search-row button:disabled{opacity:.55;cursor:wait}
.search-results{position:absolute;z-index:20;right:0;left:0;top:100%;list-style:none;margin:7px 0 0;padding:6px;background:#fff;border:1px solid var(--strong-border);border-radius:13px;box-shadow:0 16px 38px rgba(11,52,64,.15)}
.search-results button{width:100%;border:0;background:transparent;text-align:left;padding:10px 11px;border-radius:9px;color:var(--text);cursor:pointer}.search-results button:hover,.search-results button:focus{background:var(--soft)}.search-results strong,.search-results small{display:block}.search-results small{color:var(--muted);margin-top:2px}

.day-nav{display:flex;align-items:center;justify-content:center;gap:17px;margin:18px auto}
.arrow-button{width:42px;height:42px;border-radius:50%;border:1px solid var(--strong-border);background:#fff;color:var(--deep);font-size:1.1rem;font-weight:700;cursor:pointer}.arrow-button:hover:not(:disabled){border-color:var(--brand);color:var(--action);background:var(--soft)}.arrow-button:disabled{opacity:.3;cursor:not-allowed}
.day-nav-label{text-align:center;min-width:145px}.day-nav-label strong,.day-nav-label span{display:block}.day-nav-label strong{color:var(--deep);font-size:16px}.day-nav-label span{color:var(--subtle);font-size:12px;margin-top:1px}

.notice{border-radius:13px;padding:13px 15px;margin-bottom:16px;display:flex;gap:6px;flex-wrap:wrap;font-size:13px}.notice-warn{background:#fff0d5;color:#73480e;border:1px solid #efd6ae}.notice-error{background:#f7e7e5;color:#812b26;border:1px solid #ecc8cc}
.today-stack{display:flex;flex-direction:column;gap:24px}
.panel{background:#fff;border:1px solid var(--strong-border);border-radius:18px;box-shadow:var(--shadow)}
.weather-card{padding:17px 17px 15px}.weather-card>h2,.sports-section>h2{margin:0;color:var(--deep);font-size:18px;line-height:1.3;letter-spacing:-.015em}
.weather-summary{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;margin-top:13px}
.weather-icon{font-size:40px;line-height:1}.condition-copy{min-width:0}.condition-copy strong,.condition-copy span{display:block}.condition-copy strong{color:var(--deep);font-size:17px;line-height:1.25}.condition-copy span{color:var(--subtle);font-size:14px;margin-top:2px}.temperature{color:var(--deep);font-size:34px;line-height:1;font-weight:700}
.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:0;text-align:center;gap:6px}.metric-grid-top{margin-top:17px}.metric-grid>div{min-width:0}.metric-grid span{display:block;font-size:21px;line-height:1.2}.metric-grid dt{color:var(--subtle);font-size:12px;margin-top:4px}.metric-grid dd{margin:2px 0 0;color:var(--deep);font-size:13px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.metric-divider{height:1px;background:var(--border);margin:16px 0}
.tide-credit{margin:9px 0 0;font-size:10px}.tide-credit a{color:var(--subtle)}
.quality-strip{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:9px;margin-top:16px;padding:12px 13px;border-radius:12px;background:#f1f5f4;color:var(--deep);text-decoration:none}.quality-strip.good{background:#def5f0}.quality-strip.caution{background:#fff0d5}.quality-strip.bad{background:#f7e7e5}
.status-dot{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:#91a2a6;color:#fff;font-size:12px;font-weight:700}.status-dot.good{background:var(--good)}.status-dot.caution{background:var(--caution)}.status-dot.bad{background:var(--bad)}
.quality-copy{min-width:0}.quality-copy strong,.quality-copy small{display:block}.quality-copy strong{font-size:13px}.quality-copy small{font-size:11px;color:var(--subtle);margin-top:2px;line-height:1.35}.quality-copy .quality-checked{font-size:10px}.quality-view{font-size:12px;font-weight:700;text-decoration:underline}

.sports-section{margin-top:0}.sports-section>h2{font-size:21px}.section-intro{margin:4px 0 0;color:var(--subtle);font-size:14px}.spot-line{margin:8px 0 12px;color:var(--action);font-size:12px;font-weight:700}
.activity-list{display:flex;flex-direction:column;gap:12px}.activity-card{display:flex;gap:13px;background:#fff;border:1px solid var(--strong-border);border-radius:16px;padding:15px}.activity-icon{width:48px;height:48px;flex:0 0 48px;border-radius:14px;display:grid;place-items:center;background:var(--soft);font-size:27px}.activity-main{min-width:0;flex:1}.activity-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:9px}.activity-card h3{margin:1px 0 0;color:var(--deep);font-size:16px;line-height:1.35}.activity-card p{margin:5px 0 0;color:var(--subtle);font-size:13px;line-height:1.45}.coming-soon{background:#fbfdfd}
.pill{display:inline-flex;white-space:nowrap;border-radius:999px;padding:5px 9px;background:#def5f0;color:var(--deep);font-size:10px;font-weight:700}.pill.alternative{background:#fff0d5}.pill.none{background:#f7e7e5}.pill.neutral{background:#edf1f2;color:var(--muted)}
.session-details{display:flex;gap:6px;flex-wrap:wrap;margin-top:9px}.session-details span{background:#f1f7f5;border-radius:8px;padding:5px 7px;color:var(--deep);font-size:10px;font-weight:700}
.safety-card{display:flex;gap:13px;background:#fff;border:1px solid var(--strong-border);border-radius:16px;padding:16px}.safety-card>span{font-size:25px}.safety-card strong{color:var(--deep);font-size:14px}.safety-card p{margin:3px 0 7px;color:var(--subtle);font-size:12px;line-height:1.5}.safety-card a{font-size:12px;font-weight:700;text-decoration:none}
.weather-disclaimer{margin:-8px 0 0;background:#fff;border:1px solid var(--border);border-radius:12px;padding:13px 14px;color:var(--subtle);font-size:11px;line-height:1.5}.weather-disclaimer strong{color:var(--deep);font-size:12px}.weather-disclaimer p{margin:3px 0 0}
.ad-shell{min-height:96px;border:1px dashed var(--border);background:#fff;border-radius:12px;text-align:center;padding:9px}.ad-shell>span{display:block;color:var(--subtle);font-size:9px;text-transform:uppercase;letter-spacing:.12em}
.skeleton-card{min-height:315px;background:linear-gradient(100deg,#fff 30%,#edf6f4 50%,#fff 70%);background-size:400% 100%;animation:shimmer 1.5s infinite}.section-skeleton{min-height:220px;border-radius:16px}@keyframes shimmer{to{background-position:-100% 0}}

.site-footer{background:#fff;border-top:1px solid var(--border)}.footer-inner{padding-block:30px;text-align:center}.footer-inner>img{display:block;margin:0 auto 16px;height:auto}.footer-inner nav{display:flex;justify-content:center;gap:12px 17px;flex-wrap:wrap}.footer-inner nav a,.footer-inner nav button{border:0;background:none;padding:0;color:var(--muted);font:600 11px Manrope,sans-serif;text-decoration:none;cursor:pointer}.footer-inner nav a:hover,.footer-inner nav button:hover{color:var(--action)}.footer-inner>p{margin:16px 0 0;color:var(--subtle);font-size:10px}

.cookie-dialog{width:min(500px,calc(100% - 32px));border:0;border-radius:20px;padding:0;box-shadow:0 22px 70px rgba(11,52,64,.25);color:var(--text)}.cookie-dialog::backdrop{background:rgba(11,52,64,.5)}.cookie-dialog form{position:relative;padding:24px}.dialog-close{position:absolute;right:15px;top:12px;border:0;background:transparent;color:var(--muted);font-size:28px;cursor:pointer}.dialog-emoji{margin:0;font-size:30px}.cookie-dialog h2{margin:7px 0;color:var(--deep);font-size:22px}.cookie-dialog>form>p:not(.dialog-emoji){color:var(--muted);font-size:13px}.cookie-row{display:flex;align-items:center;justify-content:space-between;gap:16px;border-top:1px solid var(--border);padding:13px 0}.cookie-row span strong,.cookie-row span small{display:block}.cookie-row span strong{color:var(--deep);font-size:13px}.cookie-row span small{color:var(--subtle);font-size:11px;margin-top:2px}.cookie-row b{white-space:nowrap;color:var(--good);font-size:11px}.cookie-row b.off{color:var(--muted)}.dialog-note{border-top:1px solid var(--border);padding-top:13px}.dialog-done{width:100%;border:0;border-radius:10px;background:var(--action);color:#fff;padding:11px;font-weight:700;cursor:pointer}

.info-main{padding-block:48px 78px}.info-hero{max-width:760px;margin-bottom:30px}.eyebrow{margin:0 0 5px;text-transform:uppercase;letter-spacing:.12em;color:var(--action);font-size:11px;font-weight:700}.info-hero h1{margin:0;color:var(--deep);font-size:clamp(34px,6vw,54px);line-height:1.05;letter-spacing:-.045em}.info-hero p{font-size:16px;color:var(--muted);max-width:680px}.prose{max-width:780px;background:#fff;border:1px solid var(--strong-border);border-radius:18px;padding:clamp(24px,5vw,44px);box-shadow:var(--shadow)}.prose h2{color:var(--deep);margin:30px 0 9px;font-size:19px}.prose h2:first-child{margin-top:0}.prose p,.prose li{color:#405c63;font-size:14px}.prose li+li{margin-top:7px}.prose .callout{background:var(--soft);border-left:4px solid var(--brand);padding:14px 16px;color:var(--deep);border-radius:0 10px 10px 0}.back-link{display:inline-block;margin-top:24px;font-weight:700;text-decoration:none}.info-main+.site-footer .footer-inner{display:grid;grid-template-columns:1fr 2fr auto;align-items:center;gap:24px;text-align:left}.info-main+.site-footer .footer-inner>img{margin:0}.info-main+.site-footer .footer-inner>p{margin:0;white-space:nowrap}
[hidden]{display:none!important}

@media(max-width:680px){.app-shell,.shell{width:min(100% - 40px,720px)}.header-inner{min-height:66px}.brand img{width:108px}.page-shell{padding-block:22px 48px}.weather-card{padding:17px 16px 15px}.info-main+.site-footer .footer-inner{display:block;text-align:center}.info-main+.site-footer .footer-inner>img{margin:0 auto 15px}.info-main+.site-footer .footer-inner>p{margin-top:15px}.tagline{display:none}}
@media(max-width:390px){.app-shell,.shell{width:min(100% - 32px,720px)}.metric-grid{gap:2px}.metric-grid span{font-size:19px}.metric-grid dt{font-size:10px}.metric-grid dd{font-size:11px}.weather-summary{gap:9px}.weather-icon{font-size:36px}.temperature{font-size:31px}.activity-title-row{display:block}.pill{margin-top:5px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}.skeleton-card{animation:none}}
