.mode-config{margin-bottom:19px}.mode-buttons{display:flex;gap:7px;margin:10px 0 13px}.mode-buttons button{flex:1;padding:10px 6px;font-size:11px;border:1px solid transparent}.mode-buttons b{display:block;font-size:24px;margin-bottom:5px}.mode-buttons button[aria-pressed=true]{border-color:#efd16c;background:#473e29;color:#ffe39b}.map-select{width:100%;color:#d9e4ee;background:#101927;border:1px solid #354157;padding:11px;border-radius:10px;font-size:12px}.map-note{font-size:10px;color:#8fa4b5;line-height:1.7;margin-top:7px}#map-label{display:block;color:#b7d2cf;font-size:11px;margin-top:7px}.race-title-line{display:flex;gap:12px;align-items:center}.race-title-line h2{margin:0}.race-title-line button{padding:8px 10px;font-size:11px}.racehead{gap:15px}.racehead>div:first-child{min-width:0}#environment{position:absolute;inset:0;z-index:1;overflow:hidden;pointer-events:none}.bank{position:absolute;left:0;right:0;height:44px;z-index:2}.bank svg{width:100%;height:100%}.bank-top{top:0}.bank-bottom{bottom:0}.scene-horizon{position:absolute;inset:0}.scene-orb{position:absolute;right:20%;top:5%;width:60px;height:60px;border-radius:50%;display:none}.weather{position:absolute;inset:0;overflow:hidden}.weather i{position:absolute;left:var(--x);top:var(--y);animation-delay:var(--delay)!important;animation-duration:var(--speed)!important}.weather-fireflies i{width:3px;height:3px;border-radius:50%;background:#edee9c;box-shadow:0 0 8px #efff86;animation:glimmer 4s ease-in-out infinite}.weather-stars i{width:2px;height:2px;background:#d6dffc;border-radius:50%;animation:glimmer 5s infinite}.weather-rain i{height:21px;width:1px;background:linear-gradient(transparent,#cde6f777);rotate:19deg;animation:rainfall 1.4s linear infinite}.weather-snow i{width:4px;height:4px;border-radius:50%;background:#f0faff;animation:snowfall 7s linear infinite}.weather-leaves i{width:7px;height:4px;border-radius:0 70%;background:#d1bd7755;animation:snowfall 7s linear infinite}.weather-clouds i,.weather-sunset i{width:100px;height:23px;border-radius:50%;background:#eef6f011;box-shadow:25px -9px 0 #eff8ef0c,-21px 4px 0 #e1f2ed0d;animation:cloudfloat 30s linear infinite}.river[data-scene=forest] .water-surface{filter:hue-rotate(-17deg) saturate(.82) brightness(1.05)}.river[data-scene=rain] .water-surface{filter:hue-rotate(12deg) saturate(.45) brightness(.9)}.river[data-scene=rain]{background:#243d4c}.river[data-scene=moon] .water-surface{filter:hue-rotate(35deg) saturate(.65) brightness(.67)}.river[data-scene=moon]{background:#172642}.river[data-scene=moon] .scene-orb{display:block;background:#e4e6bf;box-shadow:0 0 45px #e1e3c033;top:-18px;width:48px;height:48px;opacity:.85}.river[data-mode=dog] .water-surface,.river[data-mode=dog] .water-wakes,.river[data-mode=bird] .water-surface,.river[data-mode=bird] .water-wakes{display:none!important}.river[data-mode=dog]{background:linear-gradient(180deg,#6b8a45,#55753d)}.river[data-mode=dog] .scene-horizon{background-size:57px 37px,71px 43px;background:radial-gradient(ellipse 2px 5px at 14px 19px,#263d3029 80%,transparent),radial-gradient(ellipse 2px 4px at 36px 27px,#e0e6b31a 80%,transparent);box-shadow:inset 0 35px 30px #213b3733,inset 0 -25px 30px #19392c33}.river[data-mode=dog] .lane{border-bottom:1px dashed #e4e9bc2b}.river[data-scene=woodland]{background:linear-gradient(180deg,#6b6041,#766346 45%,#564b35)}.river[data-scene=snow]{background:linear-gradient(180deg,#a7c4cc,#d4e0dd 55%,#adc8cf)}.river[data-scene=snow] .lane{border-color:#5b7c9733}.river[data-mode=bird]{background:linear-gradient(180deg,var(--scene-top),var(--scene-bottom))}.river[data-mode=bird] .bank{height:32px;opacity:.6}.river[data-mode=bird] .bank svg{opacity:.65}.river[data-mode=bird] .scene-horizon{background:radial-gradient(ellipse at 25% 15%,#f0f5d329,transparent 50%),radial-gradient(ellipse at 70% 75%,#d7e9f114,transparent 40%)}.river[data-scene=sunset] .scene-orb{display:block;right:16%;top:3%;background:#f4c08499;box-shadow:0 0 75px #f3af5955;width:90px;height:90px}.river[data-mode=bird] .lane{border-color:#e7eff110}.river[data-mode=dog] .racing .bird{animation:dog-gait .16s ease-in-out infinite alternate}.racepanel.racing .river[data-mode=dog] .bird{animation:dog-gait .16s ease-in-out infinite alternate}.racepanel.racing .river[data-mode=bird] .bird{animation:bird-flight .45s ease-in-out infinite alternate}.river[data-mode=bird] .body-pose:before{content:'';position:absolute;width:23px;height:13px;left:8px;top:17px;background:linear-gradient(120deg,#759eb2,#cadbe1);border-radius:85% 12% 85% 12%;transform-origin:right center;rotate:25deg;z-index:1;box-shadow:0 1px 0 #29435655}.racepanel.racing .river[data-mode=bird] .body-pose:before{animation:wingbeat .3s ease-in-out infinite alternate}.river[data-mode=dog] .duck.is-diving .bird,.river[data-mode=bird] .duck.is-diving .bird{opacity:1}.river[data-mode=dog] .is-diving:after,.river[data-mode=bird] .is-diving:after{display:none}.river[data-mode=dog] .river-event,.river[data-mode=bird] .river-event{font-size:20px}.river[data-mode=dog] .is-grabbing .body-pose:after{content:'🐾';font-size:16px;position:absolute;right:0;top:23px}.river[data-mode=dog] .obstacle:after{border-color:#e6c99955}.river[data-mode=bird] .obstacle{filter:drop-shadow(0 4px 8px #1b253044)}.river[data-mode=bird] .obstacle:after{display:none}.name{position:relative;z-index:2}.race-stage:fullscreen{background:#0d1420;padding:16px;overflow:auto}.race-stage.is-theater{position:fixed;inset:0;z-index:100;background:#0d1420;padding:16px;overflow:auto}.race-stage.is-theater .racepanel{min-height:calc(100dvh - 32px);display:flex;flex-direction:column}.race-stage.is-theater .river{flex:1;min-height:300px;overflow:auto}.race-stage.is-theater .lane{height:var(--stage-lane-height,76px)}.race-stage.is-theater .name{font-size:13px;padding:5px 10px;max-width:150px}.race-stage.is-theater .race-rules,.race-stage.is-theater .bottom{display:none}.race-stage.is-theater .racehead{position:sticky;top:0;z-index:10}.race-stage.is-theater #world{min-width:300px}.race-stage.is-theater .result{position:relative}.theater-restart{display:none}.race-stage.is-theater .theater-restart{display:inline-block}body.theater-open{overflow:hidden}.stage-exit-note{font-size:10px;color:#8a9fb3;display:none}.is-theater .stage-exit-note{display:block}.race-stage.is-theater .racefoot{background:#172333;position:sticky;bottom:0;z-index:10}.race-stage.is-theater .race-progress{flex-shrink:0}
@keyframes rainfalL{to{translate:-40px 100px}}@keyframes rainfall{from{transform:translate(20px,-80px)}to{transform:translate(-25px,150px)}}@keyframes snowfall{to{transform:translate(40px,180px)}}@keyframes glimmer{50%{opacity:.12;translate:4px -8px}}@keyframes cloudfloat{to{translate:-150px 0}}@keyframes dog-gait{from{transform:scaleX(-1) translateY(0) rotate(-4deg)}to{transform:scaleX(-1) translateY(-4px) rotate(4deg)}}@keyframes bird-flight{to{transform:scaleX(-1) translateY(-4px) rotate(-3deg)}}@keyframes wingbeat{to{rotate:-55deg;scale:1 .65}}
@media(max-width:850px){.race-title-line{gap:6px;flex-wrap:wrap}.race-title-line h2{font-size:15px}.race-stage.is-theater,.race-stage:fullscreen{padding:6px}.race-stage.is-theater .racepanel{min-height:calc(100dvh - 12px)}.race-stage.is-theater .name{font-size:12px}.racehead{padding:14px}.bank{height:37px}.mode-buttons button{padding:8px}.stage-exit-note{display:none!important}}
@media(prefers-reduced-motion:reduce){.weather i,.body-pose:before,.river .bird{animation:none!important}}
.river[data-mode=dog] .is-diving .body-pose{scale:1 .7;transform-origin:center bottom}.river[data-mode=bird] .is-diving .body-pose{rotate:18deg}.river[data-mode=dog] .boosting .body-pose:after{content:'💨';position:absolute;left:-17px;top:17px;font-size:18px;opacity:.6}
.race-stage.is-theater .bird{font-size:54px}.race-stage.is-theater .obstacle{font-size:35px}.race-stage.is-theater .obstacle-log{font-size:40px}.race-stage.is-theater .body-pose:before{top:21px}.race-stage.is-theater .name{margin-top:5px}@media(max-width:850px){.race-stage.is-theater .bird{font-size:42px}}
.river[data-mode=dog] .scene-horizon{background-size:57px 37px,71px 43px}
