/* Grand Air 0.7 — compact lobby, thumb-first controls and readable combat feedback. */
:root{--v7-glass:rgba(6,25,36,.88);--v7-line:rgba(145,241,224,.3);--v7-mint:#8af4da;--v7-coral:#ffad8b}
body[data-screen="menu"][data-tab="play"] #scene{opacity:1!important}
.v7-lobby-copy{left:4%!important;top:20%!important;width:32%!important;gap:13px!important;pointer-events:none}
.v7-lobby-copy h1{font-size:clamp(2.8rem,4.8vw,5.7rem)!important;line-height:.94!important;letter-spacing:-.02em}
.v7-lobby-copy p{font-size:.94rem!important}.v7-lobby-copy .v6-xp{max-width:255px}.v7-lobby-copy .v6-quick-links{pointer-events:auto}
.v7-lobby-card{left:auto!important;top:auto!important;right:4%!important;bottom:76px!important;width:310px!important;max-height:none!important;padding:18px!important;overflow:visible!important;border-radius:16px!important;background:linear-gradient(145deg,rgba(13,47,57,.96),rgba(5,24,35,.94))!important;backdrop-filter:blur(16px)}
.v7-mode-summary{display:grid;grid-template-columns:38px 1fr auto;gap:10px;align-items:center}.v7-mode-symbol{width:38px;height:42px;display:grid;place-items:center;color:var(--v7-mint);border:1px solid var(--v7-line);border-radius:11px;background:#74e0cb10}.v7-mode-symbol svg{width:24px;height:24px}
.v7-mode-summary h2{font-size:1.7rem;margin:2px 0 0;line-height:1}.v7-mode-summary .eyebrow{font-size:.54rem;letter-spacing:.14em}.v7-change-mode{min-height:44px;font-size:.57rem!important;padding:6px!important;gap:3px;color:var(--v7-mint)!important}.v7-change-mode svg{width:13px;height:13px}
.v7-lobby-card .local-tag{font-size:.68rem;margin:12px 0!important;line-height:1.3;min-height:0}.v7-lobby-card .play-btn{margin:0!important;min-height:49px!important;letter-spacing:.15em;font-size:1.05rem;border-radius:10px!important;width:100%}.v7-lobby-card .v6-ready-count{padding:5px;margin:6px 0;font-size:.68rem}
.v7-character-label{left:50%!important;top:auto!important;bottom:100px!important;transform:translateX(-50%)!important;max-width:270px;text-align:center;align-items:center;border:0!important;padding:0!important;pointer-events:none}.v7-character-label strong{font-size:1.35rem}.v7-character-label .ready-tag{font-size:.55rem;color:var(--v7-mint)}
.v7-roster{top:107px!important;right:4%!important;left:auto!important;bottom:auto!important;width:245px;min-height:0!important;max-height:170px!important;padding:12px!important}.v7-roster article{grid-template-columns:15px 1fr auto;font-size:.7rem}.v7-roster .btn{padding:4px;font-size:.6rem;min-height:28px}.v6-quest-dock{display:none}
.v7-modes{max-width:720px!important;width:min(720px,94vw)!important;max-height:86dvh;overflow:auto;padding:26px!important;border:1px solid var(--v7-line)!important;background:linear-gradient(150deg,#103644,#081d2d)!important;border-radius:18px!important}.v7-modes .dialog-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.v7-modes h2{font-size:2rem;margin:5px 0 18px}.v7-modes .dialog-head .btn{min-width:44px;min-height:44px}.v7-mode-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.v7-mode-option{display:grid;gap:8px;text-align:left;color:#eafff6;border:1px solid #84d8cc36;border-radius:12px;padding:17px;background:#76d9d209;cursor:pointer}.v7-mode-option>span{color:var(--v7-mint)}.v7-mode-option svg{width:27px;height:27px}.v7-mode-option strong{font-size:1.1rem}.v7-mode-option small{line-height:1.4;font-size:.78rem;color:#b2cdce}.v7-mode-option em{font-size:.48rem;letter-spacing:.06em;font-style:normal;color:#92b6ba}.v7-mode-option.selected-mode{border-color:var(--v7-mint);background:#70f5d81d}.v7-mode-option:hover,.v7-mode-option:focus-visible{background:#70f5d82b;outline:2px solid #b4ffed;outline-offset:2px}.v7-modes>p{font-size:.73rem;line-height:1.5;color:#a5c9cd;margin:18px 0 0}
/* Damage feedback is anchored near the reticle, not over it. Never covers inputs. */
.damage-confirm.v7-damage{position:absolute;left:calc(50% + 46px);top:calc(50% - 48px);transform:none;display:grid;grid-template-columns:auto;gap:1px;min-width:150px;text-align:left;pointer-events:none;opacity:0;color:#f4ffff;text-shadow:0 2px 3px #001a2a,0 0 12px #001a2a;transition:opacity .2s}
.damage-confirm.v7-damage.show{opacity:1;transform:none}.v7-damage strong{font-family:'Barlow Condensed',sans-serif;font-size:3.8rem;line-height:1;font-weight:800;-webkit-text-stroke:.4px #0b2539}.v7-damage .v7-hit-kind{font-size:.61rem;letter-spacing:.1em;font-weight:800}.v7-damage small{font-size:.56rem;letter-spacing:.06em;color:#e2f1f1}.v7-damage.shield{color:#86dbff}.v7-damage.headshot{color:#ffdf85}.v7-damage.shield-break .v7-hit-kind{color:#86edff}
.v7-elimination{position:absolute;left:50%;top:66%;transform:translateX(-50%);display:flex;align-items:center;gap:13px;padding:13px 19px;background:linear-gradient(105deg,#08364bef,#092532e8);border:1px solid #8af4da75;border-left:4px solid var(--v7-mint);border-radius:9px;opacity:0;transition:opacity .2s;pointer-events:none;max-width:min(430px,92vw);box-shadow:0 10px 25px #00131d4d}.v7-elimination.show{opacity:1}.v7-elim-icon{font-size:2.1rem;color:var(--v7-mint)}.v7-elimination div{display:grid;gap:3px;min-width:0}.v7-elimination strong{font-size:1.3rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.v7-elimination small{font-size:.57rem;letter-spacing:.12em;color:#aef1df}.v7-elimination>b{font-size:1.7rem;border-left:1px solid #a3f5df40;padding-left:14px;display:grid;line-height:1.1}.v7-elimination>b small{font-size:.48rem;margin-top:4px}
.v7-flight-speed{position:absolute;right:24px;top:44%;text-align:right;display:grid;gap:3px;color:#effffb;text-shadow:0 2px 5px #032330;pointer-events:none}.v7-flight-speed[hidden]{display:none}.v7-flight-speed b{font-size:2.8rem;font-weight:800;line-height:1}.v7-flight-speed span{font-size:.66rem;letter-spacing:.13em}.v7-flight-speed small{font-size:.59rem;color:#b8e8e2}
/* Thumb zones remain separate: move / sprint at left, aim / action at right. */
body.touch-ui[data-screen="game"] .touch-controls{position:absolute;inset:0;pointer-events:none}
body.touch-ui .touch-right{position:absolute!important;right:max(16px,env(safe-area-inset-right))!important;bottom:146px!important;left:auto!important;top:auto!important;width:184px!important;display:grid!important;grid-template-columns:repeat(3,56px)!important;gap:8px!important;align-items:center;justify-content:end;transform:none!important}
body.touch-ui .touch-btn{box-sizing:border-box;min-width:0!important;width:56px!important;height:56px!important;min-height:44px!important;border-radius:17px!important;border:1px solid #b1f8e354!important;background:linear-gradient(145deg,#133c4bdd,#072436da)!important;box-shadow:inset 0 1px #c4fff21f,0 4px 10px #00152240;color:#edfffa!important;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:5px!important;font:700 9px 'Barlow',sans-serif!important;letter-spacing:.03em;touch-action:none!important;pointer-events:auto;user-select:none;-webkit-user-select:none;backdrop-filter:blur(5px);transition:background .1s,box-shadow .1s}
body.touch-ui .touch-btn svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}.touch-btn span{pointer-events:none}
body.touch-ui .touch-btn.fire{background:linear-gradient(135deg,#ffa889e8,#c75842dc)!important;border-color:#ffe3bdbb!important;color:#fff8ed!important;box-shadow:0 0 0 3px #ffbf8412,0 5px 18px #e57a3340}.touch-btn.fire svg{width:29px!important;height:29px!important}
body.touch-ui .touch-btn[aria-pressed="true"],body.touch-ui .touch-btn.pressed,body.touch-ui .touch-btn[aria-expanded="true"]{background:linear-gradient(135deg,#3fa998ee,#155b67ee)!important;border-color:#baffed!important;box-shadow:0 0 0 3px #7affdf22,inset 0 1px #e3fff7aa}.touch-btn:focus-visible{outline:2px solid white;outline-offset:2px}
body.touch-ui .joy{left:max(19px,env(safe-area-inset-left))!important;bottom:151px!important;width:120px!important;height:120px!important;background:radial-gradient(circle,#3b899526,rgba(6,33,47,.52))!important;border:1px solid #98efd245!important;box-shadow:inset 0 0 0 10px #72d5c208,0 7px 25px #00152830;border-radius:50%;touch-action:none}.joy:before{content:'+';position:absolute;inset:0;display:grid;place-items:center;font-size:55px;font-weight:100;color:#a8f8da17;pointer-events:none}body.touch-ui .joy-ring{inset:15px!important;border:1px dashed #b7fff131!important;border-radius:50%;width:auto!important;height:auto!important}body.touch-ui .joy-nub{width:48px!important;height:48px!important;left:calc(50% - 24px)!important;top:calc(50% - 24px)!important;border:1px solid #acffeab3!important;border-radius:50%;background:linear-gradient(135deg,#8fd9d29c,#286a827a)!important;box-shadow:0 4px 10px #001b3266;pointer-events:none}
body.touch-ui .touch-btn.v7-touch-sprint{position:absolute;left:max(52px,env(safe-area-inset-left))!important;bottom:286px!important;border-radius:50%!important}.touch-utility{position:absolute;right:16px;bottom:346px;display:flex;gap:8px;padding:8px;border:1px solid var(--v7-line);border-radius:16px;background:#082838ed;pointer-events:auto}.touch-utility[hidden]{display:none}
@media(max-width:1100px){.v7-lobby-card{right:3%!important;width:282px!important}.v7-lobby-copy h1{font-size:3.2rem!important}.v7-roster{right:3%!important;width:222px}.v7-character-label{bottom:88px!important}.v7-lobby-copy p{max-width:235px}.v7-lobby-copy .v6-xp{width:210px}}
@media(max-width:680px) and (min-height:561px){.v7-lobby-copy{top:87px!important;left:20px!important;width:calc(100% - 40px)!important;gap:6px!important}.v7-lobby-copy h1{font-size:2.55rem!important}.v7-lobby-copy .season-badge{font-size:.52rem}.v7-lobby-copy p{font-size:.72rem!important;max-width:none}.v7-lobby-copy .v6-xp,.v7-lobby-copy .v6-quick-links{display:none}.v7-lobby-card{bottom:42px!important;left:12px!important;right:12px!important;width:auto!important;padding:13px!important;max-height:none!important}.v7-mode-summary{grid-template-columns:34px 1fr auto;gap:9px}.v7-mode-summary h2{font-size:1.5rem}.v7-mode-symbol{width:34px;height:37px}.v7-lobby-card .local-tag{margin:7px 0!important;font-size:.62rem}.v7-lobby-card .play-btn{min-height:45px!important}.v7-character-label{left:50%!important;top:auto!important;bottom:222px!important;width:90%;max-width:90%;align-items:center!important;transform:translateX(-50%)!important;text-align:center}.v7-character-label strong{font-size:1.1rem}.v7-character-label>span:last-child{font-size:.61rem}.v7-roster{display:none}.v7-mode-options{grid-template-columns:repeat(2,minmax(0,1fr))}.v7-mode-option{padding:12px;gap:6px}.v7-modes{padding:18px!important}.v7-modes h2{font-size:1.6rem}.v7-mode-option em{font-size:.43rem}.v7-mode-option small{font-size:.69rem}}
@media(max-height:560px){.v7-lobby-copy{top:85px!important;left:22px!important;width:28%!important}.v7-lobby-copy h1{font-size:2.1rem!important}.v7-lobby-copy .season-badge{font-size:.44rem}.v7-lobby-copy p{font-size:.69rem!important;max-width:180px}.v7-lobby-copy .v6-xp,.v7-lobby-copy .v6-quick-links,.v7-roster{display:none}.v7-lobby-card{left:auto!important;right:18px!important;bottom:39px!important;width:242px!important;padding:12px!important}.v7-mode-symbol{display:none}.v7-mode-summary{grid-template-columns:1fr auto}.v7-mode-summary h2{font-size:1.4rem}.v7-lobby-card .play-btn{min-height:44px!important;font-size:.85rem}.v7-lobby-card .local-tag{margin:6px 0!important;font-size:.58rem}.v7-character-label{left:48%!important;top:auto!important;bottom:47px!important;max-width:180px;align-items:center!important;transform:translateX(-50%)!important}.v7-character-label strong{font-size:.91rem}.v7-character-label .ready-tag{font-size:.47rem}.v7-character-label>span:last-child{font-size:.56rem}.v7-modes{padding:15px!important;max-height:88dvh}.v7-mode-options{grid-template-columns:repeat(3,minmax(0,1fr))}.v7-mode-option{padding:9px;gap:3px}.v7-mode-option>span{display:none}.v7-mode-option small{font-size:.65rem}.v7-modes h2{font-size:1.5rem;margin:0 0 8px}.v7-modes>p{margin:8px 0 0}}
@media(pointer:coarse),(max-width:680px){body.touch-ui .health-block{left:max(14px,env(safe-area-inset-left))!important;bottom:19px!important;width:143px!important;transform:none!important}.touch-ui .inventory-bar{left:50%!important;right:auto!important;bottom:79px!important;transform:translateX(-50%)!important;gap:4px!important;width:max-content!important;max-width:calc(100vw - 24px);padding:5px!important}.touch-ui .inventory-bar .slot{width:42px!important;height:46px!important;min-width:0!important}.touch-ui .inventory-bar:before{display:none}.touch-ui .ammo-readout{left:auto!important;right:16px!important;bottom:18px!important;top:auto!important;text-align:right;max-width:164px}.touch-ui .ammo-readout>b{font-size:1.8rem}.touch-ui .ammo-readout small{font-size:.53rem}.touch-ui .materials{bottom:133px!important;left:50%!important;right:auto!important;transform:translateX(-50%)!important;font-size:.55rem}.touch-ui .phase-banner{top:89px!important;max-width:calc(100vw - 26px)!important;padding:6px 10px!important}.touch-ui .phase-banner b{font-size:.88rem}.touch-ui .phase-banner small{font-size:.5rem;line-height:1.5}.touch-ui .minimap-box{top:155px!important;right:14px!important;width:85px!important}.touch-ui .minimap-box canvas{width:85px!important;height:85px!important}.touch-ui .map-status{font-size:.43rem}.touch-ui .game-toolbar{left:12px!important;right:auto!important;top:49px!important;bottom:auto!important;max-width:calc(100vw - 24px);gap:4px!important}.touch-ui .game-toolbar .btn{min-height:30px!important;padding:5px!important;font-size:.55rem!important}.touch-ui .game-toolbar .garage-open{font-size:.48rem!important}.touch-ui .net-label{display:none}.touch-ui .compass{top:18px!important;left:70%!important;font-size:.64rem!important}.touch-ui .v7-flight-speed{right:15px;top:265px}.touch-ui .v7-flight-speed b{font-size:1.8rem}.touch-ui .v7-flight-speed small{display:none}.touch-ui .v7-flight-speed span{font-size:.51rem}.touch-ui .v7-damage{left:calc(50% + 23px)!important;top:calc(50% - 45px)!important;min-width:120px}.touch-ui .v7-damage strong{font-size:2.7rem}.touch-ui .v7-damage .v7-hit-kind{font-size:.5rem}.touch-ui .v7-damage small{font-size:.46rem}.touch-ui .v7-elimination{top:39%;padding:9px 12px;gap:9px}.touch-ui .v7-elimination strong{font-size:1rem}.touch-ui .v7-elimination small{font-size:.46rem}.touch-ui .v7-elim-icon{font-size:1.5rem}.touch-ui .build-bar{bottom:350px!important;max-width:calc(100vw - 24px);overflow-x:auto}.touch-ui .build-status{bottom:404px!important;font-size:.52rem}.touch-ui .interaction-prompt{bottom:auto!important;top:56%!important}.touch-ui .feed{display:none}}
@media(max-height:560px){body.touch-ui .touch-right{bottom:80px!important;right:max(14px,env(safe-area-inset-right))!important;width:167px!important;grid-template-columns:repeat(3,51px)!important;gap:6px!important}body.touch-ui .touch-btn{width:51px!important;height:47px!important;border-radius:14px!important;font-size:8px!important;gap:1px}body.touch-ui .touch-btn svg{width:21px;height:21px}body.touch-ui .joy{width:106px!important;height:106px!important;bottom:86px!important;left:25px!important}body.touch-ui .touch-btn.v7-touch-sprint{left:51px!important;bottom:203px!important}.touch-ui .touch-utility{bottom:245px;right:14px}.touch-ui .inventory-bar{bottom:9px!important}.touch-ui .inventory-bar .slot{width:43px!important;height:44px!important}.touch-ui .health-block{bottom:12px!important;width:143px!important;left:20px!important}.touch-ui .ammo-readout{bottom:8px!important;right:18px!important;max-width:148px}.touch-ui .materials{bottom:61px!important}.touch-ui .minimap-box{top:14px!important;right:17px!important;width:78px!important}.touch-ui .minimap-box canvas{width:78px!important;height:78px!important}.touch-ui .phase-banner{top:57px!important;width:45%;max-width:390px!important}.touch-ui .compass{top:17px!important;left:50%!important}.touch-ui .v7-flight-speed{top:145px;right:192px}.touch-ui .v7-elimination{top:66%;padding:7px 12px}.touch-ui .v7-damage{left:calc(50% + 34px)!important}.touch-ui .build-bar{bottom:85px!important;max-width:calc(100vw - 390px)!important}.touch-ui .build-status{bottom:140px!important;max-width:38vw}.touch-ui .v6-revive-progress{bottom:28%;min-width:170px}}
@media(prefers-reduced-motion:reduce){.v7-damage,.v7-elimination,.touch-btn{transition:none!important}.v7-modes{animation:none!important}}
