body.play{position:fixed;inset:0;touch-action:none}section{position:fixed;inset:0;padding:max(12px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left))}.mono{font-variant-numeric:tabular-nums}.screen-join{overflow-y:auto;touch-action:pan-y;background:linear-gradient(180deg,#14223040,#142230bf)}.join-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.conn{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:600;background:var(--panel);padding:6px 10px;border-radius:10px}.conn i{width:8px;height:8px;border-radius:50%;background:var(--muted)}.conn.ok i{background:var(--good)}.join-grid{display:grid;gap:14px;max-width:980px;margin:0 auto}.event-card{padding:4px 4px 0}.ev-title{font-size:clamp(38px,11vw,64px);line-height:.95;color:#fff;text-shadow:0 4px 0 rgba(20,34,48,.45);margin:4px 0}.ev-sub{color:var(--cream);letter-spacing:.3em;text-shadow:0 2px 0 rgba(20,34,48,.5)}.join-form{padding:16px;display:flex;flex-direction:column;gap:8px}.join-form .label{margin-top:6px}input#j-name{width:100%;font:600 20px var(--body);color:#fff;background:#ffffff0f;border:2px solid var(--panel-line);border-radius:12px;padding:12px 14px;outline:none;user-select:text;-webkit-user-select:text}input#j-name:focus{border-color:var(--red)}.teams{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.team-btn{appearance:none;border:3px solid transparent;border-radius:12px;padding:12px 4px 10px;font-family:var(--display);font-weight:800;font-style:italic;font-size:18px;color:#fff;box-shadow:0 4px #0000004d;opacity:.65;transition:opacity .15s,transform .15s}.team-btn.on{opacity:1;border-color:#fff;transform:translateY(-2px)}.aircraft{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.ac{appearance:none;text-align:left;border:2px solid var(--panel-line);border-radius:12px;background:#ffffff0d;color:var(--cream);padding:10px;font-family:var(--body)}.ac.on{border-color:var(--red);background:#e8352f2e;box-shadow:0 0 0 2px var(--red)}.ac .nm{font-family:var(--display);font-style:italic;font-weight:800;font-size:19px;line-height:1}.ac .tg{font-family:var(--display);font-weight:600;letter-spacing:.14em;font-size:11px;color:var(--muted);margin-bottom:6px}.ac .st{display:grid;grid-template-columns:1fr 2fr;gap:4px 6px;align-items:center;font-size:10px;font-family:var(--display);letter-spacing:.08em;color:var(--muted)}.ac .st .bar{height:6px}.ac .st .bar i{background:var(--red)}.blurb{font-size:14px;color:var(--muted);min-height:1.2em}.btn.wide{width:100%;margin-top:10px}.err{color:#ffb4ad;font-weight:600}@media(orientation:landscape)and (min-width:640px){.join-grid{grid-template-columns:1fr 1.5fr;align-items:start}.event-card{padding-top:24px}}.screen-calib{display:grid;place-items:center;background:#14223059}.calib{width:min(460px,100%);padding:20px;text-align:center}.calib>.display{font-size:28px}.calib p{color:var(--muted);font-weight:500;margin:8px 0 4px}.tilt-vis{position:relative;height:120px;display:grid;place-items:center}.tilt-vis .arc{position:absolute;width:200px;height:200px;border-radius:50%;border:4px solid transparent;border-top-color:var(--red);top:10px}.phone{width:150px;height:72px;border:4px solid var(--cream);border-radius:16px;display:grid;place-items:center;transition:transform .05s linear}.mini-plane{width:56px;height:8px;background:var(--cream);border-radius:3px;position:relative}.mini-plane:after{content:"";position:absolute;left:22px;top:-10px;width:12px;height:26px;background:var(--red);border-radius:3px}.tilt-read b{color:#fff;font-size:18px;margin-left:6px}.link{appearance:none;background:none;border:0;color:var(--muted);font:600 14px var(--body);text-decoration:underline;margin-top:14px}.hud{pointer-events:none}.hud button,.hud .touch-pad,.hud .practice{pointer-events:auto}.hud>*{position:absolute}.hud-tl{left:max(12px,env(safe-area-inset-left));top:max(10px,env(safe-area-inset-top));padding:6px 14px}.hud-tl .display,.hud-tr .display{font-size:36px;line-height:.95}.hud small{font-size:.55em;opacity:.65}.hud-tc{left:50%;top:max(8px,env(safe-area-inset-top));transform:translate(-50%)}.hud-tc .logo .shield{width:30px;height:34px}.hud-tc .logo-text b{font-size:22px}.hud-tc .logo-text span{font-size:10px}.hud-tr{right:max(12px,env(safe-area-inset-right));top:max(10px,env(safe-area-inset-top));padding:6px 14px;display:flex;gap:14px;align-items:center}.hud-tr .sep{width:2px;height:36px;background:var(--panel-line);transform:skew(-14deg)}.bigscreen{left:50%;top:62px;transform:translate(-50%);background:var(--red);padding:8px 20px;border-radius:10px;font-family:var(--display);font-style:italic;font-weight:800;font-size:22px;white-space:nowrap;box-shadow:var(--shadow);animation:pulse .6s ease-in-out infinite alternate}.bigscreen .ico{margin-right:10px;font-style:normal}@keyframes pulse{to{transform:translate(-50%) scale(1.06)}}.toasts{left:50%;top:34%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:6px}.toast{font-family:var(--display);font-style:italic;font-weight:800;font-size:34px;white-space:nowrap;color:#fff;text-shadow:0 3px 0 rgba(20,34,48,.6);animation:toast 1.4s ease-out forwards}.toast b{color:var(--peach)}.toast.small{font-size:22px}.toast.perfect{font-size:44px}.toast.perfect b{color:#ffd27a}.toast.teal{color:#7ff3e3}.toast.muted{color:var(--muted);font-size:20px}@keyframes toast{0%{transform:scale(1.5);opacity:0}12%{transform:scale(1);opacity:1}75%{opacity:1}to{transform:translateY(-30px);opacity:0}}.gauge{left:max(14px,env(safe-area-inset-left));bottom:max(12px,env(safe-area-inset-bottom));width:116px;height:116px}.gauge svg{width:100%;height:100%;transform:rotate(135deg)}.gauge circle{fill:none;stroke-width:10;stroke-linecap:round}.g-bg{stroke:#142230bf;stroke-dasharray:235.6 314.2}.g-fg{stroke:var(--red);stroke-dasharray:0 314.2;transition:stroke-dasharray .1s}.g-val{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-shadow:0 2px 0 rgba(20,34,48,.6)}.g-val .label{color:var(--cream);font-size:11px}.g-val .display{font-size:38px;line-height:1;font-variant-numeric:tabular-nums}.controls{right:max(14px,env(safe-area-inset-right));bottom:max(12px,env(safe-area-inset-bottom));display:flex;flex-direction:column;align-items:center;gap:12px}.boost{width:132px;height:132px;border-radius:50%;border:6px solid rgba(255,255,255,.85);background:radial-gradient(circle at 50% 35%,#ff6a5e,var(--red) 60%,var(--red-dark));color:#fff;box-shadow:0 7px 0 var(--red-dark),0 0 0 8px #e8352f40;display:flex;flex-direction:column;align-items:center;justify-content:center;touch-action:none;transition:transform .05s,filter .2s}.boost .bolt{font-size:40px;line-height:1}.boost .display{font-size:26px}.boost.empty{filter:grayscale(.85) brightness(.75)}.boost.ready{animation:ready .8s ease-in-out infinite alternate}.boost.pressed,.brake.pressed{transform:translateY(5px)}@keyframes ready{to{box-shadow:0 7px 0 var(--red-dark),0 0 0 16px #e8352f59}}.brake{width:150px;padding:12px 10px;border-radius:999px;border:2px solid rgba(255,255,255,.5);background:var(--panel);color:#fff;box-shadow:0 5px #08101873;touch-action:none}.brake .display{font-size:20px}.energy-wrap{left:50%;bottom:max(14px,env(safe-area-inset-bottom));transform:translate(-50%);width:min(42vw,420px);display:flex;align-items:center;gap:8px;background:var(--panel);border-radius:14px;padding:8px 10px}.boost-tag{font-size:18px;padding:2px 10px;border-radius:8px;background:#ffffff1a;white-space:nowrap}.boost-tag.on{background:var(--red)}.energy-wrap .energy{flex:1;height:16px}.tilt-hint{left:50%;bottom:70px;transform:translate(-50%);font-family:var(--display);font-style:italic;font-weight:800;font-size:22px;text-shadow:0 2px 0 rgba(20,34,48,.6);transition:opacity 1s;white-space:nowrap}.touch-pad{left:0;top:25%;bottom:0;width:55%}.knob{position:absolute;width:64px;height:64px;margin:-32px 0 0 -32px;border-radius:50%;border:3px solid rgba(255,255,255,.7);background:#14223059;display:none}.count{left:0;right:0;top:22%;text-align:center;font-size:140px;line-height:1;color:#fff;text-shadow:0 8px 0 rgba(20,34,48,.5);animation:pop .5s ease-out}.count.go{color:var(--red)}@keyframes pop{0%{transform:scale(1.6);opacity:0}}.practice{left:50%;top:62px;transform:translate(-50%);display:flex;align-items:center;gap:16px;padding:10px 10px 10px 18px;white-space:nowrap}.practice .display{font-size:22px}.practice .btn{font-size:22px;padding:10px 20px}.practice .btn.is-ready{background:var(--good);box-shadow:0 6px #1f8a5c}.p-count{text-align:center}.finished{left:50%;top:30%;transform:translate(-50%);text-align:center;padding:14px 26px}.finished .display{font-size:64px;line-height:1}.flash{position:fixed;inset:0;pointer-events:none;box-shadow:inset 0 0 120px 30px #e8352f00;transition:box-shadow .4s;z-index:2}.flash.on{box-shadow:inset 0 0 120px 30px #e8352fbf;transition:none}.shake{animation:shake .35s}@keyframes shake{25%{transform:translate(6px,-4px)}50%{transform:translate(-5px,3px)}75%{transform:translate(3px,2px)}}@media(max-height:420px){.boost{width:110px;height:110px}.gauge{width:96px;height:96px}.g-val .display,.hud-tl .display,.hud-tr .display{font-size:30px}.hud-tc{display:none}.bigscreen,.practice{top:10px}}@media(orientation:portrait){.hud-tc{display:none}.bigscreen,.practice{top:80px}.practice{flex-wrap:wrap;white-space:normal;width:calc(100% - 32px);justify-content:space-between}.energy-wrap{bottom:170px;width:calc(100% - 32px)}.tilt-hint{bottom:220px}}.screen-result{display:grid;place-items:center;overflow-y:auto;background:#1422308c;touch-action:pan-y}.result{width:min(560px,100%);padding:18px 20px;text-align:center}.result>.display{font-size:30px}.res-pos{display:flex;align-items:center;justify-content:center;gap:10px;margin:4px 0}.res-pos .display{font-size:92px;line-height:1;color:var(--peach)}.res-pos small{font-size:.45em;color:var(--cream)}.laurel{font-size:48px;color:#f2b51d}.laurel.flip{transform:scaleX(-1)}.res-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.res-grid>div,.moment{background:#ffffff0d;border-radius:12px;padding:8px}.res-grid .display{font-size:26px}.moment{margin-top:10px}.moment .display{font-size:22px;color:var(--peach)}.flew{margin:12px 0 4px;font-size:22px;letter-spacing:.12em;color:var(--red)}.res-btns{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:8px}.res-btns .btn{font-size:20px;padding:12px 8px}.offline{position:fixed;left:50%;top:10px;transform:translate(-50%);background:var(--red);color:#fff;padding:8px 16px;border-radius:10px;font-weight:700;z-index:10}@media(orientation:landscape)and (max-height:500px){.join-head{margin-bottom:4px}.join-head .logo .shield{width:30px;height:34px}.join-head .logo-text b{font-size:22px}.join-head .logo-text span{font-size:10px}.join-grid{grid-template-columns:1fr 1.9fr;gap:12px}.event-card{padding-top:8px}.ev-title{font-size:40px}.join-form{padding:10px 12px;gap:4px}.join-form .label{margin-top:2px}input#j-name{padding:7px 12px;font-size:17px}.team-btn{padding:7px 4px 6px;font-size:16px}.ac{padding:6px 8px}.ac .tg{margin-bottom:3px}.btn.wide{margin-top:6px;padding:9px 20px;font-size:22px}.calib{padding:12px 16px}.tilt-vis{height:90px}.result{padding:10px 16px}.res-pos .display{font-size:64px}.res-grid{grid-template-columns:repeat(4,1fr)}.res-grid .display{font-size:20px}}
