.player-riding { --ride-gold:#f2d476; --ride-ink:#17392f; color:#f4f2e5; font-family:system-ui,sans-serif; }
.riding-panel { background:linear-gradient(155deg,#143c33,#0e2825); border:1px solid #5b7968; border-radius:18px; padding:20px; box-shadow:0 16px 42px #0003; max-width:1000px; margin:auto; }
.riding-heading { display:flex; justify-content:space-between; align-items:center; gap:14px; margin-bottom:14px; }
.riding-heading h2 { color:#fff8da; font-size:clamp(18px,3.7vw,27px); line-height:1.4; margin:4px 0; }
.riding-heading p { margin:4px 0; font-size:12px; color:#d2dfd2; }
.riding-kicker { font-size:10px; color:var(--ride-gold); letter-spacing:.18em; }
.riding-badge { border:1px solid #d1bc6a; color:var(--ride-gold); border-radius:6px; padding:8px; white-space:nowrap; font-size:12px; }
.riding-meters { display:flex; gap:12px; flex-wrap:wrap; font-size:14px; font-weight:700; padding:10px 0; }
.riding-meters span:first-child { color:var(--ride-gold); }
.riding-track { position:relative; border-radius:12px; overflow:hidden; border:1px solid #bca56b; }
.riding-track canvas { display:block; width:100%; height:310px; }
.riding-gate { position:absolute; inset:0; display:grid; place-items:center; font-size:clamp(32px,8vw,68px); font-weight:900; color:#fff5b5; text-shadow:0 3px 14px #000; background:#0d231c55; pointer-events:none; }
.riding-gate[hidden] { display:none; }
.riding-gauges { display:grid; grid-template-columns:1fr 1fr; gap:16px; padding:12px 0; }
.riding-gauges label { display:grid; grid-template-columns:auto 1fr 3em; gap:7px; align-items:center; font-size:12px; }
.riding-gauges progress { width:100%; min-width:24px; accent-color:#b3e390; }
.riding-gauges output { text-align:right; }
.riding-guidance { min-height:2.8em; margin:0; color:#fff5c7; background:#ffffff0b; border-left:3px solid var(--ride-gold); padding:9px 12px; font-size:14px; line-height:1.5; }
.riding-live { font-size:12px; line-height:1.4; color:#c8daca; min-height:1.4em; margin:8px 0; }
.riding-controls { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)) 1.2fr; gap:8px; }
.player-riding button { appearance:none; background:#f1ecd9; color:var(--ride-ink); border:1px solid #d6c892; border-radius:9px; min-height:48px; font:700 14px/1.3 system-ui,sans-serif; padding:10px; cursor:pointer; }
.player-riding button:focus-visible,.riding-track canvas:focus-visible { outline:3px solid #fff279; outline-offset:3px; }
.player-riding button:disabled { opacity:.48; cursor:default; }
.riding-controls button { touch-action:none; user-select:none; -webkit-user-select:none; -webkit-touch-callout:none; }
.riding-controls button.is-held,.riding-controls button:active { background:#ffe886; box-shadow:inset 0 3px 6px #735e3644; transform:translateY(1px); }
.riding-controls .riding-launch { background:#ebc95d; border-color:#ffec9a; }
.riding-launch small { display:block; font-weight:400; font-size:10px; }
.riding-actions { display:flex; flex-wrap:wrap; gap:8px; margin:12px 0; }
.riding-actions button { min-height:40px; background:#264f43; color:#f0edda; border-color:#769480; font-size:12px; }
.riding-actions button[data-action="begin"] { background:#efd878; color:#253e2b; flex:1; }
.riding-help { border-top:1px solid #5b796866; padding-top:12px; color:#cbdccd; font-size:12px; line-height:1.7; }
.riding-help summary { cursor:pointer; color:#f6e5a9; font-size:14px; }
.riding-help ol { padding-left:22px; margin:8px 0; }
.riding-help p { margin:8px 0; }
.riding-result { background:#eee3ba; color:#183c30; padding:16px; border-radius:10px; line-height:1.7; font-weight:700; margin:12px 0; }
@media(max-width:600px) {
 .riding-panel { padding:12px; border-radius:12px; }
 .riding-heading { gap:6px; align-items:flex-start; }.riding-badge { padding:5px; font-size:10px; }
 .riding-track canvas { height:265px; }.riding-meters { gap:7px; font-size:12px; }
 .riding-gauges { gap:6px; }.riding-gauges label { grid-template-columns:1fr 3em; font-size:11px; }.riding-gauges progress { grid-column:1; grid-row:2; }.riding-gauges output { grid-column:2; grid-row:2; }
 .riding-controls { gap:5px; }.riding-controls button { font-size:12px; padding:10px 4px; min-height:56px; }
 .riding-guidance { font-size:12px; min-height:3.3em; }.riding-actions button { flex:1 1 42%; }
}
@media(prefers-reduced-motion:reduce) {.riding-controls button:active {transform:none;}}

.player-riding [hidden] { display:none !important; }

/* A single native scroll owner inside the modal. No body/root touch lock. */
#panel.riding-panel-open{height:100svh;height:100dvh;max-height:100svh;max-height:100dvh;width:min(100vw,1080px);max-width:100vw;border-radius:0;padding-top:env(safe-area-inset-top)}
#panel.riding-panel-open #panel-body{flex:1;min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y;padding:8px max(8px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));scroll-padding-block:12px 160px}
#panel.riding-panel-open .last-emperor-controls{margin:0 0 6px;gap:5px}
#panel.riding-panel-open .last-emperor-controls button{min-height:40px;flex:1;padding:6px 8px;font-size:11px}
.player-riding{min-width:0;touch-action:pan-y}
.riding-panel{min-width:0;overflow:visible}
.riding-track,.riding-track canvas{touch-action:pan-y}
.riding-track canvas{height:clamp(140px,25dvh,300px)}
.riding-dock{position:sticky;bottom:0;z-index:3;margin:8px -4px 0;padding:8px 4px max(6px,env(safe-area-inset-bottom));background:#143c33;border-top:1px solid #708168;box-shadow:0 -8px 14px #102e2866;touch-action:pan-y}
.riding-controls{grid-template-columns:repeat(4,minmax(0,1fr)) 1.35fr}
.riding-controls .riding-launch{grid-column:1/-1;min-height:40px}
.riding-controls .riding-launch small{display:inline;margin-left:5px}
.riding-controls .riding-whip{background:#f4d378;border:2px solid #ffe9a3;min-width:0;padding:6px 3px}
.riding-whip small{display:block;white-space:normal;color:inherit;font-size:10px;font-weight:600;line-height:1.2}
.riding-whip[data-whip-state="available"]{background:#ffe889;box-shadow:0 0 0 2px #d8b53f66}
.riding-controls button{touch-action:pan-y}
.player-riding[data-riding-phase="running"] .riding-controls button:not(:disabled){touch-action:none}
.riding-actions{margin:7px 0 0;gap:5px}
.riding-actions button{min-height:44px;flex:1 1 42%;padding:7px 5px}
.riding-actions button[data-action="retry"]{background:#efd878;color:#253e2b;font-size:14px;border-color:#ffeb99}
.riding-result{scroll-margin:12px 0 140px;overflow-wrap:anywhere}
.player-riding[data-riding-phase="finished"] .riding-track canvas{height:140px}
.player-riding[data-riding-phase="finished"] .riding-guidance,.player-riding[data-riding-phase="finished"] .riding-live{display:none}
.player-riding[data-riding-phase="finished"] .riding-gauges{padding:6px 0}
@media(max-width:600px){
 .riding-panel{padding:8px}.riding-heading{margin-bottom:4px}.riding-heading h2{font-size:17px;margin:1px 0}.riding-heading p{font-size:10px;margin:1px 0}.riding-badge{font-size:9px;padding:4px}.riding-kicker{font-size:9px}
 .riding-meters{padding:5px 0;gap:5px;font-size:11px}.riding-gauges{padding:6px 0}.riding-guidance{padding:6px 8px;min-height:2.8em;font-size:11px;line-height:1.35}.riding-live{margin:4px 0;font-size:10px;min-height:1.4em}
 .riding-controls button{min-height:52px;font-size:11px;padding:6px 2px}.riding-actions button{min-height:44px;font-size:11px}.riding-dock{margin-top:5px;padding-top:5px}.riding-help{padding-top:7px;margin-top:6px}.riding-help summary{font-size:12px}
}
@media(orientation:landscape) and (max-height:540px) and (min-width:600px){
 #panel.riding-panel-open .panel-head{min-height:42px;padding:1px 6px}
 #panel.riding-panel-open #panel-body{padding-top:3px;scroll-padding-bottom:110px}
 #panel.riding-panel-open .last-emperor-controls{margin-bottom:3px}#panel.riding-panel-open .last-emperor-controls button{min-height:32px;padding:3px 7px}
 .riding-panel{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(280px,1fr);grid-template-areas:"heading heading" "track meters" "track gauges" "track guidance" "track dock" "result result" "live live" "help help";gap:3px 10px;padding:5px 8px}
 .riding-heading{grid-area:heading;margin:0}.riding-heading h2{font-size:14px;margin:0}.riding-heading p,.riding-kicker,.riding-badge{display:none}.riding-track{grid-area:track;align-self:stretch}.riding-track canvas{height:100%;min-height:170px;max-height:230px}.riding-meters{grid-area:meters;padding:0;font-size:10px;gap:5px}.riding-gauges{grid-area:gauges;padding:0;gap:6px}.riding-gauges label{font-size:10px}.riding-guidance{grid-area:guidance;min-height:0;font-size:10px;padding:4px 6px;line-height:1.3}.riding-live{grid-area:live;margin:0;font-size:10px;min-height:0}.riding-dock{grid-area:dock;position:sticky;padding:3px 0 max(2px,env(safe-area-inset-bottom));margin:0;box-shadow:none}.riding-controls{gap:3px}.riding-controls button{min-height:44px;font-size:10px;padding:4px 2px}.riding-controls .riding-launch{min-height:44px}.riding-actions{gap:3px;margin:3px 0 0}.riding-actions button{min-height:44px;flex:1;padding:3px;font-size:10px}.riding-result{grid-area:result;margin:3px 0;padding:8px}.riding-help{grid-area:help;padding:3px 0;margin:0}.riding-help summary{font-size:11px}
 .player-riding[data-riding-phase="finished"] .riding-panel{grid-template-areas:"heading heading" "track meters" "track gauges" "track result" "track dock" "help help"}.player-riding[data-riding-phase="finished"] .riding-track canvas{height:100%;min-height:130px}
}

.riding-perception{margin:5px 0;padding:7px 9px;border:1px solid #87a18b77;border-radius:9px;background:#203f36;font-size:11px;line-height:1.4;overflow-wrap:anywhere}
.riding-perception header{display:flex;gap:8px;justify-content:space-between;align-items:center;margin-bottom:3px}.riding-perception header strong{color:#ffe6a0}.riding-perception>div{display:flex;flex-wrap:wrap;gap:5px 14px}.riding-perception p{font-size:11px;margin:3px 0}.riding-perception small{font-size:9px;color:#d1ddca}.riding-perception b{font-weight:650}
.riding-rival-read{font-size:12px;line-height:1.6;margin:8px 0;padding:7px 9px;border:1px solid #5b7968;border-radius:8px}.riding-rival-read summary{min-height:44px;display:list-item;padding:10px 0;cursor:pointer}.riding-rival-read p{white-space:pre-line;font-size:12px}.riding-rival-read small{color:#d1ddca;font-size:10px}
.riding-upgrade{padding:10px 12px;margin:4px 0 9px;border:1px solid #b29865;border-radius:10px;background:#fff5d9;color:#2b4237;font-size:12px;line-height:1.5}.riding-upgrade p{font-size:12px;margin:4px 0 7px}.riding-upgrade button{min-height:44px;width:100%;font-size:12px}.riding-upgrade small{display:block;margin-top:5px;font-size:10px}
@media(orientation:landscape) and (max-height:540px) and (min-width:600px){
 .player-riding[data-riding-engine="normal"] .riding-panel{grid-template-areas:"heading heading" "track meters" "track perception" "track guidance" "track dock" "result result" "live live" "rivals rivals" "help help"}
 .riding-perception{grid-area:perception;margin:0;padding:3px 6px;font-size:10px}.riding-perception header{margin:0}.riding-perception p{font-size:10px;margin:1px 0}.riding-perception>small{display:none}.riding-rival-read{grid-area:rivals;margin:2px 0;padding:3px 7px}
 .player-riding[data-riding-engine="normal"][data-riding-phase="finished"] .riding-panel{grid-template-areas:"heading heading" "track meters" "track perception" "track result" "track dock" "rivals rivals" "help help"}
}

.player-riding[data-riding-engine="normal"] .riding-controls{grid-template-columns:repeat(6,minmax(44px,1fr))}
.riding-controls .riding-drive{background:#eec787;border-color:#e8b967}.riding-drive small{display:block;color:inherit;font-size:9px;line-height:1.1}
@media(max-width:359px){.player-riding[data-riding-engine="normal"] .riding-controls{grid-template-columns:repeat(3,minmax(44px,1fr))}}

/* v7.2.20: only the normal, non-replay riding screen opts into this layer.
   Pausing/finishing removes the host class and restores the native scroll owner. */
.player-riding[data-riding-ui="fullscreen"] {
 --ride-safe-top:max(8px,env(safe-area-inset-top,0px));
 --ride-safe-right:max(8px,env(safe-area-inset-right,0px));
 --ride-safe-bottom:max(12px,env(safe-area-inset-bottom,0px));
 --ride-safe-left:max(8px,env(safe-area-inset-left,0px));
 --ride-glass:linear-gradient(155deg,#253d50e8,#14232dde);
 --ride-hud-height:66px;
}
.player-riding[data-riding-ui="fullscreen"] .riding-gesture-controls { display:none; }
.player-riding[data-riding-ui="fullscreen"] .riding-accessible-controls { margin:0; }
.player-riding[data-riding-ui="fullscreen"] .riding-accessible-controls>summary { display:none; }
.player-riding[data-riding-ui="fullscreen"] .riding-estimate-gauges { display:grid; gap:5px; }
.player-riding[data-riding-ui="fullscreen"] .riding-estimate-row {
 display:grid; grid-template-columns:64px minmax(60px,1fr) 112px; gap:7px; align-items:center; min-width:0;
}
.player-riding[data-riding-ui="fullscreen"] .riding-estimate-row>label { display:block; margin:0; font-size:12px; font-weight:700; }
.player-riding[data-riding-ui="fullscreen"] .riding-estimate-row>output { font-size:11px; font-weight:650; line-height:1.3; text-align:right; }
.player-riding[data-riding-ui="fullscreen"] .riding-segments { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:3px; min-width:0; }
.player-riding[data-riding-ui="fullscreen"] .riding-segments>span { height:12px; border-radius:3px; background:#a6b6c23b; box-shadow:inset 0 1px 2px #0003; }
.player-riding[data-riding-ui="fullscreen"] .riding-stamina .riding-segments>span[data-filled="true"] { background:linear-gradient(#b5ffdc,#72dfb6); box-shadow:0 0 6px #92f8c41f; }
.player-riding[data-riding-ui="fullscreen"] .riding-legs .riding-segments>span[data-filled="true"] { background:linear-gradient(#a5dcff,#65b1e3); box-shadow:0 0 6px #7dccff1f; }
.player-riding[data-riding-ui="fullscreen"] .riding-effort-readout { display:grid; grid-template-columns:1fr auto auto; align-items:center; gap:5px 7px; margin-top:6px; padding-top:5px; border-top:1px solid #d8e8ee4f; }
.player-riding[data-riding-ui="fullscreen"] .riding-effort-readout>strong { font-size:12px; letter-spacing:.02em; }
.player-riding[data-riding-ui="fullscreen"] .riding-effort-readout>small { padding:0 6px; border:1px solid #c4d0d366; border-radius:4px; font-size:9px; line-height:1.5; color:#e6edf0; }
.player-riding[data-riding-ui="fullscreen"] [data-effort-label] { color:#ffe39a; font-size:11px; }
.player-riding[data-riding-ui="fullscreen"] .riding-effort-segments { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); grid-column:1/-1; width:100%; margin-top:1px; border:1px solid #d7dfdc80; border-radius:5px; overflow:hidden; }
.player-riding[data-riding-ui="fullscreen"] .riding-effort-segments>span { display:grid; place-items:center; min-height:25px; padding:3px 2px; background:#0e172d55; font-size:11px; font-weight:750; line-height:1.2; color:#f4f6f7; }
.player-riding[data-riding-ui="fullscreen"] .riding-effort-segments>span+span { border-left:1px solid #c6d0d754; }
/* Keep the approved three-state strip; braking temporarily replaces settling. */
.player-riding[data-riding-ui="fullscreen"] .riding-effort-segments>[data-level="hold"] { display:none; }
.player-riding[data-riding-ui="fullscreen"] .riding-effort-segments>[data-level="hold"][data-active="true"] { display:grid; }
.player-riding[data-riding-ui="fullscreen"] .riding-effort-segments>[data-level="hold"][data-active="true"]+[data-level="settle"] { display:none; }
.player-riding[data-riding-ui="fullscreen"] .riding-effort-segments>span[data-active="true"] { color:#392600; background:linear-gradient(#ffe99b,#e6ae38); box-shadow:inset 0 0 8px #fff9c1,0 0 9px #f2ce7355; }
.player-riding[data-riding-ui="fullscreen"] .riding-effort-segments>span:is([data-level="1"],[data-level="drive"])[data-active="true"] { color:#fff; background:linear-gradient(#ffa350,#d85c16); box-shadow:inset 0 0 8px #ffd79e,0 0 9px #fd8d4655; }
.player-riding[data-riding-ui="fullscreen"] .riding-effort-segments>[data-level="hold"][data-active="true"] { color:#e6f8ff; background:#365a75; box-shadow:inset 0 0 6px #a5d7ec55; }
.player-riding[data-riding-ui="fullscreen"] .riding-burden { margin:4px 0 0; font-size:10px; line-height:1.4; color:#e7ebea; }

#panel.riding-panel-open.riding-fullscreen-open {
 position:fixed; inset:0; margin:0; width:100%; max-width:100vw;
 height:100vh; height:100svh; height:100dvh;
 max-height:100vh; max-height:100svh; max-height:100dvh;
 border:0; border-radius:0; padding:0; overflow:hidden; background:#182c35;
}
#panel.riding-panel-open.riding-fullscreen-open>.panel-head,
#panel.riding-panel-open.riding-fullscreen-open>#market-panel-status,
#panel.riding-panel-open.riding-fullscreen-open .last-emperor-controls { display:none; }
#panel.riding-panel-open.riding-fullscreen-open #panel-body {
 position:relative; display:block; width:100%; height:100%; min-height:0; flex:1;
 padding:0; overflow:hidden; overscroll-behavior:none; touch-action:none; scroll-padding:0;
}
.player-riding[data-riding-ui="fullscreen"]:is([data-riding-phase="ready"],[data-riding-phase="running"]) {
 position:relative; isolation:isolate; width:100%; height:100vh; height:100svh; height:100dvh;
 min-height:0; margin:0; overflow:hidden; touch-action:none; color:#f5f7f8;
}
.player-riding[data-riding-ui="fullscreen"]:is([data-riding-phase="ready"],[data-riding-phase="running"]) .riding-panel {
 position:relative; display:block; width:100%; max-width:none; height:100%; min-height:0; padding:0; margin:0;
 border:0; border-radius:0; background:#182c35; box-shadow:none; overflow:hidden;
}
.player-riding[data-riding-ui="fullscreen"]:is([data-riding-phase="ready"],[data-riding-phase="running"]) :is(.riding-heading,.riding-gauges,.riding-reading-detail,.riding-guidance,.riding-help,.riding-rival-read) { display:none; }
/* Keep live announcements in the accessibility tree while removing visual clutter. */
.player-riding[data-riding-ui="fullscreen"]:is([data-riding-phase="ready"],[data-riding-phase="running"]) .riding-live {
 position:absolute; width:1px; height:1px; min-height:0; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0;
}
.player-riding[data-riding-ui="fullscreen"]:is([data-riding-phase="ready"],[data-riding-phase="running"]) .riding-track {
 position:absolute; inset:0; z-index:0; width:100%; height:100%; border:0; border-radius:0; touch-action:none;
}
.player-riding[data-riding-ui="fullscreen"]:is([data-riding-phase="ready"],[data-riding-phase="running"]) .riding-track canvas {
 width:100%; height:100%; min-height:0; max-height:none; touch-action:none;
}
.player-riding[data-riding-ui="fullscreen"]:is([data-riding-phase="ready"],[data-riding-phase="running"]) .riding-gate {
 inset:29% 0 26%; z-index:1; background:transparent; font-size:clamp(38px,10vw,82px); text-shadow:0 3px 18px #061423,0 1px 4px #061423;
}
.player-riding[data-riding-ui="fullscreen"]:is([data-riding-phase="ready"],[data-riding-phase="running"]) .riding-meters {
 position:absolute; z-index:3; top:var(--ride-safe-top); left:var(--ride-safe-left); right:var(--ride-safe-right);
 display:grid; grid-template-columns:minmax(72px,1fr) auto minmax(66px,1fr); align-items:center; gap:5px;
 height:var(--ride-hud-height); padding:7px 54px 13px 10px; border:1px solid #dce9f162; border-radius:9px;
 background:var(--ride-glass); box-shadow:0 3px 12px #071b3630; backdrop-filter:blur(9px); -webkit-backdrop-filter:blur(9px);
 font-size:12px; line-height:1.2; font-variant-numeric:tabular-nums; text-shadow:0 1px 3px #0005;
}
.player-riding[data-riding-ui="fullscreen"]:is([data-riding-phase="ready"],[data-riding-phase="running"]) .riding-meters>span:first-child { color:#f4f7fa; }
.player-riding[data-riding-ui="fullscreen"]:is([data-riding-phase="ready"],[data-riding-phase="running"]) :is([data-speed],[data-start]) { display:none; }
.player-riding[data-riding-ui="fullscreen"]:is([data-riding-phase="ready"],[data-riding-phase="running"]) .riding-course { font-weight:750; font-size:13px; line-height:1.3; min-width:0; }
.player-riding[data-riding-ui="fullscreen"]:is([data-riding-phase="ready"],[data-riding-phase="running"]) .riding-course small { display:block; color:#dce7f0; font-size:9px; line-height:1.3; font-weight:500; }
.player-riding[data-riding-ui="fullscreen"]:is([data-riding-phase="ready"],[data-riding-phase="running"]) [data-rank] { font-size:22px; font-weight:850; letter-spacing:-.04em; white-space:nowrap; text-align:center; }
.player-riding[data-riding-ui="fullscreen"]:is([data-riding-phase="ready"],[data-riding-phase="running"]) [data-distance] { font-size:12px; font-weight:750; white-space:nowrap; text-align:right; }
.player-riding[data-riding-ui="fullscreen"]:is([data-riding-phase="ready"],[data-riding-phase="running"]) .riding-race-progress {
 position:absolute; bottom:6px; left:10px; width:calc(100% - 20px); height:4px; margin:0; overflow:hidden;
 appearance:none; -webkit-appearance:none; border:0; border-radius:5px; background:#bdcbd35c; accent-color:#61e0b5;
}
.player-riding[data-riding-ui="fullscreen"] .riding-race-progress::-webkit-progress-bar { background:#bdcbd35c; border-radius:5px; }
.player-riding[data-riding-ui="fullscreen"] .riding-race-progress::-webkit-progress-value { background:#61e0b5; border-radius:5px; }
.player-riding[data-riding-ui="fullscreen"] .riding-race-progress::-moz-progress-bar { background:#61e0b5; border-radius:5px; }
.player-riding[data-riding-ui="fullscreen"] .riding-race-progress>span { display:block; height:100%; border-radius:5px; background:#61e0b5; }
.player-riding[data-riding-ui="fullscreen"]:is([data-riding-phase="ready"],[data-riding-phase="running"]) .riding-perception {
 position:absolute; z-index:3; top:calc(var(--ride-safe-top) + var(--ride-hud-height) + 6px);
 left:var(--ride-safe-left); right:var(--ride-safe-right); margin:0; padding:7px 9px;
 background:var(--ride-glass); border:1px solid #dce9f15c; border-radius:9px;
 backdrop-filter:blur(9px); -webkit-backdrop-filter:blur(9px); box-shadow:0 3px 12px #071b3626;
 font-size:12px; line-height:1.35; text-shadow:0 1px 2px #0004;
}
.player-riding[data-riding-ui="fullscreen"]:is([data-riding-phase="ready"],[data-riding-phase="running"]) .riding-perception header { justify-content:flex-start; gap:10px; margin:0 0 5px; padding-bottom:4px; border-bottom:1px solid #d8e8ee4f; }
.player-riding[data-riding-ui="fullscreen"]:is([data-riding-phase="ready"],[data-riding-phase="running"]) .riding-perception header strong { font-size:12px; color:#fff; }
.player-riding[data-riding-ui="fullscreen"]:is([data-riding-phase="ready"],[data-riding-phase="running"]) .riding-perception header small { font-size:9px; color:#e0e8ed; }
.player-riding[data-riding-ui="fullscreen"]:is([data-riding-phase="ready"],[data-riding-phase="running"]) .riding-perception>small { display:none; }
.player-riding[data-riding-ui="fullscreen"]:is([data-riding-phase="ready"],[data-riding-phase="running"]) .riding-dock {
 position:absolute; z-index:4; inset:auto 0 0; height:calc(242px + var(--ride-safe-bottom));
 margin:0; padding:24px max(12px,env(safe-area-inset-right,0px)) var(--ride-safe-bottom) max(12px,env(safe-area-inset-left,0px));
 border:0; background:linear-gradient(transparent,#10161f24 18%,#080e18a8 77%,#070c17cf);
 box-shadow:none; touch-action:none; pointer-events:none;
}
.player-riding[data-riding-ui="fullscreen"]:is([data-riding-phase="ready"],[data-riding-phase="running"]) .riding-gesture-controls {
 display:block; position:relative; height:200px; max-width:600px; margin:0 auto; pointer-events:none;
}
.player-riding[data-riding-ui="fullscreen"]:is([data-riding-phase="ready"],[data-riding-phase="running"]) .riding-gesture-hint {
 position:absolute; top:0; left:0; right:0; margin:0; text-align:center; color:#fff;
 font-size:12px; font-weight:700; line-height:1.4; text-shadow:0 2px 5px #000,0 0 12px #0008;
}
.player-riding[data-riding-ui="fullscreen"] .riding-lever-wrap { position:absolute; bottom:11px; left:42%; transform:translateX(-50%); width:176px; height:164px; color:#fff; text-shadow:0 2px 4px #000; }
.player-riding[data-riding-ui="fullscreen"] .riding-lever-wrap>small { position:absolute; font-size:11px; font-weight:750; line-height:1.3; white-space:nowrap; color:#fff; }
.player-riding[data-riding-ui="fullscreen"] .riding-lever-up { left:50%; top:0; transform:translateX(-50%); }
.player-riding[data-riding-ui="fullscreen"] .riding-lever-down { left:50%; bottom:0; transform:translateX(-50%); }
.player-riding[data-riding-ui="fullscreen"] .riding-lane-left { left:0; top:76px; }
.player-riding[data-riding-ui="fullscreen"] .riding-lane-right { right:0; top:76px; }
.player-riding[data-riding-ui="fullscreen"] .riding-lever {
 --ride-knob-x:0px; --ride-knob-y:0px; position:absolute; left:34px; top:24px; width:108px; height:112px;
 border:1px solid #fbf7e391; border-radius:50%; background:radial-gradient(ellipse,#9b9a8535,#1a202344);
 box-shadow:inset 0 0 18px #d1e2d211,0 2px 12px #0003; pointer-events:auto; touch-action:none;
 cursor:grab; user-select:none; -webkit-user-select:none; -webkit-touch-callout:none;
}
.player-riding[data-riding-ui="fullscreen"] .riding-lever:active { cursor:grabbing; }
.player-riding[data-riding-ui="fullscreen"] .riding-lever:focus-visible { outline:3px solid #fff3a2; outline-offset:5px; }
.player-riding[data-riding-ui="fullscreen"] .riding-lever-rail { position:absolute; width:2px; left:calc(50% - 1px); top:11px; bottom:11px; background:linear-gradient(#ffe7a8,#bfc9c899); pointer-events:none; }
.player-riding[data-riding-ui="fullscreen"] .riding-lever-rail::before,
.player-riding[data-riding-ui="fullscreen"] .riding-lever-rail::after { content:""; position:absolute; left:-3px; width:8px; height:8px; border-radius:50%; background:#b8c3c2; border:1px solid #eef3e588; }
.player-riding[data-riding-ui="fullscreen"] .riding-lever-rail::before { top:0; }
.player-riding[data-riding-ui="fullscreen"] .riding-lever-rail::after { bottom:0; }
.player-riding[data-riding-ui="fullscreen"] .riding-lever-center { position:absolute; top:50%; left:50%; width:12px; height:12px; border-radius:50%; transform:translate(-50%,-50%); border:1px solid #f2f4e7aa; background:#abb6b9; pointer-events:none; }
.player-riding[data-riding-ui="fullscreen"] .riding-lever-knob { position:absolute; top:50%; left:50%; width:28px; height:28px; border:2px solid #e9f0e6; border-radius:50%; background:radial-gradient(circle at 35% 30%,#eff4ed,#9eaaa8 75%); box-shadow:0 2px 7px #0005; transform:translate(calc(-50% + var(--ride-knob-x)),calc(-50% + var(--ride-knob-y))); pointer-events:none; transition:transform .09s ease-out,background .09s linear; }
.player-riding[data-riding-ui="fullscreen"] .riding-lever[data-effort="-1"] { --ride-knob-y:34px; }
.player-riding[data-riding-ui="fullscreen"] .riding-lever:is([data-effort=".65"],[data-effort="0.65"]) { --ride-knob-y:-28px; }
.player-riding[data-riding-ui="fullscreen"] .riding-lever[data-effort="1"] { --ride-knob-y:-42px; }
.player-riding[data-riding-ui="fullscreen"] .riding-lever[data-screen-steer="-1"] { --ride-knob-x:-22px; }
.player-riding[data-riding-ui="fullscreen"] .riding-lever[data-screen-steer="1"] { --ride-knob-x:22px; }
.player-riding[data-riding-ui="fullscreen"] .riding-lever:is([data-effort=".65"],[data-effort="0.65"],[data-effort="1"]) .riding-lever-knob { border-color:#fff5b6; background:radial-gradient(circle at 35% 28%,#fffde0,#ffc644 56%,#e69b22); box-shadow:0 0 6px #fff4b5,0 0 19px #ffe37399; }
.player-riding[data-riding-ui="fullscreen"] .riding-lever[data-effort="1"] .riding-lever-knob { background:radial-gradient(circle at 35% 28%,#fff4b6,#ff9b38 56%,#d75a1c); box-shadow:0 0 8px #ffe4a3,0 0 22px #ffb153b0; }
.player-riding[data-riding-ui="fullscreen"]:is([data-riding-phase="ready"],[data-riding-phase="running"]) .riding-gesture-controls .riding-whip {
 position:absolute; right:0; bottom:39px; width:84px; height:84px; min-width:84px; min-height:84px;
 padding:46px 0 5px; border:2px solid #ffeb8c; border-radius:50%; color:#ffe78b; background:radial-gradient(circle at 50% 40%,#3b311de0,#171a1ddb);
 box-shadow:0 0 0 3px #ffe99422,0 0 14px #ffd86a80,inset 0 0 15px #a786372e; font-size:18px; line-height:1.2;
 pointer-events:auto; touch-action:none; user-select:none; -webkit-user-select:none; -webkit-touch-callout:none;
}
.player-riding[data-riding-ui="fullscreen"]:is([data-riding-phase="ready"],[data-riding-phase="running"]) .riding-gesture-controls .riding-whip::before { content:""; position:absolute; left:30px; top:15px; width:19px; height:30px; border-top:2px solid #ffe8aa; border-right:3px solid #fff2c7; border-radius:7px 9px 0 0; transform:rotate(35deg); filter:drop-shadow(0 0 3px #ffd98780); }
.player-riding[data-riding-ui="fullscreen"]:is([data-riding-phase="ready"],[data-riding-phase="running"]) .riding-gesture-controls .riding-whip small { display:none; }
.player-riding[data-riding-ui="fullscreen"]:is([data-riding-phase="ready"],[data-riding-phase="running"]) .riding-gesture-controls .riding-whip:active:not(:disabled) { background:#776020e6; transform:scale(.96); }
.player-riding[data-riding-ui="fullscreen"] .riding-whip-note { position:absolute; right:-3px; bottom:3px; width:94px; margin:0; text-align:center; color:#fff5d7; font-size:11px; line-height:1.4; text-shadow:0 2px 4px #000; }
.player-riding[data-riding-ui="fullscreen"] [data-whip-count] { color:#ffe38b; font-size:18px; font-weight:800; }
.player-riding[data-riding-ui="fullscreen"]:is([data-riding-phase="ready"],[data-riding-phase="running"]) .riding-gesture-controls .riding-launch {
 position:absolute; left:50%; top:-60px; transform:translateX(-50%); width:min(250px,85%); min-height:48px;
 background:linear-gradient(#ffe699,#e6ba51); border-color:#fff1b5; color:#332910; box-shadow:0 2px 15px #0005;
 pointer-events:auto; touch-action:none;
}
.player-riding[data-riding-ui="fullscreen"]:is([data-riding-phase="ready"],[data-riding-phase="running"]) .riding-actions { display:contents; }
.player-riding[data-riding-ui="fullscreen"]:is([data-riding-phase="ready"],[data-riding-phase="running"]) .riding-actions button { display:none; }
.player-riding[data-riding-ui="fullscreen"]:is([data-riding-phase="ready"],[data-riding-phase="running"]) .riding-actions button[data-action="pause"] {
 display:grid; place-items:center; position:fixed; z-index:7; top:calc(var(--ride-safe-top) + 6px); right:calc(var(--ride-safe-right) + 6px);
 width:44px; min-width:44px; height:44px; min-height:44px; padding:2px; border:1px solid #f2f5f1aa; border-radius:50%;
 background:#10222c99; color:#fff; font-size:11px; line-height:1.2; box-shadow:none; pointer-events:auto; touch-action:manipulation;
}
.player-riding[data-riding-ui="fullscreen"][data-riding-phase="ready"] .riding-actions button[data-action="quit"] {
 display:grid; place-items:center; position:fixed; z-index:7; top:calc(var(--ride-safe-top) + 6px); right:calc(var(--ride-safe-right) + 6px);
 width:44px; min-width:44px; height:44px; min-height:44px; padding:2px; border:1px solid #f2f5f1aa; border-radius:50%;
 background:#10222c99; color:#fff; font-size:11px; line-height:1.2; box-shadow:none; pointer-events:auto; touch-action:manipulation;
}
.player-riding[data-riding-ui="fullscreen"][data-riding-phase="ready"] .riding-actions button[data-action="begin"] {
 display:block; position:absolute; z-index:7; bottom:calc(var(--ride-safe-bottom) + 222px); left:50%; transform:translateX(-50%);
 width:min(300px,calc(100% - 32px)); min-height:48px; padding:12px; border:1px solid #fff0a0; border-radius:10px;
 background:linear-gradient(#ffe99a,#e3b44c); color:#2e2919; font-size:15px; box-shadow:0 3px 18px #0005; pointer-events:auto; touch-action:manipulation;
}
.player-riding[data-riding-ui="fullscreen"]:is([data-riding-phase="ready"],[data-riding-phase="running"]) .riding-accessible-controls {
 position:absolute; z-index:8; left:var(--ride-safe-left); bottom:var(--ride-safe-bottom); max-width:calc(100% - var(--ride-safe-left) - var(--ride-safe-right)); pointer-events:auto; touch-action:manipulation;
}
.player-riding[data-riding-ui="fullscreen"]:is([data-riding-phase="ready"],[data-riding-phase="running"]) .riding-accessible-controls>summary {
 display:list-item; min-width:44px; min-height:44px; padding:13px 8px; color:#e1e8e6; font-size:10px; line-height:1.5; border-radius:7px; cursor:pointer; text-shadow:0 1px 4px #000;
}
.player-riding[data-riding-ui="fullscreen"]:is([data-riding-phase="ready"],[data-riding-phase="running"]) .riding-accessible-controls[open] { width:calc(100% - var(--ride-safe-left) - var(--ride-safe-right)); padding:0 8px 8px; background:#172c37f5; border:1px solid #bed1d180; border-radius:10px; box-shadow:0 -4px 20px #0005; }
.player-riding[data-riding-ui="fullscreen"]:is([data-riding-phase="ready"],[data-riding-phase="running"]) .riding-accessible-controls .riding-controls { grid-template-columns:repeat(3,minmax(44px,1fr)); gap:6px; }
.player-riding[data-riding-ui="fullscreen"]:is([data-riding-phase="ready"],[data-riding-phase="running"]) .riding-accessible-controls .riding-controls button { min-width:44px; min-height:44px; padding:6px 4px; font-size:12px; pointer-events:auto; }
.player-riding[data-riding-ui="fullscreen"] .riding-accessible-controls>summary:focus-visible { outline:3px solid #fff3a2; outline-offset:1px; }

@media(max-width:359px) {
 .player-riding[data-riding-ui="fullscreen"] .riding-estimate-row { grid-template-columns:57px minmax(50px,1fr) 99px; gap:5px; }
 .player-riding[data-riding-ui="fullscreen"] .riding-estimate-row>output { font-size:10px; }
 .player-riding[data-riding-ui="fullscreen"]:is([data-riding-phase="ready"],[data-riding-phase="running"]) .riding-meters { grid-template-columns:minmax(62px,1fr) auto minmax(56px,1fr); gap:4px; padding-left:8px; }
 .player-riding[data-riding-ui="fullscreen"]:is([data-riding-phase="ready"],[data-riding-phase="running"]) .riding-course { font-size:11px; }
 .player-riding[data-riding-ui="fullscreen"]:is([data-riding-phase="ready"],[data-riding-phase="running"]) [data-rank] { font-size:19px; }
 .player-riding[data-riding-ui="fullscreen"]:is([data-riding-phase="ready"],[data-riding-phase="running"]) [data-distance] { font-size:10px; }
 .player-riding[data-riding-ui="fullscreen"] .riding-lever-wrap { left:39%; }
 .player-riding[data-riding-ui="fullscreen"]:is([data-riding-phase="ready"],[data-riding-phase="running"]) .riding-gesture-controls .riding-whip { width:76px; min-width:76px; height:76px; min-height:76px; bottom:43px; padding-top:43px; }
 .player-riding[data-riding-ui="fullscreen"]:is([data-riding-phase="ready"],[data-riding-phase="running"]) .riding-gesture-controls .riding-whip::before { left:26px; top:12px; }
 .player-riding[data-riding-ui="fullscreen"] .riding-whip-note { width:86px; font-size:10px; }
}
@media(max-width:600px),(pointer:coarse) {
 .player-riding[data-riding-ui="fullscreen"]:is([data-riding-phase="ready"],[data-riding-phase="running"]) .riding-dock>.riding-controls { display:none; }
}
/* Landscape moves readings to the upper-left and gestures to the lower-right.
   The horse/camera remain an unobstructed full-viewport backdrop. */
@media(orientation:landscape) and (max-height:540px) {
 .player-riding[data-riding-ui="fullscreen"] { --ride-hud-height:54px; }
 .player-riding[data-riding-ui="fullscreen"]:is([data-riding-phase="ready"],[data-riding-phase="running"]) .riding-meters { left:var(--ride-safe-left); right:var(--ride-safe-right); grid-template-columns:minmax(100px,1fr) auto minmax(90px,1fr); padding-top:4px; padding-bottom:11px; }
 .player-riding[data-riding-ui="fullscreen"]:is([data-riding-phase="ready"],[data-riding-phase="running"]) .riding-actions button[data-action="pause"] { top:calc(var(--ride-safe-top) + 3px); }
 .player-riding[data-riding-ui="fullscreen"][data-riding-phase="ready"] .riding-actions button[data-action="quit"] { top:calc(var(--ride-safe-top) + 3px); }
 .player-riding[data-riding-ui="fullscreen"]:is([data-riding-phase="ready"],[data-riding-phase="running"]) .riding-perception { right:auto; width:min(350px,44%); padding:6px 8px; }
 .player-riding[data-riding-ui="fullscreen"]:is([data-riding-phase="ready"],[data-riding-phase="running"]) .riding-gate { inset:calc(var(--ride-safe-top) + 62px) var(--ride-safe-right) auto auto; width:48%; height:60px; font-size:44px; }
 .player-riding[data-riding-ui="fullscreen"][data-riding-phase="ready"] .riding-gate { display:none; }
 .player-riding[data-riding-ui="fullscreen"] .riding-estimate-row { grid-template-columns:57px minmax(40px,1fr) 98px; gap:5px; }
 .player-riding[data-riding-ui="fullscreen"] .riding-estimate-row>output { font-size:10px; }
 .player-riding[data-riding-ui="fullscreen"]:is([data-riding-phase="ready"],[data-riding-phase="running"]) .riding-perception header { gap:6px; margin-bottom:4px; padding-bottom:3px; }
 .player-riding[data-riding-ui="fullscreen"]:is([data-riding-phase="ready"],[data-riding-phase="running"]) .riding-dock { height:calc(194px + var(--ride-safe-bottom)); padding-top:0; background:linear-gradient(transparent,#0a142547); }
 .player-riding[data-riding-ui="fullscreen"]:is([data-riding-phase="ready"],[data-riding-phase="running"]) .riding-gesture-controls { width:min(370px,48%); height:180px; margin:0 0 0 auto; }
 .player-riding[data-riding-ui="fullscreen"]:is([data-riding-phase="ready"],[data-riding-phase="running"]) .riding-gesture-hint { top:-4px; font-size:11px; }
 .player-riding[data-riding-ui="fullscreen"] .riding-lever-wrap { left:37%; bottom:0; height:154px; }
 .player-riding[data-riding-ui="fullscreen"] .riding-lever { top:19px; }
 .player-riding[data-riding-ui="fullscreen"] .riding-lane-left,
 .player-riding[data-riding-ui="fullscreen"] .riding-lane-right { top:69px; }
 .player-riding[data-riding-ui="fullscreen"] .riding-whip-note { bottom:0; }
 .player-riding[data-riding-ui="fullscreen"]:is([data-riding-phase="ready"],[data-riding-phase="running"]) .riding-gesture-controls .riding-whip { bottom:33px; }
 .player-riding[data-riding-ui="fullscreen"]:is([data-riding-phase="ready"],[data-riding-phase="running"]) .riding-gesture-controls .riding-launch { top:-58px; }
 .player-riding[data-riding-ui="fullscreen"][data-riding-phase="ready"] .riding-actions button[data-action="begin"] { left:auto; right:var(--ride-safe-right); bottom:calc(var(--ride-safe-bottom) + 218px); transform:none; width:min(330px,44%); }
 .player-riding[data-riding-ui="fullscreen"]:is([data-riding-phase="ready"],[data-riding-phase="running"]) .riding-accessible-controls[open] { width:min(450px,calc(100% - var(--ride-safe-left) - var(--ride-safe-right))); }
}
@media(prefers-reduced-motion:reduce) {
 .player-riding[data-riding-ui="fullscreen"] .riding-lever-knob { transition:none; }
 .player-riding[data-riding-ui="fullscreen"]:is([data-riding-phase="ready"],[data-riding-phase="running"]) .riding-gesture-controls .riding-whip:active:not(:disabled) { transform:none; }
}

/* v7.2.21: the race owns the visible modal viewport, never the document flow.
   These overrides apply only to ready/running; paused results keep native scroll. */
#panel.riding-panel-open.riding-fullscreen-open {
 height:var(--ride-viewport-height,100dvh);
 max-height:var(--ride-viewport-height,100dvh);
}
#panel.riding-panel-open.riding-fullscreen-open .emperor-test-banner { display:none; }
.player-riding[data-riding-ui="fullscreen"]:is([data-riding-phase="ready"],[data-riding-phase="running"]) {
 --ride-hud-height:44px;
 --ride-reading-height:74px;
 position:absolute; inset:0; height:100%; max-height:100%;
}
.player-riding[data-riding-ui="fullscreen"]:is([data-riding-phase="ready"],[data-riding-phase="running"]) .riding-meters {
 height:var(--ride-hud-height); padding:3px 54px 8px 8px; gap:4px;
 grid-template-columns:minmax(72px,1fr) auto minmax(62px,1fr);
 border-radius:8px;
}
.player-riding[data-riding-ui="fullscreen"]:is([data-riding-phase="ready"],[data-riding-phase="running"]) .riding-course { font-size:11px; line-height:1.2; }
.player-riding[data-riding-ui="fullscreen"]:is([data-riding-phase="ready"],[data-riding-phase="running"]) .riding-course small { font-size:9px; line-height:1.1; }
.player-riding[data-riding-ui="fullscreen"]:is([data-riding-phase="ready"],[data-riding-phase="running"]) [data-rank] { font-size:20px; line-height:1.1; }
.player-riding[data-riding-ui="fullscreen"]:is([data-riding-phase="ready"],[data-riding-phase="running"]) [data-distance] { font-size:11px; }
.player-riding[data-riding-ui="fullscreen"]:is([data-riding-phase="ready"],[data-riding-phase="running"]) .riding-race-progress { bottom:3px; left:8px; width:calc(100% - 16px); height:3px; }
.player-riding[data-riding-ui="fullscreen"]:is([data-riding-phase="ready"],[data-riding-phase="running"]) .riding-perception {
 display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); grid-template-rows:12px 30px 14px;
 gap:3px 8px; height:var(--ride-reading-height); padding:5px 8px;
 top:calc(var(--ride-safe-top) + var(--ride-hud-height) + 4px);
 left:var(--ride-safe-left); right:var(--ride-safe-right); width:auto;
 line-height:1.2; border-radius:8px; overflow:hidden;
}
.player-riding[data-riding-ui="fullscreen"]:is([data-riding-phase="ready"],[data-riding-phase="running"]) .riding-perception header {
 grid-column:1/-1; min-width:0; gap:8px; margin:0; padding:0; border:0; line-height:12px;
}
.player-riding[data-riding-ui="fullscreen"]:is([data-riding-phase="ready"],[data-riding-phase="running"]) .riding-perception header strong { font-size:10px; white-space:nowrap; }
.player-riding[data-riding-ui="fullscreen"]:is([data-riding-phase="ready"],[data-riding-phase="running"]) .riding-perception header small { font-size:9px; white-space:nowrap; }
.player-riding[data-riding-ui="fullscreen"]:is([data-riding-phase="ready"],[data-riding-phase="running"]) .riding-estimate-gauges { display:grid; grid-column:1/-1; gap:2px; min-width:0; }
.player-riding[data-riding-ui="fullscreen"]:is([data-riding-phase="ready"],[data-riding-phase="running"]) .riding-estimate-row { grid-template-columns:55px minmax(0,1fr); gap:7px; height:14px; }
.player-riding[data-riding-ui="fullscreen"]:is([data-riding-phase="ready"],[data-riding-phase="running"]) .riding-estimate-row>label { font-size:11px; line-height:14px; white-space:nowrap; }
.player-riding[data-riding-ui="fullscreen"]:is([data-riding-phase="ready"],[data-riding-phase="running"]) .riding-estimate-row>output { display:none; }
.player-riding[data-riding-ui="fullscreen"]:is([data-riding-phase="ready"],[data-riding-phase="running"]) .riding-segments>span { height:9px; border-radius:2px; }
.player-riding[data-riding-ui="fullscreen"]:is([data-riding-phase="ready"],[data-riding-phase="running"]) .riding-effort-readout {
 display:flex; flex-wrap:nowrap; align-items:center; min-width:0; gap:4px; margin:0; padding:0; border:0; line-height:14px;
}
.player-riding[data-riding-ui="fullscreen"]:is([data-riding-phase="ready"],[data-riding-phase="running"]) .riding-effort-readout>strong { font-size:10px; letter-spacing:0; white-space:nowrap; }
.player-riding[data-riding-ui="fullscreen"]:is([data-riding-phase="ready"],[data-riding-phase="running"]) .riding-effort-readout>small,
.player-riding[data-riding-ui="fullscreen"]:is([data-riding-phase="ready"],[data-riding-phase="running"]) .riding-effort-segments { display:none; }
.player-riding[data-riding-ui="fullscreen"]:is([data-riding-phase="ready"],[data-riding-phase="running"]) [data-effort-label] { font-size:11px; line-height:14px; white-space:nowrap; }
.player-riding[data-riding-ui="fullscreen"]:is([data-riding-phase="ready"],[data-riding-phase="running"]) .riding-burden {
 min-width:0; margin:0; font-size:10px; line-height:14px; text-align:right; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
/* A full-root non-interactive dock gives the pause/exit buttons true viewport
   anchors. Only the actual controls opt back into pointer events. */
.player-riding[data-riding-ui="fullscreen"]:is([data-riding-phase="ready"],[data-riding-phase="running"]) .riding-dock {
 inset:0; width:100%; height:100%; margin:0; padding:0; pointer-events:none;
 background:linear-gradient(to bottom,transparent calc(100% - 214px),#10161f12 calc(100% - 170px),#070c1799);
}
.player-riding[data-riding-ui="fullscreen"]:is([data-riding-phase="ready"],[data-riding-phase="running"]) .riding-gesture-controls {
 position:absolute; left:max(12px,env(safe-area-inset-left,0px)); right:max(12px,env(safe-area-inset-right,0px)); bottom:var(--ride-safe-bottom);
 width:auto; max-width:600px; height:190px; margin:0 auto; pointer-events:none;
}
.player-riding[data-riding-ui="fullscreen"]:is([data-riding-phase="ready"],[data-riding-phase="running"]) .riding-actions button[data-action="pause"],
.player-riding[data-riding-ui="fullscreen"][data-riding-phase="ready"] .riding-actions button[data-action="quit"] {
 position:absolute; top:var(--ride-safe-top); right:var(--ride-safe-right); width:44px; height:44px; min-width:44px; min-height:44px;
}
.player-riding[data-riding-ui="fullscreen"][data-riding-phase="ready"] .riding-actions button[data-action="begin"] { bottom:calc(var(--ride-safe-bottom) + 208px); }
/* Position is a separate small glance panel, rather than another HUD row. */
.player-riding .riding-position-guide { display:none; }
.player-riding[data-riding-ui="fullscreen"]:is([data-riding-phase="ready"],[data-riding-phase="running"]) .riding-position-guide {
 display:grid; grid-template-columns:44px minmax(0,1fr); grid-template-rows:12px 44px; gap:4px 6px;
 position:absolute; z-index:3; top:calc(var(--ride-safe-top) + var(--ride-hud-height) + var(--ride-reading-height) + 10px); left:var(--ride-safe-left);
 width:144px; height:76px; padding:6px 5px; border:1px solid #dce9f152; border-radius:8px;
 color:#f4f7f7; background:#172a36b8; backdrop-filter:blur(5px); -webkit-backdrop-filter:blur(5px);
 box-shadow:0 2px 8px #071b3620; text-shadow:0 1px 2px #0007; pointer-events:none;
}
.player-riding[data-riding-ui="fullscreen"] .riding-position-title { grid-column:1/-1; margin:0; font-size:10px; font-weight:650; line-height:12px; letter-spacing:0; }
.player-riding[data-riding-ui="fullscreen"] .riding-position-map {
 position:relative; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); grid-template-rows:repeat(3,minmax(0,1fr));
 gap:1px; width:44px; height:44px; padding:1px; margin:0; border:1px solid #dbe6e85c; border-radius:4px; background:#d5e2e620; overflow:hidden;
}
.player-riding[data-riding-ui="fullscreen"] .riding-position-map>span { min-width:0; min-height:0; border:1px solid transparent; background:#10232b62; }
.player-riding[data-riding-ui="fullscreen"] .riding-position-map>span[data-target="true"] { border-color:#b4d9c17a; background:#a2d2ae1c; }
.player-riding[data-riding-ui="fullscreen"] .riding-position-map>[data-position-marker] {
 position:absolute; left:clamp(4px,var(--position-x,50%),calc(100% - 4px)); top:clamp(4px,var(--position-y,50%),calc(100% - 4px));
 width:7px; height:7px; margin:0; border:1px solid #fff9dc; border-radius:50%; background:#ffe58f;
 transform:translate(-50%,-50%); box-shadow:0 0 4px #ffedaf75;
}
.player-riding[data-riding-ui="fullscreen"] .riding-position-hints { display:flex; flex-direction:column; justify-content:center; gap:2px; min-width:0; margin:0; }
.player-riding[data-riding-ui="fullscreen"] .riding-position-hints b { display:block; font-size:11px; font-weight:650; line-height:14px; white-space:normal; overflow-wrap:anywhere; }
@media(max-width:359px) {
 .player-riding[data-riding-ui="fullscreen"]:is([data-riding-phase="ready"],[data-riding-phase="running"]) .riding-meters { grid-template-columns:minmax(67px,1fr) auto minmax(58px,1fr); }
 .player-riding[data-riding-ui="fullscreen"]:is([data-riding-phase="ready"],[data-riding-phase="running"]) [data-rank] { font-size:19px; }
 .player-riding[data-riding-ui="fullscreen"]:is([data-riding-phase="ready"],[data-riding-phase="running"]) [data-distance] { font-size:10px; }
}
@media(orientation:landscape) and (max-height:540px) {
 .player-riding[data-riding-ui="fullscreen"]:is([data-riding-phase="ready"],[data-riding-phase="running"]) .riding-perception { right:auto; width:min(350px,44%); }
 .player-riding[data-riding-ui="fullscreen"]:is([data-riding-phase="ready"],[data-riding-phase="running"]) .riding-gesture-controls { left:auto; right:max(12px,env(safe-area-inset-right,0px)); width:min(370px,48%); height:174px; margin:0; }
 .player-riding[data-riding-ui="fullscreen"]:is([data-riding-phase="ready"],[data-riding-phase="running"]) .riding-dock { background:linear-gradient(to bottom,transparent calc(100% - 174px),#0a14254d); }
 .player-riding[data-riding-ui="fullscreen"][data-riding-phase="ready"] .riding-actions button[data-action="begin"] { bottom:calc(var(--ride-safe-bottom) + 190px); }
}

/* v7.2.22: the standalone practice modal owns the same compact live viewport. */
.workshop-riding-dialog { position:fixed; inset:0; width:100%; max-width:100%; height:var(--ride-viewport-height,100dvh); max-height:var(--ride-viewport-height,100dvh); margin:0; padding:0; border:0; border-radius:0; background:#0e2825; overflow-y:auto; overscroll-behavior:contain; touch-action:pan-y; }
.workshop-riding-dialog::backdrop { background:#081a19ef; }
.workshop-riding-dialog.riding-fullscreen-open { overflow:hidden; }
.workshop-riding-dialog:not(.riding-fullscreen-open) [data-workshop-riding] { padding:max(8px,env(safe-area-inset-top,0px)) max(8px,env(safe-area-inset-right,0px)) max(12px,env(safe-area-inset-bottom,0px)) max(8px,env(safe-area-inset-left,0px)); }
.workshop-riding-dialog .riding-course [data-course-label] { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.workshop-riding-dialog .riding-perception header strong { overflow:hidden; text-overflow:ellipsis; }
.workshop-riding-dialog .riding-heading { min-width:0; }
.workshop-riding-dialog .riding-heading h2 { overflow-wrap:anywhere; }
.workshop-riding-dialog .riding-heading p { line-height:1.6; }
.workshop-riding-dialog .riding-badge { white-space:normal; }
.workshop-riding-dialog:not(.riding-fullscreen-open) .riding-dock { position:sticky; bottom:0; z-index:8; padding-bottom:env(safe-area-inset-bottom,0px); }
.practice-finish-order { margin:8px 0; padding-left:1.2em; list-style:none; font-size:12px; font-weight:500; }
.practice-finish-order li { padding:5px 0; overflow-wrap:anywhere; }
.practice-camera { display:flex; gap:10px; align-items:center; margin-top:14px; }
.practice-camera select { min-height:44px; }
.lab-play-choice { padding:16px; border:1px solid #c6a565; border-radius:14px; background:#fffaeb; margin-bottom:16px; }
.lab-play-choice h3 { margin-top:0; }
.lab-play-buttons { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin:14px 0 8px; }
.lab-play-buttons button { min-height:52px; }
@media(max-width:380px) { .lab-play-buttons { grid-template-columns:1fr; } }
.workshop-riding-dialog .player-riding[data-riding-phase="finished"] .riding-panel { padding-bottom:calc(112px + env(safe-area-inset-bottom,0px)); }
.workshop-riding-dialog .player-riding[data-riding-phase="finished"] .riding-dock { position:fixed; left:0; right:0; bottom:0; width:100%; max-width:1000px; margin:0 auto; padding:8px max(12px,env(safe-area-inset-right,0px)) max(12px,env(safe-area-inset-bottom,0px)) max(12px,env(safe-area-inset-left,0px)); box-sizing:border-box; z-index:12; background:#173a34f5; }
.workshop-riding-dialog .player-riding[data-riding-phase="finished"] .riding-actions { margin:0; }

/* v7.2.29: one explicitly claimed look surface, separate from reins/whip. */
.player-riding .riding-view-controls { display:flex; align-items:center; gap:6px; margin:8px 0; }
.player-riding .riding-view-controls[hidden] { display:none !important; }
.player-riding .riding-look-pad { display:flex; flex-direction:column; justify-content:center; align-items:center; min-width:96px; min-height:56px; border:1px solid #dce9f18a; border-radius:12px; background:#172a36c9; color:#fff; touch-action:none; user-select:none; -webkit-user-select:none; }
.player-riding .riding-look-pad small { font-size:10px; }
.player-riding .riding-view-controls button { min-width:44px; min-height:44px; touch-action:none; }
.player-riding[data-riding-ui="fullscreen"]:is([data-riding-phase="ready"],[data-riding-phase="running"]) .riding-view-controls { position:absolute; z-index:5; top:calc(var(--ride-safe-top) + var(--ride-hud-height) + var(--ride-reading-height) + 10px); right:var(--ride-safe-right); width:116px; display:grid; grid-template-columns:1fr 1fr; gap:4px; margin:0; }
.player-riding[data-riding-ui="fullscreen"] .riding-look-pad { grid-column:1/-1; min-width:0; font-size:12px; }
.player-riding[data-riding-ui="fullscreen"] .riding-view-controls button { padding:4px; font-size:12px; background:#172a36cc; color:white; border:1px solid #dce9f18a; }
@media(orientation:landscape) and (max-height:540px) {
 .player-riding[data-riding-ui="fullscreen"]:is([data-riding-phase="ready"],[data-riding-phase="running"]) .riding-view-controls { top:calc(var(--ride-safe-top) + var(--ride-hud-height) + 6px); }
}
/* Safari's expanded bars can leave only ~224px in landscape. Keep the
   44px view targets in the gap between the reading panel and the rein lever. */
@media(orientation:landscape) and (max-height:280px) and (min-width:568px) {
 .player-riding[data-riding-ui="fullscreen"]:is([data-riding-phase="ready"],[data-riding-phase="running"]) .riding-view-controls { left:calc(min(350px,44%) + var(--ride-safe-left) + 6px); right:auto; width:48px; grid-template-columns:1fr; }
 .player-riding[data-riding-ui="fullscreen"] .riding-look-pad { min-height:44px; }
 .player-riding[data-riding-ui="fullscreen"] .riding-look-pad small { display:none; }
}
