:root{--paper:#f6f4e9;--ink:#283727;--muted:#75806d;--border:#d9dece;--orange:#e56536;--green:#41573c}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',sans-serif}button,input,select{font:inherit}button,a,select,summary{touch-action:manipulation}button:focus-visible,a:focus-visible,select:focus-visible,summary:focus-visible,input:focus-visible{outline:3px solid var(--orange);outline-offset:4px}header{height:86px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 5.5%}.brand{display:flex;align-items:center;gap:12px;color:var(--ink);text-decoration:none;font-size:12px;font-weight:700;letter-spacing:1.8px}.brand-icon{font-family:'Space Grotesk',sans-serif;font-size:26px;background:var(--ink);color:var(--paper);padding:1px 9px 6px;border-radius:9px;letter-spacing:-2px}.collection{color:var(--muted);margin-left:12px;font-size:10px}.header-note{font-size:12px;color:var(--muted)}main{max-width:1280px;margin:auto;padding:47px 48px 0}.intro{display:flex;align-items:center;justify-content:space-between;margin-bottom:34px}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:700;margin:0 0 13px}h1{font-family:'Space Grotesk',sans-serif;font-size:clamp(40px,5vw,64px);font-weight:600;letter-spacing:-3px;margin:0;line-height:1.06}.title-dot{color:var(--orange)}.subtitle{color:var(--muted);font-size:15px;margin:15px 0 0}.edition{border-left:1px solid var(--border);padding-left:32px;display:flex;flex-direction:column;gap:7px}.edition span{font-size:9px;letter-spacing:1.5px;color:var(--muted)}.edition strong{font-family:'Space Grotesk',sans-serif;font-size:32px;letter-spacing:-1px}.edition small{font-size:15px}.race-card{border:1px solid var(--border);border-radius:14px;overflow:hidden;background:#fbfaf3}.race-top{height:49px;display:flex;align-items:center;justify-content:space-between;padding:0 25px;font-size:10px}.live{font-weight:700;letter-spacing:1px;display:flex;align-items:center;gap:7px}.live i,.on-air i{width:6px;height:6px;display:inline-block;border-radius:50%;background:var(--orange)}.live span{font-size:9px;color:var(--muted);margin-left:9px;font-weight:500;letter-spacing:.8px}#weather{color:var(--muted)}.scene{height:302px;background:#e9eede;position:relative;overflow:hidden;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.sun{position:absolute;width:53px;height:53px;border-radius:50%;background:#ecdba5;right:19%;top:31px}.cloud{position:absolute;height:15px;border-radius:50%;background:#f8f9ee;opacity:.8}.cloud-a{width:128px;top:44px;left:22%}.cloud-b{width:85px;top:70px;right:7%}.hill{position:absolute;border-radius:50% 50% 0 0}.hill-a{background:#d9e2c8;width:70%;height:135px;bottom:105px;left:-12%;transform:rotate(4deg)}.hill-b{background:#d0ddbf;width:80%;height:155px;bottom:86px;right:-25%;transform:rotate(-6deg)}.far-grass{position:absolute;bottom:99px;left:0;right:0;height:15px;background:#c2d1ad}.track{position:absolute;height:100px;bottom:0;width:100%;background:#dad7bd;border-top:4px solid #bbc9a2}.track-line{position:absolute;top:37px;width:100%;border-top:1px dashed #b7b598}.start-marker{position:absolute;bottom:48px;left:8%;z-index:2}.start-marker span{font-size:9px;letter-spacing:1.3px;background:#f9f6e9;padding:6px 9px;border:1px solid #a8b697}.start-marker div{width:2px;height:112px;background:#8f9b7b;margin:0 auto}.course-sign{position:absolute;right:9%;bottom:115px;border:1px solid #a4ad8f;background:#f6f2de;padding:8px 12px;font-size:10px;font-weight:700;letter-spacing:1px;transform:rotate(-3deg)}.course-sign small{display:block;font-size:8px;letter-spacing:0;font-weight:400;margin-top:5px}.course-sign:after{content:'';position:absolute;width:3px;height:40px;top:100%;left:50%;background:#8f9b7b}.athlete{position:absolute;width:178px;bottom:47px;left:16%;transition:left 1s linear;z-index:3}.snail{width:178px;display:block;transform-origin:bottom;animation:breathe 5s ease-in-out infinite}.athlete-label{display:block;text-align:center;font-size:8px;letter-spacing:1.3px;font-weight:700;margin-top:-8px}.speech{position:absolute;bottom:145px;left:27px;font-size:10px;white-space:nowrap;background:#fffdf0;padding:9px 12px;border:1px solid #c0c7ae;border-radius:8px;transform:rotate(-2deg);box-shadow:0 3px 0 #dce2d0}.speech:after{content:'';position:absolute;bottom:-5px;left:20px;width:8px;height:8px;background:#fffdf0;transform:rotate(45deg);border-right:1px solid #c0c7ae;border-bottom:1px solid #c0c7ae}.scene-caption,.scene-scale{position:absolute;bottom:16px;font-size:9px;color:#71775c}.scene-caption{left:25px;font-style:italic}.scene-scale{right:25px;font-size:8px;letter-spacing:1px}.pebble{position:absolute;border-radius:50%;background:#b1b396;width:12px;height:5px;bottom:56px}.p1{left:55%}.p2{right:16%;bottom:72px;width:6px}.tuft{position:absolute;font-size:33px;color:#96a77e;bottom:90px}.t1{left:49%}.t2{right:6%}.telemetry{display:grid;grid-template-columns:1fr 1fr 1fr;padding:24px 25px 20px}.telemetry>div+div{border-left:1px solid var(--border);padding-left:29px}.telemetry p{font-size:9px;letter-spacing:1.4px;color:var(--muted);margin:0 0 9px}.telemetry strong{font-family:'Space Grotesk',sans-serif;font-size:32px;font-weight:500;letter-spacing:-1px;font-variant-numeric:tabular-nums}.telemetry small{font:12px 'DM Sans',sans-serif;letter-spacing:0}.telemetry span{display:block;font-size:10px;color:var(--muted);margin-top:7px}.progress-wrap{padding:0 25px 24px}.progress-label{display:flex;justify-content:space-between;font-size:8px;color:var(--muted);letter-spacing:.6px;margin-bottom:8px}.progress-track{height:5px;border-radius:10px;background:#e4e7d9;overflow:hidden}#progress{background:var(--orange);height:100%;min-width:0;transition:width 1s linear}.lower-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:36px;margin-top:34px}.section-heading{display:flex;align-items:center;justify-content:space-between}.section-heading h2{font-family:'Space Grotesk',sans-serif;font-size:20px;font-weight:500;letter-spacing:-.6px;margin:0}.section-heading>span{font-size:8px;color:var(--muted);letter-spacing:1px}.panel-note{font-size:11px;color:var(--muted);margin:10px 0 20px}.buttons{display:flex;gap:9px}button{cursor:pointer;border:1px solid #cbd1c0;border-radius:7px;background:#fdfcf5;color:var(--ink);padding:12px 13px;font-size:11px;font-weight:600;transition:transform .12s,background .15s}button:hover{background:#e9eedd}button:active{transform:translateY(2px)}button.primary{background:var(--orange);color:#fffdf6;border-color:var(--orange);flex:1;text-align:left;padding:13px 17px}.primary:hover{background:#cb542a}.primary span{float:right;font-size:17px;line-height:12px}.support-stats{display:flex;gap:17px;margin:16px 0 24px;font-size:9px;color:var(--muted)}.support-stats b{color:var(--ink)}.time-machine{padding:17px 0 12px;border-top:1px solid var(--border);display:flex;gap:14px;align-items:center;justify-content:space-between}h3{font-size:11px;font-weight:600;margin:0 0 5px}.time-machine p,.time-note{font-size:9px;color:var(--muted);margin:0}select{background:#eeeee1;border:1px solid #d2d7c5;border-radius:5px;font-size:10px;color:var(--ink);padding:9px 7px;max-width:190px}.time-note{margin-top:2px}.accelerated .time-note{color:#b84b28}details{border-top:1px solid var(--border);margin-top:16px;padding-top:13px;font-size:10px;color:var(--muted)}summary{cursor:pointer}.name-label{display:flex;align-items:center;gap:15px;margin:14px 0}input{padding:7px;border:1px solid var(--border);background:#fffdf6;border-radius:4px;width:170px;color:var(--ink);font-size:12px}.text-button{padding:5px 0;border:0;background:none;text-decoration:underline;font-weight:400;color:var(--muted)}.settings-note{font-size:9px;line-height:1.6;max-width:380px}.commentary-panel{border-left:1px solid var(--border);padding-left:35px}.on-air{display:flex;gap:6px;align-items:center}.lead-comment{position:relative;padding:21px 0 17px 25px}.quote-mark{position:absolute;left:0;top:11px;font-size:44px;color:var(--orange);font-family:Georgia,serif}.lead-comment p{font-family:'Space Grotesk',sans-serif;font-size:19px;line-height:1.45;letter-spacing:-.4px;margin:0 0 11px}.lead-comment>span:last-child{font-size:7px;letter-spacing:1.2px;color:var(--muted)}.feed{border-top:1px solid var(--border);height:139px;overflow:auto;scrollbar-width:thin}.feed-row{display:flex;gap:13px;padding:12px 0;border-bottom:1px solid #e3e5d8;font-size:10px;line-height:1.5}.feed-row time{color:#8a917e;font-size:8px;white-space:nowrap;padding-top:2px;font-variant-numeric:tabular-nums}.feed-row p{margin:0}.race-notes{margin-top:32px;padding:25px 0;display:grid;grid-template-columns:1fr 1fr 1fr;border-top:1px solid var(--border);gap:24px}.race-notes span{font-size:8px;color:var(--muted);letter-spacing:1.3px}.race-notes p{font-size:11px;line-height:1.7;margin:9px 0 0}footer{border-top:1px solid var(--border);padding:21px 0 26px;display:flex;justify-content:space-between;font-size:8px;color:var(--muted);letter-spacing:.2px}footer b{margin:0 5px}footer i{font-style:normal;color:#728462}.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%,15px);background:var(--ink);color:var(--paper);padding:13px 20px;border-radius:9px;opacity:0;pointer-events:none;font-size:12px;transition:opacity .2s,transform .2s;max-width:90vw;z-index:10}.toast.show{opacity:1;transform:translate(-50%,0)}@keyframes breathe{50%{transform:scaleY(.98) rotate(.4deg)}}@media(min-width:1450px){main{padding-top:55px}.scene{height:340px}}@media(max-width:800px){header{height:65px;padding:0 24px}.header-note{display:none}main{padding:30px 24px 0}.edition{padding-left:18px}.edition strong{font-size:25px}.edition span{font-size:7px}.lower-grid{gap:25px;grid-template-columns:1fr}.commentary-panel{border-left:0;border-top:1px solid var(--border);padding:24px 0 0}.scene{height:280px}.telemetry strong{font-size:25px}.telemetry>div+div{padding-left:18px}.course-sign{right:5%}.scene-scale{display:none}.lead-comment p{font-size:19px}.feed{height:126px}}@media(max-width:500px){main{padding:27px 16px 0}.collection{margin-left:0}.intro{align-items:flex-start}.eyebrow{font-size:7px;letter-spacing:1.2px}h1{font-size:39px;letter-spacing:-2px}.subtitle{font-size:11px;max-width:210px;line-height:1.6}.edition{display:none}.race-top{padding:0 13px}#weather{font-size:8px;max-width:100px;text-align:right}.live span{font-size:7px;max-width:100px}.scene{height:275px}.athlete{left:12%;width:150px}.snail{width:150px}.speech{font-size:8px;bottom:125px;left:5px}.course-sign{font-size:8px;right:5%;bottom:128px}.course-sign small{max-width:95px;font-size:7px}.scene-caption{font-size:8px;left:13px}.telemetry{padding:21px 13px}.telemetry strong{font-size:21px;letter-spacing:-.8px}.telemetry small{font-size:9px}.telemetry p{font-size:7px;letter-spacing:.7px}.telemetry>div+div{padding-left:12px}.telemetry span{font-size:8px;line-height:1.5}.progress-wrap{padding:0 13px 20px}.progress-label{font-size:6px}.buttons{gap:6px}button{padding:12px 10px;font-size:10px}.primary{min-width:135px}.support-stats{font-size:8px;gap:13px}.time-machine{gap:9px}.time-machine h3{font-size:10px}.time-machine p{font-size:8px;max-width:150px;line-height:1.5}select{font-size:9px;max-width:154px}.race-notes{gap:13px}.race-notes span{font-size:6px;letter-spacing:.7px}.race-notes p{font-size:9px}footer{gap:12px;line-height:1.6}footer span{max-width:50%}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}

/* Clear race controls, larger reading type, optional detail on demand. */
:root{--muted:#55624c}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{font-size:16px}header{height:56px;padding:0 20px}.brand{font-size:16px;letter-spacing:0;min-height:48px}.brand-icon{font-size:23px;letter-spacing:0;line-height:1;padding:5px 9px}.header-note{font-size:14px}.subtitle{font-size:16px;color:#55624c;line-height:1.45}.intro{margin-bottom:20px}.race-top{font-size:14px;padding:0 18px;height:40px}.live{font-size:13px;letter-spacing:0}.live span{font-size:12px;letter-spacing:0;margin-left:5px}#weather{display:none}.scene{height:250px}.speech{white-space:normal;width:235px;font-size:15px;line-height:1.35;bottom:133px;left:-20px;padding:10px 12px}.athlete-label{font-size:12px;letter-spacing:0;line-height:1.4;margin-top:-8px}.start-marker span{font-size:13px;letter-spacing:0}.course-sign{font-size:14px;letter-spacing:0;right:5%;bottom:140px;padding:7px 10px}.controls-panel{padding:18px;border-bottom:1px solid var(--border)}.controls-panel>.section-heading,.controls-panel>.panel-note{display:none}.buttons{display:grid;grid-template-columns:2fr 1fr 1fr;gap:10px}.buttons button{font-size:16px;min-height:50px;padding:12px}.buttons .primary{padding:13px 16px}.support-stats{font-size:13px;gap:18px;margin:12px 0;line-height:1.4}.support-stats>span:last-child{display:none}.extra-controls{font-size:15px;margin-top:13px;padding-top:0;border:0}.extra-controls>summary{min-height:44px;display:list-item;align-content:center;font-size:16px;color:var(--ink)}.time-machine{padding:15px 0;gap:14px;border-top:0}.time-machine h3{font-size:16px}.time-machine p,.time-note{font-size:14px;line-height:1.5;max-width:none}select{font-size:16px;min-height:48px;max-width:230px;padding:10px}.time-note{margin-bottom:14px}details{font-size:15px;line-height:1.5}summary{font-size:16px;min-height:44px;align-content:center}.name-label{flex-wrap:wrap;gap:10px;font-size:16px}input{font-size:16px;padding:12px;min-height:48px;width:100%;max-width:250px}.settings-note{font-size:14px}.text-button{font-size:16px;min-height:48px}#reset-confirm p{font-size:15px}#reset-confirm button{font-size:15px;min-height:48px}.telemetry{padding:18px;grid-template-columns:1.2fr 1.4fr 1fr;gap:12px}.telemetry>div+div{padding-left:16px}.telemetry p{font-size:13px;letter-spacing:0;margin-bottom:8px;color:#4b5c42}.telemetry strong{font-size:28px;letter-spacing:-.6px}.telemetry small{font-size:14px}.telemetry span{font-size:13px;line-height:1.4}.progress-label{font-size:12px;letter-spacing:0;gap:10px;flex-wrap:wrap}.progress-label #percent{margin-left:auto}.progress-label>span:last-child{display:none}.progress-track{height:8px}.lower-grid{display:block;margin-top:24px}.commentary-panel{padding:0;border:0}.section-heading h2{font-size:24px}.section-heading>span{font-size:12px;letter-spacing:0}.lead-comment p{font-size:21px;line-height:1.4}.lead-comment>span:last-child{display:none}.feed{height:180px}.feed-row{font-size:15px;line-height:1.45;gap:12px}.feed-row time{font-size:12px}.race-notes span{font-size:12px;letter-spacing:0}.race-notes p{font-size:15px;line-height:1.5}footer{font-size:12px;line-height:1.5;gap:20px}.toast{font-size:16px;line-height:1.4;padding:14px 17px;bottom:18px}
@media(max-width:600px){
 header{padding:0 16px}.header-note{display:none}main{padding:18px 14px 0}h1{font-size:36px;letter-spacing:-1.7px}.intro{margin-bottom:17px}.subtitle{font-size:16px;max-width:none;margin-top:9px}.race-top{height:35px;padding:0 13px}.live{font-size:12px;gap:6px}.live span{font-size:12px}.scene{height:220px}.sun{width:40px;height:40px;top:24px;right:15%}.athlete{width:150px}.snail{width:150px}.speech{font-size:14px;width:214px;bottom:118px;left:-14px;padding:9px 10px}.athlete-label{font-size:12px}.course-sign{font-size:12px;bottom:118px;right:4%;padding:7px}.start-marker span{font-size:12px;padding:5px}.start-marker div{height:92px}.cloud-a{top:30px}.hill-a{height:99px}.hill-b{height:110px}.controls-panel{padding:14px 12px}.buttons{grid-template-columns:1fr 1fr;gap:9px}.buttons button{font-size:16px;min-height:49px}.buttons .primary{grid-column:1/-1;font-size:17px;min-height:51px;padding:13px}.primary span{float:right;line-height:20px}.support-stats{font-size:13px;gap:18px;margin:11px 0 0}.extra-controls{margin:7px 0 0}.extra-controls>summary{font-size:16px}.time-machine{display:block;padding-top:10px}.time-machine p{margin-bottom:12px}.time-machine select{width:100%;max-width:none;font-size:16px}.telemetry{padding:15px 12px;grid-template-columns:1fr 1fr;gap:16px}.telemetry>div+div{padding-left:12px}.telemetry>div:last-child{display:none}.telemetry p{font-size:13px}.telemetry strong{font-size:clamp(21px,6vw,27px);white-space:normal;overflow-wrap:anywhere}.telemetry small{font-size:14px}.telemetry span{display:none}.progress-wrap{padding:0 12px 17px}.progress-label{font-size:12px}.lower-grid{margin-top:23px}.lead-comment{padding:15px 0 15px 24px}.lead-comment p{font-size:20px}.section-heading h2{font-size:23px}.section-heading>span{font-size:12px}.feed-row{font-size:15px}.feed-row time{font-size:12px}.race-notes{grid-template-columns:1fr;gap:16px;padding:20px 0;margin-top:22px}.race-notes span{font-size:13px}.race-notes p{font-size:16px;margin:6px 0 0}.race-notes>div:nth-child(2){display:none}footer{font-size:12px;flex-direction:column;gap:8px}footer span{max-width:none}
}

.scene>.speech{top:14px;bottom:auto;left:14px;width:calc(100% - 28px);max-width:340px;z-index:4;transform:rotate(-1deg)}
@media(max-width:600px){.scene>.speech{top:12px;left:12px;width:calc(100% - 24px);font-size:14px;max-width:310px}}

.live span{max-width:none}.feed-row p{overflow-wrap:anywhere}

@media(max-width:600px){.on-air{display:none}}
/* Race day: a grand start, honest course scale, and milestone coverage. */
.intro{margin-bottom:18px}.intro h1{font-size:42px}.intro .subtitle{font-size:16px;max-width:550px}.race-score{padding:17px 20px 14px;background:#fbfaf3}.course-km{display:flex;align-items:baseline;gap:7px;margin:0 0 9px;font:500 30px/1.2 'Space Grotesk',Arial,sans-serif;font-variant-numeric:tabular-nums;letter-spacing:-.6px}.course-km span{font-size:22px;color:#59654e}.score-line{display:flex;justify-content:space-between;gap:12px;font-size:14px;line-height:1.3}.score-line>span{color:#526b42}.score-line>strong{font-size:16px}.view-switch{display:flex;gap:8px;padding:0 20px 14px}.view-switch button{min-height:44px;padding:9px 14px;font-size:15px;border:1px solid #bec7af;flex:1}.view-switch button[aria-pressed=true]{background:#41573c;color:#fffdf3;border-color:#41573c}.scene{height:210px}.scene[hidden],.course-overview[hidden]{display:none}.camera-label{position:absolute;bottom:9px;left:15px;right:15px;text-align:center;font-size:12px;color:#495c3c}.athlete{bottom:34px}.scene>.speech{font-size:14px;line-height:1.3}.controls-panel{border:0;padding:16px 18px 11px}.buttons{grid-template-columns:1fr 1fr;gap:9px}.buttons .primary{grid-column:1/-1;font-size:18px;min-height:53px}.buttons button{min-height:48px;font-size:16px}.live-stats{display:grid;grid-template-columns:1fr 1fr;padding:13px 20px 15px;gap:18px;align-items:end}.live-stats>div+div{border-left:1px solid var(--border);padding-left:18px}.live-stats .stat-label,.stat-distance label{display:flex;align-items:center;justify-content:space-between;gap:6px;font-size:14px;line-height:1.4;color:#516046;min-height:44px;margin-bottom:7px}.stat-distance select{font-size:14px;min-height:44px;padding:8px 6px;max-width:105px;background:#f5f4e9}.live-stats strong{display:block;font:500 28px/1.2 'Space Grotesk',Arial,sans-serif;font-variant-numeric:tabular-nums;letter-spacing:-.8px;overflow-wrap:anywhere}.live-stats small{font:16px Arial,sans-serif;letter-spacing:0}.progress-wrap{padding:0 20px 14px}.pace-line{font-size:13px;color:#536147;margin:9px 0 0;text-align:center}.course-overview{padding:17px 24px;background:#e9eede;min-height:210px;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.overview-heading{font-size:18px;font-weight:700;line-height:1.3;margin:0}.course-chart{margin:35px 4px 13px}.course-line{height:7px;background:#c4cdb6;position:relative;border-radius:4px;margin:0 8px}.course-line>#map-progress{height:100%;background:var(--orange);border-radius:4px}.course-runner{position:absolute;left:0;bottom:1px;font-size:27px;line-height:1;transform:translateX(-50%);z-index:2}.halfway-tick{position:absolute;left:50%;top:-5px;height:18px;border-left:1px solid #66795b}.finish-tick{position:absolute;right:-5px;bottom:4px;font-size:27px;color:#283727}.course-axis{display:flex;justify-content:space-between;margin-top:14px;font-size:11px;line-height:1.5;color:#57664b;gap:10px}.course-axis span{flex:1}.course-axis span:nth-child(2){text-align:center}.course-axis span:last-child{text-align:right}.course-axis b{font-size:13px;color:var(--ink);white-space:nowrap;font-weight:500}.overview-note{font-size:14px;line-height:1.4;margin:12px 0 0}.check-back{margin:19px 0;padding:17px 18px;background:#e7ebd9;border-left:4px solid #718357;border-radius:0 7px 7px 0}.check-back strong{font-size:18px;line-height:1.3}.check-back p{font-size:15px;line-height:1.45;margin:8px 0 0}.race-options{margin-top:0;border-top:1px solid var(--border);padding:4px 0 13px;color:var(--ink)}.race-options>summary{font-size:16px;min-height:48px;align-content:center}.race-options .support-stats{margin:10px 0;font-size:14px}.race-options .time-machine{border:0}.race-commentary{border-top:1px solid var(--border);padding-top:22px;margin-top:7px}.race-commentary h2{font:500 26px/1.2 'Space Grotesk',Arial,sans-serif;letter-spacing:-.7px;margin:0 0 8px}.log-caption{font-size:14px;line-height:1.4;color:#596650;margin:0 0 17px}.race-log{list-style:none;padding:0;margin:0}.race-log-entry{display:grid;grid-template-columns:100px 1fr;gap:17px;padding:15px 0;border-top:1px solid var(--border)}.race-log-entry time{font:12px/1.5 ui-monospace,'Courier New',monospace;color:#697359;overflow-wrap:anywhere;padding-top:2px}.race-log-entry p{font-size:16px;line-height:1.5;margin:0;color:#41523a}.race-log-entry strong{font-weight:700;color:var(--ink)}.finish-estimate{font-size:14px;line-height:1.5;color:#5b674f;padding:16px 0;border-top:1px solid var(--border);margin:12px 0 0}footer{margin-top:0}footer span{max-width:none}
@media(min-width:800px){.race-card{max-width:800px;margin:auto}.check-back,.race-options,.race-commentary,.finish-estimate{max-width:800px;margin-left:auto;margin-right:auto}.scene{height:270px}.course-overview{min-height:270px;padding:28px 36px}.course-chart{margin-top:60px}.course-axis{font-size:13px}.course-axis b{font-size:15px}.overview-note{margin-top:24px}.course-km{font-size:36px}.course-km span{font-size:26px}.live-stats strong{font-size:34px}}
@media(max-width:600px){main{padding:16px 14px 0}.intro{margin-bottom:15px}.intro h1{font-size:35px}.intro .subtitle{font-size:15px;line-height:1.4;margin-top:8px}.race-score{padding:14px 14px 12px}.course-km{font-size:29px;gap:5px}.course-km span{font-size:21px}.score-line{font-size:13px;gap:9px}.score-line>strong{font-size:15px}.view-switch{padding:0 12px 12px;gap:8px}.view-switch button{font-size:14px;min-height:44px;padding:9px 10px}.scene,.course-overview{height:190px;min-height:190px}.scene>.speech{font-size:14px;max-width:310px}.athlete{bottom:32px}.snail{width:150px}.camera-label{font-size:12px;bottom:8px}.controls-panel{padding:13px 12px 8px}.buttons .primary{font-size:18px;min-height:51px}.buttons button{font-size:16px;min-height:46px}.live-stats{padding:8px 12px 14px;gap:12px}.live-stats>div+div{padding-left:12px}.live-stats strong{font-size:25px;letter-spacing:-.7px}.live-stats .stat-label,.stat-distance label{font-size:14px;margin-bottom:6px}.stat-distance select{font-size:14px;max-width:94px}.progress-wrap{padding:0 12px 13px}.pace-line{font-size:13px}.course-overview{padding:15px 15px 12px}.overview-heading{font-size:16px}.course-chart{margin:31px 4px 10px}.course-axis{font-size:10px;gap:5px}.course-axis b{font-size:12px}.overview-note{font-size:13px;margin-top:10px}.check-back{margin-top:16px;padding:15px}.check-back strong{font-size:18px}.check-back p{font-size:15px}.race-log-entry{grid-template-columns:82px 1fr;gap:12px}.race-log-entry time{font-size:12px}.race-log-entry p{font-size:16px}.race-options select{font-size:16px}.toast{font-size:16px;line-height:1.4}
}
@media(max-width:350px){.course-km{font-size:25px}.course-km span{font-size:19px}.score-line{font-size:12px}.score-line>strong{font-size:14px}.stat-distance label{align-items:flex-start;flex-direction:column;gap:2px}.live-stats{align-items:end}.live-stats .stat-label{min-height:65px;align-items:center}.live-stats strong{font-size:22px}.stat-distance select{max-width:100%;width:100%;min-height:44px}.course-axis b{font-size:11px}.course-axis{font-size:9px}.race-log-entry{grid-template-columns:74px 1fr;gap:10px}}
.race-options .support-stats>span:last-child{display:inline}
@media(max-width:600px){.course-overview{height:auto;min-height:210px}.course-axis{font-size:12px;gap:5px}.course-axis b{font-size:14px}.overview-note{font-size:14px}}

/* Millimetre-resolution score and trackside motion driven by real distance. */
.course-km{flex-wrap:wrap;column-gap:10px;row-gap:3px}.headline-distance{display:inline-flex!important;align-items:baseline;gap:5px;color:var(--ink)!important;font-size:inherit!important}.headline-distance strong{font-size:inherit;font-variant-numeric:tabular-nums}.headline-distance small{font:500 18px 'Space Grotesk',Arial,sans-serif;color:#59654e}.course-total{white-space:nowrap}.buttons .primary[hidden]{display:none}.buttons button:not(.primary){display:flex;align-items:center;justify-content:center;gap:8px}.action-icon{display:block;flex-shrink:0;width:22px;height:22px;stroke-width:1;stroke-linejoin:round}.heart-icon{fill:#e7a0a7;stroke:#b76572}.bolt-icon{fill:#f1c443;stroke:#9f7c23}.athlete{left:50%!important;transform:translateX(-50%);width:150px}.snail{width:150px}.course-markers{position:absolute;left:0;right:0;pointer-events:none;background-repeat:repeat-x;z-index:2}.near-markers{height:80px;bottom:39px;background-size:360px 80px;background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22360%22%20height%3D%2280%22%20viewBox%3D%220%200%20360%2080%22%3E%3Cg%20fill%3D%22none%22%20stroke%3D%22%238d9e73%22%20stroke-width%3D%222.3%22%20stroke-linecap%3D%22round%22%3E%3Cpath%20d%3D%22m35%2022-5-9m5%209v-13m0%2013%206-11m183%2030-5-9m5%209v-14m0%2014%206-11%22%2F%3E%3C%2Fg%3E%3Cellipse%20cx%3D%22129%22%20cy%3D%2256%22%20rx%3D%225%22%20ry%3D%222.5%22%20fill%3D%22%23acaf91%22%2F%3E%3Cellipse%20cx%3D%22310%22%20cy%3D%2231%22%20rx%3D%223%22%20ry%3D%222%22%20fill%3D%22%239fa785%22%2F%3E%3Cpath%20d%3D%22M75%2070h9m263-6h6%22%20stroke%3D%22%23b3b297%22%20stroke-width%3D%221.5%22%20stroke-linecap%3D%22round%22%2F%3E%3C%2Fsvg%3E")}.far-markers{height:40px;bottom:97px;background-size:480px 40px;background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22480%22%20height%3D%2240%22%20viewBox%3D%220%200%20480%2040%22%3E%3Cg%20stroke%3D%22%2397a982%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20fill%3D%22none%22%3E%3Cpath%20d%3D%22m75%2028-5-7m5%207v-11m0%2011%206-8m246%209-5-6m5%206v-12m0%2012%205-7%22%2F%3E%3C%2Fg%3E%3Cellipse%20cx%3D%22208%22%20cy%3D%2229%22%20rx%3D%224%22%20ry%3D%221.5%22%20fill%3D%22%23a1b28b%22%2F%3E%3C%2Fsvg%3E")}.track-line{height:2px;border:0;background-image:repeating-linear-gradient(to right,#b5b395 0 9px,transparent 9px 20px);background-repeat:repeat-x;background-size:20px 2px}.scene[hidden] .course-markers{display:none}
@media(max-width:600px){.headline-distance small{font-size:17px}.course-km{column-gap:8px}.action-icon{width:23px;height:23px}}
@media(prefers-reduced-motion:reduce){.course-markers,.track-line{background-position-x:0!important}}

/* One stable viewport for both race views. */
.view-stage{height:230px;position:relative;overflow:hidden;--snail-bottom:34px}.view-stage>.scene,.view-stage>.course-overview{height:100%;min-height:0;max-height:none;aspect-ratio:auto;overflow:hidden}.view-stage>[hidden]{display:none}.view-stage .athlete{bottom:var(--snail-bottom)}
.view-stage .scene>.speech{left:50%;right:auto;top:12px;bottom:auto;transform:translateX(-50%);width:max-content;min-width:180px;max-width:min(240px,calc(100% - 36px));padding:9px 12px;font-size:14px;line-height:1.35;white-space:normal;text-align:left;z-index:5}.view-stage .scene>.speech:after{left:calc(50% + 50px);bottom:-5px;width:8px;height:8px}
.slime-trail{position:absolute;right:calc(50% + 48px);bottom:calc(var(--snail-bottom) + 30px);width:min(var(--trail-length,0px),calc(50% - 48px));height:4px;border-radius:70% 3px 3px 70%;background:linear-gradient(to right,rgba(221,237,205,0),rgba(221,237,205,.14) 25%,rgba(235,245,219,.66));box-shadow:inset 0 1px rgba(255,255,245,.24);z-index:2;pointer-events:none}
#status{display:inline-flex;align-items:center;gap:8px;line-height:1.3}#status.is-live{color:#3e5137;font-weight:600}#status.is-live:before{content:'';display:block;flex-shrink:0;width:8px;height:8px;border-radius:50%;background:#cf493e;box-shadow:0 0 0 3px #cf493e22;animation:record-glow 2.4s ease-in-out infinite}@keyframes record-glow{0%,100%{opacity:1}50%{opacity:.5}}
@media(min-width:800px){.view-stage{height:270px}}
@media(max-width:600px){.view-stage{height:210px;--snail-bottom:32px}.view-stage .scene>.speech{max-width:min(232px,calc(100% - 36px));font-size:14px}}
@media(prefers-reduced-motion:reduce){#status.is-live:before{animation:none;opacity:1}}
.view-stage .scene>.speech{top:auto;bottom:calc(var(--snail-bottom) + 104px)}
#status.is-live:before{width:9px;height:9px;background:#d4483b;opacity:1;animation:record-halo 2.4s ease-in-out infinite}@keyframes record-halo{0%,100%{box-shadow:0 0 0 3px #d4483b25}50%{box-shadow:0 0 0 6px #d4483b08}}@media(prefers-reduced-motion:reduce){#status.is-live:before{animation:none}}

/* Whole metres lead; their fractional part is deliberately quieter. */
.headline-distance #metres-whole{font-size:1em;color:inherit}.headline-distance .metres-fraction{font-size:.62em;letter-spacing:-.2px;color:#5b6851;font-weight:500}.slime-trail{bottom:calc(var(--snail-bottom) + 27px)}
.view-stage>.course-overview{display:flex;flex-direction:column;justify-content:space-between;gap:12px;padding:18px 24px}.view-stage>.course-overview[hidden]{display:none}.course-overview .course-chart{margin:12px 4px 0;flex-shrink:0}.days-running{display:flex;align-items:baseline;justify-content:center;gap:8px;margin:0;font-size:15px;line-height:1.2;color:#536449}.days-running strong{font:500 28px/1.2 'Space Grotesk',Arial,sans-serif;font-variant-numeric:tabular-nums;color:var(--ink)}
.stat-time label{display:flex;align-items:center;justify-content:space-between;gap:6px;font-size:14px;line-height:1.4;color:#516046;min-height:44px;margin-bottom:7px}.stat-time select{font-size:14px;min-height:44px;padding:8px 6px;max-width:105px;background:#f5f4e9}.live-stats .time-value.clock{white-space:nowrap;font-size:27px;letter-spacing:-.8px}
@media(max-width:600px){.view-stage>.course-overview{padding:15px 16px;gap:12px}.days-running{font-size:14px}.days-running strong{font-size:24px}.stat-time label{font-size:14px;margin-bottom:6px}.stat-time select{font-size:14px;max-width:94px}.live-stats .time-value.clock{font-size:clamp(18px,5.9vw,25px)}}
@media(max-width:350px){.stat-time label{align-items:flex-start;flex-direction:column;gap:2px}.stat-time select{width:100%;max-width:100%;min-height:44px}}

.stat-time label{white-space:nowrap}.stat-time select{width:76px;max-width:76px}@media(max-width:350px){.stat-time select{width:100%;max-width:100%}}

/* Kilometres on both sides; millimetres remain visible at six decimal places. */
.course-km{flex-wrap:nowrap;column-gap:8px}.headline-distance #km-whole{font-size:1em;color:inherit}.headline-distance .km-fraction{font-size:inherit;color:#59654e;letter-spacing:-.3px;font-weight:500;white-space:nowrap}.headline-distance .km-fraction span{color:inherit;font-size:var(--digit-size);letter-spacing:inherit}.km-place-1{--digit-size:.86em}.km-place-2{--digit-size:.78em}.km-place-3{--digit-size:.70em}.km-place-4{--digit-size:.62em}.km-place-5{--digit-size:.56em}.km-place-6{--digit-size:.50em}.course-km .course-total{font-size:.72em}

/* Place slime on the track, one pixel beneath its dashed centre line. */
.track .slime-trail{top:40px;bottom:auto}

.pre-race-name{display:flex;align-items:center;gap:12px;margin-bottom:12px}.pre-race-name[hidden]{display:none}.pre-race-name label{font-size:16px;white-space:nowrap}.pre-race-name input{flex:1;min-width:0;max-width:none;width:100%;font-size:16px}.new-race{max-width:800px;margin:0 auto 16px}.new-race .text-button{font-size:14px;min-height:44px}.new-race p{font-size:15px;line-height:1.5}.new-race #reset-confirm button{min-height:44px;font-size:15px;margin:0 6px 8px 0}.check-back{margin-top:24px}
@media(max-width:350px){.pre-race-name{flex-direction:column;align-items:stretch;gap:6px}}
