/* Approved coastal arcade design; all rules are scoped to this game. */
#rallyGame{position:fixed!important;inset:0!important;z-index:2147483605!important;display:grid!important;place-items:center!important;background:#071b32!important;color:#fff!important;isolation:isolate;font-family:Nunito,system-ui,sans-serif;overscroll-behavior:none}
#rallyGame *{box-sizing:border-box}#rallyGame button,#rallyGame select{font:inherit}#rallyGame button{cursor:pointer;touch-action:manipulation}#rallyGame button:focus-visible,#rallyGame select:focus-visible{outline:3px solid #fff598;outline-offset:3px}#rallyGame button:disabled{opacity:.6;cursor:wait}#rallyGame [hidden]{display:none!important}
#rallyGame .rr-stage{position:relative;width:min(100vw,calc(100dvh * .5625),620px);height:100dvh;overflow:hidden;background:#83ddfc;touch-action:none;container-type:inline-size;box-shadow:0 0 80px #0008}
.rr-scenery{position:absolute;inset:0;background:url('rally-assets/coast.webp') center bottom/100% 125% no-repeat;transform:scale(1.025) translateX(var(--rr-drift,0px));will-change:transform}.rr-road{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.rr-vignette{position:absolute;inset:0;pointer-events:none;background:linear-gradient(#05234b55,transparent 25%,transparent 68%,#071d3444)}
#rallyGame .rr-hud{position:absolute;top:calc(10px + env(safe-area-inset-top,0px));left:3%;right:3%;display:grid;grid-template-columns:1fr auto;gap:6px;align-items:start;z-index:5;text-shadow:0 2px 3px #183442;pointer-events:none}.rr-logo{font-size:clamp(18px,6cqw,32px);line-height:.98;font-weight:1000;letter-spacing:-1px;filter:drop-shadow(0 3px 0 #152c4b);transform:rotate(-3deg);color:#fff}.rr-logo strong{display:block;color:#ffce30;font-size:1.12em;-webkit-text-stroke:.6px #8d4c07;text-shadow:0 2px #9c4d10}.rr-brand{display:block;font-size:9px;letter-spacing:1.5px;color:#fff3c4;margin:6px 0 0 10px;transform:rotate(3deg)}.rr-hud-right{display:grid;justify-items:end;gap:5px}.rr-score{display:flex;gap:8px;align-items:center;border:1px solid #b9d9e977;border-radius:22px;background:#102a4ed9;padding:5px 9px;font-weight:950;font-size:20px;font-variant-numeric:tabular-nums}.rr-hearts{color:#ff4b4f;white-space:nowrap;font-size:23px;letter-spacing:1px;filter:drop-shadow(0 2px 0 #7b1025)}.rr-hearts span.lost{opacity:.25;filter:grayscale(1)}#rallyGame .rr-pause{pointer-events:auto;min-width:39px;height:39px;border:2px solid #e2effb;border-radius:50%;background:linear-gradient(#5b83ab,#244665);box-shadow:0 3px 0 #132e4f;color:#fff;font-size:22px;padding:0}.rr-hud-stats{display:flex;gap:7px;align-items:center}.rr-tally{font-size:12px;background:#0d294ba8;border-radius:15px;padding:4px 9px}.rr-tally b{color:#ffe46c}.rr-progress{height:4px;width:100%;grid-column:1/-1;border-radius:20px;background:#102b4b66;overflow:hidden}.rr-progress i{display:block;height:100%;background:linear-gradient(90deg,#ffe78c,#ffad12);width:var(--rr-progress,0%);transition:width .3s}
.rr-mission{position:absolute;top:16%;left:16%;right:16%;z-index:4;text-align:center;filter:drop-shadow(0 5px 3px #14202c66);pointer-events:none}.rr-plank{position:relative;border:3px solid #9e5b23;border-radius:14px 10px 14px 9px;background:repeating-linear-gradient(2deg,transparent 0 20px,#c9994e22 21px 22px),linear-gradient(110deg,#fff3cd,#f3d8a2 50%,#ffedc0);box-shadow:inset 0 2px 0 #fff9df,0 4px 0 #693c20;padding:8px 13px;color:#112740}.rr-plank::before,.rr-plank::after{content:'●';position:absolute;top:38%;font-size:8px;color:#b07c37}.rr-plank::before{left:4px}.rr-plank::after{right:4px}.rr-word{display:block;font-size:clamp(19px,8cqw,42px);line-height:1.08;overflow-wrap:anywhere;font-weight:1000;letter-spacing:.2px}.rr-direction{display:block;font-size:12px;font-weight:850;margin-top:4px;color:#5a371d}.rr-speaker{position:absolute;right:-33px;top:6px;pointer-events:auto;border:1px solid #ffe7ae!important;border-radius:50%;background:#0b315ec9;color:#fff;min-width:30px;height:30px;padding:0;font-size:15px}.rr-round{display:inline-block;margin-top:9px;border:1px solid #ffdc7c;border-radius:15px;background:#542c18d6;padding:3px 12px;color:#ffe58e;font-size:11px;font-weight:900}.rr-combo{position:absolute;top:31%;left:50%;transform:translateX(-50%);z-index:5;font-weight:1000;color:#ffe17c;font-size:20px;text-shadow:0 2px 0 #7a3414,0 0 15px #ff8d00}
.rr-gate{position:absolute;left:0;top:0;transform-origin:50% 100%;will-change:transform;pointer-events:auto;z-index:3;display:grid;align-content:start;height:75px;padding:0 4px;filter:drop-shadow(0 5px 3px #102f4a80)}.rr-gate::before,.rr-gate::after{content:'';position:absolute;top:34%;bottom:0;width:5px;border-radius:3px;background:linear-gradient(90deg,#476078,#e1edf5,#697e94)}.rr-gate::before{left:6px}.rr-gate::after{right:6px}.rr-gate .rr-label{position:relative;display:flex;align-items:center;justify-content:center;min-height:39px;padding:7px 5px;background:linear-gradient(#344d6d,#12263d);border:2px solid #b7c7d8;border-radius:7px;box-shadow:0 2px 0 #112642,inset 0 1px 1px #fff5;text-align:center;color:#fff;font-weight:950;font-size:15px;line-height:1.06;overflow-wrap:anywhere}.rr-gate .rr-label::before,.rr-gate .rr-label::after{content:'';position:absolute;top:3px;width:3px;height:3px;border-radius:50%;background:#ffe199}.rr-gate .rr-label::before{left:3px}.rr-gate .rr-label::after{right:3px}.rr-gate .rr-arrow{position:absolute;bottom:0;left:50%;transform:translateX(-50%);font-size:28px;color:#73e4ff;text-shadow:0 0 13px #00e5ff;line-height:1}.rr-gate.correct .rr-label{background:linear-gradient(#22ae82,#08725a);border-color:#bbffe9}.rr-gate.wrong .rr-label{background:#a52643;border-color:#ffb7bc}
.rr-car{position:absolute;top:64%;left:50%;width:36%;transform:translateX(-50%);z-index:4;pointer-events:none;will-change:left,transform;filter:drop-shadow(0 9px 3px #102a4566)}.rr-car img{display:block;width:100%;height:auto;position:relative;z-index:2}.rr-car::after{content:'';position:absolute;top:78%;left:37%;width:26%;height:75%;transform-origin:50% 0;background:linear-gradient(#d5fcff,#24c9ff 20%,#008aff99 65%,transparent);clip-path:polygon(15% 0,85% 0,100% 100%,0 100%);filter:blur(2px);opacity:.85;animation:rrExhaust .14s infinite alternate}.rr-car.turbo::after{height:115%;width:40%;left:30%;background:linear-gradient(#fff1b1,#ff9933 25%,#00adff99,transparent)}.rr-car.shield::before{content:'';position:absolute;inset:5% -14% 0;border:3px solid #9effff;border-radius:48%;background:radial-gradient(ellipse,transparent 60%,#7affff44);box-shadow:0 0 15px #3ee8ff;z-index:3}.rr-car.hit{filter:brightness(1.5) drop-shadow(0 0 8px #ff4a30);animation:rrHit .12s 5}.rr-pickups{position:absolute;bottom:25%;right:4%;display:grid;gap:5px;z-index:5;font-size:12px}.rr-pickups>span{padding:4px 8px;border-radius:15px;background:#073558bf;border:1px solid #9ce8ff;color:#fff4a3}
.rr-speed{position:absolute;bottom:15%;left:3%;width:86px;height:80px;border-radius:90px 90px 20px 20px;background:radial-gradient(ellipse at 50% 80%,#052c4be0,#0d294cf5);border:3px solid #a1edff;border-bottom:0;box-shadow:0 -4px 0 #00bbff99,inset 0 0 12px #00baff;text-align:center;z-index:5;padding-top:18px;transform:rotate(-8deg)}.rr-speed b{display:block;font-size:31px;font-weight:1000;line-height:1;font-style:italic}.rr-speed small{font-size:10px;color:#c9eeff}.rr-controls{position:absolute;left:3%;right:3%;bottom:calc(18px + env(safe-area-inset-bottom,0px));display:flex;justify-content:space-between;z-index:6;pointer-events:none}#rallyGame .rr-controls button{width:clamp(58px,18cqw,88px);height:clamp(58px,18cqw,88px);background:#d7e3ed55;border:2px solid #f7fbffcc;color:#fff;border-radius:50%;font-size:40px;font-weight:1000;text-shadow:0 3px #50657d;box-shadow:inset 0 0 14px #fff2,0 3px 12px #17355055;pointer-events:auto;line-height:1;user-select:none;-webkit-user-select:none}.rr-instruction{position:absolute;bottom:calc(24px + env(safe-area-inset-bottom,0px));left:25%;right:25%;z-index:5;background:#0a203ad9;border:1px solid #d2d9eaaa;border-radius:23px;padding:8px 6px;text-align:center;font-size:11px;line-height:1.25;font-weight:850;pointer-events:none}.rr-feedback{position:absolute;top:44%;left:6%;right:6%;z-index:7;text-align:center;pointer-events:none;font-size:22px;font-weight:1000;color:#fff9c8;text-shadow:0 2px 2px #123;filter:drop-shadow(0 2px 10px #172c4c)}
.rr-modal{position:absolute;inset:0;z-index:10;display:flex;align-items:center;justify-content:center;padding:14px;background:#041a4270;backdrop-filter:blur(3px);touch-action:pan-y;overflow:auto}.rr-modal:not([hidden])~.rr-car::after{animation-play-state:paused}#rallyGame .rr-panel{width:100%;max-height:calc(100dvh - 32px);overflow:auto;padding:23px 18px 18px;background:linear-gradient(145deg,#fff8df,#fff3cd);border:3px solid #f4bf4d;border-radius:23px;color:#17324a;box-shadow:0 7px 0 #946024,0 18px 60px #001c4899;text-align:center;scrollbar-width:thin}.rr-panel h1,.rr-panel h2{margin:0 0 9px;font-size:27px;font-weight:1000;color:#174266}.rr-panel p{font-size:13px;line-height:1.5;margin:8px 0;color:#4f6672}.rr-setup-art{height:95px;max-width:160px;object-fit:contain;filter:drop-shadow(0 7px 4px #172c4c44)}.rr-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px;text-align:left;margin:15px 0}.rr-fields label{display:grid;gap:4px;font-size:12px;font-weight:850}.rr-fields select{width:100%;height:40px;padding:7px;border:1px solid #a9c3cd;border-radius:10px;color:#21475c;background:#fff}.rr-units{display:flex;flex-wrap:wrap;gap:6px;max-height:100px;overflow:auto;text-align:left}.rr-units button{padding:7px 10px;border:1px solid #c5cbb0;border-radius:9px;background:#fffaf0;color:#36534c;font-size:12px;font-weight:800}.rr-units button[aria-pressed=true]{background:#126979;border-color:#064b60;color:#fff}.rr-selected-count{min-height:20px;font-size:11px!important;color:#5d7468!important}#rallyGame .rr-main{display:block;width:100%;min-height:46px;padding:11px 16px;border-radius:15px;border:2px solid #fff2a2;background:linear-gradient(#ffd93f,#ffa915);color:#563000;font-size:17px;font-weight:1000;box-shadow:0 4px 0 #b36d13;margin:12px 0 9px}#rallyGame .rr-secondary{min-height:40px;padding:9px 13px;border:1px solid #a6bdc8;border-radius:12px;background:#eef7fa;color:#24516a;font-size:13px;font-weight:850;margin:5px 3px}.rr-status{min-height:17px;color:#a63532!important}.rr-reward{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0}.rr-reward>div{background:#fff;border:1px solid #e8d592;padding:10px;border-radius:12px}.rr-reward b{display:block;font-size:25px;color:#0c7c70}.rr-reward small{font-size:11px;color:#7d6824}.rr-statistics{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:12px 0}.rr-statistics b{display:block;font-size:24px;color:#244d67}.rr-statistics small{font-size:11px}.rr-podium{position:relative;margin:4px auto;width:170px;height:100px;background:linear-gradient(155deg,transparent 64%,#162e47 65%,#233d5c 85%,transparent 86%)}.rr-podium img{height:105px;width:130px;object-fit:contain}.rr-podium::before,.rr-podium::after{content:'🏁';position:absolute;top:10px;font-size:37px}.rr-podium::before{left:-8px;transform:rotate(-12deg)}.rr-podium::after{right:-8px;transform:rotate(12deg)}.rr-review{display:grid;gap:5px;text-align:left;margin-top:12px}.rr-review>div{padding:7px 10px;border-radius:9px;background:#ffe6d6;color:#723c32;font-size:12px}.rr-ranking{text-align:left;display:grid;gap:5px;margin:12px 0}.rr-rank-row{display:flex;gap:8px;justify-content:space-between;background:#fff8e9;border-radius:8px;padding:8px;font-size:12px}.rr-rank-row.mine{background:#d9f3ed;border:1px solid #81c9b7}.rr-countdown{font-size:90px!important;line-height:1;font-weight:1000;color:#fff1a1!important;text-shadow:0 6px #bd6512}.rr-countdown-note{color:#fff!important;font-weight:800}.rr-countdown-panel{border:0!important;background:none!important;box-shadow:none!important}.rr-finish-line{position:absolute;left:0;right:0;height:8%;top:52%;background:repeating-conic-gradient(#fff 0 25%,#142742 0 50%) 0/28px 28px;opacity:.9;transform:perspective(300px) rotateX(35deg);z-index:2;animation:rrFinish .9s ease-in both}.rr-toast{position:absolute;left:50%;top:56%;transform:translateX(-50%);z-index:8;background:#12345cdd;color:#ffe896;padding:8px 14px;border-radius:20px;white-space:nowrap;font-size:14px;font-weight:900;pointer-events:none}
@keyframes rrExhaust{to{opacity:.45;transform:scaleX(.85) scaleY(.9)}}@keyframes rrHit{50%{transform:translateX(-50%) translateX(5px)}}@keyframes rrFinish{to{top:85%;opacity:0}}
@media(max-width:360px){.rr-logo{font-size:18px}.rr-hearts{font-size:18px}.rr-score{font-size:16px}.rr-mission{top:17%;left:14%;right:14%}.rr-direction{font-size:10px}.rr-panel h1,.rr-panel h2{font-size:23px}.rr-speed{width:70px;height:65px;padding-top:12px}.rr-speed b{font-size:25px}.rr-instruction{font-size:10px}.rr-brand{font-size:8px}}
@media(max-height:650px) and (orientation:portrait){.rr-mission{top:20%}.rr-setup-art{height:58px}.rr-panel{padding:14px 12px}.rr-panel p{font-size:11px}.rr-fields{margin:7px 0}.rr-units{max-height:75px}.rr-speed{width:62px;height:60px;padding-top:12px}.rr-speed b{font-size:23px}.rr-instruction{font-size:10px}}
@media(orientation:landscape) and (max-height:600px){#rallyGame .rr-stage{width:min(100vw,740px)}.rr-hud{max-width:96%}.rr-logo{font-size:21px}.rr-hearts{font-size:18px}.rr-score{font-size:16px}.rr-mission{left:35%;right:28%;top:3%}.rr-word{font-size:25px}.rr-round{margin-top:5px}.rr-car{width:22%;top:57%}.rr-controls button{width:55px!important;height:55px!important;font-size:30px!important}.rr-panel{max-width:450px!important;padding:14px!important}.rr-setup-art,.rr-podium{display:none}.rr-panel h1,.rr-panel h2{font-size:22px}.rr-panel p{font-size:11px}.rr-fields{margin:7px 0}.rr-units{max-height:58px}.rr-statistics{margin:5px}.rr-speed{bottom:20%;width:65px;height:60px;padding-top:12px}.rr-speed b{font-size:23px}.rr-instruction{left:35%;right:35%;bottom:20px}.rr-combo{top:30%}.rr-reward{margin:5px 0}.rr-reward>div{padding:5px}}
@media(prefers-reduced-motion:reduce){.rr-car::after,.rr-car.hit,.rr-finish-line{animation:none}.rr-progress i{transition:none}}

.rr-upcoming{position:absolute;top:33%;left:12%;width:76%;z-index:3;padding:8px 12px;border:1px solid #fff8;border-radius:12px;background:#18344dcc;color:#fff;text-align:center;font-size:12px;pointer-events:none;opacity:.85}.rr-upcoming[hidden]{display:none}.rr-gate{transition:transform .08s linear}.rr-feedback{pointer-events:none}
/* 20 Oct 2026: in-race slow-down toggle and class pace note */
#rallyGame .rr-slow{pointer-events:auto;height:39px;padding:0 11px;border:2px solid #e2effb;border-radius:20px;background:linear-gradient(#4fae6f,#23704a);box-shadow:0 3px 0 #134a2e;color:#fff;font:900 14px/1 'Nunito',system-ui,sans-serif;display:inline-flex;align-items:center;gap:4px;white-space:nowrap}
#rallyGame .rr-slow.on{background:linear-gradient(#f2b740,#c9781a);box-shadow:0 3px 0 #7d4510}
#rallyGame .rr-slow[hidden]{display:none}
#rallyGame .rr-slow span{font-size:12px}
#rallyGame .rr-pace-note{margin:4px 0 0;font-size:12px;font-weight:800;line-height:1.35;color:#2a4f6e;text-align:left}
#rallyGame .rr-slow-note{font-size:12px;font-weight:800;color:#8a4b0c}
#rallyGame .rr-fields:has(.rr-pace-note){grid-template-columns:1fr!important}#rallyGame .rr-fields .rr-pace-note{grid-column:1/-1}
