/* NEON RIFT · interface. 1rem = 16px em 1366×768; escala até 1.25× em 1920×1080. Só PC (teclado + mouse). */
:root{
  --ink:#0b2128;--bg:#0d262d;--panel:rgba(10,31,38,.93);--panel-2:rgba(20,52,61,.95);--line:rgba(167,236,218,.24);
  --cream:#f6f0dc;--muted:#bad2cc;--aqua:#89f4d4;--gold:#ffc365;--danger:#ff806b;
  --aurora:#83f8de;--eclipse:#ff9b87;--my:#83f8de;--foe:#ff9b87;
  --font:"Trebuchet MS","Segoe UI",Montserrat,"Liberation Sans",system-ui,Arial,sans-serif;
}
*{box-sizing:border-box}
html{font-size:clamp(12px,min(1.17vw,2.083vh),23px)}
html,body{margin:0;width:100%;height:100%;overflow:hidden;background:var(--bg)}
body{color:var(--cream);font-family:var(--font);font-size:.9rem;line-height:1.3}
button,input,select{font:inherit;color:inherit}
button{cursor:pointer}
button:disabled{opacity:.55;cursor:wait}
[hidden]{display:none!important}
:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
#world:focus{outline:none}
.ic{display:inline-block;width:1em;height:1em;flex:none;vertical-align:-.13em}
kbd{display:inline-block;min-width:1.4rem;padding:.08rem .38rem;border-radius:.32rem;background:var(--cream);color:var(--ink);font:800 .75rem/1.25 var(--font);text-align:center;box-shadow:0 2px 0 rgba(0,0,0,.35)}
.eyebrow{display:block;color:var(--aqua);font-size:.78rem;font-weight:800;letter-spacing:.14em}
h1,h2,h3{margin:0}

/* ───────── botões / campos ───────── */
.primary,.secondary,.icon-button{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;height:3rem;padding:0 1.3rem;border-radius:.8rem;border:2px solid transparent;font-weight:900;letter-spacing:.08em;font-size:.85rem;transition:transform .1s,background .12s,border-color .12s}
.primary{background:var(--aqua);color:var(--ink);box-shadow:0 .3rem 0 #3f9f8a}
.primary:hover:not(:disabled){background:#b2fbe5;transform:translateY(-1px)}
.primary:active:not(:disabled){transform:translateY(2px);box-shadow:0 .1rem 0 #3f9f8a}
.secondary{background:rgba(255,255,255,.05);border-color:var(--line);color:var(--cream)}
.secondary:hover:not(:disabled){border-color:var(--aqua);background:rgba(137,244,212,.1)}
.icon-button{height:2.4rem;padding:0 .9rem;gap:.45rem;background:var(--panel);border-color:var(--line);font-size:.78rem}
.icon-button .ic{font-size:1.1rem}
.icon-button[aria-pressed="false"]{opacity:.6;text-decoration:line-through}
.field{display:flex;flex-direction:column;gap:.3rem;color:var(--muted);font-size:.78rem;font-weight:800;letter-spacing:.1em;min-width:0}
.field input,.field select{height:2.8rem;padding:0 .8rem;background:rgba(255,255,255,.07);border:2px solid var(--line);border-radius:.7rem;color:var(--cream);font-size:.95rem;font-weight:700;letter-spacing:0;width:100%}
.field select option{background:#12333b;color:var(--cream)}
.field input::placeholder{color:#8fb1aa}

/* ───────── lobby ───────── */
#world{position:fixed;inset:0;width:100%;height:100%;display:block}
#vignette{position:fixed;inset:0;pointer-events:none;box-shadow:inset 0 0 140px #12283144}
#lobby{position:fixed;inset:0;z-index:10;pointer-events:none;background:linear-gradient(90deg,rgba(7,24,30,.92) 0,rgba(7,24,30,.62) 27%,rgba(7,24,30,0) 41%,rgba(7,24,30,0) 62%,rgba(7,24,30,.6) 74%,rgba(7,24,30,.92) 100%),linear-gradient(180deg,rgba(7,24,30,.8) 0,rgba(7,24,30,0) 12%)}
#lobby>*{pointer-events:auto}
.lobby-top{position:absolute;left:0;right:0;top:0;height:4rem;padding:0 1.75rem;display:flex;align-items:center;justify-content:space-between;pointer-events:none}
.lobby-top>*{pointer-events:auto}
.brand{display:flex;align-items:center;gap:.5rem;color:var(--cream);text-decoration:none;font-size:1.55rem;font-weight:900;font-style:italic;letter-spacing:.01em}
.brand b{color:var(--aqua);font-weight:900}
.rift-mark{color:var(--aqua);font-size:1.8rem}
.lobby-tag{margin:0;display:flex;align-items:center;gap:.7rem;color:var(--muted);font-size:.88rem;font-weight:700}
.lobby-tag i{width:.4rem;height:.4rem;background:var(--gold);transform:rotate(45deg)}
.section-label{display:flex;justify-content:space-between;align-items:center;color:var(--cream);font-size:.8rem;font-weight:900;letter-spacing:.14em;margin-bottom:.5rem}
.section-label span{color:var(--muted);font-weight:700;letter-spacing:.08em}

.lobby-left{position:absolute;left:1.75rem;top:4.3rem;bottom:1.4rem;width:26rem;display:flex;flex-direction:column;min-height:0}
#hero-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;margin-bottom:.7rem}
.hero-card{position:relative;display:flex;align-items:center;gap:.4rem;height:4.7rem;padding:.4rem .4rem .4rem .45rem;background:var(--panel);border:2px solid var(--line);border-radius:.9rem;text-align:left;overflow:hidden;transition:transform .1s,border-color .12s,background .12s}
.hero-card svg.portrait,.hero-card>svg{width:2rem;height:2.5rem;flex:none}
.hero-card .hc-text{display:flex;flex-direction:column;min-width:0;line-height:1.15}
.hero-card strong{font-size:1rem;font-weight:900;font-style:italic;color:var(--cream)}
.hero-card small{display:flex;align-items:center;gap:.2rem;color:var(--muted);font-size:.75rem;font-weight:800;letter-spacing:.02em;margin-top:.15rem}
.hero-card small .ic{color:var(--hero-color,var(--aqua));font-size:.9rem}
.hero-card .number{display:none}
.hero-card:hover{transform:translateY(-2px);border-color:var(--hero-color,var(--aqua))}
.hero-card.active{border-color:var(--hero-color,var(--aqua));background:var(--panel-2)}
.hero-card.active::after{content:"";position:absolute;left:0;right:0;bottom:0;height:.3rem;background:var(--hero-color,var(--aqua))}

.selected-info{flex:1;min-height:0;display:flex;flex-direction:column;gap:.55rem;padding:.9rem 1rem;background:var(--panel);border:2px solid var(--hero-color,var(--line));border-radius:1.1rem;overflow:hidden}
.si-head{display:flex;align-items:center;gap:.7rem}
.role-badge{display:grid;place-items:center;width:2.5rem;height:2.5rem;border-radius:.7rem;background:var(--hero-color,var(--aqua));color:var(--ink);font-size:1.4rem;flex:none}
.si-title{display:flex;flex-direction:column;line-height:1.05}
#hero-role{color:var(--hero-color,var(--aqua));font-size:.8rem;font-weight:900;letter-spacing:.14em}
.selected-info h2{font-size:1.9rem;font-style:italic;font-weight:900;letter-spacing:.01em}
#hero-desc{margin:0;color:var(--muted);font-size:.9rem}
#hero-stats{display:grid;grid-template-columns:1fr 1fr;gap:.45rem .9rem}
.stat{display:grid;grid-template-columns:1fr auto;align-items:baseline;row-gap:.2rem}
.stat span{font-size:.75rem;font-weight:800;letter-spacing:.1em;color:var(--muted)}
.stat b{font-size:.85rem;font-weight:800;font-variant-numeric:tabular-nums}
.stat i{grid-column:1/-1;height:.45rem;border-radius:.3rem;background:linear-gradient(90deg,var(--hero-color,var(--aqua)) var(--v),rgba(255,255,255,.13) 0)}
#hero-abilities ul{list-style:none;margin:0;padding:0}
#hero-abilities li{display:grid;grid-template-columns:2.9rem 1fr auto;gap:.6rem;align-items:start;padding:.42rem 0;border-top:1px solid var(--line)}
#hero-abilities kbd{margin-top:.1rem;font-size:.72rem;letter-spacing:.04em}
#hero-abilities li.ult kbd{background:var(--gold)}
#hero-abilities li.gun kbd{background:var(--hero-color,var(--aqua))}
#hero-abilities strong{display:block;font-size:.9rem;font-weight:900}
#hero-abilities li span{display:block;color:var(--muted);font-size:.8125rem;line-height:1.25}
#hero-abilities em{font-style:normal;color:var(--muted);font-size:.75rem;font-weight:800;white-space:nowrap;padding-top:.15rem}

.lobby-right{position:absolute;right:1.75rem;top:4.3rem;bottom:1.4rem;width:24.5rem;display:flex;flex-direction:column;gap:.7rem;min-height:0}
.lobby-right .section-label{margin-bottom:-.2rem}
#map-cards{display:flex;flex-direction:column;gap:.6rem}
.map-card{position:relative;display:grid;grid-template-columns:6.2rem 1fr;gap:.8rem;padding:.6rem;background:var(--panel);border:2px solid var(--line);border-radius:1rem;text-align:left;transition:transform .1s,border-color .12s}
.map-card:hover{transform:translateY(-2px);border-color:var(--map-color)}
.map-card.active{border-color:var(--map-color);background:var(--panel-2)}
.map-card.active::after{content:"ATIVO";position:absolute;right:.5rem;top:.5rem;padding:.1rem .5rem;border-radius:.4rem;background:var(--map-color);color:var(--ink);font-size:.7rem;font-weight:900;letter-spacing:.1em}
.map-thumb{display:block;width:6.2rem;height:6.2rem;border-radius:.7rem;overflow:hidden;border:2px solid var(--map-color)}
.map-thumb svg{display:block;width:100%;height:100%}
.map-text{display:flex;flex-direction:column;gap:.15rem;min-width:0}
.map-text small{color:var(--map-color);font-size:.75rem;font-weight:900;letter-spacing:.12em}
.map-text strong{font-size:1.1rem;font-weight:900;font-style:italic;color:var(--cream)}
.map-desc{color:var(--muted);font-size:.8125rem;line-height:1.3}
.map-chips{display:flex;flex-wrap:wrap;gap:.3rem;margin-top:.15rem}
.map-chips i{font-style:normal;padding:.05rem .45rem;border-radius:.4rem;border:1px solid var(--line);color:var(--cream);font-size:.7rem;font-weight:800;letter-spacing:.06em}
.session-options{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;padding:.7rem;background:var(--panel);border:2px solid var(--line);border-radius:1rem}
.has-ui .map-fallback,.has-ui #match-size{display:none}
#lobby:not(.has-ui) .map-fallback{grid-column:1/-1}
#size-seg{display:flex;gap:.35rem}
#size-seg:empty{display:none}
.seg{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;height:2.8rem;padding:0;background:rgba(255,255,255,.07);border:2px solid var(--line);border-radius:.7rem;line-height:1.1}
.seg b{font-size:.9rem;font-weight:900}
.seg small{color:var(--muted);font-size:.72rem;font-weight:700;letter-spacing:.04em}
.seg.active{border-color:var(--aqua);background:rgba(137,244,212,.17)}
.seg:hover{border-color:var(--aqua)}
.section-label{text-shadow:0 1px 4px #000}
.play-actions{margin-top:auto;display:flex;flex-direction:column;gap:.6rem}
.play-actions .primary{height:3.6rem;font-size:1rem}
.play-actions .room-actions{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}
.play-actions .room-actions .secondary{height:3rem;padding:0 .6rem;font-size:.78rem;letter-spacing:.05em}
.prototype-note{position:absolute;left:50%;bottom:.45rem;transform:translateX(-50%);color:var(--cream);font-size:.72rem;font-weight:700;letter-spacing:.05em;text-shadow:0 1px 3px #000,0 0 6px #000;pointer-events:none;white-space:nowrap;opacity:.85}

/* ───────── HUD ───────── */
#hud{position:fixed;inset:0;z-index:10;pointer-events:none}
#hud button{pointer-events:auto}
.match-top{position:absolute;left:50%;top:.8rem;transform:translateX(-50%);display:flex;align-items:stretch;gap:.5rem}
.team-score{display:flex;align-items:center;gap:.55rem;min-width:10rem;padding:.4rem 1rem;background:var(--panel);border:2px solid var(--tc);border-radius:1.2rem .4rem .4rem 1.2rem;font-weight:900}
.team-score.friendly{--tc:var(--my);justify-content:flex-start}
.team-score.enemy{--tc:var(--foe);justify-content:flex-end;border-radius:.4rem 1.2rem 1.2rem .4rem}
.team-score span{font-size:.8rem;letter-spacing:.14em;color:var(--tc)}
.team-score b{font-size:2.1rem;font-variant-numeric:tabular-nums;line-height:1;margin-left:auto}
.team-score.enemy b{margin-left:0;margin-right:auto}
.team-glyph{color:var(--tc);font-size:1.1rem}
.objective-header{display:flex;flex-direction:column;align-items:center;min-width:17rem;padding:.3rem 1rem .55rem;background:var(--panel);border:2px solid var(--line);border-radius:.4rem;transition:border-color .15s}
#mode-label{color:var(--muted);font-size:.72rem;font-weight:800;letter-spacing:.14em}
#clock{font-size:2rem;line-height:1.05;font-weight:900;font-variant-numeric:tabular-nums}
#clock.warn{color:var(--danger);animation:blink 1s steps(2) infinite}
#objective-status{font-size:.8125rem;font-weight:900;letter-spacing:.1em;margin-bottom:.3rem}
.objective-header.mine #objective-status{color:var(--my)}
.objective-header.theirs #objective-status{color:var(--foe)}
.objective-header.contested{border-color:var(--gold)}
.objective-header.contested #objective-status{color:var(--gold);animation:blink 1s steps(2) infinite}
.objective-header.in-zone{border-color:var(--cream)}
.capture-track{position:relative;width:100%;height:1rem;background:rgba(255,255,255,.14);border-radius:.5rem;overflow:hidden}
#capture-fill{position:absolute;top:0;bottom:0;left:0;width:0;background:var(--my);transition:width .15s linear}
#capture-fill.m{left:auto;right:50%;background:var(--my)}
#capture-fill.t{left:50%;right:auto;background:var(--foe)}
.objective-header.contested #capture-fill{background-image:repeating-linear-gradient(45deg,rgba(255,255,255,.35) 0 .3rem,transparent .3rem .6rem)}
.capture-track .tick{position:absolute;left:50%;top:0;bottom:0;width:2px;margin-left:-1px;background:var(--cream);opacity:.8}
#capture-pct{position:absolute;inset:0;display:grid;place-items:center;font-style:normal;font-size:.75rem;font-weight:900;line-height:1;color:#fff;-webkit-text-stroke:3px var(--ink);paint-order:stroke fill;pointer-events:none}

.top-left{position:absolute;left:1rem;top:.8rem;display:flex;flex-direction:column;gap:.35rem}
.conn{display:inline-flex;align-items:center;gap:.4rem;align-self:flex-start;padding:.15rem .6rem;background:var(--panel);border-radius:.5rem;color:var(--muted);font-size:.75rem;font-weight:800;letter-spacing:.1em}
.conn i{width:.5rem;height:.5rem;border-radius:50%;background:var(--aqua)}
.conn.warn{color:var(--gold)}.conn.warn i{background:var(--gold);border-radius:0}
#minimap{width:11.5rem;height:11.5rem;display:block;background:#0d272e;border:2px solid var(--line);border-radius:.9rem}
.mini-legend{display:flex;gap:.7rem;padding:.15rem .6rem;background:var(--panel);border-radius:.5rem;font-size:.72rem;font-weight:800;letter-spacing:.06em;color:var(--muted);align-self:flex-start}
.mini-legend span{display:inline-flex;align-items:center;gap:.25rem}
.mini-legend span:nth-child(1) .ic{color:var(--my)}.mini-legend span:nth-child(2) .ic{color:var(--foe)}.mini-legend span:nth-child(3) .ic{color:var(--gold)}

#kill-feed{position:absolute;right:1rem;top:3.8rem;width:20rem;display:flex;flex-direction:column;align-items:flex-end;gap:.3rem}
.kill-row{display:inline-flex;align-items:center;gap:.5rem;max-width:100%;padding:.28rem .7rem;background:rgba(10,31,38,.9);border:2px solid transparent;border-radius:.6rem;font-size:.8125rem;font-weight:800;animation:slide-in .18s ease-out}
.kill-row.mine{border-color:var(--gold);background:rgba(40,36,18,.92)}
.k-name{display:inline-flex;align-items:center;gap:.3rem;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.k-name .ic{font-size:.75rem}
.k-ico{color:var(--cream);font-size:.8rem}
.hud-sound{position:absolute;right:1rem;top:.8rem;height:2.4rem;padding:0 .7rem}

#objective-marker{position:fixed;left:0;top:0;display:none;flex-direction:column;align-items:center;gap:.15rem;--oc:var(--gold);pointer-events:none;will-change:transform}
#objective-marker .diamond{font-size:2rem;color:var(--oc);filter:drop-shadow(0 0 1px var(--ink)) drop-shadow(0 0 3px var(--ink))}
#objective-marker small{padding:.05rem .5rem;background:rgba(10,31,38,.88);border:1px solid var(--oc);border-radius:.4rem;color:var(--cream);font-size:.75rem;font-weight:900;letter-spacing:.08em;white-space:nowrap}
#objective-marker[data-state="mine"]{--oc:var(--my)}
#objective-marker[data-state="theirs"]{--oc:var(--foe)}
#objective-marker[data-state="contested"]{--oc:#fff}
#objective-marker[data-state="contested"] .diamond{animation:blink 1s steps(2) infinite}
.edge-arrow{display:none;position:absolute;left:50%;top:50%;width:1.3rem;height:1.3rem;margin:-.65rem;color:var(--oc);transform:rotate(var(--ang,0deg)) translateY(-2.4rem)}
.edge-arrow .ic{width:100%;height:100%;filter:drop-shadow(0 0 2px var(--ink))}
#objective-marker.edge .edge-arrow{display:block}

#crosshair{position:absolute;left:50%;top:50%;width:0;height:0}
#crosshair i{position:absolute;background:#fff;border-radius:1px;box-shadow:0 0 0 1px rgba(8,22,28,.9)}
#crosshair i:nth-child(1){width:2px;height:.65rem;left:-1px;top:-1.35rem}
#crosshair i:nth-child(2){width:2px;height:.65rem;left:-1px;top:.7rem}
#crosshair i:nth-child(3){height:2px;width:.65rem;top:-1px;left:-1.35rem}
#crosshair i:nth-child(4){height:2px;width:.65rem;top:-1px;left:.7rem}
#crosshair b{position:absolute;left:-2px;top:-2px;width:4px;height:4px;border-radius:50%;background:#fff;box-shadow:0 0 0 1px rgba(8,22,28,.9)}
#hitmarker{position:absolute;left:50%;top:50%;width:0;height:0;opacity:0;transition:opacity .08s}
#hitmarker i{position:absolute;width:2px;height:.55rem;left:-1px;top:-1.5rem;background:#fff;box-shadow:0 0 0 1px rgba(8,22,28,.9);transform-origin:1px 1.5rem}
#hitmarker i:nth-child(1){transform:rotate(45deg)}#hitmarker i:nth-child(2){transform:rotate(135deg)}#hitmarker i:nth-child(3){transform:rotate(225deg)}#hitmarker i:nth-child(4){transform:rotate(315deg)}
#hitmarker.kill i{background:var(--danger);height:.8rem;width:3px;top:-1.8rem;transform-origin:1.5px 1.8rem}

#notifications{position:absolute;left:50%;top:8.2rem;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:.35rem;width:34rem;max-width:90vw}
.notification{padding:.4rem 1.1rem;background:var(--panel);border:2px solid var(--line);border-radius:.7rem;font-size:.85rem;font-weight:800;letter-spacing:.06em;text-align:center;animation:slide-in .2s ease-out}
.notification.p0{font-size:.8125rem;color:var(--muted);background:rgba(10,31,38,.8)}
.notification.p2{padding:.55rem 1.4rem;border-color:var(--gold);font-size:1.05rem;font-weight:900;color:var(--cream);box-shadow:0 0 0 3px rgba(255,195,101,.18)}

#respawn{position:absolute;left:50%;top:36%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:.2rem;padding:1.2rem 3rem;background:radial-gradient(closest-side,rgba(8,24,30,.88),rgba(8,24,30,0));text-shadow:0 2px 6px #000}
#respawn span{color:var(--danger);font-size:1.1rem;font-weight:900;letter-spacing:.2em}
#respawn strong{font-size:5rem;line-height:1;font-weight:900;font-variant-numeric:tabular-nums}
#respawn small{color:var(--muted);font-size:.85rem;font-weight:800;letter-spacing:.12em}
.respawn-bar{width:12rem;height:.45rem;margin-top:.5rem;background:rgba(255,255,255,.18);border-radius:.3rem;overflow:hidden}
.respawn-bar i{display:block;height:100%;background:var(--danger)}

#mouse-hint{position:absolute;left:1rem;top:16rem;display:flex;flex-direction:column;align-items:flex-start;gap:.4rem;max-width:18rem;text-align:left}
#hud.scoreboard-open #mouse-hint{visibility:hidden}
#mouse-hint-text{padding:.35rem .9rem;background:var(--panel);border:1px solid var(--line);border-radius:.6rem;font-size:.8125rem;font-weight:700}
#mouse-hint-text:empty{display:none}
#capture-mouse{height:2.3rem;font-size:.75rem;padding:0 1rem;background:var(--panel)}

.bottom-hud{position:absolute;left:1rem;right:1rem;bottom:1rem;display:flex;align-items:flex-end;justify-content:space-between;gap:1rem}
.health-panel{display:flex;gap:.7rem;width:22rem;padding:.6rem .8rem;background:var(--panel);border:2px solid var(--line);border-radius:1rem;transition:border-color .2s}
.hero-badge{display:grid;place-items:center;width:3.4rem;height:3.4rem;flex:none;align-self:center;background:var(--panel-2);border:3px solid var(--hero-color,var(--aqua));border-radius:.9rem;font-size:1.7rem;font-weight:900;font-style:italic}
.health-detail{flex:1;min-width:0;display:flex;flex-direction:column;gap:.25rem}
.health-top{display:flex;align-items:baseline;gap:.5rem}
#hud-name{font-size:.95rem;letter-spacing:.06em}
#low-warning{padding:.03rem .4rem;border-radius:.3rem;background:var(--danger);color:var(--ink);font-size:.68rem;letter-spacing:.06em;white-space:nowrap;animation:blink .8s steps(2) infinite}
#health-number{margin-left:auto;font-size:1.8rem;line-height:1;font-weight:900;font-variant-numeric:tabular-nums;white-space:nowrap}
#health-number small{color:var(--muted);font-size:.8125rem;font-weight:700}
.health-track{position:relative;height:1rem;background:rgba(255,255,255,.14);border-radius:.55rem;overflow:hidden}
.health-track::after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent 0 calc(10% - 2px),rgba(11,33,40,.6) calc(10% - 2px) 10%);pointer-events:none}
#health-fill{position:absolute;left:0;top:0;bottom:0;width:100%;background:var(--cream);transition:width .12s linear,background .2s}
#reserve-fill{position:absolute;top:0;bottom:0;left:0;width:0;background:repeating-linear-gradient(135deg,var(--aqua) 0 .3rem,#4fb99d .3rem .6rem);transition:width .2s,left .12s}
.health-panel.regen #health-fill{background:var(--aqua)}
.health-panel.low{border-color:var(--danger)}
.health-panel.low #health-fill{background:var(--danger)}
.health-panel.low #health-number{color:var(--danger)}
.shield-track{position:relative;height:.9rem;background:rgba(255,255,255,.12);border-radius:.5rem;overflow:hidden}
#shield-fill{position:absolute;left:0;top:0;bottom:0;background:#9ed8ff}
#shield-text{position:relative;display:block;padding:0 .5rem;color:#fff;-webkit-text-stroke:3px var(--ink);paint-order:stroke fill;font-size:.7rem;font-weight:900;line-height:.9rem;letter-spacing:.06em}
.health-sub{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem .5rem;min-height:1.1rem}
#regen-status{color:var(--muted);font-size:.75rem;font-weight:800;letter-spacing:.04em}
.health-panel.regen #regen-status{color:var(--aqua)}
#buff-chips{display:inline-flex;flex-wrap:wrap;gap:.25rem}
.chip{display:inline-flex;align-items:center;gap:.25rem;padding:.02rem .4rem;border-radius:.4rem;border:1px solid var(--gold);color:var(--gold);font-size:.7rem;font-weight:900;letter-spacing:.04em}
.chip.chaos{border-color:#e0a8f5;color:#e0a8f5}.chip.sensor{border-color:var(--cream);color:var(--cream)}.chip.safe{border-color:#9ed8ff;color:#9ed8ff}

.abilities{display:flex;flex:none;align-items:flex-start;gap:.75rem;padding:0 .5rem}
.ability{position:relative;display:flex;flex:none;flex-direction:column;align-items:center;gap:.35rem;width:7.4rem}
.ab-tile{position:relative;display:grid;place-items:center;width:3.7rem;height:3.7rem;background:var(--panel);border:2px solid var(--line);border-radius:.9rem;font-size:1.8rem;color:var(--cream)}
.ab-tile kbd{position:absolute;left:-.45rem;top:-.55rem;z-index:3}
.ab-tile::after{content:"";position:absolute;inset:0;border-radius:inherit;background:conic-gradient(rgba(5,16,20,.84) var(--cd,0%),transparent 0);pointer-events:none}
.ability:not(.cooling):not(.ultimate):not(.item) .ab-tile{border-color:var(--my)}
.ab-tile b{position:absolute;inset:0;z-index:2;display:grid;place-items:center;font-size:1.35rem;font-weight:900;color:#fff;-webkit-text-stroke:4px var(--ink);paint-order:stroke fill;font-variant-numeric:tabular-nums}
.ability>span{max-width:100%;padding:.08rem .35rem;border-radius:.35rem;background:rgba(10,31,38,.82);text-align:center;color:var(--cream);font-size:.8125rem;font-weight:700;line-height:1.15;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:break-word}
.ability.cooling>span{color:var(--muted)}
.ability.ultimate .ab-tile{border:0;border-radius:50%;background:conic-gradient(var(--gold) var(--p,0%),rgba(255,255,255,.16) 0)}
.ability.ultimate .ab-tile::before{content:"";position:absolute;inset:.3rem;border-radius:50%;background:var(--panel-2)}
.ability.ultimate .ab-tile::after{display:none}
.ability.ultimate .ab-tile strong{position:relative;z-index:2;font-size:1.1rem;font-weight:900;font-variant-numeric:tabular-nums}
.ability.ultimate .ab-tile strong span{font-size:.7rem;margin-left:1px}
.ready-tag{display:none;position:absolute;left:50%;top:-1.5rem;transform:translateX(-50%);padding:.05rem .5rem;border-radius:.4rem;background:var(--gold);color:var(--ink);font-size:.7rem;font-weight:900;font-style:normal;letter-spacing:.08em;white-space:nowrap}
.ability.ready .ready-tag{display:block}
.ability.ready .ab-tile{animation:glow 1s ease-in-out infinite alternate}
.ability.ready .ab-tile{background:var(--gold)}
.ability.ready .ab-tile::before{background:#33290f}
.ability.item .ab-tile{border-style:dashed;border-radius:.6rem;color:var(--muted)}
.ability.item.has .ab-tile{border-style:solid;border-color:var(--gold);color:var(--gold);background:var(--panel-2)}
.ammo-panel{width:13.5rem;padding:.6rem .9rem;background:var(--panel);border:2px solid var(--line);border-radius:1rem;text-align:right}
#weapon-name{display:block;color:var(--muted);font-size:.72rem;font-weight:800;letter-spacing:.1em}
.ammo-num{display:flex;justify-content:flex-end;align-items:baseline;gap:.4rem;line-height:1}
#ammo{font-size:3.2rem;font-weight:900;font-variant-numeric:tabular-nums}
#mag{color:var(--muted);font-size:1.1rem;font-weight:800}
.reload-bar{height:.35rem;margin:.2rem 0 .3rem;background:rgba(255,255,255,.14);border-radius:.3rem;overflow:hidden}
#reload-fill{display:block;height:100%;width:0;background:var(--gold)}
#reload-status{font-size:.75rem;font-weight:800;letter-spacing:.05em;color:var(--muted)}
.ammo-panel.low #ammo,.ammo-panel.low #reload-status{color:var(--danger)}
.ammo-panel.reloading #reload-status{color:var(--gold)}
.ammo-panel kbd{margin-right:.25rem}
#hud.dead .abilities,#hud.dead .ammo-panel{opacity:.45}

#lowhp{position:absolute;inset:0;opacity:0;background:radial-gradient(ellipse at center,transparent 52%,rgba(255,70,50,.42) 100%);transition:opacity .25s}
#lowhp.on{opacity:1;animation:throb 1.3s ease-in-out infinite}
#damage{position:fixed;inset:0;z-index:9;pointer-events:none;opacity:0;background:radial-gradient(ellipse at center,transparent 45%,rgba(255,80,60,.7) 100%);transition:opacity .12s}
#damage-dir{position:absolute;left:50%;top:50%;width:0;height:0;opacity:0;transition:opacity .12s}
#damage-dir i{position:absolute;left:-6rem;top:-13rem;width:12rem;height:5rem;border-top:.6rem solid #ff6a55;border-radius:50% 50% 0 0/100% 100% 0 0;filter:drop-shadow(0 0 3px var(--ink))}

/* ───────── overlays ───────── */
#overlay,#network-dialog,#scoreboard{position:fixed;inset:0;display:flex;align-items:center;justify-content:center}
#overlay{z-index:40;background:rgba(5,18,22,.74)}
#network-dialog{z-index:50;background:rgba(5,18,22,.8)}
#scoreboard{z-index:30;background:rgba(5,18,22,.55);pointer-events:none}
.dialog{width:min(30rem,92vw);max-height:94vh;overflow:auto;padding:1.8rem;background:var(--panel);border:2px solid var(--line);border-radius:1.3rem;box-shadow:0 1.5rem 4rem rgba(0,0,0,.5)}
.dialog h2{margin:.35rem 0 .6rem;font-size:2.3rem;line-height:1;font-weight:900;font-style:italic}
.dialog p{margin:0 0 1rem;color:var(--muted);font-size:.95rem}
.dialog-actions{display:flex;gap:.7rem;margin-top:1.1rem;flex-wrap:wrap}
.dialog small#pause-note{display:block;margin-top:.8rem;color:var(--muted);font-size:.8125rem}
.dialog.wide{display:grid;grid-template-columns:23rem 1fr;gap:2rem;width:min(56rem,95vw)}
#overlay[data-mode="end"] .dialog.wide{grid-template-columns:18rem 1fr;width:min(62rem,95vw)}
.dialog-side{border-left:1px solid var(--line);padding-left:2rem;min-width:0}
.dialog-side h3{margin:0 0 .7rem;color:var(--aqua);font-size:.8rem;font-weight:900;letter-spacing:.16em}
.controls-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.controls-list li{display:grid;grid-template-columns:10.5rem 1fr;align-items:center;gap:.6rem;padding:.38rem 0;border-top:1px solid var(--line);font-size:.9rem;font-weight:700}
.controls-list li:first-child{border-top:0}
.keys{display:flex;gap:.25rem;flex-wrap:wrap}
.status-chip{display:flex;align-items:flex-start;gap:.6rem;padding:.6rem .8rem;border-radius:.8rem;border:2px solid var(--line);font-size:.8125rem;font-weight:700;line-height:1.3}
.status-chip i{flex:none;width:.8rem;height:.8rem;margin-top:.15rem;background:var(--gold);border-radius:0;transform:rotate(45deg)}
.status-chip.ok i{background:var(--aqua);border-radius:50%;transform:none}
.status-chip.ok{border-color:rgba(137,244,212,.5)}
.status-chip.warn{border-color:rgba(255,195,101,.6)}
.status-chip.refused{border-color:var(--danger)}.status-chip.refused i{background:var(--danger)}
.room-code{display:flex;flex-direction:column;margin-bottom:.8rem;padding:.6rem .9rem;border:2px dashed var(--line);border-radius:.8rem}
.room-code small{color:var(--muted);font-size:.72rem;font-weight:800;letter-spacing:.14em}
.room-code b{font-size:1.9rem;letter-spacing:.25em;font-weight:900;color:var(--gold)}
#dialog-content:empty{display:none}
#overlay[data-mode="end"][data-result="win"] #dialog-title{color:var(--aqua)}
#overlay[data-mode="end"][data-result="lose"] #dialog-title{color:var(--danger)}
#overlay[data-mode="end"][data-result="draw"] #dialog-title{color:var(--gold)}
#overlay[data-mode="end"] #dialog-title{font-size:3.2rem}
.result-score{display:flex;align-items:center;gap:1rem;margin:.2rem 0 .4rem}
.result-score>span{color:var(--muted);font-weight:900;font-size:1.3rem}
.rs{display:flex;flex-direction:column;min-width:7.5rem;padding:.5rem .9rem;border:2px solid var(--tc);border-radius:.9rem;background:var(--panel-2)}
.rs small{display:flex;align-items:center;gap:.3rem;color:var(--tc);font-size:.78rem;font-weight:900;letter-spacing:.12em}
.rs b{font-size:2.6rem;line-height:1;font-variant-numeric:tabular-nums}
.end-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem;margin-bottom:.9rem}
.end-stats div{padding:.5rem;text-align:center;background:var(--panel-2);border:2px solid var(--line);border-radius:.8rem}
.end-stats b{display:block;font-size:2rem;line-height:1;font-variant-numeric:tabular-nums}
.end-stats small{color:var(--muted);font-size:.72rem;font-weight:800;letter-spacing:.1em}
.end-board{display:flex;flex-direction:column;gap:.5rem}

/* placar */
.dialog.board{width:min(52rem,94vw);padding:1.3rem 1.5rem}
.board-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:.8rem}
.board-head h2{margin:.2rem 0 0;font-size:1.7rem}
.board-meta{text-align:right}
.board-meta span{display:block;font-size:1.8rem;font-weight:900;font-variant-numeric:tabular-nums;line-height:1}
.board-meta small{color:var(--muted);font-size:.8125rem;font-weight:700}
.board-hint{display:block;margin-top:.6rem;color:var(--muted);font-size:.8125rem;text-align:center}
#scoreboard-rows,.end-board{display:flex;flex-direction:column;gap:.55rem}
.team-block{position:relative;border-radius:.7rem;overflow:hidden;background:rgba(255,255,255,.03)}
.team-block>header{position:relative;display:flex;align-items:center;gap:.6rem;padding:.4rem .8rem;border-left:.4rem solid var(--tc);font-size:.9rem}
.team-block>header::before{content:"";position:absolute;inset:0;background:var(--tc);opacity:.16}
.team-block>header>*{position:relative}
.team-block>header b{color:var(--tc);font-weight:900;letter-spacing:.14em}
.team-block>header span{color:var(--muted);font-size:.75rem;font-weight:800;letter-spacing:.1em}
.team-block>header em{margin-left:auto;font-style:normal;font-size:1.4rem;font-weight:900;font-variant-numeric:tabular-nums}
.team-block .tg{color:var(--tc)}
.sb-row{display:grid;grid-template-columns:8rem 1fr 3.8rem 4.4rem 4rem;align-items:center;gap:.4rem;padding:.3rem .8rem;font-size:.9rem;font-weight:700;border-top:1px solid rgba(167,236,218,.1)}
.sb-row b{text-align:center;font-variant-numeric:tabular-nums;font-weight:800}
.sb-head{padding-top:.2rem;padding-bottom:.2rem;border-top:0;color:var(--muted);font-size:.72rem;font-weight:800;letter-spacing:.1em}
.sb-head b{font-weight:800}
.sb-hero{display:flex;align-items:center;gap:.4rem}
.sb-role{color:var(--hero-color);display:inline-flex}
.sb-name{display:flex;align-items:center;gap:.5rem;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sb-name em{font-style:normal;padding:0 .4rem;border-radius:.3rem;background:var(--gold);color:var(--ink);font-size:.68rem;font-weight:900;letter-spacing:.08em}
.sb-row.me{background:rgba(255,195,101,.17);box-shadow:inset .25rem 0 0 var(--gold)}
.sb-row.down{opacity:.72}
.end-board .sb-row{grid-template-columns:6.2rem 1fr 3rem 4.2rem 4rem;padding:.2rem .6rem;font-size:.8125rem}
.score-row{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;padding:.4rem 0;font-size:.9rem}
.score-row.enemy{color:var(--eclipse)}

/* diálogo de rede */
.network-note{font-size:.8125rem!important}
.code-label{margin:.4rem 0 .3rem}
.code-label input{text-transform:uppercase;letter-spacing:.2em}
.dialog .form-error{margin:.2rem 0 .7rem;padding:.55rem .75rem;background:rgba(255,128,107,.14);border:2px solid var(--danger);border-radius:.7rem;color:var(--cream);font-size:.85rem;font-weight:700;line-height:1.3}

/* ───────── sala de espera ───────── */
#room-screen{position:fixed;inset:0;z-index:45;display:flex;align-items:center;justify-content:center;padding:2rem;background:radial-gradient(ellipse at 50% 40%,rgba(8,26,32,.82),rgba(5,18,22,.94))}
.room-panel{width:min(52rem,95vw);max-height:92vh;overflow:auto;padding:1.6rem 1.8rem;background:var(--panel);border:2px solid var(--line);border-radius:1.3rem;box-shadow:0 1.5rem 4rem rgba(0,0,0,.5)}
.room-head .eyebrow{letter-spacing:.16em}
.room-head h1{margin:.25rem 0 .35rem;font-size:2.1rem;line-height:1.05;font-weight:900;font-style:italic;color:var(--cream)}
.room-sub,.room-help,.room-note,.room-hint{margin:0;color:var(--muted);font-size:.85rem;line-height:1.3}
.room-code-row{display:grid;grid-template-columns:1fr auto;gap:.9rem;align-items:end;margin-top:1rem}
.room-code-field input{height:3.4rem;padding:0 .8rem;text-align:center;font-size:1.7rem;font-weight:900;letter-spacing:.34em;color:var(--gold);background:rgba(255,255,255,.08);border-color:var(--gold)}
.room-copy-actions{display:flex;gap:.5rem;flex-wrap:wrap}
.room-copy-actions .secondary{height:3.4rem;padding:0 .85rem;font-size:.78rem}
.room-help{margin-top:.45rem}
.invite-field{margin-top:.55rem}
.invite-field input{height:2.6rem;font-size:.85rem;letter-spacing:0;color:var(--cream);text-overflow:ellipsis}
#wait-code[readonly],#invite-url[readonly]{cursor:text;user-select:text;caret-color:var(--gold)}
#wait-code::selection,#invite-url::selection{background:var(--gold);color:var(--ink)}
.room-copy-status{min-height:1.25rem;margin:.15rem 0 .6rem;color:var(--aqua);font-size:.8rem;font-weight:800}
.room-meta{display:grid;grid-template-columns:1.2fr 1.5fr 1fr 1fr;gap:.5rem;margin:0 0 .8rem}
.room-meta>div{min-width:0;padding:.4rem .6rem;background:rgba(255,255,255,.04);border:1px solid var(--line);border-radius:.6rem}
.room-meta dt{color:var(--muted);font-size:.7rem;font-weight:800;letter-spacing:.12em}
.room-meta dd{margin:.1rem 0 0;font-size:.95rem;font-weight:900;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.room-teams{display:grid;grid-template-columns:1fr 1fr;gap:.7rem;margin-bottom:.7rem}
.wait-team{border:2px solid var(--tc);border-radius:.9rem;background:rgba(255,255,255,.03);overflow:hidden}
.wait-team header{display:flex;align-items:center;gap:.4rem;padding:.35rem .7rem;border-bottom:1px solid var(--line);font-size:.8rem;letter-spacing:.1em}
.wait-team header b{color:var(--tc);font-weight:900}
.wait-team header span{margin-left:auto;color:var(--muted);font-size:.7rem;font-weight:800}
.wait-team ul{list-style:none;margin:0;padding:.35rem .4rem;display:flex;flex-direction:column;gap:.25rem}
.wait-team li{display:flex;align-items:center;gap:.4rem;min-height:1.9rem;padding:.25rem .45rem;border-radius:.5rem;font-size:.85rem;font-weight:700}
.wait-team li.me{background:rgba(255,195,101,.15);box-shadow:inset .2rem 0 0 var(--gold)}
.wait-team .wt-role{display:inline-flex;color:var(--tc)}
.wait-team .wt-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wait-team .wt-hero{margin-left:auto;color:var(--muted);font-size:.75rem;font-weight:800;white-space:nowrap}
.wait-team .host-badge,.wait-team .bot-badge{padding:.02rem .35rem;border-radius:.3rem;font-size:.62rem;font-weight:900;letter-spacing:.06em;font-style:normal;white-space:nowrap}
.wait-team .host-badge{background:var(--gold);color:var(--ink)}
.wait-team .bot-badge{border:1px solid var(--line);color:var(--muted)}
.room-hint{margin:.1rem 0 .2rem;color:var(--cream);font-weight:700}
.room-actions{align-items:center}
.room-actions .primary{min-width:16rem}
.room-actions .primary:disabled{opacity:.6;cursor:not-allowed}
.room-note{margin-top:.8rem;font-size:.78rem}
#room-screen[hidden]{display:none}

/* avisos de sistema / carregando */
#error-toast{position:fixed;left:50%;bottom:17rem;transform:translateX(-50%);z-index:60;max-width:36rem;padding:.8rem 1.2rem;background:#3a1a17;border:2px solid var(--danger);border-radius:.8rem;font-size:.9rem;font-weight:700;text-align:center;box-shadow:0 .8rem 2rem rgba(0,0,0,.5)}
#loading{position:fixed;inset:0;z-index:100;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.8rem;background:var(--bg);color:var(--aqua);font-weight:900;letter-spacing:.2em}
#loading .rift-mark{font-size:3rem}

@keyframes blink{50%{opacity:.45}}
@keyframes throb{50%{opacity:.55}}
@keyframes glow{to{box-shadow:0 0 0 .25rem rgba(255,195,101,.45)}}
@keyframes slide-in{from{opacity:0;transform:translateY(-6px)}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
