:root{font-family:'Trebuchet MS',sans-serif;color:#183e32;background:#f1efe4;font-synthesis:none}*{box-sizing:border-box}body{margin:0;padding:clamp(18px,3vw,48px)}header{display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:28px}h1{font-family:Georgia,serif;font-weight:normal;font-size:clamp(38px,5vw,72px);letter-spacing:-.045em;line-height:.95;margin:14px 0 0}header p{line-height:1.7;text-align:right}header p span{color:#52695e}.eyebrow,.position,.court-label,#mode-label{font-size:10px;font-weight:bold;letter-spacing:.13em}main{display:grid;grid-template-columns:minmax(0,1fr) 320px;border-top:1px solid #b9c3b3;border-bottom:1px solid #b9c3b3}.match{position:relative;min-height:560px;background:#dce3ce;overflow:hidden}canvas{display:block;width:100%;height:100%;position:absolute;inset:0}#match-banner{position:absolute;top:18px;left:50%;transform:translateX(-50%);background:#f1efe4ee;padding:12px 18px;text-align:center;max-width:90%;width:max-content;font-size:14px}.court-label{position:absolute;bottom:14px;left:14px;background:#f1efe4e8;padding:9px}aside{padding:24px;border-left:1px solid #b9c3b3}.match-heading{display:flex;justify-content:space-between;gap:12px}#mode-label{color:#97502d}.player{padding:22px 0;border-bottom:1px solid #b9c3b3}.score-row{display:flex;align-items:center;justify-content:space-between;gap:10px}h2{font-size:20px;margin:0}.jev h2{color:#216b51}.ms h2{color:#a24a2e}strong{font-size:29px;font-variant-numeric:tabular-nums;white-space:nowrap}small{font-size:15px;display:inline-block;min-width:26px;color:#5b6f62;text-align:right}.position{color:#627365;margin:5px 0 17px}.action{font-size:16px;min-height:38px;margin:0 0 8px}.timing{font-size:12px;color:#627365;margin:0}.controls{display:grid;gap:10px;padding-top:23px}label{font-size:12px}button,select{font:inherit;min-height:42px;border:1px solid #8a9e8d;border-radius:3px;padding:9px 12px;background:transparent;color:inherit}button{cursor:pointer}button:hover{background:#e2e7d8}#start{background:#1c513c;color:#f5f2e6;border-color:#1c513c}#start:hover{background:#286449}.secondary{display:flex;gap:10px}.secondary button{flex:1}button:disabled{opacity:.45;cursor:default}button:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #c06d36;outline-offset:3px}#status,details{font-size:12px;line-height:1.65}#status{min-height:40px}summary{cursor:pointer}details{border-top:1px solid #b9c3b3;padding-top:15px}footer{display:flex;justify-content:space-between;gap:20px;font-size:11px;color:#5b6f62;padding:17px 0}@media(max-width:850px){body{padding:18px}main{grid-template-columns:1fr}.match{min-height:440px}aside{border-left:0;border-top:1px solid #b9c3b3;display:grid;grid-template-columns:1fr 1fr;gap:16px;padding:18px 0}.match-heading,.controls,#status,details{grid-column:1/-1}.player{padding:8px 0 16px}.score-row{align-items:start}h2{font-size:17px}header p{font-size:12px}.court-label{font-size:8px}.action{font-size:14px}}@media(max-width:450px){header{align-items:start}header p{max-width:125px}.match{min-height:360px}strong{font-size:24px}footer{line-height:1.5}}
.reports{padding:32px 0;display:grid;gap:38px}.reports h2{font:normal 28px Georgia,serif;margin:12px 0}.reports p,.reports li{font-size:13px;line-height:1.7;max-width:900px}.reports h3{font-size:15px;margin-top:24px}.table-scroll{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:13px;font-variant-numeric:tabular-nums}th,td{text-align:right;padding:14px 12px;border-bottom:1px solid #b9c3b3;white-space:nowrap}th:first-child,td:first-child{text-align:left}th{font-size:11px;color:#52695e}#point-results{padding-left:22px}#point-results li{margin:12px 0}.timing+.timing{margin-top:8px}#data-note{color:#52695e}@media(max-width:450px){.reports h2{font-size:25px}th,td{padding:12px 8px}}
#last-point{font-size:12px;line-height:1.65;border-top:1px solid #b9c3b3;padding-top:12px}@media(max-width:850px){#last-point{grid-column:1/-1}}
.agent-badge{position:absolute;pointer-events:none;transform:translate(-50%,-100%);display:flex;align-items:center;gap:5px;white-space:nowrap;filter:drop-shadow(0 2px 3px #142b3277)}.agent-badge b{display:grid;place-items:center;width:34px;height:34px;border:2px solid #f1efe4;border-radius:50%;font:bold 18px Georgia,serif;background:#216b51;color:#fff8e8}.agent-badge.ms b{background:#a24a2e;font:bold 13px Trebuchet MS,sans-serif}.agent-badge span{background:#f1efe4;padding:4px 7px;border-radius:2px;font-size:10px;font-weight:bold;color:#183e32}.court-results{position:absolute;bottom:43px;left:14px;right:14px;background:#183e32f2;color:#f1efe4;padding:12px 16px;border-top:3px solid #d8c68c;pointer-events:none}.court-results strong{display:block;font-size:12px;letter-spacing:.08em;white-space:normal;margin-bottom:5px}.court-results span{display:block;font-size:11px;line-height:1.5}#match-banner{z-index:2}@media(max-width:450px){.agent-badge b{width:28px;height:28px;font-size:15px}.agent-badge span{font-size:8px;padding:3px 4px}.court-results{left:8px;right:8px;padding:8px;bottom:35px}.court-results span{font-size:9px}.court-results strong{font-size:10px}}
/* Court identity: compact nameplate with a readable decision tooltip. */
.agent-badge{pointer-events:auto;display:block;filter:none;z-index:3;--agent-color:#216b51;--tip-shift:0px}
.agent-badge.ms{--agent-color:#a24a2e}
.agent-badge>button{display:flex;align-items:center;gap:8px;min-height:40px;padding:4px 12px 4px 4px;border:1px solid #fff8e8cc;border-radius:24px;background:#f7f5eb;color:#183e32;box-shadow:0 3px 12px #132b3333;transition:box-shadow .18s,background .18s}
.agent-badge>button:hover,.agent-badge>button:focus-visible{background:#fffdf5;box-shadow:0 5px 18px #132b3355}
.agent-badge b,.agent-badge.ms b{width:29px;height:29px;border:0;background:var(--agent-color);font:bold 16px Georgia,serif;color:#fff8e8}
.agent-badge.ms b{font:bold 11px 'Trebuchet MS',sans-serif}
.agent-badge span{padding:0;background:none;border-radius:0;font-size:11px;font-weight:bold;letter-spacing:.01em}
.agent-badge i{width:5px;height:5px;background:var(--agent-color);border-radius:50%;margin-left:2px;opacity:.6}
.agent-tooltip{position:absolute;bottom:calc(100% + 12px);left:50%;width:220px;white-space:normal;background:#f7f5eb;color:#183e32;border:1px solid #fffdf4;border-radius:12px;padding:15px 16px;box-shadow:0 8px 26px #132b3340;opacity:0;visibility:hidden;transform:translate(calc(-50% + var(--tip-shift)),5px);transition:opacity .16s,transform .16s,visibility .16s;pointer-events:none;text-align:left}
.agent-tooltip:after{content:'';position:absolute;bottom:-5px;left:calc(50% - var(--tip-shift));width:9px;height:9px;background:#f7f5eb;transform:rotate(45deg)}
.agent-tooltip small{display:block;font:700 9px 'Trebuchet MS',sans-serif;letter-spacing:.14em;color:var(--agent-color);text-align:left;margin-bottom:8px}
.agent-tooltip strong{display:block;font:normal 18px/1.2 Georgia,serif;white-space:normal;letter-spacing:-.02em}
.agent-tooltip p{font-size:11px;margin:10px 0 0;padding-top:9px;border-top:1px solid #d9dfd1;color:#52695e}
.agent-badge:hover .agent-tooltip,.agent-badge:focus-within .agent-tooltip,.agent-badge[data-open=true] .agent-tooltip{opacity:1;visibility:visible;transform:translate(calc(-50% + var(--tip-shift)),0);pointer-events:auto}
.agent-badge[data-dismissed=true] .agent-tooltip{opacity:0;visibility:hidden;pointer-events:none}
@media(max-width:450px){.agent-badge>button{min-height:34px;gap:5px;padding:3px 8px 3px 3px}.agent-badge b,.agent-badge.ms b{width:25px;height:25px}.agent-badge span{font-size:9px}.agent-tooltip{padding:12px 14px}.agent-tooltip strong{font-size:16px}}
@media(prefers-reduced-motion:reduce){.agent-badge>button,.agent-tooltip{transition:none}}
#badge-ai .agent-tooltip{bottom:auto;top:calc(100% + 12px)}#badge-ai .agent-tooltip:after{bottom:auto;top:-5px}
#match-result-dialog{width:min(620px,calc(100vw - 32px));max-height:calc(100dvh - 40px);overflow:auto;margin:auto;border:1px solid #d4dccd;border-radius:18px;padding:28px 32px;background:#f7f5eb;color:#183e32;box-shadow:0 24px 90px #102e3255}
#match-result-dialog::backdrop{background:#102e3280}
.result-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.result-top button{border:0;min-height:36px;font-size:12px;padding:8px}
#result-heading{font:normal clamp(28px,4vw,40px)/1.12 Georgia,serif;letter-spacing:-.035em;margin:22px 0 10px;text-wrap:balance}
.result-scoreline{font-size:18px;font-weight:bold;margin:0 0 24px;font-variant-numeric:tabular-nums}
.result-table th{font-size:11px}.result-table td{padding-top:13px;padding-bottom:13px}.result-table tr:first-child td{font-weight:bold}.result-table th:first-child,.result-table td:first-child{padding-left:0}.result-table td:nth-child(2){color:#216b51}.result-table td:nth-child(3){color:#a24a2e}
#result-note{font-size:12px;line-height:1.6;color:#52695e;margin:20px 0}#result-replay{background:#1c513c;color:#f7f5eb;width:100%;border-color:#1c513c;border-radius:7px}#result-replay:hover{background:#286449}
@media(max-width:450px){#match-result-dialog{padding:20px 16px}.result-scoreline{font-size:14px}.result-table{font-size:12px}.result-table th{font-size:10px;padding:10px 5px}.result-table td{padding:12px 5px}}

.speedometer{position:absolute;top:96px;right:24px;width:148px;padding:11px 12px 9px;border:1px solid #ffffff20;border-radius:6px;background:#0d2032ee;color:#f7f9fc;box-shadow:0 5px 20px #06111e25;font-variant-numeric:tabular-nums}
.speedometer-heading{display:flex;align-items:center;justify-content:space-between;gap:6px;color:#b7c8d8;font-size:8px;font-weight:700;letter-spacing:.08em}.speed-live{color:#8da0b1;font-size:6px;letter-spacing:.04em}.speed-live::before{content:'';display:inline-block;width:4px;height:4px;margin-right:3px;border-radius:50%;background:currentColor}.speed-live.moving{color:#d7f55b}
.speedometer-dial{position:relative;margin-top:7px}.speedometer-dial svg{display:block;width:100%;overflow:visible}.speed-track,.speed-arc{fill:none;stroke-width:5;stroke-linecap:round}.speed-track{stroke:#ffffff18}.speed-arc{stroke:#d7f55b}.speed-ticks{fill:none;stroke:#92a7b880;stroke-width:1}.speed-needle{fill:none;stroke:#fff;stroke-width:2}.speedometer-dial text{fill:#91a7bc;font:6px sans-serif;text-anchor:middle}
.speedometer-reading{position:absolute;inset:31% 15% auto;display:grid;text-align:center;line-height:1}.speedometer-reading #hud-speed{font-size:29px;font-weight:750;letter-spacing:-.04em}.speed-unit{margin-top:4px;font-size:8px;color:#a7bbcd}.speedometer-last{display:flex;align-items:center;justify-content:space-between;gap:5px;margin-top:7px;padding-top:7px;border-top:1px solid #ffffff14;font-size:7px;color:#91a7bc;letter-spacing:.04em}.speedometer-last #hud-last-speed{color:#e6f596;font-size:9px;font-weight:650;letter-spacing:0}
/* Original dial in the experiment sidebar. */
.speedometer{position:static;width:156px;margin:20px auto 0;grid-column:1/-1;background:#183e32;color:#f7f5eb;border-color:#b9c3b3;box-shadow:none;pointer-events:none}
.speedometer-heading,.speedometer-last,.speed-unit{color:#cedac8}.speedometer-dial text{fill:#cedac8}.speed-track{stroke:#ffffff26}.speed-arc{stroke:#d8c68c}.speed-needle{stroke:#f7f5eb}.speed-live.moving,.speedometer-last #hud-last-speed{color:#ead99e}

.reports>div,.player{min-width:0}.score-row h2{min-width:0;overflow-wrap:anywhere}.score-row>strong{flex-shrink:0}

/* Court-side speed display, above the net and outside the central play area. */
.match .speedometer{position:absolute;top:31%;right:6%;width:clamp(100px,10vw,142px);margin:0;z-index:2;background:#183e32f2;border:1px solid #f7f5eb55;box-shadow:0 4px 14px #132b3333}
@media(max-width:850px){.match .speedometer{right:10px;top:27%;width:100px;padding:8px}.match .speedometer-heading{font-size:6px}.match .speedometer-reading #hud-speed{font-size:23px}.match .speedometer-last{font-size:6px}}

/* A slow pulse and hand-drawn-style rays mark speeds above 100 km/h. */
.speed-rays{position:absolute;inset:-15px;pointer-events:none;opacity:0;transition:opacity .18s}
.speed-rays i{position:absolute;width:3px;height:10px;border-radius:3px;background:#ead99e}
.speed-rays i:nth-child(1){left:25%;top:0;transform:rotate(-15deg)}
.speed-rays i:nth-child(2){left:50%;top:-2px}
.speed-rays i:nth-child(3){right:25%;top:0;transform:rotate(15deg)}
.speed-rays i:nth-child(4){right:3px;top:7px;transform:rotate(45deg)}
.speed-rays i:nth-child(5){right:0;top:40%;transform:rotate(90deg)}
.speed-rays i:nth-child(6){right:0;top:65%;transform:rotate(90deg)}
.speed-rays i:nth-child(7){right:6px;bottom:3px;transform:rotate(-45deg)}
.speed-rays i:nth-child(8){left:65%;bottom:0;transform:rotate(-15deg)}
.speed-rays i:nth-child(9){left:35%;bottom:0;transform:rotate(15deg)}
.speed-rays i:nth-child(10){left:6px;bottom:3px;transform:rotate(45deg)}
.speed-rays i:nth-child(11){left:0;top:60%;transform:rotate(90deg)}
.speed-rays i:nth-child(12){left:0;top:25%;transform:rotate(70deg)}
.speedometer.high-speed .speed-rays{opacity:1}
.speedometer.high-speed #hud-speed{color:#ffe5a1;animation:speed-pulse .9s ease-in-out infinite}
@keyframes speed-pulse{0%,100%{opacity:1}50%{opacity:.4}}
@media(prefers-reduced-motion:reduce){.speed-rays{transition:none}.speedometer.high-speed #hud-speed{animation:none}}

.model-identity{min-width:0}.model-site{display:block;width:fit-content;margin-top:5px;color:#52695e;font-size:11px;font-weight:normal;line-height:1.4;text-decoration:none;text-underline-offset:3px}.model-site:hover{text-decoration:underline}.model-site:focus-visible{outline:2px solid #a24a2e;outline-offset:3px}.result-table .model-site{margin-left:auto;font-size:10px}

.match .speedometer.high-speed{animation:speed-shake .32s ease-in-out infinite}
@keyframes speed-shake{0%,100%{transform:translate(0,0) rotate(0)}25%{transform:translate(-1px,1px) rotate(-1deg)}50%{transform:translate(1px,-1px) rotate(1deg)}75%{transform:translate(-1px,0) rotate(-.5deg)}}
@media(prefers-reduced-motion:reduce){.match .speedometer.high-speed{animation:none}}

/* Website tags keep provider attribution easy to read. */
.model-site{display:inline-flex;align-items:center;width:fit-content;max-width:100%;margin-top:9px;padding:6px 10px;border:1px solid #a9beaf;border-radius:6px;background:#e3ecdf;color:#204d39;font-size:13px;font-weight:bold;line-height:1.35;text-decoration:none;overflow-wrap:anywhere}
.ms .model-site,.result-table th:last-child .model-site{background:#f3e5d8;border-color:#d9b89c;color:#873e25}
.model-site:hover{background:#d2e1cd;text-decoration:underline}.ms .model-site:hover,.result-table th:last-child .model-site:hover{background:#ead3be}
.result-table .model-site{display:flex;margin-left:auto;margin-top:8px;font-size:12px;padding:6px 9px}
@media(max-width:450px){.model-site{font-size:12px;padding:6px 8px}.result-table .model-site{font-size:11px}}

.match .speedometer{right:auto}

.cost-note{font-size:11px;line-height:1.5;color:#52695e}

.live-decisions{grid-column:1/-1;margin-bottom:24px;padding-bottom:6px;border-bottom:1px solid #b9c3b3}.decision-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.decision-heading>span:last-child{font-size:10px;color:#52695e}.decision-row{--decision-color:#216b51;border-left:3px solid var(--decision-color);padding:10px 12px;margin:10px 0 16px;background:#e5ecdf}.decision-row.milliseconds{--decision-color:#a24a2e;background:#f0e5d8}.decision-top{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:11px;font-weight:bold;color:var(--decision-color)}.decision-clock{font-variant-numeric:tabular-nums;white-space:nowrap}.decision-row p{font:normal 19px/1.25 Georgia,serif;margin:10px 0;min-height:48px}.decision-bottom{font-size:10px;line-height:1.5}.decision-bottom>span{display:block}.decision-bottom>span:first-child{font-weight:bold;color:var(--decision-color);margin-bottom:4px}.decision-bottom>span:last-child{color:#52695e}.decision-row[data-state=pending] .decision-clock{animation:decision-wait 1s ease-in-out infinite}.decision-row[data-state=failed],.decision-row[data-state=late]{border-left-style:dashed}@keyframes decision-wait{50%{opacity:.45}}@media(prefers-reduced-motion:reduce){.decision-row[data-state=pending] .decision-clock{animation:none}}@media(max-width:850px){.live-decisions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;margin-bottom:0}.decision-heading{grid-column:1/-1;margin-bottom:0}.decision-row{margin:0 0 12px}.decision-top{flex-wrap:wrap}}

[hidden]{display:none!important}.experiment-links{display:flex;flex-wrap:wrap;gap:14px;margin:0 0 22px}.experiment-links a{color:#1c513c;font-size:13px;font-weight:bold;text-underline-offset:4px}.experiment-links a:last-child{margin-left:auto}#public-cap{font-size:13px;line-height:1.6;border-top:1px solid #b9c3b3;padding-top:14px}#public-save{font-size:12px;line-height:1.5}.board-link{position:absolute;z-index:1;border-radius:3px;cursor:pointer}.board-link:hover{outline:2px solid #ead99e;outline-offset:2px}.board-link:focus-visible{outline:3px solid #ead99e;outline-offset:3px;background:#ead99e33}.winner-totals{display:grid;grid-template-columns:1fr 1fr;border-block:1px solid #b9c3b3;padding:26px 0;gap:24px}.winner-totals strong{font:normal 64px Georgia,serif}.results-note{font-size:13px;line-height:1.7;color:#52695e;max-width:900px}.results-page{max-width:1400px;margin:auto}.results-page #match-details details{margin-top:16px}.results-page header nav{align-self:end}.results-page .reports{min-width:0}.results-page .table-scroll{min-width:0}.results-page h2{overflow-wrap:anywhere}@media(max-width:600px){.results-page header{display:block}.results-page header nav{margin-top:25px}}

.maker{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:clamp(28px,5vw,80px);margin-top:48px;padding:40px 0;border-top:1px solid #b9c3b3;border-bottom:1px solid #b9c3b3}.maker-about{display:flex;align-items:flex-start;gap:24px}.maker-about img{width:96px;height:96px;flex-shrink:0;object-fit:cover;border-radius:50%;border:4px solid #e3e8d7}.maker .eyebrow{color:#52695e;font-size:9px}.maker h2{font:normal clamp(30px,3vw,42px)/1.1 Georgia,serif;margin:9px 0 12px;letter-spacing:-.03em}.maker p{font-size:14px;line-height:1.7;margin:0;max-width:470px}.maker-cta{border-left:1px solid #b9c3b3;padding-left:clamp(24px,3vw,48px)}.maker h3{font:normal 25px/1.2 Georgia,serif;margin:0 0 10px}.maker-cta>a{display:inline-flex;align-items:center;justify-content:space-between;gap:28px;margin-top:19px;padding:13px 18px;background:#1c513c;border:1px solid #1c513c;color:#f7f5eb;border-radius:3px;font-size:14px;text-decoration:none;font-weight:bold}.maker-cta>a:hover{background:#286449}.maker-cta>a:focus-visible{outline:3px solid #a24a2e;outline-offset:4px}.maker-domain{display:block;font-size:11px;color:#52695e;margin-top:10px}@media(max-width:700px){.maker{grid-template-columns:1fr;gap:26px;padding:28px 0}.maker-about{gap:16px}.maker-about img{width:72px;height:72px}.maker-cta{border-left:0;border-top:1px solid #b9c3b3;padding:24px 0 0}.maker p{font-size:13px}}
.exhibition-closed>header,.exhibition-closed main,.exhibition-closed>.reports,.exhibition-closed>#public-cap,.exhibition-closed>footer{display:none}.final-exhibition{max-width:1100px;margin:36px auto 48px;padding:clamp(24px,5vw,64px);background:#e4eadb;border-top:4px solid #1c513c}.final-exhibition h1{font-size:clamp(36px,5vw,64px);line-height:1.08;margin:20px 0}.final-winner{font:normal clamp(22px,3vw,32px)/1.3 Georgia,serif;color:#216b51}.final-exhibition>p{line-height:1.65}.final-table{margin-top:28px}.final-table td{font-size:16px}.final-table .model-site{margin-left:auto}.final-table th{font-size:12px}.final-link{display:inline-block;margin-top:14px;color:#1c513c;font-weight:bold;text-underline-offset:4px}@media(max-width:600px){.final-exhibition{padding:22px 14px;margin-top:20px}.final-table td{font-size:13px}}

.final-table .model-site{display:flex}
.experiment-links{align-items:center}.play-tennis-cta,.experiment-links .play-tennis-cta{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:54px;padding:14px 22px;background:#d9ed68;border:2px solid #1c513c;border-radius:6px;box-shadow:0 4px 0 #1c513c;color:#163d2c;font-size:16px;font-weight:bold;text-decoration:none;white-space:nowrap;transition:transform .15s,box-shadow .15s,background .15s}.play-tennis-cta:hover,.experiment-links .play-tennis-cta:hover{background:#e5f68c;transform:translateY(-2px);box-shadow:0 6px 0 #1c513c}.play-tennis-cta:active{transform:translateY(2px);box-shadow:0 2px 0 #1c513c}.play-tennis-cta:focus-visible{outline:3px solid #a24a2e;outline-offset:6px}.tennis-ball{position:relative;display:inline-block;width:23px;height:23px;flex-shrink:0;border:1.5px solid currentColor;border-radius:50%;overflow:hidden}.tennis-ball:before,.tennis-ball:after{content:'';position:absolute;top:-2px;width:14px;height:24px;border:1.5px solid currentColor;border-radius:50%}.tennis-ball:before{left:-10px}.tennis-ball:after{right:-10px}.play-invitation{display:flex;align-items:center;justify-content:space-between;gap:28px;margin-top:38px;padding:30px;background:#1c513c;color:#f7f5eb}.play-invitation h2{font:normal clamp(25px,3vw,34px)/1.2 Georgia,serif;margin:10px 0}.play-invitation p{font-size:14px;margin:0;line-height:1.6}.play-invitation .eyebrow{color:#d9ed68}.play-invitation .play-tennis-cta{flex-shrink:0;border-color:#d9ed68;box-shadow:0 4px 0 #0f3425}@media(max-width:650px){.play-invitation{align-items:stretch;flex-direction:column;padding:24px}.experiment-links .play-tennis-cta{font-size:14px;padding:12px 16px;gap:9px}}@media(prefers-reduced-motion:reduce){.play-tennis-cta,.experiment-links .play-tennis-cta{transition:none}}
.match-counter{margin-right:0;min-width:210px;padding:14px 22px 14px 0}.match-counter>span{font-size:10px;font-weight:bold;letter-spacing:.12em;color:#52695e}.match-counter>div{line-height:1.1;margin:5px 0}.match-counter strong{font:normal 40px Georgia,serif;color:#1c513c}.match-counter>div>span{font-size:17px;color:#52695e}.match-counter small{display:block;font-size:11px;line-height:1.5;text-align:left;color:#52695e}.experiment-links .results-cta{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:54px;padding:14px 22px;border:2px solid #1c513c;border-radius:6px;background:#1c513c;color:#f7f5eb;font-size:16px;font-weight:bold;text-decoration:none;box-shadow:0 4px 0 #102e22}.experiment-links .results-cta:hover{background:#286449}.experiment-links .results-cta:focus-visible{outline:3px solid #a24a2e;outline-offset:5px}.experiment-links:has(.match-counter) a:last-child{margin-left:auto}@media(max-width:650px){.match-counter{flex-basis:100%;padding:0 0 14px;border-bottom:1px solid #b9c3b3}.experiment-links .results-cta,.experiment-links:has(.match-counter) .play-tennis-cta{flex:1 1 200px;font-size:14px;padding:12px 16px}}
.site-footer{font-size:13px;line-height:1.6}.site-footer a{color:#1c513c;font-weight:bold;text-underline-offset:3px}.site-footer p{font-size:11px;margin:6px 0 0}.exhibition-closed>.site-footer{display:flex}.exhibition-closed .site-footer #rally{display:none}
/* Keep the court within the viewport while the stats follow normal page scrolling. */
body:has(#court){padding-top:18px}
body:has(#court)>header{margin-bottom:12px}
body:has(#court)>header h1{font-size:clamp(28px,3.2vw,46px);line-height:1.05;margin-top:8px}
body:has(#court)>.experiment-links{margin-bottom:14px;gap:12px}
body:has(#court) .match-counter{padding-top:4px;padding-bottom:4px}
body:has(#court) .match-counter strong{font-size:30px}
body:has(#court) main{align-items:start}
body:has(#court) .match{min-height:0;height:var(--court-height,60dvh)}

@media(max-width:650px){body:has(#court)>header p{display:none}body:has(#court) .match-counter{flex-basis:auto;min-width:0;border:0;padding:0}body:has(#court) .match-counter small{max-width:170px;font-size:10px}body:has(#court) .experiment-links .results-cta,body:has(#court) .experiment-links .play-tennis-cta{flex:0 1 auto;min-height:40px;padding:8px 10px;font-size:12px;gap:6px}body:has(#court) .experiment-links .play-tennis-cta{margin-left:0}.court-results{padding:6px 10px}.court-results span{font-size:9px}}
.court-column{min-width:0}.court-caption .court-results{position:static;margin:0;padding:9px 14px}.court-caption .court-label{position:static;padding:7px 14px;background:#e3e8d7}.court-caption .court-results span{font-size:10px}
aside>.controls{grid-template-columns:1fr 1fr;padding:0 0 18px;margin-bottom:18px;border-bottom:1px solid #b9c3b3;gap:8px}aside>.controls #start,aside>.controls .secondary{grid-column:1/-1}aside>.controls button{font-size:13px}
.experiment-about{max-width:820px;margin:38px 0}.experiment-about h2{font:normal 28px Georgia,serif}.experiment-about p{font-size:14px;line-height:1.7;color:#52695e}.experiment-about a{color:#1c513c;text-underline-offset:3px}
/* Three clear zones on wide screens: scores, court, and live decisions. */
.exhibition-layout{grid-template-columns:250px minmax(0,1fr) 280px}
.exhibition-layout>.match-stats{border-left:0;border-right:1px solid #b9c3b3;padding:22px 18px 22px 0}
.exhibition-layout>.match-actions{padding:22px 0 22px 18px}
.match-stats .score-row{flex-wrap:wrap;gap:10px}.match-stats .score-row>strong{margin-left:auto}.match-stats h2{font-size:18px}.match-stats .position{margin-bottom:12px}.match-stats .player{padding:18px 0}.match-stats #status{min-height:0}
@media(min-width:851px) and (max-width:1250px){.exhibition-layout{grid-template-columns:minmax(0,1fr) 280px}.exhibition-layout>.court-column{grid-column:1;grid-row:1}.exhibition-layout>.match-actions{grid-column:2;grid-row:1}.exhibition-layout>.match-stats{grid-column:1/-1;grid-row:2;display:grid;grid-template-columns:1fr 1fr;gap:16px 28px;border-right:0;border-top:1px solid #b9c3b3;padding:22px 0}.match-stats>.match-heading,.match-stats>details{grid-column:1/-1}}
@media(max-width:850px){.exhibition-layout{grid-template-columns:minmax(0,1fr)}.exhibition-layout>.court-column{grid-row:1}.exhibition-layout>.match-actions{grid-row:2;padding:18px 0}.exhibition-layout>.match-stats{grid-row:3;padding:18px 0;border-right:0}.match-actions>.live-decisions{grid-column:1/-1}.match-stats>details{grid-column:1/-1}}
.match-counter small{max-width:370px}
