.shot-brief .sport-title h1{font-size:clamp(48px,6vw,70px)}
.javelin-brief .sport-title h1{font-size:clamp(40px,5.5vw,66px)}
@media(max-width:720px){.shot-results{grid-template-columns:minmax(0,1fr)}.shot-results>section,.shot-results>div{min-width:0}.shot-results .winner-athlete canvas{width:128px;height:128px;min-width:0;flex:0 1 128px}.shot-results .shot-attempts{grid-template-columns:repeat(2,minmax(0,1fr))}.shot-results .shot-attempts>div{min-width:0;padding:10px 6px}.shot-results .result-table{table-layout:fixed}.shot-results .result-table th:first-child{width:31px}.shot-results .result-table th:last-child{width:82px}.shot-results .result-table td,.shot-results .result-table th{padding:8px 5px}.shot-results .trainer-cell{overflow-wrap:anywhere;font-size:15px}.shot-results .trainer-cell>div{min-width:0}.shot-results .trainer-cell img{flex:0 0 29px;width:29px}.shot-results .result-score{font-size:21px}}
.shot-play .play-deck #touch-controls{max-width:440px;flex:1}.shot-play .play-deck #touch-controls .engine-control{width:100%;max-width:none;min-height:78px;background:#8bddc9;font-size:27px}.shot-play .play-deck #touch-controls .engine-control.is-held{background:#fff3d8}.shot-play .play-deck #touch-controls .engine-control.shot-ready{background:#f5cf77;border-color:#203951}.shot-play .play-deck{min-height:105px}.shot-play .play-toolbar .btn:focus-visible{color:#203951;background:#fff3d8}
.shot-attempts{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:18px 0}.shot-attempts>div{display:grid;gap:5px;background:#35576d;padding:12px;border:2px solid #87acb4}.shot-attempts .best{border-color:#f5cf77}.shot-attempts span{font-size:12px}.shot-attempts b{font:33px FestivalTitle,sans-serif;color:#fff3d8}.shot-attempts small{font-size:12px;color:#bddbdc}.shot-best-label{color:#bddbdc;font-size:13px}
@media(max-width:720px){.shot-play .play-deck{padding:8px 12px;gap:7px}.shot-play .play-deck .live-message{min-height:45px;padding:5px}.shot-play .play-deck #touch-controls{width:100%;max-width:none;min-height:78px}.shot-play .play-deck #touch-controls .engine-control{min-height:78px;font-size:25px}.shot-play .play-deck #event-status{font-size:10px}.shot-play .play-viewport canvas{aspect-ratio:auto}.shot-attempts b{font-size:29px}.shot-attempts small{font-size:11px}}
@media(max-height:550px) and (orientation:landscape){.shot-play .play-deck{min-height:58px;padding:3px 16px}.shot-play .play-deck #touch-controls .engine-control{min-height:48px;font-size:19px}.shot-play .play-deck #touch-controls{min-height:48px}}


.hammer-play #touch-controls .engine-control.hammer-wrong{border-color:#ee826a}


.ski-jump-play .play-deck #touch-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.ski-jump-play #touch-controls .engine-control{min-width:0}.ski-jump-play #touch-controls [data-action=action],.ski-jump-play #touch-controls [data-action=down]{grid-column:1/-1}.ski-jump-play #touch-controls .engine-control[hidden]{display:none!important}
@media(max-width:720px){.ski-brief .sport-how{grid-template-columns:1fr}.ski-brief .brief-buttons{display:grid;grid-template-columns:1fr 1fr}.ski-brief .brief-buttons .btn:first-child{grid-column:1/-1}.ski-jump-play .play-deck #touch-controls .engine-control{min-height:60px}}

@media(min-width:721px){.ski-jump-play .play-deck #touch-controls{grid-template-columns:repeat(3,minmax(0,1fr));max-width:520px}.ski-jump-play #touch-controls [data-action=down]{grid-column:auto}}
@media(max-height:550px) and (orientation:landscape){.ski-jump-play .play-deck #touch-controls{grid-template-columns:repeat(3,minmax(0,1fr));max-width:430px}.ski-jump-play #touch-controls [data-action=down]{grid-column:auto}.ski-jump-play .play-deck #touch-controls .engine-control{min-height:48px;font-size:18px}}

.curling-pair{display:grid;grid-template-columns:1fr;gap:8px}.curling-pair .brief-athlete{min-width:0;gap:9px;padding-bottom:6px}.curling-pair .brief-athlete img{width:55px;height:55px}.curling-pair .brief-athlete b{font-size:26px;overflow-wrap:anywhere}.curling-pair .brief-athlete span{font-size:11px}.curling-rule{font-size:13px;line-height:1.4;color:#c7dfe4;margin:12px 0 17px}.curling-rule b{color:#f5cf77}.curling-brief .sport-how li{font-size:14px}.curling-brief .brief-buttons .btn{min-height:44px}
.curling-play .play-deck #touch-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-width:470px;margin:0;min-height:60px}.curling-play .play-deck #touch-controls .engine-control{min-width:0;min-height:60px;padding:7px;font-size:24px}.curling-play #touch-controls [data-action=left]{grid-column:1;grid-row:1}.curling-play #touch-controls [data-action=right]{grid-column:2;grid-row:1}.curling-play #touch-controls [data-action=action]{grid-column:1/-1;grid-row:2;background:#8bddc9}.curling-play #touch-controls[data-phase=slide] [data-action=action],.curling-play #touch-controls[data-phase=charge] [data-action=action]{grid-row:1}.curling-play #touch-controls .engine-control[hidden]{display:none!important}.curling-play .play-viewport canvas{aspect-ratio:auto}.curling-play .play-deck{min-height:140px;padding-top:8px}.curling-play #timing-cue{display:none}.curling-play .play-toolbar .btn:focus-visible{color:#203951;background:#fff3d8}.curling-play #touch-controls .engine-control.is-held{background:#fff3d8}.curling-play #touch-controls .engine-control:disabled{opacity:.6}
.curling-result-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:8px auto;max-width:340px}.curling-result-pair>div{min-width:0}.curling-portrait{display:flex;align-items:flex-end;justify-content:center;height:108px}.curling-portrait img,.curling-portrait canvas{width:135px;height:108px;max-width:100%;image-rendering:pixelated;object-fit:contain}.curling-result-pair span{display:block;font-size:11px;color:#a9d8e1}.curling-result-pair b{display:block;font:26px FestivalTitle,sans-serif;color:#fff3d8;overflow-wrap:anywhere}.curling-place{display:inline-block;margin:5px 0;padding:3px 14px;background:#355970;color:#f5cf77;font:28px FestivalTitle,sans-serif}.curling-results .shot-best-label{margin-top:5px}.curling-house{margin:16px auto 8px;max-width:370px;border:2px solid #87acb4;background:#35576d}.curling-house svg{display:block;width:100%;height:auto}.curling-house figcaption{font-size:12px;padding:9px 5px;color:#fff3d8}.curling-house figcaption span,.curling-house figcaption small{display:block;color:#c7dfe4;margin-top:4px}.curling-house figcaption small{font-size:11px}.curling-results .curling-stones{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:10px}.curling-stones>div{min-width:0;padding:9px 4px}.curling-stones b{font-size:30px}.curling-stones small{font-size:11px;overflow-wrap:anywhere}
@media(max-width:720px){.curling-brief .sport-how{grid-template-columns:1fr}.curling-pair{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.curling-pair .brief-athlete{grid-column:auto;gap:4px}.curling-pair .brief-athlete img{width:45px;height:45px}.curling-pair .brief-athlete b{font-size:22px}.curling-pair .brief-athlete span{font-size:9px}.curling-brief .sport-how li{font-size:13px}.curling-brief .brief-buttons{display:grid;grid-template-columns:1fr 1fr}.curling-brief .brief-buttons .btn:first-child{grid-column:1/-1}.curling-rule{margin:0 0 6px;font-size:12px}.curling-play .play-deck{padding:7px 12px;gap:6px;min-height:0}.curling-play .play-deck .live-message{padding:5px;min-height:45px}.curling-play .play-deck #touch-controls{width:100%;max-width:none;min-height:60px}.curling-play .play-deck #touch-controls .engine-control{min-height:60px;font-size:22px}.curling-play .play-deck #event-status{font-size:10px}.curling-play .play-toolbar .btn,.curling-play .play-toolbar .mode-select button{min-height:44px}.curling-result-pair{gap:8px;margin:5px auto}.curling-portrait{height:95px}.curling-portrait img,.curling-portrait canvas{height:95px;width:120px}.curling-result-pair b{font-size:24px}.curling-house{margin-top:12px}.curling-results .curling-stones>div{padding:9px 3px}.curling-results .curling-stones b{font-size:27px}.curling-results .curling-stones small{font-size:10px}.curling-results .curling-stones span{font-size:11px}}
@media(min-width:721px),(max-height:550px) and (orientation:landscape){.curling-play .play-deck #touch-controls{grid-template-columns:1fr 1.4fr 1fr;max-width:500px}.curling-play #touch-controls [data-action=left]{grid-column:1;grid-row:1}.curling-play #touch-controls [data-action=right]{grid-column:3;grid-row:1}.curling-play #touch-controls [data-action=action]{grid-column:2;grid-row:1}.curling-play #touch-controls[data-phase=slide] [data-action=action],.curling-play #touch-controls[data-phase=charge] [data-action=action]{grid-column:1/-1}.curling-play .play-deck{min-height:84px;padding:8px 12px}}
@media(max-height:550px) and (orientation:landscape){.curling-play .play-deck{min-height:58px;padding:4px 12px}.curling-play .play-deck #touch-controls{min-height:48px}.curling-play .play-deck #touch-controls .engine-control{min-height:48px;font-size:18px}}

.biathlon-rule{font-size:13px;line-height:1.4;color:#c7dfe4;margin:12px 0 17px}.biathlon-brief .brief-buttons .btn{min-height:44px}.biathlon-play .play-deck #touch-controls{display:flex;max-width:420px;flex:1;margin:8px 0;min-height:72px}.biathlon-play .play-deck #touch-controls .engine-control{width:100%;max-width:none;min-height:72px;padding:10px;font-size:27px;background:#8bddc9}.biathlon-play #touch-controls .engine-control[hidden]{display:none!important}.biathlon-play #touch-controls .engine-control.is-held{background:#fff3d8}.biathlon-play #touch-controls .engine-control.shot-ready{background:#f5cf77}.biathlon-play #touch-controls .engine-control:disabled{opacity:.65}.biathlon-play .play-viewport canvas{aspect-ratio:auto}.biathlon-play #timing-cue{display:none}.biathlon-play .play-toolbar .btn:focus-visible{color:#203951;background:#fff3d8}.biathlon-play .play-deck{min-height:92px}
.biathlon-results .biathlon-splits{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:14px 0}.biathlon-splits>div{min-width:0;padding:9px 4px}.biathlon-splits b{font-size:29px}.biathlon-splits small{font-size:11px}.biathlon-results .run-stats{gap:20px}.biathlon-ranges{display:grid;gap:12px;margin:17px 0}.biathlon-range{border:2px solid #87acb4;background:#35576d;padding:10px}.biathlon-range h2{display:flex;justify-content:space-between;gap:6px;margin:0 0 8px;font:23px FestivalTitle,sans-serif;color:#fff3d8}.biathlon-range h2 small{font:12px Festival,sans-serif;color:#c7dfe4;align-self:center}.biathlon-targets{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.biathlon-target{margin:0;min-width:0}.biathlon-target svg{display:block;width:100%;max-width:95px;height:auto;margin:auto;background:#c9f3ed;border:2px solid #203951}.biathlon-target figcaption{display:grid;gap:3px;margin-top:5px;font-size:11px;color:#c7dfe4}.biathlon-target figcaption b{color:#fff3d8;font:20px FestivalTitle,sans-serif}.biathlon-target figcaption small{font-size:10px}.biathlon-target.hit figcaption b{color:#a0e8d7}.biathlon-target.miss figcaption b,.biathlon-target.no-shot figcaption b{color:#f4be9b}.biathlon-timing-note{font-size:12px;line-height:1.4;color:#c7dfe4}.biathlon-results .shot-best-label{margin-top:4px}
@media(max-width:720px){.biathlon-brief .sport-how{grid-template-columns:1fr}.biathlon-brief .brief-buttons{display:grid;grid-template-columns:1fr 1fr}.biathlon-brief .brief-buttons .btn:first-child{grid-column:1/-1}.biathlon-rule{margin:0 0 6px;font-size:12px}.biathlon-play .play-deck{padding:8px 12px;gap:6px;min-height:0}.biathlon-play .play-deck .live-message{padding:5px;min-height:45px}.biathlon-play .play-deck #touch-controls{width:100%;max-width:none;margin:0}.biathlon-play .play-deck #touch-controls .engine-control{min-height:72px;font-size:25px}.biathlon-play .play-deck #event-status{font-size:10px}.biathlon-play .play-toolbar .btn,.biathlon-play .play-toolbar .mode-select button{min-height:44px}.biathlon-results .biathlon-splits>div{padding:9px 3px}.biathlon-results .biathlon-splits b{font-size:26px}.biathlon-results .biathlon-splits span,.biathlon-results .biathlon-splits small{font-size:10px}.biathlon-range{padding:8px}.biathlon-targets{gap:6px}.biathlon-target figcaption b{font-size:18px}.biathlon-target figcaption{font-size:10px}.biathlon-results .run-stats{gap:15px}.biathlon-range h2{font-size:22px}}
@media(max-height:550px) and (orientation:landscape){.biathlon-play .play-deck{min-height:58px;padding:4px 14px}.biathlon-play .play-deck #touch-controls{min-height:48px;max-width:300px;margin:0}.biathlon-play .play-deck #touch-controls .engine-control{min-height:48px;font-size:20px}}
.biathlon-play .play-toolbar .btn:hover,.biathlon-play .play-toolbar .btn:active{color:#203951;background:#fff3d8}

.aerials-brief .sport-title h1{font-size:clamp(40px,5.5vw,66px)}.aerials-rule{font-size:13px;line-height:1.4;color:#c7dfe4;margin:12px 0 17px}.aerials-brief .brief-buttons .btn{min-height:44px}.aerials-play .play-deck #touch-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-width:470px;flex:1;margin:0;min-height:60px}.aerials-play .play-deck #touch-controls .engine-control{min-width:0;min-height:60px;padding:8px 5px;font-size:23px}.aerials-play #touch-controls [data-action=left]{grid-column:1;grid-row:1}.aerials-play #touch-controls [data-action=right]{grid-column:2;grid-row:1}.aerials-play #touch-controls [data-action=down]{grid-column:1/-1;grid-row:2;background:#8bddc9}.aerials-play #touch-controls .engine-control[hidden]{display:none!important}.aerials-play #touch-controls .engine-control.is-held{background:#fff3d8}.aerials-play #touch-controls .engine-control.shot-ready{background:#f5cf77;border-color:#fff3d8}.aerials-play #touch-controls .engine-control:disabled{opacity:.6}.aerials-play .play-viewport canvas{aspect-ratio:auto}.aerials-play #timing-cue{display:none}.aerials-play .play-deck{min-height:145px;padding-top:8px}.aerials-play .play-toolbar .btn:hover,.aerials-play .play-toolbar .btn:active,.aerials-play .play-toolbar .btn:focus-visible{color:#203951;background:#fff3d8}
.aerials-results .aerials-jumps{gap:10px;align-items:stretch}.aerials-jumps>div{min-width:0;padding:12px 8px}.aerials-jumps .aerials-score-parts{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin:6px 0}.aerials-score-parts span{font-size:10px;color:#c7dfe4}.aerials-score-parts strong{display:block;font:24px FestivalTitle,sans-serif;color:#f5cf77}.aerials-jumps .aerials-outcome{font:22px FestivalTitle,sans-serif;color:#fff3d8}.aerials-jumps .aerials-reason{line-height:1.35;overflow-wrap:anywhere}.aerials-results .shot-best-label{margin-top:4px}.aerials-results .aerials-score-note{font-size:12px;line-height:1.4;color:#c7dfe4}
@media(max-width:720px){.aerials-brief .sport-how{grid-template-columns:1fr}.aerials-brief .brief-buttons{display:grid;grid-template-columns:1fr 1fr}.aerials-brief .brief-buttons .btn:first-child{grid-column:1/-1}.aerials-rule{margin:0 0 6px;font-size:12px}.aerials-play .play-deck{padding:7px 12px;gap:6px;min-height:0}.aerials-play .play-deck .live-message{padding:5px;min-height:45px}.aerials-play .play-deck #touch-controls{width:100%;max-width:none;min-height:60px}.aerials-play .play-deck #touch-controls .engine-control{min-height:60px;font-size:21px}.aerials-play .play-deck #event-status{font-size:10px}.aerials-play .play-toolbar .btn,.aerials-play .play-toolbar .mode-select button{min-height:44px}.aerials-results .aerials-jumps{gap:7px}.aerials-results .aerials-jumps>div{padding:10px 5px}.aerials-results .aerials-jumps b{font-size:29px}.aerials-score-parts strong{font-size:23px}.aerials-jumps .aerials-outcome{font-size:20px}.aerials-jumps .aerials-reason{font-size:10px}}
@media(min-width:721px),(max-height:550px) and (orientation:landscape){.aerials-play .play-deck #touch-controls{grid-template-columns:repeat(3,minmax(0,1fr));max-width:520px}.aerials-play #touch-controls [data-action=left]{grid-column:1;grid-row:1}.aerials-play #touch-controls [data-action=down]{grid-column:2;grid-row:1}.aerials-play #touch-controls [data-action=right]{grid-column:3;grid-row:1}.aerials-play .play-deck{min-height:84px;padding:8px 12px}}
@media(max-height:550px) and (orientation:landscape){.aerials-play .play-deck{min-height:58px;padding:4px 12px}.aerials-play .play-deck #touch-controls{min-height:48px}.aerials-play .play-deck #touch-controls .engine-control{min-height:48px;font-size:18px}}

.halfpipe-brief .sport-title h1{font-size:clamp(38px,5.2vw,62px)}.halfpipe-rule{font-size:13px;line-height:1.4;color:#c7dfe4;margin:12px 0 17px}.halfpipe-brief .brief-buttons .btn{min-height:44px}.halfpipe-play .play-deck #touch-controls{display:grid;grid-template-columns:1fr 1.2fr 1fr;gap:8px;max-width:520px;flex:1;margin:0;min-height:60px}.halfpipe-play .play-deck #touch-controls .engine-control{min-width:0;min-height:60px;padding:8px 4px;font-size:23px}.halfpipe-play #touch-controls [data-action=left]{grid-column:1;grid-row:1}.halfpipe-play #touch-controls [data-action=up]{grid-column:2;grid-row:1;background:#8bddc9}.halfpipe-play #touch-controls [data-action=right]{grid-column:3;grid-row:1}.halfpipe-play #touch-controls .engine-control[hidden]{display:none!important}.halfpipe-play #touch-controls .engine-control.is-held{background:#fff3d8}.halfpipe-play #touch-controls .engine-control.shot-ready,.halfpipe-play #touch-controls .engine-control.next-stroke{background:#f5cf77;border-color:#fff3d8}.halfpipe-play #touch-controls .engine-control:disabled{opacity:.6}.halfpipe-play .play-viewport canvas{aspect-ratio:auto}.halfpipe-play #timing-cue{display:none}.halfpipe-play .play-deck{min-height:84px;padding:8px 12px}.halfpipe-play .play-toolbar .btn:hover,.halfpipe-play .play-toolbar .btn:active,.halfpipe-play .play-toolbar .btn:focus-visible{color:#203951;background:#fff3d8}
.halfpipe-results .halfpipe-walls{gap:10px;align-items:stretch}.halfpipe-walls>div{min-width:0;padding:12px 8px}.halfpipe-walls .halfpipe-score-parts{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin:5px 0}.halfpipe-score-parts span{font-size:11px;color:#c7dfe4}.halfpipe-score-parts strong{display:block;font:25px FestivalTitle,sans-serif;color:#f5cf77}.halfpipe-walls .halfpipe-outcome{font:23px FestivalTitle,sans-serif;color:#fff3d8;overflow-wrap:anywhere}.halfpipe-walls .halfpipe-launch{font-size:11px;line-height:1.35;color:#c7dfe4}.halfpipe-walls .halfpipe-reason{font-size:12px;line-height:1.4;overflow-wrap:anywhere}.halfpipe-results .shot-best-label{margin-top:4px}.halfpipe-results .halfpipe-score-note{font-size:12px;line-height:1.4;color:#c7dfe4}
@media(max-width:720px){.halfpipe-brief .sport-how{grid-template-columns:1fr}.halfpipe-brief .brief-buttons{display:grid;grid-template-columns:1fr 1fr}.halfpipe-brief .brief-buttons .btn:first-child{grid-column:1/-1}.halfpipe-rule{margin:0 0 6px;font-size:12px}.halfpipe-play .play-deck{padding:7px 12px;gap:6px;min-height:0}.halfpipe-play .play-deck .live-message{padding:5px;min-height:45px}.halfpipe-play .play-deck #touch-controls{width:100%;max-width:none;gap:6px;min-height:60px}.halfpipe-play .play-deck #touch-controls .engine-control{min-height:60px;font-size:20px}.halfpipe-play .play-deck #event-status{font-size:10px}.halfpipe-play .play-toolbar .btn,.halfpipe-play .play-toolbar .mode-select button{min-height:44px}.halfpipe-results .halfpipe-walls{gap:7px}.halfpipe-results .halfpipe-walls>div{padding:10px 5px}.halfpipe-results .halfpipe-walls b{font-size:29px}.halfpipe-walls .halfpipe-outcome{font-size:21px}.halfpipe-walls .halfpipe-launch{font-size:10px}.halfpipe-walls .halfpipe-reason{font-size:11px}}
@media(max-height:550px) and (orientation:landscape){.halfpipe-play .play-deck{min-height:58px;padding:4px 12px}.halfpipe-play .play-deck #touch-controls{min-height:48px;max-width:430px}.halfpipe-play .play-deck #touch-controls .engine-control{min-height:48px;font-size:18px}}

.halfpipe-play #touch-controls .engine-control.halfpipe-late{background:#ee826a;color:#203951;border-color:#fff3d8}

.speed-skating-brief .sport-title h1{font-size:clamp(40px,5.5vw,66px)}.speed-skating-rule{font-size:13px;line-height:1.4;color:#c7dfe4;margin:12px 0 17px}.speed-skating-brief .brief-buttons .btn{min-height:44px}.speed-skating-play .play-deck #touch-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;max-width:500px;flex:1;margin:0;min-height:72px}.speed-skating-play .play-deck #touch-controls .engine-control{min-width:0;min-height:72px;padding:9px 5px;font-size:23px;background:#35576d;color:#fff3d8;border-color:#80b5c4}.speed-skating-play #touch-controls [data-action=left]{grid-column:1}.speed-skating-play #touch-controls [data-action=right]{grid-column:2}.speed-skating-play #touch-controls .engine-control[hidden]{display:none!important}.speed-skating-play #touch-controls .engine-control.is-held{background:#fff3d8;color:#203951}.speed-skating-play #touch-controls .engine-control.next-stroke{border-color:#f5cf77}.speed-skating-play #touch-controls .engine-control.shot-ready{background:#f5cf77;color:#203951;border-color:#fff3d8}.speed-skating-play #touch-controls .engine-control:disabled{opacity:.65}.speed-skating-play .play-viewport canvas{aspect-ratio:auto}.speed-skating-play #timing-cue{display:none}.speed-skating-play .play-deck{min-height:92px;padding:8px 12px}.speed-skating-play .play-toolbar .btn:hover,.speed-skating-play .play-toolbar .btn:active,.speed-skating-play .play-toolbar .btn:focus-visible{color:#203951;background:#fff3d8}
.speed-skating-results .speed-skating-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px;margin:18px 0;text-align:left}.speed-skating-stats>div{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid #547c8e;min-width:0}.speed-skating-stats dt{font-size:13px;color:#c7dfe4;overflow-wrap:anywhere}.speed-skating-stats dd{margin:0;font:32px FestivalTitle,sans-serif;color:#fff3d8}.speed-skating-streak{margin:12px 0;color:#c7dfe4;font-size:13px}.speed-skating-streak strong{font:37px FestivalTitle,sans-serif;color:#f5cf77;vertical-align:middle;margin-right:6px}.speed-skating-results .speed-skating-note{font-size:12px;line-height:1.4;color:#c7dfe4}.speed-skating-results .shot-best-label{margin-top:4px}
@media(max-width:720px){.speed-skating-brief .sport-how{grid-template-columns:1fr}.speed-skating-brief .brief-buttons{display:grid;grid-template-columns:1fr 1fr}.speed-skating-brief .brief-buttons .btn:first-child{grid-column:1/-1}.speed-skating-rule{margin:0 0 6px;font-size:12px}.speed-skating-play .play-deck{padding:7px 12px;gap:6px;min-height:0}.speed-skating-play .play-deck .live-message{padding:5px;min-height:45px}.speed-skating-play .play-deck #touch-controls{width:100%;max-width:none;gap:8px;min-height:72px}.speed-skating-play .play-deck #touch-controls .engine-control{min-height:72px;font-size:21px}.speed-skating-play .play-deck #event-status{font-size:10px}.speed-skating-play .play-toolbar .btn,.speed-skating-play .play-toolbar .mode-select button{min-height:44px}.speed-skating-results .speed-skating-stats{gap:0 12px;margin:12px 0}.speed-skating-stats dt{font-size:12px}.speed-skating-stats dd{font-size:30px}.speed-skating-streak{font-size:12px}.speed-skating-streak strong{font-size:33px}}
@media(max-height:550px) and (orientation:landscape){.speed-skating-play .play-deck{min-height:58px;padding:4px 12px}.speed-skating-play .play-deck #touch-controls{min-height:48px;max-width:400px}.speed-skating-play .play-deck #touch-controls .engine-control{min-height:48px;font-size:18px}}

.skating-relay-brief .sport-title h1{font-size:clamp(39px,5.5vw,66px)}.skating-relay-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;max-width:360px;margin:8px auto 14px;text-align:center}.skating-relay-pair>div{min-width:0}.skating-relay-portrait{display:flex;align-items:flex-end;justify-content:center;height:98px}.skating-relay-portrait img,.skating-relay-portrait canvas{width:125px;height:98px;max-width:100%;object-fit:contain;image-rendering:pixelated}.skating-relay-pair span{display:block;color:#bddbdc;font-size:10px;line-height:1.4}.skating-relay-pair b{display:block;font:26px FestivalTitle,sans-serif;color:#fff3d8;overflow-wrap:anywhere}.skating-relay-brief .skating-relay-pair{width:100%;margin:0 0 12px}.skating-relay-brief .skating-relay-portrait{height:70px}.skating-relay-brief .skating-relay-portrait img,.skating-relay-brief .skating-relay-portrait canvas{width:88px;height:70px}.skating-relay-rule,.skating-relay-note{font-size:12px;line-height:1.4;color:#c7dfe4}.skating-relay-brief .brief-buttons .btn{min-height:44px}.skating-relay-place{font:27px FestivalTitle,sans-serif;color:#f5cf77;margin:7px 0}.skating-relay-results .shot-best-label{margin-top:5px}.skating-relay-legs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:17px 0}.skating-relay-legs>div{display:grid;gap:4px;padding:10px 7px;min-width:0;background:#35576d;border:2px solid #87acb4}.skating-relay-legs span,.skating-relay-legs small{font-size:11px;color:#bddbdc}.skating-relay-legs strong{font:25px FestivalTitle,sans-serif;color:#fff3d8;overflow-wrap:anywhere}.skating-relay-legs b{font:35px FestivalTitle,sans-serif;color:#f5cf77}.skating-relay-exchanges{list-style:none;padding:0;margin:13px 0;text-align:left}.skating-relay-exchanges li{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px solid #547c8e}.skating-relay-exchanges li>span{font-size:12px;color:#c7dfe4}.skating-relay-exchanges li>div{text-align:right;min-width:0}.skating-relay-exchanges b{display:block;font:23px FestivalTitle,sans-serif;color:#f4be9b}.skating-relay-exchanges small{display:block;font-size:11px;color:#c7dfe4;line-height:1.4}.skating-relay-exchanges .clean b{color:#a0e8d7}.skating-relay-exchanges .pending b{color:#bddbdc}.skating-relay-passport{font-size:13px;color:inherit}
.skating-relay-play .play-deck #touch-controls{display:grid;grid-template-columns:1fr 1.15fr 1fr;gap:8px;max-width:540px;flex:1;margin:0;min-height:64px}.skating-relay-play .play-deck #touch-controls .engine-control{min-width:0;min-height:64px;padding:8px 4px;font-size:22px;background:#35576d;color:#fff3d8;border-color:#80b5c4}.skating-relay-play #touch-controls [data-action=left]{grid-column:1;grid-row:1}.skating-relay-play #touch-controls [data-action=action]{grid-column:2;grid-row:1}.skating-relay-play #touch-controls [data-action=right]{grid-column:3;grid-row:1}.skating-relay-play #touch-controls .engine-control[hidden]{display:none!important}.skating-relay-play #touch-controls .engine-control.is-held{background:#fff3d8;color:#203951}.skating-relay-play #touch-controls .engine-control.next-stroke{border-color:#f5cf77}.skating-relay-play #touch-controls .engine-control.shot-ready{background:#f5cf77;color:#203951;border-color:#fff3d8}.skating-relay-play #touch-controls .engine-control:disabled{opacity:.55}.skating-relay-play .play-viewport canvas{aspect-ratio:auto}.skating-relay-play #timing-cue{display:none}.skating-relay-play .play-deck{min-height:84px;padding:8px 12px}.skating-relay-play .play-toolbar .btn:hover,.skating-relay-play .play-toolbar .btn:active,.skating-relay-play .play-toolbar .btn:focus-visible{color:#203951;background:#fff3d8}
@media(max-width:720px){.skating-relay-brief .sport-how{grid-template-columns:1fr}.skating-relay-brief .brief-buttons{display:grid;grid-template-columns:1fr 1fr}.skating-relay-brief .brief-buttons .btn:first-child{grid-column:1/-1}.skating-relay-brief .skating-relay-pair{margin-bottom:3px}.skating-relay-brief .sport-how li{font-size:13px}.skating-relay-rule{margin:0 0 6px}.skating-relay-play .play-deck{padding:7px 12px;gap:6px;min-height:0}.skating-relay-play .play-deck .live-message{padding:5px;min-height:45px}.skating-relay-play .play-deck #touch-controls{width:100%;max-width:none;gap:6px;min-height:64px}.skating-relay-play .play-deck #touch-controls .engine-control{min-height:64px;font-size:19px}.skating-relay-play .play-deck #event-status{font-size:10px}.skating-relay-play .play-toolbar .btn,.skating-relay-play .play-toolbar .mode-select button{min-height:44px}.skating-relay-pair{gap:8px}.skating-relay-portrait{height:86px}.skating-relay-portrait img,.skating-relay-portrait canvas{height:86px;width:108px}.skating-relay-pair b{font-size:24px}.skating-relay-legs{gap:7px;margin:13px 0}.skating-relay-legs>div{padding:9px 4px}.skating-relay-legs strong{font-size:23px}.skating-relay-legs b{font-size:31px}.skating-relay-exchanges li{gap:7px}.skating-relay-exchanges li>span{font-size:11px}.skating-relay-exchanges b{font-size:21px}.skating-relay-exchanges small{font-size:10px}}
@media(max-height:550px) and (orientation:landscape){.skating-relay-play .play-deck{min-height:58px;padding:4px 12px}.skating-relay-play .play-deck #touch-controls{min-height:48px;max-width:440px}.skating-relay-play .play-deck #touch-controls .engine-control{min-height:48px;font-size:18px}}

.rowing-brief .sport-title h1{font-size:clamp(41px,5.5vw,66px)}.rowing-crew{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;max-width:360px;margin:8px auto 14px;text-align:center}.rowing-crew>div{min-width:0}.rowing-portrait{display:flex;align-items:flex-end;justify-content:center;height:98px}.rowing-portrait img,.rowing-portrait canvas{width:125px;height:98px;max-width:100%;object-fit:contain;image-rendering:pixelated}.rowing-crew span{display:block;color:#a0e8d7;font-size:11px;line-height:1.4}.rowing-crew b{display:block;font:26px FestivalTitle,sans-serif;color:#fff3d8;overflow-wrap:anywhere}.rowing-brief .rowing-crew{width:100%;margin:0 0 12px}.rowing-brief .rowing-portrait{height:70px}.rowing-brief .rowing-portrait img,.rowing-brief .rowing-portrait canvas{width:88px;height:70px}.rowing-rule,.rowing-note{font-size:12px;line-height:1.4;color:#c7dfe4}.rowing-brief .brief-buttons .btn{min-height:44px}.rowing-place{font:27px FestivalTitle,sans-serif;color:#f5cf77;margin:7px 0}.rowing-results .shot-best-label{margin-top:5px}.rowing-splits{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:17px 0}.rowing-splits>div{display:grid;gap:4px;padding:10px 5px;min-width:0;border-bottom:3px solid #80b5c4;background:#35576d}.rowing-splits span,.rowing-splits small{font-size:10px;color:#bddbdc}.rowing-splits b{font:30px FestivalTitle,sans-serif;color:#fff3d8;white-space:nowrap}.rowing-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px;margin:14px 0;text-align:left}.rowing-stats>div{display:flex;justify-content:space-between;align-items:center;gap:9px;padding:9px 0;border-bottom:1px solid #547c8e;min-width:0}.rowing-stats dt{font-size:13px;color:#c7dfe4;overflow-wrap:anywhere}.rowing-stats dd{margin:0;font:32px FestivalTitle,sans-serif;color:#fff3d8}.rowing-streak{margin:11px 0;color:#c7dfe4;font-size:13px}.rowing-streak strong{font:37px FestivalTitle,sans-serif;color:#f5cf77;vertical-align:middle;margin-right:6px}.rowing-passport{font-size:13px;color:inherit}
.rowing-play .play-deck #touch-controls{display:flex;max-width:470px;flex:1;margin:0;min-height:64px}.rowing-play .play-deck #touch-controls .engine-control{width:100%;max-width:none;min-height:64px;padding:9px 7px;font-size:26px;background:#8bddc9;color:#203951;border-color:#fff3d8}.rowing-play #touch-controls .engine-control[hidden]{display:none!important}.rowing-play #touch-controls .engine-control.is-held{background:#fff3d8;color:#203951}.rowing-play #touch-controls .engine-control.shot-ready{background:#f5cf77;color:#203951}.rowing-play #touch-controls .engine-control.rowing-late{background:#ee826a;color:#203951}.rowing-play #touch-controls .engine-control:disabled{opacity:.6}.rowing-play .play-viewport canvas{aspect-ratio:auto}.rowing-play #timing-cue{display:none}.rowing-play .play-deck{min-height:84px;padding:8px 12px}.rowing-play .play-toolbar .btn:hover,.rowing-play .play-toolbar .btn:active,.rowing-play .play-toolbar .btn:focus-visible{color:#203951;background:#fff3d8}
@media(max-width:720px){.rowing-brief .sport-how{grid-template-columns:1fr}.rowing-brief .brief-buttons{display:grid;grid-template-columns:1fr 1fr}.rowing-brief .brief-buttons .btn:first-child{grid-column:1/-1}.rowing-brief .rowing-crew{margin-bottom:3px}.rowing-brief .sport-how li{font-size:13px}.rowing-rule{margin:0 0 6px}.rowing-play .play-deck{padding:7px 12px;gap:6px;min-height:0}.rowing-play .play-deck .live-message{padding:5px;min-height:45px}.rowing-play .play-deck #touch-controls{width:100%;max-width:none;min-height:64px}.rowing-play .play-deck #touch-controls .engine-control{min-height:64px;font-size:24px}.rowing-play .play-deck #event-status{font-size:10px}.rowing-play .play-toolbar .btn,.rowing-play .play-toolbar .mode-select button{min-height:44px}.rowing-crew{gap:8px}.rowing-portrait{height:86px}.rowing-portrait img,.rowing-portrait canvas{height:86px;width:108px}.rowing-crew b{font-size:24px}.rowing-splits{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin:13px 0}.rowing-splits>div{padding:8px 4px}.rowing-splits b{font-size:29px}.rowing-stats{gap:0 12px;margin:12px 0}.rowing-stats dt{font-size:12px}.rowing-stats dd{font-size:30px}.rowing-streak{font-size:12px}.rowing-streak strong{font-size:33px}}
@media(max-height:550px) and (orientation:landscape){.rowing-play .play-deck{min-height:58px;padding:4px 12px}.rowing-play .play-deck #touch-controls{min-height:48px;max-width:400px}.rowing-play .play-deck #touch-controls .engine-control{min-height:48px;font-size:20px}}

.track-relay-brief .sport-title h1{font-size:clamp(41px,5.5vw,66px)}.track-relay-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;max-width:360px;margin:8px auto 14px;text-align:center}.track-relay-pair>div{min-width:0}.track-relay-portrait{display:flex;align-items:flex-end;justify-content:center;height:98px}.track-relay-portrait img,.track-relay-portrait canvas{width:125px;height:98px;max-width:100%;object-fit:contain;image-rendering:pixelated}.track-relay-pair span{display:block;color:#bddbdc;font-size:10px;line-height:1.4}.track-relay-pair b{display:block;font:26px FestivalTitle,sans-serif;color:#fff3d8;overflow-wrap:anywhere}.track-relay-brief .track-relay-pair{width:100%;margin:0 0 12px}.track-relay-brief .track-relay-portrait{height:70px}.track-relay-brief .track-relay-portrait img,.track-relay-brief .track-relay-portrait canvas{width:88px;height:70px}.track-relay-rule,.track-relay-note{font-size:12px;line-height:1.4;color:#c7dfe4}.track-relay-brief .brief-buttons .btn{min-height:44px}.track-relay-place{font:27px FestivalTitle,sans-serif;color:#f5cf77;margin:7px 0}.track-relay-results .shot-best-label{margin-top:5px}.track-relay-splits{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:17px 0}.track-relay-splits>div{display:grid;gap:4px;padding:10px 5px;min-width:0;border-bottom:3px solid #80b5c4;background:#35576d}.track-relay-splits span,.track-relay-splits small{font-size:11px;color:#bddbdc}.track-relay-splits b{font:30px FestivalTitle,sans-serif;color:#fff3d8;white-space:nowrap}.track-relay-exchanges{list-style:none;padding:0;margin:13px 0;text-align:left}.track-relay-exchanges li{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px solid #547c8e}.track-relay-exchanges li>span{font-size:12px;color:#c7dfe4}.track-relay-exchanges li>div{text-align:right;min-width:0}.track-relay-exchanges b{display:block;font:23px FestivalTitle,sans-serif;color:#ee826a}.track-relay-exchanges small{display:block;font-size:11px;color:#c7dfe4;line-height:1.4}.track-relay-exchanges .clean b{color:#a0e8d7}.track-relay-exchanges .pending b{color:#bddbdc}.track-relay-passport{font-size:13px;color:inherit}
.track-relay-play .play-deck #touch-controls{display:grid;grid-template-columns:1fr 1fr;gap:10px;max-width:520px;flex:1;margin:0;min-height:64px}.track-relay-play .play-deck #touch-controls .engine-control{min-width:0;min-height:64px;padding:8px 5px;font-size:25px;background:#35576d;color:#fff3d8;border-color:#80b5c4}.track-relay-play #touch-controls [data-action=action]{grid-column:1;grid-row:1;background:#8bddc9;color:#203951}.track-relay-play #touch-controls [data-action=up]{grid-column:2;grid-row:1}.track-relay-play #touch-controls .engine-control[hidden]{display:none!important}.track-relay-play #touch-controls .engine-control.is-held{background:#fff3d8;color:#203951}.track-relay-play #touch-controls .engine-control.shot-ready{background:#f5cf77;color:#203951;border-color:#fff3d8}.track-relay-play #touch-controls .engine-control:disabled{opacity:.55}.track-relay-play .play-viewport canvas{aspect-ratio:auto}.track-relay-play #timing-cue{display:none}.track-relay-play .play-deck{min-height:84px;padding:8px 12px}.track-relay-play .play-toolbar .btn:hover,.track-relay-play .play-toolbar .btn:active,.track-relay-play .play-toolbar .btn:focus-visible{color:#203951;background:#fff3d8}
@media(max-width:720px){.track-relay-brief .sport-how{grid-template-columns:1fr}.track-relay-brief .brief-buttons{display:grid;grid-template-columns:1fr 1fr}.track-relay-brief .brief-buttons .btn:first-child{grid-column:1/-1}.track-relay-brief .track-relay-pair{margin-bottom:3px}.track-relay-brief .sport-how li{font-size:13px}.track-relay-rule{margin:0 0 6px}.track-relay-play .play-deck{padding:7px 12px;gap:6px;min-height:0}.track-relay-play .play-deck .live-message{padding:5px;min-height:45px}.track-relay-play .play-deck #touch-controls{width:100%;max-width:none;gap:8px;min-height:64px}.track-relay-play .play-deck #touch-controls .engine-control{min-height:64px;font-size:22px}.track-relay-play .play-deck #event-status{font-size:10px}.track-relay-play .play-toolbar .btn,.track-relay-play .play-toolbar .mode-select button{min-height:44px}.track-relay-pair{gap:8px}.track-relay-portrait{height:86px}.track-relay-portrait img,.track-relay-portrait canvas{height:86px;width:108px}.track-relay-pair b{font-size:24px}.track-relay-splits{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin:13px 0}.track-relay-splits>div{padding:8px 4px}.track-relay-splits b{font-size:29px}.track-relay-exchanges li{gap:7px}.track-relay-exchanges li>span{font-size:11px}.track-relay-exchanges b{font-size:21px}.track-relay-exchanges small{font-size:10px}}
@media(max-height:550px) and (orientation:landscape){.track-relay-play .play-deck{min-height:58px;padding:4px 12px}.track-relay-play .play-deck #touch-controls{min-height:48px;max-width:440px}.track-relay-play .play-deck #touch-controls .engine-control{min-height:48px;font-size:19px}}

.swimming-relay-brief .sport-title h1{font-size:clamp(41px,5.5vw,66px)}.swimming-relay-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;max-width:360px;margin:8px auto 14px;text-align:center}.swimming-relay-pair>div{min-width:0}.swimming-relay-portrait{display:flex;align-items:flex-end;justify-content:center;height:98px}.swimming-relay-portrait img,.swimming-relay-portrait canvas{width:125px;height:98px;max-width:100%;object-fit:contain;image-rendering:pixelated}.swimming-relay-pair span{display:block;color:#bddbdc;font-size:10px;line-height:1.4}.swimming-relay-pair b{display:block;font:26px FestivalTitle,sans-serif;color:#fff3d8;overflow-wrap:anywhere}.swimming-relay-brief .swimming-relay-pair{width:100%;margin:0 0 12px}.swimming-relay-brief .swimming-relay-portrait{height:70px}.swimming-relay-brief .swimming-relay-portrait img,.swimming-relay-brief .swimming-relay-portrait canvas{width:88px;height:70px}.swimming-relay-rule,.swimming-relay-note{font-size:12px;line-height:1.4;color:#c7dfe4}.swimming-relay-brief .brief-buttons .btn{min-height:44px}.swimming-relay-place{font:27px FestivalTitle,sans-serif;color:#f5cf77;margin:7px 0}.swimming-relay-results .shot-best-label{margin-top:5px}.swimming-relay-lengths{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:17px 0}.swimming-relay-lengths>div{display:grid;gap:4px;padding:10px 5px;min-width:0;border-bottom:3px solid #80b5c4;background:#35576d}.swimming-relay-lengths span,.swimming-relay-lengths small{font-size:11px;color:#bddbdc}.swimming-relay-lengths b{font:30px FestivalTitle,sans-serif;color:#fff3d8;white-space:nowrap}.swimming-relay-exchanges{list-style:none;padding:0;margin:13px 0;text-align:left}.swimming-relay-exchanges li{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px solid #547c8e}.swimming-relay-exchanges li>span{font-size:12px;color:#c7dfe4}.swimming-relay-exchanges li>div{text-align:right;min-width:0}.swimming-relay-exchanges b{display:block;font:23px FestivalTitle,sans-serif;color:#ee826a}.swimming-relay-exchanges small{display:block;font-size:11px;color:#c7dfe4;line-height:1.4}.swimming-relay-exchanges .clean b{color:#a0e8d7}.swimming-relay-exchanges .pending b{color:#bddbdc}.swimming-relay-passport{font-size:13px;color:inherit}
.swimming-relay-play .play-deck #touch-controls{display:grid;grid-template-columns:1fr 1.15fr 1fr;gap:10px;max-width:560px;flex:1;margin:0;min-height:64px}.swimming-relay-play .play-deck #touch-controls .engine-control{min-width:0;min-height:64px;padding:8px 5px;font-size:25px;background:#35576d;color:#fff3d8;border-color:#80b5c4}.swimming-relay-play #touch-controls [data-action=left]{grid-column:1;grid-row:1}.swimming-relay-play #touch-controls [data-action=action]{grid-column:2;grid-row:1}.swimming-relay-play #touch-controls [data-action=right]{grid-column:3;grid-row:1}.swimming-relay-play #touch-controls .engine-control[hidden]{display:none!important}.swimming-relay-play #touch-controls .engine-control.is-held{background:#fff3d8;color:#203951}.swimming-relay-play #touch-controls .engine-control.shot-ready{background:#f5cf77;color:#203951;border-color:#fff3d8}.swimming-relay-play #touch-controls .engine-control:disabled{opacity:.55}.swimming-relay-play .play-viewport canvas{aspect-ratio:auto}.swimming-relay-play #timing-cue{display:none}.swimming-relay-play .play-deck{min-height:84px;padding:8px 12px}.swimming-relay-play .play-toolbar .btn:hover,.swimming-relay-play .play-toolbar .btn:active,.swimming-relay-play .play-toolbar .btn:focus-visible{color:#203951;background:#fff3d8}
@media(max-width:720px){.swimming-relay-brief .sport-how{grid-template-columns:1fr}.swimming-relay-brief .brief-buttons{display:grid;grid-template-columns:1fr 1fr}.swimming-relay-brief .brief-buttons .btn:first-child{grid-column:1/-1}.swimming-relay-brief .swimming-relay-pair{margin-bottom:3px}.swimming-relay-brief .sport-how li{font-size:13px}.swimming-relay-rule{margin:0 0 6px}.swimming-relay-play .play-deck{padding:7px 12px;gap:6px;min-height:0}.swimming-relay-play .play-deck .live-message{padding:5px;min-height:45px}.swimming-relay-play .play-deck #touch-controls{width:100%;max-width:none;gap:8px;min-height:64px}.swimming-relay-play .play-deck #touch-controls .engine-control{min-height:64px;font-size:20px}.swimming-relay-play .play-deck #event-status{font-size:10px}.swimming-relay-play .play-toolbar .btn,.swimming-relay-play .play-toolbar .mode-select button{min-height:44px}.swimming-relay-pair{gap:8px}.swimming-relay-portrait{height:86px}.swimming-relay-portrait img,.swimming-relay-portrait canvas{height:86px;width:108px}.swimming-relay-pair b{font-size:24px}.swimming-relay-lengths{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin:13px 0}.swimming-relay-lengths>div{padding:8px 4px}.swimming-relay-lengths b{font-size:29px}.swimming-relay-exchanges li{gap:7px}.swimming-relay-exchanges li>span{font-size:11px}.swimming-relay-exchanges b{font-size:21px}.swimming-relay-exchanges small{font-size:10px}}
@media(max-height:550px) and (orientation:landscape){.swimming-relay-play .play-deck{min-height:58px;padding:4px 12px}.swimming-relay-play .play-deck #touch-controls{min-height:48px;max-width:440px}.swimming-relay-play .play-deck #touch-controls .engine-control{min-height:48px;font-size:19px}}

.swimming-relay-lengths strong{font-size:12px;color:#fff3d8;overflow-wrap:anywhere;line-height:1.3}.swimming-relay-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px;margin:14px 0;text-align:left}.swimming-relay-stats>div{display:flex;justify-content:space-between;align-items:center;gap:9px;padding:9px 0;border-bottom:1px solid #547c8e;min-width:0}.swimming-relay-stats dt{font-size:12px;color:#c7dfe4;overflow-wrap:anywhere}.swimming-relay-stats dd{margin:0;font:28px FestivalTitle,sans-serif;color:#fff3d8;white-space:nowrap}.swimming-relay-streak{margin:11px 0;color:#c7dfe4;font-size:13px}.swimming-relay-streak strong{font:37px FestivalTitle,sans-serif;color:#f5cf77;vertical-align:middle;margin-right:6px}.swimming-relay-play #touch-controls .engine-control.next-stroke{border-color:#fff3d8;background:#8bddc9;color:#203951}.swimming-relay-play #touch-controls .engine-control.on-beat{border-color:#fff3d8;background:#f5cf77;color:#203951}
@media(max-width:360px){.swimming-relay-stats{gap:0 10px}.swimming-relay-stats>div{flex-wrap:wrap;gap:3px}.swimming-relay-stats dd{font-size:27px}.swimming-relay-exchanges li>div{max-width:70%}.swimming-relay-play .play-deck #touch-controls{gap:5px}.swimming-relay-play .play-deck #touch-controls .engine-control{font-size:18px;padding:8px 3px}}

.swimming-relay-play .play-deck #touch-controls .engine-control{white-space:normal;line-height:1.1}.swimming-relay-play #touch-controls .engine-control.next-stroke{outline:none}

.sprint-brief .sport-title h1{font-size:clamp(45px,6vw,72px)}.sprint-athlete{display:flex;align-items:center;justify-content:center;gap:12px;margin:0 0 12px;min-width:0}.sprint-portrait{display:flex;align-items:flex-end;justify-content:center;width:88px;height:70px;flex:none}.sprint-portrait img,.sprint-portrait canvas{width:88px;height:70px;max-width:100%;object-fit:contain;image-rendering:pixelated}.sprint-athlete>span{font-size:10px;color:#bddbdc;min-width:0}.sprint-athlete b{display:block;font:28px FestivalTitle,sans-serif;color:#fff3d8;overflow-wrap:anywhere}.sprint-brief .brief-buttons .btn{min-height:44px}.sprint-sections{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:18px 0}.sprint-sections>div{display:grid;gap:5px;padding:12px 6px;min-width:0;border-bottom:3px solid #f5cf77;background:#35576d}.sprint-sections span,.sprint-sections small{font-size:11px;color:#bddbdc}.sprint-sections b{font:36px FestivalTitle,sans-serif;color:#fff3d8}.sprint-taps{margin:12px 0;color:#c7dfe4;font-size:13px;overflow-wrap:anywhere}.sprint-taps strong{font:35px FestivalTitle,sans-serif;color:#f5cf77;vertical-align:middle;margin-right:5px}.sprint-note{font-size:12px;line-height:1.4;color:#c7dfe4}.sprint-passport{font-size:13px;color:inherit}
.sprint-play .play-deck #touch-controls{display:flex;max-width:470px;flex:1;margin:0;min-height:64px}.sprint-play .play-deck #touch-controls .engine-control{width:100%;max-width:none;min-height:64px;padding:9px 7px;font-size:28px;background:#f5cf77;color:#203951;border-color:#fff3d8}.sprint-play #touch-controls .engine-control[hidden]{display:none!important}.sprint-play #touch-controls .engine-control.is-held{background:#fff3d8;color:#203951}.sprint-play #touch-controls .engine-control:disabled{opacity:.6}.sprint-play .play-viewport canvas{aspect-ratio:auto}.sprint-play #timing-cue{display:none}.sprint-play .play-deck{min-height:84px;padding:8px 12px}.sprint-play .play-toolbar .btn:hover,.sprint-play .play-toolbar .btn:active,.sprint-play .play-toolbar .btn:focus-visible{color:#203951;background:#fff3d8}
@media(max-width:720px){.sprint-brief .sport-how{grid-template-columns:1fr}.sprint-brief .brief-buttons{display:grid;grid-template-columns:1fr 1fr}.sprint-brief .brief-buttons .btn:first-child{grid-column:1/-1}.sprint-brief .sport-how li{font-size:13px}.sprint-athlete{margin-bottom:3px}.sprint-play .play-deck{padding:7px 12px;gap:6px;min-height:0}.sprint-play .play-deck .live-message{padding:5px;min-height:45px}.sprint-play .play-deck #touch-controls{width:100%;max-width:none;min-height:64px}.sprint-play .play-deck #touch-controls .engine-control{min-height:64px;font-size:26px}.sprint-play .play-deck #event-status{font-size:10px}.sprint-play .play-toolbar .btn,.sprint-play .play-toolbar .mode-select button{min-height:44px}.sprint-sections{gap:8px;margin:13px 0}.sprint-sections>div{padding:10px 4px}.sprint-sections b{font-size:32px}}
@media(max-height:550px) and (orientation:landscape){.sprint-play .play-deck{min-height:58px;padding:4px 12px}.sprint-play .play-deck #touch-controls{min-height:48px;max-width:400px}.sprint-play .play-deck #touch-controls .engine-control{min-height:48px;font-size:22px}}

.weightlifting-brief .sport-title h1{font-size:clamp(40px,5.6vw,66px)}.weightlifting-athlete{display:flex;align-items:center;justify-content:center;gap:12px;margin:0 0 12px;min-width:0}.weightlifting-portrait{display:flex;align-items:flex-end;justify-content:center;width:88px;height:70px;flex:none}.weightlifting-portrait img,.weightlifting-portrait canvas{width:88px;height:70px;max-width:100%;object-fit:contain;image-rendering:pixelated}.weightlifting-athlete>span{font-size:10px;color:#bddbdc;min-width:0}.weightlifting-athlete b{display:block;font:28px FestivalTitle,sans-serif;color:#fff3d8;overflow-wrap:anywhere}.weightlifting-brief .brief-buttons .btn{min-height:44px}.weightlifting-attempts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:18px 0}.weightlifting-attempts>article{display:grid;align-content:start;gap:7px;padding:12px 6px;min-width:0;border-bottom:3px solid #ee826a;background:#35576d}.weightlifting-attempts>article.lifted{border-color:#8bddc9}.weightlifting-attempts>article.pending{border-color:#87acb4}.weightlifting-attempts span{font-size:11px;color:#bddbdc}.weightlifting-attempts strong{font:32px FestivalTitle,sans-serif;color:#fff3d8}.weightlifting-attempts b{font:23px FestivalTitle,sans-serif;color:#eea48d;line-height:1.1;overflow-wrap:anywhere}.weightlifting-attempts .lifted b{color:#a0e8d7}.weightlifting-attempts .pending b{color:#bddbdc}.weightlifting-attempts small{font-size:11px;line-height:1.4;color:#c7dfe4;overflow-wrap:anywhere}.weightlifting-note{font-size:12px;line-height:1.4;color:#c7dfe4}.weightlifting-passport{font-size:13px;color:inherit}.weightlifting-results .shot-best-label{margin-top:4px}
.weightlifting-play .play-viewport{width:min(100%,calc((100dvh - 322px)*16/9))}.weightlifting-play .play-viewport canvas{aspect-ratio:auto}.weightlifting-play .play-deck{min-height:212px;padding:7px 12px;align-items:center;gap:14px}.weightlifting-play .play-deck .live-message{padding:0;min-height:0}.weightlifting-play .play-deck #timing-cue{height:180px;min-height:180px;max-height:180px;display:grid;grid-template-rows:28px 136px 16px;align-content:center;justify-content:stretch;width:100%;max-width:520px;margin:0 auto;gap:0;overflow:hidden}.weightlifting-play #timing-cue[hidden]{display:grid!important;visibility:hidden}.weightlifting-play #timing-cue .timing-label{grid-row:1;grid-column:1;margin:0;align-self:center;font-size:16px;line-height:1.15;color:#fff3d8}.weightlifting-play #timing-cue .timing-bar{grid-row:2;grid-column:1;align-self:center;width:calc(100% - 14px);margin:0 7px}.weightlifting-play #timing-cue .timing-bar[hidden]{display:none!important}.weightlifting-play #timing-cue .timing-legend{grid-row:3;grid-column:1;margin:0;font-size:10px;line-height:1.2;color:#c7dfe4}.weightlifting-play #timing-cue:not([data-kind=bar]) .timing-legend{display:none}.weightlifting-play #timing-cue .lift-balance{grid-row:2;grid-column:1;height:136px;margin:0;gap:19px;align-items:center}.weightlifting-play #timing-cue .balance-track{height:136px;width:82px}.weightlifting-play #timing-cue .balance-weight{width:58px;left:8px}.weightlifting-play #timing-cue .balance-help{gap:7px;max-width:170px}.weightlifting-play #timing-cue .balance-help strong,.weightlifting-play #timing-cue .balance-help>span{font-size:16px;color:#fff3d8}.weightlifting-play #timing-cue .balance-help small{font-size:10px;color:#c7dfe4;max-width:145px}.weightlifting-play #timing-cue .balance-locks{gap:7px;margin-top:0}.weightlifting-play #timing-cue .balance-locks i{width:24px;height:14px}.weightlifting-play #timing-cue[data-kind=status] .timing-label{grid-row:1/-1;font:25px/1.2 FestivalTitle,sans-serif}.weightlifting-play .play-deck #event-status{font-size:11px;margin:4px 0 0;min-height:15px}.weightlifting-play .play-deck #touch-controls{display:flex;flex:1;max-width:400px;width:100%;margin:0;min-height:64px}.weightlifting-play .play-deck #touch-controls .engine-control{width:100%;max-width:none;min-height:64px;padding:9px 7px;font-size:26px;background:#8bddc9;color:#203951;border-color:#fff3d8;white-space:normal;line-height:1.1}.weightlifting-play #touch-controls .engine-control[hidden]{display:none!important}.weightlifting-play #touch-controls .engine-control.is-held{background:#fff3d8;color:#203951;transform:none}.weightlifting-play #touch-controls .engine-control.shot-ready{background:#f5cf77;color:#203951}.weightlifting-play #touch-controls .engine-control:disabled{opacity:.6}.weightlifting-play .play-toolbar .btn:hover,.weightlifting-play .play-toolbar .btn:active,.weightlifting-play .play-toolbar .btn:focus-visible{color:#203951;background:#fff3d8}
@media(max-width:720px){.weightlifting-brief .sport-how{grid-template-columns:1fr}.weightlifting-brief .brief-buttons{display:grid;grid-template-columns:1fr 1fr}.weightlifting-brief .brief-buttons .btn:first-child{grid-column:1/-1}.weightlifting-brief .sport-how li{font-size:13px}.weightlifting-athlete{margin-bottom:3px}.weightlifting-play .play-viewport{width:min(100%,calc((100dvh - 382px)*640/660))}.weightlifting-play .play-deck{padding:4px 12px;gap:6px;min-height:0}.weightlifting-play .play-deck .live-message{padding:0;text-align:center;min-height:0}.weightlifting-play .play-deck #touch-controls{width:100%;max-width:none;min-height:64px}.weightlifting-play .play-deck #touch-controls .engine-control{min-height:64px;font-size:24px}.weightlifting-play .play-deck #event-status{font-size:10px}.weightlifting-play .play-toolbar .btn,.weightlifting-play .play-toolbar .mode-select button{min-height:44px}.weightlifting-attempts{gap:7px;margin:13px 0}.weightlifting-attempts>article{padding:10px 5px}.weightlifting-attempts strong{font-size:29px}.weightlifting-attempts b{font-size:21px}}
@media(max-width:360px){.weightlifting-attempts{grid-template-columns:1fr}.weightlifting-attempts>article{grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);text-align:left;gap:4px 10px;padding:10px}.weightlifting-attempts strong{grid-column:1;grid-row:2;font-size:30px}.weightlifting-attempts b{grid-column:2;grid-row:1/3;align-self:center}.weightlifting-attempts small{grid-column:1/-1}.weightlifting-play #timing-cue .balance-help strong,.weightlifting-play #timing-cue .balance-help>span{font-size:14px}}
@media(max-height:550px) and (orientation:landscape){.weightlifting-play{display:grid;grid-template-columns:minmax(0,1fr) 250px;column-gap:12px;align-items:center}.weightlifting-play .play-toolbar{grid-column:1/-1}.weightlifting-play .play-viewport{width:100%;max-height:calc(100dvh - 112px);overflow:hidden}.weightlifting-play .play-viewport canvas{max-height:calc(100dvh - 118px);width:100%;object-fit:contain}.weightlifting-play .play-deck{flex-direction:column;width:100%;min-height:0;padding:0;gap:5px;align-self:center}.weightlifting-play .play-deck .live-message{width:100%}.weightlifting-play .play-deck #touch-controls{min-height:48px;max-width:none}.weightlifting-play .play-deck #touch-controls .engine-control{min-height:48px;font-size:18px}.weightlifting-play .play-toolbar .btn,.weightlifting-play .play-toolbar .mode-select button{min-height:36px}.weightlifting-play .play-deck #timing-cue{height:170px;min-height:170px;max-height:170px;grid-template-rows:26px 130px 14px}.weightlifting-play #timing-cue .lift-balance,.weightlifting-play #timing-cue .balance-track{height:130px}.weightlifting-play #timing-cue .balance-help{gap:5px;max-width:132px}.weightlifting-play #timing-cue .balance-help strong,.weightlifting-play #timing-cue .balance-help>span{font-size:14px}.weightlifting-play #timing-cue .timing-label{font-size:14px}.weightlifting-play #timing-cue .timing-legend{font-size:9px}.weightlifting-play #timing-cue .lift-balance{gap:12px}.weightlifting-play .play-deck #event-status{font-size:9px;margin-top:2px}}

/* Short portrait screens keep the action fixed while sharing a smaller catch/balance slot. */
@media(max-width:720px) and (max-height:640px) and (orientation:portrait){.weightlifting-play .play-viewport{width:min(100%,calc((100dvh - 363px)*640/660))}.weightlifting-play .play-deck #timing-cue{height:144px;min-height:144px;max-height:144px;grid-template-rows:22px 108px 14px}.weightlifting-play #timing-cue .lift-balance,.weightlifting-play #timing-cue .balance-track{height:108px}.weightlifting-play #timing-cue .timing-label{font-size:14px}.weightlifting-play #timing-cue .timing-legend{font-size:9px}.weightlifting-play #timing-cue .balance-help{gap:5px}.weightlifting-play #timing-cue .balance-help strong,.weightlifting-play #timing-cue .balance-help>span{font-size:14px}.weightlifting-play #timing-cue .balance-help small{font-size:9px}}

.archery-brief .sport-title h1{font-size:clamp(45px,6vw,72px)}.archery-athlete{display:flex;align-items:center;justify-content:center;gap:12px;margin:0 0 12px;min-width:0}.archery-portrait{display:flex;align-items:flex-end;justify-content:center;width:88px;height:70px;flex:none}.archery-portrait img,.archery-portrait canvas{width:88px;height:70px;max-width:100%;object-fit:contain;image-rendering:pixelated}.archery-athlete>span{font-size:10px;color:#bddbdc;min-width:0}.archery-athlete b{display:block;font:28px FestivalTitle,sans-serif;color:#fff3d8;overflow-wrap:anywhere}.archery-brief .brief-buttons .btn{min-height:44px}.archery-target-result{margin:15px auto 12px;width:min(100%,280px)}.archery-target-result svg{display:block;width:100%;height:auto;background:#35576d;border:2px solid #87acb4}.archery-target-result figcaption{font-size:11px;line-height:1.4;color:#c7dfe4;margin-top:7px}.archery-target-result .arrow-label{font:700 12px Festival,sans-serif;fill:#fff3d8;paint-order:stroke;stroke:#203951;stroke-width:3px;stroke-linejoin:round}.archery-target-result .arrow-impact{fill:#fff3d8;stroke:#203951;stroke-width:1.5}.archery-arrows{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:14px 0}.archery-arrows>article{display:grid;gap:5px;align-content:start;padding:10px 4px;min-width:0;background:#35576d;border-bottom:3px solid #8bddc9}.archery-arrows>article.miss{border-color:#ee826a}.archery-arrows>article.pending{border-color:#87acb4}.archery-arrows span{font-size:10px;color:#bddbdc}.archery-arrows strong{font:34px FestivalTitle,sans-serif;color:#fff3d8}.archery-arrows b{font:20px FestivalTitle,sans-serif;color:#a0e8d7;line-height:1.1}.archery-arrows .miss b{color:#eea48d}.archery-arrows .pending b{color:#bddbdc}.archery-arrows small{font-size:10px;color:#c7dfe4;line-height:1.3}.archery-note{font-size:12px;line-height:1.4;color:#c7dfe4}.archery-passport{font-size:13px;color:inherit}
.archery-play .play-toolbar{flex-wrap:wrap}.archery-play .play-toolbar .archery-exit{background:#35576d;color:#fff3d8}.archery-play .play-deck #touch-controls{display:flex;max-width:420px;flex:1;margin:0;min-height:64px}.archery-play .play-deck #touch-controls .engine-control{width:100%;max-width:none;min-height:64px;padding:9px 7px;font-size:26px;background:#f5cf77;color:#203951;border-color:#fff3d8;white-space:normal;line-height:1.1}.archery-play #touch-controls .engine-control[hidden]{display:none!important}.archery-play #touch-controls .engine-control.is-held{background:#fff3d8;color:#203951;transform:none}.archery-play #touch-controls .engine-control:disabled{opacity:.6}.archery-play .play-viewport canvas{aspect-ratio:auto;touch-action:none}.archery-play #timing-cue{display:none}.archery-play .play-deck{min-height:84px;padding:8px 12px}.archery-play .play-toolbar .btn:hover,.archery-play .play-toolbar .btn:active,.archery-play .play-toolbar .btn:focus-visible{color:#203951;background:#fff3d8}
@media(max-width:720px){.archery-brief .sport-how{grid-template-columns:1fr}.archery-brief .brief-buttons{display:grid;grid-template-columns:1fr 1fr}.archery-brief .brief-buttons .btn:first-child{grid-column:1/-1}.archery-brief .sport-how li{font-size:13px}.archery-athlete{margin-bottom:3px}.archery-play .play-toolbar{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}.archery-play .play-toolbar>span{grid-column:1/3;grid-row:1;margin:0;background:none}.archery-play .play-toolbar .archery-exit{grid-column:3/5;grid-row:1}.archery-play .play-toolbar .mode-select{grid-column:1/3;grid-row:2;display:flex}.archery-play .play-toolbar .mode-select button{flex:1;padding:5px}.archery-play .play-toolbar #pause-button{grid-column:3;grid-row:2}.archery-play .play-toolbar .sound-button{grid-column:4;grid-row:2}.archery-play .play-toolbar .btn,.archery-play .play-toolbar .mode-select button{min-height:44px;min-width:0;padding:5px 3px;font-size:10px}.archery-play .play-viewport{width:min(100%,calc((100dvh - 292px)*640/660))}.archery-play .play-deck{padding:5px 12px;gap:5px;min-height:0}.archery-play .play-deck .live-message{padding:5px;min-height:43px}.archery-play .play-deck #touch-controls{width:100%;max-width:none;min-height:64px}.archery-play .play-deck #touch-controls .engine-control{min-height:64px;font-size:24px}.archery-play .play-deck #event-status{font-size:10px}.archery-arrows{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.archery-arrows>article{padding:9px 4px}.archery-arrows strong{font-size:32px}.archery-target-result{width:min(100%,260px)}}
@media(max-height:550px) and (orientation:landscape){.archery-play .play-toolbar{display:flex;flex-wrap:nowrap}.archery-play .play-toolbar>span{margin-right:auto}.archery-play .play-toolbar .btn,.archery-play .play-toolbar .mode-select button{min-height:36px;padding:5px 8px;font-size:11px}.archery-play .play-viewport{width:min(100%,calc((100dvh - 110px)*16/9))}.archery-play .play-deck{flex-direction:row;min-height:58px;padding:4px 12px}.archery-play .play-deck .live-message{flex:1}.archery-play .play-deck #touch-controls{min-height:48px;max-width:330px;flex:1}.archery-play .play-deck #touch-controls .engine-control{min-height:48px;font-size:20px}}

.archery-results>*{min-width:0}.archery-results .result-table{table-layout:fixed}.archery-results .result-table th:first-child{width:34px}.archery-results .result-table th:last-child{width:78px}.archery-results .result-table th,.archery-results .result-table td{padding-left:5px;padding-right:5px}.archery-results .trainer-cell{min-width:0;gap:6px}.archery-results .trainer-cell>span{min-width:0;overflow-wrap:anywhere}.archery-results .result-score{white-space:normal;overflow-wrap:anywhere}

.volleyball-brief .sport-title h1{font-size:clamp(43px,6vw,69px)}.volleyball-crew{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:10px auto 14px;max-width:380px}.volleyball-crew>div{display:grid;justify-items:center;align-content:start;min-width:0;gap:3px}.volleyball-portrait{display:flex;align-items:flex-end;justify-content:center;width:110px;height:86px;max-width:100%}.volleyball-portrait img,.volleyball-portrait canvas{width:110px;height:86px;max-width:100%;object-fit:contain;image-rendering:pixelated}.volleyball-crew span{font-size:10px;color:#a9d8e1}.volleyball-crew b{font:26px/1.1 FestivalTitle,sans-serif;color:#fff3d8;overflow-wrap:anywhere}.volleyball-opponent{display:grid;gap:3px;text-align:center;padding:9px 5px;background:#35576d}.volleyball-opponent span{font-size:10px;color:#bddbdc}.volleyball-opponent b{font:25px FestivalTitle,sans-serif;color:#f5cf77;overflow-wrap:anywhere}.volleyball-opponent small{font-size:12px;color:#fff3d8;overflow-wrap:anywhere}.volleyball-brief .brief-buttons .btn{min-height:44px}.volleyball-results>*{min-width:0}.volleyball-results .result-table{table-layout:fixed}.volleyball-results .result-table th:first-child{width:34px}.volleyball-results .result-table th:last-child{width:72px}.volleyball-results .result-table th,.volleyball-results .result-table td{padding-left:5px;padding-right:5px}.volleyball-results .trainer-cell{min-width:0;gap:6px}.volleyball-results .trainer-cell>span{min-width:0;overflow-wrap:anywhere}.volleyball-results .result-score{white-space:normal;overflow-wrap:anywhere}.volleyball-place{font:26px FestivalTitle,sans-serif;color:#f5cf77;margin:7px 0}.volleyball-score-label{font-size:12px;line-height:1.4;color:#c7dfe4;overflow-wrap:anywhere}.volleyball-points{list-style:none;margin:17px 0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px}.volleyball-points li{display:grid;align-content:start;gap:5px;min-width:0;padding:10px 5px;background:#35576d;border-bottom:3px solid #8bddc9}.volleyball-points li.lost{border-color:#ee826a}.volleyball-points li.unknown{border-color:#87acb4}.volleyball-points span{font-size:10px;color:#bddbdc}.volleyball-points strong{font:34px FestivalTitle,sans-serif;color:#fff3d8}.volleyball-points b{font:22px FestivalTitle,sans-serif;color:#a0e8d7}.volleyball-points .lost b{color:#eea48d}.volleyball-points small{font-size:11px;line-height:1.35;color:#c7dfe4}.volleyball-contacts{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:14px 0}.volleyball-contacts>div{display:flex;align-items:center;justify-content:space-between;gap:6px;background:#35576d;padding:8px 10px}.volleyball-contacts dt{font-size:12px;text-align:left;color:#c7dfe4}.volleyball-contacts dd{font:30px FestivalTitle,sans-serif;color:#f5cf77;margin:0}.volleyball-note{font-size:12px;line-height:1.4;color:#c7dfe4}
.volleyball-play .play-toolbar{flex-wrap:wrap}.volleyball-play .play-toolbar .volleyball-exit{background:#35576d;color:#fff3d8}.volleyball-play #timing-cue{display:none}.volleyball-play .play-viewport canvas{aspect-ratio:auto;touch-action:none}.volleyball-play .play-deck{padding:8px 12px;min-height:84px}.volleyball-play .play-deck #touch-controls[data-layout=volleyball]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;flex:1;width:100%;max-width:560px;margin:0;min-height:64px}.volleyball-play #touch-controls .engine-control{width:100%;min-width:0;max-width:none;min-height:64px;padding:7px 4px;font:24px/1.1 FestivalTitle,sans-serif;white-space:normal;color:#203951;background:#f5cf77;border-color:#fff3d8}.volleyball-play #touch-controls [data-action=left]{grid-column:1;grid-row:1}.volleyball-play #touch-controls [data-action=action]{grid-column:2;grid-row:1}.volleyball-play #touch-controls [data-action=right]{grid-column:3;grid-row:1}.volleyball-play #touch-controls .engine-control.is-held,.volleyball-play #touch-controls .engine-control.shot-ready{background:#fff3d8;color:#203951;transform:none}.volleyball-play #touch-controls .engine-control:disabled{opacity:.55}.volleyball-play .play-toolbar .btn:hover,.volleyball-play .play-toolbar .btn:active,.volleyball-play .play-toolbar .btn:focus-visible{color:#203951;background:#fff3d8}
@media(max-width:720px){.volleyball-brief .sport-how{grid-template-columns:1fr}.volleyball-brief .sport-how li{font-size:13px}.volleyball-brief .brief-buttons{display:grid;grid-template-columns:1fr 1fr}.volleyball-brief .brief-buttons .btn:first-child{grid-column:1/-1}.volleyball-crew{gap:8px;margin:7px auto 10px}.volleyball-crew b{font-size:25px}.volleyball-portrait,.volleyball-portrait img,.volleyball-portrait canvas{width:94px;height:74px}.volleyball-opponent{margin:5px 0 9px}.volleyball-play .play-toolbar{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}.volleyball-play .play-toolbar>span{grid-column:1/3;grid-row:1;margin:0;background:none}.volleyball-play .play-toolbar .volleyball-exit{grid-column:3/5;grid-row:1}.volleyball-play .play-toolbar .mode-select{grid-column:1/3;grid-row:2;display:flex}.volleyball-play .play-toolbar .mode-select button{flex:1;padding:5px}.volleyball-play .play-toolbar #pause-button{grid-column:3;grid-row:2}.volleyball-play .play-toolbar .sound-button{grid-column:4;grid-row:2}.volleyball-play .play-toolbar .btn,.volleyball-play .play-toolbar .mode-select button{min-height:44px;min-width:0;padding:5px 3px;font-size:10px}.volleyball-play .play-viewport{width:min(100%,calc((100dvh - 292px)*640/660))}.volleyball-play .play-deck{padding:5px 12px;gap:5px;min-height:0}.volleyball-play .play-deck .live-message{padding:5px;min-height:43px}.volleyball-play .play-deck #touch-controls[data-layout=volleyball]{max-width:none;gap:6px}.volleyball-play .play-deck #event-status{font-size:10px}.volleyball-play #touch-controls .engine-control{font-size:23px}.volleyball-points{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.volleyball-contacts{gap:6px}.volleyball-contacts>div{padding:7px}.volleyball-contacts dt{font-size:11px}}
@media(max-height:550px) and (orientation:landscape){.volleyball-play .play-toolbar{display:flex;flex-wrap:nowrap}.volleyball-play .play-toolbar>span{margin-right:auto}.volleyball-play .play-toolbar .btn,.volleyball-play .play-toolbar .mode-select button{min-height:36px;padding:5px 8px;font-size:11px}.volleyball-play .play-viewport{width:min(100%,calc((100dvh - 110px)*16/9))}.volleyball-play .play-deck{flex-direction:row;min-height:58px;padding:4px 12px}.volleyball-play .play-deck .live-message{flex:1}.volleyball-play .play-deck #touch-controls[data-layout=volleyball]{min-height:48px;max-width:390px;flex:1}.volleyball-play #touch-controls .engine-control{min-height:48px;font-size:21px}}

.figure-skating-brief .sport-title h1{font-size:clamp(43px,6vw,70px)}.figure-skating-athlete{display:flex;align-items:center;justify-content:center;gap:12px;margin:0 0 10px;min-width:0}.figure-skating-portrait{display:flex;align-items:flex-end;justify-content:center;width:88px;height:70px;flex:none}.figure-skating-portrait img,.figure-skating-portrait canvas{width:88px;height:70px;object-fit:contain;image-rendering:pixelated}.figure-skating-athlete>span{display:flex;flex-direction:column;gap:4px;font-size:10px;color:#bddbdc;min-width:0}.figure-skating-athlete b{display:block;font:27px FestivalTitle,sans-serif;color:#fff3d8;overflow-wrap:anywhere}.figure-skating-controls{font-size:12px;line-height:1.4;color:#c7dfe4;text-align:center}.figure-skating-lessons{list-style:none!important;padding:0!important}.figure-skating-lessons li{padding:10px 12px;background:#35576d;border-left:3px solid #8bddc9;margin:8px 0!important}.figure-skating-lessons li>span{display:block;font-size:10px;letter-spacing:1px;color:#f5cf77;margin-bottom:3px}.figure-skating-lessons li>b{display:block}.figure-skating-brief .brief-buttons .btn{min-height:44px}.figure-skating-results>*{min-width:0}.figure-skating-results .result-table{table-layout:fixed}.figure-skating-results .result-table th:first-child{width:34px}.figure-skating-results .result-table th:last-child{width:78px}.figure-skating-results .result-table th,.figure-skating-results .result-table td{padding-left:5px;padding-right:5px}.figure-skating-results .trainer-cell{min-width:0;gap:6px}.figure-skating-results .trainer-cell>span{min-width:0;overflow-wrap:anywhere}.figure-skating-results .result-score{white-space:normal;overflow-wrap:anywhere}.figure-skating-combo{font:21px FestivalTitle,sans-serif;color:#a9d8e1;margin:8px 0}.figure-skating-combo strong{font-size:34px;color:#f5cf77}.figure-skating-totals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:10px 0 14px}.figure-skating-totals>div{background:#35576d;padding:8px 4px}.figure-skating-totals dt{font-size:11px;color:#c7dfe4}.figure-skating-totals dd{font:28px FestivalTitle,sans-serif;color:#fff3d8;margin:2px 0 0}.figure-skating-sections{display:grid;gap:10px;margin:12px 0}.figure-skating-section{background:#35576d;padding:10px 9px;min-width:0}.figure-skating-section-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;text-align:left;margin-bottom:9px}.figure-skating-section-head h2{font:27px FestivalTitle,sans-serif;color:#a0e8d7;margin:0 auto 0 0}.figure-skating-section-head strong{font:26px FestivalTitle,sans-serif;color:#fff3d8}.figure-skating-section-head>span{font-size:10px;color:#c7dfe4}.figure-skating-notes{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:4px}.figure-skating-notes li{display:grid;grid-template-columns:1fr auto;align-items:center;min-width:0;gap:2px;padding:5px 3px;background:#203951;border-bottom:2px solid #ee826a}.figure-skating-notes .perfect{border-color:#f5cf77}.figure-skating-notes .good{border-color:#8bddc9}.figure-skating-notes .unplayed{border-color:#87acb4}.figure-note-arrow{font:28px FestivalTitle,sans-serif;color:#fff3d8}.figure-skating-notes b{font-size:12px;color:#eea48d}.figure-skating-notes .perfect b{color:#f5cf77}.figure-skating-notes .good b{color:#8bddc9}.figure-skating-notes small{grid-column:1/-1;overflow-wrap:anywhere;font-size:8px;line-height:1.2;color:#c7dfe4}.figure-skating-key,.figure-skating-note{font-size:11px;line-height:1.45;color:#c7dfe4}.figure-skating-passport{font-size:13px;color:inherit}
.figure-skating-play .play-viewport{width:min(100%,calc((100dvh - 276px)*16/9))}.figure-skating-play .play-viewport canvas{aspect-ratio:auto;touch-action:none}.figure-skating-play #timing-cue{display:none}.figure-skating-play .play-deck{min-height:150px;padding:8px 12px}.figure-skating-play .play-deck #touch-controls[data-layout=figure-skating]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(2,64px);gap:6px;width:100%;max-width:330px;margin:0;flex:1}.figure-skating-play #touch-controls .engine-control{min-width:0;width:100%;max-width:none;min-height:64px;padding:6px 3px;font:28px/1 FestivalTitle,sans-serif;background:#f5cf77;color:#203951;border-color:#fff3d8;white-space:normal}.figure-skating-play #touch-controls [data-action=up]{grid-column:2;grid-row:1}.figure-skating-play #touch-controls [data-action=left]{grid-column:1;grid-row:2}.figure-skating-play #touch-controls [data-action=down]{grid-column:2;grid-row:2}.figure-skating-play #touch-controls [data-action=right]{grid-column:3;grid-row:2}.figure-skating-play #touch-controls .engine-control.is-held{background:#fff3d8;color:#203951;transform:none}.figure-skating-play #touch-controls .engine-control:disabled{opacity:.55}.figure-skating-play .play-toolbar .btn:hover,.figure-skating-play .play-toolbar .btn:active,.figure-skating-play .play-toolbar .btn:focus-visible{color:#203951;background:#fff3d8}
@media(max-width:720px){.figure-skating-brief .sport-how{grid-template-columns:1fr}.figure-skating-brief .sport-how li{font-size:13px}.figure-skating-brief .brief-buttons{display:grid;grid-template-columns:1fr 1fr}.figure-skating-brief .brief-buttons .btn:first-child{grid-column:1/-1}.figure-skating-play .play-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:4px}.figure-skating-play .play-toolbar>span{grid-column:1/-1;margin:0;background:none;line-height:12px;font-size:10px}.figure-skating-play .play-toolbar .mode-select{grid-column:1;display:flex}.figure-skating-play .play-toolbar .mode-select button{flex:1}.figure-skating-play .play-toolbar .btn,.figure-skating-play .play-toolbar .mode-select button{min-height:44px;min-width:0;padding:5px 7px;font-size:10px}.figure-skating-play .play-viewport{width:min(100%,calc((100dvh - 330px)*640/660))}.figure-skating-play .play-deck{padding:5px 12px;gap:5px;min-height:0}.figure-skating-play .play-deck .live-message{padding:4px;min-height:34px}.figure-skating-play .play-deck #touch-controls[data-layout=figure-skating]{max-width:330px;flex:none}.figure-skating-play .play-deck #event-status{font-size:10px}.figure-skating-notes{grid-template-columns:repeat(4,minmax(0,1fr))}.figure-skating-notes li{padding:5px}.figure-skating-notes small{font-size:9px}.figure-skating-section-head h2{font-size:25px}.figure-skating-section-head>span{font-size:9px}}
@media(max-height:550px) and (orientation:landscape){.figure-skating-play{display:grid;grid-template-columns:minmax(0,1fr) 226px;gap:0 8px}.figure-skating-play .play-toolbar{grid-column:1/-1;display:flex;flex-wrap:nowrap}.figure-skating-play .play-toolbar>span{margin-right:auto}.figure-skating-play .play-toolbar .btn,.figure-skating-play .play-toolbar .mode-select button{min-height:36px;padding:5px 8px;font-size:11px}.figure-skating-play .play-viewport{width:min(100%,calc((100dvh - 62px)*16/9));grid-column:1;align-self:center}.figure-skating-play .play-deck{grid-column:2;flex-direction:column;justify-content:center;min-height:0;padding:4px 0;gap:8px}.figure-skating-play .play-deck .live-message{padding:4px;min-height:0;flex:none}.figure-skating-play .play-deck #touch-controls[data-layout=figure-skating]{grid-template-rows:repeat(2,48px);width:100%;max-width:none;flex:none}.figure-skating-play #touch-controls .engine-control{min-height:48px;padding:3px 0;font-size:18px;line-height:1;white-space:nowrap}}

.pairs-skating-brief .sport-title h1{font-size:clamp(37px,5.5vw,65px)}.pairs-skating-team{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;max-width:360px;margin:8px auto 14px;text-align:center}.pairs-skating-team>div{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:0}.pairs-skating-portrait{display:flex;align-items:flex-end;justify-content:center;width:125px;height:98px;max-width:100%}.pairs-skating-portrait img,.pairs-skating-portrait canvas{width:125px;height:98px;max-width:100%;object-fit:contain;image-rendering:pixelated}.pairs-skating-team span{font-size:10px;color:#bddbdc}.pairs-skating-team b{font:26px FestivalTitle,sans-serif;color:#fff3d8;overflow-wrap:anywhere;max-width:100%}.pairs-skating-brief .pairs-skating-team{width:100%;margin:0 0 12px}.pairs-skating-brief .pairs-skating-portrait,.pairs-skating-brief .pairs-skating-portrait img,.pairs-skating-brief .pairs-skating-portrait canvas{width:88px;height:70px}.pairs-skating-controls{font-size:12px;line-height:1.4;color:#c7dfe4;text-align:center}.pairs-skating-lessons{list-style:none!important;padding:0!important}.pairs-skating-lessons li{padding:10px 12px;background:#35576d;border-left:3px solid #8bddc9;margin:8px 0!important}.pairs-skating-lessons li>span{display:block;font-size:10px;letter-spacing:1px;color:#f5cf77;margin-bottom:3px}.pairs-skating-lessons li>b{display:block}.pairs-skating-brief .brief-buttons .btn{min-height:44px}.pairs-skating-results>*{min-width:0}.pairs-skating-results .result-table{table-layout:fixed}.pairs-skating-results .result-table th:first-child{width:34px}.pairs-skating-results .result-table th:last-child{width:78px}.pairs-skating-results .result-table th,.pairs-skating-results .result-table td{padding-left:5px;padding-right:5px}.pairs-skating-results .trainer-cell{min-width:0;gap:6px}.pairs-skating-results .trainer-cell>span{min-width:0;overflow-wrap:anywhere}.pairs-skating-results .result-score{white-space:normal;overflow-wrap:anywhere}.pairs-skating-place{font:27px FestivalTitle,sans-serif;color:#f5cf77;margin:7px 0}.pairs-skating-sync{font:27px FestivalTitle,sans-serif;color:#a0e8d7;margin:8px 0}.pairs-skating-combo{font:21px FestivalTitle,sans-serif;color:#a9d8e1;margin:8px 0}.pairs-skating-combo strong{font-size:34px;color:#f5cf77}.pairs-skating-totals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:10px 0 14px}.pairs-skating-totals>div{background:#35576d;padding:8px 4px}.pairs-skating-totals dt{font-size:11px;color:#c7dfe4}.pairs-skating-totals dd{font:28px FestivalTitle,sans-serif;color:#fff3d8;margin:2px 0 0}.pairs-skating-sections{display:grid;gap:10px;margin:12px 0}.pairs-skating-section{background:#35576d;padding:10px 9px;min-width:0}.pairs-skating-section-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;text-align:left;margin-bottom:9px}.pairs-skating-section-head h2{font:27px FestivalTitle,sans-serif;color:#a0e8d7;margin:0 auto 0 0}.pairs-skating-section-head strong{font:26px FestivalTitle,sans-serif;color:#fff3d8}.pairs-skating-section-head>span{font-size:10px;color:#c7dfe4}.pairs-skating-notes{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}.pairs-skating-notes li{display:grid;grid-template-columns:1fr auto;align-items:center;min-width:0;gap:3px;padding:6px;background:#203951;border-bottom:2px solid #ee826a}.pairs-skating-notes .perfect{border-color:#f5cf77}.pairs-skating-notes .good{border-color:#8bddc9}.pairs-skating-notes .unplayed{border-color:#87acb4}.pairs-note-kind{grid-column:1/-1;font-size:9px;color:#bddbdc}.pairs-note-arrows{display:flex;justify-content:center;gap:5px;font:28px/1 FestivalTitle,sans-serif;color:#fff3d8}.pairs-note-arrows i{font-style:normal}.pairs-note-arrows i:first-child{color:#a0e8d7}.pairs-note-arrows i:last-child{color:#f5cf77}.pairs-skating-notes b{font-size:12px;color:#eea48d}.pairs-skating-notes .perfect b{color:#f5cf77}.pairs-skating-notes .good b{color:#8bddc9}.pairs-skating-notes small{grid-column:1/-1;overflow-wrap:anywhere;font-size:9px;line-height:1.2;color:#c7dfe4}.pairs-skating-key,.pairs-skating-note{font-size:11px;line-height:1.45;color:#c7dfe4}.pairs-skating-passport{font-size:13px;color:inherit}
.pairs-skating-play .play-viewport{width:min(100%,calc((100dvh - 276px)*16/9))}.pairs-skating-play .play-viewport canvas{aspect-ratio:auto;touch-action:none}.pairs-skating-play #timing-cue{display:none}.pairs-skating-play .play-deck{min-height:150px;padding:8px 12px}.pairs-skating-play .play-deck #touch-controls[data-layout=pairs-skating]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(2,64px);gap:6px;width:100%;max-width:330px;margin:0;flex:1;touch-action:none;user-select:none}.pairs-skating-play #touch-controls .engine-control{min-width:0;width:100%;max-width:none;min-height:64px;padding:6px 0;font:24px/1 FestivalTitle,sans-serif;background:#35576d;color:#fff3d8;border-color:#87acb4;white-space:nowrap;touch-action:none}.pairs-skating-play #touch-controls [data-action=up]{grid-column:2;grid-row:1}.pairs-skating-play #touch-controls [data-action=left]{grid-column:1;grid-row:2}.pairs-skating-play #touch-controls [data-action=down]{grid-column:2;grid-row:2}.pairs-skating-play #touch-controls [data-action=right]{grid-column:3;grid-row:2}.pairs-skating-play #touch-controls .engine-control.shot-ready{background:#f5cf77;color:#203951;border-color:#fff3d8}.pairs-skating-play #touch-controls .engine-control.is-held{background:#fff3d8;color:#203951;transform:none}.pairs-skating-play #touch-controls .engine-control:disabled{opacity:.55}.pairs-skating-play .play-toolbar .btn:hover,.pairs-skating-play .play-toolbar .btn:active,.pairs-skating-play .play-toolbar .btn:focus-visible{color:#203951;background:#fff3d8}
@media(max-width:720px){.pairs-skating-brief .sport-how{grid-template-columns:1fr}.pairs-skating-brief .sport-how li{font-size:13px}.pairs-skating-brief .brief-buttons{display:grid;grid-template-columns:1fr 1fr}.pairs-skating-brief .brief-buttons .btn:first-child{grid-column:1/-1}.pairs-skating-team{gap:8px}.pairs-skating-team b{font-size:24px}.pairs-skating-play .play-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:4px}.pairs-skating-play .play-toolbar>span{grid-column:1/-1;margin:0;background:none;line-height:12px;font-size:10px}.pairs-skating-play .play-toolbar .mode-select{grid-column:1;display:flex}.pairs-skating-play .play-toolbar .mode-select button{flex:1}.pairs-skating-play .play-toolbar .btn,.pairs-skating-play .play-toolbar .mode-select button{min-height:44px;min-width:0;padding:5px 7px;font-size:10px}.pairs-skating-play .play-viewport{width:min(100%,calc((100dvh - 330px)*640/660))}.pairs-skating-play .play-deck{padding:5px 12px;gap:5px;min-height:0}.pairs-skating-play .play-deck .live-message{padding:4px;min-height:34px}.pairs-skating-play .play-deck #touch-controls[data-layout=pairs-skating]{max-width:330px;flex:none}.pairs-skating-play .play-deck #event-status{font-size:10px}.pairs-skating-notes{grid-template-columns:repeat(2,minmax(0,1fr))}.pairs-skating-notes li{padding:7px}.pairs-skating-notes small{font-size:10px}.pairs-skating-section-head h2{font-size:25px}.pairs-skating-section-head>span{font-size:9px}}
@media(max-height:550px) and (orientation:landscape){.pairs-skating-play{display:grid;grid-template-columns:minmax(0,1fr) 226px;gap:0 8px}.pairs-skating-play .play-toolbar{grid-column:1/-1;display:flex;flex-wrap:nowrap}.pairs-skating-play .play-toolbar>span{margin-right:auto}.pairs-skating-play .play-toolbar .btn,.pairs-skating-play .play-toolbar .mode-select button{min-height:36px;padding:5px 8px;font-size:11px}.pairs-skating-play .play-viewport{width:min(100%,calc((100dvh - 62px)*16/9));grid-column:1;align-self:center}.pairs-skating-play .play-deck{grid-column:2;flex-direction:column;justify-content:center;min-height:0;padding:4px 0;gap:8px}.pairs-skating-play .play-deck .live-message{padding:4px;min-height:0;flex:none}.pairs-skating-play .play-deck #touch-controls[data-layout=pairs-skating]{grid-template-rows:repeat(2,48px);width:100%;max-width:none;flex:none}.pairs-skating-play #touch-controls .engine-control{min-height:48px;padding:3px 0;font-size:18px;line-height:1;white-space:nowrap}}

/* Cross-Country keeps pacing on one hold control. */
.cross-country-brief .sport-title h1{font-size:clamp(36px,5.5vw,64px)}.cross-country-athlete{display:flex;align-items:center;gap:12px;margin-bottom:12px}.cross-country-portrait{display:flex;align-items:flex-end;justify-content:center;flex:0 0 94px;width:94px;height:78px}.cross-country-portrait img,.cross-country-portrait canvas{width:94px;height:78px;object-fit:contain;image-rendering:pixelated}.cross-country-athlete>span{display:flex;flex-direction:column;gap:5px;min-width:0;font-size:10px;color:#bddbdc}.cross-country-athlete b{font:28px FestivalTitle,sans-serif;overflow-wrap:anywhere;color:#fff3d8}.cross-country-lessons li{line-height:1.55}.cross-country-rule,.cross-country-note{font-size:12px;line-height:1.5;color:#c7dfe4}.cross-country-brief .brief-buttons .btn{min-height:44px}.cross-country-results>*{min-width:0}.cross-country-results .result-table{table-layout:fixed}.cross-country-results .result-table th:first-child{width:34px}.cross-country-results .result-table th:last-child{width:82px}.cross-country-results .result-table th,.cross-country-results .result-table td{padding-left:5px;padding-right:5px}.cross-country-results .trainer-cell{min-width:0;gap:6px}.cross-country-results .trainer-cell>span{min-width:0;overflow-wrap:anywhere}.cross-country-results .result-score{white-space:normal;overflow-wrap:anywhere}.cross-country-sections{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:18px 0 10px}.cross-country-sections>div{display:flex;flex-direction:column;justify-content:space-between;gap:6px;min-width:0;padding:12px 5px;background:#35576d}.cross-country-sections span{font-size:11px;line-height:1.3;color:#c7dfe4}.cross-country-sections b{font:29px FestivalTitle,sans-serif;color:#fff3d8;white-space:nowrap}.cross-country-sections small{font-size:9px;color:#bddbdc}.cross-country-effort{font-size:13px;color:#c7dfe4}.cross-country-effort strong{font:25px FestivalTitle,sans-serif;color:#f5cf77}.cross-country-passport{font-size:13px;color:inherit}
.cross-country-play #timing-cue{display:none}.cross-country-play .play-viewport{width:min(100%,calc((100dvh - 230px)*16/9))}.cross-country-play .play-viewport canvas{aspect-ratio:auto;touch-action:none}.cross-country-play .play-deck{min-width:0;min-height:110px;padding:8px 12px}.cross-country-play .play-deck #touch-controls{display:flex;min-width:0;max-width:440px;min-height:78px;flex:1;margin:0;touch-action:none;user-select:none}.cross-country-play #touch-controls .engine-control{min-width:0;width:100%;max-width:100%;min-height:78px;padding:6px 10px;font:26px/1.15 FestivalTitle,sans-serif;white-space:normal;overflow-wrap:break-word;background:#8bddc9;color:#203951;touch-action:none}.cross-country-play #touch-controls .engine-control.is-held{background:#fff3d8;transform:none}.cross-country-play #touch-controls .engine-control:disabled{opacity:.55}.cross-country-play .play-toolbar .btn:hover,.cross-country-play .play-toolbar .btn:active,.cross-country-play .play-toolbar .btn:focus-visible{color:#203951;background:#fff3d8}
@media(max-width:720px){.cross-country-brief .sport-how{grid-template-columns:1fr}.cross-country-brief .brief-buttons{display:grid;grid-template-columns:1fr 1fr}.cross-country-brief .brief-buttons .btn:first-child{grid-column:1/-1}.cross-country-sections b{font-size:25px}.cross-country-sections span{font-size:10px}.cross-country-sections small{font-size:8px}.cross-country-results .finish-time{font-size:clamp(38px,12vw,70px)}.cross-country-play .play-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:4px}.cross-country-play .play-toolbar>span{grid-column:1/-1;margin:0;background:none;line-height:12px;font-size:10px}.cross-country-play .play-toolbar .mode-select{grid-column:1;display:flex}.cross-country-play .play-toolbar .mode-select button{flex:1}.cross-country-play .play-toolbar .btn,.cross-country-play .play-toolbar .mode-select button{min-height:44px;min-width:0;padding:5px 7px;font-size:10px}.cross-country-play .play-viewport{width:min(100%,calc((100dvh - 278px)*640/660))}.cross-country-play .play-deck{padding:5px 12px;gap:6px;min-height:0}.cross-country-play .play-deck .live-message{padding:4px;min-height:34px}.cross-country-play .play-deck #touch-controls{width:100%;max-width:none;flex:none}.cross-country-play .play-deck #event-status{font-size:10px}}
@media(max-height:550px) and (orientation:landscape){.cross-country-play{display:grid;grid-template-columns:minmax(0,1fr) 206px;gap:0 8px}.cross-country-play .play-toolbar{grid-column:1/-1;display:flex;flex-wrap:nowrap}.cross-country-play .play-toolbar>span{margin-right:auto}.cross-country-play .play-toolbar .btn,.cross-country-play .play-toolbar .mode-select button{min-height:36px;padding:5px 8px;font-size:11px}.cross-country-play .play-viewport{width:min(100%,calc((100dvh - 62px)*16/9));grid-column:1;align-self:center}.cross-country-play .play-deck{grid-column:2;flex-direction:column;justify-content:center;min-height:0;padding:4px 0;gap:8px}.cross-country-play .play-deck .live-message{padding:4px;min-height:0;flex:none}.cross-country-play .play-deck #touch-controls{min-height:48px;width:100%;flex:none}.cross-country-play #touch-controls .engine-control{min-height:48px;padding:5px 4px;font-size:22px}}

/* Snowboard Cross keeps fresh jumps separate from sustained tucks. */
.snowboard-cross-brief .sport-title h1{font-size:clamp(38px,5.5vw,66px)}.snowboard-cross-athlete{display:flex;align-items:center;gap:12px;margin-bottom:12px}.snowboard-cross-portrait{display:flex;align-items:flex-end;justify-content:center;flex:0 0 94px;width:94px;height:78px}.snowboard-cross-portrait img,.snowboard-cross-portrait canvas{width:94px;height:78px;object-fit:contain;image-rendering:pixelated}.snowboard-cross-athlete>span{display:flex;flex-direction:column;gap:5px;min-width:0;font-size:10px;color:#bddbdc}.snowboard-cross-athlete b{font:28px FestivalTitle,sans-serif;overflow-wrap:anywhere;color:#fff3d8}.snowboard-cross-lessons li{line-height:1.55}.snowboard-cross-rule,.snowboard-cross-note{font-size:12px;line-height:1.5;color:#c7dfe4}.snowboard-cross-brief .brief-buttons .btn{min-height:44px}.snowboard-cross-results>*{min-width:0}.snowboard-cross-results .result-table{table-layout:fixed}.snowboard-cross-results .result-table th:first-child{width:34px}.snowboard-cross-results .result-table th:last-child{width:82px}.snowboard-cross-results .result-table th,.snowboard-cross-results .result-table td{padding-left:5px;padding-right:5px}.snowboard-cross-results .trainer-cell{min-width:0;gap:6px}.snowboard-cross-results .trainer-cell>span{min-width:0;overflow-wrap:anywhere}.snowboard-cross-results .result-score{white-space:normal;overflow-wrap:anywhere}.snowboard-cross-sections{display:grid;gap:10px;margin:18px 0 12px}.snowboard-cross-section{padding:10px;background:#35576d;min-width:0}.snowboard-cross-section-head{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:8px;text-align:left}.snowboard-cross-section-head h2{font:26px FestivalTitle,sans-serif;margin:0;color:#a0e8d7}.snowboard-cross-section-head strong{font:29px FestivalTitle,sans-serif;color:#fff3d8}.snowboard-cross-section-head small{font-size:9px;color:#bddbdc}.snowboard-cross-features{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.snowboard-cross-features li{display:flex;flex-direction:column;gap:5px;min-width:0;padding:8px 3px;background:#203951;border-bottom:2px solid #87acb4}.snowboard-cross-features li.clean{border-color:#8bddc9}.snowboard-cross-features li.rough{border-color:#ee826a}.snowboard-cross-features span{font-size:10px;color:#bddbdc}.snowboard-cross-features b{font:24px/1 FestivalTitle,sans-serif;color:#fff3d8}.snowboard-cross-features small{font-size:9px;line-height:1.35;overflow-wrap:break-word;color:#c7dfe4}.snowboard-cross-features .clean small{color:#a0e8d7}.snowboard-cross-features .rough small{color:#f0a38b}.snowboard-cross-passport{font-size:13px;color:inherit}
.snowboard-cross-play #timing-cue{display:none}.snowboard-cross-play .play-viewport{width:min(100%,calc((100dvh - 230px)*16/9))}.snowboard-cross-play .play-viewport canvas{aspect-ratio:auto;touch-action:none}.snowboard-cross-play .play-deck{min-width:0;min-height:110px;padding:8px 12px}.snowboard-cross-play .play-deck #touch-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;min-width:0;max-width:460px;min-height:78px;flex:1;margin:0;touch-action:none;user-select:none}.snowboard-cross-play #touch-controls .engine-control{min-width:0;width:100%;max-width:100%;min-height:78px;padding:6px 8px;font:25px/1.1 FestivalTitle,sans-serif;white-space:normal;overflow-wrap:break-word;color:#203951;touch-action:none}.snowboard-cross-play #touch-controls [data-action=action]{background:#f5cf77}.snowboard-cross-play #touch-controls [data-action=down]{background:#8bddc9}.snowboard-cross-play #touch-controls .engine-control.is-held{background:#fff3d8;transform:none}.snowboard-cross-play #touch-controls .engine-control:disabled{opacity:.55}.snowboard-cross-play .play-toolbar .btn:hover,.snowboard-cross-play .play-toolbar .btn:active,.snowboard-cross-play .play-toolbar .btn:focus-visible{color:#203951;background:#fff3d8}
@media(max-width:720px){.snowboard-cross-brief .sport-how{grid-template-columns:1fr}.snowboard-cross-brief .brief-buttons{display:grid;grid-template-columns:1fr 1fr}.snowboard-cross-brief .brief-buttons .btn:first-child{grid-column:1/-1}.snowboard-cross-results .finish-time{font-size:clamp(38px,12vw,70px)}.snowboard-cross-features small{font-size:8px}.snowboard-cross-play .play-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:4px}.snowboard-cross-play .play-toolbar>span{grid-column:1/-1;margin:0;background:none;line-height:12px;font-size:10px}.snowboard-cross-play .play-toolbar .mode-select{grid-column:1;display:flex}.snowboard-cross-play .play-toolbar .mode-select button{flex:1}.snowboard-cross-play .play-toolbar .btn,.snowboard-cross-play .play-toolbar .mode-select button{min-height:44px;min-width:0;padding:5px 7px;font-size:10px}.snowboard-cross-play .play-viewport{width:min(100%,calc((100dvh - 278px)*640/660))}.snowboard-cross-play .play-deck{padding:5px 12px;gap:6px;min-height:0}.snowboard-cross-play .play-deck .live-message{padding:4px;min-height:34px;min-width:0}.snowboard-cross-play .play-deck #touch-controls{width:100%;max-width:none;flex:none}.snowboard-cross-play #touch-controls .engine-control{font-size:22px}.snowboard-cross-play .play-deck #event-status{font-size:10px}}
@media(max-height:550px) and (orientation:landscape){.snowboard-cross-play{display:grid;grid-template-columns:minmax(0,1fr) 206px;gap:0 8px}.snowboard-cross-play .play-toolbar{grid-column:1/-1;display:flex;flex-wrap:nowrap}.snowboard-cross-play .play-toolbar>span{margin-right:auto}.snowboard-cross-play .play-toolbar .btn,.snowboard-cross-play .play-toolbar .mode-select button{min-height:36px;padding:5px 8px;font-size:11px}.snowboard-cross-play .play-viewport{width:min(100%,calc((100dvh - 62px)*16/9));grid-column:1;align-self:center}.snowboard-cross-play .play-deck{grid-column:2;flex-direction:column;justify-content:center;min-height:0;padding:4px 0;gap:8px}.snowboard-cross-play .play-deck .live-message{padding:4px;min-height:0;flex:none}.snowboard-cross-play .play-deck #touch-controls{grid-template-columns:1fr;min-height:104px;width:100%;flex:none}.snowboard-cross-play #touch-controls .engine-control{min-height:48px;padding:5px 4px;font-size:22px}}

/* Alpine Slalom separates steering from the tuck hold. */
.slalom-brief .sport-title h1{font-size:clamp(38px,5.5vw,66px)}.slalom-athlete{display:flex;align-items:center;gap:12px;margin-bottom:12px}.slalom-portrait{display:flex;align-items:flex-end;justify-content:center;flex:0 0 94px;width:94px;height:78px}.slalom-portrait img,.slalom-portrait canvas{width:94px;height:78px;object-fit:contain;image-rendering:pixelated}.slalom-athlete>span{display:flex;flex-direction:column;gap:5px;min-width:0;font-size:10px;color:#bddbdc}.slalom-athlete b{font:28px FestivalTitle,sans-serif;overflow-wrap:anywhere;color:#fff3d8}.slalom-lessons li{line-height:1.55}.slalom-rule,.slalom-note{font-size:12px;line-height:1.5;color:#c7dfe4}.slalom-brief .brief-buttons .btn{min-height:44px}.slalom-results>*{min-width:0}.slalom-results .result-table{table-layout:fixed}.slalom-results .result-table th:first-child{width:34px}.slalom-results .result-table th:last-child{width:82px}.slalom-results .result-table th,.slalom-results .result-table td{padding-left:5px;padding-right:5px}.slalom-results .trainer-cell{min-width:0;gap:6px}.slalom-results .trainer-cell>span{min-width:0;overflow-wrap:anywhere}.slalom-results .result-score{white-space:normal;overflow-wrap:anywhere}.slalom-sections{display:grid;gap:10px;margin:18px 0 12px}.slalom-section{padding:10px;background:#35576d;min-width:0}.slalom-section-head{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:8px;text-align:left}.slalom-section-head h2{font:26px FestivalTitle,sans-serif;margin:0;color:#a0e8d7}.slalom-section-head strong{font:29px FestivalTitle,sans-serif;color:#fff3d8}.slalom-section-head small{font-size:9px;color:#bddbdc}.slalom-gates{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.slalom-gates li{display:flex;flex-direction:column;gap:5px;min-width:0;padding:8px 3px;background:#203951;border-bottom:2px solid #87acb4}.slalom-gates li.clean{border-color:#8bddc9}.slalom-gates li.rough{border-color:#ee826a}.slalom-gates span{font-size:10px;color:#bddbdc}.slalom-gates b{font:24px/1 FestivalTitle,sans-serif;color:#fff3d8}.slalom-gates small{font-size:9px;line-height:1.35;overflow-wrap:break-word;color:#c7dfe4}.slalom-gates .clean small{color:#a0e8d7}.slalom-gates .rough small{color:#f0a38b}.slalom-passport{font-size:13px;color:inherit}
.slalom-play #timing-cue{display:none}.slalom-play .play-viewport{width:min(100%,calc((100dvh - 230px)*16/9))}.slalom-play .play-viewport canvas{aspect-ratio:auto;touch-action:none}.slalom-play .play-deck{min-width:0;min-height:110px;padding:8px 12px}.slalom-play .play-deck #touch-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;min-width:0;max-width:510px;min-height:72px;flex:1;margin:0;touch-action:none;user-select:none}.slalom-play #touch-controls .engine-control{min-width:0;width:100%;max-width:100%;min-height:72px;padding:6px 2px;font:24px/1.1 FestivalTitle,sans-serif;white-space:nowrap;color:#203951;touch-action:none}.slalom-play #touch-controls [data-action=left]{background:#f5cf77}.slalom-play #touch-controls [data-action=action]{background:#8bddc9}.slalom-play #touch-controls .engine-control.is-held{background:#fff3d8;transform:none}.slalom-play #touch-controls .engine-control:disabled{opacity:.55;white-space:normal;overflow-wrap:break-word}.slalom-play .play-toolbar .btn:hover,.slalom-play .play-toolbar .btn:active,.slalom-play .play-toolbar .btn:focus-visible{color:#203951;background:#fff3d8}
@media(max-width:720px){.slalom-brief .sport-how{grid-template-columns:1fr}.slalom-brief .brief-buttons{display:grid;grid-template-columns:1fr 1fr}.slalom-brief .brief-buttons .btn:first-child{grid-column:1/-1}.slalom-results .finish-time{font-size:clamp(38px,12vw,70px)}.slalom-gates small{font-size:8px}.slalom-play .play-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:4px}.slalom-play .play-toolbar>span{grid-column:1/-1;margin:0;background:none;line-height:12px;font-size:10px}.slalom-play .play-toolbar .mode-select{grid-column:1;display:flex}.slalom-play .play-toolbar .mode-select button{flex:1}.slalom-play .play-toolbar .btn,.slalom-play .play-toolbar .mode-select button{min-height:44px;min-width:0;padding:5px 7px;font-size:10px}.slalom-play .play-viewport{width:min(100%,calc((100dvh - 278px)*640/660))}.slalom-play .play-deck{padding:5px 12px;gap:6px;min-height:0}.slalom-play .play-deck .live-message{padding:4px;min-height:34px;min-width:0}.slalom-play .play-deck #touch-controls{width:100%;max-width:none;flex:none}.slalom-play #touch-controls .engine-control{font-size:22px}.slalom-play .play-deck #event-status{font-size:10px}}
@media(max-height:550px) and (orientation:landscape){.slalom-play{display:grid;grid-template-columns:minmax(0,1fr) 206px;gap:0 8px}.slalom-play .play-toolbar{grid-column:1/-1;display:flex;flex-wrap:nowrap}.slalom-play .play-toolbar>span{margin-right:auto}.slalom-play .play-toolbar .btn,.slalom-play .play-toolbar .mode-select button{min-height:36px;padding:5px 8px;font-size:11px}.slalom-play .play-viewport{width:min(100%,calc((100dvh - 62px)*16/9));grid-column:1;align-self:center}.slalom-play .play-deck{grid-column:2;flex-direction:column;justify-content:center;min-height:0;padding:4px 0;gap:8px}.slalom-play .play-deck .live-message{padding:4px;min-height:0;flex:none}.slalom-play .play-deck #touch-controls{grid-template-columns:1fr;min-height:156px;width:100%;flex:none}.slalom-play #touch-controls .engine-control{min-height:48px;padding:5px 2px;font-size:22px}}

.slalom-play #touch-controls [data-action=right]{background:#f5cf77}.slalom-gates{grid-template-columns:repeat(auto-fit,minmax(64px,1fr))}.slalom-contacts{font-size:12px;line-height:1.5;color:#c7dfe4}.slalom-contacts strong{font:25px FestivalTitle,sans-serif;color:#f5cf77}

/* Downhill Skiing keeps route steering separate from the tuck hold. */
.downhill-brief .sport-title h1{font-size:clamp(38px,5.5vw,66px)}.downhill-athlete{display:flex;align-items:center;gap:12px;margin-bottom:12px}.downhill-portrait{display:flex;align-items:flex-end;justify-content:center;flex:0 0 94px;width:94px;height:78px}.downhill-portrait img,.downhill-portrait canvas{width:94px;height:78px;object-fit:contain;image-rendering:pixelated}.downhill-athlete>span{display:flex;flex-direction:column;gap:5px;min-width:0;font-size:10px;color:#bddbdc}.downhill-athlete b{font:28px FestivalTitle,sans-serif;overflow-wrap:anywhere;color:#fff3d8}.downhill-lessons li{line-height:1.55}.downhill-rule,.downhill-note{font-size:12px;line-height:1.5;color:#c7dfe4}.downhill-brief .brief-buttons .btn{min-height:44px}.downhill-results>*{min-width:0}.downhill-results .result-table{table-layout:fixed}.downhill-results .result-table th:first-child{width:34px}.downhill-results .result-table th:last-child{width:82px}.downhill-results .result-table th,.downhill-results .result-table td{padding-left:5px;padding-right:5px}.downhill-results .trainer-cell{min-width:0;gap:6px}.downhill-results .trainer-cell>span{min-width:0;overflow-wrap:anywhere}.downhill-results .result-score{white-space:normal;overflow-wrap:anywhere}.downhill-sections{display:grid;gap:10px;margin:18px 0 12px}.downhill-section{padding:10px;background:#35576d;min-width:0}.downhill-section-head{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:8px;text-align:left}.downhill-section-head h2{font:26px FestivalTitle,sans-serif;margin:0;color:#a0e8d7}.downhill-section-head strong{font:29px FestivalTitle,sans-serif;color:#fff3d8}.downhill-section-head small{font-size:9px;color:#bddbdc}.downhill-passport{font-size:13px;color:inherit}
.downhill-play #timing-cue{display:none}.downhill-play .play-viewport{width:min(100%,calc((100dvh - 230px)*16/9))}.downhill-play .play-viewport canvas{aspect-ratio:auto;touch-action:none}.downhill-play .play-deck{min-width:0;min-height:110px;padding:8px 12px}.downhill-play .play-deck #touch-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;min-width:0;max-width:510px;min-height:72px;flex:1;margin:0;touch-action:none;user-select:none}.downhill-play #touch-controls .engine-control{min-width:0;width:100%;max-width:100%;min-height:72px;padding:6px 2px;font:24px/1.1 FestivalTitle,sans-serif;white-space:nowrap;color:#203951;touch-action:none}.downhill-play #touch-controls [data-action=left]{background:#f5cf77}.downhill-play #touch-controls [data-action=action]{background:#8bddc9}.downhill-play #touch-controls .engine-control.is-held{background:#fff3d8;transform:none}.downhill-play #touch-controls .engine-control:disabled{opacity:.55;white-space:normal;overflow-wrap:break-word}.downhill-play .play-toolbar .btn:hover,.downhill-play .play-toolbar .btn:active,.downhill-play .play-toolbar .btn:focus-visible{color:#203951;background:#fff3d8}
@media(max-width:720px){.downhill-brief .sport-how{grid-template-columns:1fr}.downhill-brief .brief-buttons{display:grid;grid-template-columns:1fr 1fr}.downhill-brief .brief-buttons .btn:first-child{grid-column:1/-1}.downhill-results .finish-time{font-size:clamp(38px,12vw,70px)}.downhill-play .play-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:4px}.downhill-play .play-toolbar>span{grid-column:1/-1;margin:0;background:none;line-height:12px;font-size:10px}.downhill-play .play-toolbar .mode-select{grid-column:1;display:flex}.downhill-play .play-toolbar .mode-select button{flex:1}.downhill-play .play-toolbar .btn,.downhill-play .play-toolbar .mode-select button{min-height:44px;min-width:0;padding:5px 7px;font-size:10px}.downhill-play .play-viewport{width:min(100%,calc((100dvh - 278px)*640/660))}.downhill-play .play-deck{padding:5px 12px;gap:6px;min-height:0}.downhill-play .play-deck .live-message{padding:4px;min-height:34px;min-width:0}.downhill-play .play-deck #touch-controls{width:100%;max-width:none;flex:none}.downhill-play #touch-controls .engine-control{font-size:22px}.downhill-play .play-deck #event-status{font-size:10px}}
@media(max-height:550px) and (orientation:landscape){.downhill-play{display:grid;grid-template-columns:minmax(0,1fr) 206px;gap:0 8px}.downhill-play .play-toolbar{grid-column:1/-1;display:flex;flex-wrap:nowrap}.downhill-play .play-toolbar>span{margin-right:auto}.downhill-play .play-toolbar .btn,.downhill-play .play-toolbar .mode-select button{min-height:36px;padding:5px 8px;font-size:11px}.downhill-play .play-viewport{width:min(100%,calc((100dvh - 62px)*16/9));grid-column:1;align-self:center}.downhill-play .play-deck{grid-column:2;flex-direction:column;justify-content:center;min-height:0;padding:4px 0;gap:8px}.downhill-play .play-deck .live-message{padding:4px;min-height:0;flex:none}.downhill-play .play-deck #touch-controls{grid-template-columns:1fr;min-height:156px;width:100%;flex:none}.downhill-play #touch-controls .engine-control{min-height:48px;padding:5px 2px;font-size:22px}}

.downhill-play #touch-controls [data-action=right]{background:#f5cf77}.downhill-contacts{font-size:12px;line-height:1.5;color:#c7dfe4}.downhill-contacts strong{font:25px FestivalTitle,sans-serif;color:#f5cf77}

.downhill-route{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;padding:10px;background:#203951;border-left:3px solid #8bddc9;text-align:left}.downhill-route b{font:26px/1.1 FestivalTitle,sans-serif;color:#fff3d8}.downhill-route.rough{border-color:#ee826a}.downhill-route.unknown{border-color:#87acb4}.downhill-route small{font-size:11px;line-height:1.4;color:#c7dfe4}.downhill-travel{font-size:12px;line-height:1.6;color:#c7dfe4}.downhill-travel strong{color:#fff3d8}.downhill-section-note{font-size:11px;line-height:1.4;color:#c7dfe4;margin:9px 0 0;text-align:left}

/* Luge keeps steering and brake holds independent. */
.luge-brief .sport-title h1{font-size:clamp(38px,5.5vw,66px)}.luge-athlete{display:flex;align-items:center;gap:12px;margin-bottom:12px}.luge-portrait{display:flex;align-items:flex-end;justify-content:center;flex:0 0 94px;width:94px;height:78px}.luge-portrait img,.luge-portrait canvas{width:94px;height:78px;object-fit:contain;image-rendering:pixelated}.luge-athlete>span{display:flex;flex-direction:column;gap:5px;min-width:0;font-size:10px;color:#bddbdc}.luge-athlete b{font:28px FestivalTitle,sans-serif;overflow-wrap:anywhere;color:#fff3d8}.luge-lessons li{line-height:1.55}.luge-rule,.luge-note{font-size:12px;line-height:1.5;color:#c7dfe4}.luge-brief .brief-buttons .btn{min-height:44px}.luge-results>*{min-width:0}.luge-results .result-table{table-layout:fixed}.luge-results .result-table th:first-child{width:34px}.luge-results .result-table th:last-child{width:82px}.luge-results .result-table th,.luge-results .result-table td{padding-left:5px;padding-right:5px}.luge-results .trainer-cell{min-width:0;gap:6px}.luge-results .trainer-cell>span{min-width:0;overflow-wrap:anywhere}.luge-results .result-score{white-space:normal;overflow-wrap:anywhere}.luge-sections{display:grid;gap:10px;margin:18px 0 12px}.luge-section{padding:10px;background:#35576d;min-width:0}.luge-section-head{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:8px;text-align:left}.luge-section-head h2{font:26px FestivalTitle,sans-serif;margin:0;color:#a0e8d7}.luge-section-head strong{font:29px FestivalTitle,sans-serif;color:#fff3d8}.luge-section-head small{font-size:9px;color:#bddbdc}.luge-passport{font-size:13px;color:inherit}
.luge-play #timing-cue{display:none}.luge-play .play-viewport{width:min(100%,calc((100dvh - 230px)*16/9))}.luge-play .play-viewport canvas{aspect-ratio:auto;touch-action:none}.luge-play .play-deck{min-width:0;min-height:110px;padding:8px 12px}.luge-play .play-deck #touch-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;min-width:0;max-width:510px;min-height:72px;flex:1;margin:0;touch-action:none;user-select:none}.luge-play #touch-controls .engine-control{min-width:0;width:100%;max-width:100%;min-height:72px;padding:6px 2px;font:24px/1.1 FestivalTitle,sans-serif;white-space:nowrap;color:#203951;touch-action:none}.luge-play #touch-controls [data-action=left]{background:#f5cf77}.luge-play #touch-controls [data-action=action]{background:#8bddc9}.luge-play #touch-controls .engine-control.is-held{background:#fff3d8;transform:none}.luge-play #touch-controls .engine-control:disabled{opacity:.55;white-space:normal;overflow-wrap:break-word}.luge-play .play-toolbar .btn:hover,.luge-play .play-toolbar .btn:active,.luge-play .play-toolbar .btn:focus-visible{color:#203951;background:#fff3d8}
@media(max-width:720px){.luge-brief .sport-how{grid-template-columns:1fr}.luge-brief .brief-buttons{display:grid;grid-template-columns:1fr 1fr}.luge-brief .brief-buttons .btn:first-child{grid-column:1/-1}.luge-results .finish-time{font-size:clamp(38px,12vw,70px)}.luge-play .play-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:4px}.luge-play .play-toolbar>span{grid-column:1/-1;margin:0;background:none;line-height:12px;font-size:10px}.luge-play .play-toolbar .mode-select{grid-column:1;display:flex}.luge-play .play-toolbar .mode-select button{flex:1}.luge-play .play-toolbar .btn,.luge-play .play-toolbar .mode-select button{min-height:44px;min-width:0;padding:5px 7px;font-size:10px}.luge-play .play-viewport{width:min(100%,calc((100dvh - 278px)*640/660))}.luge-play .play-deck{padding:5px 12px;gap:6px;min-height:0}.luge-play .play-deck .live-message{padding:4px;min-height:34px;min-width:0}.luge-play .play-deck #touch-controls{width:100%;max-width:none;flex:none}.luge-play #touch-controls .engine-control{font-size:22px}.luge-play .play-deck #event-status{font-size:10px}}
@media(max-height:550px) and (orientation:landscape){.luge-play{display:grid;grid-template-columns:minmax(0,1fr) 206px;gap:0 8px}.luge-play .play-toolbar{grid-column:1/-1;display:flex;flex-wrap:nowrap}.luge-play .play-toolbar>span{margin-right:auto}.luge-play .play-toolbar .btn,.luge-play .play-toolbar .mode-select button{min-height:36px;padding:5px 8px;font-size:11px}.luge-play .play-viewport{width:min(100%,calc((100dvh - 62px)*16/9));grid-column:1;align-self:center}.luge-play .play-deck{grid-column:2;flex-direction:column;justify-content:center;min-height:0;padding:4px 0;gap:8px}.luge-play .play-deck .live-message{padding:4px;min-height:0;flex:none}.luge-play .play-deck #touch-controls{grid-template-columns:1fr;min-height:156px;width:100%;flex:none}.luge-play #touch-controls .engine-control{min-height:48px;padding:5px 2px;font-size:22px}}

.luge-play #touch-controls [data-action=right]{background:#f5cf77}.luge-contacts{font-size:12px;line-height:1.5;color:#c7dfe4}.luge-contacts strong{font:25px FestivalTitle,sans-serif;color:#f5cf77}


.luge-section-scrapes{margin:0;font-size:12px;line-height:1.5;color:#c7dfe4;text-align:left}.luge-section-scrapes strong{font:24px FestivalTitle,sans-serif;color:#f5cf77}.luge-braking{font-size:12px;line-height:1.5;color:#c7dfe4}.luge-braking strong{color:#fff3d8}.luge-section-head{margin-bottom:5px}

@media(max-width:720px){.luge-results .result-actions{grid-template-columns:minmax(0,1fr)}.luge-results .result-actions .btn{width:100%;min-width:0;min-height:48px;white-space:normal}}

/* End Luge UI */

/* Skeleton has two independent lean controls. */
.skeleton-brief .sport-title h1{font-size:clamp(38px,5.5vw,66px)}.skeleton-athlete{display:flex;align-items:center;gap:12px;margin-bottom:12px}.skeleton-portrait{display:flex;align-items:flex-end;justify-content:center;flex:0 0 94px;width:94px;height:78px}.skeleton-portrait img,.skeleton-portrait canvas{width:94px;height:78px;object-fit:contain;image-rendering:pixelated}.skeleton-athlete>span{display:flex;flex-direction:column;gap:5px;min-width:0;font-size:10px;color:#bddbdc}.skeleton-athlete b{font:28px FestivalTitle,sans-serif;overflow-wrap:anywhere;color:#fff3d8}.skeleton-lessons li{line-height:1.55}.skeleton-rule,.skeleton-note{font-size:12px;line-height:1.5;color:#c7dfe4}.skeleton-brief .brief-buttons .btn{min-height:44px}.skeleton-results>*{min-width:0}.skeleton-results .result-table{table-layout:fixed}.skeleton-results .result-table th:first-child{width:34px}.skeleton-results .result-table th:last-child{width:82px}.skeleton-results .result-table th,.skeleton-results .result-table td{padding-left:5px;padding-right:5px}.skeleton-results .trainer-cell{min-width:0;gap:6px}.skeleton-results .trainer-cell>span{min-width:0;overflow-wrap:anywhere}.skeleton-results .result-score{white-space:normal;overflow-wrap:anywhere}.skeleton-sections{display:grid;gap:10px;margin:18px 0 12px}.skeleton-section{padding:10px;background:#35576d;min-width:0}.skeleton-section-head{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:8px;text-align:left}.skeleton-section-head h2{font:26px FestivalTitle,sans-serif;margin:0;color:#a0e8d7}.skeleton-section-head strong{font:29px FestivalTitle,sans-serif;color:#fff3d8}.skeleton-section-head small{font-size:9px;color:#bddbdc}.skeleton-passport{font-size:13px;color:inherit}
.skeleton-play #timing-cue{display:none}.skeleton-play .play-viewport{width:min(100%,calc((100dvh - 230px)*16/9))}.skeleton-play .play-viewport canvas{aspect-ratio:auto;touch-action:none}.skeleton-play .play-deck{min-width:0;min-height:110px;padding:8px 12px}.skeleton-play .play-deck #touch-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;min-width:0;max-width:510px;min-height:72px;flex:1;margin:0;touch-action:none;user-select:none}.skeleton-play #touch-controls .engine-control{min-width:0;width:100%;max-width:100%;min-height:72px;padding:6px 2px;font:24px/1.1 FestivalTitle,sans-serif;white-space:nowrap;color:#203951;touch-action:none}.skeleton-play #touch-controls [data-action=left]{background:#f5cf77}.skeleton-play #touch-controls .engine-control.is-held{background:#fff3d8;transform:none}.skeleton-play #touch-controls .engine-control:disabled{opacity:.55;white-space:normal;overflow-wrap:break-word}.skeleton-play .play-toolbar .btn:hover,.skeleton-play .play-toolbar .btn:active,.skeleton-play .play-toolbar .btn:focus-visible{color:#203951;background:#fff3d8}
@media(max-width:720px){.skeleton-brief .sport-how{grid-template-columns:1fr}.skeleton-brief .brief-buttons{display:grid;grid-template-columns:1fr 1fr}.skeleton-brief .brief-buttons .btn:first-child{grid-column:1/-1}.skeleton-results .finish-time{font-size:clamp(38px,12vw,70px)}.skeleton-play .play-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:4px}.skeleton-play .play-toolbar>span{grid-column:1/-1;margin:0;background:none;line-height:12px;font-size:10px}.skeleton-play .play-toolbar .mode-select{grid-column:1;display:flex}.skeleton-play .play-toolbar .mode-select button{flex:1}.skeleton-play .play-toolbar .btn,.skeleton-play .play-toolbar .mode-select button{min-height:44px;min-width:0;padding:5px 7px;font-size:10px}.skeleton-play .play-viewport{width:min(100%,calc((100dvh - 278px)*640/660))}.skeleton-play .play-deck{padding:5px 12px;gap:6px;min-height:0}.skeleton-play .play-deck .live-message{padding:4px;min-height:34px;min-width:0}.skeleton-play .play-deck #touch-controls{width:100%;max-width:none;flex:none}.skeleton-play #touch-controls .engine-control{font-size:22px}.skeleton-play .play-deck #event-status{font-size:10px}}
@media(max-height:550px) and (orientation:landscape){.skeleton-play{display:grid;grid-template-columns:minmax(0,1fr) 206px;gap:0 8px}.skeleton-play .play-toolbar{grid-column:1/-1;display:flex;flex-wrap:nowrap}.skeleton-play .play-toolbar>span{margin-right:auto}.skeleton-play .play-toolbar .btn,.skeleton-play .play-toolbar .mode-select button{min-height:36px;padding:5px 8px;font-size:11px}.skeleton-play .play-viewport{width:min(100%,calc((100dvh - 62px)*16/9));grid-column:1;align-self:center}.skeleton-play .play-deck{grid-column:2;flex-direction:column;justify-content:center;min-height:0;padding:4px 0;gap:8px}.skeleton-play .play-deck .live-message{padding:4px;min-height:0;flex:none}.skeleton-play .play-deck #touch-controls{grid-template-columns:1fr;min-height:104px;width:100%;flex:none}.skeleton-play #touch-controls .engine-control{min-height:48px;padding:5px 2px;font-size:22px}}

.skeleton-play #touch-controls [data-action=right]{background:#f5cf77}.skeleton-contacts{font-size:12px;line-height:1.5;color:#c7dfe4}.skeleton-contacts strong{font:25px FestivalTitle,sans-serif;color:#f5cf77}


.skeleton-section-scrapes{margin:0;font-size:12px;line-height:1.5;color:#c7dfe4;text-align:left}.skeleton-section-scrapes strong{font:24px FestivalTitle,sans-serif;color:#f5cf77}.skeleton-section-head{margin-bottom:5px}

@media(max-width:720px){.skeleton-results .result-actions{grid-template-columns:minmax(0,1fr)}.skeleton-results .result-actions .btn{width:100%;min-width:0;min-height:48px;white-space:normal}}

/* End Skeleton UI */

/* Bobsleigh keeps launch and steering controls in three stable positions. */
.bobsleigh-brief .sport-title h1{font-size:clamp(38px,5.5vw,66px)}.bobsleigh-lessons li{line-height:1.55}.bobsleigh-rule,.bobsleigh-note{font-size:12px;line-height:1.5;color:#c7dfe4}.bobsleigh-brief .brief-buttons .btn{min-height:44px}.bobsleigh-results>*{min-width:0}.bobsleigh-results .result-table{table-layout:fixed}.bobsleigh-results .result-table th:first-child{width:34px}.bobsleigh-results .result-table th:last-child{width:82px}.bobsleigh-results .result-table th,.bobsleigh-results .result-table td{padding-left:5px;padding-right:5px}.bobsleigh-results .trainer-cell{min-width:0;gap:6px}.bobsleigh-results .trainer-cell>span{min-width:0;overflow-wrap:anywhere}.bobsleigh-results .result-score{white-space:normal;overflow-wrap:anywhere}.bobsleigh-sections{display:grid;gap:10px;margin:18px 0 12px}.bobsleigh-section{padding:10px;background:#35576d;min-width:0}.bobsleigh-section-head{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:8px;text-align:left}.bobsleigh-section-head h2{font:26px FestivalTitle,sans-serif;margin:0;color:#a0e8d7}.bobsleigh-section-head strong{font:29px FestivalTitle,sans-serif;color:#fff3d8}.bobsleigh-section-head small{font-size:9px;color:#bddbdc}.bobsleigh-passport{font-size:13px;color:inherit}
.bobsleigh-play #timing-cue{display:none}.bobsleigh-play .play-viewport{width:min(100%,calc((100dvh - 230px)*16/9))}.bobsleigh-play .play-viewport canvas{aspect-ratio:auto;touch-action:none}.bobsleigh-play .play-deck{min-width:0;min-height:110px;padding:8px 12px}.bobsleigh-play .play-deck #touch-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;min-width:0;max-width:510px;min-height:72px;flex:1;margin:0;touch-action:none;user-select:none}.bobsleigh-play #touch-controls .engine-control{min-width:0;width:100%;max-width:100%;min-height:72px;padding:6px 2px;font:22px/1.1 FestivalTitle,sans-serif;white-space:nowrap;color:#203951;touch-action:none}.bobsleigh-play #touch-controls [data-action=left]{background:#f5cf77}.bobsleigh-play #touch-controls .engine-control.is-held{background:#fff3d8;transform:none}.bobsleigh-play #touch-controls .engine-control:disabled{opacity:.55;white-space:normal;overflow-wrap:break-word}.bobsleigh-play .play-toolbar .btn:hover,.bobsleigh-play .play-toolbar .btn:active,.bobsleigh-play .play-toolbar .btn:focus-visible{color:#203951;background:#fff3d8}
@media(max-width:720px){.bobsleigh-brief .sport-how{grid-template-columns:1fr}.bobsleigh-brief .brief-buttons{display:grid;grid-template-columns:1fr 1fr}.bobsleigh-brief .brief-buttons .btn:first-child{grid-column:1/-1}.bobsleigh-results .finish-time{font-size:clamp(38px,12vw,70px)}.bobsleigh-play .play-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:4px}.bobsleigh-play .play-toolbar>span{grid-column:1/-1;margin:0;background:none;line-height:12px;font-size:10px}.bobsleigh-play .play-toolbar .mode-select{grid-column:1;display:flex}.bobsleigh-play .play-toolbar .mode-select button{flex:1}.bobsleigh-play .play-toolbar .btn,.bobsleigh-play .play-toolbar .mode-select button{min-height:44px;min-width:0;padding:5px 7px;font-size:10px}.bobsleigh-play .play-viewport{width:min(100%,calc((100dvh - 278px)*640/660))}.bobsleigh-play .play-deck{padding:5px 12px;gap:6px;min-height:0}.bobsleigh-play .play-deck .live-message{padding:4px;min-height:34px;min-width:0}.bobsleigh-play .play-deck #touch-controls{width:100%;max-width:none;flex:none}.bobsleigh-play #touch-controls .engine-control{font-size:20px}.bobsleigh-play .play-deck #event-status{font-size:10px}}
@media(max-height:550px) and (orientation:landscape){.bobsleigh-play{display:grid;grid-template-columns:minmax(0,1fr) 206px;gap:0 8px}.bobsleigh-play .play-toolbar{grid-column:1/-1;display:flex;flex-wrap:nowrap}.bobsleigh-play .play-toolbar>span{margin-right:auto}.bobsleigh-play .play-toolbar .btn,.bobsleigh-play .play-toolbar .mode-select button{min-height:36px;padding:5px 8px;font-size:11px}.bobsleigh-play .play-viewport{width:min(100%,calc((100dvh - 62px)*16/9));grid-column:1;align-self:center}.bobsleigh-play .play-deck{grid-column:2;flex-direction:column;justify-content:center;min-height:0;padding:4px 0;gap:8px}.bobsleigh-play .play-deck .live-message{padding:4px;min-height:0;flex:none}.bobsleigh-play .play-deck #touch-controls{grid-template-columns:1fr;min-height:104px;width:100%;flex:none}.bobsleigh-play #touch-controls .engine-control{min-height:48px;padding:5px 2px;font-size:20px}}

.bobsleigh-play #touch-controls [data-action=right]{background:#f5cf77}.bobsleigh-contacts{font-size:12px;line-height:1.5;color:#c7dfe4}.bobsleigh-contacts strong{font:25px FestivalTitle,sans-serif;color:#f5cf77}


.bobsleigh-section-scrapes{margin:0;font-size:12px;line-height:1.5;color:#c7dfe4;text-align:left}.bobsleigh-section-scrapes strong{font:24px FestivalTitle,sans-serif;color:#f5cf77}.bobsleigh-section-head{margin-bottom:5px}

@media(max-width:720px){.bobsleigh-results .result-actions{grid-template-columns:minmax(0,1fr)}.bobsleigh-results .result-actions .btn{width:100%;min-width:0;min-height:48px;white-space:normal}}

.bobsleigh-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;max-width:360px;margin:8px auto 14px;text-align:center}.bobsleigh-pair>div{min-width:0}.bobsleigh-portrait{display:flex;align-items:flex-end;justify-content:center;width:100%;height:98px}.bobsleigh-portrait img,.bobsleigh-portrait canvas{width:125px;height:98px;max-width:100%;object-fit:contain;image-rendering:pixelated}.bobsleigh-pair span{display:block;font-size:10px;color:#bddbdc;line-height:1.5}.bobsleigh-pair b{display:block;font:26px FestivalTitle,sans-serif;color:#fff3d8;overflow-wrap:anywhere;margin-top:5px}.bobsleigh-brief .bobsleigh-pair{width:100%;margin:0 0 12px}.bobsleigh-brief .bobsleigh-portrait{height:70px}.bobsleigh-brief .bobsleigh-portrait img,.bobsleigh-brief .bobsleigh-portrait canvas{width:88px;height:70px}.bobsleigh-place{font:28px FestivalTitle,sans-serif;color:#f5cf77;margin:8px 0}.bobsleigh-start{margin:15px 0 10px;padding:12px;background:#35576d}.bobsleigh-start>span{display:block;font-size:11px;color:#bddbdc}.bobsleigh-start>strong{display:block;font:38px FestivalTitle,sans-serif;color:#f5cf77;margin:3px 0}.bobsleigh-start strong small{font-size:22px}.bobsleigh-start p{margin:0;font-size:12px;line-height:1.5;color:#c7dfe4}.bobsleigh-play #touch-controls [data-action=action]{background:#a0e8d7}.bobsleigh-play #touch-controls .engine-control:disabled{line-height:1.15}.bobsleigh-results .result-actions .btn{overflow-wrap:normal}
@media(max-width:720px){.bobsleigh-brief .sport-title h1{font-size:clamp(38px,9vw,55px)}.bobsleigh-pair{gap:8px}.bobsleigh-pair b{font-size:24px}.bobsleigh-portrait{height:86px}.bobsleigh-portrait img,.bobsleigh-portrait canvas{height:86px;width:108px}.bobsleigh-brief .brief-buttons .btn{min-height:48px}.bobsleigh-play #touch-controls .engine-control:disabled{font-size:18px}}
/* End Bobsleigh UI */

/* Ski Jumping keeps lean and context controls in fixed slots through both attempts. */
.ski-athlete{display:flex;gap:12px;align-items:center;border-bottom:2px solid #547c8e;padding-bottom:10px;min-width:0}.ski-portrait{display:flex;align-items:flex-end;justify-content:center;flex:none;width:94px;height:76px}.ski-portrait img,.ski-portrait canvas{width:94px;height:76px;object-fit:contain;image-rendering:pixelated}.ski-athlete>span{font-size:11px;color:#bddbdc;min-width:0}.ski-athlete b{display:block;font:30px FestivalTitle,sans-serif;color:#fff3d8;margin-top:5px;overflow-wrap:anywhere}.ski-rule,.ski-note{font-size:12px;line-height:1.5;color:#c7dfe4}.ski-brief .brief-buttons .btn{min-height:44px}.ski-brief .sport-how li{line-height:1.5}
.ski-jump-play #timing-cue{display:none}.ski-jump-play .play-viewport{width:min(100%,calc((100dvh - 290px)*16/9))}.ski-jump-play .play-viewport canvas{aspect-ratio:auto;touch-action:none}.ski-jump-play .play-deck{min-width:0;min-height:154px;padding:8px 12px}.ski-jump-play .play-deck #touch-controls[data-layout=ski-jump]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:64px 64px;gap:8px;width:100%;max-width:440px;min-height:136px;min-width:0;margin:0;touch-action:none;user-select:none}.ski-jump-play #touch-controls[data-layout=ski-jump] [data-action=left]{grid-column:1;grid-row:1}.ski-jump-play #touch-controls[data-layout=ski-jump] [data-action=right]{grid-column:2;grid-row:1}.ski-jump-play #touch-controls[data-layout=ski-jump] [data-action=action],.ski-jump-play #touch-controls[data-layout=ski-jump] [data-action=down]{grid-column:1/-1;grid-row:2}.ski-jump-play .play-deck #touch-controls .engine-control{min-width:0;width:100%;max-width:100%;min-height:64px;padding:6px 3px;font:24px/1.1 FestivalTitle,sans-serif;white-space:normal;overflow-wrap:break-word;touch-action:none;background:#35576d;color:#fff3d8}.ski-jump-play #touch-controls [data-action=action],.ski-jump-play #touch-controls [data-action=down]{background:#a0e8d7;color:#203951}.ski-jump-play #touch-controls .engine-control.is-held{background:#fff3d8;color:#203951;transform:none}.ski-jump-play #touch-controls .engine-control:disabled{opacity:.55}.ski-jump-play .play-toolbar .btn:hover,.ski-jump-play .play-toolbar .btn:active,.ski-jump-play .play-toolbar .btn:focus-visible{background:#fff3d8;color:#203951}
.ski-results>*{min-width:0}.ski-attempts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:16px 0}.ski-attempt{min-width:0;padding:12px 7px;background:#35576d}.ski-attempt.best{outline:2px solid #f5cf77;outline-offset:-2px}.ski-attempt h2{font:25px FestivalTitle,sans-serif;color:#a0e8d7;margin:0 0 5px}.ski-attempt strong{display:block;font:34px FestivalTitle,sans-serif;color:#fff3d8}.ski-attempt p{font-size:11px;line-height:1.5;overflow-wrap:anywhere;color:#c7dfe4;margin:7px 0}.ski-attempt small{font-size:10px;color:#f5cf77}.ski-results .result-table{table-layout:fixed}.ski-results .result-table th:first-child{width:34px}.ski-results .result-table th:last-child{width:82px}.ski-results .result-table th,.ski-results .result-table td{padding-left:5px;padding-right:5px}.ski-results .trainer-cell{min-width:0;gap:6px}.ski-results .trainer-cell>span{min-width:0;overflow-wrap:anywhere}.ski-results .result-score{white-space:normal;overflow-wrap:anywhere}.ski-results .result-actions .btn{overflow-wrap:normal}
@media(max-width:720px){.ski-brief .sport-how{grid-template-columns:minmax(0,1fr)}.ski-brief .brief-buttons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.ski-brief .brief-buttons .btn{min-width:0;min-height:48px}.ski-brief .brief-buttons .btn:first-child{grid-column:1/-1}.ski-jump-play .play-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:4px}.ski-jump-play .play-toolbar>span{grid-column:1/-1;justify-self:start;margin:0;padding:2px 7px;background:#203951;color:#fff3d8;font-size:10px;line-height:12px}.ski-jump-play .play-toolbar .mode-select{grid-column:1;display:flex}.ski-jump-play .play-toolbar .mode-select button{flex:1}.ski-jump-play .play-toolbar .btn,.ski-jump-play .play-toolbar .mode-select button{min-height:44px;min-width:0;padding:5px 7px;font-size:10px}.ski-jump-play .play-viewport{width:min(100%,calc((100dvh - 345px)*640/660))}.ski-jump-play .play-deck{padding:5px 12px;gap:6px;min-height:0}.ski-jump-play .play-deck .live-message{padding:4px;min-height:34px;min-width:0}.ski-jump-play .play-deck #touch-controls[data-layout=ski-jump]{width:100%;max-width:none;flex:none}.ski-jump-play .play-deck #event-status{font-size:10px}.ski-jump-play .play-deck #touch-controls .engine-control{font-size:22px}.ski-results .winner-athlete{height:110px;gap:8px}.ski-results .winner-athlete img,.ski-results .winner-athlete canvas{width:130px;height:105px;max-width:55%;object-fit:contain}.ski-results .winner-athlete>b{font-size:50px;padding:0 10px 5px}.ski-attempts{gap:8px}.ski-attempt strong{font-size:30px}.ski-results .result-actions{grid-template-columns:minmax(0,1fr)}.ski-results .result-actions .btn{width:100%;min-width:0;min-height:48px;white-space:normal}}
@media(max-height:550px) and (orientation:landscape){.ski-jump-play .play-toolbar{display:flex;flex-wrap:nowrap}.ski-jump-play .play-toolbar>span{margin-right:auto}.ski-jump-play .play-toolbar .btn,.ski-jump-play .play-toolbar .mode-select button{min-height:36px;padding:5px 8px;font-size:11px}.ski-jump-play .play-viewport{width:min(100%,calc((100dvh - 116px)*16/9))}.ski-jump-play .play-deck{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,430px);gap:8px;min-height:54px;padding:3px 12px}.ski-jump-play .play-deck .live-message{padding:4px;min-height:0}.ski-jump-play .play-deck #touch-controls[data-layout=ski-jump]{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:48px;min-height:48px;width:100%;max-width:none}.ski-jump-play #touch-controls[data-layout=ski-jump] [data-action=left]{grid-column:1;grid-row:1}.ski-jump-play #touch-controls[data-layout=ski-jump] [data-action=action],.ski-jump-play #touch-controls[data-layout=ski-jump] [data-action=down]{grid-column:2;grid-row:1}.ski-jump-play #touch-controls[data-layout=ski-jump] [data-action=right]{grid-column:3;grid-row:1}.ski-jump-play .play-deck #touch-controls .engine-control{min-height:48px;padding:3px 2px;font-size:18px;line-height:1.1}}
/* End Ski Jumping UI */

/* Hurdles keeps one stable jump target and eight honest result cards. */
.hurdles-athlete{display:flex;align-items:center;gap:12px;min-width:0;border-bottom:2px solid #547c8e;padding-bottom:10px}.hurdles-athlete>span{display:flex;flex-direction:column;gap:5px;min-width:0;font:12px Festival,sans-serif;color:#a9d8e1}.hurdles-athlete b{font:30px/1.05 FestivalTitle,sans-serif;color:#fff3d8;overflow-wrap:anywhere}.hurdles-portrait{position:relative;flex:0 0 98px;height:86px}.hurdles-portrait img,.hurdles-portrait canvas{position:absolute;inset:0;width:98px;height:86px;object-fit:contain;image-rendering:pixelated}.hurdles-rule{font-size:13px;line-height:1.45;color:#c7dfe4;margin:12px 0 17px}.hurdles-rule b{color:#fff3d8}.hurdles-brief .brief-buttons .btn{min-height:48px}
.hurdles-play .play-viewport{width:min(100%,calc((100dvh - 242px)*16/9))}.hurdles-play .play-viewport canvas{aspect-ratio:auto;touch-action:none}.hurdles-play #timing-cue{display:none}.hurdles-play .play-deck{min-height:90px;padding:8px 12px;gap:12px}.hurdles-play .play-deck #touch-controls{display:flex;min-width:0;width:100%;max-width:440px;margin:0;flex:1;min-height:72px}.hurdles-play .play-deck #touch-controls .engine-control{width:100%;max-width:none;min-width:0;min-height:72px;padding:8px 6px;font:28px/1.1 FestivalTitle,sans-serif;white-space:normal;overflow-wrap:break-word;touch-action:none;background:#f5cf77;color:#203951;border-color:#fff3d8}.hurdles-play #touch-controls .engine-control.is-held{background:#fff3d8;transform:none}.hurdles-play #touch-controls .engine-control.shot-ready,.hurdles-play #touch-controls .engine-control.hurdles-ready{background:#8bddc9;color:#203951}.hurdles-play #touch-controls .engine-control:disabled{opacity:.65}.hurdles-play .play-toolbar .btn:hover,.hurdles-play .play-toolbar .btn:active,.hurdles-play .play-toolbar .btn:focus-visible{color:#203951;background:#fff3d8}
.hurdles-race-results>*{min-width:0}.hurdles-race-results .finish-time{overflow-wrap:anywhere}.hurdles-note{font-size:13px;line-height:1.45;color:#c7dfe4;margin:12px 0}.hurdles-recap{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:0;margin:17px 0;list-style:none}.hurdle-result{display:flex;flex-direction:column;justify-content:center;gap:5px;min-width:0;padding:10px 3px;border:2px solid #7697a5;background:#2c4a60}.hurdle-result span{font-size:10px;line-height:1.2;color:#c7dfe4}.hurdle-result b{font:23px/1.05 FestivalTitle,sans-serif;color:#fff3d8}.hurdle-result.clear{border-color:#8bddc9}.hurdle-result.clear b{color:#8bddc9}.hurdle-result.clip{border-color:#f5cf77}.hurdle-result.clip b{color:#f5cf77}.hurdle-result.trip{border-color:#ee826a}.hurdle-result.trip b{color:#ffb09c}.hurdle-result.not-reached b{font-size:17px;color:#c7dfe4}.hurdles-race-results .result-table{min-width:0;table-layout:fixed}.hurdles-race-results .result-table th:first-child{width:36px}.hurdles-race-results .result-table th:last-child{width:90px}.hurdles-race-results .result-table .trainer-cell{min-width:0;overflow-wrap:anywhere}.hurdles-race-results .result-table .result-score{white-space:normal;overflow-wrap:anywhere}.hurdles-race-results .result-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.hurdles-race-results .result-actions .btn{min-width:0;min-height:48px;white-space:normal;line-height:1.1;padding:9px 5px}.hurdles-race-results .result-actions .btn-primary{grid-column:1/-1}
@media(max-width:720px){.hurdles-brief .sport-how{grid-template-columns:1fr}.hurdles-brief .sport-how li{font-size:13px}.hurdles-brief .brief-buttons{display:grid;grid-template-columns:1fr 1fr}.hurdles-brief .brief-buttons .btn:first-child{grid-column:1/-1}.hurdles-rule{margin:0 0 6px}.hurdles-play .play-toolbar{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr);gap:5px;padding:5px 8px}.hurdles-play .play-toolbar>span{grid-column:1/-1;justify-self:start;margin:0;padding:2px 7px;background:#203951;color:#fff3d8;font-size:10px;line-height:12px}.hurdles-play .play-toolbar .mode-select{display:flex;min-width:0}.hurdles-play .play-toolbar .mode-select button{flex:1}.hurdles-play .play-toolbar .btn,.hurdles-play .play-toolbar .mode-select button{min-width:0;min-height:44px;padding:5px 3px;font-size:11px}.hurdles-play .play-viewport{width:min(100%,calc((100dvh - 285px)*640/660))}.hurdles-play .play-deck{min-height:0;padding:5px 12px;gap:5px}.hurdles-play .play-deck .live-message{padding:5px;min-height:42px}.hurdles-play .play-deck #event-cue{font-size:23px}.hurdles-play .play-deck #event-status{font-size:10px}.hurdles-play .play-deck #touch-controls{max-width:none;min-height:72px}.hurdles-play .play-deck #touch-controls .engine-control{min-height:72px;font-size:26px}.hurdles-recap{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin:13px 0}.hurdle-result{padding:9px 4px}.hurdle-result b{font-size:25px}.hurdle-result.not-reached b{font-size:19px}.hurdles-race-results .winner-athlete{height:112px;gap:8px}.hurdles-race-results .winner-athlete img,.hurdles-race-results .winner-athlete canvas{width:130px;max-width:55%;height:105px;object-fit:contain}.hurdles-race-results .winner-athlete>b{font-size:50px;padding:0 10px 4px}.hurdles-race-results .result-actions{grid-template-columns:1fr}.hurdles-race-results .race-classification .result-table td{padding:8px 6px}.hurdles-race-results .race-classification .trainer-cell{font-size:15px}.hurdles-race-results .race-classification .result-score{font-size:19px}}
@media(max-height:550px) and (orientation:landscape){.hurdles-play .play-toolbar{display:flex;flex-wrap:nowrap;padding:4px 8px}.hurdles-play .play-toolbar>span{margin-right:auto}.hurdles-play .play-toolbar .btn,.hurdles-play .play-toolbar .mode-select button{min-height:36px;padding:5px 8px;font-size:11px}.hurdles-play .play-viewport{width:min(100%,calc((100dvh - 178px)*16/9))}.hurdles-play .play-deck{flex-direction:row;min-height:58px;padding:4px 12px;gap:10px}.hurdles-play .play-deck .live-message{flex:1;min-height:42px}.hurdles-play .play-deck #event-cue{font-size:20px}.hurdles-play .play-deck #touch-controls{min-height:48px;max-width:340px;flex:1}.hurdles-play .play-deck #touch-controls .engine-control{min-height:48px;font-size:22px}}
/* End Hurdles UI */

/* Freestyle keeps two stable stroke targets and two actual split times. */
.swimming-athlete{display:flex;align-items:center;gap:12px;min-width:0;border-bottom:2px solid #547c8e;padding-bottom:10px}.swimming-athlete>span{display:flex;flex-direction:column;gap:5px;min-width:0;font:12px Festival,sans-serif;color:#a9d8e1}.swimming-athlete b{font:30px/1.05 FestivalTitle,sans-serif;color:#fff3d8;overflow-wrap:anywhere}.swimming-portrait{position:relative;flex:0 0 98px;height:86px}.swimming-portrait img,.swimming-portrait canvas{position:absolute;inset:0;width:98px;height:86px;object-fit:contain;image-rendering:pixelated}.swimming-rule{font-size:13px;line-height:1.45;color:#c7dfe4;margin:12px 0 17px}.swimming-rule b{color:#fff3d8}.swimming-brief .brief-buttons .btn{min-height:48px}
.swimming-play .play-viewport{width:min(100%,calc((100dvh - 242px)*16/9))}.swimming-play .play-viewport canvas{aspect-ratio:auto;touch-action:none}.swimming-play #timing-cue{display:none}.swimming-play .play-deck{min-height:90px;padding:8px 12px;gap:12px}.swimming-play .play-deck #touch-controls[data-layout=swimming]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));min-width:0;width:100%;max-width:540px;margin:0;flex:1;gap:10px;min-height:72px}.swimming-play #touch-controls[data-layout=swimming] [data-action=left]{grid-column:1}.swimming-play #touch-controls[data-layout=swimming] [data-action=right]{grid-column:2}.swimming-play .play-deck #touch-controls .engine-control{width:100%;max-width:none;min-width:0;min-height:72px;padding:8px 4px;font:28px/1.1 FestivalTitle,sans-serif;white-space:normal;overflow-wrap:break-word;touch-action:none}.swimming-play .play-toolbar .btn:hover,.swimming-play .play-toolbar .btn:active,.swimming-play .play-toolbar .btn:focus-visible{color:#203951;background:#fff3d8}
.swimming-results>*{min-width:0}.swimming-results .finish-time{overflow-wrap:anywhere}.swimming-note{font-size:13px;line-height:1.45;color:#c7dfe4;margin:12px 0}.swimming-splits{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:0;margin:17px 0;list-style:none}.swimming-split{display:flex;flex-direction:column;justify-content:center;gap:6px;min-width:0;padding:12px 5px;border:2px solid #7697a5;background:#2c4a60}.swimming-split span,.swimming-split small{font-size:11px;line-height:1.3;color:#c7dfe4}.swimming-split b{font:30px/1.05 FestivalTitle,sans-serif;color:#fff3d8}.swimming-split.complete{border-color:#8bddc9}.swimming-split.complete b{color:#8bddc9}.swimming-split.partial{border-color:#f5cf77}.swimming-split.not-reached b{font-size:22px;color:#c7dfe4}.swimming-results .result-table{min-width:0;table-layout:fixed}.swimming-results .result-table th:first-child{width:36px}.swimming-results .result-table th:last-child{width:90px}.swimming-results .result-table .trainer-cell{min-width:0;overflow-wrap:anywhere}.swimming-results .result-table .result-score{white-space:normal;overflow-wrap:anywhere}.swimming-results .result-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.swimming-results .result-actions .btn{min-width:0;min-height:48px;white-space:normal;line-height:1.1;padding:9px 5px}.swimming-results .result-actions .btn-primary{grid-column:1/-1}
@media(max-width:720px){.swimming-brief .sport-how{grid-template-columns:1fr}.swimming-brief .sport-how li{font-size:13px}.swimming-brief .brief-buttons{display:grid;grid-template-columns:1fr 1fr}.swimming-brief .brief-buttons .btn:first-child{grid-column:1/-1}.swimming-rule{margin:0 0 6px}.swimming-play .play-toolbar{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr);gap:5px;padding:5px 8px}.swimming-play .play-toolbar>span{grid-column:1/-1;justify-self:start;margin:0;padding:2px 7px;background:#203951;color:#fff3d8;font-size:10px;line-height:12px}.swimming-play .play-toolbar .mode-select{display:flex;min-width:0}.swimming-play .play-toolbar .mode-select button{flex:1}.swimming-play .play-toolbar .btn,.swimming-play .play-toolbar .mode-select button{min-width:0;min-height:44px;padding:5px 3px;font-size:11px}.swimming-play .play-viewport{width:min(100%,calc((100dvh - 285px)*640/660))}.swimming-play .play-deck{min-height:0;padding:5px 12px;gap:5px}.swimming-play .play-deck .live-message{padding:5px;min-height:42px}.swimming-play .play-deck #event-cue{font-size:23px}.swimming-play .play-deck #event-status{font-size:10px}.swimming-play .play-deck #touch-controls[data-layout=swimming]{max-width:none;min-height:72px;width:100%;flex:none}.swimming-play .play-deck #touch-controls .engine-control{min-height:72px;font-size:26px}.swimming-splits{gap:7px;margin:13px 0}.swimming-split{padding:10px 4px}.swimming-split b{font-size:28px}.swimming-split small{font-size:10px}.swimming-split.not-reached b{font-size:20px}.swimming-results .winner-athlete{height:112px;gap:8px}.swimming-results .winner-athlete img,.swimming-results .winner-athlete canvas{width:130px;max-width:55%;height:105px;object-fit:contain}.swimming-results .winner-athlete>b{font-size:50px;padding:0 10px 4px}.swimming-results .result-actions{grid-template-columns:1fr}.swimming-results .race-classification .result-table td{padding:8px 6px}.swimming-results .race-classification .trainer-cell{font-size:15px}.swimming-results .race-classification .result-score{font-size:19px}}
@media(max-height:550px) and (orientation:landscape){.swimming-play .play-toolbar{display:flex;flex-wrap:nowrap;padding:4px 8px}.swimming-play .play-toolbar>span{margin-right:auto}.swimming-play .play-toolbar .btn,.swimming-play .play-toolbar .mode-select button{min-height:36px;padding:5px 8px;font-size:11px}.swimming-play .play-viewport{width:min(100%,calc((100dvh - 178px)*16/9))}.swimming-play .play-deck{flex-direction:row;min-height:58px;padding:4px 12px;gap:10px}.swimming-play .play-deck .live-message{flex:1;min-height:42px}.swimming-play .play-deck #event-cue{font-size:20px}.swimming-play .play-deck #touch-controls[data-layout=swimming]{min-height:48px;max-width:340px;flex:1}.swimming-play .play-deck #touch-controls .engine-control{min-height:48px;font-size:22px;padding:4px 2px}}
/* End Freestyle UI */

/* Long Jump keeps RUN, JUMP and LAND in three stable slots. */
.long-athlete{display:flex;align-items:center;gap:12px;min-width:0;border-bottom:2px solid #547c8e;padding-bottom:10px}.long-athlete>span{display:flex;flex-direction:column;gap:5px;min-width:0;font:12px Festival,sans-serif;color:#a9d8e1}.long-athlete b{font:30px/1.05 FestivalTitle,sans-serif;color:#fff3d8;overflow-wrap:anywhere}.long-portrait{position:relative;flex:0 0 98px;height:86px}.long-portrait img,.long-portrait canvas{position:absolute;inset:0;width:98px;height:86px;object-fit:contain;image-rendering:pixelated}.long-rule,.long-note{font-size:13px;line-height:1.45;color:#c7dfe4;margin:12px 0 17px}.long-brief .brief-buttons .btn{min-height:48px}
.long-jump-play .play-viewport{width:min(100%,calc((100dvh - 242px)*16/9))}.long-jump-play .play-viewport canvas{aspect-ratio:auto;touch-action:none}.long-jump-play #timing-cue{display:none}.long-jump-play .play-deck{min-height:90px;padding:8px 12px;gap:12px}.long-jump-play .play-deck #touch-controls[data-layout=long-jump]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));min-width:0;width:100%;max-width:540px;margin:0;flex:1;gap:8px;min-height:72px}.long-jump-play #touch-controls[data-layout=long-jump] [data-action=action]{grid-column:1}.long-jump-play #touch-controls[data-layout=long-jump] [data-action=up]{grid-column:2}.long-jump-play #touch-controls[data-layout=long-jump] [data-action=down]{grid-column:3}.long-jump-play .play-deck #touch-controls .engine-control{width:100%;max-width:none;min-width:0;min-height:72px;padding:8px 3px;font:28px/1.1 FestivalTitle,sans-serif;white-space:normal;overflow-wrap:break-word;touch-action:none}.long-jump-play .play-toolbar .btn:hover,.long-jump-play .play-toolbar .btn:active,.long-jump-play .play-toolbar .btn:focus-visible{color:#203951;background:#fff3d8}
.long-results>*{min-width:0}.long-results .finish-time{overflow-wrap:anywhere}.long-attempts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:17px 0}.long-attempt{display:flex;flex-direction:column;justify-content:center;gap:6px;min-width:0;padding:12px 5px;border:2px solid #7697a5;background:#2c4a60}.long-attempt h2,.long-attempt small{font:12px/1.3 Festival,sans-serif;color:#c7dfe4;margin:0}.long-attempt strong{font:32px/1.05 FestivalTitle,sans-serif;color:#fff3d8}.long-attempt p{font-size:12px;line-height:1.4;margin:0;overflow-wrap:anywhere}.long-attempt.best{border-color:#f5cf77}.long-attempt.best strong,.long-attempt.best small{color:#f5cf77}.long-results .result-table{min-width:0;table-layout:fixed}.long-results .result-table th:first-child{width:36px}.long-results .result-table th:last-child{width:90px}.long-results .result-table .trainer-cell{min-width:0;overflow-wrap:anywhere}.long-results .result-table .result-score{white-space:normal;overflow-wrap:anywhere}.long-results .result-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.long-results .result-actions .btn{min-width:0;min-height:48px;white-space:normal;line-height:1.1;padding:9px 5px}.long-results .result-actions .btn-primary{grid-column:1/-1}
@media(max-width:720px){.long-brief .sport-how{grid-template-columns:1fr}.long-brief .sport-how li{font-size:13px}.long-brief .brief-buttons{display:grid;grid-template-columns:1fr 1fr}.long-brief .brief-buttons .btn:first-child{grid-column:1/-1}.long-rule{margin:0 0 6px}.long-jump-play .play-toolbar{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr);gap:5px;padding:5px 8px}.long-jump-play .play-toolbar>span{grid-column:1/-1;justify-self:start;margin:0;padding:2px 7px;background:#203951;color:#fff3d8;font-size:10px;line-height:12px}.long-jump-play .play-toolbar .mode-select{display:flex;min-width:0}.long-jump-play .play-toolbar .mode-select button{flex:1}.long-jump-play .play-toolbar .btn,.long-jump-play .play-toolbar .mode-select button{min-width:0;min-height:44px;padding:5px 3px;font-size:11px}.long-jump-play .play-viewport{width:min(100%,calc((100dvh - 285px)*640/660))}.long-jump-play .play-deck{min-height:0;padding:5px 12px;gap:5px}.long-jump-play .play-deck .live-message{padding:5px;min-height:42px}.long-jump-play .play-deck #event-cue{font-size:23px}.long-jump-play .play-deck #event-status{font-size:10px}.long-jump-play .play-deck #touch-controls[data-layout=long-jump]{max-width:none;min-height:72px;width:100%;flex:none}.long-jump-play .play-deck #touch-controls .engine-control{min-height:72px;font-size:25px}.long-attempts{gap:7px;margin:13px 0}.long-attempt{padding:10px 4px}.long-attempt strong{font-size:28px}.long-attempt p,.long-attempt small{font-size:11px}.long-results .winner-athlete{height:112px;gap:8px}.long-results .winner-athlete img,.long-results .winner-athlete canvas{width:130px;max-width:55%;height:105px;object-fit:contain}.long-results .winner-athlete>b{font-size:50px;padding:0 10px 4px}.long-results .result-actions{grid-template-columns:1fr}.long-results .race-classification .result-table td{padding:8px 6px}.long-results .race-classification .trainer-cell{font-size:15px}.long-results .race-classification .result-score{font-size:19px}}
@media(max-height:550px) and (orientation:landscape){.long-jump-play .play-toolbar{display:flex;flex-wrap:nowrap;padding:4px 8px}.long-jump-play .play-toolbar>span{margin-right:auto}.long-jump-play .play-toolbar .btn,.long-jump-play .play-toolbar .mode-select button{min-height:36px;padding:5px 8px;font-size:11px}.long-jump-play .play-viewport{width:min(100%,calc((100dvh - 178px)*16/9))}.long-jump-play .play-deck{flex-direction:row;min-height:58px;padding:4px 12px;gap:10px}.long-jump-play .play-deck .live-message{flex:1;min-height:42px}.long-jump-play .play-deck #event-cue{font-size:20px}.long-jump-play .play-deck #touch-controls[data-layout=long-jump]{min-height:48px;max-width:360px;flex:1}.long-jump-play .play-deck #touch-controls .engine-control{min-height:48px;font-size:21px;padding:4px 2px}}
/* End Long Jump UI */

/* High Jump keeps CROUCH and ARCH in two stable slots. */
.high-athlete{display:flex;align-items:center;gap:12px;min-width:0;border-bottom:2px solid #547c8e;padding-bottom:10px}.high-athlete>span{display:flex;flex-direction:column;gap:5px;min-width:0;font:12px Festival,sans-serif;color:#a9d8e1}.high-athlete b{font:30px/1.05 FestivalTitle,sans-serif;color:#fff3d8;overflow-wrap:anywhere}.high-portrait{position:relative;flex:0 0 98px;height:86px}.high-portrait img,.high-portrait canvas{position:absolute;inset:0;width:98px;height:86px;object-fit:contain;image-rendering:pixelated}.high-rule,.high-note{font-size:13px;line-height:1.45;color:#c7dfe4;margin:12px 0 17px}.high-brief .brief-buttons .btn{min-height:48px}
.high-jump-play .play-viewport{width:min(100%,calc((100dvh - 242px)*16/9))}.high-jump-play .play-viewport canvas{aspect-ratio:auto;touch-action:none}.high-jump-play #timing-cue{display:none}.high-jump-play .play-deck{min-height:90px;padding:8px 12px;gap:12px}.high-jump-play .play-deck #touch-controls[data-layout=high-jump]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));min-width:0;width:100%;max-width:540px;margin:0;flex:1;gap:8px;min-height:72px}.high-jump-play #touch-controls[data-layout=high-jump] [data-action=action]{grid-column:1}.high-jump-play #touch-controls[data-layout=high-jump] [data-action=right]{grid-column:2}.high-jump-play .play-deck #touch-controls .engine-control{width:100%;max-width:none;min-width:0;min-height:72px;padding:8px 3px;font:28px/1.1 FestivalTitle,sans-serif;white-space:normal;overflow-wrap:break-word;touch-action:none}.high-jump-play .play-toolbar .btn:hover,.high-jump-play .play-toolbar .btn:active,.high-jump-play .play-toolbar .btn:focus-visible{color:#203951;background:#fff3d8}
.high-results>*{min-width:0}.high-results .finish-time{overflow-wrap:anywhere}.high-attempts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:17px 0}.high-attempt{display:flex;flex-direction:column;justify-content:center;gap:6px;min-width:0;padding:12px 5px;border:2px solid #7697a5;background:#2c4a60}.high-attempt h2,.high-attempt small{font:12px/1.3 Festival,sans-serif;color:#c7dfe4;margin:0}.high-attempt strong{font:32px/1.05 FestivalTitle,sans-serif;color:#fff3d8}.high-attempt p{font-size:12px;line-height:1.4;margin:0;overflow-wrap:anywhere}.high-attempt.best{border-color:#f5cf77}.high-attempt.best strong,.high-attempt.best small{color:#f5cf77}.high-results .result-table{min-width:0;table-layout:fixed}.high-results .result-table th:first-child{width:36px}.high-results .result-table th:last-child{width:90px}.high-results .result-table .trainer-cell{min-width:0;overflow-wrap:anywhere}.high-results .result-table .result-score{white-space:normal;overflow-wrap:anywhere}.high-results .result-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.high-results .result-actions .btn{min-width:0;min-height:48px;white-space:normal;line-height:1.1;padding:9px 5px}.high-results .result-actions .btn-primary{grid-column:1/-1}
@media(max-width:720px){.high-brief .sport-how{grid-template-columns:1fr}.high-brief .sport-how li{font-size:13px}.high-brief .brief-buttons{display:grid;grid-template-columns:1fr 1fr}.high-brief .brief-buttons .btn:first-child{grid-column:1/-1}.high-rule{margin:0 0 6px}.high-jump-play .play-toolbar{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr);gap:5px;padding:5px 8px}.high-jump-play .play-toolbar>span{grid-column:1/-1;justify-self:start;margin:0;padding:2px 7px;background:#203951;color:#fff3d8;font-size:10px;line-height:12px}.high-jump-play .play-toolbar .mode-select{display:flex;min-width:0}.high-jump-play .play-toolbar .mode-select button{flex:1}.high-jump-play .play-toolbar .btn,.high-jump-play .play-toolbar .mode-select button{min-width:0;min-height:44px;padding:5px 3px;font-size:11px}.high-jump-play .play-viewport{width:min(100%,calc((100dvh - 285px)*640/760))}.high-jump-play .play-deck{min-height:0;padding:5px 12px;gap:5px}.high-jump-play .play-deck .live-message{padding:5px;min-height:42px}.high-jump-play .play-deck #event-cue{font-size:23px}.high-jump-play .play-deck #event-status{font-size:10px}.high-jump-play .play-deck #touch-controls[data-layout=high-jump]{max-width:none;min-height:72px;width:100%;flex:none}.high-jump-play .play-deck #touch-controls .engine-control{min-height:72px;font-size:25px}.high-attempts{gap:7px;margin:13px 0}.high-attempt{padding:10px 4px}.high-attempt strong{font-size:28px}.high-attempt p,.high-attempt small{font-size:11px}.high-results .winner-athlete{height:112px;gap:8px}.high-results .winner-athlete img,.high-results .winner-athlete canvas{width:130px;max-width:55%;height:105px;object-fit:contain}.high-results .winner-athlete>b{font-size:50px;padding:0 10px 4px}.high-results .result-actions{grid-template-columns:1fr}.high-results .race-classification .result-table td{padding:8px 6px}.high-results .race-classification .trainer-cell{font-size:15px}.high-results .race-classification .result-score{font-size:19px}}
@media(max-height:550px) and (orientation:landscape){.high-jump-play .play-toolbar{display:flex;flex-wrap:nowrap;padding:4px 8px}.high-jump-play .play-toolbar>span{margin-right:auto}.high-jump-play .play-toolbar .btn,.high-jump-play .play-toolbar .mode-select button{min-height:36px;padding:5px 8px;font-size:11px}.high-jump-play .play-viewport{width:min(100%,calc((100dvh - 178px)*16/9))}.high-jump-play .play-deck{flex-direction:row;min-height:58px;padding:4px 12px;gap:10px}.high-jump-play .play-deck .live-message{flex:1;min-height:42px}.high-jump-play .play-deck #event-cue{font-size:20px}.high-jump-play .play-deck #touch-controls[data-layout=high-jump]{min-height:48px;max-width:360px;flex:1}.high-jump-play .play-deck #touch-controls .engine-control{min-height:48px;font-size:21px;padding:4px 2px}}
@media(max-width:420px){.high-attempts{grid-template-columns:1fr}.high-attempt{display:grid;grid-template-columns:64px minmax(0,1fr);gap:4px 8px;text-align:left;padding:10px}.high-attempt h2{grid-column:1;grid-row:1/4;align-self:center}.high-attempt strong,.high-attempt p,.high-attempt small{grid-column:2}.high-attempt strong{font-size:30px}}
/* End High Jump UI */


/* Shot Put keeps one stable COIL control through both throws. */
.shot-put-athlete{display:flex;align-items:center;gap:12px;min-width:0;border-bottom:2px solid #547c8e;padding-bottom:10px}.shot-put-athlete>span{display:flex;flex-direction:column;gap:5px;min-width:0;font:12px Festival,sans-serif;color:#a9d8e1}.shot-put-athlete b{font:30px/1.05 FestivalTitle,sans-serif;color:#fff3d8;overflow-wrap:anywhere}.shot-put-portrait{position:relative;flex:0 0 98px;height:86px}.shot-put-portrait img,.shot-put-portrait canvas{position:absolute;inset:0;width:98px;height:86px;object-fit:contain;image-rendering:pixelated}.shot-put-rule,.shot-put-note{font-size:13px;line-height:1.45;color:#c7dfe4;margin:12px 0 17px}.shot-brief .brief-buttons .btn{min-height:48px}
.shot-put-play .play-viewport{width:min(100%,calc((100dvh - 242px)*16/9))}.shot-put-play .play-viewport canvas{aspect-ratio:auto;touch-action:none}.shot-put-play #timing-cue{display:none}.shot-put-play .play-deck{min-height:90px;padding:8px 12px;gap:12px}.shot-put-play .play-deck #touch-controls[data-layout=shot-put]{display:grid;grid-template-columns:minmax(0,1fr);min-width:0;width:100%;max-width:440px;margin:0;flex:1;gap:8px;min-height:72px}.shot-put-play #touch-controls[data-layout=shot-put] [data-action=action]{grid-column:1}.shot-put-play .play-deck #touch-controls .engine-control{width:100%;max-width:none;min-width:0;min-height:72px;padding:8px 3px;font:28px/1.1 FestivalTitle,sans-serif;white-space:normal;overflow-wrap:break-word;touch-action:none}.shot-put-play .play-toolbar .btn:hover,.shot-put-play .play-toolbar .btn:active,.shot-put-play .play-toolbar .btn:focus-visible{color:#203951;background:#fff3d8}
.shot-put-results>*{min-width:0}.shot-put-results .finish-time{overflow-wrap:anywhere}.shot-put-attempts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:17px 0}.shot-put-attempt{display:flex;flex-direction:column;justify-content:center;gap:6px;min-width:0;padding:12px 5px;border:2px solid #7697a5;background:#2c4a60}.shot-put-attempt h2,.shot-put-attempt small{font:12px/1.3 Festival,sans-serif;color:#c7dfe4;margin:0}.shot-put-attempt strong{font:32px/1.05 FestivalTitle,sans-serif;color:#fff3d8}.shot-put-attempt p{font-size:12px;line-height:1.4;margin:0;overflow-wrap:anywhere}.shot-put-attempt.best{border-color:#f5cf77}.shot-put-attempt.best strong,.shot-put-attempt.best small{color:#f5cf77}.shot-put-results .result-table{min-width:0;table-layout:fixed}.shot-put-results .result-table th:first-child{width:36px}.shot-put-results .result-table th:last-child{width:90px}.shot-put-results .result-table .trainer-cell{min-width:0;overflow-wrap:anywhere}.shot-put-results .result-table .result-score{white-space:normal;overflow-wrap:anywhere}.shot-put-results .result-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.shot-put-results .result-actions .btn{min-width:0;min-height:48px;white-space:normal;line-height:1.1;padding:9px 5px}.shot-put-results .result-actions .btn-primary{grid-column:1/-1}
@media(max-width:720px){.shot-brief .sport-how{grid-template-columns:1fr}.shot-brief .sport-how li{font-size:13px}.shot-brief .brief-buttons{display:grid;grid-template-columns:1fr 1fr}.shot-brief .brief-buttons .btn:first-child{grid-column:1/-1}.shot-put-rule{margin:0 0 6px}.shot-put-play .play-toolbar{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr);gap:5px;padding:5px 8px}.shot-put-play .play-toolbar>span{grid-column:1/-1;justify-self:start;margin:0;padding:2px 7px;background:#203951;color:#fff3d8;font-size:10px;line-height:12px}.shot-put-play .play-toolbar .mode-select{display:flex;min-width:0}.shot-put-play .play-toolbar .mode-select button{flex:1}.shot-put-play .play-toolbar .btn,.shot-put-play .play-toolbar .mode-select button{min-width:0;min-height:44px;padding:5px 3px;font-size:11px}.shot-put-play .play-viewport{width:min(100%,calc((100dvh - 285px)*640/660))}.shot-put-play .play-deck{min-height:0;padding:5px 12px;gap:5px}.shot-put-play .play-deck .live-message{padding:5px;min-height:42px}.shot-put-play .play-deck #event-cue{font-size:23px}.shot-put-play .play-deck #event-status{font-size:10px}.shot-put-play .play-deck #touch-controls[data-layout=shot-put]{max-width:none;min-height:72px;width:100%;flex:none}.shot-put-play .play-deck #touch-controls .engine-control{min-height:72px;font-size:25px}.shot-put-attempts{gap:7px;margin:13px 0}.shot-put-attempt{padding:10px 4px}.shot-put-attempt strong{font-size:28px}.shot-put-attempt p,.shot-put-attempt small{font-size:11px}.shot-put-results .winner-athlete{height:112px;gap:8px}.shot-put-results .winner-athlete img,.shot-put-results .winner-athlete canvas{width:130px;max-width:55%;height:105px;object-fit:contain}.shot-put-results .winner-athlete>b{font-size:50px;padding:0 10px 4px}.shot-put-results .result-actions{grid-template-columns:1fr}.shot-put-results .race-classification .result-table td{padding:8px 6px}.shot-put-results .race-classification .trainer-cell{font-size:15px}.shot-put-results .race-classification .result-score{font-size:19px}}
@media(max-height:550px) and (orientation:landscape){.shot-put-play .play-toolbar{display:flex;flex-wrap:nowrap;padding:4px 8px}.shot-put-play .play-toolbar>span{margin-right:auto}.shot-put-play .play-toolbar .btn,.shot-put-play .play-toolbar .mode-select button{min-height:36px;padding:5px 8px;font-size:11px}.shot-put-play .play-viewport{width:min(100%,calc((100dvh - 178px)*16/9))}.shot-put-play .play-deck{flex-direction:row;min-height:58px;padding:4px 12px;gap:10px}.shot-put-play .play-deck .live-message{flex:1;min-height:42px}.shot-put-play .play-deck #event-cue{font-size:20px}.shot-put-play .play-deck #touch-controls[data-layout=shot-put]{min-height:48px;max-width:360px;flex:1}.shot-put-play .play-deck #touch-controls .engine-control{min-height:48px;font-size:21px;padding:4px 2px}}
@media(max-width:420px){.shot-put-attempts{grid-template-columns:1fr}.shot-put-attempt{display:grid;grid-template-columns:64px minmax(0,1fr);gap:4px 8px;text-align:left;padding:10px}.shot-put-attempt h2{grid-column:1;grid-row:1/4;align-self:center}.shot-put-attempt strong,.shot-put-attempt p,.shot-put-attempt small{grid-column:2}.shot-put-attempt strong{font-size:30px}}
/* End Shot Put UI */


/* Javelin keeps one stable run / draw / release control through both throws. */
.javelin-athlete{display:flex;align-items:center;gap:12px;min-width:0;border-bottom:2px solid #547c8e;padding-bottom:10px}.javelin-athlete>span{display:flex;flex-direction:column;gap:5px;min-width:0;font:12px Festival,sans-serif;color:#a9d8e1}.javelin-athlete b{font:30px/1.05 FestivalTitle,sans-serif;color:#fff3d8;overflow-wrap:anywhere}.javelin-portrait{position:relative;flex:0 0 98px;height:86px}.javelin-portrait img,.javelin-portrait canvas{position:absolute;inset:0;width:98px;height:86px;object-fit:contain;image-rendering:pixelated}.javelin-rule,.javelin-note{font-size:13px;line-height:1.45;color:#c7dfe4;margin:12px 0 17px}.javelin-brief .brief-buttons .btn{min-height:48px}
.javelin-play .play-viewport{width:min(100%,calc((100dvh - 242px)*16/9))}.javelin-play .play-viewport canvas{aspect-ratio:auto;touch-action:none}.javelin-play #timing-cue{display:none}.javelin-play .play-deck{min-height:90px;padding:8px 12px;gap:12px}.javelin-play .play-deck #touch-controls[data-layout=javelin]{display:grid;grid-template-columns:minmax(0,1fr);min-width:0;width:100%;max-width:440px;margin:0;flex:1;gap:8px;min-height:72px}.javelin-play #touch-controls[data-layout=javelin] [data-action=action]{grid-column:1}.javelin-play .play-deck #touch-controls .engine-control{width:100%;max-width:none;min-width:0;min-height:72px;padding:8px 3px;font:28px/1.1 FestivalTitle,sans-serif;white-space:normal;overflow-wrap:break-word;touch-action:none}.javelin-play .play-toolbar .btn:hover,.javelin-play .play-toolbar .btn:active,.javelin-play .play-toolbar .btn:focus-visible{color:#203951;background:#fff3d8}
.javelin-results>*{min-width:0}.javelin-results .finish-time{overflow-wrap:anywhere}.javelin-attempts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:17px 0}.javelin-attempt{display:flex;flex-direction:column;justify-content:center;gap:6px;min-width:0;padding:12px 5px;border:2px solid #7697a5;background:#2c4a60}.javelin-attempt h2,.javelin-attempt small{font:12px/1.3 Festival,sans-serif;color:#c7dfe4;margin:0}.javelin-attempt strong{font:32px/1.05 FestivalTitle,sans-serif;color:#fff3d8}.javelin-attempt p{font-size:12px;line-height:1.4;margin:0;overflow-wrap:anywhere}.javelin-attempt.best{border-color:#f5cf77}.javelin-attempt.best strong,.javelin-attempt.best small{color:#f5cf77}.javelin-results .result-table{min-width:0;table-layout:fixed}.javelin-results .result-table th:first-child{width:36px}.javelin-results .result-table th:last-child{width:90px}.javelin-results .result-table .trainer-cell{min-width:0;overflow-wrap:anywhere}.javelin-results .result-table .result-score{white-space:normal;overflow-wrap:anywhere}.javelin-results .result-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.javelin-results .result-actions .btn{min-width:0;min-height:48px;white-space:normal;line-height:1.1;padding:9px 5px}.javelin-results .result-actions .btn-primary{grid-column:1/-1}
@media(max-width:720px){.javelin-brief .sport-how{grid-template-columns:1fr}.javelin-brief .sport-how li{font-size:13px}.javelin-brief .brief-buttons{display:grid;grid-template-columns:1fr 1fr}.javelin-brief .brief-buttons .btn:first-child{grid-column:1/-1}.javelin-rule{margin:0 0 6px}.javelin-play .play-toolbar{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr);gap:5px;padding:5px 8px}.javelin-play .play-toolbar>span{grid-column:1/-1;justify-self:start;margin:0;padding:2px 7px;background:#203951;color:#fff3d8;font-size:10px;line-height:12px}.javelin-play .play-toolbar .mode-select{display:flex;min-width:0}.javelin-play .play-toolbar .mode-select button{flex:1}.javelin-play .play-toolbar .btn,.javelin-play .play-toolbar .mode-select button{min-width:0;min-height:44px;padding:5px 3px;font-size:11px}.javelin-play .play-viewport{width:min(100%,calc((100dvh - 285px)*640/660))}.javelin-play .play-deck{min-height:0;padding:5px 12px;gap:5px}.javelin-play .play-deck .live-message{padding:5px;min-height:42px}.javelin-play .play-deck #event-cue{font-size:23px}.javelin-play .play-deck #event-status{font-size:10px}.javelin-play .play-deck #touch-controls[data-layout=javelin]{max-width:none;min-height:72px;width:100%;flex:none}.javelin-play .play-deck #touch-controls .engine-control{min-height:72px;font-size:25px}.javelin-attempts{gap:7px;margin:13px 0}.javelin-attempt{padding:10px 4px}.javelin-attempt strong{font-size:28px}.javelin-attempt p,.javelin-attempt small{font-size:11px}.javelin-results .winner-athlete{height:112px;gap:8px}.javelin-results .winner-athlete img,.javelin-results .winner-athlete canvas{width:130px;max-width:55%;height:105px;object-fit:contain}.javelin-results .winner-athlete>b{font-size:50px;padding:0 10px 4px}.javelin-results .result-actions{grid-template-columns:1fr}.javelin-results .race-classification .result-table td{padding:8px 6px}.javelin-results .race-classification .trainer-cell{font-size:15px}.javelin-results .race-classification .result-score{font-size:19px}}
@media(max-height:550px) and (orientation:landscape){.javelin-play .play-toolbar{display:flex;flex-wrap:nowrap;padding:4px 8px}.javelin-play .play-toolbar>span{margin-right:auto}.javelin-play .play-toolbar .btn,.javelin-play .play-toolbar .mode-select button{min-height:36px;padding:5px 8px;font-size:11px}.javelin-play .play-viewport{width:min(100%,calc((100dvh - 178px)*16/9))}.javelin-play .play-deck{flex-direction:row;min-height:58px;padding:4px 12px;gap:10px}.javelin-play .play-deck .live-message{flex:1;min-height:42px}.javelin-play .play-deck #event-cue{font-size:20px}.javelin-play .play-deck #touch-controls[data-layout=javelin]{min-height:48px;max-width:360px;flex:1}.javelin-play .play-deck #touch-controls .engine-control{min-height:48px;font-size:21px;padding:4px 2px}}
@media(max-width:420px){.javelin-attempts{grid-template-columns:1fr}.javelin-attempt{display:grid;grid-template-columns:64px minmax(0,1fr);gap:4px 8px;text-align:left;padding:10px}.javelin-attempt h2{grid-column:1;grid-row:1/4;align-self:center}.javelin-attempt strong,.javelin-attempt p,.javelin-attempt small{grid-column:2}.javelin-attempt strong{font-size:30px}}
/* End Javelin UI */
/* Hammer keeps four stable arrow targets through the burst, flight and finish. */
.hammer-athlete{display:flex;align-items:center;gap:12px;min-width:0;border-bottom:2px solid #547c8e;padding-bottom:10px}.hammer-athlete>span{display:flex;flex-direction:column;gap:5px;min-width:0;font:12px Festival,sans-serif;color:#a9d8e1}.hammer-athlete b{font:30px/1.05 FestivalTitle,sans-serif;color:#fff3d8;overflow-wrap:anywhere}.hammer-portrait{position:relative;flex:0 0 98px;height:86px}.hammer-portrait img,.hammer-portrait canvas{position:absolute;inset:0;width:98px;height:86px;object-fit:contain;image-rendering:pixelated}.hammer-rule,.hammer-note{font-size:13px;line-height:1.45;color:#c7dfe4;margin:12px 0 17px}.hammer-brief .brief-buttons .btn{min-height:48px}
.hammer-play .play-viewport{width:min(100%,calc((100dvh - 302px)*16/9))}.hammer-play .play-viewport canvas{aspect-ratio:auto;touch-action:none}.hammer-play #timing-cue{display:none}.hammer-play .play-deck{min-height:160px;padding:8px 12px;gap:12px}.hammer-play .play-deck #touch-controls[data-layout=hammer]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(2,72px);min-width:0;width:100%;max-width:360px;margin:0;flex:1;gap:8px;min-height:152px}.hammer-play #touch-controls[data-layout=hammer] [data-action=up]{grid-column:2;grid-row:1}.hammer-play #touch-controls[data-layout=hammer] [data-action=left]{grid-column:1;grid-row:2}.hammer-play #touch-controls[data-layout=hammer] [data-action=down]{grid-column:2;grid-row:2}.hammer-play #touch-controls[data-layout=hammer] [data-action=right]{grid-column:3;grid-row:2}.hammer-play .play-deck #touch-controls .engine-control{width:100%;max-width:none;min-width:0;min-height:72px;padding:5px 2px;font:25px/1.05 FestivalTitle,sans-serif;white-space:nowrap;touch-action:none}.hammer-play #touch-controls .shot-ready,.hammer-play #touch-controls .next-stroke{background:#f5cf77;color:#203951;border-color:#fff3d8}.hammer-play #touch-controls .engine-control:disabled{opacity:.55}.hammer-play .play-toolbar .btn:hover,.hammer-play .play-toolbar .btn:active,.hammer-play .play-toolbar .btn:focus-visible{color:#203951;background:#fff3d8}
.hammer-results>*{min-width:0}.hammer-results .finish-time{overflow-wrap:anywhere}.hammer-attempts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:17px 0}.hammer-attempt{display:flex;flex-direction:column;justify-content:center;gap:6px;min-width:0;padding:12px 5px;border:2px solid #7697a5;background:#2c4a60}.hammer-attempt h2,.hammer-attempt small{font:12px/1.3 Festival,sans-serif;color:#c7dfe4;margin:0}.hammer-attempt strong{font:32px/1.05 FestivalTitle,sans-serif;color:#fff3d8}.hammer-attempt p{font-size:12px;line-height:1.4;margin:0;overflow-wrap:anywhere}.hammer-attempt.best{border-color:#f5cf77}.hammer-attempt.best strong,.hammer-attempt.best small:last-child{color:#f5cf77}.hammer-results .result-table{min-width:0;table-layout:fixed}.hammer-results .result-table th:first-child{width:36px}.hammer-results .result-table th:last-child{width:90px}.hammer-results .result-table .trainer-cell{min-width:0;overflow-wrap:anywhere}.hammer-results .result-table .result-score{white-space:normal;overflow-wrap:anywhere}.hammer-results .result-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.hammer-results .result-actions .btn{min-width:0;min-height:48px;white-space:normal;line-height:1.1;padding:9px 5px}.hammer-results .result-actions .btn-primary{grid-column:1/-1}
@media(max-width:720px){.hammer-brief .sport-how{grid-template-columns:1fr}.hammer-brief .sport-how li{font-size:13px}.hammer-brief .brief-buttons{display:grid;grid-template-columns:1fr 1fr}.hammer-brief .brief-buttons .btn:first-child{grid-column:1/-1}.hammer-rule{margin:0 0 6px}.hammer-play .play-toolbar{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr);gap:5px;padding:5px 8px}.hammer-play .play-toolbar>span{grid-column:1/-1;justify-self:start;margin:0;padding:2px 7px;background:#203951;color:#fff3d8;font-size:10px;line-height:12px}.hammer-play .play-toolbar .mode-select{display:flex;min-width:0}.hammer-play .play-toolbar .mode-select button{flex:1}.hammer-play .play-toolbar .btn,.hammer-play .play-toolbar .mode-select button{min-width:0;min-height:44px;padding:5px 3px;font-size:11px}.hammer-play .play-viewport{width:min(100%,calc((100dvh - 365px)*640/660))}.hammer-play .play-deck{min-height:0;padding:5px 12px;gap:5px}.hammer-play .play-deck .live-message{padding:5px;min-height:42px}.hammer-play .play-deck #event-cue{font-size:23px}.hammer-play .play-deck #event-status{font-size:10px}.hammer-play .play-deck #touch-controls[data-layout=hammer]{max-width:360px;width:100%;flex:none}.hammer-play .play-deck #touch-controls .engine-control{font-size:22px}.hammer-results .winner-athlete{height:112px;gap:8px}.hammer-results .winner-athlete img,.hammer-results .winner-athlete canvas{width:130px;max-width:55%;height:105px;object-fit:contain}.hammer-results .winner-athlete>b{font-size:50px;padding:0 10px 4px}.hammer-results .result-actions{grid-template-columns:1fr}.hammer-results .race-classification .result-table td{padding:8px 6px}.hammer-results .race-classification .trainer-cell{font-size:15px}.hammer-results .race-classification .result-score{font-size:19px}}
@media(max-height:550px) and (orientation:landscape){.hammer-play .play-toolbar{display:flex;flex-wrap:nowrap;padding:4px 8px}.hammer-play .play-toolbar>span{margin-right:auto}.hammer-play .play-toolbar .btn,.hammer-play .play-toolbar .mode-select button{min-height:36px;padding:5px 8px;font-size:11px}.hammer-play .play-viewport{width:min(100%,calc((100dvh - 230px)*16/9))}.hammer-play .play-deck{flex-direction:row;min-height:108px;padding:4px 12px;gap:10px}.hammer-play .play-deck .live-message{flex:1;min-height:42px}.hammer-play .play-deck #event-cue{font-size:20px}.hammer-play .play-deck #touch-controls[data-layout=hammer]{grid-template-rows:repeat(2,48px);min-height:100px;max-width:270px;flex:1;gap:4px}.hammer-play .play-deck #touch-controls .engine-control{min-height:48px;font-size:20px;padding:3px 1px}}
@media(max-width:420px){.hammer-attempts{grid-template-columns:1fr}.hammer-attempt{display:grid;grid-template-columns:64px minmax(0,1fr);gap:4px 8px;text-align:left;padding:10px}.hammer-attempt h2{grid-column:1;grid-row:1/5;align-self:center}.hammer-attempt strong,.hammer-attempt p,.hammer-attempt small{grid-column:2}.hammer-attempt strong{font-size:30px}}
/* End Hammer UI */
