*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{background:#0e141a;font-family:Segoe UI,Inter,system-ui,sans-serif;overflow:hidden}.app{flex-direction:column;height:100%;display:flex}.top{color:#fff;z-index:5;background:#12304a;flex-wrap:wrap;align-items:center;gap:10px 14px;padding:8px 16px;display:flex;box-shadow:0 2px 10px #0000004d}.top>*{flex-shrink:0}.brand{letter-spacing:.2px;cursor:pointer;font-size:17px}.brand b{color:#57d0c2}.chip{color:#9ff0e5;vertical-align:2px;background:#57d0c226;border:1px solid #57d0c280;border-radius:12px;margin-left:8px;padding:2px 9px;font-size:11px}.lvl{gap:6px;display:flex}.lvl button{color:#cfe3f0;cursor:pointer;background:#ffffff14;border:1px solid #ffffff24;border-radius:8px;padding:6px 14px;font-size:13px;font-weight:600}.lvl button.on{color:#0c2233;background:#57d0c2;border-color:#57d0c2}.run{align-items:center;gap:8px;margin-left:auto;display:flex}.run button{cursor:pointer;border:0;border-radius:9px;padding:9px 18px;font-size:14px;font-weight:800}.run .go{color:#fff;background:#4caf50}.run .go:disabled{opacity:.45;cursor:default}.run .halt{color:#fff;background:#e05c5c}.run .halt:disabled{opacity:.35;cursor:default}.run .rst{color:#fff;background:#ffffff1f}.man{color:#cfe3f0;align-items:center;gap:6px;margin-left:6px;font-size:13px;display:flex}.main{flex:1;grid-template-columns:minmax(380px,34%) 1fr;min-height:0;display:grid}.left{min-width:0;position:relative}.blkloading{color:#6a7b88;background:#f2f5f8;justify-content:center;align-items:center;gap:8px;font-size:15px;animation:1.2s ease-in-out infinite blkpulse;display:flex;position:absolute;inset:0}@keyframes blkpulse{0%,to{opacity:.55}50%{opacity:1}}.right{min-width:0;position:relative}.right canvas{display:block}.missionbar{z-index:6;position:absolute;top:12px;left:12px}.missionpill{color:#e8f2f8;cursor:pointer;background:#0a1822e0;border:1px solid #fff3;border-radius:12px;align-items:center;gap:8px;padding:8px 14px;font-size:13.5px;font-weight:700;display:flex}.missionpill:hover{border-color:#57d0c299}.missionpill .mpillprog{opacity:.8;margin-left:4px;font-size:12px;font-weight:600}.missionscrim{z-index:5;background:0 0;position:fixed;inset:0}.missionsdrop{position:absolute;top:44px;left:0}.missions{z-index:6;scrollbar-width:thin;background:#08131deb;border:1px solid #ffffff24;border-radius:14px;flex-direction:column;gap:6px;min-width:250px;max-height:56vh;padding:8px;display:flex;overflow-y:auto}.missions::-webkit-scrollbar{width:5px}.missions::-webkit-scrollbar-thumb{background:#57d0c266;border-radius:3px}.mcard{color:#e8f2f8;cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);text-align:left;background:#0a1822d1;border:1px solid #ffffff29;border-radius:12px;flex:none;align-items:center;gap:8px;padding:7px 13px;font-size:13px;font-weight:600;display:flex}.mcard.on{background:#12304aeb;border-color:#57d0c2;box-shadow:0 0 0 2px #57d0c259}.mcard .me{font-size:17px}.mcard .badge{margin-left:auto}.hud{z-index:4;color:#e8f2f8;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0a1822d1;border:1px solid #ffffff29;border-radius:12px;align-items:center;gap:14px;padding:9px 16px;font-size:14px;font-weight:700;display:flex;position:absolute;top:12px;right:12px}.batt.low{color:#ff8a80;animation:1s steps(2,end) infinite blink}@keyframes blink{50%{opacity:.4}}.hud .ph{color:#0c2233;cursor:pointer;background:#57d0c2;border:0;border-radius:8px;padding:5px 10px;font-weight:800}.objectives{z-index:4;color:#e8f2f8;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0a1822d9;border:1px solid #ffffff29;border-radius:14px;max-width:380px;padding:13px 16px;position:absolute;bottom:14px;left:12px}.objectives.win{border-color:#7de8a0;box-shadow:0 0 24px #7de8a059}.objmin{color:#cfe0ea;cursor:pointer;background:#ffffff1a;border:0;border-radius:7px;width:24px;height:20px;font-size:13px;font-weight:800;line-height:1;position:absolute;top:8px;right:10px}.objmin:hover{background:#ffffff38}.objpill{z-index:4;color:#e8f2f8;cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0a1822d9;border:1px solid #ffffff29;border-radius:999px;padding:8px 15px;font-size:13px;font-weight:700;position:absolute;bottom:14px;left:12px}.objpill:hover{border-color:#57d0c2}.teachchip{color:#ffd27f;white-space:nowrap;background:#ffd27f1f;border:1px solid #ffd27f80;border-radius:999px;padding:3px 10px;font-size:11px;font-weight:800}.lessonbtn{color:#9ff0e5;cursor:pointer;background:#57d0c21a;border:1px solid #57d0c280;border-radius:8px;margin-top:7px;padding:4px 10px;font-size:12px;font-weight:700;display:block}.lessonbtn:hover{background:#57d0c238}.lstd{flex-wrap:wrap;justify-content:center;gap:6px;margin-bottom:10px;display:flex}.lchip{color:#9ff0e5;background:#57d0c21f;border:1px solid #57d0c273;border-radius:999px;padding:3px 10px;font-size:11px;font-weight:800}.authform{gap:8px;display:grid}.authform input,.dashtop input,.dashtop select,.dashadd textarea,.credbox input{color:#e8f2f8;background:#ffffff14;border:1px solid #fff3;border-radius:9px;padding:9px 12px;font-family:inherit;font-size:14px}.authform input:focus,.dashadd textarea:focus{outline:2px solid #57d0c2}.autherr{color:#ff8a80;margin-top:8px;font-size:13px}.joincode{letter-spacing:.15em;color:#ffe9a8}.dashcard{text-align:left;min-width:560px;max-width:720px;max-height:86vh;overflow-y:auto}.dashtop{gap:8px;margin-bottom:10px;display:flex}.dashtop select{flex:0 0 110px}.dashtop input{flex:1}.dashadd{gap:8px;margin-bottom:10px;display:flex}.dashadd textarea{resize:vertical;flex:1}.dashtable{border:1px solid #ffffff24;border-radius:10px;max-height:300px;overflow:auto}.dashtable table{border-collapse:collapse;width:100%;font-size:13px}.dashtable th,.dashtable td{text-align:left;border-bottom:1px solid #ffffff14;padding:7px 10px}.dashtable th{color:#9ff0e5;background:#14293a;font-size:11.5px;position:sticky;top:0}.blockedrow td{opacity:.45}.strugcell span{color:#ffb27f;margin-right:8px;font-size:12px;display:inline-block}.rowbtns button{cursor:pointer;background:#ffffff1a;border:0;border-radius:7px;margin-right:4px;padding:3px 8px;font-size:13px}.rowbtns button:hover{background:#ffffff38}.credbox{color:#ffe9a8;background:#ffe9a814;border:1px solid #ffe9a866;border-radius:10px;margin-bottom:10px;padding:10px 12px;font-size:13px}.credbox table{width:100%;margin:8px 0}.credbox td{padding:2px 10px 2px 0}.credbox code{color:#fff;background:#ffffff1f;border-radius:5px;padding:1px 7px}.exportbar{color:#9ff0e5;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:8px;font-size:12px;display:flex}.exportbar .dbbtn.ghost{flex:none;padding:4px 10px;font-size:12px}.histmodal{z-index:200}.histcard{text-align:left;width:560px;max-width:94vw;max-height:86vh;overflow-y:auto}.histcard h2{text-align:center}.histlist{flex-direction:column;gap:8px;margin-top:6px;display:flex}.histsession{background:#ffffff08;border:1px solid #ffffff24;border-radius:10px;padding:9px 12px}.histhead{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.histhead b{color:#e8f2f8;font-size:14px}.histdur{color:#9ff0e5;white-space:nowrap;font-size:12px}.histbody{flex-wrap:wrap;align-items:center;gap:6px 8px;margin-top:6px;display:flex}.histpill{color:#9ff0e5;background:#57d0c229;border-radius:100px;padding:2px 9px;font-size:12px;font-weight:600}.histpill.ghost{color:#cfe6ee;background:#ffffff14;font-weight:500}.histmiss{color:#cfe6ee;font-size:12.5px}.modeswitch{border:1px solid #fff3;border-radius:999px;gap:0;display:flex;overflow:hidden}.modeswitch button{color:#cfe3f0;cursor:pointer;white-space:nowrap;background:0 0;border:0;padding:6px 13px;font-size:12.5px;font-weight:800}.modeswitch button.on{color:#0c2233;background:#57d0c2}.racehud{z-index:6;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#e8f2f8;background:#0a1822e6;border:1px solid #ffffff2e;border-radius:12px;width:235px;padding:10px 12px;font-size:13px;position:absolute;top:12px;right:160px}.racehead{justify-content:space-between;align-items:center;gap:6px;margin-bottom:6px;display:flex}.racestate{white-space:nowrap;border-radius:999px;padding:2px 8px;font-size:10.5px;font-weight:800}.racestate.s-lobby{color:#ffe9a8;background:#ffe9a826}.racestate.s-racing{color:#7de8a0;background:#57d98a2e;animation:1.2s steps(2,end) infinite blink}.racestate.s-done{color:#fff;background:#ffffff1f}.racelist{gap:4px;max-height:180px;display:grid;overflow-y:auto}.racerow{border-radius:7px;justify-content:space-between;gap:8px;padding:3px 6px;display:flex}.racerow.me{background:#57d0c224}.racecfgchip{color:#9fc3d8;letter-spacing:.04em;margin:-2px 0 6px;font-size:11px}.raceteam{border:1px solid #e8f2f81a;border-radius:8px;margin-bottom:4px;padding:4px}.raceteamhead{color:#cfe0ea;justify-content:space-between;gap:8px;padding:2px 6px 4px;font-size:12px;display:flex}.racecfg{grid-template-columns:auto 1fr;align-items:center;gap:6px 10px;margin:2px 0;display:grid}.cfglabel{color:#9fc3d8;letter-spacing:.06em;font-size:12px}.racecount{z-index:60;pointer-events:none;background:radial-gradient(#0c223300 40%,#0c223373 100%);flex-direction:column;justify-content:center;align-items:center;gap:6px;display:flex;position:absolute;inset:0}.racecountnum{color:#ffe9a8;text-shadow:0 0 40px #ffd27f8c,0 4px #00000059;font-size:clamp(90px,22vh,180px);font-weight:800;animation:.9s ease-out countpop}.racecountsub{color:#cfe0ea;letter-spacing:.2em;text-transform:uppercase;font-size:16px}@keyframes countpop{0%{opacity:0;transform:scale(1.7)}25%{opacity:1;transform:scale(1)}to{opacity:.9;transform:scale(.92)}}@media (prefers-reduced-motion:reduce){.racecountnum{animation:none}}.mlesson{letter-spacing:.12em;text-transform:uppercase;color:#9fc3d8;opacity:.85;padding:8px 6px 2px;font-size:10.5px}.podium{min-width:380px;max-width:480px}.podiumlist{gap:6px;display:grid}.podiumrow{border-radius:8px;justify-content:space-between;gap:10px;padding:4px 8px;display:flex}.podiumrow.big{background:#e8f2f80d;padding:8px 10px;font-size:15px}.podiumrow.me,.podiumrow.big.me{background:#57d0c229}.podiumteams{grid-template-columns:1fr 1fr;gap:10px;display:grid}.podiumteam{border:1px solid #e8f2f81f;border-radius:10px;padding:8px}.podiumteam.win{border-color:#ffd27f;box-shadow:0 0 0 2px #ffd27f40}.podiumteam h3{margin:0 0 4px;font-size:14px}@media (width<=560px){.podiumteams{grid-template-columns:1fr}}.ghosttag{color:#e8f2f8;white-space:nowrap;background:#0c2233d1;border:1px solid;border-radius:999px;padding:2px 8px;font:600 11px Segoe UI,Inter,system-ui,sans-serif;transform:translateY(-4px)}.racerow b{color:#ffe9a8;white-space:nowrap;font-size:12px}.savewarn{z-index:8;color:#fff;text-align:center;background:#e05c5cf2;border-radius:10px;max-width:70%;padding:8px 16px;font-size:13px;font-weight:700;position:absolute;top:12px;left:50%;transform:translate(-50%);box-shadow:0 6px 20px #0006}.mapwrap{z-index:5;position:absolute;top:60px;right:12px}.mapwrap .minimap{display:block;position:static}.mapmin{z-index:5;color:#cfe0ea;cursor:pointer;background:#0a1822b3;border:0;border-radius:7px;width:22px;height:20px;font-size:12px;line-height:1;position:absolute;top:4px;left:4px}.mapmin:hover{background:#0a1822f2}.mappill,.fpvpill{z-index:4;color:#e8f2f8;cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0a1822d9;border:1px solid #ffffff29;border-radius:999px;padding:6px 12px;font-size:12px;font-weight:700;position:absolute}.mappill{top:60px;right:12px}.fpvpill{bottom:14px;right:12px}.mappill:hover,.fpvpill:hover{border-color:#57d0c2}.fpvmin{z-index:5;color:#cfe0ea;cursor:pointer;background:#0a1822b3;border:0;border-radius:7px;width:22px;height:20px;font-size:12px;line-height:1;position:absolute;top:4px;right:6px}.fpvmin:hover{background:#0a1822f2}.ldisc{color:#cfe0ea;gap:5px;margin:0 0 10px 18px;font-size:13px;display:grid}@media print{body *{visibility:hidden}.lessonprint,.lessonprint *{visibility:visible}.lessonprint{position:fixed;inset:0;color:#000!important;background:#fff!important;max-height:none!important}.lessonprint .ibrief,.lessonprint .ldisc,.lessonprint .icareer,.lessonprint h2{color:#000!important}.lessonprint .lchip{background:0 0;border-color:#000;color:#000!important}}.ot{margin-bottom:4px;font-size:15px;font-weight:800}.brief{color:#b8ccd9;margin-bottom:8px;font-size:12.5px;line-height:1.45}.objectives ul{gap:4px;list-style:none;display:grid}.objectives li{color:#cfe0ea;font-size:13px}.objectives li.done{color:#8fe8ae}.late{color:#ffb27f;margin-top:7px;font-size:12.5px}.career{color:#9fc3d8;border-top:1px dashed #ffffff2e;margin-top:9px;padding-top:8px;font-size:12px;line-height:1.45}.warn{z-index:4;color:#ffd9c4;background:#401c10eb;border:1px solid #ff965a80;border-radius:12px;max-width:330px;padding:11px 14px;font-size:13px;font-weight:600;line-height:1.4;position:absolute;bottom:14px;right:12px}.mankeys{z-index:4;color:#9ff0e5;background:#0a1822d9;border:1px solid #57d0c266;border-radius:10px;padding:7px 12px;font-size:12px;font-weight:600;position:absolute;top:64px;right:12px}.flightlog{z-index:4;background:#0a1822e0;border:1px solid #7a5fc980;border-radius:10px;min-width:150px;max-width:240px;padding:8px 12px;position:absolute;bottom:14px;left:50%;transform:translate(-50%)}.flightlog b{letter-spacing:.06em;color:#cdbdf5;margin-bottom:4px;font-size:11px;font-weight:800;display:block}.fl-lines{flex-direction:column-reverse;max-height:108px;display:flex;overflow-y:auto}.fl-lines div{color:#dfe9f2;white-space:nowrap;font-family:Cascadia Code,Consolas,monospace;font-size:12px;line-height:1.5}.photomodal{z-index:20;cursor:pointer;background:#000000bf;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.photos{flex-wrap:wrap;gap:14px;max-width:80vw;max-height:80vh;display:flex;overflow:auto}.photohint{text-align:center;color:#cfe0ea;width:100%;font-size:13px;font-weight:700}.mprog{color:#ffe9a8;background:#0a1822d9;border:1px solid #ffffff29;border-radius:10px;align-items:center;gap:8px;padding:6px 10px;font-size:11.5px;font-weight:800;display:flex;position:relative;overflow:hidden}.mprog i{pointer-events:none;background:#57d0c22e;border-right:2px solid #57d0c280;transition:width .5s;position:absolute;top:0;bottom:0;left:0}.photos img{border:3px solid #fff;border-radius:10px;width:320px;box-shadow:0 20px 60px #0009}@media (width<=900px){.main{grid-template-rows:45% 55%;grid-template-columns:1fr}.objectives{max-width:280px}}.phys{gap:5px;display:flex}.phys button{color:#cfe3f0;cursor:pointer;background:#ffffff12;border:1px solid #ffffff21;border-radius:8px;padding:6px 10px;font-size:12px;font-weight:600}.phys button.on{color:#baf3ea;background:#57d0c233;border-color:#57d0c2}.fpvframe{z-index:3;pointer-events:none;aspect-ratio:16/10;border:2px solid #ffffffa6;border-radius:6px;width:min(300px,24vw);position:absolute;bottom:60px;right:14px;box-shadow:0 8px 30px #00000073}.fpvframe span{color:#9ff0e5;letter-spacing:.08em;background:#0a1822d9;border-radius:5px 0 6px;padding:3px 8px;font-size:10px;font-weight:800;position:absolute;top:-1px;left:-1px}.score{color:#ffe9a8;margin-top:8px;font-size:14px}.score b{font-size:16px}.cstars{margin-left:auto;font-size:11px}.crashfx{z-index:5;color:#ffd0c4;background:#5a140cf2;border:1px solid #ff5a3cb3;border-radius:12px;max-width:330px;padding:12px 16px;font-size:14px;font-weight:800;animation:.4s shake;position:absolute;bottom:14px;right:12px}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-6px)}75%{transform:translate(6px)}}.mcard.locked{opacity:.5;cursor:not-allowed}.fpvframe{pointer-events:auto;cursor:pointer}.fpvframe:hover{border-color:#57d0c2}.fpvframe.swapped{border-style:dashed}.pilot{color:#ffe9a8;white-space:nowrap;background:#ffe9a81a;border:1px solid #ffe9a859;border-radius:16px;padding:5px 12px;font-size:12.5px;font-weight:700}.skins{align-items:center;gap:5px;display:flex}.skins button{cursor:pointer;border:2px solid #0000;border-radius:50%;width:18px;height:18px;padding:0}.skins button.on{border-color:#57d0c2;transform:scale(1.15)}.mute{cursor:pointer;background:#ffffff1a;border:0;border-radius:8px;padding:7px 10px;font-size:15px}.introcard{color:#e8f2f8;text-align:center;background:#14202b;border:1px solid #57d0c266;width:460px;max-width:92vw}.introcard .ie{margin-bottom:4px;font-size:44px}.introcard h2{margin-bottom:10px;font-size:22px}.itags{flex-wrap:wrap;justify-content:center;gap:7px;margin-bottom:12px;display:flex}.itags span{color:#9ff0e5;background:#57d0c224;border:1px solid #57d0c266;border-radius:12px;padding:3px 10px;font-size:11px;font-weight:700}.ibrief{color:#cfe0ea;margin-bottom:10px;font-size:14px;line-height:1.55}.icareer{color:#9fc3d8;margin-bottom:16px;font-size:12.5px;line-height:1.5}.simtoasts{z-index:6;flex-direction:column;align-items:center;gap:6px;display:flex;position:absolute;top:64px;left:50%;transform:translate(-50%)}.simtoast{color:#baf3ea;background:#0a1822eb;border:1px solid #57d0c280;border-radius:20px;padding:8px 18px;font-size:13.5px;font-weight:700;animation:.3s cubic-bezier(.2,.8,.2,1) simtoastin;box-shadow:0 10px 30px #0006}@keyframes simtoastin{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:none}}.tut{z-index:30;background:#0000008c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.tutbox{color:#e8f2f8;background:#14202b;border:1px solid #57d0c266;border-radius:16px;max-width:460px;padding:24px 28px;box-shadow:0 30px 80px #0009}.tutbox b{font-size:16px}.tutbox ol{color:#cfe0ea;gap:8px;margin:14px 0 18px 20px;font-size:14px;display:grid}.touchpad{z-index:6;flex-direction:column;gap:6px;display:none;position:absolute;bottom:14px;right:12px}.tp-row{gap:6px;display:flex}.touchpad button{color:#baf3ea;cursor:pointer;background:#0a1822e0;border:1px solid #57d0c280;border-radius:12px;width:52px;height:46px;font-size:18px}.touchpad button:active{background:#57d0c24d}@media (pointer:coarse){.touchpad{display:flex}.fpvframe{display:none}}.photoflash{z-index:8;pointer-events:none;background:#fff;animation:.38s ease-out forwards flashfade;position:absolute;inset:0}@keyframes flashfade{0%{opacity:.8}to{opacity:0}}.minimap{z-index:5;border:1px solid #57d0c259;border-radius:10px;position:absolute;top:60px;right:12px;box-shadow:0 8px 24px -8px #00000080}.hintbtn{color:#f5d97b;cursor:pointer;background:#f5c33b1f;border:1px dashed #f5c33b8c;border-radius:8px;margin-top:8px;padding:6px 12px;font-size:12.5px;font-weight:700}.hintbtn:hover{background:#f5c33b38}.hint{color:#f5d97b;background:#f5c33b17;border-left:3px solid #f5c33b99;border-radius:0 7px 7px 0;margin-top:7px;padding:6px 10px;font-size:12.5px}.dbscore{text-align:center;color:#57d0c2;margin:4px 0 10px;font-size:44px;font-weight:900}.dbscore span{font-size:22px}.dbrows{grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px;display:grid}.dbrows>div{background:#ffffff0d;border-radius:9px;flex-direction:column;padding:8px 12px;display:flex}.dbrows span{opacity:.75;font-size:11px}.dbrows b{font-size:17px}.dbbtn{color:#fff;cursor:pointer;background:#4caf50;border:0;border-radius:9px;flex:1;padding:10px 0;font-size:13.5px;font-weight:800}.dbbtn.ghost{background:0 0;border:1px solid #ffffff4d}.dbbtn:hover{filter:brightness(1.1)}.mcard .clvl{opacity:.55;border:1px solid;border-radius:6px;margin-left:5px;padding:0 4px;font-size:9.5px;font-weight:800}.progrows{flex-direction:column;gap:5px;margin-bottom:14px;display:flex}.progrow{background:#ffffff0d;border-radius:8px;justify-content:space-between;align-items:center;padding:7px 12px;font-size:13.5px;display:flex}.progrow .pl{opacity:.5;border:1px solid;border-radius:5px;padding:0 3px;font-size:10px;font-style:normal}.diploma{color:#2c2c34;text-align:center;background:#fdf8ec;border:10px double #c9a25f;border-radius:6px;max-width:560px;padding:34px 44px;font-family:Georgia,serif}.diploma h2{color:#1d3557;margin:6px 0 2px;font-size:26px}.diploma .dtop{font-size:44px}.diploma .dsub{letter-spacing:.28em;text-transform:uppercase;color:#8a7340;margin-bottom:16px;font-size:12px}.diploma .dname{text-align:center;color:#1d3557;background:0 0;border:0;border-bottom:2px solid #c9a25f;outline:none;width:85%;margin:0 auto 12px;font-family:Georgia,serif;font-size:24px;font-style:italic;display:block}.diploma p{font-size:14.5px;line-height:1.6}.diploma .dbadges{letter-spacing:.3em;margin:14px 0 6px;font-size:22px}.diploma .ddate{color:#8a7340;margin-bottom:16px;font-size:13px}.diploma .dbtns{gap:8px;display:flex}.diploma .dbtns .dbbtn.ghost{color:#2c2c34;border-color:#0000004d}@media print{body *{visibility:hidden}.diploma,.diploma *{visibility:visible}.diploma{height:fit-content;box-shadow:none;margin:auto;position:fixed;inset:0}.noprint{display:none!important}}.fpvframe .osd{align-items:center;gap:8px;display:flex;position:absolute;bottom:5px;left:6px}.fpvframe .osd em,.fpvframe .osd b{color:#d8ffe8;letter-spacing:.05em;background:#08131db3;border-radius:4px;padding:2px 6px;font-size:9.5px;font-style:normal;font-weight:800}.fpvframe .osd .rec{color:#ffffff73}.fpvframe .osd .rec.on{color:#ff5a5a;animation:1.1s steps(2,end) infinite recblink}@keyframes recblink{50%{opacity:.35}}.hud .gusty{color:#ffd27f;font-weight:800}.objectives.win{animation:.5s cubic-bezier(.2,1.6,.4,1) winpop;border-color:#57d98a!important}@keyframes winpop{0%{transform:scale(.96)}60%{transform:scale(1.02)}to{transform:scale(1)}}.objectives li.done{animation:.35s ease-out tickin}@keyframes tickin{0%{opacity:.4;transform:translate(-6px)}to{opacity:1;transform:none}}button:focus-visible,input:focus-visible{outline-offset:2px;outline:2px solid #57d0c2}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}button:focus-visible,input:focus-visible,[tabindex]:focus-visible{outline-offset:2px;border-radius:6px;outline:2px solid #57d0c2}.codepanel{z-index:7;background:#08131df5;border:1px solid #57d0c273;border-radius:12px;flex-direction:column;width:330px;max-height:46%;display:flex;position:absolute;bottom:12px;left:12px;overflow:hidden;box-shadow:0 14px 44px -10px #0009}.codepanel .cph{border-bottom:1px solid #ffffff1a;justify-content:space-between;align-items:center;padding:8px 12px;display:flex}.codepanel .cph b{color:#9ff0e5;letter-spacing:.04em;font-size:11.5px}.codepanel .cph button{color:#9ff0e5;cursor:pointer;background:0 0;border:0;font-size:13px}.ctabs{gap:4px;margin-left:auto;margin-right:8px;display:flex}.ctabs button{border-radius:7px;padding:2px 9px;font-weight:700;background:#ffffff12!important;border:1px solid #0000!important;font-size:11px!important}.ctabs button.on{background:#57d0c22e!important;border-color:#57d0c2!important}.codepanel pre{color:#c9e8ff;margin:0;padding:10px 14px;font-family:Cascadia Code,Consolas,monospace;font-size:11.5px;line-height:1.65;overflow:auto}.mute.camon{background:#57d0c240;border-color:#57d0c2}.splash{z-index:100;background:radial-gradient(120% 120% at 50% 0,#143a56 0%,#0a1420 70%);place-items:center;padding:20px;display:grid;position:fixed;inset:0;overflow:auto}.splashinner{text-align:center;width:100%;max-width:940px;position:relative}.splashclose{color:#cfe0ea;cursor:pointer;background:#e8f2f81a;border:0;border-radius:999px;min-width:44px;min-height:44px;font-size:18px;position:absolute;top:0;right:0}.splashclose:hover{color:#e8f2f8;background:#e8f2f833}.splashbrand{color:#9ff0e5;letter-spacing:.04em;margin-bottom:6px;font-size:15px}.splashbrand b{color:#57d0c2}.splashh1{color:#fff;margin:0 0 26px;font-size:clamp(28px,5vw,48px)}.doors{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}@media (width<=720px){.doors{grid-template-columns:1fr}}.door{cursor:pointer;color:#fff;background:#ffffff0f;border:2px solid #ffffff24;border-radius:18px;flex-direction:column;justify-content:center;align-items:center;gap:8px;min-height:180px;padding:30px 18px;transition:transform .15s,border-color .15s,background .15s;display:flex}.door:hover,.door:focus-visible{background:#57d0c21f;border-color:#57d0c2;outline:none;transform:translateY(-4px)}.door .doicon{font-size:52px}.door .dolabel{font-size:19px;font-weight:800}.door .dosub{color:#b6c6d2;max-width:200px;font-size:13px}.d-teacher .doicon{filter:hue-rotate()}.coachscrim{z-index:90;background:#00000059;position:fixed;inset:0}.coachmark{z-index:91;color:#eaf4fa;background:#0e2740;border:1px solid #57d0c2;border-radius:12px;max-width:250px;padding:12px 14px;font-size:13.5px;animation:.25s ease-out coachin;position:fixed;box-shadow:0 12px 40px #00000080}@keyframes coachin{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.coachmark button{color:#08202e;cursor:pointer;background:#57d0c2;border:0;border-radius:8px;margin-top:8px;padding:6px 14px;font-size:12.5px;font-weight:800}.resumebar{z-index:8;color:#eaf4fa;background:#0e2740f5;border:1px solid #57d0c280;border-radius:999px;align-items:center;gap:12px;padding:7px 8px 7px 16px;font-size:13.5px;display:flex;position:absolute;top:60px;left:50%;transform:translate(-50%);box-shadow:0 8px 26px #0006}.resumego{color:#fff;cursor:pointer;background:#4caf50;border:0;border-radius:999px;padding:8px 16px;font-weight:800}.resumex{color:#fff;cursor:pointer;background:#ffffff1f;border:0;border-radius:50%;width:26px;height:26px}.whatsnew{text-align:left;gap:10px;margin:12px 0 16px;padding:0;list-style:none;display:grid}.whatsnew li{color:#d7e6ef;font-size:14px;line-height:1.4}.coachfly{z-index:88;pointer-events:none;position:fixed;inset:0}.coachfly .cfscrim{background:#040c148c;transition:clip-path .3s;position:absolute;inset:0}.coachfly .cfcard{pointer-events:auto;color:#eaf4fa;text-align:center;background:#0e2740;border:1px solid #57d0c2;border-radius:14px;flex-direction:column;align-items:center;gap:8px;max-width:440px;padding:14px 20px;font-size:15px;font-weight:600;display:flex;position:absolute;bottom:34px;left:50%;transform:translate(-50%);box-shadow:0 12px 40px #00000080}.coachfly .cfmascot{font-size:30px}.coachfly .cfskip{pointer-events:auto;color:#fff;cursor:pointer;background:#ffffff24;border:0;border-radius:8px;padding:6px 12px;font-weight:700;position:absolute;top:16px;right:18px}.cfpulse{animation:1.1s ease-in-out infinite cfpulse}@keyframes cfpulse{0%,to{box-shadow:0 0 #57d0c299}50%{box-shadow:0 0 0 10px #57d0c200}}.unlocktoast{z-index:8;color:#08202e;background:#57d0c2f5;border-radius:999px;padding:9px 18px;font-size:14px;font-weight:800;animation:.3s ease-out coachin;position:absolute;top:60px;left:50%;transform:translate(-50%);box-shadow:0 8px 26px #0006}.rankup{z-index:95;cursor:pointer;background:#040a12b8;place-items:center;animation:.3s coachin;display:grid;position:fixed;inset:0}.rankupcard{text-align:center;color:#fff;animation:.5s cubic-bezier(.2,1.6,.4,1) rankslam}@keyframes rankslam{0%{opacity:0;transform:scale(.4)}70%{transform:scale(1.08)}to{opacity:1;transform:scale(1)}}.rankupemoji{filter:drop-shadow(0 0 30px #ffca28b3);font-size:96px}.rankuptitle{letter-spacing:.14em;color:#ffca28;font-size:26px;font-weight:900}.rankupname{margin:6px 0 18px;font-size:20px}.rankupcard .btn.go{color:#fff;cursor:pointer;background:#4caf50;border:0;border-radius:10px;padding:12px 26px;font-size:16px;font-weight:800}.objwhy{color:#ffcf8f;margin:3px 0 2px 20px;font-size:12px;line-height:1.35}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.offlinechip{z-index:8;color:#ffe9a8;background:#785a14f2;border-radius:999px;padding:7px 14px;font-size:12.5px;font-weight:700;position:absolute;bottom:12px;left:50%;transform:translate(-50%);box-shadow:0 6px 20px #0006}@media (pointer:coarse){.run button{min-height:46px;padding:11px 20px}.mute{min-width:44px;min-height:44px}.lvl button,.phys button,.modeswitch button{min-height:44px}.skins button{width:30px!important;height:30px!important}.touchpad button{width:64px!important;height:58px!important}.door{min-height:200px}}.dronemood{font-size:18px}.streak{color:#ffb02e;font-weight:800}.present .lvl,.present .phys,.present .skins,.present .modeswitch,.present .missions,.present .missionbar,.present .codepanel,.present .run .rst,.present .man,.present .mapwrap,.present .mappill{display:none!important}.present .main{grid-template-columns:0 1fr}.present .left{display:none}.present .objectives{transform-origin:0 100%;max-width:460px;transform:scale(1.35)}.present .hud{transform-origin:100% 0;transform:scale(1.3)}.present .run .go,.present .run .halt{min-height:56px;padding:14px 28px;font-size:18px}.exitpresent{z-index:30;color:#fff;cursor:pointer;background:#e05c5cf2;border:0;border-radius:999px;padding:9px 16px;font-weight:800;position:fixed;top:12px;right:12px}.quickstart{color:#d7ecef;background:#57d0c214;border:1px solid #57d0c266;border-radius:12px;margin-bottom:12px;padding:12px 16px;font-size:13.5px}.quickstart ol{gap:5px;margin:8px 0 8px 18px;display:grid}.quickstart .qshint{color:#9fb8c4;margin-bottom:8px;font-size:12px}.quickstart code{background:#ffffff1f;border-radius:4px;padding:1px 5px}.photocell{flex-direction:column;align-items:center;gap:6px;display:flex}.photocell .dbbtn{padding:4px 10px;font-size:12px}.photodl{cursor:pointer;background:0 0;border:0;border-radius:10px;padding:0;display:block}.photodl:focus-visible{outline-offset:3px;outline:3px solid #6fd3ff}.focusrow{color:#cfe3f0;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:10px;font-size:13px;display:flex}.focusrow select{color:#e8f2f8;background:#ffffff14;border:1px solid #fff3;border-radius:8px;padding:6px 10px}.focusrow label{align-items:center;gap:5px;display:flex}.teachersol{color:#ffd27f;margin-top:8px;font-size:12.5px}.teachersol button{color:#fff;cursor:pointer;background:#ffffff1f;border:0;border-radius:6px;margin-left:6px;padding:2px 8px;font-size:11px}.stuckbtn{color:#ffd27f;cursor:pointer;background:#ffb22e1f;border:1px solid #ffb22e80;border-radius:8px;margin-top:8px;padding:5px 12px;font-size:12.5px;font-weight:700}.stuckbtn.on{color:#3a2600;background:#ffb02e;border-color:#ffb02e;animation:1.2s steps(2,end) infinite blink}.handrow td{background:#ffb22e1f}.blocklock{z-index:30;color:#ffe082;text-align:center;pointer-events:all;-webkit-user-select:none;user-select:none;background:#08131db8;border-radius:0 14px 14px 0;justify-content:center;align-items:center;font-size:22px;font-weight:800;display:flex;position:absolute;inset:0}.gridlabel{color:#9ff0e5;white-space:nowrap;background:#08131dbf;border:1px solid #57d0c259;border-radius:6px;padding:1px 5px;font-family:ui-monospace,monospace;font-size:11px;font-weight:700}
