:root { --ink:#272454; --purple:#5b2ee8; --purple-dark:#4020ba; --yellow:#ffd83d; --pink:#ff5d8f; --mint:#32d7b5; --paper:#fffdf5; --road:#45476c; }
* { box-sizing:border-box; }
body { margin:0; min-width:320px; min-height:100vh; color:var(--ink); font-family:"Nunito",sans-serif; background:radial-gradient(circle at 70% 4%,#ffd773 0 6%,transparent 20%),linear-gradient(135deg,#8b68f5 0%,#5b2ee8 55%,#38209e 100%); }
button,input { font:inherit; } button { cursor:pointer; }
.app-shell { min-height:100vh; overflow:hidden; position:relative; }
.screen { min-height:100vh; padding:22px 18px 34px; position:relative; }
.hidden { display:none!important; }
.setup-screen { display:flex; flex-direction:column; align-items:center; background:linear-gradient(180deg,#fff8dd 0%,#fffdf8 82%,#d8f7ef 82%); }
.brand { color:var(--purple); font-family:"Baloo 2",cursive; font-size:clamp(1.55rem,4vw,2.2rem); font-weight:800; letter-spacing:-.07em; line-height:.8; margin:10px 0 15px; transform:rotate(-2deg); text-shadow:2px 3px 0 #e9dcff; }
.brand strong { color:var(--pink); font-size:1.15em; } .brand-bolt { color:#ffba21; margin-right:5px; }
.setup-card,.victory-card { width:min(660px,100%); background:rgba(255,255,255,.93); border:4px solid #fff; border-radius:30px; box-shadow:0 12px 0 #d9cbf7,0 22px 45px rgba(66,30,143,.2); padding:28px clamp(20px,5vw,42px); text-align:center; z-index:1; }
.mascot { font-size:3.3rem; height:63px; position:relative; margin-top:-48px; } .mascot-face { filter:drop-shadow(0 5px 0 #f4c950); }.mascot-flag { position:absolute;width:19px;height:15px;margin:31px 0 0 -7px;transform:rotate(13deg);border:1px solid #312b50;background:conic-gradient(#312b50 25%,#fff 0 50%,#312b50 0 75%,#fff 0) 0/8px 8px; }.mascot-flag::before{content:"";position:absolute;width:2px;height:23px;background:#312b50;left:-4px;bottom:-6px}
.eyebrow { color:var(--pink); font-size:.76rem; letter-spacing:.17em; font-weight:900; margin:2px 0 4px; }
h1,h2 { font-family:"Baloo 2",cursive; color:var(--purple); font-size:clamp(2rem,6vw,3rem); line-height:1; margin:0; letter-spacing:-.045em; }
.intro { margin:9px auto 24px; font-size:1rem; max-width:420px; font-weight:700; color:#625d83; }
.settings-grid { display:grid; gap:18px; text-align:left; } fieldset { margin:0; border:0; padding:0; } legend { font-weight:900; color:#554f7a; font-size:.86rem; margin-bottom:8px; }
.choice-row { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; }.choice { min-height:62px; border:2px solid #e8e1fc; border-radius:15px; background:#fbfaff; color:#726d91; font-weight:900; transition:.18s ease; padding:5px; }.choice b { display:block; font-size:1.42rem; line-height:1.05; }.choice span { display:block; font-size:.68rem; }.choice small { font-size:.78rem; color:inherit; }.choice.active { border-color:var(--purple); color:var(--purple); background:#eee9ff; box-shadow:0 3px 0 var(--purple); transform:translateY(-2px); }.number-choice { font-family:"Baloo 2",cursive; font-size:1.35rem; }.lap-choice { font-size:.75rem; }
.primary-button { border:0; border-radius:16px; color:white; background:linear-gradient(180deg,#ff779f,#f14d7e); box-shadow:0 6px 0 #bb285a,0 10px 17px rgba(235,72,118,.27); font-weight:900; font-size:1.1rem; padding:15px 22px; transition:transform .13s,box-shadow .13s; }.primary-button:hover { transform:translateY(-2px); }.primary-button:active { transform:translateY(4px); box-shadow:0 2px 0 #bb285a; }.start-button { margin-top:28px; min-width:220px; font-size:1.24rem; }.start-button span { margin-left:7px; }.tiny-tip { color:#786f8d; font-weight:800; font-size:.78rem; margin:25px 0 0; }.sky-decor { position:absolute; font-size:3rem; z-index:0; }.decor-left { top:100px; left:max(3vw,15px); color:#ffd950; }.decor-right { top:60px; right:max(4vw,15px); }
.game-screen { background:linear-gradient(180deg,#effcf8 0%,#d9f8f0 100%); padding-bottom:24px; }.game-header { max-width:850px; margin:0 auto 14px; display:flex; align-items:center; justify-content:space-between; }.game-title { font-family:"Baloo 2"; font-weight:800; color:var(--purple); font-size:1.12rem; }.game-title b { color:var(--pink); }.home-button { width:38px;height:38px;border:0;border-radius:12px;background:#fff;color:var(--purple);font-size:1.5rem;font-weight:bold;box-shadow:0 3px 0 #cfc6e9; }.streak-pill { background:#fff3ce;border:2px solid #ffd36b;border-radius:99px;padding:7px 11px;color:#8e5d00;font-size:.75rem;white-space:nowrap; }.race-card { width:min(850px,100%); margin:auto; padding:10px 15px 2px; border-radius:25px; background:#79dfce; box-shadow:inset 0 -8px 0 #41c9b5,0 8px 20px rgba(38,116,111,.15); }.race-caption { display:flex; justify-content:space-between; padding:3px 3px 5px; color:#13776c; font-size:.72rem; font-weight:900; letter-spacing:.04em; }.race-caption i { font-style:normal; font-size:.68rem; }.track-wrap { height:clamp(145px,28vw,235px); position:relative; }.track { width:100%; height:100%; overflow:visible; }.track-shadow,.track-road { fill:none; stroke-linecap:round; }.track-shadow { stroke:#389e95;stroke-width:53;transform:translateY(6px); }.track-road { stroke:var(--road);stroke-width:45; }.track-line { fill:none;stroke:#fff9d5;stroke-width:3;stroke-dasharray:12 13; }.finish-line rect { fill:#fff; }.finish-line path { fill:#20213c; }.race-car { position:absolute; width:45px; height:34px; z-index:3; transform:translate(-50%,-50%); transition:left .65s cubic-bezier(.2,.9,.27,1),top .65s cubic-bezier(.2,.9,.27,1),rotate .65s cubic-bezier(.2,.9,.27,1); filter:drop-shadow(0 4px 1px rgba(0,0,0,.27)); font-size:2.25rem; line-height:1; }.race-car em { position:absolute; width:20px;height:8px;border-radius:50%;background:rgba(255,245,82,.55);filter:blur(5px);right:-8px;top:16px;z-index:-1; }.progress-stars { position:absolute; inset:0; pointer-events:none; }.progress-star { position:absolute; color:#ffda38; font-size:1.03rem; text-shadow:0 2px 0 #ad7a0b; transform:translate(-50%,-50%); opacity:.35; }.progress-star.earned { opacity:1; animation:pop .4s both; }.scenery-sun,.scenery-tree,.scenery-cup { position:absolute; z-index:2; filter:drop-shadow(0 2px 0 rgba(0,0,0,.12));}.scenery-sun{top:-14px;right:8%;font-size:clamp(1.4rem,4vw,2.5rem)}.scenery-tree{font-size:clamp(1rem,3vw,1.6rem);bottom:0}.scenery-tree.one{left:15%}.scenery-tree.two{right:14%}.scenery-cup{left:4.5%;top:48%;font-size:1.4rem;transform:translateY(-50%)}
.question-card { width:min(600px,100%); margin:18px auto 10px; border-radius:25px; background:#fff; box-shadow:0 8px 20px rgba(43,116,105,.14); padding:18px 20px 12px; text-align:center; }.question-top { display:flex; justify-content:space-between; align-items:center; }.question-badge { color:var(--purple); font-size:.7rem; letter-spacing:.08em; font-weight:900; }.question-badge b { background:#eee8ff;padding:3px 7px;border-radius:8px; }.coach { color:#5aaf9f;font-size:.78rem;font-weight:900; }.equation { font-family:"Baloo 2"; font-size:clamp(3.1rem,11vw,5.2rem); line-height:1; font-weight:800; color:#302b5e; padding:12px 0 16px;letter-spacing:.04em; }.equation span{color:var(--pink)}.equation b{color:#7c5de9}.answer-area{display:flex;gap:10px;justify-content:center}.answer-area input{width:105px;border:3px solid #dcd5fa;border-radius:15px;text-align:center;color:var(--purple);font-size:2rem;font-weight:900;outline:none;transition:.16s}.answer-area input:focus{border-color:var(--purple);box-shadow:0 0 0 4px #eeeaff}.answer-button{font-size:.96rem;padding:11px 16px;border-radius:14px}.feedback{min-height:22px;margin:9px 0 0;font-weight:900;font-size:.88rem;color:#28ae8f}.feedback.nope{color:#e34b72}.number-pad{width:min(390px,100%);margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.number-pad button{height:43px;border:0;border-radius:12px;background:#fff;color:#554f7a;font-weight:900;font-size:1.12rem;box-shadow:0 3px 0 #cae9e3}.number-pad button:active{transform:translateY(3px);box-shadow:none}.number-pad .backspace{color:#e2557c}.number-pad .ok-key{color:#fff;background:#42cdb5;box-shadow:0 3px 0 #249a87}
.victory-screen { display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 50% 10%,#fff5a8 0%,#a889fa 40%,#5631d1 100%); }.victory-card{position:relative;z-index:2}.victory-cup{font-size:5.5rem;margin-top:-77px;filter:drop-shadow(0 9px 0 #ca8a1c);animation:float 1.8s ease-in-out infinite}.victory-message{font-size:1.05rem;font-weight:800;color:#625d83}.stars-big{font-size:clamp(1.55rem,6vw,2.4rem);letter-spacing:-.2em;margin:15px 0;color:#ffc52b;filter:drop-shadow(0 3px 0 #c4820f)}.final-stat{margin:15px auto 23px;padding:9px 20px;border-radius:16px;background:#f0ebff;color:#655b85;width:max-content}.final-stat b{display:block;font-family:"Baloo 2";font-size:1.9rem;line-height:.85;color:var(--purple)}.final-stat span{font-size:.75rem;font-weight:900}.replay-button{font-size:1.08rem}.text-button{display:block;margin:17px auto 0;border:0;background:none;color:#766f95;text-decoration:underline;font-size:.82rem;font-weight:800}.confetti-layer{position:absolute;inset:0;overflow:hidden}.confetti{position:absolute;width:11px;height:19px;border-radius:3px;animation:confetti-fall var(--duration) linear var(--delay) infinite;transform:translateY(-30px) rotate(0)}
.correct-flash { animation:correct .55s ease; }.shake { animation:shake .38s ease; } @keyframes pop{0%{transform:translate(-50%,-50%) scale(0)}75%{transform:translate(-50%,-50%) scale(1.5)}100%{transform:translate(-50%,-50%) scale(1)}}@keyframes correct{0%,100%{background:#fff}50%{background:#c9fff1}}@keyframes shake{20%,60%{transform:translateX(-8px)}40%,80%{transform:translateX(8px)}}@keyframes float{50%{transform:translateY(-9px) rotate(3deg)}}@keyframes confetti-fall{to{transform:translate(var(--drift),110vh) rotate(720deg)}}
@media (min-width:700px){.screen{padding-top:28px}.setup-card{padding-top:36px}.settings-grid{grid-template-columns:1.3fr 1fr 1fr;align-items:end;gap:14px}.choice-row.three{gap:6px}.choice{min-height:71px}.game-screen{padding-top:18px}.question-card{margin-top:20px}.number-pad{display:none}}
@media (max-width:410px){.setup-card{padding-left:15px;padding-right:15px}.choice{font-size:.88rem}.equation{padding-top:9px}.race-caption{font-size:.61rem}.answer-area input{width:90px}.answer-button{padding:10px}.game-title{font-size:1rem}}

/* Petite voiture dessinée en CSS : nette même lorsqu'une police emoji n'est pas disponible. */
.race-car { font-size:0; }
.car-body{position:absolute;left:4px;top:6px;width:36px;height:18px;border-radius:8px 13px 8px 8px;background:linear-gradient(180deg,#ff7097 0 35%,#ed386d 36%);border:2px solid #a91f50;box-shadow:inset 0 -3px 0 #bb2558}
.car-body::before{content:"";position:absolute;width:16px;height:10px;right:6px;top:-8px;border:2px solid #a91f50;border-bottom:0;border-radius:10px 8px 0 0;background:#98edff}
.car-body::after{content:"";position:absolute;right:-4px;top:3px;width:8px;height:5px;border-radius:0 4px 4px 0;background:#ffd642}
.car-body i{position:absolute;width:8px;height:8px;left:4px;bottom:-6px;border-radius:50%;background:#29294c;border:2px solid #fff;box-shadow:21px 0 #29294c}

/* Direction visuelle 2026 : aplats doux, moins d'effets "jeu flash", plus de clarté. */
:root{--ink:#172038;--purple:#4f46e5;--purple-dark:#3730a3;--yellow:#fbbf24;--pink:#f43f70;--mint:#14b8a6;--paper:#fff;--road:#25304d}
body{background:#f4f6fb;color:var(--ink)}
.setup-screen{background:radial-gradient(circle at 10% 15%,#e6e9ff 0 0,transparent 27%),radial-gradient(circle at 90% 87%,#d8f9ef 0 0,transparent 25%),#f7f8fc}
.brand{font-family:"Nunito",sans-serif;letter-spacing:-.09em;text-shadow:none;transform:none;margin:18px 0 24px;font-size:clamp(1.45rem,4vw,2rem)}
.brand strong{color:#4f46e5}.brand-bolt{color:#f59e0b}
.setup-card,.victory-card{border:1px solid #e5e7f1;border-radius:24px;box-shadow:0 16px 40px rgba(35,45,90,.09);background:rgba(255,255,255,.94)}
.mascot{margin-top:-48px}.mascot-face{filter:drop-shadow(0 4px 0 #d6d9f7)}
.eyebrow{color:#7068cc;letter-spacing:.14em}.intro{color:#667085;font-weight:700}
h1,h2{font-family:"Nunito",sans-serif;color:#1d2850;letter-spacing:-.065em}
legend{color:#4b5570}.choice{border-color:#e3e6f0;border-radius:13px;background:#fff;color:#667085;box-shadow:none}.choice.active{border-color:#4f46e5;color:#4338ca;background:#f0efff;box-shadow:inset 0 0 0 1px #4f46e5;transform:none}
.primary-button{border-radius:13px;background:#4f46e5;box-shadow:0 5px 12px rgba(79,70,229,.22);font-size:1rem}.primary-button:hover{background:#4338ca;transform:translateY(-1px)}.primary-button:active{box-shadow:none;transform:translateY(1px)}
.start-button{font-size:1.1rem}.tiny-tip{color:#7b8195}.sky-decor{opacity:.65}.decor-left{color:#f8b62d}
.game-screen{background:#f5f7fb}.game-header{max-width:850px}.game-title{font-family:"Nunito",sans-serif;color:#242b50}.game-title b{color:#4f46e5}.home-button{border:1px solid #e4e7f0;box-shadow:none;color:#4f46e5}.streak-pill{background:#fff;border-color:#e6e8f0;color:#6b5b0a}
.race-card{border-radius:22px;padding:12px 15px 4px;background:linear-gradient(135deg,#253252,#1e2a48);box-shadow:0 12px 28px rgba(30,42,72,.14)}.race-caption{color:#c8d2ff}.race-caption i{color:#a7b5dc}.track-shadow{stroke:#141d34}.track-road{stroke:#53617f}.track-line{stroke:#dde6ff}.scenery-sun,.scenery-tree,.scenery-cup{filter:drop-shadow(0 2px 0 rgba(8,18,44,.3))}
.question-card{border:1px solid #e5e7ef;border-radius:22px;box-shadow:0 10px 28px rgba(42,56,91,.08)}.question-badge{color:#5149c9}.question-badge b{background:#efefff}.coach{color:#149b89}.equation{font-family:"Nunito",sans-serif;color:#1e2a4b}.equation span{color:#f43f70}.equation b{color:#4f46e5}.answer-area input{border-color:#d9ddeb;color:#4338ca;border-radius:13px}.answer-area input:focus{border-color:#4f46e5;box-shadow:0 0 0 4px #ecebff}.number-pad button{border:1px solid #e5e8f0;box-shadow:0 2px 0 #dce1eb}.number-pad .ok-key{background:#14b8a6;box-shadow:0 3px 0 #0c8e7f}
.victory-screen{background:radial-gradient(circle at 50% 10%,#fff7c2 0,transparent 25%),linear-gradient(135deg,#5259d5,#302a78)}.victory-cup{filter:drop-shadow(0 7px 0 #d99c24)}.final-stat{background:#f1f1ff;color:#596078}.final-stat b{color:#4f46e5}.text-button{color:#69718a}

/* Circuit arcade en volume : une piste flottante, pas un décor illustré. */
.race-card{position:relative;overflow:hidden;border:1px solid rgba(147,168,208,.18);background:radial-gradient(circle at 73% 12%,rgba(80,107,186,.32),transparent 28%),linear-gradient(135deg,#17223a,#0d1425);box-shadow:0 18px 38px rgba(19,29,57,.2)}
.race-card::before{content:"";position:absolute;inset:0;opacity:.22;background-image:linear-gradient(rgba(151,174,222,.15) 1px,transparent 1px),linear-gradient(90deg,rgba(151,174,222,.15) 1px,transparent 1px);background-size:22px 22px;mask-image:linear-gradient(90deg,transparent,black 30%,black 70%,transparent)}
.race-caption{position:relative;z-index:4;color:#d7e0ff}.race-caption i{color:#8fa4d2}
.track-wrap{height:clamp(175px,31vw,268px);isolation:isolate}.track-light{position:absolute;z-index:0;width:70px;height:70px;border-radius:50%;filter:blur(20px);opacity:.65}.light-one{left:13%;top:23%;background:#5b4ef2}.light-two{right:14%;bottom:6%;background:#19c8d0}.track-floor{fill:#0a1121;opacity:.68}.track-depth,.track-side,.track-surface,.track-edge,.track-dashes,.race-path-guide{fill:none;stroke-linecap:round;stroke-linejoin:round}.track-depth{stroke:#070b16;stroke-width:87}.track-side{stroke:url(#wall);stroke-width:78}.track-surface{stroke:url(#asphalt);stroke-width:69}.track-edge{stroke:rgba(206,221,246,.35);stroke-width:4;stroke-dasharray:1 18}.track-dashes{stroke:#f6d879;stroke-width:3;stroke-dasharray:12 18;opacity:.9}.race-path-guide{stroke:transparent;stroke-width:4}.finish-gate path{fill:none;stroke:#7b91b8;stroke-width:9;stroke-linecap:round}.finish-gate>rect{fill:#17243e;stroke:#8297ba;stroke-width:2}.finish-glow{fill:url(#gate)!important;stroke:none!important;filter:drop-shadow(0 0 5px #5f75ff)}.finish-gate text,.boost-sign text{font:700 12px Nunito,sans-serif;letter-spacing:2px;fill:#fff}.boost-sign path{fill:#1b2a47;stroke:#38d5d7;stroke-width:2}.boost-sign text{font-size:10px;fill:#9dfbfb}.track-shadow,.track-road,.track-line,.finish-line,.scenery-sun,.scenery-tree,.scenery-cup{display:none}
.race-car{width:54px;height:36px;filter:drop-shadow(0 7px 3px rgba(1,5,14,.55))}.car-body{left:3px;top:8px;width:45px;height:17px;border:0;border-radius:8px 13px 7px 7px;background:linear-gradient(145deg,#ff6b8f 0 25%,#ef315f 27% 65%,#b91c4c 100%);box-shadow:inset 0 2px 0 rgba(255,255,255,.5),inset 0 -3px 0 rgba(104,13,44,.45)}.car-body::before{width:19px;height:11px;right:7px;top:-9px;border:2px solid #17233e;border-bottom:0;border-radius:11px 9px 0 0;background:linear-gradient(135deg,#c3fbff,#559fda);box-shadow:inset 0 2px 0 rgba(255,255,255,.7)}.car-body::after{right:-3px;top:4px;width:7px;height:5px;background:#dffcff;box-shadow:0 0 7px #6be8ff}.car-body i{width:9px;height:9px;left:5px;bottom:-5px;background:#0b1223;border:2px solid #5b6b86;box-shadow:25px 0 #0b1223}.race-car em{right:-6px;top:16px;background:rgba(70,228,255,.55)}
.progress-star{width:15px;height:15px;border:2px solid #7f93b5;border-radius:50%;background:#141e34;box-shadow:0 0 0 3px rgba(11,17,32,.5),inset 0 1px 1px rgba(255,255,255,.22);font-size:0;opacity:1}.progress-star.earned{background:linear-gradient(135deg,#fff1a3,#f6b92b);border-color:#fff4bd;box-shadow:0 0 0 3px rgba(255,207,66,.15),0 0 13px rgba(255,208,58,.9);animation:node-pop .45s both}@keyframes node-pop{0%{transform:translate(-50%,-50%) scale(0)}70%{transform:translate(-50%,-50%) scale(1.45)}100%{transform:translate(-50%,-50%) scale(1)}}

/* Caméra isométrique et vibreurs de course. */
.track-wrap{margin:4px 0 -10px;transform:perspective(900px) rotateX(38deg) rotateZ(-2.5deg) scale(.98);transform-origin:50% 58%;filter:saturate(1.12)}
.track-depth,.track-side,.track-surface,.track-edge,.track-dashes,.race-path-guide,.track-curb-base,.track-curb-accent{fill:none;stroke-linecap:round;stroke-linejoin:round}
.track-curb-base{stroke:#f2f5fb;stroke-width:78}.track-curb-accent{stroke:#f04a68;stroke-width:78;stroke-dasharray:19 20}.track-surface{stroke-width:65}.track-edge{stroke:#91f4f2;stroke-width:2;stroke-dasharray:2 17;opacity:.7}.track-dashes{stroke:#fff4a1;stroke-width:3.5;stroke-dasharray:14 19;filter:drop-shadow(0 0 2px rgba(255,237,137,.8))}
.race-car{transform:translate(-50%,-50%) rotate(-90deg);transition:left .65s cubic-bezier(.2,.9,.27,1),top .65s cubic-bezier(.2,.9,.27,1),transform .65s cubic-bezier(.2,.9,.27,1)}

/* Carrosserie en volumes : capot, cockpit, aileron et ombres latérales. */
.race-car{filter:drop-shadow(0 9px 4px rgba(1,5,14,.7));perspective:140px}
.car-body{height:19px;border-radius:7px 15px 7px 8px;background:linear-gradient(160deg,#ff9bb2 0 10%,#ff527b 13% 34%,#e02054 36% 69%,#94163f 100%);box-shadow:inset 0 2px 0 rgba(255,255,255,.62),inset -3px -4px 0 rgba(99,9,38,.42),0 3px 0 #6c1233;transform:translateZ(5px)}
.car-body::before{right:7px;top:-10px;width:21px;height:12px;border-color:#182640;background:linear-gradient(130deg,#dfffff 0 27%,#65bde6 29% 64%,#256495 66%);box-shadow:inset 0 2px 0 rgba(255,255,255,.8),-1px 2px 0 #9e1745}
.car-body::after{right:-4px;top:5px;width:8px;height:5px;background:#edffff;box-shadow:0 0 9px 2px rgba(83,229,255,.9)}
.car-roof{position:absolute;z-index:2;left:12px;top:-12px;width:21px;height:12px;border:2px solid #15253e;border-bottom:0;border-radius:10px 8px 1px 1px;background:linear-gradient(145deg,#d9fcff,#5cbee8 55%,#276493 56%);transform:skewX(-13deg);box-shadow:inset 2px 2px 0 rgba(255,255,255,.64),-2px 4px 0 #b7184b}
.car-roof::after{content:"";position:absolute;left:9px;top:0;width:2px;height:10px;background:rgba(20,45,70,.5);transform:skewX(13deg)}
.car-spoiler{position:absolute;z-index:3;left:-5px;top:-5px;width:13px;height:4px;border-radius:3px;background:linear-gradient(#ff92aa,#b41443);box-shadow:-2px 4px 0 -1px #68122f,3px 5px 0 -1px #68122f;transform:skewY(-15deg)}
.car-body i{z-index:4;width:10px;height:10px;bottom:-7px;background:radial-gradient(circle at 42% 38%,#a9b9d1 0 16%,#273146 20% 43%,#060a15 47%);border:2px solid #111a2c;box-shadow:25px 0 0 #0a1020,25px 0 0 0 #111a2c}

/* Surface du moteur WebGL local. */
.track-wrap{height:clamp(190px,34vw,300px);margin:0;transform:none;filter:none;overflow:hidden;border-radius:17px;isolation:isolate}
.race-3d{display:block;width:100%;height:100%;position:relative;z-index:1;outline:0}
