/* The exact dev font shapes, shipped from the same origin in every build. */
@font-face{font-family:OffshoreMono;font-style:normal;font-weight:400;font-display:swap;src:url('/assets/OffshoreMono-400-DeFfp88G.woff2') format('woff2')}
@font-face{font-family:OffshoreMono;font-style:normal;font-weight:700;font-display:swap;src:url('/assets/OffshoreMono-700-bImLPvV_.woff2') format('woff2')}
@font-face{font-family:OffshoreUI;font-style:normal;font-weight:400;font-display:swap;src:url('/assets/OffshoreUI-400-Bn-3jYZ5.woff2') format('woff2')}
@font-face{font-family:OffshoreUI;font-style:normal;font-weight:700;font-display:swap;src:url('/assets/OffshoreUI-700-DGnDvJUf.woff2') format('woff2')}
@font-face{font-family:OffshoreInter;font-style:normal;font-weight:400;font-display:swap;src:url('/assets/OffshoreInter-400-VtijR5oI.woff2') format('woff2')}
@font-face{font-family:OffshoreInter;font-style:normal;font-weight:500;font-display:swap;src:url('/assets/OffshoreInter-500-C44nzyO-.woff2') format('woff2')}
@font-face{font-family:OffshoreInter;font-style:normal;font-weight:600;font-display:swap;src:url('/assets/OffshoreInter-600-zRDwqhA7.woff2') format('woff2')}
@font-face{font-family:OffshoreInter;font-style:normal;font-weight:700;font-display:swap;src:url('/assets/OffshoreInter-700-_1fn0GvL.woff2') format('woff2')}
/* The installed phone client has native navigation around the shared game. */
html[data-native-app="android"] .portal-masthead,
html[data-native-app="android"] .portal-footer,
html[data-native-app="android"] .race-footer {display:none}
html[data-native-app="android"] .portal {padding:0 18px;min-height:100dvh}
html[data-native-app="android"] .portal-heading {padding-top:24px}
html[data-native-app="android"] .portal :is(button,.button,input,select) {min-height:48px}
html[data-native-app="android"] .portal :is(a,button,input,select):focus-visible {outline:2px solid #e9a67b;outline-offset:3px}
/* Shared touch targets for the portal, account tools and sailing dialogs. */
@media(pointer:coarse){
  :root button,:root .button,:root select,:root summary{min-height:44px}
  /* Drag handles keep their own touch-action:none. */
  :where(button,.button,select,summary){touch-action:manipulation}
  :root button,:root .button{min-width:44px}
  input:not([type=checkbox]):not([type=radio]):not([type=range]),select,textarea{font-size:16px;min-height:44px}
  nav a{display:inline-flex;align-items:center;min-height:44px}
  :root .quiet-link{display:inline-flex;align-items:center;min-height:44px}
  :root .portal input:not([type=checkbox]):not([type=radio]):not([type=range]),:root .portal select,:root .portal textarea{font-size:16px}
  :root .portal input::placeholder{font-size:inherit}
}
.portal:has(.home-hero){max-width:none;padding:0}
.portal .home-hero{display:block;padding:0;margin:0;background:#102d35;color:#f4f2e7;overflow:hidden}
.home-stage{position:relative;isolation:isolate;height:clamp(580px,calc(100svh - 180px),850px);min-height:580px;background:#173c43}
.home-scenes,.home-scene{position:absolute;inset:0;margin:0;overflow:hidden}
.home-scene{opacity:0;visibility:hidden;transition:opacity .8s ease,visibility .8s}
.home-scene.is-current{opacity:1;visibility:visible}
.home-scene>img,.home-sailing-film{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:70% center}
.home-sailing-film{opacity:0;transition:opacity .6s}
.home-scene--helm>img,.home-scene--helm>.home-sailing-film{left:0;width:100%;max-width:none}
[data-video=ready] .home-sailing-film{opacity:1}
[data-video=unavailable] .home-sailing-film{opacity:0}
.home-scene--feature{background:#102d35}
.home-scene--feature>img,.home-scene--feature>.home-sailing-film{left:0;width:100%;object-fit:cover;object-position:center}
.home-stage:after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(90deg,rgba(8,30,37,.94) 0%,rgba(8,30,37,.77) 25%,rgba(8,30,37,.12) 63%,rgba(8,30,37,.04)),linear-gradient(0deg,rgba(8,30,37,.62),transparent 30%)}
[data-presentation=feature] .home-stage:after{background:linear-gradient(0deg,rgba(8,30,37,.9),transparent 25%),linear-gradient(180deg,rgba(8,30,37,.35),transparent 20%)}
[data-presentation=feature] .home-sailing-film{left:0;width:100%;object-position:center;object-fit:cover;mask-image:none}
.home-hero .hero-copy{position:absolute;z-index:2;left:max(40px,calc((100% - 1280px)/2));top:50%;transform:translateY(-50%);max-width:600px;padding-bottom:22px}
.portal .home-hero .eyebrow{color:#c8b098;font-size:10px;letter-spacing:2px}
.portal .home-hero h1{font-size:clamp(60px,5.4vw,94px);font-weight:400;line-height:1.01;letter-spacing:-2.5px;margin:28px 0 25px;color:#fff9eb;text-wrap:balance}
.portal .home-hero .lede{font-size:17px;color:#e0e7df;line-height:1.8;max-width:340px}
.home-hero :is(.hero-actions,.home-feature-actions){gap:24px;margin:29px 0 16px}
.portal .home-hero :is(.hero-actions,.home-feature-actions) .primary{background:#d49b70;color:#102d35;border:1px solid #d49b70;padding:16px 22px;min-height:52px;font-weight:600;box-shadow:0 3px 20px #081c2226}
.portal .home-hero :is(.hero-actions,.home-feature-actions) .primary:hover{background:#e7b38d;border-color:#e7b38d}
.portal .home-hero .quiet-link{color:#f2e9dc;font-size:13px}
.portal .home-hero .small-copy{color:#b7cbc7;font-size:11px;margin:0}
.home-scene-caption{position:absolute;z-index:2;right:max(40px,calc((100% - 1280px)/2));bottom:35px;text-align:right;max-width:420px}
.home-scene-caption>span{text-transform:uppercase;color:#e5b48a;font-size:10px;letter-spacing:2px}
.portal .home-scene-caption p{color:#fff9eb;font:24px/1.3 Georgia,serif;margin:10px 0}
.home-scene-caption>small{color:#c2d3cf;font-size:10px;letter-spacing:.2px}
.home-footage-credit{position:absolute;z-index:2;left:max(40px,calc((100% - 1280px)/2));bottom:42px;color:#e2e9e3;font-size:10px;letter-spacing:.35px;text-shadow:0 1px 5px #071c22;pointer-events:none}
.home-filmstrip{display:flex;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin;scrollbar-color:#638782 #102d35;max-width:1600px;margin:auto;padding:0 24px}
.home-filmstrip>button{flex:0 0 238px}
.home-filmstrip>button{position:relative;display:flex;gap:15px;align-items:center;text-align:left;min-height:100px;padding:20px 24px;background:transparent;border:0;border-right:1px solid #365359;color:#d9e5dd;cursor:pointer}
.home-filmstrip>button:last-child{border-right:0}
.home-filmstrip>button:hover,.home-filmstrip>button[aria-pressed=true]{background:#1c4148}
.home-filmstrip img{width:80px;height:47px;object-fit:cover;border:1px solid #ffffff24;opacity:.65;filter:saturate(.65);border-radius:2px}
.home-filmstrip [aria-pressed=true] img{opacity:1;filter:none}
.home-scene-number{font:11px/1 monospace;color:#9cb5b1}
.home-filmstrip small{display:block;font-size:8px;letter-spacing:1.1px;text-transform:uppercase;color:#9cb5b1;margin-bottom:7px}
.home-filmstrip strong{font:18px/1.15 Georgia,serif;font-weight:400;white-space:nowrap}
.home-scene-progress{position:absolute;bottom:0;left:0;right:0;height:3px;background:transparent}
[aria-pressed=true]>.home-scene-progress{background:#d49b70}
.home-hero button:focus-visible,.home-hero a:focus-visible{outline:2px solid #efbb8b;outline-offset:-4px}
.home-scene-announcement{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.home-seamanship{max-width:1344px;margin:0 auto;padding:44px 32px 15px;display:grid;grid-template-columns:1fr 1fr;column-gap:48px;row-gap:28px;align-items:start}
.home-seamanship h2{font-size:clamp(34px,3.2vw,48px);line-height:1.14;max-width:none;letter-spacing:-.6px;margin:12px 0 0}
.home-seamanship p{font-size:16px;max-width:600px;margin:0 0 16px}
.home-details{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px 32px}
.home-detail{margin:0;min-width:0}
.home-detail>img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;background:#173c43;border-radius:3px}
.home-detail figcaption{padding:21px 0 0}
.home-detail .eyebrow{display:block;font-size:9px;letter-spacing:1.6px}
.home-detail h3{font:normal 27px/1.2 Georgia,serif;color:var(--ink);margin:8px 0}
.home-detail-copy{display:block;max-width:500px;font-size:14px;line-height:1.7;color:var(--ink)}
:root[data-theme=night] .home-seamanship :is(p,.eyebrow){color:var(--muted)}
.portal:has(.home-hero)>.portal-footer{max-width:1280px;margin:45px auto 0}
@media(min-width:1700px){.home-scene--helm>img,.home-sailing-film{object-position:center 54%}}
 .home-feature-actions{display:none!important}
@media(min-width:761px){
  .home-hero .hero-copy{transition:opacity .55s ease,visibility .55s}
  .home-hero[data-presentation=feature] .hero-copy{opacity:0;visibility:hidden;pointer-events:none}
  .home-hero .home-feature-actions{display:flex!important;position:absolute;z-index:2;left:max(32px,calc((100% - 1280px)/2));bottom:24px;margin:0;opacity:0;visibility:hidden;transition:opacity .55s ease,visibility .55s}
  .home-hero[data-presentation=feature] .home-feature-actions{opacity:1;visibility:visible}
  .home-hero[data-presentation=feature] .home-scene-caption{bottom:22px;max-width:min(520px,calc(100% - 440px))}
}
@media(max-width:1150px){.home-filmstrip{padding:0 18px}.home-filmstrip>button{padding:18px 12px;gap:10px}.home-filmstrip img{width:62px;height:40px}.home-filmstrip strong{font-size:16px}.home-scene-number{display:none}.home-hero .hero-copy{left:32px}.home-scene-caption{right:32px;bottom:28px;max-width:330px}.portal .home-scene-caption p{font-size:21px}}
@media(max-width:760px){
  .home-stage{height:clamp(580px,78svh,680px);min-height:580px;padding:0;display:block}
  .home-scenes{height:100%;max-height:none}
  .home-scene>img,.home-sailing-film{object-fit:cover;object-position:55% center;width:100%;left:0}
  .home-hero[data-scene=sunset] .home-scene>img,.home-hero[data-scene=sunset] .home-sailing-film{object-position:8% center}
  .home-scene--helm>img,.home-scene--helm>.home-sailing-film{left:0;width:100%;mask-image:none}
  .home-stage:after{height:100%;max-height:none;background:linear-gradient(180deg,rgba(8,30,37,.79),rgba(8,30,37,.53) 27%,rgba(8,30,37,.06) 52%,rgba(8,30,37,.12) 72%,rgba(8,30,37,.83));bottom:0}
  .home-hero .hero-copy{position:absolute;left:20px;right:20px;top:26px;transform:none;padding:0;max-width:none;text-shadow:0 2px 12px #071c2270}
  .portal .home-hero .eyebrow{font-size:8px;letter-spacing:1.3px}
  .portal .home-hero h1{font-size:clamp(46px,12vw,60px);letter-spacing:-1.5px;line-height:1.04;margin:13px 0 12px}
  .portal .home-hero .lede{font-size:14px;line-height:1.55;margin:0;max-width:400px}
  .home-hero .hero-actions{display:grid;grid-template-columns:minmax(0,1fr) auto;margin:16px 0 8px;gap:10px;max-width:360px}
  .portal .home-hero .hero-actions .primary{padding:12px;min-width:0;min-height:48px;font-size:12px;white-space:nowrap;text-shadow:none;gap:8px}
  .portal .home-hero .hero-actions .quiet-link{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 4px;font-size:12px;white-space:nowrap}
  .portal .home-hero .small-copy{font-size:10px;color:#d1ded7}
  .home-scene-caption{position:absolute;left:20px;right:20px;bottom:42px;text-align:left;padding:0;max-width:none;text-shadow:0 2px 8px #071c22}
  .home-scene-caption>span{font-size:8px;letter-spacing:1px}
  .portal .home-scene-caption p{font-size:20px;line-height:1.25;display:block;margin:7px 0 0;max-width:330px}
  .home-scene-caption>small{display:none}
  .home-footage-credit{left:20px;top:auto;bottom:16px;font-size:9px}
  .home-filmstrip{padding:0;border-top:1px solid #365359}
  .home-filmstrip>button{flex:0 0 25%}
  .home-filmstrip>button{min-height:90px;padding:13px 4px;display:flex;flex-direction:column;gap:8px;text-align:center}
  .home-filmstrip img{width:60px;height:34px}.home-filmstrip small{display:none}.home-filmstrip strong{font:10px/1.4 sans-serif;white-space:normal}
  .home-seamanship{padding:36px 24px;grid-template-columns:1fr;gap:17px}.home-seamanship h2{font-size:34px}.home-seamanship p{font-size:14px}
  .home-details{grid-template-columns:1fr;gap:30px;margin-top:9px}.home-detail figcaption{padding-top:17px}.home-detail h3{font-size:25px}.home-detail-copy{font-size:13px}
  .portal:has(.home-hero)>.portal-footer{margin:0 24px;padding:24px 0}
}
@media(max-width:360px){.home-hero .hero-actions .primary>span[aria-hidden]{display:none}}
/* A short landscape phone keeps the copy to the left and the fleet to the right. */
@media(max-width:1000px) and (max-height:520px) and (orientation:landscape){
  .home-stage{height:440px;min-height:440px}
  .home-scenes{height:100%;max-height:none}
  .home-scene>img,.home-sailing-film{object-position:65% center}
  .home-stage:after{height:100%;max-height:none;background:linear-gradient(90deg,rgba(8,30,37,.86),rgba(8,30,37,.58) 38%,rgba(8,30,37,.08) 72%),linear-gradient(0deg,rgba(8,30,37,.7),transparent 28%)}
  .home-hero .hero-copy{left:24px;right:auto;top:25px;transform:none;padding:0;width:calc(50% - 30px);max-width:360px}
  .portal .home-hero .eyebrow{font-size:8px;letter-spacing:1px}
  .portal .home-hero h1{font-size:46px;line-height:1.03;margin:12px 0}
  .portal .home-hero .lede{font-size:13px;line-height:1.55;margin:0}
  .home-hero .hero-actions{display:flex;gap:6px 14px;margin:14px 0 8px}
  .portal .home-hero .hero-actions .primary{min-width:0;min-height:44px;padding:10px 12px;font-size:12px}
  .portal .home-hero .hero-actions .quiet-link{display:inline-flex;align-items:center;min-height:44px;font-size:12px}
  .portal .home-hero .small-copy{font-size:9px}
  .home-scene-caption{position:absolute;left:auto;right:24px;bottom:44px;text-align:right;padding:0;max-width:42%}
  .portal .home-scene-caption p{font-size:19px;line-height:1.25;margin:7px 0 0}
  .home-footage-credit{left:24px;top:auto;bottom:18px;font-size:9px}
}
@media(prefers-reduced-motion:reduce){.home-scene,.home-sailing-film{transition:none}}

@media(prefers-reduced-motion:reduce){.home-hero .hero-copy,.home-hero .home-feature-actions{transition:none}}

.home-filmstrip:has(>button:nth-child(2):last-child){grid-template-columns:repeat(2,minmax(0,1fr))}
.portal-masthead { flex-shrink:0; }
.play-modes { border-top:2px solid var(--ink);margin:8px 0 46px; }
.play-mode,.play-mode.career-invitation { display:grid;grid-template-columns:190px minmax(200px,1fr) 230px;gap:8px 30px;align-items:start;padding:25px 0;background:transparent;border:0;border-bottom:1px solid var(--line);border-radius:0;margin:0;min-width:0; }
.play-mode>.eyebrow { grid-column:1;grid-row:1; }
.play-mode>h2 { grid-column:1;grid-row:2;font:30px Georgia,serif;margin:0; }
.play-mode p { font-size:13px;line-height:1.8; }
.play-mode>p:first-of-type { grid-column:2;grid-row:1/3;margin:0;max-width:530px; }
.play-mode>.mode-reward,.play-mode>.career-rewards { grid-column:2;grid-row:3;border:0;padding:0;margin:0;font-size:11px; }
.play-mode>.quiet-link { grid-column:3;grid-row:1/4;justify-self:end;align-self:center;min-height:44px;display:flex;align-items:center; }
.play-section-heading { margin:0 0 25px; }
.play-section-heading h2 { font:34px Georgia,serif;margin:12px 0; }
.play-section-heading p { font-size:13px; }
.practice-section .portal-heading { margin-bottom:24px; }
.practice-section .lobby-brief { padding:26px; }
.practice-section .lobby-brief h2 { font-size:29px; }
.practice-section .lobby-map { max-height:300px; }
.play-active { display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;margin:0 0 25px; }
.play-active a { display:grid;grid-template-columns:1fr auto;gap:8px 16px;padding:18px 22px;background:#e7eddf;border:1px solid var(--line);border-left:3px solid #528175;text-decoration:none; }
.play-active span { grid-column:1/-1;font-size:10px;letter-spacing:1px;text-transform:uppercase; }
.play-active strong { font:22px Georgia,serif; }
.play-active b { font-size:12px;align-self:center; }
.account-race-list { list-style:none;padding:0;margin:22px 0; }
.account-race-list li { padding:16px 0;border-top:1px solid var(--line); }
.account-race-list span { display:block;font-size:10px;margin-bottom:8px;color:#65786f; }
.account-race-list a { font-size:15px;text-underline-offset:4px; }
.home-decisions { display:grid;grid-template-columns:1fr 1fr;gap:9%;padding:38px 0 45px;border-top:1px solid var(--line); }
.home-decisions h2 { font:36px/1.2 Georgia,serif;margin:15px 0 22px; }
.home-decisions p { font-size:14px;max-width:570px;line-height:1.9; }
.home-rivals { align-self:center; }
.home-waters h2 { margin-bottom:12px; }
.home-race-list a { display:flex;align-items:center;gap:16px;padding:17px 0;border-bottom:1px solid var(--line);text-decoration:none;min-width:0; }
.home-race-list .race-art { width:64px;height:64px;flex:0 0 64px; }
.home-race-list a>span:nth-child(2) { flex:1;min-width:0; }
.home-race-list strong { display:block;font:20px/1.3 Georgia,serif; }
.home-race-list small { display:block;margin-top:6px;font-size:11px;line-height:1.6; }
.home-race-list a:hover strong { text-decoration:underline;text-underline-offset:4px; }
.home-rivals h2 { margin-bottom:10px; }
.home-portraits { display:flex;margin:22px 0;gap:18px; }
.home-portraits .skipper-portrait { width:100%;height:auto;aspect-ratio:1;max-width:150px; }
.home-captain { display:block;min-width:0;flex:1;text-decoration:none; }
.home-captain strong { display:block;margin:10px 0 5px;font-size:12px;font-weight:600; }
.home-captain>span:last-child { display:block;font-size:10px;line-height:1.6; }
.home-play { border-top:1px solid var(--line);padding-top:35px; }
.single-catalog { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:25px; }
.single-event { background:var(--paper);border:1px solid var(--line);border-radius:5px;overflow:hidden;min-width:0; }
.single-event>.course-sketch { display:block;width:100%;max-height:290px;background:#153d46; }
.single-event>div { padding:28px; }
.single-event h2 { font:32px Georgia,serif;margin:15px 0; }
.single-event p,.single-rewards { font-size:13px;line-height:1.8; }
.single-event .button { width:100%;margin:22px 0 12px; }
.single-event small { display:block;font-size:11px; }
.single-rewards { border-block:1px solid var(--line);padding:16px 0;margin:18px 0; }
.single-rewards div+div { margin-top:12px; }
.single-rewards dt { font-size:11px; }
.single-rewards dd { font-weight:600;margin:4px 0; }
.single-prizes summary,.single-retirement summary { cursor:pointer;font-size:12px;min-height:44px;display:flex;align-items:center;gap:8px; }
.single-prizes summary::before,.single-retirement summary::before { content:'+'; }
.single-prizes[open] summary::before,.single-retirement[open] summary::before { content:'−'; }
.single-prizes ol { padding-left:20px;font-size:12px;line-height:1.9; }
.single-facts { font-size:12px; }
.play-balance { font-size:12px;white-space:nowrap; }
.play-balance strong { display:block;font:32px OffshoreMono,ui-monospace,monospace;margin-bottom:5px; }
.play-balance span { display:block;margin-top:12px; }
.play-resume { display:flex;align-items:center;gap:24px;flex-wrap:wrap;background:#e7eddf;border:1px solid var(--line);padding:25px;margin:0 0 25px; }
.play-resume>div { flex:1;min-width:220px; }
.play-resume h2 { font:28px Georgia,serif;margin:12px 0; }
.play-resume p { font-size:13px; }
.single-retirement { width:100%;border-top:1px solid var(--line); }
.single-result { border:1px solid var(--line);padding:24px;margin-bottom:25px; }
.single-result h2 { font:28px Georgia,serif;margin:12px 0; }
.single-result p { display:flex;gap:20px;flex-wrap:wrap;font-size:15px; }
.single-result small,.play-footnote { font-size:12px;line-height:1.8; }
.single-result { display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap; }
.single-result-actions { display:grid;gap:18px; }
.single-result-actions a { font-size:12px; }
.play-footnote { margin-top:28px; }
.live-races-link { display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:18px 0;margin:-24px 0 32px;border-block:1px solid var(--line);font-size:12px;text-decoration:none; }
.live-races-link strong { font-weight:600; }
.live-formats { display:grid;grid-template-columns:1fr 1fr;gap:35px;margin:0 0 28px; }
.live-formats section { padding:28px;border:1px solid var(--line);background:var(--paper); }
.live-formats h2 { font:30px Georgia,serif;margin:0 0 16px; }
.live-formats p { line-height:1.8;font-size:14px; }
@media(max-width:1000px){.play-mode,.play-mode.career-invitation{grid-template-columns:155px 1fr;gap:8px 24px}.play-mode>.quiet-link{grid-column:2;grid-row:4;justify-self:start;margin-top:4px}.home-decisions{gap:5%}}
@media(max-width:760px){
  .play-modes{margin-bottom:30px}
  .play-mode,.play-mode.career-invitation{grid-template-columns:1fr;gap:8px;padding:23px 0}
  .play-mode>.eyebrow,.play-mode>h2,.play-mode>p:first-of-type,.play-mode>.mode-reward,.play-mode>.career-rewards,.play-mode>.quiet-link{grid-column:1;grid-row:auto}
  .play-mode>h2{font-size:28px}.play-mode>.quiet-link{margin-top:5px}
  .home-decisions,.single-catalog,.live-formats{grid-template-columns:1fr}
  .home-decisions{gap:28px;padding-top:28px}.home-decisions h2{font-size:31px}
  .home-portraits{gap:12px}.home-captain strong{font-size:11px}.home-captain>span:last-child{font-size:9px}
  .single-event>div,.live-formats section{padding:22px}
  .play-resume{padding:20px}.play-resume>.button{width:100%}.live-formats{gap:18px}
}

/* Small tactical sketches distinguish the two choices without repeating their labels. */
.play-mode.mode-illustrated { grid-template-columns:160px minmax(200px,1fr) 230px;align-items:center;gap:6px 26px; }
.mode-chart { grid-column:1;grid-row:1/4;width:160px;height:100px;display:block; }
.play-mode.mode-illustrated>h2 { grid-column:2;grid-row:1;font-size:28px;align-self:end; }
.play-mode.mode-illustrated>p:first-of-type { grid-column:2;grid-row:2;margin:0;line-height:1.7;align-self:start; }
.play-mode.mode-illustrated>.quiet-link { grid-column:3;grid-row:1/4; }
@media(max-width:1000px) {
  .play-mode.mode-illustrated { grid-template-columns:120px minmax(0,1fr);gap:5px 22px; }
  .mode-chart { width:120px;height:75px; }
  .play-mode.mode-illustrated>.quiet-link { grid-column:2;grid-row:3;justify-self:start;margin:0; }
}
@media(max-width:580px) {
  .play-mode.mode-illustrated { grid-template-columns:80px minmax(0,1fr);gap:3px 16px; }
  .mode-chart { width:80px;height:50px;align-self:start;margin-top:4px; }
  .play-mode.mode-illustrated>h2 { font-size:25px; }
}
.sailing-navigation{display:flex;gap:8px;flex-wrap:wrap;padding:20px 0;border-bottom:1px solid var(--line)}
.sailing-navigation a{padding:10px 16px;min-height:44px;display:flex;align-items:center;text-decoration:none;border-radius:3px;font-size:13px}
.sailing-navigation a[aria-current=page]{background:#234b49;color:#fff8e9}
.sailing-navigation a:hover{box-shadow:inset 0 0 0 1px #879f91}
.sailing-navigation a:focus-visible,#sailing-home a:focus-visible{outline:3px solid #b56b39;outline-offset:4px}
.clubhouse-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:42px 0 26px}
.clubhouse-heading h1{max-width:850px;margin:12px 0;font-size:clamp(32px,4vw,52px);overflow-wrap:anywhere}
.clubhouse-heading p{margin:0}.clubhouse-heading>.quiet-link{flex-shrink:0}
.sailing-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.sailing-choices>section{padding:32px;border:1px solid #c8d2c4;border-radius:6px;min-width:0;background:#fffdf4}
.sailing-choices>.sailing-world{background:#e7ede2;border-top:4px solid #315d58}
.sailing-choices>.sailing-own{border-top:4px solid #b87c50}
.sailing-choices>.sailing-practice{margin:0;border-top:4px solid #81968a}
.sailing-choices>.sailing-race{border-top:4px solid #b87c50;background:#f8f2e6}
.sailing-choices>.sailing-career{border-top:4px solid #315d58;background:#e7ede2}
.sailing-mode{display:flex;flex-direction:column;align-items:flex-start}
.sailing-mode>h3{font:25px/1.3 Georgia,serif;margin:26px 0 0;color:#284c47}
.sailing-mode>.button{margin-top:auto;min-height:44px;max-width:100%}
.sailing-mode>.sailing-caption{margin-bottom:0}
.sailing-mode .sailing-card-heading{gap:12px}.sailing-mode .race-art{width:64px;height:64px}.sailing-mode .sailing-card-heading h2{font-size:32px}
.sailing-mode .eyebrow{font-size:9px;letter-spacing:1.2px}
.sailing-mode .sailing-facts{gap:8px 12px;margin:8px 0 24px}
.waters-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.waters-heading h2{font:29px/1.3 Georgia,serif;margin:8px 0;color:#284c47}
.waters-heading button{border:0;background:none;min-height:44px;color:#365f57;cursor:pointer;font:inherit;padding:8px 12px;border-radius:3px}.waters-heading button[aria-pressed=true]{background:#e3eade}
.waters-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.waters-selector{margin:20px 0 30px}.sailing-waters{margin-top:48px}
.water-option,.water-destination{display:flex;flex-direction:column;align-items:flex-start;gap:9px;text-align:left;padding:24px;background:#fffdf4;border:1px solid #c8d2c4;border-radius:5px;min-width:0;color:#294f48}
.water-option{font:inherit;cursor:pointer;min-height:158px}.water-option:hover{border-color:#7b9685}.water-option[aria-pressed=true]{background:#e7ede2;border-color:#315d58;box-shadow:inset 0 0 0 1px #315d58}
.water-option strong,.water-destination h3{font:26px/1.25 Georgia,serif;margin:0}.water-option>span:not(.eyebrow),.water-destination p{font-size:14px;margin:0}.water-option small,.water-destination small{font-size:11px;line-height:1.6;color:#607269}
.water-option:focus-visible,.waters-heading button:focus-visible{outline:3px solid #b56b39;outline-offset:3px}
.water-destination>div{display:flex;flex-wrap:wrap;gap:12px 24px;margin-top:9px}.water-destination a{font-size:13px;min-height:44px;display:inline-flex;align-items:center}
.sailing-next{margin-top:36px;padding:28px 32px;border:1px solid #c8d2c4;border-radius:5px;background:#e7ede2}.sailing-next h2{font:28px Georgia,serif;margin:12px 0}.sailing-next .world-invitation{display:grid;grid-template-columns:1fr 1fr;gap:24px}.sailing-next .world-live{margin:0}
.career-welcome{display:grid;grid-template-columns:1.1fr 1fr;gap:32px}.career-chapter{padding:32px;border:1px solid #c8d2c4;border-top:4px solid #315d58;border-radius:5px;background:#e7ede2}.career-life{padding:28px}.career-life h2{font:32px/1.3 Georgia,serif;margin:14px 0}.career-life>.quiet-link{display:block;margin-top:20px}.career-chapter-note{border-top:1px solid #c8d2c4;margin-top:30px;padding-top:20px;font-size:13px;line-height:1.7}.career-chapter-note strong{font-size:14px}
.lobby-race[hidden]{display:none}
.sailing-card-heading{display:flex;align-items:center;gap:18px}.sailing-card-heading .race-art{width:86px;height:86px;flex-shrink:0}.sailing-card-heading h2{font-size:36px;margin:5px 0 8px}.sailing-card-heading>div>span:last-child{font-size:12px;color:#4d665b}
.sailing-facts{display:flex;flex-wrap:wrap;gap:6px 16px;margin:20px 0 25px;font-size:12px;font-weight:600;color:#476257}.sailing-facts span{border-bottom:1px solid #becdc0;padding-bottom:7px}
.sailing-choices p{font-size:14px}.sailing-choices .sailing-caption,.sailing-caption{font-size:12px;line-height:1.7;color:#5d7165}
.world-next{border-top:1px solid #becdc0;padding:22px 0}.world-next h3{font:28px/1.25 Georgia,serif;margin:8px 0;color:#234b49}.world-next p{margin:10px 0 18px}
.world-live{display:flex;align-items:center;gap:12px;padding:16px 0;border-top:1px solid #becdc0;margin-bottom:18px;text-decoration:none}.world-live small{display:block;font-size:11px;margin-top:6px}.world-live>span:last-child{margin-left:auto;white-space:nowrap;font-size:12px}.world-live-dot{width:8px;height:8px;flex-shrink:0;border-radius:50%;background:#3c7563}.world-live strong{font-size:13px}
.sailing-practice{border-top:1px solid #d9ddcd;margin-top:28px;padding-top:25px}.sailing-practice h3{font:27px Georgia,serif;margin:10px 0}
.sailing-shared{display:flex;align-items:center;gap:24px;border-block:1px solid var(--line);padding:22px 0;margin-top:24px;font-size:12px;line-height:1.7}.sailing-shared strong{font:22px/1.3 Georgia,serif;flex:1}.sailing-shared>span{flex:2;color:#5d7165}.sailing-shared a{white-space:nowrap}
#sailing-resume:empty{display:none}#sailing-resume{margin-bottom:26px}#sailing-resume h2{font-size:24px;margin:0 0 14px}.sailing-resume-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:12px}.sailing-resume-item{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px;background:#f9f6eb;border:1px solid #c5d1c4;border-left:3px solid #b87c50;text-decoration:none;border-radius:3px}.sailing-resume-item small{font-size:9px;letter-spacing:1px}.sailing-resume-item strong{display:block;font:20px Georgia,serif;margin:8px 0}.sailing-resume-item span>span{font-size:11px;color:#5d7165}.sailing-resume-item b{font-size:12px;font-weight:500;white-space:nowrap}
#newport-page .world-invitation{display:grid;grid-template-columns:1fr 1fr;gap:24px;background:#e7ede2;padding:0 24px;border:1px solid #c8d2c4;border-radius:4px}#newport-page .world-next{border:0}#newport-page .world-live{border:0;margin:0}
@media(max-width:760px){.sailing-choices{grid-template-columns:1fr}.sailing-choices>section{padding:24px}.clubhouse-heading{align-items:flex-start;flex-direction:column;padding-top:28px;gap:16px}.sailing-shared{align-items:flex-start;flex-direction:column;gap:10px}.sailing-navigation{gap:2px}.sailing-navigation a{padding:9px 11px;font-size:12px}#newport-page .world-invitation{grid-template-columns:1fr;gap:0}#newport-page .world-live{padding-bottom:24px}.sailing-card-heading h2{font-size:30px}.sailing-card-heading .race-art{width:70px;height:70px}.sailing-resume-item{align-items:flex-start;flex-direction:column}}
@media(prefers-reduced-motion:no-preference){.sailing-choices>section{animation:sailing-arrive .35s ease-out}@keyframes sailing-arrive{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}}
@media(min-width:761px) and (max-width:1100px){.sailing-choices>section{padding:22px}.sailing-mode .sailing-card-heading{display:block}.sailing-mode .sailing-card-heading>div{margin-top:12px}.sailing-mode>h3{font-size:22px}}
@media(min-width:1001px){.sailing-navigation{display:none}}
@media(max-width:760px){.waters-options,.career-welcome,.sailing-next .world-invitation{grid-template-columns:1fr}.water-option{min-height:140px}.sailing-mode>.button{margin-top:6px}.sailing-mode .sailing-card-heading{display:flex}.sailing-next,.career-chapter{padding:24px}.career-life{padding:12px 0}.sailing-next .world-live{padding-bottom:0}.waters-heading{align-items:flex-start}.waters-heading h2{font-size:25px}.waters-heading>button{flex-shrink:0}.sailing-waters{margin-top:32px}}
.clubhouse{padding-top:28px}.club-heading{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:24px}.club-heading h1{font:500 clamp(36px,4vw,58px)/1.08 Georgia,serif;margin:10px 0 0;letter-spacing:-.03em}.club-heading>p{font-size:14px;line-height:1.7;color:#a7bbb7;margin:0 0 3px}.club-layout{display:grid;grid-template-columns:minmax(0,1fr) 308px;min-height:560px;border:1px solid #52645e;border-radius:4px;overflow:hidden;background:#e9e5d9}.club-world{position:relative;min-width:0;min-height:560px;background:#8dadaf}.club-world canvas{display:block;width:100%;height:100%;position:absolute;inset:0;touch-action:none;outline-offset:-4px}.club-location{position:absolute;top:26px;left:28px;color:#f9f2df;pointer-events:none;text-shadow:0 1px 8px #153a46}.club-location>span{display:block;font-size:10px;letter-spacing:.25em;margin-bottom:7px}.club-location strong{font:500 23px/1.2 Georgia,serif}.club-vr{position:absolute;right:18px;top:20px;padding:11px 16px;border:1px solid #e2d7b8;background:#133c3ee6;color:#fff8e9;cursor:pointer;font:inherit;font-size:12px}.club-look{position:absolute;bottom:14px;left:24px;margin:0;color:#fffaeb;text-shadow:0 1px 5px #122c32;pointer-events:none;font-size:11px;letter-spacing:.02em}.club-loading{position:absolute;top:45%;left:10%;right:10%;background:#183d40e8;color:#fff6df;padding:20px;text-align:center;font-size:14px}.club-desk{padding:30px 25px;color:#213b3b;overflow:auto;max-height:640px;background:#f3efe3}.club-desk .eyebrow{font-size:10px;color:#6c7667;letter-spacing:.13em}.club-desk h2{font:500 30px/1.14 Georgia,serif;letter-spacing:-.02em;margin:13px 0 18px;overflow-wrap:anywhere}.club-desk p{font-size:13px;line-height:1.7;color:#526460}.club-member{border-top:1px solid #c9c9b6;border-bottom:1px solid #c9c9b6;padding:19px 0;margin:23px 0}.club-member>span,.club-member>small{display:block;font-size:10px;color:#6a7466}.club-member>span{letter-spacing:.12em}.club-member>strong{display:block;font:500 24px Georgia,serif;margin:7px 0;overflow-wrap:anywhere}.club-action{display:flex;justify-content:space-between;gap:12px;background:#204c4c;color:#fff5df!important;padding:13px 14px;text-decoration:none;font-size:12px;line-height:1.5;margin-top:20px}.club-action:hover{background:#326263}.club-text-link{display:block;margin:16px 0;color:#315957;font-size:12px}.club-desk .club-small{font-size:11px;line-height:1.65;color:#72786c}.club-starts{list-style:none;padding:0;margin:20px 0}.club-starts li{padding:14px 0;border-top:1px solid #cecdbb}.club-starts li>span,.club-starts time,.club-starts small{display:block;font-size:10px;color:#67776b;margin:5px 0}.club-starts a{color:#214a49;display:block;font:500 17px/1.25 Georgia,serif;text-decoration:none}.club-desk .passage-map{width:100%;height:auto;margin:18px 0 4px}.club-course-label{display:block;font-size:11px;margin:18px 0 7px}.club-desk select{width:100%;min-width:0;background:#fffdf5;border:1px solid #b7bca9;color:#1e4648;padding:9px;font:inherit;font-size:11px}.club-boat-facts{display:flex;gap:24px;padding:17px 0;border-block:1px solid #cfcebc;margin:24px 0}.club-boat-facts dt{font-size:10px;color:#758075}.club-boat-facts dd{margin:7px 0 0;font:18px Georgia,serif}.club-notice{border-left:2px solid #b27a51;padding-left:12px}.club-destinations{display:grid;grid-template-columns:repeat(5,1fr);margin-top:0;border:1px solid #52645e;border-top:0;background:#173438}.club-destinations button{display:flex;gap:12px;align-items:center;background:transparent;color:#c5d2c9;border:0;border-right:1px solid #49615c;padding:19px 17px;font:inherit;font-size:12px;cursor:pointer;text-align:left}.club-destinations button:last-child{border:0}.club-destinations button>span{font-size:10px;color:#b38560}.club-destinations button[aria-pressed=true]{background:#2a5050;color:#fff4d9;box-shadow:inset 0 -2px #cfaa77}.club-destinations button:hover{background:#2a5050}.club-status{font-size:11px;color:#8fa69e;margin-top:13px;min-height:18px}.clubhouse button:focus-visible,.clubhouse a:focus-visible{outline:2px solid #b88754;outline-offset:3px}
@media(min-width:1400px){.club-world,.club-layout{min-height:640px}}
@media(max-width:850px){.club-layout{grid-template-columns:1fr}.club-world{min-height:440px}.club-desk{max-height:none;padding:24px}.club-desk h2{font-size:27px}.club-heading{align-items:start}.club-heading>p{font-size:12px}.club-destinations button{padding:16px 10px;font-size:11px;gap:7px}.club-desk .passage-map{max-width:400px}.club-starts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 20px}.club-desk .club-small{max-width:560px}}
@media(max-width:500px){.club-heading{display:block}.club-heading>p{margin-top:13px}.club-world{min-height:370px}.club-location{left:17px;top:19px}.club-location strong{font-size:20px}.club-vr{top:auto;bottom:43px;right:14px;font-size:11px}.club-destinations{grid-template-columns:repeat(3,minmax(0,1fr))}.club-destinations button{border-bottom:1px solid #49615c}.club-look{left:16px;right:10px;font-size:10px}.club-starts{grid-template-columns:1fr}.clubhouse .eyebrow{font-size:9px}}
html{scrollbar-gutter:stable}
.club-signature{display:inline-flex;align-items:center;gap:8px;white-space:nowrap}
.club-signal-flags{display:block;flex:none;width:70px;height:10px}
.race-footer .club-signature .beta-badge{margin-left:0}
@media(max-width:760px){.club-signature{gap:6px}.club-signal-flags{width:58px;height:8px}}
:root{--site-background:#f4f3ed;font-family:OffshoreInter,Inter,"Segoe UI",Arial,sans-serif;color:#20383c;background:var(--site-background);font-synthesis:none;font-weight:400;font-size:14px;--ink:#17383d;--muted:#73817d;--line:#dddfd6;--paper:#fcfcf7;--accent:#e7a17a}
*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,select{cursor:pointer}button{transition:background .15s,opacity .15s}button:disabled{cursor:default;opacity:.5}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,canvas:focus-visible{outline:3px solid #c77a4e;outline-offset:3px}button{color:inherit}button svg{width:20px}button:not(:disabled):hover{filter:brightness(.96)}[hidden]{display:none!important}
.masthead{height:70px;background:#102d35;color:#e8eee6;padding:0 36px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:inherit}.brand svg{width:30px;height:30px;color:#e7aa84}.brand>span{font-weight:750;font-size:18px;letter-spacing:3px}.brand i{font-style:normal;color:#99b2b2;font-size:9px;letter-spacing:2px;margin-left:15px;border-left:1px solid #4c6266;padding-left:20px}.masthead-right{display:flex;align-items:center;gap:28px}.connection{display:flex;align-items:center;gap:7px;color:#afbeb9;font-size:11px}.connection:before{content:'';width:6px;height:6px;background:#d8a671;border-radius:50%}.connection.online:before{background:#94b9a3}.help-button{border:0;background:none;color:#e7eee6;font-size:12px}.help-button span{display:inline-flex;align-items:center;justify-content:center;border:1px solid #70868a;border-radius:50%;width:19px;height:19px;font-size:11px;margin-left:8px}
main{max-width:1660px;margin:auto;padding:30px 36px 0}.race-heading{display:flex;justify-content:space-between;align-items:center;gap:22px;margin-bottom:28px}.eyebrow{font-size:10px;font-weight:650;letter-spacing:1.5px;color:#74807a}.tiny-line{display:inline-block;width:18px;height:2px;background:#be805e;vertical-align:middle;margin:0 8px 3px 0}h1{font-family:Georgia,"Times New Roman",serif;font-weight:400;letter-spacing:-1px;font-size:40px;margin:9px 0 8px;line-height:1.05}.race-heading p{color:#78837d;font-size:12px;margin:0;line-height:1.5}.race-controls{display:flex;gap:23px;align-items:center;padding-top:15px}.race-clock>span,.rate-label>span{display:block;font-size:9px;letter-spacing:1.4px;color:#73817b;margin-bottom:7px}.race-clock strong{font:22px OffshoreMono,ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.5px;white-space:nowrap}.rate-label select{border:0;border-bottom:1px solid #c6cec4;color:#3c5757;background:transparent;padding:2px 17px 5px 0;min-width:76px;font-size:12px}.button{display:flex;align-items:center;justify-content:space-between;gap:25px;border:0;border-radius:3px;min-height:44px;padding:0 18px;font-size:12px;font-weight:650}.button span{font-size:18px;font-weight:400}.primary{background:#21484a;color:#f3f4e9}.race-controls .primary{min-width:139px}
.workspace{display:grid;grid-template-columns:minmax(0,1fr) 322px;gap:20px;align-items:start}.chart-card{border:1px solid #d8ddd3;border-radius:5px;overflow:hidden;box-shadow:0 2px 4px #122f3505}.chart-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;height:53px;background:var(--paper);padding:0 19px}.chart-toolbar>div:first-child{display:flex;align-items:center;gap:9px}.chart-toolbar strong{font-size:12px;font-weight:600}.live-dot{width:6px;height:6px;background:#6d9b89;border-radius:50%;display:inline-block}.chart-subtitle{font-size:8px;color:#939c94;letter-spacing:1.3px;padding-left:11px;border-left:1px solid #d4dbd0;margin-left:4px}.layers{display:flex;gap:16px}.layers label{display:flex;gap:6px;align-items:center;font-size:10px;color:#64756e}.layers input{appearance:none;width:12px;height:12px;border:1px solid #b8c2b6;border-radius:2px;margin:0;cursor:pointer}.layers input:checked{background:#477770;border-color:#477770}.layers input:checked:after{content:'✓';color:#fff;font-size:10px;position:relative;top:-2px;left:1px}.chart-wrap{height:528px;position:relative;background:#153c46;overflow:hidden}#chart{display:block;width:100%;height:100%;cursor:crosshair;touch-action:manipulation}.chart-note{position:absolute;top:23px;left:24px;pointer-events:none;color:#adc5c3}.chart-note>span{font-size:8px;letter-spacing:1.6px;color:#82a9aa}.chart-note p{font-size:11px;line-height:1.7;margin:8px 0 0;color:#c0d5ce}.chart-compass{position:absolute;right:22px;top:21px;color:#b7cdca;display:flex;flex-direction:column;align-items:center;pointer-events:none}.chart-compass span{font:10px OffshoreMono,ui-monospace,monospace;letter-spacing:1px}.chart-compass svg{width:27px;height:38px;margin-top:5px}.chart-legend{position:absolute;bottom:22px;left:24px;display:flex;gap:16px;color:#bcd1ca;font-size:9px;pointer-events:none}.chart-legend>span{display:flex;gap:6px;align-items:center}.legend-boat,.legend-rival{height:7px;width:7px;border-radius:50%;background:#efad87}.legend-rival{background:#d6e7df}.legend-track{width:18px;border-top:1px dashed #eec49f}.chart-caption{min-height:43px;background:#e9ede4;display:flex;justify-content:space-between;align-items:center;padding:8px 18px;gap:15px;font-size:10px;color:#6e7d72;line-height:1.4}.cursor-icon{color:#4d776c;font-size:18px;vertical-align:middle;padding-right:5px}.direction-arrow{font-size:16px;padding-left:6px}.chart-caption>span:last-child{white-space:nowrap;font-size:9px;color:#859187}
.sidebar{display:flex;flex-direction:column;gap:16px}.helm-card,.instrument-card,.fleet-card,.log-card{background:var(--paper);border:1px solid var(--line);border-radius:5px;padding:20px}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:12px}.boat-tag{font-size:8px;letter-spacing:.7px;border:1px solid #e2c8b6;border-radius:3px;color:#a36a45;padding:4px 6px}.helm-card h2{font:26px Georgia,serif;font-weight:400;margin:13px 0 22px}.helm-card h2>span{display:block;font:10px "Segoe UI",Arial,sans-serif;color:#849084;margin-top:6px}.input-label{display:flex;justify-content:space-between;align-items:center;font-size:10px;color:#5d7067;margin-bottom:10px}.input-label>span{font-size:9px;color:#8a968b}.input-label>span.pending{color:#ad704a}.heading-control{display:flex;align-items:center;justify-content:space-between;gap:15px}.heading-control>button{border:1px solid #dce1d6;background:transparent;border-radius:50%;width:29px;height:29px;font-size:19px;color:#849287}.heading-control>div{display:flex;align-items:baseline;justify-content:center}.heading-control input{appearance:textfield;-moz-appearance:textfield;max-width:106px;text-align:center;font:46px OffshoreMono,ui-monospace,SFMono-Regular,Consolas,monospace;font-weight:400;border:0;background:transparent;color:#1d4144;padding:0;letter-spacing:-3px}.heading-control input::-webkit-inner-spin-button{appearance:none}.heading-control>div>span{font:20px Georgia,serif;color:#95a396;margin-left:3px}.heading-range{width:100%;height:3px;accent-color:#537a70;margin:16px 0 6px;cursor:pointer}.heading-hints{display:flex;justify-content:space-between;color:#9aa598;font:8px OffshoreMono,ui-monospace,monospace}.course-readout{display:flex;align-items:center;justify-content:space-between;padding:17px 0;margin:8px 0 15px;border-bottom:1px solid #e4e7dd}.course-readout>div>span{display:block;font-size:8px;color:#8a9589;letter-spacing:.6px}.course-readout strong{display:block;font:17px OffshoreMono,ui-monospace,monospace;margin-top:6px}.course-readout small{font-size:10px;color:#8b978b}.course-readout button{font-size:9px;padding:7px 0 7px 7px;border:0;background:transparent;color:#577d6e;max-width:70px;text-align:right;line-height:1.5}.sail-options{display:flex;padding:3px;border:1px solid #dfe3d8;border-radius:3px;background:#f1f3ec;gap:3px}.sail-options button{flex:1;border:0;border-radius:2px;background:transparent;padding:8px 3px;font-size:10px;color:#86917f;white-space:nowrap}.sail-options button[aria-pressed=true]{background:#fbfcf6;color:#3a6256;box-shadow:0 1px 3px #203c3a18}.sail-help{font-size:9px;color:#8b9689;margin:9px 0 18px;line-height:1.5}.apply-button{width:100%;background:#e8aa85;color:#3d4235}.apply-button:disabled{background:#e8d3bf;color:#7e8575;opacity:.75}.standing-note{margin:10px 0 0;text-align:center;font-size:9px;color:#99a18f;line-height:1.5}.course-warning{color:#986326;background:#fbf0db;padding:8px;border-radius:3px;font-size:10px;line-height:1.5}.instrument-card{padding:17px 20px}.small-status{font-size:9px;color:#8c998d}.instruments{display:grid;grid-template-columns:1fr 1fr;gap:18px 16px;margin-top:18px}.instruments>div>span{font-size:8px;color:#899588;letter-spacing:.8px;display:block;margin-bottom:5px}.instruments strong{display:block;font:23px OffshoreMono,ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:-.7px}.instruments strong small{font:11px "Segoe UI",Arial,sans-serif;color:#91a08e}.instruments em{display:block;font-style:normal;font-size:9px;color:#8c998e;margin-top:4px}
.fleet-card{grid-column:1;padding:19px 22px}.section-heading h2{font:21px Georgia,serif;margin:0;letter-spacing:-.3px;font-weight:400}.fleet-list{display:grid;grid-template-columns:1fr 1fr;margin-top:18px;gap:24px}.fleet-row{display:flex;align-items:center;gap:12px}.fleet-row:first-child{border-right:1px solid #e4e6dc;padding-right:24px}.fleet-dot{width:7px;height:7px;background:#92b3aa;border-radius:50%;flex:none}.fleet-dot.player{background:#d89970}.fleet-row>div strong{font-size:11px;font-weight:600;display:block}.fleet-row>div span{font-size:9px;color:#8d988b;display:block;margin-top:4px}.fleet-distance{margin-left:auto;font:20px OffshoreMono,ui-monospace,monospace;font-weight:400;white-space:nowrap}.fleet-distance small{font-size:10px;color:#8b998b}.finished-label{display:block;color:#748c76;font:9px "Segoe UI",Arial,sans-serif;text-align:right;margin-bottom:4px}.log-card{grid-column:2;grid-row:2;padding:19px 20px;min-height:131px}.text-button{border:0;background:none;color:#7e8c7b;font-size:10px;padding:0}.log-card ol{padding:0;margin:16px 0 0;list-style:none}.log-card li{display:flex;gap:10px;font-size:9px;color:#7e8b7e;line-height:1.6;margin-top:7px}.log-card time{font:8px OffshoreMono,ui-monospace,monospace;color:#a2aa9a;flex:none;padding-top:2px}.log-card li:first-child>span{color:#57715f}footer{display:flex;justify-content:space-between;padding:21px 0 25px;font-size:9px;color:#98a08f;gap:20px}footer>span:first-child{font-family:Georgia,serif;font-size:12px;font-style:italic;color:#89947f}
.error-banner{padding:12px 16px;background:#fae8d8;border:1px solid #e1ba9a;color:#915f3e;margin-bottom:18px;border-radius:4px;font-size:12px}.toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#21484a;color:#fbf4e7;padding:14px 23px;border-radius:5px;box-shadow:0 6px 24px #092e3930;z-index:10;max-width:90%;font-size:12px}.race-result{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:#f6f5e9f5;border:1px solid #d8d9b3;border-radius:5px;box-shadow:0 12px 50px #082b3250;padding:25px 30px;min-width:310px;max-width:85%;pointer-events:none}.race-result>span{font-size:9px;letter-spacing:1.8px;color:#9a7c4f}.race-result strong{display:block;font:27px Georgia,serif;margin-top:12px}.race-result p{color:#7d897b;font-size:11px;line-height:1.6;margin-bottom:0}
dialog{background:#f8f8f0;color:#274448;border:1px solid #dce2d2;border-radius:6px;max-width:520px;width:calc(100% - 30px);padding:35px;box-shadow:0 20px 100px #0e303b80}dialog::backdrop{background:#102c3870;backdrop-filter:blur(3px)}dialog h2{font:34px Georgia,serif;font-weight:400;margin:12px 0 18px}dialog p,dialog li{font-size:13px;color:#6f7e70;line-height:1.75}dialog ol{padding-left:18px}dialog li{padding-left:6px;margin-top:12px}dialog strong{color:#315247}.dialog-close{position:absolute;top:12px;right:16px;border:0;background:none;color:#8a9a8b;font-size:26px}.help-fine{font-size:11px!important;border-top:1px solid #dce1d2;padding-top:15px}dialog .button{margin-top:22px;width:100%}
@media(min-width:1400px){.chart-wrap{height:576px}.workspace{grid-template-columns:minmax(0,1fr) 342px}.helm-card{padding:22px 25px}.instrument-card{padding:20px 25px}.heading-control input{font-size:50px}.course-readout{padding:20px 0}.sail-help{margin-bottom:22px}}
@media(max-width:1100px){main{padding:24px 24px 0}.masthead{padding:0 24px}.workspace{grid-template-columns:minmax(0,1fr) 295px;gap:16px}.chart-subtitle{display:none}.race-controls{gap:15px}.race-heading{gap:15px}h1{font-size:34px}.chart-wrap{height:528px}.chart-legend{gap:10px;left:17px;font-size:8px}.chart-caption>span:last-child{display:none}.fleet-list{gap:15px}.fleet-row:first-child{padding-right:15px}.fleet-distance{font-size:17px}}
@media(max-width:850px){.brand i{display:none}.race-heading{align-items:flex-start;flex-direction:column;gap:18px}.race-controls{padding:0;width:100%;justify-content:flex-start;gap:25px}.race-controls .button{margin-left:auto}.workspace{grid-template-columns:minmax(0,1fr)}.chart-wrap{height:450px}.sidebar{display:grid;grid-template-columns:1fr 1fr;align-items:start}.fleet-card{grid-column:1;grid-row:3}.log-card{grid-column:1;grid-row:4}.instruments{gap:25px;margin-top:25px}.instruments strong{font-size:27px}.log-card{min-height:120px}.chart-subtitle{display:inline-block}}
@media(max-width:520px){.masthead{height:60px;padding:0 18px}.brand{gap:9px}.brand>span{font-size:15px;letter-spacing:2px}.brand svg{width:25px}.masthead-right{gap:10px}.connection{font-size:9px}.help-button{font-size:0}.help-button span{font-size:11px;margin:0}.race-heading{margin-bottom:20px}.race-heading p{font-size:11px;max-width:300px}main{padding:24px 16px 0}h1{font-size:34px}.race-controls{gap:14px}.race-clock strong{font-size:19px}.race-controls .primary{min-width:116px;padding:0 12px;gap:8px}.rate-label select{min-width:54px;max-width:75px;font-size:11px}.race-clock>span,.rate-label>span{font-size:8px}.chart-toolbar{padding:0 12px;height:46px}.chart-subtitle{display:none}.layers{gap:10px}.layers label{font-size:9px}.chart-wrap{height:390px}.chart-note{left:16px;top:17px}.chart-note p{font-size:9px}.chart-note>span{font-size:7px}.chart-compass{right:14px;top:17px}.chart-legend{left:16px;bottom:18px;gap:10px}.chart-legend>span{font-size:7px}.chart-caption{font-size:9px;padding:8px 12px}.sidebar{grid-template-columns:1fr}.helm-card{padding:22px}.helm-card h2{margin-bottom:20px}.instrument-card{padding:20px}.instruments{grid-template-columns:repeat(4,1fr);gap:10px}.instruments strong{font-size:21px}.instruments>div>span{font-size:7px;letter-spacing:.3px}.instruments em{font-size:8px}.instruments strong small{font-size:9px}.fleet-card{padding:20px 16px}.fleet-list{grid-template-columns:1fr;gap:15px}.fleet-row:first-child{border-right:0;padding:0}.fleet-row{gap:10px}.fleet-row>div{flex:1}.fleet-distance{font-size:20px}.section-heading>.eyebrow{font-size:8px}footer{flex-direction:column;gap:8px;padding:20px 0}dialog{padding:28px}.race-result{min-width:260px;padding:20px}.race-result strong{font-size:23px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

/* Geographic chart and its navigation controls. */
.view-switcher{display:flex;align-items:center;gap:4px;padding:8px 14px;background:var(--paper);border-bottom:1px solid var(--line);flex-wrap:wrap}.view-switcher>button{border:1px solid transparent;border-radius:4px;padding:8px 14px;background:transparent;color:inherit;font-size:11px;min-height:36px}.view-switcher>button[aria-pressed=true]{background:#21484a;color:#fff5e6}.view-switcher button span{font-size:7px;letter-spacing:.7px;margin-left:8px;opacity:.65}#helm-view-error{font-size:10px;color:#95613e;flex-basis:100%;padding:7px}
#helm-view{position:absolute;inset:0;z-index:1;background:#143743}#helm-canvas{display:block;width:100%;height:100%;touch-action:none;cursor:grab;outline-offset:-3px}#helm-canvas:active{cursor:grabbing}#helm-loading{position:absolute;inset:40% 10% auto;text-align:center;color:#e2e9db;font-size:13px}#helm-center{position:absolute;top:16px;right:16px;background:#173b46d9;color:#edf1df;padding:10px 12px;border:1px solid #829a9660}.helm-steering{position:absolute;bottom:18px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:12px;background:#173b46e8;color:#f2ecdc;padding:8px;border:1px solid #8fa59a60;border-radius:6px}.helm-steering button{border:1px solid #8da39560;background:#315663;color:#f1e8d4;border-radius:3px;padding:10px;font-size:11px;min-height:42px;white-space:nowrap}.helm-steering>span{font:17px OffshoreMono,ui-monospace,monospace;min-width:46px;text-align:center}
[data-view=helm] #chart-map,[data-view=helm] #chart,[data-view=helm] .map-controls,[data-view=helm] .chart-legend,[data-view=helm] .chart-compass,[data-view=helm] #chart-attribution,[data-view=helm] #chart-layers,[data-view=helm] #chart-status,[data-view=helm] #retry-chart{visibility:hidden;pointer-events:none}[data-view=helm] #chart-layers{display:none}[data-view=helm] #chart-status,[data-view=helm] #retry-chart{display:none}[data-view=helm] .chart-note{color:#eff0dc;text-shadow:0 1px 4px #123943;max-width:55%}[data-view=helm] .chart-note>span,[data-view=helm] .chart-note p{color:#f0ecd7}[data-theme=night] .view-switcher>button[aria-pressed=true]{background:#d1c39d;color:#14343c}
@media(max-width:520px){.view-switcher{padding:6px 10px}.helm-steering{gap:6px;padding:6px}.helm-steering button{font-size:10px;padding:9px}.helm-steering>span{font-size:15px;min-width:40px}#helm-center{top:12px;right:10px;font-size:9px;padding:9px}.chart-legend b{max-width:85px}}
.layer-menu{position:relative;color:var(--ink);font-size:12px}.layer-menu>summary{cursor:pointer;list-style:none;border:1px solid var(--line);padding:8px 12px;border-radius:3px;display:flex;gap:14px;align-items:center}.layer-menu>summary::-webkit-details-marker{display:none}.layer-panel{position:absolute;right:0;top:42px;width:260px;max-height:min(650px,70dvh);overflow:auto;z-index:1000;background:var(--paper);border:1px solid var(--line);padding:16px;border-radius:4px;box-shadow:0 10px 32px #123d3c25}.layer-panel label{display:flex;align-items:center;gap:8px;font-size:12px;margin:0 0 12px}.layer-panel label:has(select){display:block}.layer-panel select{display:block;width:100%;margin-top:7px;padding:8px;background:var(--paper);color:inherit;border:1px solid var(--line);border-radius:3px;font-size:11px}.layer-panel input{accent-color:#527e71}.layer-panel p{font-size:10px;line-height:1.6;color:var(--muted);margin:16px 0}.layer-panel>button{background:transparent;color:var(--ink);border:1px solid var(--line);border-radius:3px;padding:8px 12px;font-size:11px;width:100%}.chart-toolbar{position:relative;z-index:5}.chart-card{overflow:visible}.chart-wrap{overflow:hidden}#map-progress{position:absolute;left:12px;bottom:56px;max-width:calc(100% - 120px);padding:7px 10px;background:#f9f5e4ed;color:#79673e;border:1px solid #d6cfae;border-radius:3px;font-size:10px;z-index:4;pointer-events:none}.chart-note{max-width:min(300px,calc(100% - 90px))}.course-list-panel{border-top:1px solid var(--line);background:var(--paper);font-size:11px}.course-list-panel>summary{cursor:pointer;padding:12px 16px;color:var(--ink)}.course-list-panel>summary span{float:right;font-size:10px;color:var(--muted)}.course-list-panel ol{margin:0;padding:0 16px 12px;list-style:none;display:grid;gap:6px}.course-list-panel li button{display:flex;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:9px 10px;border:1px solid var(--line);background:transparent;color:inherit;border-radius:3px;text-align:left;font-size:11px}.course-list-panel li small{font-size:9px;color:var(--muted);white-space:nowrap}.course-list-panel li[data-state=next] button{border-color:#c69263;background:#ce945713}.course-list-panel li[data-state=cleared] button{opacity:.65}.fleet-list{gap:16px 24px}.fleet-row{min-width:0;border-bottom:1px solid var(--line);padding-bottom:12px}.fleet-row:first-child{border-right:0;padding-right:0}.fleet-row>div{min-width:0}.fleet-row>div span{overflow-wrap:anywhere}.fleet-distance{font-size:18px}.fleet-profile-link{font-size:10px;color:var(--muted);text-decoration:none}.fleet-profile-link:hover{text-decoration:underline}.fleet-row strong{overflow-wrap:anywhere}.is-fullscreen .course-list-panel{flex-shrink:0;max-height:30dvh;overflow:auto}.is-fullscreen .chart-toolbar{z-index:10}[data-theme=night] #map-progress{background:#203e42ed;color:#d6cba2;border-color:#56645a}
@media(max-width:520px){.layer-panel{right:-45px;width:250px}.layer-menu>summary{padding:7px 9px;font-size:11px}.chart-note{max-width:calc(100% - 95px)}#map-progress{font-size:9px}.source-strip #retry-chart{font-size:9px}.fleet-profile-link{font-size:9px}.course-list-panel>summary{font-size:10px}}
.chart-actions{display:flex;align-items:center;gap:16px}
.chart-button{display:flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:3px;background:transparent;padding:7px 9px;font-size:17px;line-height:1}
.chart-button span{font-size:10px}
.source-strip{display:flex;flex-wrap:wrap;gap:9px 20px;padding:10px 18px;background:#eef1e9;border-top:1px solid var(--line);font-size:10px;color:#627468}
.source-status{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.source-status:before{content:'';width:6px;height:6px;border-radius:50%;background:#9b9e94}
.source-status[data-state=live]:before{background:#43856a}
.source-status[data-state=loading]:before{background:#aaa16b}
.source-status[data-state=simulated]:before{background:#bb9153}
.source-status[data-state=offline]:before{background:#a28479}
.chart-wrap{isolation:isolate;background:#d9e7e4}
#chart-map{position:absolute;inset:0;z-index:0;background:transparent;cursor:grab;font:inherit}
#chart-map.leaflet-drag-target{cursor:grabbing}
#chart{position:absolute;inset:0;z-index:1;pointer-events:none;cursor:inherit}
.chart-note,.chart-compass,.chart-legend{z-index:2}
.chart-note{left:16px;top:16px;padding:10px 12px;border:1px solid #d8dfd09e;border-radius:3px;background:#f4f5ecdf;color:#54726c;max-width:250px}
.chart-note>span{color:#637d73}.chart-note p{color:#4d6b63;font-size:10px;margin:6px 0 0}
.chart-compass{color:#4d6c67;background:#f4f5ecbf;border-radius:20px;padding:8px 4px;right:15px;top:15px}
.map-controls{position:absolute;z-index:3;right:14px;top:106px;display:grid;grid-template-columns:1fr 1fr;width:78px;border:1px solid #cdd6c7;border-radius:4px;background:#fafbf3f0;box-shadow:0 2px 8px #163f3d15;overflow:hidden}
.map-controls button{border:0;background:transparent;min-height:33px;color:#365b51;font-size:10px}
.map-controls button:nth-child(-n+2){font-size:21px}
.map-controls button:nth-child(2){border-left:1px solid #dbe1d6}
.map-controls button:nth-child(n+3){grid-column:1/-1;border-top:1px solid #dbe1d6}
.map-controls output{grid-column:1/-1;text-align:center;font:9px OffshoreMono,ui-monospace,monospace;color:#809082;padding:7px;border-top:1px solid #dbe1d6}
.chart-legend{color:#45685e;bottom:25px;left:16px;background:#f8faf0e8;padding:7px 9px;border-radius:3px;gap:12px}
.legend-rival{background:#336e69}.legend-track{border-color:#b76437}
#chart-attribution{position:absolute;right:8px;bottom:4px;z-index:3;background:#f8faf0ec;color:#647e70;padding:2px 5px;font-size:9px;border-radius:2px}
#chart-attribution a{color:inherit;text-decoration:none}#chart-attribution a:hover{text-decoration:underline}
.chart-position{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px;background:var(--paper);font:10px OffshoreMono,ui-monospace,monospace;color:#567365;border-top:1px solid var(--line)}
.chart-position>span:last-child{font-size:9px;color:#8c9989}
.race-result{z-index:4;pointer-events:auto;width:420px;max-width:calc(100% - 32px);min-width:0;max-height:calc(100% - 24px);overflow:auto;padding:25px}
.result-close{position:absolute;right:8px;top:6px;width:40px;height:40px;border:0;background:transparent;color:inherit;font-size:27px}
.race-result>span{padding-right:28px;display:block}.result-actions{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0 12px}.result-actions .button{justify-content:center;flex:1;white-space:nowrap;gap:8px}.result-actions .secondary{background:transparent;border:1px solid #a8b9a6;color:inherit}.race-result>a{font-size:11px;color:inherit;text-underline-offset:3px}.race-result strong{overflow-wrap:anywhere}.race-result p{overflow-wrap:anywhere}
.country-flag{font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif;font-size:20px;line-height:1;display:inline-block;vertical-align:middle;flex:none}
.fleet-row>div{min-width:0}.fleet-row>div strong,.fleet-row>div span{overflow-wrap:anywhere}.helm-card h2>b{font-weight:400;overflow-wrap:anywhere}.helm-skipper{font-size:11px;color:#758578;margin:-10px 0 22px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.helm-skipper a{color:inherit;margin-left:auto}.chart-legend b{font-weight:400;max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#show-results{font-weight:600}#result-title{padding-right:12px}
@media(max-width:520px){.chart-toolbar>div:first-child{gap:5px}.chart-toolbar{gap:6px}.chart-actions{gap:5px}.chart-toolbar .chart-button{padding:7px 5px}.fleet-row{gap:8px}.race-result{padding:20px}.race-result strong{font-size:22px}}
#chart-error{background:#fae8d8;color:#915f3e;margin:0;padding:12px 16px;font-size:11px}
.fullscreen-race{display:none}
.daylight-card{background:var(--paper);border:1px solid var(--line);border-radius:5px;padding:18px 20px;grid-column:1/-1}
.daylight-now{display:flex;align-items:center;gap:12px;margin-top:17px}
#sky-icon{font:32px Georgia,serif;color:#b68b47}
.daylight-now strong{font-size:14px;font-weight:500;display:block}
#utc-clock{display:block;margin-top:5px;font:10px OffshoreMono,ui-monospace,monospace;color:#78917f}
#appearance{margin-left:auto;background:transparent;color:inherit;border:1px solid var(--line);border-radius:3px;padding:6px;font-size:11px;max-width:80px}
.daylight-card p{font-size:10px;color:#81927e;line-height:1.6;margin:14px 0 0}

/* The helm stays beside the chart in fullscreen; narrow screens can scroll. */
body.chart-expanded{overflow:hidden}
.workspace.is-fullscreen{position:fixed;inset:0;z-index:2000;width:100%;height:100dvh;background:#f4f3ed;padding:14px;gap:14px;grid-template-columns:minmax(0,1fr) 322px;align-items:stretch;overflow:hidden}
.is-fullscreen .chart-card{display:flex;flex-direction:column;min-height:0}
.is-fullscreen .chart-wrap{flex:1;height:auto;min-height:200px}
.is-fullscreen .chart-toolbar,.is-fullscreen .source-strip,.is-fullscreen .chart-position,.is-fullscreen .chart-caption{flex-shrink:0}
.is-fullscreen .sidebar{overflow:auto;min-height:0;padding-right:3px}
.is-fullscreen .fleet-card,.is-fullscreen .log-card{display:none}
.is-fullscreen .fullscreen-race{display:flex;align-items:center;justify-content:space-between;gap:10px;font:18px OffshoreMono,ui-monospace,monospace;background:var(--paper);border:1px solid var(--line);border-radius:4px;padding:12px}
.is-fullscreen .fullscreen-race button{font-family:inherit;font-size:11px;padding:0 12px;gap:8px}
.is-fullscreen .chart-subtitle{display:none}

/* Auto mode follows solar elevation at the boat, independently of race time. */
:root[data-theme=night]{color-scheme:dark;--ink:#d5e5dc;--muted:#9bb2a6;--line:#304b4e;--paper:#17343c;background:#10272f;color:#d5e5dc}
[data-theme=night] .workspace.is-fullscreen{background:#10272f}
[data-theme=night] .chart-wrap{background:#102c36}
[data-theme=night] .leaflet-tile-pane{filter:invert(.9) hue-rotate(175deg) saturate(.55) brightness(.8)}
[data-theme=night] .chart-card{border-color:#304b4e}
[data-theme=night] .source-strip,[data-theme=night] .chart-caption{background:#1b3b42;color:#b1c4b7}
[data-theme=night] .chart-note,[data-theme=night] .chart-compass,[data-theme=night] .chart-legend,[data-theme=night] #chart-attribution{background:#15363fe8;border-color:#31545b;color:#b9d0c7}
[data-theme=night] .chart-note p,[data-theme=night] .chart-note>span{color:#b7cfc3}
[data-theme=night] .map-controls{background:#173941f2;border-color:#3c5e61}
[data-theme=night] .map-controls button{color:#d1e0d4;border-color:#37575a}
[data-theme=night] .map-controls output{color:#b1c5b7;border-color:#37575a}
[data-theme=night] .chart-position{color:#b4cabe}
[data-theme=night] .chart-position>span:last-child{color:#93ada0}
[data-theme=night] .legend-rival{background:#d6e7df}
[data-theme=night] .legend-track{border-color:#edc09c}
[data-theme=night] .heading-control input{color:#e4ede4}
[data-theme=night] .sail-options{background:#102c34;border-color:#375256}
[data-theme=night] .sail-options button{color:#9db5a7}
[data-theme=night] .sail-options button[aria-pressed=true]{background:#31544f;color:#eff3df}
[data-theme=night] .input-label,[data-theme=night] .eyebrow,[data-theme=night] .race-heading p,[data-theme=night] .sail-help,[data-theme=night] .daylight-card p{color:#a8beb0}
[data-theme=night] .input-label>span,[data-theme=night] .heading-hints,[data-theme=night] .small-status,[data-theme=night] .standing-note{color:#91ad9d}
[data-theme=night] .course-readout,[data-theme=night] .fleet-row:first-child{border-color:#375155}
[data-theme=night] .course-readout button,[data-theme=night] .text-button,[data-theme=night] .layers label{color:#a8c6b3}
[data-theme=night] .instruments>div>span,[data-theme=night] .instruments em,[data-theme=night] .course-readout>div>span{color:#9db7a6}
[data-theme=night] .rate-label select{color:#bed5c6;border-color:#4d6c63}
[data-theme=night] .log-card li,[data-theme=night] .log-card li:first-child>span{color:#acc7b4}
[data-theme=night] .race-result{background:#1c3c43f5;border-color:#536459;color:#e6e9cf}
[data-theme=night] .race-result p{color:#b1c5ae}
[data-theme=night] dialog{background:#17343c;color:#d5e5dc;border-color:#375155}
[data-theme=night] dialog p,[data-theme=night] dialog li{color:#b5c8b8}
[data-theme=night] dialog strong{color:#e0e9d7}

@media(max-width:1100px){.chart-button span{display:none}.chart-actions{gap:12px}.chart-position>span:last-child{display:none}.layers{gap:11px}.chart-toolbar{padding:0 12px}.chart-toolbar strong{font-size:11px}.source-strip{padding:10px 12px;gap:8px 12px;font-size:9px}}
@media(max-width:850px){.chart-subtitle{display:none}.daylight-card{grid-column:auto}.workspace.is-fullscreen{grid-template-columns:minmax(0,1fr);display:block;overflow:auto;padding:10px}.is-fullscreen .chart-card{height:76dvh;min-height:440px}.is-fullscreen .sidebar{margin-top:12px;overflow:visible;padding:0;display:flex;flex-direction:column}.is-fullscreen .fullscreen-race{position:sticky;top:0;z-index:5}.chart-position{font-size:9px}.chart-legend{bottom:25px;font-size:8px;gap:9px}}
@media(max-width:520px){.chart-toolbar{flex-wrap:wrap;height:auto;min-height:48px;padding:10px 12px;gap:8px}.chart-toolbar>div:first-child{gap:6px}.chart-toolbar strong{font-size:11px}.chart-actions{gap:9px}.layers{gap:8px}.layers label{font-size:10px;gap:4px}.chart-button{padding:5px 7px}.source-strip{font-size:8px;gap:8px 11px}.chart-note{max-width:219px;top:10px;left:10px;padding:8px}.chart-note p{font-size:9px}.chart-note>span{font-size:7px}.chart-legend{left:10px;gap:9px;bottom:25px;padding:6px;font-size:7px}.map-controls{right:10px;width:66px;top:94px}.chart-compass{right:10px;top:10px}.chart-caption{font-size:9px}.chart-position{padding:9px 10px;font-size:9px}.daylight-card{padding:20px}}

[data-view=helm] .chart-note{background:#173b46db;border-color:#829a9660;text-shadow:none}[data-view=helm] #helm-center{font-size:11px}[data-view=helm] #chart-cursor{visibility:hidden}

footer>span:first-child{font:11px "Segoe UI",Arial,sans-serif;color:inherit}

/* The coast is always present; NOAA is an optional detail layer. */
.layer-panel #noaa-options{border:0;border-bottom:1px solid var(--line);padding:0 0 14px;margin:0 0 16px;min-width:0}.layer-panel #noaa-options:disabled{opacity:.5}.layer-panel .noaa-toggle{font-weight:600}.layer-panel .opacity-label{justify-content:space-between;margin-bottom:4px}.layer-panel #chart-opacity{width:100%;margin:6px 0 0}.source-status[data-state=off]{color:var(--muted)}[data-view=helm] #base-status,[data-view=helm] #retry-base{display:none}

/* Shared fleet and race layers remain available in either view. */
[data-view=helm] #chart-layers{display:block;visibility:visible;pointer-events:auto}
.helm-camera-actions{position:absolute;right:16px;top:16px;display:flex;gap:8px;z-index:4}.helm-camera-actions #helm-center{position:static}.helm-camera-actions .chart-button{background:#f4f4e5e8;color:#24474a}
.helm-course-overlay{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:1}#helm-labels{position:absolute;inset:0;pointer-events:none;z-index:2;overflow:hidden}.helm-world-label{position:absolute;left:0;top:0;white-space:nowrap;font-size:10px;color:#e9f2e4;background:#17363cbf;border:1px solid #6e94966b;border-radius:3px;padding:4px 6px;max-width:220px;overflow:hidden;text-overflow:ellipsis}.helm-world-label.my-boat{color:#ffd3a1}.helm-world-label.next-mark{color:#ffe09a}.helm-steering{z-index:4}
@media(max-width:520px){.helm-camera-actions{top:80px;right:10px;gap:5px}.helm-camera-actions .chart-button{font-size:9px;padding:7px}.helm-world-label{font-size:9px;max-width:155px}}
.helm-camera-actions .chart-button{font-size:11px;padding:8px 10px}

.depth-card{background:var(--paper);border:1px solid var(--line);border-radius:5px;padding:18px 20px;grid-column:1/-1}.depth-readings{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:15px 0}.depth-readings span{display:block;font-size:9px;color:var(--muted);margin-bottom:7px}.depth-readings strong{font:23px OffshoreMono,ui-monospace,monospace}.depth-card p{font-size:11px;margin:7px 0;line-height:1.5}.depth-card small{display:block;font-size:10px;line-height:1.5;color:var(--muted)}.depth-card [data-grounded=true]{color:#ad5035}.grounding-status{margin:0;padding:14px 16px;border-top:1px solid #d7b398;background:#f9e9d9;color:#8a482c;font-size:12px;line-height:1.7}[data-theme=night] .grounding-status{background:#483a31;color:#ffd2aa;border-color:#73604b}[data-theme=night] .depth-card [data-grounded=true]{color:#f3a47b}
/* Environmental controls stay folded until a skipper needs forecast details. */
.conditions-panel { border-top:1px solid var(--line, #cad7d1); margin-top:12px; }
.conditions-panel summary { cursor:pointer; padding:12px 0; font-weight:600; }
.conditions-panel summary span { float:right; font-size:12px; font-weight:400; color:var(--muted, #617975); }
.conditions-body { padding:0 0 14px; font-size:13px; line-height:1.5; max-width:780px; }
.conditions-body p { margin:8px 0; }
.conditions-actions { display:flex; flex-wrap:wrap; gap:12px; align-items:center; margin:14px 0; }
.conditions-note, #forecast-limit { color:var(--muted, #617975); font-size:12px; }
#forecast-sources { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
#forecast-sources p { font-size:12px; }
#forecast-sources strong { display:inline-block; margin-bottom:5px; }
.source-status[data-state="forecast"] { color:#247869; background:#3b9a8215; }
#feed-status[data-state="live"] { color:#247869; }
#tide-timing, .sun-events { display:grid; gap:8px; margin-top:12px; font-size:11px; }
#tide-timing span, .sun-events span { display:block; color:var(--muted, #617975); margin-bottom:2px; }
#tide-timing strong, .sun-events strong { font-size:12px; font-weight:500; }
#tide-curve { display:block; width:100%; height:74px; color:#3a8f8c; margin:7px 0 11px; }
#tide-curve text { font:10px OffshoreMono,ui-monospace,monospace; fill:currentColor; }
.tide-stations { margin-top:12px; font-size:12px; }
.tide-stations summary { cursor:pointer; }
#tide-station-list p { margin:12px 0; line-height:1.6; }
#tide-station-list small, #tide-station-list span { display:block; }
@media(max-width:650px) { #forecast-sources { grid-template-columns:1fr; gap:2px; } .conditions-panel summary span {float:none;display:block;margin-top:4px;} }

.button.race-action{display:inline-flex;align-items:center;justify-content:center;gap:10px;white-space:nowrap;flex-shrink:0}
.button>.action-arrow{display:block;width:14px;height:14px;flex:0 0 14px}

#noaa-reference-controls[hidden]{display:none!important}

/* Image flags are independent of installed emoji fonts and regional-indicator support. */
.country-flag{width:24px;height:18px;object-fit:contain;vertical-align:-3px;border-radius:1px}
.country-flag-unselected svg{display:block;width:100%;height:100%}
/* Shared identity and the account-to-race journey. */
.portal form select{width:100%;max-width:100%;min-height:46px;border:1px solid #cdd8c7;border-radius:3px;background:#fffef9;color:#244a47;padding:10px;font-size:14px}.account-signin-heading{margin-top:36px!important;border-top:1px solid var(--line);padding-top:28px}.account-details #profile-status{color:#365f4e;font-size:12px}.account-details #profile-form{margin-top:20px}.account-details #profile-form .button{margin-top:15px}.portal-heading h1 .country-flag{font-size:.65em}.skipper-profile .home-port .country-flag{margin-right:4px}.account-details,.account-race{min-width:0}#account-passage{overflow-wrap:anywhere}
.race-catalog{display:grid;gap:24px}.brief-copy .course-sketch{border-radius:4px;margin-bottom:28px}.fleet-explanation{display:grid;grid-template-columns:1fr 1fr;gap:35px;font-size:13px;max-width:1000px;margin:0 0 28px}.skipper-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.skipper-profile{padding:26px;background:var(--paper);border:1px solid var(--line);border-radius:5px}.profile-top{display:flex;justify-content:space-between;align-items:center}.skipper-initials{display:grid;place-items:center;width:48px;height:48px;border:1px solid #9eb4a3;background:#dfe8d9;border-radius:50%;font:19px Georgia,serif;color:#3f6359}.skipper-profile h2{font-size:27px;margin:23px 0 7px}.skipper-profile p{font-size:12px}.skipper-profile .home-port{font-size:11px;color:#7b8d7c;margin:0 0 22px}.skill-caption{display:flex;justify-content:space-between;font-size:10px;color:#6d816e;margin-top:24px}.skipper-profile meter{width:100%;height:12px;margin:6px 0}.skipper-stats{display:flex;justify-content:space-between;margin:22px 0;border-top:1px solid var(--line);padding-top:20px}.skipper-stats dt{font-size:8px;color:#7c8f7e;letter-spacing:1px}.skipper-stats dd{font:26px Georgia,serif;margin:7px 0 0}.skipper-profile summary{font-size:12px;cursor:pointer}.skipper-profile ol{list-style:none;padding:0}.skipper-profile li{display:flex;justify-content:space-between;gap:12px;font-size:10px;padding:10px 0;border-bottom:1px solid var(--line)}.skipper-profile li strong{font-weight:500}.skipper-profile li span{font-size:9px;color:#819078}
@media(max-width:1000px){.skipper-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.skipper-grid,.fleet-explanation{grid-template-columns:1fr}.fleet-explanation{gap:0}.portal-masthead nav{gap:12px}}
.brand>span{font-size:16px;letter-spacing:2px}.brand b{font-weight:400;letter-spacing:1.5px;color:#b4cbc3}.masthead .race-nav{color:#c9dad1;text-decoration:none;font-size:12px}
.portal-masthead{height:82px;padding:0 max(32px,calc((100vw - 1280px)/2))}.portal-masthead nav{display:flex;align-items:center;gap:30px}.portal-masthead nav a{font-size:12px;color:#d2dfd5;text-decoration:none}.portal-masthead nav a:hover{text-decoration:underline}.portal-masthead .nav-join{padding:11px 15px;border:1px solid #5a7979;border-radius:3px}.nav-join span{margin-left:16px;color:#e8af8b}.portal{max-width:1344px;padding:0 32px;margin:auto}.portal h1{font-size:54px;line-height:1.08;letter-spacing:-1.7px}.portal h2{font:30px/1.2 Georgia,serif;letter-spacing:-.5px;font-weight:400}.portal p{line-height:1.8;color:#65786f}.portal a{color:inherit}.portal .button{text-decoration:none;font-size:13px;min-height:48px}.portal .button.primary{color:#f3f4e9}.portal .secondary{background:transparent;border:1px solid #bdcbbd}.portal .eyebrow{font-size:10px;color:#697e70;line-height:1.6}.portal .quiet-link{font-size:12px;text-underline-offset:5px}.portal .small-copy{font-size:11px;color:#7d8e7d;line-height:1.7}.portal-footer{border-top:1px solid #d8ded1;margin-top:56px;align-items:center;padding:23px 0 28px}.portal-footer a{font-size:11px;text-decoration:none;color:#718575}.portal-loading{min-height:400px;display:grid;place-items:center;color:#6d8275}
.home-hero{display:grid;grid-template-columns:1fr 1.05fr;align-items:center;gap:60px;padding:66px 0 54px}.hero-copy h1{margin:22px 0}.hero-copy .lede{font-size:16px;max-width:395px}.hero-actions{display:flex;align-items:center;gap:26px;margin:30px 0 17px;flex-wrap:wrap}.hero-actions .button{min-width:165px}.hero-chart{border-radius:5px;overflow:hidden;box-shadow:0 10px 30px #193d3c12}.passage-map{display:block;width:100%;height:auto;background:#153d46}.map-caption{display:flex;justify-content:space-between;gap:10px;background:#193d46;padding:17px 20px;color:#afc2b8;font-size:8px;letter-spacing:1.3px;border-top:1px solid #31565b}.getting-started{display:grid;grid-template-columns:repeat(3,1fr);gap:42px;border-top:1px solid #d8ded1;padding-top:30px}.getting-started>div{position:relative;padding-left:38px}.step-number{position:absolute;left:0;top:7px;color:#af8965;font:15px Georgia,serif}.getting-started h2{font-size:23px;margin:0 0 10px}.getting-started p{font-size:12px;margin:0;max-width:295px}.early-note{display:flex;align-items:baseline;gap:25px;border-top:1px solid #d8ded1;margin-top:34px;padding-top:20px}.early-note .eyebrow{white-space:nowrap}.early-note p{font-size:12px;margin:0;max-width:800px}
.auth-layout{display:grid;grid-template-columns:1fr 1fr;gap:85px;max-width:1000px;margin:60px auto 0;align-items:start}.auth-story h1{font-size:51px;margin:20px 0}.auth-story>p{max-width:350px;font-size:14px}.boat-drawing{display:block;width:100%;height:auto}.auth-story .boat-drawing{max-width:280px;height:185px;margin:10px auto 0}.boat-caption{display:block;text-align:center;font-size:8px;letter-spacing:1.5px;color:#839381;margin-top:6px}.form-panel{background:#fcfcf7;border:1px solid #d9dfd1;border-radius:5px;padding:34px 36px;box-shadow:0 8px 25px #17383d04}.form-panel h2{font-size:30px;margin:12px 0}.form-panel>p{font-size:12px;line-height:1.8}.portal form{margin-top:26px}.portal form label{display:block;font-size:12px;font-weight:600;margin:20px 0 9px}.portal form input{width:100%;padding:13px 12px;background:#fffef9;border:1px solid #cdd8c7;border-radius:3px;color:#244a47;min-height:46px;font-size:14px}.portal form input::placeholder{color:#91a08c;font-size:12px}.portal form .button{width:100%;margin-top:25px}.portal .error-banner{margin:20px 0 10px;font-size:12px;line-height:1.6}.portal .preview-note{border-left:2px solid #c49a70;padding:9px 12px;background:#f1eddf;font-size:11px;line-height:1.65;color:#7c7059;margin:24px 0 0}.form-panel .form-switch{border-top:1px solid #e0e5d9;padding-top:20px;margin:24px 0 0;text-align:center;font-size:11px}.form-switch a{color:#325e51;text-underline-offset:3px}.message-panel{max-width:560px;margin:70px auto 85px;text-align:center;min-height:320px}.message-panel h1{margin:20px 0 25px;font-size:48px}.message-panel>p{max-width:420px;margin:18px auto}.message-panel .button{max-width:330px;width:100%;margin:28px auto 18px}.message-panel .quiet-link{display:inline-block;margin-top:18px}.message-panel .email-address{color:#21484a;font-weight:600;overflow-wrap:anywhere}.message-panel .preview-note{text-align:left}.email-preview{max-width:640px;margin:45px auto}.email-envelope{display:grid;grid-template-columns:65px 1fr;gap:14px;padding:22px 26px;border:1px solid #d9dfd1;background:#eeefe6;margin-top:22px;font-size:12px}.email-envelope span{font-size:9px;color:#88917f;letter-spacing:1px}.email-envelope strong{font-weight:500;overflow-wrap:anywhere}.email-body{padding:42px;background:#fcfcf7;border:1px solid #d9dfd1;border-top:0}.email-body h1{font-size:40px;margin:20px 0}.email-body .button{max-width:270px;margin:25px 0}
.portal-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:45px 0 30px}.portal-heading h1{font-size:42px;margin-top:15px}.portal-heading p{font-size:13px;margin-bottom:0}.status-pill{display:inline-block;border:1px solid #ccd8c6;background:#eaf0e2;border-radius:3px;padding:7px 9px;white-space:nowrap;font-size:9px;letter-spacing:.6px;color:#587358}.lobby-race{display:grid;grid-template-columns:1.1fr 1fr;background:#fcfcf7;border:1px solid #d6decf;border-radius:5px;overflow:hidden}.lobby-map{display:flex;background:#153d46;align-items:center;overflow:hidden}.lobby-map .passage-map{height:100%;object-fit:cover}.lobby-brief{padding:34px 38px}.lobby-brief h2{font-size:36px;margin:12px 0}.lobby-brief>p{font-size:13px}.race-facts{display:grid;grid-template-columns:1fr 1fr;gap:22px 15px;padding:22px 0;border-top:1px solid #e1e5d8;border-bottom:1px solid #e1e5d8;margin:24px 0 20px}.race-facts dt{font-size:8px;color:#85957e;letter-spacing:1px}.race-facts dd{font-size:12px;margin:7px 0 0;color:#36594c}.entry-status{font-size:11px;color:#697f64;margin-bottom:18px}.lobby-brief .button{width:100%}.lobby-footnote{display:flex;gap:50px;padding-top:28px;align-items:baseline}.lobby-footnote h2{font-size:23px;flex:1}.lobby-footnote p{font-size:12px;flex:1;max-width:575px}.back-link{display:inline-block;margin-top:30px;text-decoration:none;font-size:11px;color:#6e8473!important}.back-link+.portal-heading{padding-top:20px}.brief-layout{display:grid;grid-template-columns:1.15fr 1fr;gap:95px;max-width:1080px;padding-top:15px}.brief-copy h2{font-size:36px;line-height:1.2;margin:0 0 22px}.brief-copy>p{font-size:14px}.race-instructions{list-style:none;counter-reset:step;padding:0;margin:28px 0}.race-instructions li{counter-increment:step;position:relative;padding:0 0 22px 37px}.race-instructions li:before{content:'0' counter(step);position:absolute;left:0;top:2px;font:15px Georgia,serif;color:#b18460}.race-instructions strong{display:block;font-size:13px;font-weight:600;margin-bottom:7px}.race-instructions span{display:block;font-size:12px;line-height:1.7;color:#748471}.brief-copy .race-disclosure{font-size:11px;line-height:1.8;border-top:1px solid #dce3d2;padding-top:20px}.assigned-boat{background:#fcfcf7;border:1px solid #d6dfcd;border-radius:5px;padding:25px 32px;align-self:start}.boat-card-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.assigned-boat .boat-drawing{height:230px}.assigned-boat h2{font-size:34px;margin:10px 0 5px}.assigned-boat>p{font-size:12px;margin:5px 0 15px}.assigned-boat .boat-explanation{font-size:12px;border-top:1px solid #dfe5d6;padding-top:15px;margin-top:18px}.assigned-boat .button{width:100%;margin-top:24px}.assigned-boat .small-copy{text-align:center;margin:12px 0 0;font-size:10px}.account-layout{display:grid;grid-template-columns:1fr 1fr;gap:55px;max-width:980px}.account-details,.account-race{padding:30px;background:#fcfcf7;border:1px solid #d8e0cf;border-radius:4px;align-self:start}.account-layout h2{margin:0 0 25px;font-size:28px}.account-details dl{margin:0}.account-details dt{font-size:10px;color:#7e8e77;margin-bottom:8px}.account-details dd{margin:0 0 25px;font-size:14px;overflow-wrap:anywhere}.account-layout p{font-size:12px}.account-details .button{margin-top:23px}.account-race h2{margin:16px 0}.account-race .button{margin-top:24px}
@media(min-width:1500px){.home-hero{padding-top:82px;padding-bottom:68px}.hero-copy h1{font-size:62px}}
@media(max-width:1000px){.home-hero{gap:32px}.hero-copy h1{font-size:45px}.hero-actions{gap:17px}.auth-layout{gap:40px}.form-panel{padding:28px}.portal-masthead{padding:0 28px}.brief-layout{gap:40px}.lobby-brief{padding:26px}.getting-started{gap:20px}.portal-heading h1{font-size:36px}.brand>span{font-size:14px;letter-spacing:1px}.brand b{letter-spacing:.7px}}
@media(max-width:760px){.portal-masthead{height:70px;padding:0 20px}.portal-masthead nav{gap:18px}.portal-masthead .nav-join{display:none}.portal{padding:0 22px}.home-hero{grid-template-columns:1fr;gap:30px;padding:42px 0 32px}.hero-copy h1{font-size:51px}.hero-copy .lede{max-width:500px}.hero-chart{transform:none;max-width:600px}.getting-started{grid-template-columns:1fr;gap:26px}.getting-started p{max-width:500px}.getting-started>div{padding-left:40px}.early-note{display:block}.early-note p{margin-top:10px}.auth-layout{grid-template-columns:1fr;max-width:470px;margin-top:35px;gap:22px}.auth-story h1{font-size:40px;line-height:1.1}.auth-story>p{max-width:440px}.auth-story h1 br{display:none}.auth-story h1 br:after{content:' '}.auth-story .boat-drawing,.auth-story .boat-caption{display:none}.form-panel{padding:28px}.portal-heading{align-items:flex-start;flex-direction:column;gap:15px;padding:32px 0 25px}.portal-heading h1{font-size:36px}.lobby-race{grid-template-columns:1fr}.lobby-map{max-height:290px}.lobby-map .passage-map{height:auto}.lobby-brief{padding:26px}.lobby-footnote{display:block;padding-top:22px}.brief-layout{grid-template-columns:1fr;gap:26px}.assigned-boat{grid-row:1}.brief-copy{padding-top:10px}.account-layout{grid-template-columns:1fr;gap:22px}.portal-footer{margin-top:35px}.portal .message-panel{margin:45px auto 60px}.message-panel h1{font-size:42px}.message-panel>p{font-size:13px}.email-body{padding:30px}.email-body h1{font-size:35px}}
@media(max-width:430px){.portal-masthead{padding:0 16px}.brand{gap:8px}.brand>span{font-size:12px;letter-spacing:.7px}.brand b{display:block;font-size:10px;letter-spacing:2.5px;margin-top:3px}.brand svg{width:25px}.portal-masthead nav a{font-size:11px}.portal-masthead nav{gap:16px}.portal{padding:0 18px}.hero-copy h1{font-size:45px}.hero-copy .lede{font-size:14px}.hero-actions{gap:22px}.map-caption{padding:14px;font-size:7px;letter-spacing:.6px}.form-panel{padding:25px 22px}.auth-story h1{font-size:35px}.portal-heading h1{font-size:33px}.assigned-boat{padding:22px}.portal-heading p{font-size:12px}.lobby-brief h2{font-size:31px}.race-facts{gap:22px 10px}.race-facts dd{font-size:11px}.email-envelope{padding:20px;grid-template-columns:1fr;gap:8px}.email-envelope strong{margin-bottom:12px}.email-body{padding:25px}.portal-footer{align-items:flex-start}.masthead-right{gap:12px}.masthead .race-nav{font-size:10px}}

.early-note .next-races{margin-top:12px}

.lobby-reset{display:block;margin-top:14px;border:0;background:transparent;color:var(--ink);text-decoration:underline;text-underline-offset:4px;padding:8px 0;cursor:pointer}

@media(max-width:760px){
  .portal-masthead{height:auto;min-height:70px;flex-wrap:wrap;gap:16px;padding-block:16px}
  .portal-masthead nav{flex-wrap:wrap;gap:12px 18px}
}
.portal-footer-links { display:flex;flex-wrap:wrap;gap:12px 24px; }
.portal-footer-links :is(a,button) { display:inline-flex;align-items:center;min-height:44px;color:var(--ink);font:11px OffshoreUI,system-ui; }
.portal-footer-links .beta-feedback-button { border:0;padding:0;border-radius:0; }
.portal-footer-links :is(a,button):hover { text-decoration:underline;text-underline-offset:4px;background:transparent; }

/* Optional programme choice stays beside account creation. */
.form-panel .collegiate-signup{display:grid;grid-template-columns:18px 1fr;gap:.3rem .6rem;align-items:center;margin:1.2rem 0;font-size:.86rem}.form-panel .collegiate-signup input{width:18px;height:18px;margin:0;grid-row:1/3;accent-color:#285b58}.collegiate-signup small{grid-column:2;color:#5b716b;font-size:.74rem}
.release-history { max-width:800px;margin:0 auto;padding-top:48px;color:var(--ink); }
.release-intro h1 { margin:14px 0 12px; }
.release-history p { color:var(--ink); }
.release-history .eyebrow { color:var(--ink); }
.release-intro p { margin:0; }
.release-current { margin:28px 0;padding:24px;border:1px solid var(--line);border-radius:8px; }
.release-current h2 { margin:12px 0 16px;font-size:30px; }
.release-current p { line-height:1.75; }
.release-index { display:flex;flex-wrap:wrap;gap:12px 24px;margin:24px 0 36px;font-size:13px; }
.release-history a { text-underline-offset:4px; }
.release-entry { border-top:1px solid var(--line);padding:28px 0 32px;scroll-margin-top:24px; }
.release-date { display:flex;align-items:center;gap:14px;font:13px/1.5 OffshoreMono,ui-monospace,monospace; }
.release-date>span { border:1px solid var(--line);border-radius:3px;padding:2px 7px;font:11px/1.5 OffshoreUI,system-ui; }
.release-entry h2 { margin:12px 0 20px;font-size:28px; }
.release-entry h2 a { text-decoration:none; }
.release-entry h2 a:hover { text-decoration:underline; }
.release-entry h3 { margin:24px 0 8px;font-size:14px; }
.release-entry ul { margin:0;padding-left:22px; }
.release-entry li { margin:8px 0;line-height:1.75;overflow-wrap:anywhere; }
.release-history .release-summary { font-size:13px; }
.release-beta-note { border-top:1px solid var(--line);padding-top:24px;font-size:13px; }
@media(max-width:760px) {
  .release-history { padding-top:30px; }
  .release-intro h1 { font-size:36px; }
  .release-index { gap:8px 20px; }
  .release-index a { display:inline-flex;align-items:center;min-height:44px; }
  .release-entry h2 { font-size:26px; }
}

.release-browser { margin:24px 0 30px;border-block:1px solid var(--line); }
.release-browser>summary { display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:48px;cursor:pointer;font-size:13px; }
.release-browser>summary span { font-size:11px; }
.release-index { display:grid;gap:18px;margin:6px 0 22px; }
.release-index-group { display:grid;grid-template-columns:145px 1fr;gap:15px; }
.release-index-group>time { font-size:12px;line-height:1.6; }
.release-index-group>div { display:flex;flex-wrap:wrap;gap:10px 22px; }
@media(max-width:760px){.release-index-group{grid-template-columns:1fr;gap:5px}.release-index-group>time{font-weight:600}.release-index-group>div{display:grid;gap:0}.release-index a{line-height:1.6;padding:8px 0}}
.career-page { --career-muted:#526b61;--career-inset:#e8eee3;--career-gold:#946331;padding-top:34px;color:var(--ink); }
.career-heading { display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:26px; }
.career-heading h1 { font-size:clamp(32px,3.6vw,50px);margin:12px 0; }
.career-heading p { margin:0; }
.career-score { display:grid;gap:5px;border-left:1px solid var(--line);padding-left:28px;min-width:165px; }
.career-score strong { font:38px Georgia,serif; }
.career-score span,.career-series-score>span { font-size:9px;letter-spacing:1px; }
.career-score small { font-size:12px;color:var(--career-muted); }
.career-contest { display:flex;justify-content:space-between;align-items:center;gap:30px;padding:22px 26px;background:#1b3d43;color:#e5e9dc;border-radius:3px; }
.career-contest .eyebrow { color:#bdcbb8; }
.career-contest h2 { font:30px/1.2 Georgia,serif;color:#f0ecdc;margin:8px 0; }
.career-contest p { margin:0;color:#c4d1c6;font-size:13px; }
.career-series-score { display:grid;gap:6px;min-width:140px; }
.career-series-score>strong { font:37px OffshoreMono,ui-monospace,monospace; }.career-series-score small { font-size:15px;color:#b7c8bb; }
.career-series-score progress { appearance:none;width:100%;height:3px;margin-top:7px;border:0;background:#52716a;color:#d9b187; }
.career-series-score progress::-webkit-progress-bar { background:#52716a; }.career-series-score progress::-webkit-progress-value { background:#d9b187; }.career-series-score progress::-moz-progress-bar { background:#d9b187; }
.career-calendar { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;list-style:none;padding:0;margin:24px 0 28px; }
.career-calendar li { display:flex;align-items:center;gap:14px;border-bottom:2px solid var(--line);padding:0 0 17px;min-width:0; }
.career-calendar li>div { min-width:0; }.career-calendar .race-art { width:72px; }
.career-calendar strong { display:block;font:22px/1.2 Georgia,serif;margin:8px 0; }.career-calendar small { display:block;font-size:11px;color:var(--career-muted); }
.career-stage-label { font-size:9px;letter-spacing:.7px;color:var(--career-muted); }
.career-calendar [data-state=active],.career-calendar [data-state=next] { border-color:#b98e60; }.career-calendar [data-state=complete] { border-color:#648970; }
.career-shortcuts { display:none; }
:is(#career-current-race,#career-standings-title,#crew-summary-title) { scroll-margin-top:68px; }
.career-competition { display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:36px;align-items:start; }
.career-event { min-width:0;border:1px solid var(--line);border-radius:4px;background:var(--paper); }
.career-brief { padding:26px; }.career-brief h2 { font:33px/1.2 Georgia,serif;margin:12px 0; }.career-brief p { font-size:13px;line-height:1.7; }
.career-page .career-event-facts { color:var(--career-muted);font-size:12px;margin-bottom:20px; }
.career-page .button { min-height:44px;cursor:pointer; }.career-page button:disabled { opacity:.55;cursor:not-allowed; }
.career-page :is(button,a,summary):focus-visible { outline:3px solid #b37340;outline-offset:4px; }
.career-page form { margin:0; }.career-page fieldset { border:0;padding:0;margin:0; }.career-page legend { font:21px Georgia,serif;margin:0; }
.career-page .career-objective-note { font-size:11px;color:var(--career-muted);margin:7px 0 14px; }
.career-page .career-goal { display:block;margin:0 0 8px;font-weight:400;position:relative;cursor:pointer; }
.career-page .career-goal input { position:absolute;top:15px;left:12px;width:16px;height:16px;min-height:0;margin:0;accent-color:#285759; }
.career-goal>span { display:block;padding:12px 12px 10px 38px;border:1px solid var(--line);border-radius:3px; }
.career-goal input:checked+span { background:var(--career-inset);border-color:#6c8a73;box-shadow:inset 3px 0 #55785c; }
.career-goal input:focus-visible+span { outline:3px solid #b37340;outline-offset:2px; }
.career-goal strong { font-size:13px;display:flex;justify-content:space-between;gap:10px; }.career-goal small { display:block;font-size:11px;line-height:1.5;color:var(--career-muted);margin-top:5px; }
.career-goal b { font-size:11px;color:var(--career-gold);font-weight:500;white-space:nowrap; }
.career-page .career-entry-note { font-size:11px;line-height:1.65;margin:12px 0;color:var(--career-muted); }
#career-enter { width:100%;justify-content:space-between; }
.career-commitment { padding:17px 0;border-block:1px solid var(--line);margin-top:22px; }
.career-commitment>span,.career-goal-result>span { font-size:9px;letter-spacing:1px;display:block;color:var(--career-muted); }.career-commitment strong { font:23px Georgia,serif;display:block;margin-top:9px; }.career-commitment p { margin-bottom:0; }
.career-quiet { display:block;min-height:44px;border:0;padding:12px 0;text-decoration:underline;text-underline-offset:4px;background:transparent;color:var(--career-muted);font-size:12px;cursor:pointer; }
.career-course-brief { border-top:1px solid var(--line);margin-top:16px; }.career-course-brief>summary { cursor:pointer;display:flex;justify-content:space-between;align-items:center;min-height:46px;font-size:12px;list-style:none; }.career-course-brief>summary::-webkit-details-marker { display:none; }
.career-course-brief[open]>summary span { transform:rotate(45deg); }
.career-course { background:#153d46;min-width:0; }.career-course svg { display:block;width:100%;height:auto;max-height:300px; }.career-course .course-sketch>text:last-child { display:none; }
.career-course-caption { display:flex;justify-content:space-between;gap:12px;padding:14px;color:#b9cec3;font-size:9px;letter-spacing:.6px;border-top:1px solid #30535a; }
.career-tip { padding-left:14px;border-left:2px solid #c39a70;color:var(--career-muted); }
.career-standings { min-width:0; }.career-section-heading { display:flex;align-items:end;justify-content:space-between;gap:10px;padding:6px 0 10px; }.career-section-heading h2 { font:27px Georgia,serif;margin:10px 0 0; }.career-section-heading>span { font-size:10px;color:var(--career-muted); }
.career-table-wrap { overflow:auto; }.career-standings table { width:100%;border-collapse:collapse;text-align:left;font-size:13px; }
.career-standings thead th { font-size:9px;text-transform:uppercase;padding:14px 8px;color:var(--career-muted);font-weight:500; }
.career-standings tbody td,.career-standings tbody th { padding:14px 8px;border-top:1px solid var(--line);font-weight:400; }.career-standings tbody tr[data-player=true] { background:var(--career-inset); }
.career-skipper { display:flex;align-items:center;gap:10px; }.career-skipper>div { min-width:0; }.career-skipper .skipper-portrait { --portrait-size:36px; }.career-skipper .skipper-portrait-fallback { font-size:15px; }
.career-standings th small { display:block;font-size:10px;margin-top:6px;color:var(--career-muted); }
.career-places { font-size:10px;white-space:nowrap; }.career-places span { display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:24px;background:var(--career-inset);margin-right:3px;color:var(--career-muted); }
.career-standings .career-points-note { font-size:12px;color:var(--career-muted);margin:16px 0 10px; }
.career-standings details { margin-top:14px;font-size:12px;line-height:1.8;color:var(--career-muted); }.career-standings details p { font-size:12px; }.career-standings summary { cursor:pointer;min-height:40px;align-content:center; }
.career-standings .sr-only { position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0; }
.career-debrief { display:grid;grid-template-columns:1.3fr 1fr;gap:30px;background:var(--career-inset);border-left:3px solid #b58b53;padding:26px 30px;margin:28px 0; }.career-debrief h2 { font:31px Georgia,serif;margin:12px 0; }.career-debrief p { font-size:13px;margin-bottom:0; }
.career-goal-result { border-left:1px solid var(--line);padding-left:26px;align-self:center; }.career-goal-result>strong { display:block;font:23px Georgia,serif;margin-top:10px; }
.career-season-finish { background:var(--career-inset);padding:30px;border-radius:4px; }.career-season-finish h2 { font:33px Georgia,serif;margin:15px 0; }.career-season-finish p { font-size:14px; }.career-season-finish .button { margin-top:16px; }.career-other-races { display:block;font-size:12px;margin-top:20px; }
.career-history { margin:30px 0;font-size:13px; }.career-history summary { cursor:pointer;min-height:44px;align-content:center; }.career-history ul { list-style:none;padding:0; }.career-history li { display:flex;gap:20px;padding:13px 0;border-bottom:1px solid var(--line); }
.career-footnote { margin:26px 0 0;font-size:11px!important;color:var(--career-muted); }
.career-rewards { --reward-bg:#edf1e6;--reward-ink:#24494c;--reward-muted:#526b5c;--reward-line:#cbd7c5;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:14px 16px;margin:20px 0 8px;border:1px solid var(--reward-line);border-radius:4px;background:var(--reward-bg);color:var(--reward-ink); }
.career-rewards>div { min-width:0;display:grid;align-content:start;gap:6px; }.career-rewards strong { font:600 19px/1.25 OffshoreUI,system-ui,sans-serif;color:var(--reward-ink);font-variant-numeric:tabular-nums; }.career-rewards span { font:11px/1.5 OffshoreUI,system-ui,sans-serif;letter-spacing:0;color:var(--reward-muted); }
.career-rewards-earned { --reward-bg:#e1ebdc;--reward-line:#bacdb6; }
.career-reward-details { margin:6px 0;font-size:12px;color:var(--career-muted,#466151); }.career-reward-details summary { cursor:pointer;min-height:38px;align-content:center; }.career-reward-details summary:hover { text-decoration:underline; }
.career-reward-details dl { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:12px 0; }.career-reward-details dt { font-size:11px; }.career-reward-details dd { margin:4px 0 0;font-weight:600; }.career-brief .career-reward-details p { font-size:12px; }
.career-page .crew-home { margin:28px 0;padding:22px 24px; }.career-page .crew-home .crew-boat-emblem { width:70px;flex-basis:70px; }.career-page .crew-home-status { display:none; }
:root[data-theme=night] .career-page { --career-muted:#aec4b7;--career-inset:#203e38;--career-gold:#d5b58f; }
:root[data-theme=night] .career-rewards { --reward-bg:#1b3840;--reward-ink:#d0dfd3;--reward-muted:#aec4b7;--reward-line:#46605b; }:root[data-theme=night] .career-rewards-earned { --reward-bg:#234238;--reward-line:#587565; }
@media(max-width:1050px) { .career-shortcuts { position:sticky;top:0;z-index:2;display:flex;gap:0;background:var(--paper);border-block:1px solid var(--line);margin:0 0 20px; }.career-shortcuts button { flex:1;min-height:44px;border:0;background:transparent;color:var(--ink);font:inherit;font-size:12px;cursor:pointer; }.career-shortcuts button+button { border-left:1px solid var(--line); }.career-shortcuts button:hover { background:var(--career-inset); } .career-competition { grid-template-columns:1fr;gap:26px; }.career-calendar { gap:16px; }.career-calendar strong { font-size:20px; }.career-calendar .race-art { width:56px; }.career-calendar li { gap:10px; } }
@media(max-width:650px) {
 .career-page { padding-top:24px; }.career-heading { align-items:flex-start;gap:16px;flex-wrap:wrap; }.career-heading h1 { font-size:34px; }.career-score { display:flex;align-items:baseline;flex-wrap:wrap;border:0;padding:0;gap:9px; }.career-score strong { font-size:24px; }.career-score small { margin-left:5px; }
 .career-contest { padding:20px;gap:15px;align-items:start; }.career-contest h2 { font-size:25px; }.career-contest p { font-size:12px; }.career-series-score { min-width:74px;max-width:90px; }.career-series-score>strong { font-size:28px; }.career-series-score>span { font-size:8px;line-height:1.5; }
 .career-calendar { grid-template-columns:1fr;gap:12px;margin:22px 0; }.career-calendar li { padding-bottom:12px;gap:16px; }.career-calendar strong { font-size:21px;margin:5px 0; }.career-calendar .race-art { width:56px; }
 .career-brief { padding:22px 18px; }.career-brief h2 { font-size:29px; }.career-section-heading h2 { font-size:25px; }.career-standings thead th,.career-standings tbody td,.career-standings tbody th { padding:13px 5px; }.career-standings tbody th { font-size:12px; }
 .career-skipper { gap:7px; }.career-skipper .skipper-portrait { --portrait-size:30px; }.career-places span { min-width:16px;margin-right:2px;font-size:9px; }
 .career-debrief { grid-template-columns:1fr;gap:20px;padding:22px 20px; }.career-goal-result { border-left:0;border-top:1px solid var(--line);padding:18px 0 0; }.career-debrief h2 { font-size:28px; }.career-season-finish { padding:23px; }.career-history li { flex-wrap:wrap;gap:10px; }
 .career-rewards { padding:12px;gap:12px; }.career-rewards strong { font-size:17px; }.career-page .crew-home { padding:22px 18px; }
}
@media(max-width:360px) { .career-rewards { grid-template-columns:1fr; }.career-reward-details dl { grid-template-columns:repeat(2,minmax(0,1fr)); }.career-goal strong { display:block; }.career-goal b { margin-left:6px; } }

[data-theme=night] .career-page p { color:var(--career-muted); }
[data-theme=night] .career-page .eyebrow { color:var(--career-muted); }
.skipper-portrait{--portrait-size:40px;position:relative;display:inline-block;vertical-align:middle;width:var(--portrait-size);height:var(--portrait-size);aspect-ratio:1;flex:none;overflow:hidden;border-radius:4px;background:#708780;color:#102d35;isolation:isolate}
.skipper-portrait[data-size=small]{--portrait-size:64px}
.skipper-portrait[data-size=rival]{--portrait-size:96px}
.skipper-portrait[data-size=study],.skipper-portrait[data-size=full]{width:100%;height:auto;display:block}
.skipper-portrait-fallback{position:absolute;inset:0;display:grid;place-items:center;font:clamp(16px,3vw,30px) Georgia,serif}
.skipper-portrait img{position:relative;display:block;width:100%;height:100%;object-fit:cover}
.skipper-profile .profile-top{align-items:flex-start}
.skipper-profile .skipper-portrait{--portrait-size:112px}
.crew-person>.skipper-portrait{float:right;margin:0 0 12px 12px}
:root[data-theme=night] .skipper-portrait img{filter:brightness(.79) saturate(.86)}
.fleet-player-flag{display:grid;place-items:center;width:40px;height:40px;flex:none;background:#bb855b1a;border:1px solid #bb855b60;border-radius:4px}
.fleet-row .fleet-boat-name .country-flag{display:inline-block;margin:0 4px 0 0;vertical-align:middle}
.fleet-row .fleet-notice[hidden]{display:none}
.fleet-row>.fleet-position{flex:none;width:20px;color:var(--muted);text-align:center;font:16px OffshoreMono,ui-monospace,monospace;font-variant-numeric:tabular-nums}
.fleet-row[data-leader=true]>.fleet-position{color:var(--ink);font-weight:700}
.fleet-row[data-player=true]{background:#bb855b0c}
@media(max-width:760px){.fleet-row .skipper-portrait,.fleet-player-flag{--portrait-size:32px;width:32px;height:32px}.fleet-row>.fleet-position{width:17px}}
.masthead:has(.site-navigation) { position:relative;z-index:50;flex-wrap:nowrap; }
.portal-masthead { height:82px;min-height:82px; }
.site-navigation { position:relative;display:flex;align-items:center;gap:20px;flex-shrink:0; }
#site-menu { position:relative;margin:0;flex-shrink:0;color:#e3eee9; }
#site-menu>summary { display:none; }
#site-menu>nav { position:static;display:flex;align-items:center;flex-wrap:nowrap;gap:10px;width:auto;max-width:none;margin:0;padding:0; }
#site-menu>nav :is(a,button) { display:flex;align-items:center;justify-content:space-between;min-height:44px;flex-shrink:0;padding:8px 10px;border:0;border-radius:4px;background:transparent;color:#d2dfd5;text-decoration:none;font:12px/1.4 OffshoreUI,system-ui;text-align:left; }
#site-menu>nav :is(a,button):hover,#site-menu>nav a[aria-current=page] { background:#305650;color:#fff0d7; }
#site-menu>nav a[href="/signup"] { border:1px solid #5a7979; }
#site-menu :is(a,button,summary):focus-visible { outline:2px solid #ffd1a1;outline-offset:-2px; }
#account-menu { margin:0;color:#e3eee9; }
#account-menu>summary { display:flex;align-items:center;gap:7px;min-height:44px;cursor:pointer;list-style:none;border-radius:3px; }
#account-menu>summary::-webkit-details-marker { display:none; }
#account-menu>summary::marker { content:''; }
.account-avatar { display:block;width:44px;height:44px;flex-shrink:0;color:#9ab1a7;border-radius:3px; }
.account-avatar>svg { display:block;width:44px;height:44px; }
#account-menu>summary:hover .account-avatar,#account-menu[open] .account-avatar { background:#31564f66;color:#e0b88c; }
.account-chevron { width:6px;height:6px;border-right:1px solid currentColor;border-bottom:1px solid currentColor;transform:rotate(45deg);margin-right:3px;margin-top:-3px; }
#account-menu[open] .account-chevron { transform:rotate(225deg);margin-top:3px; }
#account-menu:not([open])>#account-menu-panel { display:none; }
#account-menu-panel { position:absolute;inset:calc(100% + 10px) 0 auto auto;width:260px;max-width:calc(100vw - 32px);max-height:calc(100dvh - 100px);overflow:auto;overscroll-behavior:contain;padding:8px;background:#17353e;border:1px solid #577770;border-radius:7px;box-shadow:0 12px 36px #081e3540; }
.account-menu-identity { display:grid;gap:5px;padding:12px 14px 16px;margin-bottom:6px;border-bottom:1px solid #3e5d62;overflow-wrap:anywhere; }
.account-menu-identity strong { font:600 15px/1.4 OffshoreUI,system-ui;color:#e3eee9; }
.account-menu-identity span { font:12px/1.4 OffshoreUI,system-ui;color:#b1c6be; }
#account-menu nav { display:flex;flex-direction:column;flex-wrap:nowrap;align-items:stretch;width:100%;gap:3px; }
#account-menu :is(nav a,button) { display:flex;align-items:center;min-height:46px;width:100%;padding:10px 14px;border:0;border-radius:4px;background:transparent;color:#e3eee9;text-decoration:none;font:14px/1.4 OffshoreUI,system-ui;text-align:left; }
#account-menu :is(nav a,button):hover,#account-menu a[aria-current=page] { background:#305650;color:#fff0d7; }
#account-menu a[aria-current=page] { box-shadow:inset 3px 0 #f1b67f; }
#account-menu #menu-sign-out { border-top:1px solid #3e5d62;margin-top:6px;border-radius:0; }
#account-menu-error { margin:8px 14px;color:#e8bba5;font:12px/1.5 OffshoreUI,system-ui; }
#account-menu :is(summary,a,button):focus-visible { outline:2px solid #ffd1a1;outline-offset:2px; }
.menu-icon { display:inline-flex;flex-direction:column;justify-content:center;gap:4px;width:20px;height:20px;flex-shrink:0; }
.menu-icon i { display:block;width:20px;height:1.5px;background:currentColor; }
#site-menu[open] .menu-icon i:first-child,[aria-expanded=true]>.menu-icon i:first-child { transform:translateY(5.5px) rotate(45deg); }
#site-menu[open] .menu-icon i:nth-child(2),[aria-expanded=true]>.menu-icon i:nth-child(2) { opacity:0; }
#site-menu[open] .menu-icon i:last-child,[aria-expanded=true]>.menu-icon i:last-child { transform:translateY(-5.5px) rotate(-45deg); }
@media(max-width:1000px) {
  .site-navigation { gap:12px; }
  #site-menu { position:static; }
  #site-menu>summary { display:flex;align-items:center;justify-content:center;gap:10px;min-width:92px;min-height:44px;padding:0 12px;border:1px solid #527071;border-radius:5px;background:transparent;list-style:none;cursor:pointer;font:13px OffshoreUI,system-ui; }
  #site-menu>summary::-webkit-details-marker { display:none; }
  #site-menu>summary::marker { content:''; }
  #site-menu>summary:hover,#site-menu[open]>summary { background:#294b50;border-color:#90afa3; }
  #site-menu:not([open])>nav { display:none; }
  #site-menu>nav { position:absolute;inset:calc(100% + 8px) 0 auto auto;flex-direction:column;align-items:stretch;gap:3px;width:250px;max-width:calc(100vw - 32px);max-height:calc(100dvh - 100px);overflow:auto;overscroll-behavior:contain;padding:8px;background:#17353e;border:1px solid #577770;border-radius:7px;box-shadow:0 12px 36px #081e3540;text-align:left; }
  #site-menu>nav :is(a,button) { min-height:46px;padding:10px 14px;color:#e3eee9;font-size:14px; }
  #site-menu>nav a[aria-current=page] { box-shadow:inset 3px 0 #f1b67f; }
  #site-menu>nav a[href="/signup"] { border:0;background:#e7b58b;color:#17353e; }
}
@media(max-width:760px) {
  .portal-masthead:has(.site-navigation) { height:64px;min-height:64px;padding-block:0;gap:12px; }
  #site-menu>summary { min-width:80px;padding:0 10px;gap:8px; }
  #site-menu>nav,#account-menu-panel { max-height:calc(100dvh - 84px); }
}
@media(max-width:430px) {
  .site-navigation { gap:8px; }
  .site-navigation:has(#account-menu) #site-menu>summary { min-width:44px;width:44px;padding:0; }
  .site-navigation:has(#account-menu) #site-menu>summary>span:last-child { display:none; }
  .account-chevron { display:none; }
}
.nav-coming { margin-left:7px;font-size:9px;opacity:.8;white-space:nowrap; }

.account-menu-identity>.skipper-portrait{float:left;margin:0 10px 4px 0}.account-menu-identity::after{content:"";display:block;clear:both}
.account-menu-service{border-top:1px solid #3e5d62;padding-top:6px;margin-top:6px}
.brand-and-beta{display:flex;align-items:center;gap:13px;min-width:0}.beta-badge{display:inline-flex;align-items:center;vertical-align:middle;padding:3px 6px;border:1px solid #9e8968;border-radius:4px;background:#6d5c3c1f;color:#d8be93;font:600 9px/1.2 OffshoreUI,system-ui;letter-spacing:1px;white-space:nowrap}
.beta-feedback-button{border:1px solid #708d82;border-radius:4px;background:transparent;color:inherit;padding:7px 10px;min-height:32px;font:12px OffshoreUI,system-ui;cursor:pointer;white-space:nowrap}.beta-feedback-button:hover{background:#6a947620}.beta-feedback-button:focus-visible{outline:2px solid #caa57e;outline-offset:2px}
.race-footer .beta-badge{color:#80603c;border-color:#b9a580;margin-left:7px}.race-footer .beta-feedback-button{font-size:10px;min-height:26px;padding:3px 7px}.race-compact .race-footer .beta-badge,[data-theme=night] .race-footer .beta-badge{color:#c8b38f;border-color:#8b8269}
.beta-dialog{--beta-paper:#f5f5ec;--beta-card:#fffef8;--beta-ink:#24494c;--beta-muted:#536b62;--beta-line:#becdc0;--beta-accent:#855b32;--beta-selected:#dfeadb;--beta-danger:#903d31;color-scheme:light;width:min(600px,calc(100vw - 24px));max-width:none;max-height:min(calc(100dvh - 24px),calc(var(--beta-height,100dvh) - 24px));padding:0;background:var(--beta-paper);color:var(--beta-ink);border:1px solid var(--beta-line);border-radius:9px;box-shadow:0 20px 100px #0c252b66;overflow:hidden}
.beta-dialog[open]{display:flex;flex-direction:column}.beta-dialog::backdrop{background:#0b252c88}.beta-dialog>header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:22px 24px 15px;border-bottom:1px solid var(--beta-line);flex-shrink:0}.beta-dialog .beta-badge{color:var(--beta-accent);border-color:var(--beta-line)}.beta-dialog h2{font:28px/1.2 Georgia,serif;margin:9px 0 0;color:var(--beta-ink)}.beta-close{border:0;background:transparent;color:var(--beta-muted);font-size:25px;min-width:44px;min-height:44px;cursor:pointer}
.beta-dialog form{display:flex;flex-direction:column;min-height:0;margin:0}.beta-form-body{padding:16px 24px 20px;overflow:auto;overscroll-behavior:contain;min-height:0}.beta-dialog p{font:13px/1.65 OffshoreUI,system-ui;color:var(--beta-muted);margin:0 0 18px}.beta-dialog fieldset{border:0;padding:0;margin:0 0 18px;display:flex;gap:8px;flex-wrap:wrap}.beta-dialog legend,.beta-message-label{font:600 12px/1.5 OffshoreUI,system-ui;margin-bottom:8px;display:block;color:var(--beta-ink)}.beta-dialog legend small{font-weight:400;color:var(--beta-muted);margin-left:5px}.beta-dialog fieldset label{position:relative;display:block;cursor:pointer;flex:1;min-width:110px}.beta-dialog fieldset input{position:absolute;z-index:1;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer}.beta-dialog fieldset span{display:grid;place-items:center;min-height:44px;padding:8px 10px;border:1px solid var(--beta-line);border-radius:5px;font:12px OffshoreUI,system-ui;background:var(--beta-card);color:var(--beta-ink)}.beta-dialog fieldset input:checked+span{background:var(--beta-selected);border-color:var(--beta-accent);box-shadow:inset 0 -2px var(--beta-accent)}.beta-dialog fieldset input:focus-visible+span{outline:2px solid var(--beta-accent);outline-offset:2px}
.beta-dialog textarea{display:block;resize:vertical;min-height:110px;max-height:35vh;width:100%;border:1px solid var(--beta-line);border-radius:4px;padding:12px;font:14px/1.55 OffshoreUI,system-ui;background:var(--beta-card);color:var(--beta-ink)}.beta-dialog textarea::placeholder{color:var(--beta-muted)}.beta-message-hint{display:flex;align-items:start;justify-content:space-between;gap:12px;margin:7px 0 20px;font:11px/1.5 OffshoreUI,system-ui;color:var(--beta-muted)}#beta-message-count{white-space:nowrap}.beta-dialog .beta-attach{display:flex;align-items:start;gap:10px;font:12px/1.5 OffshoreUI,system-ui;cursor:pointer}.beta-attach input{width:17px;height:17px;flex-shrink:0;margin:2px 0;accent-color:#386757}.beta-attach small{display:block;margin-top:5px;color:var(--beta-muted);overflow-wrap:anywhere}.beta-dialog .beta-private{font-size:11px;margin:16px 0 0}.beta-dialog .beta-error{color:var(--beta-danger);padding:12px;border:1px solid var(--beta-danger);border-radius:4px;margin:15px 0 0}.beta-dialog footer{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:16px;padding:14px 24px;border-top:1px solid var(--beta-line);margin:0;flex-shrink:0}.beta-dialog footer>span{font:11px/1.5 OffshoreUI,system-ui;color:var(--beta-muted);max-width:220px}.beta-dialog .button{width:auto;margin:0;min-height:44px;font:13px OffshoreUI,system-ui;cursor:pointer;white-space:nowrap}.beta-dialog .primary{background:#28534c;color:#eff2e4;border:1px solid #28534c}.beta-dialog :is(button,textarea):focus-visible{outline:2px solid var(--beta-accent);outline-offset:2px}.beta-dialog button:disabled{opacity:.65;cursor:wait}.beta-thanks h3{font:26px Georgia,serif;color:var(--beta-ink)}.beta-thanks small{font:11px OffshoreUI,system-ui;color:var(--beta-muted)}
:root[data-theme=night] .beta-dialog{--beta-paper:#142f37;--beta-card:#1b3a42;--beta-ink:#ceddd3;--beta-muted:#afc3b8;--beta-line:#4a665f;--beta-accent:#c7aa85;--beta-selected:#2d5145;--beta-danger:#e0b19c;color-scheme:dark}:root[data-theme=night] .beta-dialog p{color:var(--beta-muted)}:root[data-theme=night] .beta-dialog .beta-error{color:var(--beta-danger)}:root[data-theme=night] .beta-dialog .primary{background:#31594e;color:#d4e3d5;border-color:#839c8c}
@media(max-width:760px){.brand-and-beta{gap:8px}.brand-and-beta .beta-badge{font-size:8px;padding:3px 4px}.beta-dialog>header{padding:16px 16px 12px}.beta-dialog h2{font-size:24px}.beta-form-body{padding:14px 16px 18px}.beta-dialog footer{padding:12px 16px}.beta-dialog footer>span{font-size:10px}.beta-dialog fieldset label{min-width:85px}.beta-dialog fieldset span{font-size:11px;padding:8px 5px}.beta-message-hint{flex-wrap:wrap;gap:3px}.race-compact .race-footer #practice-conditions{order:3;flex-basis:100%}.race-compact .race-footer .beta-feedback-button{min-height:28px}.beta-dialog textarea{font-size:16px}}
/* Own the viewport before the helm removes the portal's reserved scrollbar. */
html[data-race-arrival]{scrollbar-gutter:auto;overflow:hidden}
html[data-race-arrival],html[data-race-arrival] body{background:#122e37}
html[data-race-arrival] body{overflow:hidden}
html[data-race-arrival] #app{visibility:hidden}
#race-arrival,#race-arrival *{box-sizing:border-box}
#race-arrival{position:fixed;inset:0;z-index:1000;width:100vw;height:100dvh;display:grid;place-items:center;padding:24px;overflow:auto;isolation:isolate;background:radial-gradient(ellipse at 50% 38%,#1a3b43 0,#122e37 58%,#102931 100%);color:#e4eade;text-align:center}
#race-arrival .race-arrival-content{display:grid;grid-template-rows:18px 112px 88px 12px 48px;justify-items:center;width:min(360px,100%)}
#race-arrival .race-arrival-brand{align-self:center;font:500 9px/18px OffshoreUI,system-ui,sans-serif;letter-spacing:.24em;color:#a8bfb5}
#race-arrival .race-arrival-scene{position:relative;display:grid;place-items:center;width:180px;height:112px}
#race-arrival .race-arrival-scene::before{content:'';position:absolute;inset:90px 0 auto;height:1px;background:linear-gradient(90deg,transparent,#a9beb04d,transparent)}
#race-arrival .race-arrival-scene::after{content:'';position:absolute;top:99px;width:38px;height:1px;background:linear-gradient(90deg,transparent,#a9beb026,transparent)}
#race-arrival svg{display:block;width:78px;height:78px;margin:0;fill:none;stroke:#d3ddcd;stroke-width:1.05;stroke-linejoin:round}
#race-arrival svg path:last-child{stroke:#c7a780}
#race-arrival p{align-self:stretch;display:grid;place-items:center;width:100%;max-height:88px;overflow:auto;margin:0;padding:8px 0;font:20px/1.5 Georgia,serif;letter-spacing:.1px;overflow-wrap:anywhere}
#race-arrival[data-state=recovering] p,#race-arrival[data-state=error] p{font-size:16px}
#race-arrival .race-arrival-current{position:relative;align-self:center;display:block;width:64px;height:1px;overflow:hidden;background:#a8bfb526}
#race-arrival .race-arrival-current::after{content:'';position:absolute;inset:0 auto 0 0;width:32px;background:linear-gradient(90deg,transparent,#d0b38d,transparent);animation:arrival-current 3.8s ease-in-out infinite}
#race-arrival[data-state=error] .race-arrival-current{visibility:hidden}
#race-arrival .race-arrival-actions{display:flex;justify-content:center;align-items:center;gap:16px;min-height:44px;width:100%}
#race-arrival button{min-height:44px;margin:0;padding:8px 18px;border:1px solid #9bb8aa;border-radius:3px;background:transparent;color:#eff4e8;font:500 12px/18px OffshoreUI,system-ui,sans-serif}
#race-arrival button:hover{background:#dce9df0c}
#race-arrival a{display:inline-flex;align-items:center;min-height:44px;margin:0;padding:8px 12px;color:#afc4ba;font:12px/18px OffshoreUI,system-ui,sans-serif;text-decoration:none;text-underline-offset:4px}
#race-arrival a:hover{text-decoration:underline;color:#e4eade}
#race-arrival :is(a,button):focus-visible{outline:2px solid #d3b38c;outline-offset:3px}
@keyframes arrival-current{0%{transform:translateX(-100%)}70%,100%{transform:translateX(200%)}}
@media(prefers-reduced-motion:reduce){#race-arrival .race-arrival-current::after{animation:none;transform:translateX(50%)}}
@media(max-height:360px){#race-arrival{padding:16px}#race-arrival .race-arrival-content{grid-template-rows:18px 80px 80px 12px 44px}#race-arrival .race-arrival-scene{height:80px}#race-arrival .race-arrival-scene::before{top:75px}#race-arrival .race-arrival-scene::after{top:79px}#race-arrival svg{width:64px;height:64px}#race-arrival p{max-height:80px}}
