@import url('../dive/dive.css');
main{max-width:1450px}.heading h1{font-size:clamp(42px,6vw,76px)}.race-layout{display:grid;grid-template-columns:minmax(0,1fr) 325px;gap:20px;align-items:start}.arena{overflow:hidden;border:1px solid #43676b;border-radius:18px;background:#082b35}.arena-top{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:24px 28px;background:#062a34}.arena-top .eyebrow{font-size:10px;color:#c9c99d}.arena h2{font-size:29px;letter-spacing:-.03em;line-height:1.1;margin:8px 0 0}.pot{text-align:right;flex-shrink:0}.pot span{display:block;font-size:11px;color:#b6ceca;margin-bottom:6px}.pot strong{font-size:27px;font-variant-numeric:tabular-nums;color:#ffdf8a}.water-stage{position:relative;height:420px;background:#063c4c}.water-stage canvas{display:block;width:100%;height:100%}.stage-caption{position:absolute;inset:auto 20px 16px;display:flex;justify-content:space-between;align-items:center;gap:12px;color:#dbe9e0;font-size:12px}.stage-caption button{font-size:12px;background:#042b38bb;border-radius:20px;padding:7px 13px;text-decoration:none}#countdown{position:absolute;inset:25% 0 auto;text-align:center;font-size:78px;color:#fff1d2;font-weight:700;text-shadow:0 4px 30px #052029;margin:0;pointer-events:none}.race-ticket{background:#092e35;border:1px solid #365b61;border-radius:14px;padding:22px}.race-ticket fieldset{min-width:0;width:100%}.race-ticket legend{font-size:21px;font-weight:650;color:var(--paper);margin-bottom:18px}.race-ticket fieldset>div{display:grid;gap:8px}#fish-choices button{width:100%;display:flex;text-align:left;gap:10px;align-items:center;padding:11px 13px;border-color:#48676b;background:#092832}#fish-choices button[aria-pressed=true]{border-color:#e4cf8c;background:#254147}#fish-choices strong{display:block;font-size:17px}#fish-choices small{display:block;font-size:11px;line-height:1.5;color:#c5d3ce;font-weight:400}.fish-dot{display:block;width:9px;height:9px;flex-shrink:0;border-radius:100%;margin:0}.course-label{display:block;margin-top:20px;font-size:12px;color:var(--muted)}select{width:100%;margin-top:7px;padding:11px 12px;border:1px solid #48676b;border-radius:6px;color:var(--paper);background:#072631;font:14px var(--sans)}#course-detail{font-size:12px;line-height:1.5;color:var(--muted);margin:8px 0 16px}.strategy-toggle{display:flex;gap:10px;align-items:center;padding-top:16px;border-top:1px solid #3a5d63;cursor:pointer}.strategy-toggle input{width:20px;height:20px;accent-color:#d9e5b6;flex-shrink:0}.strategy-toggle strong{font-size:13px;display:block}.strategy-toggle small{display:block;font-size:11px;color:#c0ccae;margin-top:5px}#plan{margin:14px 0 0;font-size:13px;line-height:1.6;color:#eddfb5;border-left:2px solid #7b9669;padding:0 0 0 12px}.recorded{font-size:10px;line-height:1.5;color:#a6bebb;margin:12px 0 0}.entry-total{border-top:1px solid #3a5d63;margin-top:18px;padding:16px 0;display:flex;justify-content:space-between;gap:12px;font-size:13px}.entry-total small{display:block;font-size:10px;color:var(--muted);margin-top:5px}.entry-total strong{white-space:nowrap}.race-ticket .primary{width:100%;margin:0}.race-ticket #status{font-size:12px;line-height:1.5;min-height:18px;margin:10px 0}.risk-note{font-size:10px;color:#aac0bd;line-height:1.6;margin:12px 0 0}#standings{display:flex;list-style:none;padding:15px 20px;margin:0;gap:20px;justify-content:space-between;font-size:12px;color:#bfd6d5;border-top:1px solid #426570}#standings strong{color:var(--paper);display:block;font-size:14px;margin-bottom:4px}.finish{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 25px;background:#184343;border-top:1px solid #68867a}.finish .eyebrow{font-size:10px;color:#e7d39c;margin:0}.finish h2{font-size:26px}.finish p:last-child{font-size:12px;color:#cbded6;margin-bottom:0}.finish .secondary{font-size:12px;white-space:nowrap;padding:12px}.tide{display:grid;grid-template-columns:150px 1fr 160px;gap:25px;align-items:center;margin-top:25px;padding:22px 28px;background:linear-gradient(120deg,#163937,#0b2b35);border:1px solid #516e60;border-radius:14px}.tide-art img{width:150px;height:150px;object-fit:contain;filter:drop-shadow(0 10px 10px #041e2a)}.tide .eyebrow{font-size:10px;color:#d2ce9d}.tide h2{font-size:28px;letter-spacing:-.035em;margin:5px 0 10px}.tide p{font-size:13px;line-height:1.6;color:#bcd1c9}.tide details{padding:7px 0;border:0}.tide summary{font-size:12px}.tide-balance{text-align:right}.tide-balance strong{display:block;font-size:42px;color:#f0d888}.tide-balance span{font-size:11px;color:var(--muted)}meter{display:block;width:100%;height:7px;margin-top:15px;accent-color:#c9d697}.loop{max-width:1000px;margin:55px auto 15px}.loop>.eyebrow{font-size:10px;color:#c0c9a0}.loop>h2{font-size:38px;letter-spacing:-.04em;margin:10px 0 15px}.loop>p{color:var(--muted);line-height:1.7;max-width:70ch}.loop-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;padding:24px 0}.loop-steps span{font:10px var(--mono);color:#b9c695}.loop-steps h3{font-size:20px;margin:10px 0}.loop-steps p,#evidence p{font-size:13px;color:var(--muted);line-height:1.7}#evidence a{color:#e0dbb3}#evidence .text-button{font-size:13px}button:disabled{cursor:default;opacity:.55}.arena[data-course=grotto] .water-stage{background:#091e36}.race-ticket button:focus-visible,select:focus-visible,input:focus-visible{outline:2px solid #f5dc96;outline-offset:3px}
@media(max-width:1050px){.race-layout{grid-template-columns:minmax(0,1fr) 290px}.arena-top{padding:20px}.arena h2{font-size:25px}.pot strong{font-size:23px}.water-stage{height:450px}.race-ticket{padding:18px}.tide{grid-template-columns:110px 1fr 130px;gap:20px}.tide-art img{width:110px;height:110px}}
@media(max-width:760px){.race-layout{display:flex;flex-direction:column}.arena,.race-ticket{width:100%;box-sizing:border-box}.race-ticket{order:-1}.race-ticket legend{font-size:19px;margin-bottom:12px}.race-ticket fieldset>div{grid-template-columns:repeat(3,1fr);gap:6px}#fish-choices button{padding:10px 6px;display:block;text-align:center}#fish-choices .fish-dot{margin:0 auto 7px}#fish-choices strong{font-size:14px}#fish-choices small{font-size:10px;line-height:1.4;margin-top:5px}.course-label{margin-top:14px}#plan{font-size:12px}.recorded{font-size:11px}.arena-top{padding:18px 16px;gap:10px}.arena h2{font-size:23px}.pot strong{font-size:22px}.water-stage{height:360px}#standings{gap:8px;padding:13px;font-size:10px}#standings strong{font-size:12px}.finish{padding:18px 16px;flex-direction:column;align-items:flex-start}.finish h2{font-size:25px}.tide{grid-template-columns:1fr 85px;padding:18px;gap:15px}.tide-art{display:none}.tide h2{font-size:25px}.tide-balance strong{font-size:34px}.tide-balance span{font-size:10px}.loop{margin-top:35px}.loop>h2{font-size:31px}.loop-steps{grid-template-columns:1fr;gap:14px}.loop-steps h3{margin:6px 0}.loop-steps p{margin:5px 0}body.racing .race-ticket #choices,body.racing .race-ticket .risk-note,body.racing .entry-total{display:none}body.racing .race-ticket{padding:12px 18px}body.racing .race-ticket #enter{display:none}body.racing .race-ticket #status{margin:0}.heading h1{max-width:none;font-size:42px}.heading p:last-child{max-width:25ch}.balance strong{font-size:27px}}

.pot small{display:block;color:#c1d1c8;font-size:10px;margin-top:7px}.stage-caption{background:linear-gradient(90deg,#042b38bb,#042b3800);border-radius:8px;padding:6px 8px;inset:auto 12px 10px}.stage-caption span{max-width:65%;line-height:1.4}@media(min-width:1051px){.water-stage{height:540px}}@media(max-width:480px){.pot small{max-width:110px;margin-left:auto;line-height:1.4}.pot strong{font-size:19px}.arena-top{align-items:flex-start}}

.strategy-toggle input{color-scheme:light}.race-ticket:focus-within{scroll-margin-top:20px}@media(max-width:760px){body.has-race .race-ticket{order:1}#standings{font-size:12px}#standings strong{font-size:13px}.arena{scroll-margin-top:12px}}

/* Race room: the course is the main event; the ticket is a compact instrument. */
body[data-ui=cup] main{max-width:1600px;padding-inline:4vw}
body[data-ui=cup] .heading{align-items:center}
body[data-ui=cup] .heading h1{font-size:clamp(38px,4.3vw,62px);margin:7px 0 12px}
body[data-ui=cup] .race-layout{grid-template-columns:minmax(0,1fr) 300px;gap:18px}
body[data-ui=cup] .arena{position:relative;border-radius:14px;border-color:#bfccba35;background:#0b2933}
body[data-ui=cup] .arena-top{position:absolute;z-index:2;inset:0 0 auto;background:linear-gradient(#031e2bea,#031e2b00);padding:24px 26px 45px;pointer-events:none}
body[data-ui=cup] .arena h2{font-size:25px}
body[data-ui=cup] .pot strong{font-size:27px}
body[data-ui=cup] .water-stage{height:610px;background:#154a59}
body[data-ui=cup] .race-ticket{border:1px solid #bfccba26;border-radius:14px;padding:22px;background:#0b2933}
body[data-ui=cup] .race-ticket legend{font-size:22px;letter-spacing:-.03em;margin-bottom:18px}
body[data-ui=cup] #fish-choices button{background:#061e28;border:1px solid #a6c0b926;border-radius:8px;padding:12px}
body[data-ui=cup] #fish-choices button[aria-pressed=true]{border-color:#d9bf81;background:#dcc48912}
body[data-ui=cup] #fish-choices strong{font-size:16px;color:#eee4c8}
body[data-ui=cup] #fish-choices small{font-size:11px;color:#b6c8c4}
body[data-ui=cup] .stage-caption{inset:auto 16px 14px;background:#041f2bc9;padding:9px 12px;border:1px solid #becfb12e;border-radius:7px;font-size:12px}
.race-labels{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.race-name{position:absolute;left:0;top:0;font:500 11px/1.3 Archivo,sans-serif;color:#e4eeea;background:#04212bbd;border:1px solid #afc9c237;border-radius:5px;padding:5px 8px;white-space:nowrap;will-change:transform}
.race-name.yours{color:#ffdf95;border-color:#edd39870;background:#082733e8}
body[data-ui=cup] .tide{border:0;border-top:1px solid #b4c5b432;border-bottom:1px solid #b4c5b432;border-radius:0;background:none;margin-top:28px;padding:20px 0;grid-template-columns:100px 1fr 130px}
body[data-ui=cup] .tide-art img{width:95px;height:95px}
body[data-ui=cup] .tide h2{font-size:24px}
body[data-ui=cup] .tide-balance strong{font-size:34px}
body[data-ui=cup] .loop{max-width:none;margin-top:42px}
@media(max-width:1050px){body[data-ui=cup] .race-layout{grid-template-columns:minmax(0,1fr) 275px}body[data-ui=cup] .race-ticket{padding:18px}body[data-ui=cup] .water-stage{height:610px}}
@media(max-width:760px){body[data-ui=cup] main{padding-inline:20px}body[data-ui=cup] .race-layout{display:flex}body[data-ui=cup] .water-stage{height:430px}body[data-ui=cup] .race-ticket{padding:18px}body[data-ui=cup] .arena-top{padding:20px 16px 40px}body[data-ui=cup] .arena h2{font-size:22px}body[data-ui=cup] .pot strong{font-size:22px}body[data-ui=cup] .tide{grid-template-columns:1fr 85px}body[data-ui=cup] #fish-choices button{padding:10px 7px}body[data-ui=cup] #fish-choices strong{font-size:14px}body[data-ui=cup] .heading h1{font-size:38px}body[data-ui=cup] .heading>div>p:last-child{font-size:14px}body[data-ui=cup].racing .race-ticket{padding:12px 18px}}
body[data-ui=cup] .race-layout{align-items:stretch}
body[data-ui=cup] .arena{display:flex;flex-direction:column}
body[data-ui=cup] .water-stage{flex:1;min-height:570px;height:auto}
body[data-ui=cup] #standings:empty{display:none}
body[data-ui=cup] #choices:has(#assisted:not(:checked)) :is(#plan,.recorded){display:none}
body[data-ui=cup] .strategy-toggle{align-items:flex-start;font-size:13px}
body[data-ui=cup] .strategy-toggle input{appearance:none;width:32px;height:19px;border-radius:20px;border:1px solid #7c9b95;background:#183e46;position:relative;margin:2px 0 0;cursor:pointer}
body[data-ui=cup] .strategy-toggle input:before{content:'';position:absolute;width:11px;height:11px;top:3px;left:3px;border-radius:50%;background:#afc3ba;transition:transform .15s}
body[data-ui=cup] .strategy-toggle input:checked{background:#d5c18a;border-color:#d5c18a}
body[data-ui=cup] .strategy-toggle input:checked:before{background:#173a40;transform:translateX(13px)}
@media(max-width:760px){body[data-ui=cup] .arena{order:-1}body[data-ui=cup] .race-ticket{order:0}body[data-ui=cup] .water-stage{min-height:300px;height:300px;flex:none}body[data-ui=cup].has-race .water-stage{min-height:390px;height:390px}body[data-ui=cup] .stage-caption{font-size:10px;inset:auto 8px 8px;padding:6px 8px}body[data-ui=cup] .race-name{font-size:10px;padding:4px 6px}}


/* Persistent finish direction: restrained arena tone and live 3D rank labels. */
.arena[data-outcome="win"]{box-shadow:inset 0 0 0 1px #e7c77b70,0 12px 36px #bb91351a;}
.arena[data-outcome="loss"]{box-shadow:inset 0 0 0 1px #c9a29860,0 12px 36px #73525814;}
.arena[data-outcome="win"] #race-label{color:#f0d395;}
.arena[data-outcome="loss"] #race-label{color:#e0bbb0;}
.race-labels[data-presentation="finish"] .race-name{
 display:flex;align-items:center;gap:6px;white-space:nowrap;
 padding:5px 8px;border:1px solid #bddbd34d;border-radius:8px;
 background:#071f2bed;color:#e4efea;font-size:11px;font-weight:650;
 line-height:1.25;letter-spacing:.01em;text-shadow:none;
 box-shadow:0 4px 14px #0005;pointer-events:none;
}
.race-labels[data-presentation="finish"] .race-name::before{
 content:attr(data-rank);display:grid;place-items:center;flex:0 0 20px;
 width:20px;height:20px;border:1px solid #c2d9d355;border-radius:7px;
 background:#bddbd30d;color:#d7e7e1;font-size:11px;font-weight:650;
 font-variant-numeric:tabular-nums;
}
.race-labels[data-presentation="finish"] .race-name[data-rank="1"]{
 border-color:#e7c77b99;color:#ffe5a7;background:#24291fed;
 box-shadow:0 4px 18px #0005,0 0 16px #d3ad481a;
}
.race-labels[data-presentation="finish"] .race-name[data-rank="1"]::before{
 border-color:#e7c77b99;background:#e7c77b1a;color:#ffe5a7;
}
.race-labels[data-presentation="finish"] .race-name.yours{outline:1px solid #d9eee866;outline-offset:2px;}
@media(max-width:520px){
 .race-labels[data-presentation="finish"] .race-name{gap:4px;padding:5px 6px;font-size:10px;}
 .race-labels[data-presentation="finish"] .race-name::before{flex-basis:18px;width:18px;height:18px;font-size:10px;}
}

/* Keep WebGL drawing-buffer dimensions out of the flexible arena layout. */
body[data-ui=cup] .water-stage canvas{position:absolute;inset:0;width:100%;height:100%}

.race-coach{padding:clamp(1rem,2vw,1.8rem);background:linear-gradient(135deg,rgba(58,142,140,.17),rgba(7,34,45,.2));border-top:1px solid var(--line,#31525b)}.race-coach h2{font-size:clamp(1.4rem,2.5vw,2rem);margin:0 0 .5rem}.race-coach p{line-height:1.5}.coach-forecast{display:grid;grid-template-columns:repeat(3,1fr);gap:.65rem;margin:1rem 0}.coach-forecast>div{padding:.75rem;border:1px solid #3e676b;border-radius:.6rem}.coach-forecast [data-active=true]{border-color:#e4bd70;background:rgba(228,189,112,.08)}.coach-forecast strong,.coach-forecast span{display:block}.coach-forecast span{font-size:.78rem;line-height:1.6;margin-top:.4rem}.coach-previous{color:var(--cream,#eee6c8)}.coach-routes{display:grid;grid-template-columns:repeat(3,1fr);gap:.65rem;margin:1rem 0;border:0;padding:0}.coach-routes legend,.coach-paces legend{padding:0 0 .6rem;font-weight:700}.coach-routes label,.coach-paces label{display:flex;align-items:flex-start;gap:.5rem;padding:.8rem;border:1px solid #42676d;border-radius:.6rem;cursor:pointer}.coach-routes label:has(:checked),.coach-paces label:has(:checked){border-color:#e4bd70;background:rgba(228,189,112,.12)}.coach-routes small{display:block;line-height:1.4;margin-top:.35rem}.coach-paces{display:flex;gap:.65rem;flex-wrap:wrap;padding:0;border:0;margin:1rem 0}.coach-paces label:has(:disabled){opacity:.5}.race-coach>.primary{width:100%;white-space:normal;line-height:1.5}.race-coach input{accent-color:#d8bd7d}.race-coach [hidden]{display:none!important}@media(max-width:650px){.coach-forecast{grid-template-columns:1fr}.coach-routes{grid-template-columns:1fr}.coach-paces label{flex:1;min-width:7rem}}

.coach-outlook{margin:.7rem 0}.coach-outlook summary{font-size:.85rem;color:#eee0b9}.coach-routes label{align-items:center}.coach-routes label>span{flex:1;min-width:0;display:grid;grid-template-columns:1fr auto;gap:.25rem .4rem}.coach-routes small{grid-column:1/-1;margin:0;font-size:.76rem}.coach-routes b{color:#f0d888;font-variant-numeric:tabular-nums}.coach-paces small{display:block;font-size:.72rem;margin-top:.2rem}.race-coach :focus-visible{outline:2px solid #f5dc96;outline-offset:3px}
@media(max-width:650px){.race-coach{padding:1rem}.race-coach>p{font-size:.85rem}.coach-routes{gap:.45rem}.coach-routes label{padding:.7rem}.coach-routes strong{font-size:.9rem}.coach-paces{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.4rem}.coach-paces label{min-width:0;padding:.6rem .35rem;font-size:.83rem;gap:.3rem}.coach-paces input{margin:2px 0 0}.coach-forecast>div{padding:.6rem}}

.coach-routes strong,.coach-paces label{color:#f0ead3}.coach-outlook{padding:0!important}.coach-outlook summary{padding:.65rem 0}.coach-previous:empty{display:none}

.circuit-invitation{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:22px 26px;margin:0 0 26px;border:1px solid #aec79055;border-radius:14px;background:#133b3b}.circuit-invitation strong{display:block;color:#edf0c6;font-size:20px}.circuit-invitation span{display:block;font-size:13px;color:#bdd1c3;margin-top:7px;line-height:1.5}.circuit-invitation a{color:#dfebb6;white-space:nowrap}@media(max-width:650px){.circuit-invitation{align-items:flex-start;flex-direction:column;gap:14px}}
