:root{color-scheme:dark;font-family:Arial,'Noto Sans JP',sans-serif;background:#081219;color:#fff}*{box-sizing:border-box}body{margin:0;background:#081219}main{max-width:1640px;margin:auto;padding:18px 24px}header{display:flex;align-items:center;justify-content:space-between;margin-bottom:15px;gap:12px}.brand{color:#fff;text-decoration:none;font-style:italic;font-weight:900;letter-spacing:-1px;font-size:25px}.brand b{color:#e7bc67}.brand span{font-size:10px;letter-spacing:.18em;color:#8da1ad;font-style:normal;display:block;margin-top:3px}.top-actions{display:flex;gap:8px}button{font:inherit;cursor:pointer;touch-action:none;-webkit-user-select:none;user-select:none;color:inherit}button:focus-visible,summary:focus-visible{outline:3px solid #efc575;outline-offset:3px}.top-actions button{background:#14242e;border:1px solid #34454f;padding:9px 13px;font-size:13px;border-radius:5px}.game{position:relative;height:min(76vw,790px);min-height:530px;max-height:calc(100svh - 110px);border:1px solid #45535a;border-radius:6px;overflow:hidden;background:linear-gradient(#87b1c8,#d0dfe3 45%,#184954 46%,#092b35)}#scene,.vignette{position:absolute;inset:0}#scene canvas{display:block;width:100%;height:100%}.vignette{pointer-events:none;background:linear-gradient(#04132044,transparent 23%,transparent 55%,#031119aa)}.venue{position:absolute;top:20px;left:20px;display:flex;align-items:center;height:43px;box-shadow:0 3px 20px #0003;font-size:17px;font-weight:700}.venue span{background:linear-gradient(120deg,#16486d,#0b2f53);padding:13px 18px;border-left:3px solid #e8bd69;font-size:14px}.venue b{color:#17202a;background:#f0f1ed;padding:11px 16px}.venue em{font-style:normal;background:#0c182dcc;padding:13px;font-size:14px}.timing{position:absolute;top:20px;right:20px;background:#08151cc9;padding:10px 52px 10px 17px;min-width:180px;border:1px solid #ffffff29}.timing label{display:block;font-size:10px;color:#bbccd1;letter-spacing:.16em}.timing strong{font-size:32px;font-variant-numeric:tabular-nums;font-weight:500}.timing button{position:absolute;right:8px;top:18px;width:33px;height:33px;border:1px solid #ffffffaa;background:transparent;border-radius:50%;font-size:17px}.timing button:disabled{opacity:.3}.ranking{position:absolute;top:95px;left:20px;list-style:none;margin:0;padding:0;min-width:160px}.ranking li{display:flex;align-items:center;gap:10px;margin-bottom:5px;background:linear-gradient(90deg,#08151cc9,#08151c22);padding-right:18px;height:32px;font-size:13px}.ranking .number{font-size:21px;font-weight:800;width:30px;align-self:stretch;display:grid;place-items:center;color:#0a1420}.ranking .position{font-size:10px;color:#b6c7d0;width:10px}.ranking .you{color:#e9c16e;font-size:10px;margin-left:auto}.mini-wrap{position:absolute;bottom:115px;left:20px;width:205px}.mini-wrap canvas{width:100%;height:auto;display:block;filter:drop-shadow(0 2px 3px #0008)}.mini-wrap>span{display:block;text-align:center;font-size:9px;color:#bed0d4;letter-spacing:.2em}.lap{position:absolute;left:20px;bottom:95px;background:#071b27bb;padding:6px 10px;font-size:12px;display:flex;align-items:center;gap:5px}.lap b{font-size:19px}.lap i{width:1px;height:15px;background:#93a5ab66;margin:0 8px}.telemetry{position:absolute;right:25px;bottom:104px;display:flex;align-items:flex-end;gap:16px}.gauge{--sweep:0deg;width:165px;height:165px;border-radius:50%;background:conic-gradient(from 225deg,#edc275 0deg var(--sweep),#bed0d344 var(--sweep) 270deg,transparent 270deg);padding:5px;transform:rotate(0deg);box-shadow:0 2px 30px #0004}.gauge>div{background:#0b202bd9;width:100%;height:100%;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;border:4px solid #0b1c2888}.gauge strong{font-size:55px;font-style:italic;font-weight:600;line-height:1.1;font-variant-numeric:tabular-nums}.gauge span{font-size:14px;color:#c5d1d4}.throttle-read{width:76px;margin-bottom:9px}.throttle-read>span{font-size:9px;letter-spacing:.08em;color:#c6d2d6}.throttle-read b{display:block;font-size:26px;margin:3px 0}.throttle-read small{font-size:12px}.throttle-read>div{height:4px;background:#d1d9d644}.throttle-read i{display:block;height:100%;width:0;background:#e8bc6b}.tip{position:absolute;bottom:114px;left:50%;transform:translateX(-50%);font-size:13px;text-shadow:0 2px 4px #000;text-align:center;color:#ebf2ef;max-width:35%}.controls{position:absolute;bottom:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:15px 20px;background:linear-gradient(transparent,#051019e8)}.steer{display:flex;gap:8px}.steer button{background:#122c3bdc;border:1px solid #849eac66;border-bottom:3px solid #435969;border-radius:6px;width:112px;height:61px;font-size:16px}.steer span{margin:0 8px}.accelerate{display:grid;grid-template-columns:1fr 20px;align-items:center;text-align:left;width:225px;height:65px;border:1px solid #f8dc9b;border-bottom:4px solid #af8741;border-radius:6px;background:linear-gradient(130deg,#f1d398,#d4a654);color:#22241f;padding:10px 20px}.accelerate span{font-weight:bold;font-size:18px}.accelerate small{font-size:10px;grid-column:1}.accelerate b{grid-column:2;grid-row:1/3;font-size:30px}.held{filter:brightness(1.2);transform:translateY(2px)}.control-note{text-align:center}.control-note>span{font-size:11px;letter-spacing:.15em;color:#ebca86;display:block}.control-note small{font-size:11px;color:#9eb1bb;display:block;margin-top:7px}.overlay{position:absolute;inset:0;background:#04121e40;display:flex;align-items:center;justify-content:center}.overlay.hidden{display:none}.start-card{width:440px;max-width:90%;text-align:center;padding:30px 34px;background:linear-gradient(140deg,#0c2536f5,#071621f5);border:1px solid #80959d77;box-shadow:0 25px 90px #0005;border-radius:7px}.eyebrow{color:#c5a671;font-size:10px;letter-spacing:.16em}h1{font-size:30px;letter-spacing:.02em;margin:16px 0}.start-card p{font-size:14px;line-height:1.9;color:#b3c4cd}.race-spec{display:flex;justify-content:center;gap:35px;margin:22px 0}.race-spec span{font-size:10px;color:#9badb8}.race-spec b{display:block;font-size:24px;color:#fff;margin-bottom:6px}.primary{width:100%;border:1px solid #eed09a;border-radius:4px;padding:16px;background:linear-gradient(120deg,#f1d398,#d4a654);color:#17222a;font-size:16px;font-weight:bold}.primary:disabled{opacity:.5}.start-card .note{font-size:11px;margin:15px 0 0}.countdown{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none;font-size:100px;font-style:italic;text-shadow:0 4px 30px #001828;font-weight:bold}#error{position:absolute;inset:30% 15%;padding:25px;background:#142c3c;z-index:10;line-height:1.9;border:1px solid #f0bd64}footer{font-size:12px;color:#8fa3af;display:flex;justify-content:space-between;gap:15px;margin:14px 0;line-height:1.8}footer b{margin-right:10px;color:#d2dce0}details{border-top:1px solid #273946;padding:14px 0;color:#a7b7c2;font-size:13px}summary{cursor:pointer}details p{line-height:1.9;max-width:950px}.game:fullscreen{width:100%;height:100%;max-height:none;border:0;border-radius:0}@media(max-width:700px){main{padding:10px 8px}.brand{font-size:19px}.brand span{font-size:8px}.top-actions{gap:5px}.top-actions button{font-size:11px;padding:8px}#fullscreen{display:none}.game{height:calc(100svh - 135px);min-height:520px;max-height:850px}.venue{top:12px;left:10px;height:32px}.venue span{font-size:9px;padding:10px 8px}.venue b{font-size:14px;padding:8px}.venue em{display:none}.timing{top:12px;right:10px;min-width:115px;padding:7px 35px 7px 9px}.timing label{font-size:8px}.timing strong{font-size:23px}.timing button{width:25px;height:25px;right:5px;top:15px;font-size:13px}.ranking{top:70px;left:10px;min-width:108px}.ranking li{height:26px;font-size:11px;gap:7px;padding-right:8px}.ranking .number{width:25px;font-size:17px}.ranking .position{font-size:9px}.ranking .you{font-size:8px}.mini-wrap{width:142px;left:9px;bottom:114px}.lap{left:10px;bottom:86px;font-size:10px;padding:4px 7px}.lap b{font-size:16px}.telemetry{right:12px;bottom:102px;gap:7px;flex-direction:column;align-items:center}.gauge{width:106px;height:106px;padding:4px}.gauge strong{font-size:36px}.gauge span{font-size:11px}.throttle-read{width:90px;margin-bottom:0}.throttle-read b{display:inline;font-size:15px;margin-left:7px}.throttle-read>span{font-size:8px}.throttle-read>div{margin-top:4px}.controls{padding:12px 10px;gap:12px}.steer{flex:1;gap:6px}.steer button{width:auto;flex:1;height:56px;font-size:14px}.steer span{margin:0 3px}.accelerate{width:39%;padding:8px 12px;height:58px}.accelerate span{font-size:16px}.accelerate small{font-size:9px}.control-note{display:none}.tip{max-width:90%;width:100%;bottom:190px;font-size:11px}.start-card{padding:24px 18px;max-width:91%;margin-top:15px}.start-card h1{font-size:25px}.start-card p{font-size:12px}.race-spec{margin:17px 0}footer{font-size:10px}footer>span:last-child{display:none}}@media(max-height:520px) and (orientation:landscape){main{padding:0}header,footer,details{display:none}.game{height:100svh;min-height:0;max-height:none;border:0}.venue,.timing{top:10px}.ranking{top:66px}.ranking li{height:24px}.mini-wrap{width:135px;bottom:70px;left:180px}.lap{bottom:76px}.telemetry{bottom:80px}.gauge{width:105px;height:105px}.gauge strong{font-size:34px}.controls{padding:7px 15px}.steer button,.accelerate{height:54px}.start-card{padding:16px 24px;width:390px}.start-card h1{font-size:23px;margin:8px}.start-card p{font-size:12px;margin:8px}.race-spec{margin:10px}.race-spec b{font-size:19px}.start-card .note{font-size:10px}.primary{padding:12px}.tip{bottom:84px}}
