:root{--ink:#061a2b;--ink2:#082c3a;--lime:#69d2e7;--mint:#b9edf3;--paper:#f3f0e8;--orange:#ff735c;--muted:#687b82;--line:#d7ddd9}.water-toggle{flex-wrap:wrap}.marine-only{display:none}.marine-only.show{display:grid}.moon-panel{margin-top:20px;background:#e2f0f1;border:1px solid #c9dcde;border-radius:22px;padding:38px;display:grid;grid-template-columns:170px .9fr 1.1fr;gap:38px;align-items:center}.moon-visual{height:160px;width:160px;position:relative;display:grid;place-items:center}.phase-disc{width:112px;height:112px;border-radius:50%;background:var(--ink);box-shadow:inset -32px 0 0 var(--lime),0 10px 35px #07191622;z-index:2}.moon-orbit{position:absolute;inset:0;border:1px solid #9ebfc4;border-radius:50%}.moon-visual>span{position:absolute;bottom:0;background:var(--paper);border-radius:99px;padding:5px 9px;font-size:10px;font-weight:700;z-index:3}.moon-copy h3{font-size:12px;text-transform:uppercase;letter-spacing:1px;color:#607d84}.moon-copy h4{font:700 29px system-ui,-apple-system,"Segoe UI",sans-serif;margin:8px 0}.moon-copy>p:last-child{font-size:13px;color:var(--muted);line-height:1.55}.phase-list{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.phase-item{background:#f7f8f4;border-radius:14px;padding:14px 10px;text-align:center}.mini-moon{display:block;margin:0 auto 10px;width:34px;height:34px;border-radius:50%;background:var(--ink);box-shadow:inset -10px 0 var(--lime)}.phase-item b{display:block;font-size:11px}.phase-item small{font-size:9px;color:var(--muted)}
.dashboard-moon{margin-top:0;background:white;border-color:var(--line);grid-template-columns:104px 1fr;padding:24px;gap:18px;align-self:start}.dashboard-moon .moon-visual{width:104px;height:104px}.dashboard-moon .phase-disc{width:72px;height:72px}.dashboard-moon .moon-orbit{inset:3px}.dashboard-moon .moon-visual>span{bottom:-4px}.dashboard-moon .moon-copy h4{font-size:22px}.dashboard-moon .moon-copy>p:last-child{font-size:12px}.dashboard-moon .phase-list{grid-column:1/-1;grid-template-columns:repeat(4,1fr)}
body{font-family:system-ui,-apple-system,"Segoe UI",sans-serif}h1,h2,h3,.brand,.score-ring strong,.day b{font-family:system-ui,-apple-system,"Segoe UI",sans-serif}
.saved-btn b{display:grid;place-items:center;min-width:18px;height:18px;padding:0 5px;background:var(--lime);color:var(--ink);border-radius:99px;font-size:9px}.safety-banner{margin:-12px 0 22px;background:#e5f1e8;border:1px solid #cbded0;border-radius:16px;padding:16px 20px;display:grid;grid-template-columns:38px 1fr auto;gap:14px;align-items:center}.safety-icon{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:#c9edbb;color:#2a632d;font-weight:800}.safety-banner small{display:block;font-size:9px;letter-spacing:1.3px;color:#6c7d74;font-weight:800}.safety-banner strong{display:block;font-size:14px;margin:2px 0}.safety-banner p{font-size:11px;color:var(--muted);margin:0}.safety-banner a{font-size:11px;color:var(--ink);font-weight:700;text-decoration:none}.safety-banner.warning{background:#fff1d5;border-color:#ead4a2}.safety-banner.warning .safety-icon{background:#ffdc8e;color:#704e07}.safety-banner.danger{background:#ffe4df;border-color:#efc1b8}.safety-banner.danger .safety-icon{background:#ffb4a5;color:#842f20}.checklist-tip ul{list-style:none;padding:0;margin:13px 0 0;display:grid;grid-template-columns:1fr 1fr;gap:8px}.checklist-tip li{font-size:12px;color:#c4d2cd}.checklist-tip li:before{content:'✓';color:var(--lime);margin-right:8px}.drawer-shade{position:fixed;inset:0;background:#07191699;opacity:0;pointer-events:none;transition:.25s;z-index:20}.drawer-shade.open{opacity:1;pointer-events:auto}.saved-panel{position:fixed;right:0;top:0;bottom:0;width:min(420px,92vw);background:#f5f6f1;z-index:21;padding:30px;transform:translateX(105%);transition:.3s ease;box-shadow:-25px 0 60px #0004}.saved-panel.open{transform:none}.saved-head{display:flex;justify-content:space-between;align-items:start}.saved-head small{font-size:9px;letter-spacing:1.4px;color:var(--muted);font-weight:800}.saved-head h2{font-size:30px}.saved-head button{border:1px solid var(--line);background:white;border-radius:50%;width:38px;height:38px;font-size:22px;cursor:pointer}.saved-intro{color:var(--muted);font-size:12px}.saved-list{margin:25px 0;display:grid;gap:10px}.saved-empty{padding:35px 15px;text-align:center;border:1px dashed #bec8c1;border-radius:15px;color:var(--muted);font-size:13px}.saved-item{background:white;border:1px solid var(--line);border-radius:15px;padding:15px;display:grid;grid-template-columns:1fr auto;gap:6px}.saved-item strong{font-size:14px}.saved-item small{display:block;color:var(--muted);margin-top:3px}.saved-item button{border:0;background:transparent;cursor:pointer}.saved-item .open-spot{grid-column:1/-1;background:var(--ink);color:white;border-radius:9px;padding:9px;font-size:11px}.save-current{width:100%;border:0;border-radius:12px;background:var(--lime);color:var(--ink);padding:14px;font-weight:800;cursor:pointer}
.verdict{background:#d9f4f7;color:#175567}.score-ring{box-shadow:0 10px 35px #087e8b16}.hero-art .moon{background:var(--lime);box-shadow:0 0 75px #69d2e733}.fish-school-light{color:#087e8b}

/* Compact app-style hero: keep selection prominent without spending a full viewport. */
@media(min-width:901px){
  .topbar{height:62px}
  .hero{min-height:0;padding:46px 5vw 50px;grid-template-columns:minmax(520px,720px) minmax(340px,1fr);gap:5vw;align-items:center}
  .hero-copy{max-width:720px}
  .hero .eyebrow{margin:0}
  .hero h1{font-size:clamp(48px,4.5vw,70px);margin:18px 0 14px}
  .hero .subhead{font-size:15px;line-height:1.55;margin:0}
  .hero .signal-tags{margin-top:16px}
  .location-card{max-width:620px;margin-top:24px;padding:16px 18px;border-radius:16px;box-shadow:0 16px 42px #0003}
  .location-card label{margin-bottom:5px}
  .field-divider{margin:11px 0}
  .water-toggle{margin-top:12px;padding-top:11px}
  .hero-art{min-height:350px;height:100%}
  .hero-art .moon{width:180px;height:180px;top:6%}
  .hero-art .moon:after{width:174px;height:174px}
  .hero-art .ring-one{width:320px;height:320px}
  .hero-art .ring-two{width:470px;height:470px}
}
.cast-logo{position:relative;border-color:var(--lime)}.cast-logo:before{content:'C';font-weight:800;font-size:17px}.cast-logo i{position:absolute;width:7px;height:10px;border:1.5px solid var(--lime);border-top:0;border-left:0;border-radius:0 0 7px 0;right:6px;bottom:4px}.signal-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:24px}.signal-tags span{border:1px solid #365568;color:#a8c8d1;border-radius:99px;padding:7px 11px;font-size:10px;letter-spacing:.5px}.cast-line{position:absolute;width:420px;height:250px;border:2px solid transparent;border-top-color:#69d2e766;border-radius:50%;right:4%;top:18%;transform:rotate(12deg)}.cast-line:after{content:'';position:absolute;width:1px;height:145px;background:linear-gradient(#69d2e799,transparent);right:13px;top:28px;transform:rotate(-12deg)}.lure-float{position:absolute;right:7%;top:61%;width:12px;height:29px;border-radius:9px;background:linear-gradient(var(--orange) 0 45%,#f5f1e8 45%);transform:rotate(8deg);box-shadow:0 5px 15px #0007}.lure-float i{position:absolute;width:1px;height:13px;background:#a8dce4;left:5px;top:-12px}.playbook-title:after{content:'CAST • RETRIEVE • ADAPT';display:block;margin-top:28px;color:#5f8a96;letter-spacing:2px;font-size:9px}
.playbook-title:after{display:none}.tips article>span{border-color:#477181}.tips article{position:relative}.tips article:after{content:'';position:absolute;left:20px;bottom:-1px;width:3px;height:3px;background:var(--lime);border-radius:50%}
.country-field label{margin-left:0}.country-select{display:flex;align-items:center;gap:10px}.country-select>span{color:#357b8b;font-size:18px}.country-select select{border:0;background:transparent;flex:1;font-weight:800;color:var(--ink);outline:0}.country-select b{font-size:8px;letter-spacing:1.2px;background:#d9f4f7;color:#176072;padding:5px 7px;border-radius:99px}.field-divider{height:1px;background:#e0e5e2;margin:15px 0}.expansion-note{margin:13px 0 -4px;border-top:1px solid #e4e8e3;padding-top:12px;color:#7a8984;font-size:10px;line-height:1.45}.expansion-note span{color:#176072;font-weight:800;text-transform:uppercase;letter-spacing:1px;margin-right:6px}
.negative{color:#ae3e29}
body{overflow-x:hidden}.section-heading>div{min-width:0}.section-heading h2{max-width:100%;overflow-wrap:anywhere;line-height:1.05}.forecast-shell,.playbook{position:relative;overflow:hidden}.fish-school{position:absolute;pointer-events:none;display:flex;gap:24px;opacity:.12}.fish-school i{font-style:normal;display:block;transform:scaleX(2.3);font-size:25px}.fish-school i:nth-child(2){transform:scaleX(1.7);font-size:16px;margin-top:30px}.fish-school i:nth-child(3){transform:scaleX(2.8);font-size:12px;margin-top:4px}.fish-school-light{right:7%;top:55px;color:#246453}.fish-school-dark{right:5%;bottom:7%;color:var(--lime);transform:rotate(-8deg)}
.hourly-card{margin-top:20px;background:#fff;border:1px solid var(--line);border-radius:22px;padding:30px;overflow:hidden}.hourly-head{display:flex;justify-content:space-between;gap:30px;align-items:end}.hourly-head h3{font-size:26px}.hourly-head>p{max-width:430px;color:var(--muted);font-size:13px;line-height:1.5}.hourly-scroll{overflow-x:auto;padding:22px 0 8px;scrollbar-width:thin}.hourly-chart{display:grid;grid-template-columns:repeat(24,minmax(48px,1fr));height:190px;min-width:1050px;align-items:end;border-bottom:1px solid var(--line)}.hour{height:100%;display:flex;flex-direction:column;justify-content:end;align-items:center;gap:7px}.hour b{font-size:10px}.hour-bar{width:22px;min-height:20px;border-radius:7px 7px 2px 2px;background:#dce1da}.hour-bar.great{background:var(--lime)}.hour-bar.fair{background:var(--mint)}.hour-bar.low{background:#dce1da}.hour small{font-size:9px;color:var(--muted);white-space:nowrap}.hour.now small{color:var(--ink);font-weight:800}.hour.now .hour-bar{outline:2px solid var(--ink);outline-offset:2px}.hourly-legend{display:flex;gap:18px;margin-top:12px;font-size:10px;color:var(--muted)}.hourly-legend i{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:5px}.hourly-legend .great{background:var(--lime)}.hourly-legend .fair{background:var(--mint)}.hourly-legend .low{background:#dce1da}.release-safety{background:#101e1a;color:white;padding:55px 5vw;display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.release-safety article{border-top:1px solid #40544d;padding-top:20px}.release-safety small{color:var(--lime);font-weight:700;letter-spacing:1.5px}.release-safety h3{font-size:18px;margin:8px 0}.release-safety p{font-size:12px;color:#9db0a9;line-height:1.55}footer a{color:#a9bcb5;text-decoration:none}
.day-parts{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin-top:24px}.day-part{border:1px solid var(--line);background:#fbfcf8;text-align:left;border-radius:14px;padding:13px;cursor:pointer;color:inherit;min-height:132px}.day-part.great{border-color:#badf6f;background:#f6ffe1}.day-part.fair{border-color:#b7d9d4;background:#f4fbfa}.day-part.low{background:#f4f5f0}.day-part small{color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:1px}.day-part strong{display:block;font-size:17px;margin:5px 0}.day-part span{display:block;font-size:10px;color:#176072;font-weight:800}.day-part p{font-size:10px;color:#60777d;line-height:1.35;margin:8px 0 0}.hour{border:0;background:transparent;padding:0;cursor:pointer;color:inherit}.hour:hover .hour-bar,.hour.selected .hour-bar{outline:2px solid var(--ink);outline-offset:2px}.hour-detail{margin-top:20px;border-radius:16px;background:#071f31;color:white;padding:18px 20px;display:grid;grid-template-columns:1.3fr repeat(5,1fr);gap:12px;align-items:center}.detail-lead small,.detail-stat small{display:block;font-size:8px;letter-spacing:1px;color:#86a8b2}.detail-lead strong{display:block;font-size:18px;margin-top:3px}.detail-lead span{font-size:10px;color:var(--lime)}.detail-stat{border-left:1px solid #294858;padding-left:12px}.detail-stat strong{display:block;font-size:12px;margin-top:4px}.detail-stat span{font-size:9px;color:#90aab2}.detail-cue{grid-column:1/-1;border-top:1px solid #294858;padding-top:11px;color:#b7c9ce;font-size:11px}.detail-cue b{color:var(--lime)}
.hourly-intro{max-width:430px}.hourly-intro p{color:var(--muted);font-size:13px;line-height:1.5;margin:0}.hourly-intro button{margin-top:8px;border:1px solid #aac1c5;background:transparent;color:#185b69;border-radius:99px;padding:7px 11px;font-size:10px;font-weight:800;cursor:pointer}
.mobile-dock{display:none}
.mobile-section-toggle{display:none}.more-shade,.more-panel{display:none}.moon-panel,.playbook,.rules-section{content-visibility:auto;contain-intrinsic-size:700px}
.section-actions{display:flex;gap:8px;align-items:center}.refresh-btn{border:1px solid #aab5b0;background:white;color:var(--ink);border-radius:99px;padding:10px 14px;font-weight:800;font-size:11px;cursor:pointer}.refresh-btn.loading{pointer-events:none;opacity:.65}.decision-card{display:grid;grid-template-columns:1.25fr 1fr;gap:18px;align-items:stretch;background:linear-gradient(135deg,#071f31,#0d3c49);color:white;border-radius:24px;padding:26px;margin-bottom:18px;box-shadow:0 18px 45px #071f3124}.decision-card[data-cue=go]{background:linear-gradient(135deg,#071f31,#174b3d)}.decision-card[data-cue=wait]{background:linear-gradient(135deg,#071f31,#354c5e)}.decision-card[data-cue=skip]{background:linear-gradient(135deg,#231c1a,#59332c)}.decision-main small,.decision-actions small{display:block;font-size:9px;letter-spacing:1.3px;font-weight:900;color:var(--lime)}.decision-main h3{font-size:clamp(28px,4vw,48px);line-height:1;letter-spacing:-2px;margin:8px 0 12px}.decision-main p{color:#b8ced4;line-height:1.55;margin:0;max-width:680px}.decision-actions{display:grid;grid-template-columns:1fr;gap:9px}.decision-actions>div{background:#ffffff10;border:1px solid #ffffff1f;border-radius:16px;padding:15px}.decision-actions strong{display:block;font-size:16px;margin-top:5px}.glance-card{background:#082334;color:white;border-radius:22px;padding:25px;margin-bottom:20px}.glance-title{display:flex;justify-content:space-between;align-items:start;gap:16px}.glance-title small{font-size:9px;color:#84a8b5;font-weight:800;letter-spacing:1.2px}.glance-title h3{font-size:23px;margin-top:4px}.glance-title>span{font-size:9px;color:#b7ced5;background:#12384a;border-radius:99px;padding:7px 10px;white-space:nowrap}.glance-grid{display:grid;grid-template-columns:1.15fr repeat(3,1fr);gap:10px;margin-top:20px}.glance-grid>div{background:#0e3041;border:1px solid #274c5e;border-radius:14px;padding:15px;min-width:0}.glance-grid small{display:block;color:#87a8b4;font-size:8px;letter-spacing:1px;font-weight:800}.glance-grid strong{display:block;font-size:18px;margin:7px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.glance-primary strong{font-size:32px;color:var(--lime)}.glance-grid span{display:block;color:#adc2c9;font-size:9px}.trip-planner{margin-top:20px;background:white;border:1px solid var(--line);border-radius:22px;padding:28px;display:grid;grid-template-columns:1fr 1.1fr 1fr;gap:24px;align-items:center}.trip-copy h3{font-size:25px}.trip-copy>p:last-of-type{color:var(--muted);font-size:12px;line-height:1.5}.trip-planner form{display:grid;gap:7px}.trip-planner label{font-size:9px;font-weight:800;letter-spacing:1px;color:var(--muted)}.trip-planner select,.trip-planner input{width:100%;border:1px solid var(--line);border-radius:10px;background:#f7f8f4;min-height:44px;padding:9px 11px;color:var(--ink)}.trip-planner form button{border:0;background:var(--ink);color:white;border-radius:10px;min-height:44px;font-weight:800;margin-top:5px}.trip-summary{background:#edf4ef;border-radius:15px;padding:18px}.trip-summary small{display:block;font-size:8px;letter-spacing:1px;color:var(--muted);font-weight:800}.trip-summary strong{display:block;font-size:16px;margin:7px 0}.trip-summary span{display:block;font-size:10px;color:var(--muted);line-height:1.4}.pull-indicator{display:none}
@media(max-width:600px){.drawer-shade{z-index:51}.saved-panel{z-index:52;width:min(420px,calc(100vw - 10px));padding-top:calc(76px + env(safe-area-inset-top));overflow-y:auto}}
@media(max-width:600px){.topbar .sg-clock,.topbar .saved-btn{height:44px;min-height:44px;border-radius:99px}.topbar .saved-btn{display:flex;align-items:center;justify-content:center;gap:5px;min-width:62px;padding:0 10px;white-space:nowrap}.topbar .saved-btn b{flex:0 0 auto}.topbar nav{align-items:center}}
@media(max-width:600px){#hourly,#tides,#week,#moon,#playbook,#rules,#legal{scroll-margin-top:76px}}
@media(max-width:600px){#trip{scroll-margin-top:76px}.section-actions{margin-top:14px}.section-heading .section-actions .share-btn,.section-heading .section-actions .refresh-btn{margin-top:0;min-height:44px}.glance-card{padding:18px 14px;border-radius:18px}.glance-title h3{font-size:20px}.glance-grid{grid-template-columns:1fr 1fr}.glance-grid>div{padding:13px}.glance-grid strong{font-size:16px}.glance-primary strong{font-size:28px}.trip-planner{display:grid;grid-template-columns:1fr;padding:22px}.trip-planner.mobile-collapsed form,.trip-planner.mobile-collapsed .trip-summary{display:none}.trip-planner:not(.mobile-collapsed) .mobile-section-toggle{display:none}.pull-indicator{position:fixed;display:flex;left:50%;top:70px;transform:translate(-50%,-90px);align-items:center;gap:7px;background:#d5ff5f;color:#071916;border-radius:99px;padding:9px 14px;font-size:10px;z-index:29;transition:.18s;pointer-events:none;box-shadow:0 8px 25px #0003}.pull-indicator span{font-size:16px}.pull-indicator.show{transform:translate(-50%,0)}.pull-indicator.ready span{transform:rotate(180deg)}.pull-indicator.refreshing b:after{content:'ing…'}}
.sg-clock{display:inline-flex;align-items:center;min-height:34px;padding:0 10px;border:1px solid #335047;border-radius:99px;color:#b9cbc5;font-size:10px;font-weight:800;letter-spacing:.8px;font-variant-numeric:tabular-nums}.install-btn{border:1px solid #5e8176;background:#173b32;color:white;border-radius:99px;padding:9px 13px;font-size:10px;font-weight:800;cursor:pointer}.install-btn[hidden]{display:none}.species-card{margin-top:20px;background:white;border:1px solid var(--line);border-radius:22px;padding:28px}.species-head{display:flex;justify-content:space-between;gap:18px;align-items:start;margin-bottom:18px}.species-head h3{font-size:26px;margin:2px 0 8px}.species-head p:last-child{color:var(--muted);font-size:12px;margin:0;line-height:1.45}.species-head>span{white-space:nowrap;border:1px solid var(--line);border-radius:99px;padding:8px 11px;color:#176072;font-size:9px;font-weight:900;letter-spacing:.7px}.species-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.species-grid article{display:grid;grid-template-columns:38px 1fr;gap:13px;background:#f7f8f4;border:1px solid var(--line);border-radius:16px;padding:17px}.species-grid article>span{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#071f31;color:var(--lime);font-size:10px;font-weight:900}.species-grid small{color:#176072;font-weight:900;font-size:9px;letter-spacing:1px;text-transform:uppercase}.species-grid h4{font-family:Manrope;margin:5px 0 8px;font-size:18px;line-height:1.1}.species-grid p{font-size:11px;line-height:1.45;color:var(--muted);margin:6px 0 0}.species-grid b{color:var(--ink)}.tide-card{margin-top:20px;background:#071f2f;color:white;border-radius:22px;padding:30px;overflow:hidden;position:relative}.tide-card:after{content:'';position:absolute;width:300px;height:300px;border:1px solid #315364;border-radius:50%;right:-160px;top:-190px;pointer-events:none}.tide-head{display:flex;justify-content:space-between;align-items:start;gap:24px}.tide-head h3{font-size:26px;margin:2px 0 8px}.tide-head p:last-child{color:#9db4bd;font-size:12px;margin:0}.model-pill{white-space:nowrap;border:1px solid #456676;border-radius:99px;padding:8px 11px;color:#acd2dd;font-size:9px;font-weight:800;letter-spacing:.6px}.tide-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:24px 0 16px}.tide-summary>div{background:#0d2c3d;border:1px solid #284a5b;border-radius:15px;padding:15px}.tide-summary small{display:block;color:#8caab6;font-size:9px;letter-spacing:1.2px;font-weight:800}.tide-summary strong{display:block;font-size:21px;margin:5px 0;font-variant-numeric:tabular-nums}.tide-summary span{font-size:10px;color:#a9bdc5}.tide-scroll{overflow-x:auto;padding:12px 0 8px;scrollbar-color:#426172 transparent}.tide-chart{min-width:1050px;height:180px;display:grid;grid-template-columns:repeat(24,minmax(44px,1fr));align-items:end;border-bottom:1px solid #3a5867}.tide-hour{height:100%;border:0;background:transparent;color:white;display:flex;flex-direction:column;align-items:center;justify-content:end;gap:6px;padding:0;cursor:pointer}.tide-hour b{font-size:9px;color:#c7dce3;font-variant-numeric:tabular-nums}.tide-bar{width:20px;min-height:18px;border-radius:6px 6px 2px 2px;background:#4cb6c8}.tide-hour.falling .tide-bar{background:#7894b6}.tide-hour.turning .tide-bar{background:#cbf06f;box-shadow:0 0 0 2px #cbf06f33}.tide-hour.now .tide-bar{outline:2px solid white;outline-offset:2px}.tide-hour small{font-size:8px;color:#89a8b4;white-space:nowrap}.tide-legend{display:flex;gap:18px;margin-top:12px;color:#91aab4;font-size:10px}.tide-legend i{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:5px}.tide-legend .rising{background:#4cb6c8}.tide-legend .falling{background:#7894b6}.tide-legend .turning{background:#cbf06f}.tide-card.freshwater .tide-scroll,.tide-card.freshwater .tide-legend{display:none}.tide-card.freshwater .tide-summary{grid-template-columns:1fr}.tide-card.freshwater .tide-summary>div:last-child{display:none}
.rules-section{padding:90px 5vw;background:#e7e9e2}.rules-heading{display:grid;grid-template-columns:1.2fr .8fr;gap:8vw;align-items:end;margin-bottom:42px}.rules-heading h2{font-size:clamp(38px,5vw,64px);line-height:1.03;letter-spacing:-3px}.rules-heading>p{color:var(--muted);line-height:1.65}.rule-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.rule-card{background:#f8f8f4;border:1px solid var(--line);border-radius:20px;padding:27px;min-height:300px;display:flex;flex-direction:column}.rule-mark{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;font:700 20px Manrope;margin-bottom:30px}.rule-card.alert .rule-mark{background:#ffe1da;color:#ae3e29}.rule-card.caution .rule-mark{background:#fff0ba;color:#7d6214}.rule-card.good .rule-mark{background:#dff4d2;color:#3c7130}.rule-card small{letter-spacing:1.2px;color:#84908b;font-weight:700}.rule-card h3{font-size:21px;line-height:1.2;margin:9px 0}.rule-card p{font-size:13px;color:var(--muted);line-height:1.55}.rule-card a{margin-top:auto;color:var(--ink);font-size:12px;font-weight:700;text-decoration:none;border-top:1px solid var(--line);padding-top:16px}.rules-note{margin-top:18px;background:var(--ink);color:#c4d1cc;border-radius:16px;padding:18px 22px;display:flex;gap:14px;align-items:center;font-size:12px}.rules-note>span{width:25px;height:25px;border:1px solid #577068;border-radius:50%;display:grid;place-items:center;color:var(--lime);flex:0 0 auto}.rules-note p{margin:0;line-height:1.5}.rules-note strong{color:white}
.rules-section{background:#e8ece9}.access-map-card{background:#071f31;border-radius:24px;overflow:hidden;margin-bottom:22px;color:white}.map-toolbar{padding:24px 28px;display:flex;justify-content:space-between;align-items:end;gap:20px;border-bottom:1px solid #234254}.map-toolbar small{color:var(--lime);letter-spacing:1.5px;font-weight:800}.map-toolbar h3{font-size:25px;margin-top:4px}.map-legend{display:flex;gap:18px;color:#aac0c8;font-size:10px}.map-dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:5px}.map-dot.access{background:var(--lime)}.map-dot.restricted{background:var(--orange)}.sg-map{height:410px;position:relative;overflow:hidden}.sg-map svg{position:absolute;inset:0;width:100%;height:100%}.island-main,.island-small{fill:#17455b;stroke:#69d2e7;stroke-opacity:.45;stroke-width:2}.map-pin{position:absolute;color:white;text-decoration:none;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;z-index:2}.map-pin b{width:27px;height:27px;border-radius:50%;display:grid;place-items:center;border:3px solid #071f31;box-shadow:0 4px 14px #0008;font-size:11px;transition:.2s}.map-pin.access b{background:var(--lime);color:var(--ink)}.map-pin.restricted b{background:var(--orange);color:white}.map-pin span{background:#061a2bdd;border:1px solid #315166;border-radius:6px;padding:4px 7px;margin-top:4px;font-size:9px;white-space:nowrap}.map-pin:hover b{transform:scale(1.18)}.map-note{padding:13px 28px;background:#061824;display:flex;justify-content:space-between;gap:15px;color:#8fa9b2;font-size:10px}.map-note a{color:var(--lime);text-decoration:none;font-weight:700}
@media(max-width:1100px){.rule-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:900px){.moon-panel{grid-template-columns:150px 1fr}.phase-list{grid-column:1/-1}.rules-heading{grid-template-columns:1fr;gap:15px}.section-heading h2{font-size:clamp(32px,6vw,48px)}}
@media(max-width:900px){.dashboard-moon{grid-template-columns:104px 1fr}.dashboard-moon .phase-list{grid-column:1/-1}}
@media(max-width:800px){.release-safety{grid-template-columns:1fr}.hourly-head{display:block}.hourly-intro{margin-top:10px}}
@media(max-width:800px){.hour-detail{grid-template-columns:repeat(3,1fr)}.detail-lead{grid-column:1/-1}.detail-stat{border-left:0;border-top:1px solid #294858;padding:10px 0 0}.day-parts{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){body{padding-bottom:72px}.compact-section{content-visibility:visible;contain-intrinsic-size:auto}.topbar{padding:0 18px;position:sticky;top:0;z-index:30}.topbar .brand{min-height:44px}.topbar .saved-btn span,.topbar nav>a{display:none}.topbar nav{gap:7px}.sg-clock{min-height:38px;padding:0 9px}.install-btn{min-height:40px}.saved-btn{min-height:44px;min-width:44px}.hero{padding:42px 18px 44px}.hero .signal-tags,.expansion-note{display:none}.location-card{padding:16px;margin-top:22px}.country-select select,.location-row select{font-size:16px;min-height:44px}.location-row select{width:calc(100% - 42px)}.location-row button{min-height:48px}.water-toggle button{min-height:44px;padding:9px 14px}.forecast-shell{padding:38px 18px}.playbook{padding:42px 18px}.section-heading{display:block;margin-bottom:22px}.section-heading h2{font-size:clamp(29px,10vw,38px);letter-spacing:-1.5px}.section-heading .share-btn{margin-top:14px;min-height:44px;min-width:150px;font-size:12px}.score-copy h3{font-size:25px}.window-card h3{font-size:25px}.conditions-card{padding:0 18px}footer{padding:34px 18px}.moon-panel{grid-template-columns:1fr;padding:25px}.moon-visual{margin:auto}.phase-list{grid-template-columns:repeat(2,1fr)}.rules-section{padding:42px 18px}.rules-heading h2{font-size:34px;letter-spacing:-2px}.rule-grid{grid-template-columns:1fr}.rule-card{min-height:260px}.rule-card a{min-height:44px;display:flex;align-items:center}.fish-school-light{top:20px;right:-15px}.hourly-card,.tide-card{padding:22px 16px}.hourly-intro{max-width:none}.hourly-intro button{min-height:44px;padding:10px 14px}.hourly-scroll,.tide-scroll,.days{scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch}.hour,.tide-hour{scroll-snap-align:center}.day{scroll-snap-align:start}.tide-head{display:block}.model-pill{display:inline-block;margin-top:14px}.tide-summary{grid-template-columns:1fr 1fr}.tide-summary strong{font-size:18px}.tide-legend{gap:10px;flex-wrap:wrap}.mobile-section-toggle{display:inline-flex;align-items:center;justify-content:center;min-height:44px;margin-top:14px;border:1px solid currentColor;background:transparent;color:inherit;border-radius:99px;padding:10px 14px;font-size:11px;font-weight:800}.week-card.mobile-collapsed{display:block;padding:22px}.week-card.mobile-collapsed .days{display:none}.moon-panel.mobile-collapsed{display:block}.moon-panel.mobile-collapsed .moon-visual,.moon-panel.mobile-collapsed .phase-list,.moon-panel.mobile-collapsed .moon-copy h4,.moon-panel.mobile-collapsed .moon-copy>p:last-of-type{display:none}.playbook.mobile-collapsed{display:block}.playbook.mobile-collapsed .tips,.playbook.mobile-collapsed .fish-school{display:none}.playbook.mobile-collapsed .playbook-title>p:last-of-type{max-width:100%;margin-bottom:0}.rules-section.mobile-collapsed .rule-grid,.rules-section.mobile-collapsed .rules-note,.rules-section.mobile-collapsed .rules-heading>p{display:none}.release-safety{padding:45px 18px}.safety-banner{grid-template-columns:36px 1fr}.safety-banner a{grid-column:1/-1;min-height:44px;display:flex;align-items:center}.checklist-tip ul{grid-template-columns:1fr}.saved-panel{padding:24px 20px}.saved-head button,.save-current,.open-spot,.remove-spot{min-height:44px}.mobile-dock{position:fixed;display:grid;grid-template-columns:repeat(5,1fr);left:10px;right:10px;bottom:max(8px,env(safe-area-inset-bottom));height:60px;background:#061a2bf2;border:1px solid #294b5c;border-radius:17px;z-index:40;box-shadow:0 10px 35px #0007;backdrop-filter:blur(12px);overflow:hidden}.mobile-dock a,.mobile-dock button{color:#c5d8de;text-decoration:none;border:0;background:transparent;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:17px;min-height:48px;padding:0}.mobile-dock span{font-size:8px;letter-spacing:.2px}.mobile-dock a.active,.mobile-dock button.active{color:var(--lime);background:#123448}.more-shade{display:block;position:fixed;inset:0;background:#07191699;opacity:0;pointer-events:none;transition:.2s;z-index:41}.more-shade.open{opacity:1;pointer-events:auto}.more-panel{display:block;position:fixed;left:10px;right:10px;bottom:76px;background:#f5f6f1;border:1px solid #d7dcd5;border-radius:22px;padding:22px;z-index:42;transform:translateY(calc(100% + 100px));transition:.25s ease;box-shadow:0 20px 60px #0006}.more-panel.open{transform:none}.more-head{display:flex;justify-content:space-between;align-items:start}.more-head small{font-size:9px;letter-spacing:1.2px;color:var(--muted);font-weight:800}.more-head h2{font-size:28px}.more-head button{width:44px;height:44px;border:1px solid var(--line);border-radius:50%;background:white;font-size:21px}.more-links{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:18px}.more-links a{display:flex;flex-direction:column;padding:14px;background:white;border:1px solid var(--line);border-radius:13px;color:var(--ink);text-decoration:none;min-height:74px}.more-links span{font-size:13px;font-weight:800}.more-links b{font-size:9px;color:var(--muted);margin-top:4px}.access-map-card{overflow-x:auto}.map-toolbar,.sg-map,.map-note{min-width:700px}.map-toolbar{align-items:start}.map-note{box-sizing:border-box}}
@media(max-width:900px){.decision-card{grid-template-columns:1fr}.species-grid{grid-template-columns:1fr}.day-parts{grid-template-columns:repeat(3,1fr)}}
@media(max-width:600px){.decision-card{padding:21px 16px;border-radius:20px}.decision-main h3{font-size:32px}.decision-actions{grid-template-columns:1fr 1fr}.decision-actions>div:first-child{grid-column:1/-1}.day-parts{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.day-part{min-height:145px;padding:13px}.species-card{padding:22px 16px;border-radius:20px}.species-head{display:block}.species-head>span{display:inline-block;margin-top:12px}.species-grid article{padding:15px;grid-template-columns:34px 1fr}.species-grid h4{font-size:17px}}

@media(max-width:600px){
  .hero{padding:28px 16px 30px}
  h1{font-size:clamp(38px,13vw,48px);line-height:.92;margin:16px 0 10px;letter-spacing:-2.8px}
  .subhead{font-size:14px;line-height:1.45}
  .location-card{margin-top:16px;padding:14px;border-radius:18px}
  .country-select,.location-row,.water-toggle{margin-top:12px}
  .forecast-shell{padding:24px 14px}
  .section-heading{margin-bottom:16px}
  .section-heading h2{font-size:clamp(27px,8.5vw,34px);line-height:1}
  .section-heading p{font-size:12px;line-height:1.45}
  .section-actions{gap:6px;flex-wrap:wrap}
  .section-heading .share-btn,.refresh-btn{min-height:40px;padding:9px 12px}
  .decision-card{padding:16px 14px;margin-bottom:12px;border-radius:18px;gap:12px}
  .decision-main h3{font-size:29px;margin:6px 0 8px;letter-spacing:-1.3px}
  .decision-main p{font-size:12px;line-height:1.45}
  .decision-actions{gap:8px}
  .decision-actions>div{padding:12px;border-radius:14px}
  .decision-actions strong{font-size:14px;margin-top:4px}
  .glance-card{padding:18px 14px;margin-bottom:14px;border-radius:18px}
  .glance-title h3{font-size:20px}
  .glance-grid{gap:8px;margin-top:14px}
  .glance-grid>div{padding:12px;border-radius:12px}
  .glance-primary strong{font-size:27px}
  .dashboard-grid{gap:14px}
  .score-card{padding:18px;border-radius:18px}
  .score-ring{width:138px;height:138px}
  .score-ring strong{font-size:48px}
  .score-copy{margin-top:14px}
  .score-copy h3{font-size:23px}
  .score-copy p{font-size:12px;line-height:1.45}
  .window-card{padding:18px;border-radius:18px}
  .window-card h3{font-size:22px;margin-top:16px}
  .window-card p{font-size:12px;line-height:1.45}
  .timeline{margin-top:16px}
  .conditions-card{padding:0 14px;border-radius:18px}
  .conditions-card .condition{padding:13px 0}
  .conditions-card strong{font-size:17px}
  .hourly-card,.tide-card,.species-card,.trip-planner,.week-card,.moon-panel{margin-top:14px}
  .hourly-card,.tide-card{padding:18px 14px;border-radius:18px}
  .hourly-head,.tide-head{gap:12px}
  .hourly-head h3,.tide-head h3,.species-head h3{font-size:23px}
  .hourly-head>p,.tide-head p:last-child,.species-head p:last-child{font-size:12px;line-height:1.45}
  .hourly-scroll{padding:16px 0 6px}
  .tide-summary{gap:9px;margin:16px 0 10px}
  .tide-summary>div{padding:12px}
  .tide-summary strong{font-size:17px}
  .day-parts{margin-top:14px;gap:8px}
  .day-part{min-height:124px;padding:11px;border-radius:14px}
  .day-part strong{font-size:15px}
  .hour-detail{margin-top:12px;padding:13px;border-radius:14px}
  .species-card{padding:18px 14px}
  .species-head{margin-bottom:14px}
  .species-grid{gap:9px}
  .species-grid article{padding:13px;border-radius:14px}
  .species-grid h4{font-size:16px;margin:4px 0 6px}
  .species-grid p{font-size:11px;line-height:1.4}
  .trip-planner{padding:18px 14px;border-radius:18px;gap:14px}
  .trip-copy h3{font-size:22px}
  .trip-summary{padding:14px;border-radius:14px}
  .week-card.mobile-collapsed,.moon-panel{padding:18px 14px;border-radius:18px}
  .playbook{padding:30px 16px}
  .playbook-title h2{font-size:34px;line-height:.96}
  .playbook-title>p:last-of-type{font-size:12px;line-height:1.45}
  .tips article{padding:16px 0}
  .release-safety{padding:30px 16px;gap:14px}
  footer{padding:28px 16px 88px}
  .more-panel{padding:18px;bottom:74px}
  .more-links{gap:8px;margin-top:14px}
  .more-links a{min-height:66px;padding:12px}
}

.app-status{position:fixed;left:50%;bottom:max(82px,calc(env(safe-area-inset-bottom) + 82px));transform:translateX(-50%);z-index:55;background:#071916;color:#d5ff5f;border:1px solid #3e6156;border-radius:999px;padding:10px 14px;font-size:11px;font-weight:800;box-shadow:0 12px 35px #0005;max-width:calc(100vw - 28px);text-align:center}
.app-status[hidden]{display:none}
@media(min-width:601px){.app-status{bottom:18px}}
.score-breakdown{grid-column:1/-1;display:flex;gap:8px;flex-wrap:wrap;margin-top:2px}
.score-breakdown span{display:inline-flex;align-items:center;min-height:38px;background:#f6f8f4;border:1px solid var(--line);border-radius:999px;padding:9px 13px;color:#5f6d68;font-size:11px;line-height:1.25}
.score-breakdown b{color:var(--ink)}
.dashboard-grid{align-items:start}.score-card{grid-row:auto!important}.outlook-help{grid-column:1/-1;border-top:1px solid var(--line);padding-top:16px;color:#66736e;font-size:12px;line-height:1.5}.conditions-card .condition>b{font-size:11px;opacity:.72}.window-card>p{max-width:760px}
.updated-line{display:inline-flex!important;align-items:center;gap:6px;margin:10px 0 0!important;padding:7px 10px;border-radius:999px;background:#eef6f0;color:#38584f!important;font-size:11px!important;font-weight:800;line-height:1.2!important}
.species-grid article{align-content:start;min-height:214px}.species-grid small{display:block;min-height:25px;font-size:10px!important;line-height:1.25!important}.species-grid h4{font-family:system-ui,-apple-system,"Segoe UI",sans-serif!important;font-size:18px!important;line-height:1.18!important;letter-spacing:-.2px;min-height:43px;margin:6px 0 9px!important}.species-grid p{font-size:12px!important;line-height:1.48!important;margin:7px 0 0!important}.species-grid b{font-weight:800}.species-grid article>span{font-size:10px!important;line-height:1}
.timeline div{overflow:visible}.timeline i{left:0;width:0;transition:left .25s ease,width .25s ease}.timeline b{left:0;transition:left .25s ease}
@media(max-width:600px){.forecast-shell{display:flex;flex-direction:column}.section-heading{order:0}.glance-card{order:1}.dashboard-grid{order:2;display:flex;flex-direction:column}.decision-card{order:3}.safety-banner{order:4}.score-card{order:-2}.window-card{order:-1}.score-breakdown{gap:7px;justify-content:center}.score-breakdown span{width:100%;justify-content:center;text-align:center}.outlook-help{text-align:center;padding-top:12px}.updated-line{margin-top:8px!important}.species-grid article{min-height:auto;gap:12px}.species-grid small{min-height:auto}.species-grid h4{font-size:18px!important;min-height:auto}.species-grid p{font-size:12px!important}}
.release-safety a,footer a{color:inherit}.release-safety a{font-weight:800;text-decoration-color:#d5ff5f66}footer small{display:inline-block;margin-top:6px;color:#8da29b}.trust-page{min-height:100vh;background:var(--paper);color:var(--ink)}.trust-hero{background:var(--ink);color:white;padding:64px 5vw 54px}.trust-hero .brand{margin-bottom:42px}.trust-hero h1{font-size:clamp(42px,6vw,78px);max-width:900px}.trust-hero p{max-width:720px;color:#b8cbc4;line-height:1.65}.trust-shell{padding:42px 5vw 70px;display:grid;grid-template-columns:minmax(0,760px) 280px;gap:28px;align-items:start}.trust-card{background:white;border:1px solid var(--line);border-radius:22px;padding:30px}.trust-card h2{font-size:28px;margin:26px 0 10px}.trust-card h2:first-child{margin-top:0}.trust-card p,.trust-card li{color:#5f6d68;line-height:1.65}.trust-card ul{padding-left:20px}.trust-side{background:#071f2f;color:white;border-radius:22px;padding:24px;position:sticky;top:24px}.trust-side a{display:block;color:#d5ff5f;text-decoration:none;font-weight:800;margin-top:14px}.trust-updated{font-size:11px;text-transform:uppercase;letter-spacing:1.2px;color:#7d8b86;font-weight:900}.trust-footer{grid-template-columns:1fr auto auto}.trust-footer nav{display:flex;gap:14px;flex-wrap:wrap}

/* One useful live summary replaces the repeated glance dashboard. */
.next-change{display:grid;grid-template-columns:1fr 1.35fr auto;gap:12px;align-items:center;background:#082334;color:white;border-radius:18px;padding:16px 18px;margin-bottom:18px}.next-change>div{min-width:0}.next-change small{display:block;color:#79a4b2;font-size:8px;letter-spacing:1.1px;font-weight:900;margin-bottom:5px}.next-change strong{display:block;font-size:13px;line-height:1.35}.next-change>span{white-space:nowrap;background:#12384a;color:#bcd2d9;border-radius:99px;padding:9px 12px;font-size:10px;font-weight:800}.condition>b{min-width:66px;text-align:right;font-size:9px;text-transform:uppercase;letter-spacing:.5px}.release-safety{display:block!important;padding:32px 5vw!important}.release-safety article{max-width:900px;padding-top:18px!important}
@media(max-width:700px){.next-change{grid-template-columns:1fr;padding:14px}.next-change>span{justify-self:start}.condition>b{min-width:58px}}

/* Lightweight motion for live updates. */
@property --score{syntax:'<number>';inherits:false;initial-value:0}
.score-ring{--score:0;background:conic-gradient(var(--lime) 0 calc(var(--score)*1%),#e9ece7 calc(var(--score)*1%));transition:--score .8s cubic-bezier(.2,.8,.2,1),box-shadow .25s ease}
.hour-bar,.tide-bar{transform-origin:bottom;animation:bar-rise .5s cubic-bezier(.2,.8,.2,1) both}
.hour:nth-child(3n+2) .hour-bar,.tide-hour:nth-child(3n+2) .tide-bar{animation-delay:.04s}.hour:nth-child(3n) .hour-bar,.tide-hour:nth-child(3n) .tide-bar{animation-delay:.08s}
.hour.now .hour-bar{animation:bar-rise .5s ease both,current-pulse 2s ease-in-out .6s infinite}
.next-change.cue-updated>div,.next-change.cue-updated>span{animation:cue-in .38s ease both}.next-change.cue-updated>div:nth-child(2){animation-delay:.05s}.next-change.cue-updated>span{animation-delay:.1s}
.forecast-shell{transition:opacity .18s ease,transform .18s ease}.forecast-shell.forecast-updating{opacity:.76;transform:translateY(2px)}
.lure-float{animation:lure-drift 4.5s ease-in-out infinite}.water-line{animation:water-breathe 5s ease-in-out infinite}.line-two{animation-delay:-1.4s}.line-three{animation-delay:-2.7s}
.save-current:active,.refresh-btn:active,.location-row button:active,.water-toggle button:active{transform:scale(.97)}
@keyframes bar-rise{from{transform:scaleY(.12);opacity:.45}to{transform:scaleY(1);opacity:1}}
@keyframes current-pulse{0%,100%{filter:brightness(1);box-shadow:0 0 0 0 #69d2e700}50%{filter:brightness(1.08);box-shadow:0 0 0 5px #69d2e728}}
@keyframes cue-in{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
@keyframes lure-drift{0%,100%{transform:translateY(0) rotate(8deg)}50%{transform:translateY(7px) rotate(4deg)}}
@keyframes water-breathe{0%,100%{opacity:.55;transform:scaleX(.98)}50%{opacity:.9;transform:scaleX(1)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.score-ring,.forecast-shell{transition:none}.hour-bar,.tide-bar,.hour.now .hour-bar,.next-change.cue-updated>div,.next-change.cue-updated>span,.lure-float,.water-line{animation:none!important}.save-current:active,.refresh-btn:active,.location-row button:active,.water-toggle button:active{transform:none}}

/* BiteLah mascot appears only when the interface needs a little personality. */
.mascot-cue{display:none;align-items:center;gap:10px;width:max-content;max-width:min(100%,390px);margin:-8px 0 18px auto;padding:7px 15px 7px 7px;background:#e8f5f2;border:1px solid #c9ded9;border-radius:18px;color:var(--ink);box-shadow:0 10px 24px #07191612}.forecast-shell.forecast-updating .mascot-cue,.forecast-shell.forecast-offline .mascot-cue{display:flex}.mascot-cue img{width:88px;height:54px;object-fit:contain;animation:mascot-bob 2.8s ease-in-out infinite}.mascot-cue strong,.mascot-cue span{display:block}.mascot-cue strong{font-size:13px}.mascot-cue span{margin-top:2px;color:#5f7778;font-size:10px}.forecast-shell.forecast-offline .mascot-cue{background:#fff2d8;border-color:#e4cf9d}.saved-empty{display:grid;justify-items:center;gap:5px}.saved-empty img{display:block;width:120px;height:74px;object-fit:contain;margin:-18px auto 0}.saved-empty strong{color:var(--ink);font-size:14px}.saved-empty span{max-width:245px;line-height:1.45}.lost-fish-card{text-align:center}.lost-fish-card img{display:block;width:min(280px,80%);height:auto;margin:0 auto 8px}.lost-fish-card h2{margin-top:4px}.lost-fish-card .lost-action{display:inline-flex;margin-top:14px;padding:12px 17px;border-radius:999px;background:var(--ink);color:white;text-decoration:none;font-size:12px;font-weight:800}@keyframes mascot-bob{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-4px) rotate(1deg)}}html.theme-night .mascot-cue{background:#102f39;border-color:#31545f;color:#e7f3f5}html.theme-night .mascot-cue span{color:#a9c0c6}html.theme-night .saved-empty strong{color:#e7f3f5}@media(max-width:600px){.mascot-cue{width:auto;margin:-2px 0 14px;padding:6px 12px 6px 4px}.mascot-cue img{width:74px;height:48px}.mascot-cue span{line-height:1.35}}
@media(prefers-reduced-motion:reduce){.mascot-cue img{animation:none!important}}
.source-credit{margin-top:7px!important;color:#7a8d8f!important;font-size:9px!important;line-height:1.45!important}.source-credit a{color:#416d76;text-decoration-color:#69d2e777;text-underline-offset:2px}.simple-footer{grid-template-columns:1fr auto auto}.simple-footer nav{justify-self:end}html.theme-night .source-credit{color:#8faab0!important}html.theme-night .source-credit a{color:#8edfe8}@media(max-width:600px){.source-credit{max-width:330px;font-size:8px!important}.simple-footer{grid-template-columns:1fr auto}.simple-footer nav{grid-column:1/-1;justify-self:start}}

/* Distinct, readable lunar phase illustrations. */
.phase-disc,.mini-moon{--moon-shade:28px;background:var(--ink);box-shadow:0 10px 35px #07191622}
.dashboard-moon .phase-disc{--moon-shade:18px}.mini-moon{--moon-shade:8px;box-shadow:none}
.moon-phase-0{background:var(--ink);box-shadow:inset 0 0 0 1px #45616b,0 10px 35px #07191622}
.mini-moon.moon-phase-0{box-shadow:inset 0 0 0 1px #45616b}
.moon-phase-1{background:var(--ink);box-shadow:inset calc(var(--moon-shade)*-1) 0 0 var(--lime),0 10px 35px #07191622}
.moon-phase-2{background:linear-gradient(90deg,var(--ink) 0 50%,var(--lime) 50% 100%);box-shadow:0 10px 35px #07191622}
.moon-phase-3{background:var(--lime);box-shadow:inset var(--moon-shade) 0 0 var(--ink),0 10px 35px #07191622}
.moon-phase-4{background:var(--lime);box-shadow:0 10px 35px #69d2e733}
.moon-phase-5{background:var(--lime);box-shadow:inset calc(var(--moon-shade)*-1) 0 0 var(--ink),0 10px 35px #07191622}
.moon-phase-6{background:linear-gradient(90deg,var(--lime) 0 50%,var(--ink) 50% 100%);box-shadow:0 10px 35px #07191622}
.moon-phase-7{background:var(--ink);box-shadow:inset var(--moon-shade) 0 0 var(--lime),0 10px 35px #07191622}
.mini-moon.moon-phase-1{box-shadow:inset calc(var(--moon-shade)*-1) 0 0 var(--lime)}
.mini-moon.moon-phase-2,.mini-moon.moon-phase-4,.mini-moon.moon-phase-6{box-shadow:none}
.mini-moon.moon-phase-3{box-shadow:inset var(--moon-shade) 0 0 var(--ink)}
.mini-moon.moon-phase-5{box-shadow:inset calc(var(--moon-shade)*-1) 0 0 var(--ink)}
.mini-moon.moon-phase-7{box-shadow:inset var(--moon-shade) 0 0 var(--lime)}

/* Keep illumination labels intact at every moon-card size. */
.moon-visual>span,.dashboard-moon .moon-visual>span{left:50%;right:auto;bottom:-8px;transform:translateX(-50%);white-space:nowrap;min-width:max-content;text-align:center;line-height:1;padding:6px 9px}

/* Ambient motion: one-time reveals and quiet live feedback. */
.reveal-ready{opacity:0;transform:translateY(16px);transition:opacity .55s ease,transform .55s cubic-bezier(.2,.8,.2,1)}.reveal-ready.revealed{opacity:1;transform:none}
.moon-orbit{animation:orbit-turn 28s linear infinite}.moon-orbit:after{content:'';position:absolute;width:6px;height:6px;border-radius:50%;background:var(--lime);left:50%;top:-3px;box-shadow:0 0 10px #69d2e799}
.phase-disc{animation:moon-breathe 5s ease-in-out infinite}
.data-status:before{content:'';display:inline-block;width:6px;height:6px;border-radius:50%;background:#4fc7d9;margin-right:7px;vertical-align:1px;animation:status-breathe 2.4s ease-in-out infinite}
.count-pop{animation:count-pop .35s cubic-bezier(.2,.9,.3,1.3)}
@media(hover:hover) and (pointer:fine){.score-card,.window-card,.conditions-card,.moon-panel,.hourly-card,.tide-card,.week-card{transition:opacity .55s ease,transform .22s ease,box-shadow .22s ease,border-color .22s ease}.score-card:hover,.window-card:hover,.conditions-card:hover,.moon-panel:hover,.hourly-card:hover,.tide-card:hover,.week-card:hover{transform:translateY(-3px);box-shadow:0 13px 32px #07191612;border-color:#b8ccca}.phase-item{transition:transform .2s ease,background .2s ease}.phase-item:hover{transform:translateY(-2px);background:#eef6f5}}
@keyframes orbit-turn{to{transform:rotate(360deg)}}
@keyframes moon-breathe{0%,100%{filter:brightness(1);transform:scale(1)}50%{filter:brightness(1.05);transform:scale(1.018)}}
@keyframes status-breathe{0%,100%{opacity:.55;box-shadow:0 0 0 0 #4fc7d900}50%{opacity:1;box-shadow:0 0 0 4px #4fc7d922}}
@keyframes count-pop{0%{transform:scale(.7)}65%{transform:scale(1.25)}100%{transform:scale(1)}}
@media(prefers-reduced-motion:reduce){.reveal-ready{opacity:1;transform:none;transition:none}.moon-orbit,.phase-disc,.data-status:before,.count-pop{animation:none!important}}

/* User-controlled accessibility preferences. */
.skip-link{position:fixed;left:12px;top:10px;z-index:100;transform:translateY(-80px);background:#fff;color:#061a2b;border:2px solid #061a2b;border-radius:10px;padding:11px 14px;font-weight:900;text-decoration:none}.skip-link:focus{transform:none}
:focus-visible{outline:3px solid #ff735c;outline-offset:3px}
.accessibility-controls{margin-top:20px;border-top:1px solid var(--line);padding-top:16px}.accessibility-controls h3{font-size:14px;margin:0 0 10px}.accessibility-controls>div{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.accessibility-controls button{display:flex;justify-content:space-between;align-items:center;gap:8px;min-height:44px;border:1px solid var(--line);border-radius:12px;background:white;color:var(--ink);padding:10px 12px;cursor:pointer}.accessibility-controls button span{font-size:11px;font-weight:800}.accessibility-controls button b{font-size:9px;color:var(--muted)}.accessibility-controls button[aria-pressed=true]{background:#d9f4f7;border-color:#4faec0}.accessibility-controls button[aria-pressed=true] b{color:#175567}
.a11y-open{width:38px;height:38px;border:1px solid #46605a;border-radius:50%;background:transparent;color:#d6e6e3;font-weight:900;cursor:pointer}
@media(min-width:601px){.more-shade.open{display:block;position:fixed;inset:0;background:#07191699;z-index:41}.more-panel.open{display:block;position:fixed;width:min(520px,calc(100vw - 32px));right:18px;top:76px;background:#f5f6f1;border:1px solid #d7dcd5;border-radius:22px;padding:22px;z-index:42;box-shadow:0 20px 60px #0006}.more-panel.open .more-head{display:flex;justify-content:space-between}.more-panel.open .more-head button{width:42px;height:42px;border:1px solid var(--line);border-radius:50%;background:white}.more-panel.open .more-links{display:none}}
html.a11y-large main p,html.a11y-large footer,html.a11y-large .condition strong,html.a11y-large .condition p,html.a11y-large .phase-item b,html.a11y-large .phase-item small,html.a11y-large .next-change strong{font-size:15px!important;line-height:1.55}html.a11y-large button,html.a11y-large select{font-size:15px}
html.a11y-contrast{--paper:#fff;--muted:#3e4c51;--line:#849398;--mint:#8be7f1}html.a11y-contrast body{background:#fff}html.a11y-contrast .dashboard-grid article,html.a11y-contrast .week-card,html.a11y-contrast .hourly-card{border-width:2px}html.a11y-contrast .muted,html.a11y-contrast small{color:#43565c}
html.a11y-reduce-motion *{animation:none!important;transition:none!important;scroll-behavior:auto!important}
@media(max-width:600px){.a11y-open{display:none}.accessibility-controls>div{grid-template-columns:1fr}.accessibility-controls button span{font-size:13px}.moon-visual>span,.dashboard-moon .moon-visual>span{bottom:-10px;font-size:9px}}

/* Tide-linked water surface: illustrative movement, not wave-height data. */
.tide-water-motion{--tide-level:50%;position:relative;height:74px;margin:20px 0 4px;border:1px solid #294d5d;border-radius:16px;overflow:hidden;background:linear-gradient(180deg,#0c2d3d 0%,#071d2c 70%);box-shadow:inset 0 1px 18px #020e1788}.tide-water-motion:before{content:'';position:absolute;inset:0;background:linear-gradient(115deg,transparent 12%,#8ce8f211 35%,transparent 58%);animation:water-light 9s ease-in-out infinite;pointer-events:none}.tide-water-fill{position:absolute;left:0;right:0;bottom:0;height:var(--tide-level);min-height:18px;background:linear-gradient(180deg,#55c9dcaa 0%,#268da7aa 38%,#15546fbb 100%);transition:height .8s cubic-bezier(.2,.8,.2,1);box-shadow:0 -5px 18px #69d2e72b}.tide-water-fill:after{content:'';position:absolute;inset:8px -25% 0;background:repeating-linear-gradient(115deg,transparent 0 24px,#a6edf311 25px 28px,transparent 29px 54px);animation:underwater-drift 12s linear infinite;pointer-events:none}.tide-water-fill i{position:absolute;left:-25%;top:-10px;width:150%;height:22px;background:radial-gradient(ellipse 30px 11px at 30px 12px,#75dcea 0 46%,transparent 49%) 0 0/60px 22px repeat-x;filter:drop-shadow(0 -1px 2px #a8f5ff44);opacity:.88;animation:tide-surface 7s linear infinite}.tide-water-fill i+ i{top:-5px;left:-30%;width:160%;background-size:82px 20px;opacity:.3;filter:none;animation-duration:12s;animation-direction:reverse}.tide-water-motion>span{position:absolute;right:12px;top:10px;width:30px;height:30px;display:grid;place-items:center;border:1px solid #75bdcaaa;border-radius:50%;background:#08293ae6;color:#a8f2fa;font-size:17px;font-weight:900;z-index:2;box-shadow:0 4px 14px #00101988}.tide-rising .tide-water-fill{animation:tide-rise 3.8s ease-in-out infinite}.tide-rising .tide-water-motion>span{animation:direction-rise 2.4s ease-in-out infinite}.tide-falling .tide-water-fill{animation:tide-fall 3.8s ease-in-out infinite}.tide-falling .tide-water-fill i{animation-direction:reverse}.tide-falling .tide-water-fill i+ i{animation-direction:normal}.tide-falling .tide-water-motion>span{animation:direction-fall 2.4s ease-in-out infinite}.tide-turning .tide-water-fill{animation:tide-turn 4.8s ease-in-out infinite}.tide-turning .tide-water-fill i{animation-duration:14s}.tide-turning .tide-water-motion>span{animation:turning-breathe 3s ease-in-out infinite}.tide-unavailable .tide-water-motion{opacity:.35}.tide-card.freshwater .tide-water-motion{display:none}
@keyframes tide-surface{to{transform:translateX(60px)}}@keyframes underwater-drift{to{transform:translateX(54px)}}@keyframes water-light{0%,100%{transform:translateX(-18%);opacity:.35}50%{transform:translateX(18%);opacity:.8}}@keyframes tide-rise{0%,100%{transform:translateY(2px)}50%{transform:translateY(-4px)}}@keyframes tide-fall{0%,100%{transform:translateY(-2px)}50%{transform:translateY(4px)}}@keyframes tide-turn{0%,100%{opacity:.88;transform:translateY(0)}50%{opacity:1;transform:translateY(-1px)}}@keyframes direction-rise{0%,100%{transform:translateY(2px)}50%{transform:translateY(-3px)}}@keyframes direction-fall{0%,100%{transform:translateY(-2px)}50%{transform:translateY(3px)}}@keyframes turning-breathe{0%,100%{box-shadow:0 4px 14px #00101988}50%{box-shadow:0 4px 18px #69d2e766}}
@media(prefers-reduced-motion:reduce){.tide-water-motion:before,.tide-water-fill,.tide-water-fill:after,.tide-water-fill i,.tide-water-motion>span{animation:none!important;transition:none!important}}
@media(max-width:600px){.tide-water-motion{height:58px;margin:16px 0 2px}.tide-water-motion>span{width:25px;height:25px;right:9px;top:8px}}

/* Compact trust footer; detailed guidance lives on its dedicated pages. */
.simple-footer{display:grid;grid-template-columns:auto auto 1fr auto;gap:22px;align-items:center;padding:24px 5vw}.simple-footer small{margin:0;color:#8da29b}.simple-footer nav{display:flex;justify-content:center;gap:18px}.simple-footer .data-credit{white-space:nowrap}
@media(max-width:700px){.simple-footer{grid-template-columns:1fr auto;gap:14px;padding:24px 18px}.simple-footer nav{grid-column:1/-1;grid-row:2;justify-content:flex-start;gap:16px}.simple-footer .data-credit{grid-column:1/-1;font-size:10px}.simple-footer small{text-align:right}}

.official-weather{display:inline-block;margin:9px 0 0!important;padding:7px 10px;border-radius:9px;background:#d9f4f7;color:#175567!important;font-size:10px!important;font-weight:800;line-height:1.4}.official-weather[hidden]{display:none}
.more-head button,#closeMore{display:grid!important;place-items:center;color:#061a2b!important;background:#fff!important;font-size:24px!important;font-weight:500;line-height:1;opacity:1}
@media(max-width:600px){.dashboard-grid,.dashboard-main,.dashboard-side,.dashboard-grid>.dashboard-column,.score-card,.window-card,.conditions-card,.dashboard-moon{width:100%!important;max-width:none!important;min-width:0!important}.conditions-card{box-sizing:border-box}.more-panel{max-height:calc(100dvh - 92px);overflow-y:auto}.more-head button,#closeMore{flex:0 0 44px}}

/* Keep mobile card heights in normal document flow; prevents safety-card overlap. */
@media(max-width:600px){.forecast-shell .dashboard-grid{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:14px!important}.forecast-shell .dashboard-column{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:14px!important;align-content:start;width:100%!important}.forecast-shell .dashboard-main,.forecast-shell .dashboard-side{display:grid!important}.forecast-shell .dashboard-grid article,.forecast-shell .dashboard-grid section{position:relative;inset:auto;height:auto!important}.forecast-shell .safety-banner{position:relative;clear:both;margin-top:16px!important;z-index:1}}

/* Mobile section spacing and a lightweight expandable outlook motion. */
@media(max-width:600px){.forecast-shell{row-gap:16px}.forecast-shell>.section-heading,.forecast-shell>.next-change,.forecast-shell>.dashboard-grid,.forecast-shell>.safety-banner,.forecast-shell>.hourly-card,.forecast-shell>.tide-card,.forecast-shell>.week-card{margin-top:0!important;margin-bottom:0!important}.week-card{overflow:hidden}.week-card .mobile-section-toggle{gap:8px}.week-card .mobile-section-toggle:after{content:'↓';display:inline-block;font-size:14px;transition:transform .25s ease}.week-card:not(.mobile-collapsed) .mobile-section-toggle:after{transform:rotate(180deg)}.week-card:not(.mobile-collapsed) .day{animation:outlook-day-in .38s cubic-bezier(.2,.8,.2,1) both}.week-card:not(.mobile-collapsed) .day:nth-child(2){animation-delay:.04s}.week-card:not(.mobile-collapsed) .day:nth-child(3){animation-delay:.08s}.week-card:not(.mobile-collapsed) .day:nth-child(4){animation-delay:.12s}.week-card:not(.mobile-collapsed) .day:nth-child(5){animation-delay:.16s}.week-card:not(.mobile-collapsed) .day:nth-child(6){animation-delay:.2s}.week-card:not(.mobile-collapsed) .day:nth-child(7){animation-delay:.24s}}
@keyframes outlook-day-in{from{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.week-card:not(.mobile-collapsed) .day{animation:none!important}.week-card .mobile-section-toggle:after{transition:none}}
html.a11y-reduce-motion .week-card:not(.mobile-collapsed) .day{animation:none!important}

/* Mobile readability baseline: supporting text stays compact, never microscopic. */
@media(max-width:600px){
  .eyebrow,.safety-banner small,.next-change small,.tide-summary small,.condition small,.more-head small{font-size:10px!important}
  .score-copy p,.window-card>p,.moon-copy>p:last-child,.condition p,.safety-banner p,.hourly-intro p,.week-intro>p:last-child{font-size:12px!important;line-height:1.5!important}
  .condition strong{font-size:14px!important}.condition>b{font-size:10px!important;letter-spacing:.35px}
  .dashboard-moon .phase-item b{font-size:11px!important}.dashboard-moon .phase-item small{font-size:10px!important;line-height:1.35}.dashboard-moon .moon-visual>span{font-size:10px!important;padding:6px 9px}
  .next-change strong{font-size:14px}.next-change>span{font-size:11px}
  .updated-line{font-size:11px!important}.verdict,.live-pill,.model-pill{font-size:10px!important}
  .hour b{font-size:11px}.hour small{font-size:10px}.hourly-legend,.tide-legend{font-size:11px}
  .tide-summary span{font-size:11px}.tide-hour b{font-size:10px}.tide-hour small{font-size:9px}
  .detail-lead small,.detail-stat small{font-size:10px}.detail-lead span,.detail-stat span{font-size:10px}.detail-stat strong{font-size:13px}.detail-cue{font-size:12px}
  .day span{font-size:12px}.mobile-section-toggle{font-size:12px}
  .mobile-dock span{font-size:10px}.sg-clock{font-size:11px}
  .official-weather{font-size:11px!important}.safety-banner a{font-size:12px}
  .more-links b{font-size:10px}.accessibility-controls button b{font-size:10px}
  .simple-footer,.simple-footer .data-credit{font-size:12px!important}
}

@media(min-width:601px){.next-change small,.tide-summary small,.phase-item small,.safety-banner small{font-size:10px}.live-pill,.model-pill{font-size:10px}.official-weather{font-size:11px!important}}

/* Continuous wave paths replace the previous oval surface pattern. */
.tide-water-motion{--wind-wave-scale:1;--wind-wave-speed:7s;--wind-back-speed:12s}.tide-water-fill i{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='24' viewBox='0 0 120 24'%3E%3Cpath d='M0 12 C10 2 20 2 30 12 S50 22 60 12 S80 2 90 12 S110 22 120 12' fill='none' stroke='%2375dcea' stroke-width='3' stroke-linecap='round'/%3E%3C/svg%3E");background-size:120px 24px;background-repeat:repeat-x;background-color:transparent;animation-name:tide-wave-line;animation-duration:var(--wind-wave-speed)}
.tide-water-fill i+ i{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='22' viewBox='0 0 160 22'%3E%3Cpath d='M0 11 C14 3 26 3 40 11 S66 19 80 11 S106 3 120 11 S146 19 160 11' fill='none' stroke='%23a6edf3' stroke-width='2'/%3E%3C/svg%3E");background-size:160px 22px;background-repeat:repeat-x;animation-name:tide-wave-back;animation-duration:var(--wind-back-speed)}
.tide-water-motion[data-wind=calm] .tide-water-fill i{opacity:.58}.tide-water-motion[data-wind=strong] .tide-water-fill i{opacity:1;filter:drop-shadow(0 -2px 3px #b7f8ff66)}.tide-water-motion[data-wind=strong] .tide-water-fill{box-shadow:0 -7px 22px #69d2e744}
@keyframes tide-wave-line{from{transform:translateX(0) scaleY(var(--wind-wave-scale))}to{transform:translateX(120px) scaleY(var(--wind-wave-scale))}}@keyframes tide-wave-back{from{transform:translateX(0) scaleY(calc(var(--wind-wave-scale)*.72))}to{transform:translateX(160px) scaleY(calc(var(--wind-wave-scale)*.72))}}.tide-turning .tide-water-fill i{animation-duration:var(--wind-wave-speed)}.tide-turning .tide-water-fill i+ i{animation-duration:var(--wind-back-speed)}

/* Deliberate night palette; avoids blanket colour inversion. */
html.theme-night{--ink:#061a2b!important}
.accessibility-controls>div{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:600px){.accessibility-controls>div{grid-template-columns:1fr}}

/* One-tap appearance control. */
.theme-quick{display:grid;place-items:center;width:38px;height:38px;flex:0 0 38px;border:1px solid #46636c;border-radius:50%;background:#0d2b39;color:#9ee9f2;cursor:pointer;font-size:18px;line-height:1;transition:background .2s ease,transform .2s ease,border-color .2s ease}.theme-quick:hover{background:#164151;border-color:#69d2e7}.theme-quick:active{transform:scale(.94)}html.theme-night .theme-quick{background:#f1c96a;color:#422f05;border-color:#ffe29a}
@media(max-width:600px){.theme-quick{width:40px;height:40px;flex-basis:40px}.topbar nav{gap:6px}}

/* Recognisable fish silhouettes replace the old triangle glyphs. */
.hero-art .fish{width:34px;height:14px;font-size:0!important;background:#69d2e7;border-radius:60% 45% 45% 60%;color:#69d2e7;transform:none;opacity:.42;filter:drop-shadow(0 3px 5px #00101866);animation:fish-drift 6s ease-in-out infinite}.hero-art .fish:before{content:'';position:absolute;width:3px;height:3px;border-radius:50%;background:#071f2f;left:6px;top:4px}.hero-art .fish:after{content:'';position:absolute;right:-11px;top:-3px;width:13px;height:20px;background:currentColor;clip-path:polygon(0 50%,100% 0,72% 50%,100% 100%)}.hero-art .fish-one{width:42px;height:17px;animation-duration:7s}.hero-art .fish-one:before{top:5px}.hero-art .fish-one:after{height:23px;top:-3px}.hero-art .fish-two{width:28px;height:12px;opacity:.34;animation-duration:8.5s;animation-delay:-2s}.hero-art .fish-two:before{left:5px;top:4px}.hero-art .fish-two:after{height:17px;top:-2px;right:-9px;width:11px}.hero-art .fish-three{width:21px;height:9px;opacity:.25;animation-duration:10s;animation-delay:-4s}.hero-art .fish-three:before{width:2px;height:2px;left:4px;top:3px}.hero-art .fish-three:after{height:14px;top:-2px;right:-7px;width:9px}@keyframes fish-drift{0%,100%{transform:translateX(0) translateY(0)}50%{transform:translateX(-10px) translateY(-3px)}}
@media(prefers-reduced-motion:reduce){.theme-quick{transition:none}.hero-art .fish{animation:none!important}}html.a11y-reduce-motion .hero-art .fish{animation:none!important}

/* Explicit More-sheet contrast in night mode. */
html.theme-night .more-panel .more-head h2,html.theme-night .more-panel .more-links span,html.theme-night .more-panel .accessibility-controls h3,html.theme-night .more-panel .accessibility-controls button span{color:#e7f3f5!important}html.theme-night .more-panel .more-head small,html.theme-night .more-panel .more-links b,html.theme-night .more-panel .accessibility-controls button b{color:#a8c0c6!important}html.theme-night .more-panel .accessibility-controls button[aria-pressed=true] b{color:#9ee9f2!important}html.theme-night .more-panel .more-links a{color:#e7f3f5!important}html.theme-night .more-panel #closeMore{color:#e7f3f5!important;background:#173744!important;border-color:#4d6d77!important}

/* Complete night contrast for forecast charts and remaining fixed day colours. */
html.theme-night .section-heading h2,html.theme-night .section-heading p,html.theme-night .score-copy h3,html.theme-night .window-card h3,html.theme-night .card-top p,html.theme-night .moon-copy h4,html.theme-night .hourly-head h3,html.theme-night .tide-head h3{color:#e7f3f5!important}html.theme-night .eyebrow.dark,html.theme-night .condition small,html.theme-night .timeline,html.theme-night .phase-item small{color:#9db8bf!important}html.theme-night .hour,html.theme-night .hour b{color:#e7f3f5!important}html.theme-night .hour small{color:#a9c0c6!important}html.theme-night .hour.now small{color:#9ee9f2!important}html.theme-night .hourly-chart{border-color:#36535e}html.theme-night .day-part{background:#102b36!important;border-color:#35515c!important;color:#e7f3f5!important}html.theme-night .day-part.great{background:#173b3b!important;border-color:#5d9b78!important}html.theme-night .day-part.fair{background:#12333d!important;border-color:#477783!important}html.theme-night .day-part.low{background:#172a33!important}html.theme-night .day-part small{color:#a8bec4!important}html.theme-night .day-part strong{color:#f2fbfc!important}html.theme-night .day-part span{color:#83dce7!important}html.theme-night .day-part p{color:#b1c7cc!important}html.theme-night .hour-detail{background:#061823;border-color:#294858}html.theme-night .detail-stat strong,html.theme-night .detail-lead strong{color:#f2fbfc}html.theme-night .detail-stat span,html.theme-night .detail-lead small,html.theme-night .detail-stat small{color:#9eb7bd}html.theme-night .location-card label,html.theme-night .country-field label{color:#a8bec4}html.theme-night .country-select>span,html.theme-night .pin{color:#72cfdb}html.theme-night .phase-item b,html.theme-night .condition strong,html.theme-night .condition>b{color:#e7f3f5}html.theme-night .simple-footer,html.theme-night .simple-footer a,html.theme-night .simple-footer small{color:#a9bec4}

/* Compact analogue clock; its minute hand is a tiny fish. */
.clock-cluster{display:flex;align-items:center;gap:7px}.analog-clock{position:relative;width:38px;height:38px;flex:0 0 38px;border:1px solid #46636c;border-radius:50%;background:repeating-conic-gradient(from -1deg,#6ba5b1 0 2deg,transparent 2deg 30deg);box-shadow:inset 0 0 12px #00131d88}.analog-clock:before{content:'';position:absolute;inset:3px;border-radius:50%;background:#0a2634}.analog-clock>b{position:absolute;left:50%;top:50%;width:5px;height:5px;transform:translate(-50%,-50%);border-radius:50%;background:#f3f7f5;z-index:4}.clock-hour,.clock-fish{position:absolute;left:50%;bottom:50%;transform-origin:50% 100%;transition:transform .35s linear;z-index:2}.clock-hour{width:3px;height:9px;border-radius:3px;background:#dbe9e8}.clock-fish{width:2px;height:14px;background:#69d2e7;z-index:3}.clock-fish:before{content:'';position:absolute;width:7px;height:10px;left:-2.5px;top:-5px;border-radius:60% 60% 48% 48%;background:#69d2e7;box-shadow:inset 1px 1px 0 #d8fbff88}.clock-fish:after{content:'';position:absolute;width:8px;height:7px;left:-3px;top:4px;background:#69d2e7;clip-path:polygon(50% 100%,0 0,50% 26%,100% 0)}

/* Every decorative school now uses a complete fish silhouette. */
.fish-school{gap:28px}.fish-school i{position:relative;width:30px;height:12px;font-size:0;background:currentColor;border-radius:60% 45% 45% 60%;transform:none!important;animation:school-fish-drift 7s ease-in-out infinite}.fish-school i:before{content:'';position:absolute;width:3px;height:3px;left:5px;top:3px;border-radius:50%;background:#071f2f}.fish-school i:after{content:'';position:absolute;right:-10px;top:-3px;width:12px;height:18px;background:currentColor;clip-path:polygon(0 50%,100% 0,72% 50%,100% 100%)}.fish-school i:nth-child(2){width:23px;height:9px;margin-top:25px;opacity:.7;animation-delay:-2s}.fish-school i:nth-child(2):before{width:2px;height:2px;top:3px}.fish-school i:nth-child(2):after{right:-8px;top:-2px;width:10px;height:14px}.fish-school i:nth-child(3){width:18px;height:7px;margin-top:3px;opacity:.55;animation-delay:-4s}.fish-school i:nth-child(3):before{width:2px;height:2px;left:4px;top:2px}.fish-school i:nth-child(3):after{right:-7px;top:-2px;width:8px;height:11px}@keyframes school-fish-drift{0%,100%{translate:0 0}50%{translate:-8px -2px}}
@media(max-width:600px){.analog-clock{width:34px;height:34px;flex-basis:34px}.sg-clock{padding:0 7px}.clock-cluster{gap:5px}}@media(max-width:380px){.topbar{padding-left:10px;padding-right:10px}.topbar .brand{gap:6px}.topbar .brand>span:last-child{font-size:15px}.analog-clock{width:32px;height:32px;flex-basis:32px}.sg-clock{font-size:10px;padding:0 6px}.saved-btn{min-width:56px!important;padding:0 7px!important}}
@media(prefers-reduced-motion:reduce){.clock-hour,.clock-fish{transition:none}.fish-school i{animation:none!important}}html.a11y-reduce-motion .fish-school i{animation:none!important}

/* Header saved control and dark safety-link contrast. */
.saved-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:0 13px}.saved-btn .saved-icon{font-size:19px;line-height:1}.saved-btn .saved-label{font-size:12px;font-weight:800}.saved-btn b{flex:0 0 auto;min-width:20px;height:20px}.theme-night .safety-banner a{color:#9ee9f2!important;text-decoration:underline;text-decoration-color:#69d2e777;text-underline-offset:3px}.theme-night .saved-btn{color:#e7f3f5;border-color:#557681;background:#0d2b39}.theme-night .saved-btn b{background:#69d2e7;color:#061a2b}
@media(max-width:600px){.topbar .saved-btn{width:42px!important;height:42px!important;min-width:42px!important;min-height:42px!important;padding:0!important;border-radius:50%!important;overflow:visible}.topbar .saved-btn .saved-icon{display:block!important;font-size:20px}.topbar .saved-btn .saved-label{display:none!important}.topbar .saved-btn b{position:absolute;right:-5px;top:-5px;display:grid;min-width:19px;height:19px;padding:0 4px;border:2px solid #071f2f;font-size:9px;box-shadow:0 3px 8px #0005}}
@media(max-width:380px){.topbar .saved-btn{width:38px!important;height:38px!important;min-width:38px!important;min-height:38px!important}.topbar .saved-btn b{right:-4px;top:-4px}}

/* Pair the analogue dial with the hero's Singapore time readout. */
.hero-art .art-caption{flex-direction:row;align-items:center;gap:12px;padding-left:14px}.hero-art .art-caption .analog-clock{font:inherit;width:44px;height:44px;flex:0 0 44px}.hero-time-copy{display:flex;flex-direction:column;min-width:108px}.hero-time-copy strong{font:700 24px Manrope;line-height:1.1;color:#f3f7f5}.hero-time-copy small{margin-top:3px;color:#95aaa3;font-size:11px}.hero-art .art-caption>span{font:inherit}

/* Match the desktop moon and condition row precisely. */
@media(min-width:901px){.dashboard-main .dashboard-moon,.dashboard-side .conditions-card{height:164px!important;min-height:164px;align-self:stretch}.dashboard-main .dashboard-moon{align-content:center}.dashboard-side .conditions-card{align-content:stretch}.dashboard-side .conditions-card .condition{min-height:0}.a11y-large .dashboard-main .dashboard-moon,.a11y-large .dashboard-side .conditions-card{height:auto!important;min-height:164px}}
@media(min-width:901px){.dashboard-main .dashboard-moon,.dashboard-side .conditions-card{height:204px!important;min-height:204px}.a11y-large .dashboard-main .dashboard-moon,.a11y-large .dashboard-side .conditions-card{height:auto!important;min-height:204px}}

/* Former head-level layout rules, kept in the external stylesheet for CSP. */
.section-heading>div{min-width:0;max-width:100%}.section-heading h2{font-size:clamp(30px,4vw,52px)!important;line-height:1.06!important;overflow-wrap:anywhere!important;word-break:normal!important;max-width:min(100%,900px)!important}.data-status{width:auto!important;height:auto!important;background:none!important;display:inline!important}@media(max-width:600px){.section-heading{display:block!important}.section-heading h2{font-size:clamp(28px,9.5vw,38px)!important;letter-spacing:-1.5px!important}.section-heading .eyebrow{max-width:100%;flex-wrap:wrap}.section-heading .share-btn{margin-top:16px}}
html.theme-night{color-scheme:dark;--paper:#071722;--ink:#e7f3f5;--muted:#9db3ba;--line:#294652;--white:#0d2733;--mint:#63c9d7}html.theme-night body,html.theme-night .forecast-shell{background:#071722;color:#e7f3f5}html.theme-night .dashboard-grid article,html.theme-night .dashboard-grid section,html.theme-night .hourly-card,html.theme-night .location-card{background:#0d2733;border-color:#294652;color:#e7f3f5}html.theme-night .score-ring:after{background:#0d2733}html.theme-night .score-ring{background:conic-gradient(var(--lime) 0 calc(var(--score)*1%),#213b45 calc(var(--score)*1%))}html.theme-night .condition,html.theme-night .phase-item{background:#102d39;border-color:#294652}html.theme-night .condition-icon{background:#173945;color:#8ee7f0}html.theme-night .moon-copy h3,html.theme-night .moon-copy>p:last-child,html.theme-night .condition p,html.theme-night .score-copy p,html.theme-night .window-card>p,html.theme-night .hourly-intro p{color:#9db3ba}html.theme-night .moon-visual>span{background:#071722;color:#e7f3f5}html.theme-night .updated-line{background:#17372f;color:#bde5d7!important}html.theme-night .verdict{background:#163b46;color:#9ee9f2}html.theme-night .hour-bar.low{background:#38505a}html.theme-night .hour-bar.fair{background:#397d89}html.theme-night .hourly-legend,html.theme-night .hour small{color:#9db3ba}html.theme-night .safety-banner{background:#132f35;border-color:#31535a;color:#e7f3f5}html.theme-night .safety-banner p{color:#a8bdc2}html.theme-night .official-weather{background:#173e49;color:#a9edf4!important}html.theme-night .refresh-btn,html.theme-night .share-btn{background:#0d2733;border-color:#45636d;color:#e7f3f5}html.theme-night .more-panel,html.theme-night .saved-panel{background:#0c222d;border-color:#294652;color:#e7f3f5}html.theme-night .more-links a,html.theme-night .accessibility-controls button,html.theme-night .saved-item,html.theme-night .more-head button,html.theme-night #closeMore{background:#102d39!important;border-color:#35535e;color:#e7f3f5!important}html.theme-night .accessibility-controls button[aria-pressed=true]{background:#174553!important;border-color:#69d2e7}html.theme-night .water-toggle button{background:#17333e;color:#a8bdc2}html.theme-night .water-toggle button.active{background:#69d2e7;color:#061a2b}html.theme-night .country-select select,html.theme-night .location-row select{color:#e7f3f5}html.theme-night .field-divider{background:#294652}html.theme-night .simple-footer{border-top:1px solid #203943}html.theme-night.a11y-contrast{--muted:#c4d6da;--line:#6c8992}html.theme-night.a11y-contrast .dashboard-grid article,html.theme-night.a11y-contrast .hourly-card{border-color:#86a7af}
.species-note{margin:-6px 0 18px;color:#66736e;font-size:12px;line-height:1.5;background:#f7f8f4;border:1px dashed var(--line);border-radius:14px;padding:11px 13px}
@media(max-width:760px){.trust-hero{padding:34px 18px}.trust-hero .brand{margin-bottom:28px}.trust-shell{grid-template-columns:1fr;padding:22px 14px 40px}.trust-card{padding:22px}.trust-side{position:static}.trust-footer{display:block}.trust-footer nav{margin:16px 0}}

@media(min-width:901px){
  .forecast-shell{padding-top:58px;padding-bottom:58px}
  .section-heading{margin-bottom:24px}
  .dashboard-grid{grid-template-columns:minmax(0,1fr) minmax(360px,.74fr);gap:14px;align-items:start}
  .score-card{padding:24px;grid-template-columns:136px minmax(0,1fr);gap:20px;min-height:0}
  .score-ring{width:132px;height:132px}
  .score-ring:after{inset:8px}
  .score-ring strong{font-size:48px;letter-spacing:-3px}
  .score-ring span{font-size:10px}
  .score-copy h3{font-size:24px;margin:10px 0 7px}
  .score-copy p{font-size:12px;line-height:1.45;max-width:760px}
  .updated-line{padding:6px 9px;font-size:10px!important}
  .score-breakdown{margin-top:0;gap:6px}
  .score-breakdown span{min-height:30px;padding:6px 10px;font-size:10px}
  .window-card{padding:24px}
  .window-card h3{font-size:27px;margin-top:22px}
  .window-card>p{font-size:12px;line-height:1.45}
  .timeline{margin-top:22px}
  .dashboard-moon{padding:18px;grid-template-columns:82px minmax(0,1fr);gap:14px}
  .dashboard-moon .moon-visual{width:82px;height:82px}
  .dashboard-moon .phase-disc{width:58px;height:58px}
  .dashboard-moon .moon-copy h3{font-size:10px}
  .dashboard-moon .moon-copy h4{font-size:20px;margin:5px 0}
  .dashboard-moon .moon-copy>p:last-child{font-size:11px;line-height:1.35;margin:0}
  .dashboard-moon .phase-list{gap:6px}
  .dashboard-moon .phase-item{padding:9px 8px}
  .dashboard-moon .mini-moon{width:24px;height:24px;margin-bottom:6px}
  .dashboard-moon .phase-item b{font-size:10px}
  .dashboard-moon .phase-item small{font-size:8px}
  .conditions-card{padding:0 18px}
  .condition{padding:13px 0;grid-template-columns:32px 1fr auto;gap:10px}
  .condition-icon{width:30px;height:30px;font-size:16px}
  .condition strong{font-size:12px}
  .condition p{font-size:10px}
  .conditions-card{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:18px}
  .condition{border:1px solid var(--line);border-radius:16px;background:#f7f8f4;padding:14px;align-content:start}
  .condition:last-child{border:1px solid var(--line)}
  .condition-icon{grid-row:1 / span 2}
  .condition>b{align-self:start}
}

.dashboard-column{display:grid;gap:14px;align-content:start}
.dashboard-side .conditions-card,.dashboard-main .dashboard-moon{margin-top:0}
@media(min-width:901px){
  .dashboard-grid{grid-template-columns:minmax(0,1.08fr) minmax(360px,.82fr);gap:16px}
  .dashboard-main{grid-template-rows:auto auto}
  .dashboard-side{grid-template-rows:auto auto}
  .score-card,.window-card,.dashboard-moon,.conditions-card{height:auto}
  .dashboard-moon .phase-list{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media(max-width:900px){
  .dashboard-column{display:grid;gap:14px}
}
@media(max-width:600px){
  .dashboard-column{display:contents}
  .decision-card{display:none}
}

/* Unified brand asset: the same mark is used in the header, footer and installed app. */
.cast-logo{border:0!important;border-radius:9px;background:url('app-icon.svg') center/cover no-repeat;box-shadow:0 3px 12px #0003}
.cast-logo:before,.cast-logo i{display:none}

/* Keep required data attribution quiet and out of the forecast interface. */
.simple-footer{grid-template-columns:auto auto 1fr auto!important}.simple-footer nav{justify-self:center!important}.simple-footer .data-credit{color:#78908f;font-size:9px!important;opacity:.72}.simple-footer .data-credit a{text-decoration:none;color:inherit}.simple-footer .data-credit a:hover{text-decoration:underline}
@media(max-width:700px){.simple-footer{grid-template-columns:1fr auto!important}.simple-footer nav{grid-column:1/-1;justify-self:start!important}.simple-footer .data-credit{grid-column:1/-1;font-size:8px!important}}

/* Search-friendly product story */
.hero-proof{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:18px;color:#c2d3ce;font-size:11px;font-weight:700}.hero-proof span{display:inline-flex;align-items:center;gap:7px}.hero-proof span:before{content:'✓';display:grid;place-items:center;width:18px;height:18px;border:1px solid #56736a;border-radius:50%;color:var(--lime);font-size:10px}.subhead strong{color:#e8f3ef}.discover-section{padding:72px 5vw 78px;background:#e8ece6;border-top:1px solid var(--line)}.discover-copy{display:grid;grid-template-columns:minmax(260px,.85fr) minmax(300px,1.15fr);column-gap:7vw;align-items:end}.discover-copy .eyebrow{grid-column:1/-1}.discover-copy h2,.faq-block h2{font-size:clamp(34px,4vw,54px);line-height:1.02;letter-spacing:-2.2px}.discover-copy>p:last-of-type{max-width:640px;margin:0;color:#61716d;font-size:16px;line-height:1.65}.discover-cta{display:inline-flex;align-items:center;gap:12px;width:max-content;margin-top:24px;padding:12px 17px;border-radius:999px;background:var(--ink);color:white;text-decoration:none;font-size:12px;font-weight:800}.discover-cta span{color:var(--lime);font-size:18px}.discover-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:42px}.discover-grid article{min-height:210px;padding:26px;background:#f8faf6;border:1px solid #d5dcd4;border-radius:20px}.discover-grid article>span{color:#60827a;font:800 11px Manrope;letter-spacing:1.5px}.discover-grid h3{margin:34px 0 10px;font-size:21px;letter-spacing:-.5px}.discover-grid p{margin:0;color:#687874;font-size:13px;line-height:1.6}.faq-block{display:grid;grid-template-columns:minmax(260px,.7fr) minmax(320px,1.3fr);gap:7vw;margin-top:58px;padding-top:48px;border-top:1px solid #cdd6ce}.faq-list details{border-bottom:1px solid #c9d2ca}.faq-list summary{position:relative;padding:20px 38px 20px 0;cursor:pointer;list-style:none;font:700 16px Manrope}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary:after{content:'+';position:absolute;right:4px;top:16px;color:#477268;font-size:24px;font-weight:400}.faq-list details[open] summary:after{content:'−'}.faq-list p{max-width:720px;margin:-4px 38px 20px 0;color:#667773;font-size:13px;line-height:1.65}html.theme-night .discover-section{background:#091d27;border-color:#294652}html.theme-night .discover-copy h2,html.theme-night .discover-grid h3,html.theme-night .faq-block h2,html.theme-night .faq-list summary{color:#e7f3f5}html.theme-night .discover-copy>p:last-of-type,html.theme-night .discover-grid p,html.theme-night .faq-list p{color:#a7bcc1}html.theme-night .discover-grid article{background:#0d2733;border-color:#294652}html.theme-night .faq-block,html.theme-night .faq-list details{border-color:#294652}html.theme-night .discover-cta{background:#69d2e7;color:#061a2b}html.theme-night .discover-cta span{color:#061a2b}
@media(max-width:800px){.discover-copy,.faq-block{grid-template-columns:1fr}.discover-copy>p:last-of-type{margin-top:18px}.discover-grid{grid-template-columns:1fr}.discover-grid article{min-height:0}.discover-grid h3{margin-top:22px}.faq-block{gap:22px}}
@media(max-width:600px){.hero-proof{gap:8px 12px;margin-top:15px}.hero-proof span{font-size:10px}.discover-section{padding:48px 18px 96px}.discover-copy h2,.faq-block h2{font-size:34px;letter-spacing:-1.5px}.discover-grid{margin-top:30px}.faq-block{margin-top:42px;padding-top:38px}.faq-list summary{font-size:15px;line-height:1.35}}

/* Explainable conditions model */
.score-ring span{display:block;max-width:74px;margin:auto;text-align:center;line-height:1.2}.model-readout{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--line);padding-top:20px}.model-readout>div{min-width:0;padding:0 18px;border-left:1px solid var(--line)}.model-readout>div:first-child{padding-left:0;border-left:0}.model-readout>div:last-child{padding-right:0}.model-readout small,.model-readout strong,.model-readout span{display:block}.model-readout small{color:#80908a;font-size:9px;font-weight:800;letter-spacing:1.2px}.model-readout strong{margin:6px 0 3px;color:var(--ink);font:800 15px Manrope}.model-readout span{color:#71817c;font-size:10px;line-height:1.4}html.theme-night .model-readout{border-color:#294652}html.theme-night .model-readout>div{border-color:#294652}html.theme-night .model-readout small,html.theme-night .model-readout span{color:#9db3ba}html.theme-night .model-readout strong{color:#e7f3f5}@media(max-width:600px){.model-readout{gap:0;padding-top:17px;text-align:left}.model-readout>div{padding:0 9px}.model-readout small{font-size:8px;letter-spacing:.7px}.model-readout strong{font-size:13px}.model-readout span{font-size:9px}}

/* Compact angler tools */
.calendar-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;margin-top:18px;min-height:40px;padding:9px 13px;border:1px solid #aebcb8;border-radius:999px;background:transparent;color:var(--ink);font-size:11px;font-weight:800;cursor:pointer}.calendar-btn:hover{border-color:#67aeb7;background:#eaf6f6}.calendar-btn:disabled{opacity:.5;cursor:wait}.saved-panel{overflow-y:auto}.saved-compare{margin:18px 0;padding:16px;border:1px solid var(--line);border-radius:16px;background:#fff}.saved-compare small{color:var(--muted);font-size:8px;font-weight:800;letter-spacing:1.2px}.saved-compare h3{margin:5px 0 13px;font-size:16px;line-height:1.3}.saved-compare>button{width:100%;min-height:40px;border:1px solid #91a6a0;border-radius:10px;background:transparent;color:var(--ink);font-size:11px;font-weight:800;cursor:pointer}.saved-compare>button:disabled{opacity:.45;cursor:not-allowed}.saved-compare-results{display:grid;gap:8px;margin-top:10px}.compare-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;padding:10px;border-radius:11px;background:#eef2ee}.compare-row:first-child{background:#def2ee}.compare-row strong{font-size:12px;overflow-wrap:anywhere}.compare-row b{font:800 15px Manrope}.compare-row span{color:var(--muted);font-size:9px;line-height:1.35}.compare-row em{color:#456c64;font-size:9px;font-style:normal;font-weight:800;text-align:right}.compare-note{margin:2px 0;color:var(--muted);font-size:9px;line-height:1.45}.wind-exposure-label{font-weight:800;color:#426e67}html.theme-night .calendar-btn{border-color:#45636d;color:#e7f3f5}html.theme-night .calendar-btn:hover{background:#14343f}html.theme-night .saved-compare{background:#102d39;border-color:#35535e}html.theme-night .saved-compare h3,html.theme-night .saved-compare>button{color:#e7f3f5}html.theme-night .saved-compare>button{border-color:#52727c}html.theme-night .compare-row{background:#17333e}html.theme-night .compare-row:first-child{background:#17434a}html.theme-night .compare-row strong,html.theme-night .compare-row b{color:#edf8fa}html.theme-night .compare-row span{color:#a6bec4}html.theme-night .compare-row em{color:#8fe2d1}@media(max-width:600px){.calendar-btn{width:100%;min-height:44px}.saved-compare{padding:14px}.saved-compare>button{min-height:44px}}
