:root{--sky:#59c9f4;--blue:#1166b5;--navy:#063d78;--cream:#fffef7;--green:#33c74a;--shadow:0 10px 24px #003d6a35}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#app{margin:0;width:100%;height:100%;overflow:hidden;font-family:ui-rounded,"Arial Rounded MT Bold",system-ui,sans-serif;background:var(--sky);color:#083d75}button,input,select{font:inherit}button{cursor:pointer}.screen{position:absolute;inset:0;display:none}.screen.active{display:block}.hidden{display:none!important}
/* START */
.start-screen{background:#61c9f1}.start-art{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}.start-hit{position:absolute;left:20%;right:20%;bottom:12.4%;height:13%;border:0;background:transparent}.reset-hit{position:absolute;left:28%;right:28%;bottom:5.5%;height:5.5%;border:0;background:transparent}
/* SETUP */
.setup-screen{background:linear-gradient(#57c5f0,#dff8ff);padding:calc(env(safe-area-inset-top) + 14px) 14px calc(env(safe-area-inset-bottom) + 14px);overflow:auto}.setup-card{position:relative;max-width:680px;min-height:100%;margin:auto;background:#fffef9;border-radius:34px;padding:20px 20px 28px;box-shadow:0 14px 40px #0a5c8e30;text-align:center}.round-back{position:absolute;left:16px;top:16px;width:54px;height:54px;border-radius:50%;border:3px solid #fff;background:#31aee9;color:white;font-size:42px;line-height:40px;box-shadow:0 5px 0 #0d70aa}.setup-card h1{margin:24px 0 2px;font-size:clamp(30px,8vw,48px);line-height:.9}.setup-card h1 small{display:block;color:#0b4e94;font-size:.62em}.setup-card h1 strong{display:block;color:#f3c500;text-shadow:0 3px 0 #0b4e94}.setup-preview{height:min(35vh,300px);display:flex;align-items:center;justify-content:center;position:relative}.setup-preview img{display:block;width:min(64vw,360px);max-height:100%;object-fit:contain;filter:drop-shadow(0 14px 12px #2348)}.girl-bow{display:none;position:absolute;right:14%;top:18%;font-size:42px;filter:drop-shadow(0 3px 2px #0002)}.girl .girl-bow,.scene-car.girl .girl-bow{display:block}.gender-picker{display:flex;gap:12px;justify-content:center;margin:0 auto 14px}.gender{min-width:42%;padding:12px 18px;border-radius:22px;border:4px solid #d7d7d7;background:#f7f7f7;color:#188adc;font-size:22px}.gender.active{border-color:#1c9be8;background:#e4f5ff}.name-label{display:block;font-weight:900;font-size:18px;margin:8px 0}.setup-card input{width:min(92%,520px);height:62px;border:4px solid #d6b988;border-radius:20px;text-align:center;font-size:28px;font-weight:900;outline:none;background:white}.color-picker{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;margin:18px auto}.color{width:54px;height:54px;border-radius:50%;border:5px solid white;background:var(--sw);box-shadow:0 0 0 3px #b7a184}.color.active{box-shadow:0 0 0 5px #24bb43,0 6px 12px #0002}.main-btn{border:4px solid white;border-radius:25px;background:linear-gradient(#59e33e,#14ad31);box-shadow:0 7px 0 #087f22;color:white;font-weight:1000;text-shadow:0 2px 2px #07561f55}.setup-done{width:min(90%,500px);font-size:28px;padding:17px}.compact{padding:11px 22px;font-size:19px;border-radius:20px}
/* GAME SHELL */
.game-screen{display:none;background:var(--sky);padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}.game-screen.active{display:flex;flex-direction:column}.game-header{height:146px;flex:0 0 146px;background:rgba(255,255,255,.95);box-shadow:0 4px 14px #0f548525;z-index:50}.header-row{height:64px;display:grid;grid-template-columns:56px 1fr 50px 56px;align-items:center;gap:6px;padding:6px 10px}.scene-title{text-align:center;font-weight:1000;font-size:27px;letter-spacing:.5px}.icon-btn,.weather-chip{height:50px;width:50px;border:3px solid white;border-radius:50%;background:#4dbcf0;color:white;font-size:27px;box-shadow:0 5px 0 #087db6}.weather-chip{background:#fff;color:#222;font-size:24px}.meters{height:82px;display:grid;grid-template-columns:repeat(4,1fr);gap:7px;padding:5px 9px 9px}.meter{position:relative;border:3px solid #d7e8f2;background:#fff;border-radius:16px;padding:7px 5px 5px 35px;min-width:0}.meter>span{position:absolute;left:5px;top:9px;font-size:25px}.meter i{display:block;height:18px;background:#dbe4e9;border-radius:10px;border:2px solid #aebdc5;overflow:hidden}.meter em{display:block;height:100%;width:50%;background:#35c85c;border-radius:8px;transition:width .3s}.meter.clean em{background:#49bced}.meter.energy em{background:#ffc844}.meter.joy em{background:#f477ae}.meter b{display:block;text-align:center;font-size:11px;margin-top:3px}.scene{position:relative;flex:1;min-height:0;overflow:hidden;background:#53c6f0}.scene-view{position:absolute;inset:0;display:none;overflow:hidden}.scene-view.active-view{display:block}.speech{position:absolute;z-index:34;left:12px;top:10px;max-width:min(68%,420px);min-height:54px;border:4px solid #0b4f8c;border-radius:25px;background:#fff;color:#073b70;font-size:19px;font-weight:900;padding:10px 45px 10px 15px;box-shadow:0 7px 14px #02446d33}.speech:after{content:"";position:absolute;left:50px;bottom:-14px;border:8px solid transparent;border-top-color:#0b4f8c}.speech small{position:absolute;right:14px;top:50%;transform:translateY(-50%)}.scene-car{position:absolute;z-index:18;pointer-events:none;filter:drop-shadow(0 15px 12px #002b4a35);transform-origin:50% 70%}.scene-car .car-art{width:100%;height:auto;display:block}.scene-car .girl-bow{font-size:32px}.scene-actions{position:absolute;z-index:29;left:12px;right:12px;bottom:8px;display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.scene-actions button{min-height:68px;border:3px solid white;border-radius:18px;background:#ffffffef;color:#0b447b;font-size:24px;font-weight:900;box-shadow:0 5px 0 #b4d2df;display:flex;flex-direction:column;align-items:center;justify-content:center}.scene-actions span{font-size:12px;margin-top:2px}.simple-sky{position:absolute;inset:0;background:linear-gradient(#59c9f4 0 56%,#74d759 56%)}.landscape-hills{position:absolute;left:-10%;right:-10%;bottom:20%;height:38%;background:radial-gradient(90% 70% at 20% 100%,#3cae45 0 55%,transparent 56%),radial-gradient(80% 80% at 65% 100%,#58bf51 0 55%,transparent 56%),radial-gradient(70% 80% at 95% 100%,#2f9d42 0 55%,transparent 56%)}.scene-road{position:absolute;left:-10%;right:-10%;bottom:-6%;height:34%;background:#40484e;border-top:10px solid white;transform:skewY(-2deg)}.scene-road:after{content:"";position:absolute;left:0;right:0;top:52%;height:7px;background:repeating-linear-gradient(90deg,#ffd62e 0 42px,transparent 42px 80px)}
/* GARAGE */
.garage-photo{position:absolute;inset:0;background:url('assets/scenes/garage.jpg?v=4') center/cover no-repeat}.garage-photo:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 60%,#0b233f2c)}.garage-car-shell{width:min(58vw,430px);left:50%;top:48%;transform:translate(-50%,-50%)}.garage-actions{bottom:10px}
/* GAS */
.gas-station{position:absolute;z-index:6;width:min(82vw,650px);max-height:60%;object-fit:contain;left:50%;top:9%;transform:translateX(-50%);filter:drop-shadow(0 10px 10px #003d6530)}.gas-car-shell{width:min(46vw,350px);left:13%;bottom:11%}.fuel-hose{display:none;position:absolute;z-index:19;left:47%;bottom:34%;width:34%;height:8px;border-radius:8px;background:#171717;transform:rotate(20deg);transform-origin:left center}.fuel-hose.active{display:block;animation:hosePulse .5s infinite alternate}@keyframes hosePulse{to{transform:rotate(18deg) scaleX(1.03)}}.action-card{position:absolute;z-index:30;right:14px;bottom:10px;width:min(46%,330px);background:#ffffffee;border:3px solid white;border-radius:22px;padding:12px;box-shadow:var(--shadow)}.action-copy{display:flex;justify-content:space-between;font-weight:900}.big-progress{margin:8px 0}.big-progress i{display:block;height:18px;border-radius:10px;background:#d6e0e4;overflow:hidden}.big-progress em{display:block;height:100%;background:#34c44f;border-radius:10px}.gas-panel .main-btn{width:100%}
/* WASH */
.wash-bg{background:linear-gradient(#55c7ef 0 62%,#d8eef5 62%)}.carwash-building{position:absolute;z-index:5;width:min(95vw,740px);max-height:76%;object-fit:contain;left:50%;top:8%;transform:translateX(-50%);filter:drop-shadow(0 12px 10px #003d6530)}.wash-car-shell{width:min(48vw,360px);left:50%;top:56%;transform:translate(-50%,-50%)}.wash-fx{position:absolute;inset:0;z-index:20;pointer-events:none}.foam-bubble{position:absolute;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff,#d7f7ff 70%);box-shadow:0 0 8px #fff}.water-drop{position:absolute;width:5px;height:36px;background:#90eaff;border-radius:50%;animation:fall .65s linear infinite}@keyframes fall{to{transform:translateY(110vh)}}.air-streak{position:absolute;height:5px;border-radius:4px;background:#fff9;animation:air .65s linear infinite}@keyframes air{to{transform:translateX(150vw)}}.wash-controls{bottom:8px}.wash-controls button.done{background:#d7ffd9;box-shadow:0 5px 0 #50b15b}
/* TRACK */
.track-landscape{position:absolute;inset:0;background:linear-gradient(#55c9f4 0 54%,#82dc5c 54%)}.track-cloud{position:absolute;width:100px;height:30px;background:#fff;border-radius:40px;opacity:.9}.track-cloud:before,.track-cloud:after{content:"";position:absolute;background:#fff;border-radius:50%}.track-cloud:before{width:48px;height:48px;left:16px;top:-23px}.track-cloud:after{width:58px;height:58px;right:10px;top:-30px}.track-cloud.c1{top:15%;left:8%}.track-cloud.c2{top:21%;right:8%;transform:scale(.7)}.track-trees{position:absolute;left:0;right:0;bottom:28%;height:19%;background:radial-gradient(circle at 5% 100%,#229844 0 24px,transparent 25px),radial-gradient(circle at 15% 100%,#39a84b 0 34px,transparent 35px),radial-gradient(circle at 85% 100%,#249543 0 30px,transparent 31px),radial-gradient(circle at 95% 100%,#3eaf51 0 40px,transparent 41px)}.track-ribbon{position:absolute;height:18%;background:#f58225;border:8px solid #2b80c5;border-radius:45px;box-shadow:inset 0 0 0 6px #ffbe42,0 10px 20px #004b7830}.track-ribbon.back{left:-6%;right:28%;top:39%;transform:rotate(-8deg)}.track-ribbon.front{left:7%;right:-9%;bottom:15%;transform:rotate(6deg)}.track-loop{position:absolute;z-index:4;width:min(44vw,340px);aspect-ratio:1;border:25px solid #f58225;border-radius:50%;right:4%;top:27%;box-shadow:0 0 0 8px #2b80c5,inset 0 0 0 6px #ffbe42}.track-loop span{position:absolute;inset:16px;border:4px dashed #fff8;border-radius:50%}.track-ramp{position:absolute;z-index:5;left:37%;bottom:20%;width:33%;height:20%;background:linear-gradient(160deg,transparent 0 45%,#f58225 46% 65%,#2b80c5 66%);transform:skewX(-8deg)}.finish-gate{position:absolute;z-index:7;right:10%;bottom:19%;background:#fff;border:5px solid #333;border-radius:12px;padding:6px 10px;color:#222;font-weight:1000;display:flex;gap:8px;align-items:center}.race-car-shell{width:min(38vw,300px);left:8%;bottom:17%}.race-controls{position:absolute;z-index:30;left:12px;right:12px;bottom:8px;display:flex;gap:10px}.race-controls .main-btn{flex:1}.result-pill{flex:1;background:#fff;border-radius:20px;border:3px solid #d5edf8;display:flex;align-items:center;justify-content:center;font-weight:900}
/* BISTRO */
.bistro-sky{background:linear-gradient(#59c9f4 0 60%,#72d75b 60%)}.bistro-building{position:absolute;z-index:5;width:min(78vw,570px);max-height:61%;object-fit:contain;left:50%;top:8%;transform:translateX(-50%);filter:drop-shadow(0 10px 12px #003d6530)}.bistro-car-shell{width:min(40vw,315px);left:5%;bottom:19%}.delivery-truck{position:absolute;z-index:15;width:min(48vw,360px);right:-60%;bottom:18%;transition:right .65s cubic-bezier(.2,.8,.2,1);filter:drop-shadow(0 12px 10px #003d6530)}.delivery-truck.show{right:2%}.cargo-rack{position:absolute;left:28%;right:0;top:-16%;height:38%;display:flex;align-items:flex-end;justify-content:center}.cargo-rack img{width:30%;max-height:100%;object-fit:contain;filter:drop-shadow(0 3px 2px #0003)}.food-tray{position:absolute;z-index:31;left:8px;right:8px;bottom:7px;display:grid;grid-template-columns:repeat(4,1fr);gap:6px;background:#fffdf6e8;padding:6px;border-radius:18px;box-shadow:var(--shadow)}.food-item,.deliver-mini{border:3px solid #e1edf2;background:white;border-radius:14px;min-height:70px;color:#0b447b;font-weight:900}.food-item.selected{border-color:#37c450;background:#e7ffe9}.food-item img{display:block;height:42px;max-width:100%;object-fit:contain;margin:auto}.food-item b{font-size:11px}.deliver-mini{background:linear-gradient(#63e84c,#19b234);color:#fff;text-shadow:0 1px 2px #075}.deliver-mini:disabled{filter:grayscale(1);opacity:.6}
/* CITY */
.city-sky{position:absolute;inset:0;background:linear-gradient(#54c6f0 0 50%,#aee5ff 50% 61%,#8fd45d 61%)}.city-blocks{position:absolute;left:0;right:0;top:18%;height:40%;display:flex;align-items:flex-end;justify-content:space-around;padding:0 4%}.city-blocks span{width:14%;height:55%;background:#ffd978;border:5px solid #fff1c8;border-radius:10px 10px 0 0;box-shadow:inset 0 0 0 3px #cf8b58}.city-blocks span:nth-child(2){height:80%;background:#f7a18e}.city-blocks span:nth-child(3){height:65%;background:#a3d8ff}.city-blocks span:nth-child(4){height:90%;background:#ffe7a4}.city-blocks span:nth-child(5){height:72%;background:#c7a5f5}.city-blocks span:nth-child(6){height:58%;background:#a7e0b2}.city-square{position:absolute;left:0;right:0;top:54%;height:19%;background:#e6d4b3;border-top:5px solid #fff}.fountain{position:absolute;left:50%;top:3%;transform:translateX(-50%);font-size:70px}.city-road{position:absolute;left:-8%;right:-8%;bottom:0;height:34%;background:#444b52;transform:skewY(-2deg);border-top:9px solid white}.city-road:after{content:"";position:absolute;left:0;right:0;top:50%;height:7px;background:repeating-linear-gradient(90deg,#ffd52e 0 50px,transparent 50px 95px)}.city-car-shell{width:min(39vw,300px);left:7%;bottom:13%}.city-truck{position:absolute;z-index:8;width:min(36vw,280px);right:4%;bottom:21%;filter:drop-shadow(0 10px 8px #003d6530)}.city-controls{bottom:8px}
/* SLEEP */
.sleep-overlay{position:absolute;inset:0;z-index:80;background:linear-gradient(#07193f,#152a64 68%,#111c34);display:flex;align-items:center;justify-content:center}.night-sky{position:absolute;inset:0}.night-sky i{position:absolute;width:6px;height:6px;border-radius:50%;background:#fff;box-shadow:0 0 8px #fff}.night-sky i:nth-child(1){left:15%;top:18%}.night-sky i:nth-child(2){left:72%;top:13%}.night-sky i:nth-child(3){left:32%;top:34%}.night-sky i:nth-child(4){left:85%;top:42%}.night-sky i:nth-child(5){left:54%;top:25%}.night-sky span{position:absolute;right:12%;top:10%;font-size:70px}.sleep-garage{position:absolute;left:0;right:0;bottom:0;height:48%;background:url('assets/scenes/garage.jpg?v=4') center bottom/cover no-repeat;filter:brightness(.28) saturate(.7)}.sleep-card{position:relative;z-index:5;width:min(84%,460px);text-align:center;color:white}.sleep-card img{width:min(70vw,360px);display:block;margin:0 auto 8px;filter:drop-shadow(0 15px 12px #0008)}.sleep-card b,.sleep-card small{display:block}.sleep-card b{font-size:28px}.sleep-card small{margin:6px 0 18px}.zzz{font-size:42px;font-weight:1000;animation:floatz 1.4s ease-in-out infinite alternate}@keyframes floatz{to{transform:translateY(-8px)}}
/* DOCK */
.scene-dock{flex:0 0 94px;height:94px;background:#edf9ff;border-top:4px solid white;display:flex;gap:7px;overflow-x:auto;padding:7px 8px calc(7px + env(safe-area-inset-bottom));z-index:55;scrollbar-width:none}.scene-dock::-webkit-scrollbar{display:none}.dock-btn{flex:0 0 95px;border:3px solid #d6e9f2;border-radius:18px;background:#fff;color:#0b447b;font-weight:900;box-shadow:0 5px 0 #c0d8e2}.dock-btn span{display:block;font-size:26px}.dock-btn b{font-size:11px}.dock-btn.active{background:#dff7e2;border-color:#39c653;box-shadow:0 5px 0 #27903a}
/* WEATHER */
.weather-layer{position:absolute;inset:0;z-index:25;pointer-events:none}.weather-layer.rain{background-image:repeating-linear-gradient(105deg,transparent 0 18px,#d7f3ff99 18px 21px,transparent 21px 42px);animation:rainmove .45s linear infinite}.weather-layer.snow{background-image:radial-gradient(circle,#fff 0 3px,transparent 4px),radial-gradient(circle,#fff 0 2px,transparent 3px);background-size:52px 52px,37px 37px;animation:snowmove 4s linear infinite}.weather-layer.storm{background:linear-gradient(#28375444,#15203b55);animation:storm 2.8s infinite}@keyframes rainmove{to{background-position:0 42px}}@keyframes snowmove{to{background-position:25px 52px,-18px 37px}}@keyframes storm{48%,52%{background:#ffffff44}50%{background:#fff9}}
/* MODAL */
.modal{position:fixed;inset:0;z-index:200;background:#001d3c88;display:flex;align-items:center;justify-content:center;padding:20px}.settings-card{position:relative;width:min(92vw,520px);background:white;border-radius:26px;padding:24px;box-shadow:0 20px 50px #0005}.settings-card h2{margin:0 0 14px;font-size:30px}.modal-close{position:absolute;right:12px;top:10px;border:0;background:#e8f6fc;color:#0b477c;border-radius:50%;width:42px;height:42px;font-size:28px}.toggle-row{display:flex;justify-content:space-between;align-items:center;font-weight:900;font-size:19px;padding:11px 0}.toggle-row input{display:none}.toggle-row i{width:58px;height:32px;border-radius:20px;background:#bbb;position:relative}.toggle-row i:after{content:"";position:absolute;width:26px;height:26px;left:3px;top:3px;border-radius:50%;background:white;transition:left .2s}.toggle-row input:checked+i{background:#35c84f}.toggle-row input:checked+i:after{left:29px}.voice-picker-wrap{display:grid;grid-template-columns:1fr auto;gap:7px;align-items:center;background:#f0f8fc;padding:10px;border-radius:14px}.voice-picker-wrap label{grid-column:1/-1;font-size:13px;font-weight:900}.voice-picker-wrap select{min-width:0;border:2px solid #bee0ee;border-radius:10px;padding:8px;background:white}.voice-picker-wrap button{border:0;border-radius:10px;padding:9px;background:#128bd0;color:white;font-weight:900}.voice-note{font-size:12px;line-height:1.35;color:#4e6575}.sub-btn{width:100%;border:0;border-radius:15px;background:#e5f5fd;color:#0b5d99;font-weight:900;padding:12px;margin-top:9px}
/* transitions */
.scene-view.entering .scene-car{animation:carEnter .55s ease-out}.scene-view.leaving .scene-car{animation:carExit .38s ease-in forwards}@keyframes carEnter{from{transform:translateX(-120vw) scale(.85)}to{transform:translateX(0) scale(1)}}@keyframes carExit{to{transform:translateX(125vw) scale(.88)}}
@media (min-width:800px){.game-header{height:132px;flex-basis:132px}.meters{height:68px}.scene-dock{height:92px;flex-basis:92px;justify-content:center}.dock-btn{flex-basis:130px}.garage-car-shell{width:420px}.speech{font-size:21px}.scene-actions{left:50%;right:auto;transform:translateX(-50%);width:min(700px,90%)}}
@media (max-height:720px){.game-header{height:122px;flex-basis:122px}.header-row{height:54px}.meters{height:68px}.scene-dock{height:82px;flex-basis:82px}.dock-btn{flex-basis:86px}.garage-car-shell{width:min(50vw,350px)}.scene-actions button{min-height:58px}.speech{font-size:16px;min-height:48px}.food-item,.deliver-mini{min-height:60px}}

/* ===== V6 POLISH ===== */
/* Tankování: žádná čára/hadice přes scénu, jen pistole + kapky */
.fuel-hose{display:none!important}.fuel-nozzle{position:absolute;z-index:20;left:47%;bottom:31%;font-size:42px;filter:drop-shadow(0 5px 4px #003d6540);transform:rotate(-12deg);opacity:.92}.fuel-nozzle.active{animation:nozzleBounce .45s ease-in-out infinite alternate}@keyframes nozzleBounce{to{transform:rotate(-7deg) translateY(-3px)}}
.fuel-drops{position:absolute;z-index:21;left:47%;bottom:28%;width:24%;height:26%;pointer-events:none}.fuel-drop{position:absolute;width:13px;height:18px;border-radius:60% 45% 60% 45%;background:linear-gradient(145deg,#fff08a,#ffc51b 55%,#f28c00);box-shadow:0 2px 4px #a85d0055;transform:rotate(45deg);animation:fuelDrop .72s ease-in forwards}@keyframes fuelDrop{0%{opacity:0;transform:translate(0,-8px) rotate(45deg) scale(.6)}25%{opacity:1}100%{opacity:0;transform:translate(75px,62px) rotate(45deg) scale(1)}}

/* Autodráha V6: skutečný asfaltový okruh, 3D rampy a závodní okolí */
.track-landscape{background:linear-gradient(#59c9f4 0 48%,#b9edff 48% 53%,#6fd052 53% 100%)}.track-trees{bottom:37%;height:15%}.race-park{position:absolute;inset:24% 2% 10%;z-index:3;perspective:700px}.track-oval{position:absolute;left:2%;right:2%;top:15%;height:66%;border-radius:50%;background:#474d55;transform:rotate(-5deg);box-shadow:0 0 0 12px #f4f4f4,0 0 0 20px #e53935,0 14px 20px #174d2738,inset 0 0 0 5px #2c3138}.track-inner{position:absolute;inset:24%;border-radius:50%;background:linear-gradient(#75d657,#4eb73f);box-shadow:0 0 0 7px #f4f4f4,0 0 0 13px #e53935}.lane-dashes{position:absolute;inset:12%;border:4px dashed #fff9;border-radius:50%}.grandstand{position:absolute;right:6%;top:-8%;width:31%;height:21%;border-radius:10px 10px 3px 3px;background:repeating-linear-gradient(0deg,#f4f7fb 0 8px,#9cc7dd 8px 15px);border:4px solid #2776a6;transform:skewX(-8deg);display:flex;justify-content:space-around;align-items:flex-start;padding-top:2px;font-size:18px;box-shadow:0 7px 8px #174d2730}.tire-wall{position:absolute;left:4%;top:9%;font-size:20px;letter-spacing:-2px;color:#20262c;text-shadow:0 2px #fff;transform:rotate(-6deg)}
.ramp{position:absolute;z-index:8;width:21%;height:17%;filter:drop-shadow(0 8px 5px #173b243c)}.ramp:before{content:"";position:absolute;inset:0;clip-path:polygon(0 100%,100% 100%,82% 12%,20% 32%);background:linear-gradient(100deg,#176da8 0 14%,#ffb22e 15% 27%,#f47a22 28% 73%,#ffcf43 74% 87%,#176da8 88%);border-radius:5px}.ramp:after{content:"";position:absolute;left:19%;right:17%;bottom:22%;height:5px;background:repeating-linear-gradient(90deg,#fff 0 15px,transparent 15px 27px);transform:rotate(-8deg)}.ramp-one{left:32%;bottom:9%;transform:rotate(-4deg)}.ramp-two{right:19%;top:22%;transform:scale(.78) rotate(174deg)}
.finish-line{position:absolute;z-index:7;left:10%;bottom:23%;width:20%;height:9%;transform:rotate(-8deg);background:conic-gradient(#fff 25%,#222 0 50%,#fff 0 75%,#222 0) 0/20px 20px;border:3px solid #fff}.finish-gate{right:auto;left:8%;bottom:31%;transform:rotate(-7deg);font-size:12px;padding:4px 8px}.race-car-shell{z-index:12;width:min(31vw,250px);left:8%;bottom:18%}.race-controls{z-index:40}.track-ribbon,.track-loop,.track-ramp{display:none!important}

/* Bistro: kamion stojí vedle auta, ne přes něj */
.bistro-car-shell{width:min(35vw,280px);left:4%;bottom:19%}.delivery-truck{z-index:14;width:min(37vw,285px);right:-48%;bottom:25%;}.delivery-truck.show{right:3%}

/* Představení Bleska/Jiskry */
.car-intro{position:absolute;inset:0;z-index:100;background:linear-gradient(#5acbf5ee,#dff7ffee 56%,#7bd95fee);display:flex;align-items:center;justify-content:center;padding:18px}.car-intro.hidden{display:none}.car-intro-card{position:relative;width:min(88%,480px);background:#fff;border:5px solid #fff;border-radius:32px;text-align:center;padding:18px 18px 20px;box-shadow:0 16px 40px #004a7760}.car-intro-card:before{content:"";position:absolute;inset:5px;border:3px solid #ccecf8;border-radius:24px;pointer-events:none}.car-intro-card img{position:relative;width:min(68vw,340px);max-height:34vh;object-fit:contain;filter:drop-shadow(0 12px 8px #00476a35);z-index:2}.intro-bow{display:none;position:absolute;z-index:3;top:20%;right:23%;font-size:34px}.car-intro.girl .intro-bow{display:block}.car-intro h2{position:relative;margin:2px 0 4px;color:#0b447b;font-size:clamp(25px,7vw,38px);font-weight:1000}.car-intro p{position:relative;margin:0 auto 15px;color:#42637a;font-weight:800;max-width:360px}.car-intro .main-btn{position:relative;width:100%;z-index:2}.intro-spark{position:absolute;right:18px;top:12px;font-size:30px}
/* V7 visual polish */
.garage-car-shell{top:auto;bottom:22%;transform:translateX(-50%);filter:drop-shadow(0 7px 5px #142b3a55)}
.race-park{inset:20% 1% 11%;perspective:900px}
.track-oval,.track-inner,.lane-dashes,.ramp,.finish-gate{display:none!important}
.track-course{position:absolute;left:-5%;right:-4%;top:10%;height:72%;border-radius:48% 52% 45% 55%;background:#444b54;transform:rotate(-7deg) perspective(600px) rotateX(7deg);box-shadow:0 0 0 9px #fff,0 0 0 18px #e8423a,0 16px 18px #194b2d44,inset 0 0 0 5px #252a30}
.course-grass{position:absolute;inset:23% 25%;border-radius:50%;background:linear-gradient(145deg,#7de15c,#49b840);box-shadow:0 0 0 8px #fff,0 0 0 15px #e8423a}
.course-line{position:absolute;inset:11%;border:5px dashed #fff9;border-radius:50%}
.jump-ramp{position:absolute;z-index:14;width:27%;height:18%;filter:drop-shadow(0 9px 5px #123a2955)}
.jump-ramp:before{content:"";position:absolute;inset:0;clip-path:polygon(3% 94%,96% 100%,78% 8%,28% 20%);background:linear-gradient(100deg,#176fa8 0 15%,#ffcb38 16% 28%,#f57c22 29% 72%,#ffd548 73% 86%,#176fa8 87%);border:4px solid #fff}
.jump-ramp:after{content:"";position:absolute;left:26%;right:16%;top:49%;height:7px;background:repeating-linear-gradient(90deg,#fff 0 17px,transparent 17px 31px);transform:rotate(-7deg)}
.jump-ramp b{position:absolute;z-index:2;left:48%;top:27%;font-size:23px;color:#fff;transform:rotate(-7deg)}
.ramp-one{left:34%;bottom:5%;transform:rotate(-3deg) scale(1.1)}
.ramp-two{right:14%;top:17%;transform:rotate(169deg) scale(.88)}
.finish-arch{position:absolute;z-index:13;left:6%;bottom:30%;display:flex;align-items:center;gap:4px;padding:4px 8px;border:5px solid #fff;border-radius:15px;background:linear-gradient(#218ed0,#0a5e9d);color:#fff;box-shadow:0 6px 8px #0003;transform:rotate(-7deg);font-size:12px}.finish-arch b{font-size:14px}.finish-line{left:8%;bottom:22%;width:22%;height:10%}
.tire-wall{display:flex;gap:2px;left:5%;top:6%;transform:rotate(-7deg)}.tire-wall i{width:22px;height:22px;border-radius:50%;background:radial-gradient(circle,#6d7780 0 24%,#15191d 25% 60%,#31373d 61%);box-shadow:0 2px 2px #0004}
.grandstand{right:4%;top:-4%;width:34%;height:20%;background:linear-gradient(#fff 0 20%,#9ed8ef 20% 38%,#fff 38% 56%,#9ed8ef 56% 74%,#fff 74%);border-width:5px;box-shadow:0 9px 0 #155f8b,0 12px 12px #0002}
.race-car-shell{width:min(29vw,235px);left:7%;bottom:18%;filter:drop-shadow(0 7px 5px #173b2c55)}
.scene-dock{gap:8px;padding-top:8px}.dock-btn{flex-basis:100px;overflow:hidden;padding:4px;background:linear-gradient(#fff,#f8fdff);border:3px solid #c9e3ef;box-shadow:0 5px 0 #a9cfdf}.dock-btn.active{background:linear-gradient(#edfff0,#d8f7df);border-color:#35c557}.dock-art{display:block!important;width:68px;height:45px;margin:0 auto 2px;border-radius:12px;background-position:center!important;background-repeat:no-repeat!important;background-size:cover!important;box-shadow:inset 0 0 0 2px #fff8}.garage-art{background-image:url('assets/scenes/garage.jpg?v=7')}.gas-art{background-image:url('assets/objects/gas-station.png?v=7');background-size:contain!important}.wash-art{background-image:url('assets/objects/carwash.png?v=7');background-size:contain!important}.bistro-art{background-image:url('assets/objects/bistro.png?v=7');background-size:contain!important}.track-art{background:linear-gradient(145deg,#67d9f6 0 42%,#65cc4d 42%)!important;position:relative}.track-art:after{content:"";position:absolute;left:8px;right:8px;top:14px;height:16px;border:7px solid #454b52;border-radius:50%;box-shadow:0 0 0 3px #fff}.city-art{background:linear-gradient(#6dd3f4 0 48%,#75cf55 48%)!important;position:relative}.city-art:after{content:"🏠🏢";position:absolute;inset:6px 0 0;text-align:center;font-size:24px}.dock-btn b{font-size:12px}

/* ===== V8: výběr auta první, Jiskra, počasí, nová dráha ===== */
.setup-screen.active{display:block}
/* Mašle je fyzicky na střeše auta, ne vedle obrázku */
.setup-preview .girl-bow{right:27%;top:20%;font-size:48px;transform:rotate(7deg);z-index:5}
.scene-car .girl-bow{right:18%;top:3%;font-size:34px;transform:rotate(8deg);z-index:8}
.car-intro .intro-bow{right:27%;top:18%;font-size:42px;transform:rotate(7deg)}
/* počasí má vlastní jednoznačný výběr */
.weather-card{position:relative;width:min(90vw,520px);background:#fff;border-radius:30px;padding:22px;box-shadow:0 18px 45px #003b6660;text-align:center}.weather-card h2{margin:4px 0 18px;color:#0b4e94;font-size:30px}.weather-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.weather-grid button{border:4px solid #d5e9f3;border-radius:22px;background:#f8fdff;padding:16px 8px;color:#0b4e94;font-size:18px;font-weight:900;box-shadow:0 5px 0 #b5d6e5}.weather-grid button span{display:block;font-size:48px;margin-bottom:5px}.weather-grid button.active{border-color:#39c95a;background:#eaffed;box-shadow:0 5px 0 #1b9d3b}
/* dráha: výraznější závodní areál a opravdové nájezdy */
.track-view{background:linear-gradient(#59c9f4 0 39%,#83d95d 39% 100%)}
.race-park{inset:19% 1% 11%}
.track-course{left:-9%;right:-8%;top:7%;height:76%;border-radius:46% 54% 44% 56%;background:#3e454c;transform:rotate(-6deg) perspective(650px) rotateX(9deg);box-shadow:0 0 0 8px #f9f9f9,0 0 0 17px #e33c36,0 18px 22px #174d2748,inset 0 0 0 4px #20262b}
.course-grass{inset:24% 27%;background:radial-gradient(circle at 55% 40%,#8be86a,#4fbd42 72%);box-shadow:0 0 0 7px #fff,0 0 0 14px #e33c36}
.course-line{inset:10%;border-width:4px}
.jump-ramp{display:block!important;width:30%;height:23%;z-index:20}
.jump-ramp:before{clip-path:polygon(0 100%,100% 100%,78% 4%,26% 24%);background:linear-gradient(102deg,#176fa8 0 14%,#ffd548 14% 25%,#f47b20 25% 75%,#ffd548 75% 87%,#176fa8 87%);border:5px solid #fff;box-shadow:inset 0 -9px 0 #c65316}
.jump-ramp:after{top:52%;height:8px}
.ramp-one{left:33%;bottom:1%;transform:rotate(-3deg) scale(1.18)}
.ramp-two{right:12%;top:10%;transform:rotate(166deg) scale(1.02)}
.finish-arch{left:4%;bottom:28%;transform:rotate(-6deg) scale(1.1)}
.race-car-shell{width:min(30vw,240px);left:6%;bottom:18%;transform:none!important}
/* V14 rebuilt race + unified illustrated dock */
.race-park-v14{position:absolute;inset:21% 1% 10%;z-index:3;overflow:visible}.race-svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.race-svg path{fill:none;stroke-linecap:round;stroke-linejoin:round}.race-border-red{stroke:#e83d35;stroke-width:104}.race-border-white{stroke:#fff;stroke-width:88}.race-asphalt{stroke:#3f4851;stroke-width:72}.race-dashes{stroke:#d9dde0;stroke-width:5;stroke-dasharray:22 22}.race-grass-island{position:absolute;left:29%;top:35%;width:42%;height:31%;border-radius:50%;background:radial-gradient(circle at 50% 30%,#91e66e,#55bd42);display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff;text-shadow:0 2px 2px #287b29;font-weight:1000;font-size:13px}.race-grass-island span{font-size:34px}.race-stand{position:absolute;right:4%;top:3%;width:27%;height:13%;background:repeating-linear-gradient(0deg,#f8fbfd 0 9px,#a9d3e7 9px 17px);border:4px solid #2178a9;border-radius:12px;display:flex;justify-content:space-around;align-items:center;box-shadow:0 7px 0 #155a80}.race-tires{position:absolute;left:5%;top:17%;font-size:22px;letter-spacing:-5px;color:#20262d}.real-ramp{position:absolute;width:19%;height:15%;z-index:16;filter:drop-shadow(0 8px 5px #163a2944)}.ramp-top{position:absolute;left:0;top:0;width:100%;height:74%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:22px;font-weight:1000;background:linear-gradient(90deg,#ef6424,#ffb52d);border:4px solid #fff;clip-path:polygon(0 100%,100% 80%,82% 0,18% 20%)}.ramp-side{position:absolute;left:10%;right:0;bottom:0;height:34%;background:#176fa8;clip-path:polygon(0 0,100% 0,86% 100%,15% 100%)}.ramp-a{left:51%;top:8%;transform:rotate(14deg)}.ramp-b{left:20%;bottom:1%;transform:rotate(-20deg)}.race-finish{position:absolute;left:8%;bottom:18%;width:20%;height:8%;transform:rotate(-28deg);background:conic-gradient(#fff 25%,#222 0 50%,#fff 0 75%,#222 0) 0/18px 18px;border:3px solid #fff;z-index:11}.race-finish-sign{position:absolute;left:3%;bottom:28%;background:#fff;border:4px solid #1478b5;border-radius:14px;padding:5px 9px;font-weight:1000;color:#07528b;transform:rotate(-8deg);z-index:12}.race-car-shell{z-index:30!important;width:min(27vw,220px)!important;left:5%!important;bottom:17%!important;transform:none!important;offset-path:path('M 105 382 C 35 310 48 170 165 112 C 282 54 493 63 604 145 C 684 205 674 335 576 402 C 470 474 216 470 105 382 Z');offset-distance:0%;offset-rotate:auto 0deg}
.scene-dock{gap:9px!important}.dock-btn{flex:0 0 102px!important;padding:5px 4px!important;border-radius:20px!important;background:linear-gradient(#fff,#effaff)!important}.dock-art{width:70px!important;height:48px!important;border-radius:14px!important;background-size:contain!important;background-position:center!important;background-repeat:no-repeat!important;box-shadow:none!important}.garage-art{background-image:url('assets/objects/nav-garage.svg')!important}.gas-art{background-image:url('assets/objects/nav-gas.svg')!important}.wash-art{background-image:url('assets/objects/nav-wash.svg')!important}.track-art{background:url('assets/objects/nav-track.svg') center/contain no-repeat!important}.track-art:after,.city-art:after{display:none!important}.bistro-art{background-image:url('assets/objects/nav-bistro.svg')!important}.city-art{background:url('assets/objects/nav-city.svg') center/contain no-repeat!important}.dock-btn.active{background:linear-gradient(#edfff0,#d7f8df)!important;border-color:#36c557!important}
.weather-layer.sun{background:none!important}.weather-layer.rain:after,.weather-layer.storm:after{content:'\\\\   \\\\';position:absolute;left:35%;bottom:18%;font-size:54px;color:#173c58;transform:rotate(-18deg);opacity:.65;animation:wipers .8s ease-in-out infinite alternate}@keyframes wipers{to{transform:rotate(18deg)}}


/* V20 — schválené 3D karty + 3D autodráha */
.scene-dock{gap:8px!important;padding:7px 8px calc(8px + env(safe-area-inset-bottom))!important;height:106px!important;flex:0 0 106px!important}
.scene-dock .dock-btn{position:relative;flex:0 0 112px!important;height:91px!important;padding:2px!important;overflow:hidden!important;border:3px solid #d7eaf3!important;border-radius:19px!important;background:#fff!important;box-shadow:0 5px 0 #b5d5e2!important}
.scene-dock .dock-btn.active{border-color:#39c85a!important;box-shadow:0 5px 0 #218f39!important;background:#eaffed!important}
.scene-dock .dock-art{display:block!important;width:100%!important;height:100%!important;margin:0!important;border-radius:14px!important;background-size:cover!important;background-position:center!important;background-repeat:no-repeat!important;box-shadow:none!important}
.scene-dock .dock-btn b{position:absolute!important;left:-9999px!important}
.garage-art{background-image:url('assets/nav/garage.webp')!important}.gas-art{background-image:url('assets/nav/gas.webp')!important}.wash-art{background-image:url('assets/nav/wash.webp')!important}.track-art{background:url('assets/nav/track.webp') center/cover no-repeat!important}.bistro-art{background-image:url('assets/nav/bistro.webp')!important}.city-art{background:url('assets/nav/city.webp') center/cover no-repeat!important}.track-art:after,.city-art:after{display:none!important}
/* skutečná 3D scéna dráhy */
.track-view{background:linear-gradient(#59c9f4 0 34%,#7bd55b 34% 100%)!important}
.track-view .track-landscape,.track-view .race-svg,.track-view .race-grass-island,.track-view .race-stand,.track-view .race-tires,.track-view .race-finish,.track-view .race-finish-sign{display:none!important}
.race-park-v14{position:absolute!important;left:1.5%!important;right:1.5%!important;top:20%!important;bottom:27%!important;overflow:visible!important;pointer-events:none!important;border-radius:24px!important;background:url('assets/scenes/track3d.png') center/100% 100% no-repeat!important;box-shadow:0 10px 24px #164d2755,inset 0 0 0 4px #ffffffcc!important}
.real-ramp{display:block!important;position:absolute!important;z-index:22!important;width:23%!important;height:13%!important;filter:drop-shadow(0 9px 6px #14372855)!important}
.real-ramp .ramp-top{position:absolute!important;left:0!important;right:0!important;bottom:12%!important;top:auto!important;width:100%!important;height:88%!important;border:3px solid #fff!important;border-radius:8px 8px 2px 2px!important;background:linear-gradient(90deg,#e63e37 0 10%,#fff 10% 20%,#404950 20% 80%,#fff 80% 90%,#e63e37 90% 100%)!important;clip-path:polygon(5% 100%,95% 100%,78% 0,22% 0)!important;color:transparent!important;font-size:0!important;box-shadow:inset 0 0 0 2px #242b30!important}
.real-ramp .ramp-side{position:absolute!important;left:12%!important;right:12%!important;bottom:0!important;height:23%!important;background:linear-gradient(#49545c,#1d2a32)!important;clip-path:polygon(8% 0,92% 0,100% 100%,0 100%)!important;border-bottom:3px solid #101820!important}
.ramp-a{left:51%!important;top:55%!important;transform:rotate(-7deg) scale(1.02)!important}.ramp-b{left:70%!important;top:32%!important;transform:rotate(13deg) scale(.76)!important}
.race-car-shell{position:absolute!important;z-index:32!important;width:min(25vw,190px)!important;left:17%!important;top:56%!important;bottom:auto!important;offset-path:none!important;offset-distance:0!important;offset-rotate:0deg!important;transform:translate(-50%,-50%)!important;filter:drop-shadow(0 8px 6px #0005)!important}
.weather-layer.sun{background:none!important}
.weather-layer.rain:after,.weather-layer.storm:after{content:'\\\\  \\\\';position:absolute;left:34%;bottom:18%;font-size:52px;color:#173c58;transform:rotate(-18deg);opacity:.65;animation:wipers .8s ease-in-out infinite alternate}@keyframes wipers{to{transform:rotate(18deg)}}
/* copyright always available at bottom of settings/install */
.copyright-line{text-align:center;font-size:11px;color:#477086;opacity:.78;margin:12px 4px 2px}
.install-card{max-width:520px}.install-guide{text-align:left;line-height:1.45}.install-guide h3{margin:14px 0 4px;color:#07528b}.install-guide p{margin:0 0 10px}.install-note{background:#eaf8ff;padding:10px;border-radius:12px}

/* V20 final track uses real rendered ramps in background */
.track-view .real-ramp{display:none!important}
/* V23 — 3D track scene: rendered world + real moving car overlay */
.track-view{background:linear-gradient(#5cccf3 0 36%,#75d357 36% 100%)!important}
.race-park-v14{position:absolute!important;left:1.5%!important;right:1.5%!important;top:19%!important;bottom:25%!important;border-radius:26px!important;overflow:hidden!important;background:url('assets/scenes/track3d_v23.webp') center/cover no-repeat!important;box-shadow:0 12px 28px #174f2b55,inset 0 0 0 4px #fff!important;transform:perspective(900px) rotateX(1deg)!important}
.track-view .race-svg,.track-view .race-grass-island,.track-view .race-stand,.track-view .race-tires,.track-view .real-ramp,.track-view .race-finish,.track-view .race-finish-sign,.track-view .track-landscape{display:none!important}
.race-car-shell{position:absolute!important;z-index:35!important;width:min(24vw,185px)!important;left:12%!important;top:70%!important;bottom:auto!important;offset-path:none!important;transform:translate(-50%,-50%)!important;filter:drop-shadow(0 9px 6px #0006)!important}
.city-car-shell{left:8%!important;top:62%!important;bottom:auto!important;transform:translate(-50%,-50%)!important}

/* V24 — skutečná herní dráha, žádný screenshot celé obrazovky */
.track-view{background:linear-gradient(#58caf2 0 31%,#76d65a 31% 100%)!important;overflow:hidden!important}
.race-park-v14{position:absolute!important;left:1.5%!important;right:1.5%!important;top:18%!important;bottom:24%!important;border-radius:26px!important;overflow:hidden!important;background:linear-gradient(#68cef1 0 28%,#69cf53 28% 100%)!important;box-shadow:0 12px 28px #174f2b55,inset 0 0 0 4px #fff!important;transform:perspective(900px) rotateX(2deg)!important}
.track-view .track-landscape{display:block!important;position:absolute!important;inset:0!important;background:linear-gradient(#60cef4 0 31%,#72d257 31%)!important}
.track-view .race-svg{display:block!important;position:absolute!important;inset:4% 1% 2%!important;width:98%!important;height:94%!important;filter:drop-shadow(0 12px 8px #194b2d55)!important;transform:perspective(800px) rotateX(9deg)!important;transform-origin:center bottom!important}
.track-view .race-grass-island{display:flex!important;z-index:3!important;box-shadow:inset 0 0 24px #278b3566!important}
.track-view .race-stand,.track-view .race-tires,.track-view .race-finish,.track-view .race-finish-sign{display:block!important}
.track-view .real-ramp{display:block!important;z-index:20!important}
.ramp-a{left:51%!important;top:47%!important;transform:rotate(-10deg) scale(.95)!important}.ramp-b{left:19%!important;top:61%!important;transform:rotate(-24deg) scale(.78)!important}
.race-car-shell{position:absolute!important;z-index:35!important;width:min(22vw,170px)!important;left:13%!important;top:68%!important;bottom:auto!important;offset-path:none!important;transform:translate(-50%,-50%)!important;filter:drop-shadow(0 9px 6px #0006)!important}

/* V25 — prostorovější závodní areál a skutečná městská projížďka */
.race-park-v14{background:linear-gradient(#7bd7f4 0 24%,#75cf55 24% 100%)!important;transform:perspective(850px) rotateX(5deg)!important;transform-origin:center bottom!important}
.track-view .race-svg{inset:2% -4% -3%!important;width:108%!important;height:103%!important;transform:perspective(700px) rotateX(18deg) rotateZ(-2deg)!important;filter:drop-shadow(0 18px 10px #173d2c66)!important}
.race-border-red{stroke-width:122!important}.race-border-white{stroke-width:103!important}.race-asphalt{stroke-width:86!important}.race-dashes{stroke-width:6!important;stroke-dasharray:24 24!important}
.track-view .race-grass-island{left:28%!important;top:36%!important;width:44%!important;height:29%!important;transform:perspective(600px) rotateX(12deg)!important}
.real-ramp{filter:drop-shadow(0 14px 7px #17372c88)!important}.ramp-top{height:82%!important;background:linear-gradient(105deg,#f05d22,#ffb72d)!important}.ramp-side{height:45%!important;background:linear-gradient(#145a89,#0b3555)!important}
.ramp-a{left:57%!important;top:36%!important;transform:rotate(-14deg) scale(1.05)!important}.ramp-b{left:20%!important;top:63%!important;transform:rotate(-27deg) scale(.9)!important}
.race-car-shell{width:min(24vw,185px)!important;filter:drop-shadow(0 13px 8px #0007)!important}
.city-view{background:linear-gradient(#64cdf2 0 42%,#bcecff 42% 48%,#79ce58 48% 100%)!important;overflow:hidden!important}
.city-blocks{top:17%!important;height:37%!important;filter:drop-shadow(0 8px 5px #235a7040)!important}.city-square{top:51%!important;height:18%!important;transform:perspective(700px) rotateX(12deg)!important}.city-road{left:-18%!important;right:-18%!important;bottom:-3%!important;height:38%!important;transform:perspective(700px) rotateX(16deg) rotateZ(-3deg)!important;border-top:10px solid #fff!important;box-shadow:inset 0 10px 0 #d43b37,0 -8px 20px #234c5b33!important}.city-road:after{height:6px!important;top:53%!important;background:repeating-linear-gradient(90deg,#fff 0 45px,transparent 45px 92px)!important}.city-car-shell{z-index:20!important;width:min(35vw,260px)!important;left:7%!important;top:69%!important;filter:drop-shadow(0 12px 7px #0006)!important}.city-truck{z-index:12!important;right:2%!important;bottom:19%!important;width:min(31vw,235px)!important}
/* V26: clean playable race scene + stronger city travel */
.track-view .track-landscape{display:none!important}
.race-park-v14{left:1.5%!important;right:1.5%!important;top:18%!important;bottom:24%!important;border-radius:28px!important;overflow:hidden!important;background:url('assets/scenes/track_play.webp?v=26') center/cover no-repeat!important;box-shadow:0 14px 28px #153e2c55,inset 0 0 0 4px #fff!important;transform:none!important}
.track-view .race-svg,.track-view .race-grass-island,.track-view .race-stand,.track-view .race-tires,.track-view .real-ramp,.track-view .race-finish,.track-view .race-finish-sign{display:none!important}
.race-car-shell{position:absolute!important;z-index:35!important;width:min(23vw,175px)!important;left:14%!important;top:67%!important;bottom:auto!important;transform:translate(-50%,-50%)!important;filter:drop-shadow(0 10px 7px #0007)!important}
.city-road{background-color:#444b52!important;background-image:repeating-linear-gradient(90deg,transparent 0 70px,#ffffff22 70px 74px,transparent 74px 145px)!important;background-size:145px 100%!important}
/* V27 clean gameplay scenes */
.track-view{background:linear-gradient(#5ecbf3 0 34%,#75d65a 34% 100%)!important}
.track-view .track-landscape{display:block!important;position:absolute!important;inset:0!important;background:linear-gradient(#5ecbf3 0 34%,#75d65a 34% 100%)!important}
.race-park-v14{left:1%!important;right:1%!important;top:18%!important;bottom:24%!important;background:radial-gradient(ellipse at center,#66c94d 0 43%,#4dad3c 44% 100%)!important;overflow:visible!important;transform:perspective(700px) rotateX(12deg)!important;transform-origin:center bottom!important;border:0!important;box-shadow:none!important}
.track-view .race-svg{display:block!important;inset:0!important;width:100%!important;height:100%!important;filter:drop-shadow(0 16px 10px #173d2c66)!important;transform:none!important}
.track-view .race-grass-island{display:flex!important}.track-view .race-stand,.track-view .race-tires,.track-view .race-finish,.track-view .race-finish-sign,.track-view .real-ramp{display:block!important}
.real-ramp{filter:drop-shadow(0 12px 6px #183b2d88)!important}.ramp-top{background:linear-gradient(135deg,#ff8b24,#ffc640)!important;box-shadow:inset 0 5px 0 #fff8!important}.ramp-side{height:45%!important;background:linear-gradient(#1d6d9d,#123f60)!important}
.race-car-shell{z-index:40!important;width:min(23vw,180px)!important;filter:drop-shadow(0 12px 7px #0007)!important}
.city-view{background:linear-gradient(#62cef4 0 39%,#bcecff 39% 46%,#79cf58 46% 100%)!important}.city-road{height:42%!important;bottom:-5%!important}.city-car-shell{width:min(34vw,250px)!important}
/* V28: samostatna herni draha – cisty 3D podklad + samostatne auto */
.race-park-v14{left:1%!important;right:1%!important;top:18%!important;bottom:24%!important;border-radius:28px!important;overflow:hidden!important;background:url('assets/scenes/track_clean.webp?v=28') center/cover no-repeat!important;transform:none!important;box-shadow:0 14px 28px #153e2c55,inset 0 0 0 4px #fff!important}
.track-view .race-svg,.track-view .race-grass-island,.track-view .race-stand,.track-view .race-tires,.track-view .real-ramp,.track-view .race-finish,.track-view .race-finish-sign,.track-view .track-landscape{display:none!important}
.race-car-shell{position:absolute!important;z-index:45!important;width:min(20vw,155px)!important;left:11%!important;top:69%!important;bottom:auto!important;transform:translate(-50%,-50%)!important;filter:drop-shadow(0 10px 7px #0008)!important}
/* V30 clean race scene: one dedicated playable scene */
.track-view{background:#73d35a!important;overflow:hidden!important}
.track-view .track-landscape,.track-view .race-park{display:none!important}
.track-view:before{content:"";position:absolute;z-index:1;left:2%;right:2%;top:17%;bottom:13%;border-radius:30px;background:url('assets/scenes/track_v30_clean.webp?v=30') center/cover no-repeat;box-shadow:0 10px 24px #174d2740,inset 0 0 0 5px #fff;}
.track-view .race-car-shell{display:block!important;position:absolute!important;z-index:25!important;width:min(27vw,190px)!important;left:10%;top:69%;bottom:auto!important;transform:translate(-50%,-50%)!important;filter:drop-shadow(0 8px 5px #0004)}
.track-view .race-controls{z-index:40!important}

/* V32: approved 3D track artwork as the world, car remains an independent playable object */
.track-view{background:linear-gradient(#59c9f4 0 32%,#73d256 32% 100%)!important;overflow:hidden!important}
.track-view .track-landscape{display:none!important}
.race-park-v14{position:absolute!important;left:1.5%!important;right:1.5%!important;top:18%!important;bottom:24%!important;border-radius:28px!important;overflow:hidden!important;background:url('assets/scenes/track3d_v23.webp?v=32') center/cover no-repeat!important;box-shadow:0 14px 28px #153e2c55,inset 0 0 0 4px #fff!important;transform:none!important}
.track-view .race-svg,.track-view .race-grass-island,.track-view .race-stand,.track-view .race-tires,.track-view .real-ramp,.track-view .race-finish,.track-view .race-finish-sign{display:none!important}
.race-car-shell{position:absolute!important;z-index:40!important;width:min(23vw,180px)!important;left:10%!important;top:72%!important;bottom:auto!important;offset-path:none!important;transform:translate(-50%,-50%)!important;filter:drop-shadow(0 10px 7px #0008)!important}

/* V33 authoritative track: single 3D scene + moving car overlay */
.track-view{background:linear-gradient(#5ecbf3 0 34%,#75d65a 34% 100%)!important;overflow:hidden!important}
.track-view .track-landscape{display:none!important}
.track-view .race-park-v14{display:block!important;position:absolute!important;left:1.5%!important;right:1.5%!important;top:18%!important;bottom:24%!important;border-radius:28px!important;overflow:hidden!important;background:url('assets/scenes/track3d_v23.webp?v=33') center/cover no-repeat!important;box-shadow:0 14px 28px #153e2c55,inset 0 0 0 4px #fff!important;transform:none!important}
.track-view .race-svg,.track-view .race-grass-island,.track-view .race-stand,.track-view .race-tires,.track-view .real-ramp,.track-view .race-finish,.track-view .race-finish-sign{display:none!important}
.track-view .race-car-shell{display:block!important;position:absolute!important;z-index:25!important;width:min(25vw,180px)!important;left:10%!important;top:72%!important;bottom:auto!important;transform:translate(-50%,-50%)!important;filter:drop-shadow(0 8px 5px #0005)}

/* V34 — clean interactive 3D-style race course */
.track-view{background:linear-gradient(#5dcdf4 0 31%,#79d65a 31% 100%)!important;overflow:hidden!important}
.track-view .track-landscape{display:block!important;position:absolute!important;inset:0!important;background:linear-gradient(#5dcdf4 0 31%,#79d65a 31%)!important}
.track-view .race-park{display:none!important}.v34-track{position:absolute;z-index:3;left:2%;right:2%;top:18%;bottom:23%;border-radius:30px;overflow:hidden;background:radial-gradient(ellipse at 50% 55%,#8ee06a 0 40%,#61bf49 72%);box-shadow:inset 0 0 0 4px #fff,0 14px 26px #174d2745;perspective:800px}
.v34-track svg{position:absolute;inset:0;width:100%;height:100%;filter:drop-shadow(0 13px 7px #173b2b55);transform:perspective(800px) rotateX(7deg);transform-origin:center bottom}
.v34-road-edge{fill:none;stroke:#e83e36;stroke-width:102;stroke-linecap:round;stroke-linejoin:round}.v34-road{fill:none;stroke:#3f464e;stroke-width:82;stroke-linecap:round;stroke-linejoin:round}.v34-center{fill:none;stroke:#fff;stroke-opacity:.72;stroke-width:5;stroke-dasharray:20 18;stroke-linecap:round}
.v34-lake{position:absolute;left:43%;top:40%;width:18%;height:18%;border-radius:50%;background:radial-gradient(ellipse,#79e8ff,#1d9fd1 68%,#fff 71%,transparent 74%);display:grid;place-items:center;font-size:25px;transform:rotate(-8deg);box-shadow:inset 0 5px 12px #fff8}.v34-pines{position:absolute;right:3%;top:2%;font-size:25px;line-height:1.15;filter:drop-shadow(0 5px 3px #0003)}
.v34-ramp{position:absolute;z-index:7;width:84px;height:54px;background:linear-gradient(160deg,#ffbf4d 0 52%,#e67b24 53% 75%,#2f6e9b 76%);clip-path:polygon(0 100%,18% 24%,88% 0,100% 77%);filter:drop-shadow(0 8px 4px #0005);display:grid;place-items:center;font-size:24px;color:white}.v34-ramp.ramp1{left:45%;top:21%;transform:rotate(-18deg)}.v34-ramp.ramp2{left:43%;bottom:7%;transform:rotate(12deg)}
.v34-finish{position:absolute;left:4%;bottom:8%;z-index:8;background:#fff;border:4px solid #1c6da4;border-radius:13px;padding:5px 8px;font-weight:1000;box-shadow:0 6px 0 #15547e;transform:rotate(-10deg)}.v34-finish b{margin:0 4px}.v34-cup{position:absolute;right:6%;bottom:5%;background:#fff9;border:3px solid #f4c44b;border-radius:16px;padding:5px 8px;font-weight:1000;color:#165486}
.track-view .race-car-shell{display:block!important;position:absolute!important;z-index:25!important;width:min(23vw,165px)!important;left:10%!important;top:70%!important;bottom:auto!important;transform:translate(-50%,-50%)!important;filter:drop-shadow(0 8px 5px #0005)}
