html,body{color:#eee;background:#111;height:100%;margin:0;font:16px/1.4 system-ui,sans-serif;overflow:hidden}#app{height:100%;position:relative}canvas{width:100%;height:100%;display:block}.backdrop{object-fit:contain;background:#000;width:100%;height:100%;position:absolute;inset:0}.overlay{pointer-events:none;position:absolute;inset:0}.screen{box-sizing:border-box;text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:16px;height:100%;display:flex}.screen:not(.round):not(.lineup):not(.roundEnd){pointer-events:auto}.screen:not(.round):not(.lineup):not(.roundEnd):not(.welcome){background:#000000bf}.screen.welcome{cursor:pointer;background:0 0;justify-content:flex-end;padding-bottom:0}.tap-to-start{letter-spacing:.08em;text-transform:uppercase;text-shadow:0 2px 14px #000000e6;background:linear-gradient(#0000 0%,#00000080 55%,#000000d9 100%);width:100%;padding:12vh 0 6vh;font-size:4vh;font-weight:600;animation:2.6s ease-in-out infinite breathe}@keyframes breathe{0%,to{opacity:.35}50%{opacity:1}}.gear{top:max(2vh, env(safe-area-inset-top));right:max(2vh, env(safe-area-inset-right));color:#fff;opacity:.55;background:#00000059;border-radius:50%;width:max(7vh,52px);height:max(7vh,52px);padding:max(1.2vh,10px);position:absolute}.gear:hover{opacity:1}.screen.video{background:#000;position:relative}.onboarding{object-fit:contain;width:100%;height:100%}.screen.video .skip{right:max(2vh, env(safe-area-inset-right));bottom:max(2vh, env(safe-area-inset-bottom));opacity:.8;min-width:96px;min-height:48px;font-size:max(2.4vh,16px);position:absolute}h1{margin:0;font-size:5vh}button{font:inherit;cursor:pointer;border:0;border-radius:1vh;padding:1vh 3vh;font-size:3vh}button.start{color:#fff;background:#e5322d;border-radius:3vh;padding:4vh 10vh;font-size:10vh}.counter{font-size:12vh;font-weight:700}.counter.hud{font-size:3vh;font-weight:600;position:absolute;top:1vh;left:0;right:0}.chips{flex-wrap:wrap;justify-content:center;gap:1vh;max-width:80vw;display:flex}.chip{color:#000;text-shadow:0 0 3px #fff;border-radius:50%;justify-content:center;align-items:center;width:5vh;height:5vh;font-size:2.2vh;font-weight:700;display:inline-flex}.sim-help{bottom:max(1vh, env(safe-area-inset-bottom));left:max(1vh, env(safe-area-inset-left));opacity:.45;pointer-events:none;font-size:1.6vh;position:absolute}.camera-view{background:#000;position:absolute;inset:0}.camera-view video,.camera-view canvas{object-fit:contain;width:100%;height:100%;position:absolute;inset:0;transform:scaleX(-1)}.screen.enrol{background:linear-gradient(#0009,#0000 35% 70%,#0009);justify-content:space-between;padding:4vh 0 5vh}.screen.enrol h1{letter-spacing:.04em;text-shadow:0 2px 14px #000000e6;font-size:6vh}.screen.enrol .counter{color:#fff;text-shadow:0 0 4vh #e5322de6;font-size:26vh;line-height:1;animation:1s ease-out infinite pop}.screen.enrol .counter:empty{animation:none}@keyframes pop{0%{opacity:0;transform:scale(1.25)}15%{opacity:1;transform:scale(1)}to{opacity:.9;transform:scale(.95)}}.pill{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0000008c;border:1px solid #ffffff40;border-radius:100vh;padding:1vh 3vh;font-size:2.6vh}.logo{top:max(2vh, env(safe-area-inset-top));left:max(2vh, env(safe-area-inset-left));width:22vw;max-width:320px;height:auto;position:absolute}button.secondary{color:#fff;background:#ffffff26}.settings{z-index:10;background:#000000eb;position:absolute;inset:0;overflow:auto}.settings-form{flex-direction:column;gap:2vh;max-width:640px;margin:4vh auto;padding:0 4vw;display:flex}.settings-form h1{font-size:4vh}.settings-form fieldset{border:1px solid #444;border-radius:1vh;flex-direction:column;gap:1.2vh;padding:1.5vh 2vh;display:flex}.settings-form legend{color:#aaa;padding:0 .5em}.settings-form label{flex-wrap:wrap;align-items:center;gap:.6em;display:flex}.settings-form select,.settings-form input[type=number]{font:inherit;min-height:44px;padding:.5em .6em;font-size:16px}.settings-form input[type=checkbox]{width:24px;height:24px}.settings-form label{min-height:44px}.settings-form button{align-self:flex-start;min-height:48px;padding:.6em 1.4em;font-size:max(2.2vh,16px)}.settings-form{padding-left:max(4vw, env(safe-area-inset-left));padding-right:max(4vw, env(safe-area-inset-right));padding-bottom:max(4vh, env(safe-area-inset-bottom))}.settings-form .actions{gap:1em;display:flex}.print-view{display:none}@media print{@page{size:A4 portrait;margin:0}body.printing #app{display:none}body.printing .print-view{color:#000;background:#fff;display:block}.sheet{box-sizing:border-box;page-break-after:always;flex-direction:column;justify-content:center;align-items:center;gap:8mm;width:210mm;height:297mm;padding:12mm;display:flex}.frame{background:repeating-linear-gradient(45deg, var(--a) 0 12mm, var(--b) 12mm 24mm);-webkit-print-color-adjust:exact;print-color-adjust:exact;padding:12mm}.tag{width:var(--tag);height:var(--tag);background:#fff}.tag svg{width:100%;height:100%;display:block}.label{align-items:center;gap:4mm;font-size:9mm;font-weight:700;display:flex}.car{background:var(--a);-webkit-print-color-adjust:exact;print-color-adjust:exact;border-radius:3mm;width:24mm;height:12mm;position:relative}.car:after{content:"";background:var(--b);border-radius:2mm;width:10mm;height:7mm;position:absolute;top:2.5mm;left:7mm}.hint{color:#555;text-align:center;font-size:4mm}}.boot{z-index:100;background:#000;flex-direction:column;justify-content:center;align-items:center;gap:4vh;display:flex;position:fixed;inset:0}.boot.ready{cursor:pointer}.boot-logo{width:50vw;max-width:640px}.boot-spinner{border:.7vh solid #ffffff26;border-top-color:#e5322d;border-radius:50%;width:6vh;height:6vh;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.boot-status{letter-spacing:.05em;color:#ccc;font-size:2.6vh}.boot.ready .boot-status{color:#fff;font-weight:600;animation:2.6s ease-in-out infinite breathe}.boot-bar{background:#ffffff1f;border-radius:1vh;width:40vw;max-width:480px;height:.6vh;overflow:hidden}.boot-bar-fill{background:#e5322d;width:0;height:100%;transition:width .2s}.boot.ready .boot-bar{opacity:0}.screen.ranking{background:0 0;position:relative}.victory{object-fit:contain;background:#000;width:100%;height:100%;position:absolute;inset:0}.ranking-layout{grid-template-columns:1fr 1fr 1fr;width:100%;height:100%;display:grid;position:relative}.rank{text-align:left;flex-direction:column;padding:4vh 3vw;display:flex}.rank.left{padding-left:max(3vw, env(safe-area-inset-left))}.rank.right{padding-right:max(3vw, env(safe-area-inset-right))}.rank.left{background:linear-gradient(90deg,#0000008c,#00000059 70%,#0000)}.rank.right{background:linear-gradient(270deg,#0000008c,#00000059 70%,#0000)}.rank h2{text-shadow:0 2px 10px #000000e6;margin:0 0 1.5vh;font-size:4.5vh}.rank ol{text-shadow:0 1px 6px #000000e6;margin:0;padding-left:3vh;font-size:2.6vh}.rank li{margin:.6vh 0}.ranking-middle{justify-content:center;align-items:flex-end;padding-bottom:2vh;display:flex}.ranking-middle .counter{opacity:.6;text-shadow:0 1px 6px #000000e6;font-size:4vh}.rotate{z-index:200;color:#fff;background:#000;flex-direction:column;justify-content:center;align-items:center;gap:3vh;font-size:4vh;font-weight:600;display:none;position:fixed;inset:0}.rotate-icon{font-size:12vh;animation:2s ease-in-out infinite turn}@keyframes turn{0%,20%{transform:rotate(0)}60%,to{transform:rotate(-90deg)}}@media (orientation:portrait) and (width<=900px){.rotate{display:flex}}.install{top:max(2vh, env(safe-area-inset-top));-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);text-align:left;cursor:default;background:#0009;border:1px solid #fff3;border-radius:1.5vh;align-items:center;gap:1.5vh;max-width:60vw;padding:1.2vh 2vh;font-size:2vh;display:flex;position:absolute;left:50%;transform:translate(-50%)}.install button{white-space:nowrap;min-height:40px;padding:.6vh 1.4vh;font-size:max(1.9vh,14px)}.install-close{color:#ccc;background:0 0}.screen.draw .chip{width:16vh;height:16vh;font-size:7vh;animation:.6s ease-out pop}.debug-log{z-index:300;color:#0f0;pointer-events:none;white-space:pre-wrap;background:#000000bf;max-width:60vw;max-height:60vh;margin:0;padding:1vh;font:11px/1.3 ui-monospace,monospace;position:fixed;top:0;left:0;overflow:auto}
