:root{color-scheme:dark;--gold:#e8bd70;--muted:#a6b0b4;--line:#ffffff24}*{box-sizing:border-box}body{margin:0;font-family:Arial,'Noto Sans TC','Microsoft JhengHei',sans-serif;color:#f3f5f2;background:#10191b;overflow:hidden}button{font:inherit;color:inherit;cursor:pointer;border:1px solid var(--line);background:#182328;padding:12px 18px;transition:.2s}button:hover{border-color:var(--gold);background:#34403e}button:disabled{opacity:.4;cursor:not-allowed}button:focus-visible{outline:2px solid var(--gold);outline-offset:4px}#world,#shade{position:fixed;inset:0;width:100%;height:100%}#shade{pointer-events:none;background:linear-gradient(90deg,rgba(7,15,19,.96),rgba(7,15,19,.82) 32%,transparent 64%),linear-gradient(0deg,#071015c9,transparent 40%)}header{height:95px;position:relative;z-index:3;display:flex;align-items:center;gap:30px;padding:20px 4%;border-bottom:1px solid var(--line);background:#071015a6}header img{width:228px;height:auto}.edition{font-size:13px;letter-spacing:3px}.edition small{display:block;color:var(--muted);margin-top:8px;letter-spacing:1px}.account{margin-left:auto;display:flex;align-items:center;gap:22px;font-size:14px}.account>span{color:var(--gold);letter-spacing:2px}.account b{font-size:19px}.account button{font-size:13px;padding:8px}main{position:relative;height:calc(100dvh - 95px);padding:0 4%;z-index:2}nav{display:flex;gap:28px;height:68px;align-items:stretch}nav button{padding:0 3px;border:0;border-bottom:2px solid transparent;background:transparent;font-size:15px;color:#aeb6b9}nav .active{color:var(--gold);border-bottom-color:var(--gold)}#panel{width:420px;max-height:calc(100dvh - 228px);overflow:auto;padding:24px 8px 20px 0;scrollbar-width:thin}.eyebrow{font-size:12px;color:var(--gold);letter-spacing:3px;margin:0 0 12px}h1{font-size:38px;line-height:1.16;margin:0 0 14px;font-weight:500;letter-spacing:1px}p{color:var(--muted);font-size:14px;line-height:1.7}.intro{margin-bottom:24px}.track{display:grid;grid-template-columns:42px 1fr auto;align-items:center;padding:16px 14px;width:100%;text-align:left;background:#132126be;margin-bottom:8px;border:1px solid var(--line)}.track.selected{border-color:var(--gold);background:#293631cc}.track .index{font-size:26px;color:#d1ae70}.track strong{font-size:16px;font-weight:500}.track small{display:block;color:var(--muted);font-size:12px;margin-top:5px}.track em{font-size:12px;font-style:normal;color:var(--gold)}.details{display:flex;justify-content:space-between;border-block:1px solid var(--line);margin:20px 0;padding:14px 0;font-size:13px}.details span{color:var(--muted);display:block;margin-bottom:6px}.primary{background:var(--gold);color:#172021;border:1px solid var(--gold);font-weight:700;width:100%;padding:17px}.primary:hover{background:#ffda96}.car-caption{position:absolute;left:55%;bottom:90px;pointer-events:none}.car-caption span{font-size:12px;letter-spacing:3px;color:var(--gold)}.car-caption h2{font-size:48px;letter-spacing:5px;margin:10px 0;font-weight:400}.car-caption p{font-size:12px}footer{position:absolute;bottom:20px;left:4%;right:4%;display:flex;justify-content:space-between;font-size:12px;color:#9ca7aa}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:18px 0}.stats div{border-left:2px solid var(--gold);padding:4px 12px}.stats small{display:block;color:var(--muted);font-size:12px}.stats b{display:block;font-size:22px;margin-top:8px}.upgrade{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding:14px 0;gap:12px}.upgrade p{margin:5px 0;font-size:12px}.upgrade button{font-size:13px;white-space:nowrap}.products{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.product{min-width:0;background:#0b171b66;color:#e8ece9;padding:16px 8px 14px;text-align:center;border:1px solid #ffffff20;border-radius:5px}.product.selected{border-color:var(--gold);background:#cbb27314}.product:hover{border-color:#cbb27388;background:#cbb2730d}.product:focus-visible{outline:2px solid var(--gold);outline-offset:3px}.product img{display:block;width:100%;height:130px;object-fit:contain;object-position:center bottom;background:transparent;filter:drop-shadow(0 5px 4px #0005)}.product b,.product small{display:block;margin-top:10px;line-height:1.35;font-size:14px}.product small{margin-top:5px;color:#b8c3c4;font-size:13px}.note{font-size:12px}.academy{padding:18px 0;border-top:1px solid var(--line)}.academy strong{font-size:18px}.academy button{width:100%}.race-top{position:absolute;top:115px;left:4%;right:4%;display:flex;justify-content:space-between}.race-top small{color:#e8bd70;letter-spacing:2px;font-size:13px}.race-top h2{font-size:27px;margin:8px 0}.timing{display:flex;flex-direction:column;align-items:flex-end;gap:8px}.timing b{font-size:28px;font-variant-numeric:tabular-nums}.timing span{font-size:22px}#hud{position:absolute;inset:0;pointer-events:none;z-index:4}.telemetry{position:absolute;bottom:70px;right:5%;width:240px}.telemetry>span{font-size:13px}.telemetry>div{display:flex;align-items:center;justify-content:flex-end;gap:14px}.telemetry b{font-size:86px;font-weight:400;font-style:italic;font-variant-numeric:tabular-nums}.telemetry strong{font-size:30px;color:var(--gold)}.telemetry span{font-size:12px;color:#c3cdcd}.rev{height:5px;background:#ffffff30}.rev i{height:100%;background:var(--gold);display:block}#map{position:absolute;bottom:75px;left:4%;width:200px;height:160px;background:#06151b70}.pause{position:absolute;top:235px;right:4%;pointer-events:auto;font-size:12px;background:#102027a0}#callout{position:absolute;top:36%;width:100%;text-align:center;font-size:52px;text-shadow:0 3px 16px #000;color:var(--gold)}#touch{display:none;position:absolute;bottom:12px;left:4%;right:4%;gap:10px;pointer-events:auto}#touch button{user-select:none;touch-action:none;background:#0a1c25b0;padding:17px;min-width:62px}#touch button:nth-child(3){margin-left:auto}#touch button:last-child{background:#dfb467;color:#152024}dialog{border:1px solid #b79762;background:#111d23;color:#fff;max-width:510px;width:92%;padding:35px;box-shadow:0 20px 100px #000}dialog::backdrop{background:#03090dba;backdrop-filter:blur(6px)}dialog h2{font-size:30px;font-weight:400}dialog button{margin-top:10px}#toast{position:fixed;bottom:30px;left:50%;transform:translateX(-50%);background:#eac27c;color:#152026;padding:14px 24px;z-index:20;opacity:0;transition:.2s;pointer-events:none;max-width:90%}#toast.show{opacity:1}#loading{position:fixed;inset:0;z-index:30;display:flex;flex-direction:column;justify-content:center;align-items:center;background:#09151b}#loading img{width:300px}body.racing #shade{display:none}[hidden]{display:none!important}@media(pointer:coarse){#touch{display:flex}}@media(max-width:800px){header{height:76px;padding:12px 4%;gap:10px}header img{width:155px}.edition{display:none}.account{gap:12px}.account>span{display:none}.account b{font-size:15px}.account button{font-size:12px}main{height:calc(100dvh - 76px)}nav{gap:22px;height:56px}nav button{font-size:14px}#panel{width:360px;max-width:100%;max-height:calc(100dvh - 175px);padding-top:18px}h1{font-size:29px}.car-caption{display:none}#shade{background:linear-gradient(90deg,#071015f5,#071015b0 65%,#07101560)}footer{display:none}.race-top{top:95px}.telemetry{bottom:95px;width:170px}.telemetry b{font-size:65px}#map{width:135px;height:108px;bottom:95px}.pause{top:210px}.track{padding:12px}.intro{margin:10px 0 16px}}@media(max-height:540px){header{height:58px}header img{width:160px}main{height:calc(100dvh - 58px)}nav{height:40px}#panel{max-height:calc(100dvh - 120px)}.race-top{top:70px}.telemetry{bottom:80px}.race-top h2{font-size:20px}.timing b{font-size:22px}#map{height:95px;width:120px}.pause{top:160px}}
/* Version 2: rear camera, drift telemetry and cockpit controls. */
#mirror-frame{position:absolute;pointer-events:none;border:4px solid #142025;outline:1px solid #ad9c76;box-shadow:0 7px 20px #0009;border-radius:4px;z-index:3}#mirror-frame span{position:absolute;bottom:-20px;left:0;width:100%;text-align:center;font-size:10px;letter-spacing:3px;color:#deded0;text-shadow:0 1px 3px #000}.view-controls{pointer-events:auto;position:absolute;right:4%;top:283px;display:flex;flex-direction:column;gap:7px}.view-controls button{font-size:12px;padding:10px 13px;background:#102027c0}#drift-readout{position:absolute;left:4%;top:270px;display:flex;flex-direction:column;gap:7px;border-left:2px solid #849b97;padding:4px 13px;color:#b7c7c3;text-shadow:0 2px 8px #000}#drift-readout small{font-size:11px;letter-spacing:2px}#drift-readout b{font-size:31px;font-weight:400;font-variant-numeric:tabular-nums}#drift-readout span{font-size:12px}#drift-readout.active{color:#ffcf7f;border-color:#ffcf7f}.handbrake{border-color:#c9a469!important}body.racing header{height:76px;background:linear-gradient(#071015a8,#07101522);border:0}body.racing header img{width:180px}body.cockpit-view .telemetry{opacity:.74;transform:scale(.78);transform-origin:right bottom}#touch button:nth-child(3){margin-left:12px}#touch button:nth-child(4){margin-left:auto}
@media(max-width:800px){#quality-toggle{font-size:11px;padding:7px}.account{gap:7px}header img{width:130px}body.racing header img{width:130px}.account b{font-size:13px}.view-controls{top:258px}.view-controls button{padding:8px;font-size:11px}#drift-readout{top:205px}#drift-readout b{font-size:24px}#mirror-frame span{font-size:8px;letter-spacing:1px;bottom:-17px}.timing b{font-size:22px}.race-top small{font-size:10px;letter-spacing:1px}.race-top h2{font-size:22px}}
@media(max-width:500px){body.racing header .account b{display:none}header img{width:110px}.account button{font-size:10px;padding:6px}.view-controls{top:250px;right:3%}.race-top{left:3%;right:3%}.race-top small{max-width:115px;display:block}.timing b{font-size:19px}.race-top h2{font-size:18px;margin-top:12px}#touch{left:2%;right:2%;gap:6px}#touch button{padding:15px 10px;min-width:48px;font-size:13px}#touch button:nth-child(3){margin-left:0}}
@media(max-height:540px){body.racing header{height:50px}#drift-readout{top:170px}#drift-readout span{display:none}.view-controls{top:205px;flex-direction:row}.view-controls button{padding:7px}.telemetry{bottom:75px}#callout{font-size:28px!important}.race-top small{font-size:10px}}
/* Persistent collision repair workflow. */
.workshop-status{display:flex;justify-content:space-between;gap:10px;padding:14px 12px;background:#2b3934;border-left:3px solid var(--gold);font-size:13px;margin:20px 0 8px}.workshop-status.critical{background:#473a26}.workshop-status span{color:#c8c8b8}.repair-part{display:flex;align-items:center;gap:12px;padding:15px 0;border-bottom:1px solid var(--line)}.repair-part>div{flex:1}.repair-part b{font-size:14px}.repair-part span{float:right;color:var(--gold);font-size:13px}.repair-part progress{display:block;width:100%;height:6px;margin:9px 0;accent-color:var(--gold)}.repair-part small{color:var(--muted);font-size:12px}.repair-part button{font-size:12px;padding:11px;min-width:108px}.service-heading{font-size:22px;font-weight:400;border-top:1px solid var(--line);padding-top:24px;margin-top:28px}.recovery-job{padding:15px;background:#263536;margin-top:16px}.recovery-job p{margin:0 0 10px}.recovery-job button{width:100%}.recovery-job small{display:block;font-size:12px;color:#b8c3bf;line-height:1.6;margin-top:10px}nav{gap:23px}@media(max-width:500px){nav{gap:17px}nav button{font-size:13px}.repair-part{gap:8px}.repair-part button{min-width:100px;padding:10px 7px}}
/* A bounded, live-rendered mobile quality study. */
.proof-menu #shade{background:linear-gradient(90deg,#061116ef 0%,#061116a0 29%,transparent 64%),linear-gradient(0deg,#061116aa,transparent 24%)}.proof-menu #panel{padding-top:60px;width:360px}.proof-menu h1{font-size:43px;line-height:1.28;font-weight:400}.proof-menu .intro{font-size:15px;line-height:1.9}.proof-specs{display:flex;gap:25px;margin:30px 0 25px;font-size:11px;letter-spacing:2px;color:#d5bb87}.proof-options{display:flex;gap:8px;margin-top:12px}.proof-options button{flex:1;font-size:13px;background:#12232cc9}.proof-menu .car-caption{bottom:100px;left:57%}.proof-menu .car-caption h2{font-size:35px;letter-spacing:5px}.proof-menu .account>span{display:none}#sound-dock{position:fixed;bottom:22px;left:50%;z-index:6;display:flex;align-items:center;gap:10px;background:#07141caf;border:1px solid #ffffff22;padding:8px 12px}#sound-dock label{font-size:10px;letter-spacing:2px;color:#cbbb94}#music-volume{width:90px;accent-color:var(--gold)}body.racing #sound-dock{display:none}#fps-readout{text-align:right;font-size:11px;color:#cfdbc7;letter-spacing:1px}.view-controls{top:265px}#touch button{min-height:54px}.account{gap:12px}nav{gap:23px}.proof-menu .car-caption p{max-width:220px}
@media(max-width:1100px){.edition{display:none}.account{gap:8px}.proof-menu #panel{padding-top:30px}}@media(max-width:700px) and (orientation:portrait){header img{width:110px}header .account b{display:none}.account button{padding:8px 6px;font-size:11px}nav{gap:18px;overflow-x:auto;white-space:nowrap;scrollbar-width:none}nav button{flex-shrink:0;font-size:13px}.proof-menu #shade{background:linear-gradient(0deg,#061116 0%,#061116f0 35%,transparent 65%)}.proof-menu #panel{position:absolute;bottom:36px;left:4%;right:4%;width:auto;max-height:47dvh;padding:0;overflow:auto}.proof-menu h1{font-size:27px;line-height:1.2;margin-bottom:10px}.proof-menu h1 br{display:none}.proof-menu .intro{font-size:13px;margin:8px 0}.proof-menu .intro br{display:none}.proof-specs{margin:14px 0;gap:18px;font-size:10px}.proof-menu .eyebrow{font-size:10px;margin-bottom:12px}.proof-menu .note{font-size:11px;line-height:1.6}.proof-menu .primary{padding:15px}.proof-options button{padding:10px}.proof-menu .car-caption{display:none}#sound-dock{left:auto;right:4%;bottom:8px;padding:5px 9px}#music-volume{width:75px}#hud .view-controls{top:250px}.telemetry{right:4%;bottom:110px}#touch{bottom:max(14px,env(safe-area-inset-bottom));left:3%;right:3%}#touch button{min-width:47px;padding:14px 8px}body.racing .account #quality-toggle{display:none}}
@media(max-height:540px){.proof-menu #panel{padding-top:14px;max-height:calc(100dvh - 126px)}.proof-menu h1{font-size:27px}.proof-menu .intro{font-size:12px;margin:7px 0}.proof-specs{margin:13px 0}.proof-menu .eyebrow{font-size:10px;margin-bottom:9px}.proof-menu .note{font-size:11px}.proof-menu .primary{padding:12px}.proof-options button{padding:9px}.proof-menu .car-caption{bottom:54px}.proof-menu .car-caption h2{font-size:25px}#sound-dock{bottom:8px;left:auto;right:4%}.view-controls{top:166px;flex-direction:row;gap:5px}.view-controls button{font-size:10px;padding:7px}#fps-readout{position:absolute;right:0;top:-20px}.telemetry{bottom:80px}.telemetry b{font-size:56px}#drift-readout{top:146px}body.racing header{height:52px}}
/* Garage study — the live 3D scene remains the primary surface. */
:root{--gold:#d4b46e;--muted:#b0b4b7;--line:#ffffff20}body{background:#080b0e}#world{touch-action:none}main{pointer-events:none}main nav,main #panel,main footer{pointer-events:auto}header{height:88px;background:linear-gradient(180deg,#06090df0,#06090d35);border:0;padding-inline:3%}header img{width:235px}.edition{letter-spacing:4px;font-size:12px}main{height:calc(100dvh - 88px);padding-inline:3%}nav{gap:0;height:59px;border-bottom:1px solid #ffffff16;width:max-content}nav button{padding:0 22px;font-size:14px;letter-spacing:1px}nav button:first-child{padding-left:0}nav .active{color:#eed299}.proof-menu #shade{background:linear-gradient(90deg,#04070be8 0%,#04070bab 21%,transparent 53%),linear-gradient(0deg,#05080bc9,transparent 20%)}.proof-menu #panel{padding-top:70px;width:310px}.proof-menu h1{font-size:35px;font-weight:600;letter-spacing:3px;line-height:1.1}.proof-menu .intro{font-size:14px;color:#d1d0c8}.proof-specs{font-size:12px;margin:26px 0;letter-spacing:1px;gap:22px}.primary{background:linear-gradient(110deg,#ae8844,#ead297);color:#161713;border-color:#c4a363;letter-spacing:1px}.proof-options button{background:#0c1119c9;border-color:#ffffff26;font-size:14px;padding:12px 8px}.proof-menu .note{font-size:12px;line-height:1.8}.asset-credit{color:#8e9398;font-size:12px;text-decoration:none;border-bottom:1px solid #666b70;padding-bottom:3px}.asset-credit:hover{color:var(--gold)}.proof-menu .car-caption{left:auto;right:6%;bottom:75px;text-align:right}.proof-menu .car-caption h2{font-size:32px;letter-spacing:6px}.proof-menu .car-caption p{max-width:none}.proof-menu .car-caption span{letter-spacing:3px;font-size:12px}#sound-dock{bottom:18px;left:auto;right:3%;background:#080d11a0}.proof-menu footer{right:28%;bottom:22px}footer span:last-child{display:none}body.racing .race-top{padding:12px 16px;background:linear-gradient(90deg,#071018a6,transparent 32%,transparent 66%,#071018a6);border-top:1px solid #ffffff24}.telemetry{padding:8px 18px 16px;background:linear-gradient(0deg,#071018bb,transparent);border-bottom:2px solid var(--gold)}
@media(max-width:1100px){.proof-menu #panel{padding-top:35px;width:285px}.proof-menu h1{font-size:29px}header img{width:200px}nav button{padding-inline:15px}}
@media(max-width:700px) and (orientation:portrait){header{height:70px}header img{width:112px}main{height:calc(100dvh - 70px)}nav{width:100%;height:50px;overflow-x:auto}nav button{font-size:12px;padding-inline:13px}.proof-menu #panel{bottom:38px;width:auto;padding:18px 0 0;max-height:39dvh}.proof-menu h1{font-size:26px}.proof-menu .eyebrow{font-size:11px;letter-spacing:2px}.proof-menu .intro{font-size:13px}.proof-specs{display:none}.proof-menu .note{font-size:12px;margin:9px 0}.proof-menu #shade{background:linear-gradient(0deg,#060a0e 0%,#060a0eef 32%,transparent 59%)}.proof-options{margin-top:8px}.proof-options button{font-size:13px;padding:9px}.asset-credit{font-size:12px}.proof-menu .primary{padding:13px}body.racing .account #quality-toggle{display:block}#sound-dock{bottom:6px}}
@media(max-height:540px){header{height:52px}header img{width:160px}main{height:calc(100dvh - 52px)}nav{height:40px}nav button{font-size:12px;padding:0 15px}.proof-menu #panel{padding-top:18px;width:260px;max-height:calc(100dvh - 110px)}.proof-menu h1{font-size:25px}.proof-menu .intro{font-size:12px}.proof-specs{display:none}.proof-menu .note{font-size:12px;margin:9px 0}.proof-options button{padding:9px;font-size:12px}.proof-menu .car-caption{bottom:40px;right:5%}.proof-menu .car-caption h2{font-size:24px}.proof-menu .car-caption p{display:none}.asset-credit{font-size:12px}.proof-menu footer{display:none}#sound-dock{bottom:6px}}
/* Race HUD: fixed information hierarchy and unoccluded central driving view. */
body.racing header{height:52px;padding:10px 3%;background:linear-gradient(#060a0db0,transparent)}body.racing header img{width:135px}body.racing .edition,body.racing .account>b,body.racing .account>span{display:none}body.racing .race-top{top:65px;left:3%;right:3%;padding:0;display:flex;align-items:flex-start;justify-content:flex-start;gap:8px;border:0;background:none}.position-box,.lap-box{min-width:106px;padding:12px 15px;background:#071018b8;backdrop-filter:blur(8px);border-top:2px solid #bba477}.position-box>small,.lap-box>small{display:block;color:#afb8c1!important;font-size:12px!important;letter-spacing:2px!important}.position-box strong,.lap-box h2{display:block;margin:6px 0 4px!important;font-size:32px!important;font-weight:500;font-variant-numeric:tabular-nums;line-height:1.2}.position-box>span{display:block;color:var(--gold);font-size:11px;letter-spacing:1px}.lap-box{max-width:210px}.lap-box #event-title{display:block;font-size:10px;max-width:190px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#b1b8bd}.timing{margin-left:auto;gap:7px;background:#071018ad;padding:10px 14px;min-width:200px}.timing>div{display:flex;flex-direction:column;align-items:flex-end}.timing small{font-size:11px!important;letter-spacing:1px!important;color:#acb6be!important}.timing b{font-size:25px!important;letter-spacing:1px}.timing>div:nth-child(2) b{font-size:18px!important;color:var(--gold)}.timing-extra{display:grid!important;grid-template-columns:auto auto;align-items:center!important;gap:4px 15px}.timing-extra b{font-size:13px!important;color:#bac5cb!important}.timing-extra small{font-size:10px!important}#leaderboard{position:absolute;left:3%;top:193px;width:260px;color:#eef1f2;font-size:13px;background:#0610199e}#leaderboard>div{display:grid;grid-template-columns:26px 1fr 72px;align-items:center;gap:8px;padding:9px 10px;border-bottom:1px solid #ffffff12}#leaderboard>div.you{background:#bc99552b;border-left:2px solid var(--gold)}#leaderboard b{font-size:17px;font-weight:500}#leaderboard span{display:flex;align-items:center;gap:10px;font-size:12px;letter-spacing:1px}#leaderboard small{font-size:10px;color:#b4c0c7;border-right:1px solid #ffffff40;padding-right:7px}#leaderboard em{font-size:12px;text-align:right;font-style:normal;color:#c2b188}.sector-strip{position:absolute;top:186px;left:50%;transform:translateX(-50%);display:flex;gap:3px;align-items:center;font-size:11px;white-space:nowrap}.sector-strip span{padding:7px 10px;background:#091017ad;border-bottom:2px solid #7a858e;color:#c9d0d5}.sector-strip b{padding:7px 10px;font-weight:500;background:#091017a8;color:#e3be85}.sector-strip b.gain{color:#82d7c1}.telemetry{position:absolute;right:3%;bottom:33px;width:280px;padding:0;background:radial-gradient(ellipse at 50% 50%,#071017e6,transparent 71%);border:0}.telemetry>div{display:block}.dial{position:relative;width:280px;height:255px}.dial svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.rpm-track{fill:none;stroke:#ffffff26;stroke-width:6}#rev-arc{fill:none;stroke:#e7c479;stroke-width:6;stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset .08s linear}.rpm-ticks path{fill:none;stroke:#d2d7d9;stroke-width:1.2}.rpm-ticks text{font:14px Arial;fill:#cbd0d4;text-anchor:middle}.telemetry .speed-readout{position:absolute;inset:90px 40px auto;display:grid;grid-template-columns:1fr 42px;gap:0 13px;align-items:center;text-align:center}.telemetry .speed-readout b{font-size:64px;line-height:1;font-style:normal;font-weight:400;letter-spacing:-3px}.speed-readout small{grid-column:1;color:#adb9c4;font-size:12px;letter-spacing:2px}.telemetry .speed-readout strong{grid-column:2;grid-row:1 / 3;font-size:37px;color:var(--gold);border-left:1px solid #ffffff4d;padding-left:10px}.rpm-caption{position:absolute;top:177px;width:100%;text-align:center;color:#a1afba;font-size:10px;letter-spacing:1px}.rpm-caption span{font-size:12px;color:#d4dcdf}.pedals{position:absolute;right:3px;bottom:46px;display:flex;gap:6px;height:54px}.pedals>div{position:relative;height:54px;width:5px;background:#ffffff21}.pedals i{position:absolute;bottom:0;width:5px;background:#89cbb8;transition:height .07s}#brake-fill{background:#e5af66}.telemetry #handbrake-state{position:absolute;bottom:24px;left:0;width:100%;text-align:center;color:#737b86;font-size:10px;letter-spacing:2px}#handbrake-state.lit{color:#ffd08b!important}#shift-light{text-align:center;color:transparent!important;height:18px;letter-spacing:7px;font-size:12px}#shift-light.lit{color:#f5c276!important}.telemetry .car-health{display:flex;justify-content:space-between;gap:6px;padding:5px 0 10px;border-bottom:1px solid #ffffff27}.car-health span{font-size:10px;color:#9cabb9}.car-health b{display:block;font-size:14px;font-weight:400;font-style:normal;color:#c9ddd5;letter-spacing:0;margin-top:3px}.car-health b.worn{color:#edba6e}.telemetry>#condition{display:block;font-size:10px;line-height:1.7;text-align:center;margin-top:5px;color:#9ca9b3}#map{background:transparent;bottom:38px;left:3%;width:160px;height:128px}#drift-readout{top:auto;bottom:195px;left:3%;background:#0710198a;padding:8px 12px}#drift-readout:not(.active){opacity:.65}#drift-readout b{font-size:23px}#drift-readout small{font-size:10px}#drift-readout span{font-size:10px}.view-controls{top:auto!important;bottom:25px;left:50%;right:auto;transform:translateX(-50%);flex-direction:row;gap:5px}.view-controls button{font-size:11px;padding:9px;background:#0a111aa6}.view-controls #fps-readout{position:absolute;top:-18px;right:0;font-size:10px}.pause{top:auto;bottom:70px;right:calc(3% + 305px);padding:9px 13px;font-size:12px}body.cockpit-view .telemetry{transform:scale(.83);opacity:.9}#touch{z-index:2}body.racing #callout{top:35%}
@media(pointer:coarse){.telemetry{bottom:90px}.view-controls{bottom:88px}#map{bottom:95px}#drift-readout{bottom:235px}.pause{bottom:136px}}
@media(max-width:700px) and (orientation:portrait){body.racing header img{width:105px}body.racing header .account button{font-size:10px;padding:6px}.race-top{top:62px!important}.position-box,.lap-box{min-width:74px;padding:9px}.position-box strong,.lap-box h2{font-size:25px!important}.lap-box #event-title{display:none}.position-box>span{font-size:9px}.timing{min-width:125px;padding:8px}.timing b{font-size:18px!important}.timing>div:nth-child(2) b{font-size:15px!important}.timing-extra{display:none!important}#leaderboard{top:165px;width:200px}#leaderboard>div{padding:6px 8px;grid-template-columns:21px 1fr 59px;gap:5px}#leaderboard span{font-size:10px;gap:5px}#leaderboard em{font-size:10px}.sector-strip{top:302px;left:3%;transform:none;gap:2px}.sector-strip span,.sector-strip b{font-size:9px;padding:5px}.telemetry{right:2%;bottom:128px;transform:scale(.69);transform-origin:right bottom}body.cockpit-view .telemetry{transform:scale(.64)}.view-controls{bottom:88px;left:50%;white-space:nowrap}.view-controls button{font-size:10px;padding:8px}#map{width:118px;height:94px;bottom:137px}#drift-readout{bottom:246px;font-size:10px}#drift-readout span{display:none}.pause{bottom:354px;right:3%;padding:8px}.race-top small{max-width:none}.telemetry>#condition{font-size:12px}}
@media(max-height:540px){body.racing header{height:37px}body.racing header img{width:115px}.race-top{top:43px!important}.position-box,.lap-box{min-width:78px;padding:7px 10px}.position-box strong,.lap-box h2{font-size:24px!important}.position-box>small,.lap-box>small{font-size:10px!important}.position-box>span{font-size:9px}.lap-box #event-title{display:none}.timing{min-width:152px;padding:6px 10px;gap:3px}.timing b{font-size:19px!important}.timing>div:nth-child(2) b{font-size:14px!important}.timing-extra{display:none!important}#leaderboard{top:128px;width:195px;font-size:10px}#leaderboard>div{padding:4px 8px;grid-template-columns:18px 1fr 55px;gap:6px}#leaderboard span{font-size:10px;gap:5px}#leaderboard em{font-size:10px}#leaderboard b{font-size:14px}.sector-strip{top:123px}.sector-strip span,.sector-strip b{font-size:9px;padding:5px}.telemetry{right:2%;bottom:76px;transform:scale(.62);transform-origin:right bottom}body.cockpit-view .telemetry{transform:scale(.59)}#map{width:110px;height:88px;bottom:72px}#drift-readout{bottom:165px;left:3%;padding:5px 8px}#drift-readout b{font-size:19px}#drift-readout span{display:none}#drift-readout small{font-size:9px}.view-controls{bottom:79px;left:48%}.view-controls button{font-size:10px;padding:7px}.pause{right:calc(2% + 188px);bottom:124px;padding:7px;font-size:10px}#touch button{min-height:46px;padding:10px 15px}}
.sector-strip{top:223px}
@media(max-width:700px) and (orientation:portrait){.sector-strip{top:302px}}
@media(max-height:540px){.sector-strip{top:153px}#drift-readout{left:31%;bottom:158px}#drift-readout:not(.active){display:none}}

/* Touch controls: safe areas, explicit capability fallback, simultaneous fingers. */
body.touch-device #touch{display:flex}#touch{position:fixed;z-index:12;bottom:max(14px,env(safe-area-inset-bottom));left:max(12px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right));touch-action:none;pointer-events:none}#touch button{pointer-events:auto;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;min-height:60px;border-radius:12px;border:1px solid #d5c69b99;box-shadow:0 4px 12px #0008}#touch button.pressed{background:#ffe0a0;color:#101b23;border-color:white;box-shadow:0 0 18px #e8bd7080;transform:translateY(2px)}body.racing{overscroll-behavior:none}body.racing #world{touch-action:none}
@media(any-pointer:coarse),(max-width:1024px){#touch{display:flex}.view-controls{bottom:calc(90px + env(safe-area-inset-bottom))}#touch button{flex:0 1 68px;min-width:44px;padding:12px 8px}#touch button:nth-child(3){margin-left:8px}#touch button:nth-child(4){margin-left:auto}}
@media(max-height:540px){#touch button{min-height:52px}.view-controls{bottom:calc(76px + env(safe-area-inset-bottom))}}
/* Clear driving view: light glass controls and player's position only. */
#leaderboard{display:none!important}.position-box #race-session{display:none}.position-box{min-width:70px;padding:8px 12px;background:#09131d45}.position-box strong{font-size:30px}
#touch button,#touch button:last-child{background:rgba(238,245,248,.10);border:1px solid rgba(238,245,248,.38);color:rgba(255,255,255,.88);box-shadow:none;text-shadow:0 1px 3px #000;transition:background .12s,border-color .12s}
#touch button.pressed,#touch button:last-child.pressed{background:rgba(255,230,180,.35);border-color:#ffe4ae;box-shadow:none;color:#fff;transform:translateY(1px)}
body.tilt-active #touch button[data-key="ArrowLeft"],body.tilt-active #touch button[data-key="ArrowRight"]{display:none}body.tilt-active #touch button:nth-child(3){margin-left:0}
#quick-center{display:none}body.tilt-active #quick-center{display:block}.control-options{display:flex;gap:10px}.control-options button{flex:1;min-height:58px}.control-options button[aria-pressed="true"]{border-color:var(--gold);background:#e8bd7029}#tilt-status{min-height:44px}
dialog{max-height:calc(100dvh - 24px);overflow-y:auto}
#language-select{max-width:124px;min-height:34px;border:1px solid #ffffff36;border-radius:4px;background:#172329;color:#eee;padding:5px;font:inherit;font-size:12px}.account{min-width:0}.account button{flex-shrink:0}nav{overflow-x:auto;white-space:nowrap}nav button{flex-shrink:0}
html[lang="ko"] body{font-family:Arial,'Apple SD Gothic Neo','Malgun Gothic',sans-serif}html[lang="de"] .view-controls button,html[lang="ms"] .view-controls button{letter-spacing:0}
#controls-toggle{position:fixed;z-index:15;top:max(8px,env(safe-area-inset-top));right:max(12px,env(safe-area-inset-right));width:126px;min-height:44px;padding:8px;border-color:#e8bd7099;background:#15212cdc;color:#f6e4be;font-size:14px}
header .account{margin-right:138px}
.drive-mode-card{padding:12px 0;margin:8px 0 12px;border-block:1px solid #ffffff24}.drive-mode-card .control-options button{font-size:14px;padding:10px 8px;min-height:44px}.control-options button[aria-pressed="true"]{border-color:#e8bd70;background:#e8bd7029}.sensor-status{font-size:13px;line-height:1.5;margin:8px 0}.control-hint{font-size:12px;line-height:1.6;margin:8px 0}.tilt-meter{--steer:0;position:relative;display:flex;justify-content:space-between;height:22px;margin:0 12px;color:#ddd;border-bottom:2px solid #ffffff40}.tilt-meter i{position:absolute;bottom:-4px;left:calc(50% + var(--steer)*45%);height:6px;width:10px;transform:translateX(-50%);border-radius:3px;background:#f1ce86;transition:left .1s}.tilt-meter:before{content:'';position:absolute;left:50%;bottom:-5px;height:8px;width:1px;background:white}
/* The driving controls remain available even if touch detection or motion access fails. */
.height-setting{display:grid;gap:8px;margin:14px 0;font-size:15px}.height-setting input{width:100%;height:40px;touch-action:pan-x}.height-setting span{font-size:13px;color:#bec8ca}.motion-help{padding:12px;border:1px solid #e8bd7070;border-radius:8px;background:#e8bd7010}.motion-help input{width:100%;min-height:44px;padding:8px;margin-top:8px;color:#eee;background:#16222a;border:1px solid #ffffff45;font-size:14px}.motion-help button{min-height:44px}.motion-help p{font-size:14px}#control-done{position:sticky;top:0;z-index:2;min-height:44px}
@media(any-pointer:coarse),(max-width:1024px){body.racing .view-controls{bottom:calc(var(--button-lift,88px) + 72px + env(safe-area-inset-bottom) + var(--visual-bottom,0px))}body.racing .telemetry,body.racing #map{bottom:calc(var(--button-lift,88px) + 80px + env(safe-area-inset-bottom) + var(--visual-bottom,0px))}body.racing .pause{bottom:auto;top:170px;right:16px}body.racing #drift-readout{display:none}}
body.racing #touch{display:flex!important;visibility:visible;opacity:1;bottom:calc(var(--button-lift,88px) + env(safe-area-inset-bottom) + var(--visual-bottom,0px));z-index:14}
body.tilt-active #touch button[data-key="ArrowLeft"],body.tilt-active #touch button[data-key="ArrowRight"]{display:block}
#touch button,#touch button:last-child{background:#e8f2f026;border-color:#ffffff9c;color:white;text-shadow:0 1px 4px #000;min-width:48px;font-weight:600}
@media(max-width:1024px){header .account{max-width:calc(100vw - 270px);margin-right:138px}.proof-menu #panel{padding-top:16px}.proof-menu h1{font-size:28px}.proof-specs{margin:12px 0}.drive-mode-card{padding:8px 0;margin:8px 0}.drive-mode-card .control-hint{margin:6px 0}}
@media(max-width:1024px){header{gap:12px}.account{overflow-x:auto;scrollbar-width:none;gap:6px;max-width:calc(100vw - 150px);padding:4px 0}.account>*{flex-shrink:0}#language-select{width:110px;font-size:12px}#controls-toggle{font-size:12px;padding:8px}.view-controls{max-width:94%;gap:4px;justify-content:center}.view-controls button{white-space:normal;line-height:1.2;min-height:32px;max-width:105px}.position-box{min-width:65px!important}.position-box strong{font-size:26px!important}}
#live-steering{font-variant-numeric:tabular-nums;min-width:52px;color:#f1dbac;background:rgba(12,18,24,.48);border-radius:8px;padding:7px;pointer-events:none}

/* Preserve original package pixels; generated artwork supplies alpha only. */
.oil-product-image{-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;-webkit-mask-size:100% 100%;mask-size:100% 100%;mask-mode:alpha}
.oil-product-image[data-oil-image="c400"]{-webkit-mask-image:url("assets/c400-mask.png");mask-image:url("assets/c400-mask.png")}
.oil-product-image[data-oil-image="d600-30"]{-webkit-mask-image:url("assets/d600-30-mask.png");mask-image:url("assets/d600-30-mask.png")}
.product img.oil-product-image{width:auto;max-width:100%;margin-inline:auto}
