/* Arena broadcast language: cut metal ribbons, team crests and fixed score slots.
   World indicators and announcements never intercept flight or touch input. */
#ctfHud{position:fixed;inset:0;z-index:35;pointer-events:none;color:#f4f5ef;font-family:var(--ctf-font);font-weight:400;text-shadow:0 2px 3px #000;contain:layout style;--ctf-font:'Creepster','Rajdhani',sans-serif;--ctf-red:#ff5167;--ctf-blue:#56cdff}
#ctfHud[hidden],#ctfHud [hidden]{display:none!important}
#ctfHud *{box-sizing:border-box;font-weight:400}
/* Keep projections in physical pixels; only the screen readouts use the HUD scale.
   Container breakpoints see the space remaining after zoom, including its 175% cap. */
.ctf-ui{position:absolute;inset:0;zoom:var(--ui-scale-hud,1);container:ctf-ui / size;
 --ctf-safe-top:calc(env(safe-area-inset-top,0px) / var(--ui-scale-hud,1));
 --ctf-safe-right:calc(env(safe-area-inset-right,0px) / var(--ui-scale-hud,1));
 --ctf-safe-bottom:calc(env(safe-area-inset-bottom,0px) / var(--ui-scale-hud,1));
 --ctf-safe-left:calc(env(safe-area-inset-left,0px) / var(--ui-scale-hud,1))}

.ctf-team-A,.ctf-marker-A{--team:var(--ctf-red);--team-rgb:255,65,88}
.ctf-team-B,.ctf-marker-B{--team:var(--ctf-blue);--team-rgb:44,185,255}
.ctf-scoreboard{position:absolute;top:max(16px,var(--ctf-safe-top));left:50%;transform:translateX(-50%);display:grid;grid-template-columns:minmax(0,1fr) 65px minmax(0,1fr);width:min(510px,calc(100% - 190px));height:62px;filter:drop-shadow(0 4px 6px #0008)}
.ctf-team{display:flex;align-items:center;gap:11px;min-width:0;padding:6px 13px 7px;background:linear-gradient(115deg,rgba(var(--team-rgb),.28),rgba(10,17,25,.96) 62%);border-top:2px solid var(--team);border-bottom:1px solid rgba(var(--team-rgb),.45);position:relative}
.ctf-team-A{clip-path:polygon(11px 0,100% 0,100% 100%,0 100%,0 11px)}
.ctf-team-B{clip-path:polygon(0 0,calc(100% - 11px) 0,100% 11px,100% 100%,0 100%)}
.ctf-team-copy{min-width:0;flex:1}.ctf-team-name{color:var(--team);font-family:var(--ctf-font);font-size:16px;font-weight:400;letter-spacing:.06em;line-height:1.35;white-space:nowrap}
.ctf-you{font-family:var(--ctf-font);font-size:11px;letter-spacing:0;color:#e3e7e9}
.ctf-flag-status{font-family:var(--ctf-font);font-size:11px;color:#b9c6d1;letter-spacing:.03em;white-space:nowrap;margin-top:4px}
.ctf-team[data-flag=carried] .ctf-flag-status{color:#fff}.ctf-team[data-flag=dropped] .ctf-flag-status{color:#ffe394}
.ctf-score{font-family:var(--ctf-font);font-size:32px;font-weight:400;font-variant-numeric:tabular-nums;line-height:1;min-width:1.2em;text-align:right}
.ctf-crest{display:block;flex:0 0 auto;width:25px;height:29px;background:var(--team);filter:drop-shadow(0 0 5px rgba(var(--team-rgb),.25))}
.ctf-crest-A{clip-path:polygon(0 72%,30% 4%,41% 41%,68% 0,72% 41%,100% 11%,79% 89%,54% 69%,34% 100%,24% 68%)}
.ctf-crest-B{clip-path:polygon(50% 0,100% 48%,58% 100%,58% 65%,77% 47%,50% 24%,23% 47%,42% 65%,42% 100%,0 48%)}
.ctf-mode{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;background:linear-gradient(#26313c,#101923);border-top:2px solid #c6d2d9;border-bottom:1px solid #8f9ca760;white-space:nowrap}
.ctf-mode>span{font-family:var(--ctf-font);font-size:11px;font-weight:400;letter-spacing:.08em}.ctf-mode small{font-family:var(--ctf-font);font-size:11px;letter-spacing:.015em;color:#bbc7d0}.ctf-mode b{color:#fff}
.ctf-timer{font-family:var(--ctf-font);font-size:18px;font-weight:400;line-height:1;font-variant-numeric:tabular-nums;min-width:4.5ch;text-align:center;color:#f2f6f7}.ctf-time-low{color:#ffe394}
.ctf-match-meta{position:absolute;top:max(81px,calc(var(--ctf-safe-top) + 65px));left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:10px;width:max-content;max-width:min(510px,calc(100% - 40px));font-family:var(--ctf-font);font-size:11px;line-height:1;letter-spacing:.1em;color:#c4ced7;white-space:nowrap;text-shadow:0 1px 3px #000,0 0 6px #000}
.ctf-room-label{min-width:0;overflow:hidden;text-overflow:ellipsis}
.ctf-ping{flex:0 0 auto;min-width:7em;font-size:12px;letter-spacing:.04em;border-left:1px solid #c4ced766;padding-left:10px}
.ctf-ping[data-quality=good]{color:#86ff5e}.ctf-ping[data-quality=moderate]{color:#ffe04d}.ctf-ping[data-quality=poor]{color:#ff4d57}
.ctf-possession{position:absolute;top:max(99px,calc(var(--ctf-safe-top) + 83px));left:50%;transform:translateX(-50%);width:min(480px,calc(100% - 40px));display:flex;flex-direction:column;gap:3px}
.ctf-possession-line{display:flex;align-items:center;justify-content:center;gap:10px;min-height:31px;border-left:3px solid var(--team);border-right:3px solid var(--team);background:linear-gradient(90deg,rgba(var(--team-rgb),.24),#07121ff0 25%,#07121ff0 75%,rgba(var(--team-rgb),.24));animation:ctf-possession-pulse 1.8s ease-in-out infinite alternate}
.ctf-possession-line strong{font-family:var(--ctf-font);font-weight:400;font-size:17px;letter-spacing:.045em;line-height:1.5;color:var(--team)}
.ctf-possession-line small{font-family:var(--ctf-font);font-size:11px;line-height:1.4;max-width:95px;color:#f0f6fa}
@keyframes ctf-possession-pulse{from{box-shadow:inset 0 0 4px rgba(var(--team-rgb),.03);border-color:var(--team)}to{box-shadow:inset 0 0 15px rgba(var(--team-rgb),.17);border-color:#e9f7ff}}
/* Fit the desktop ribbon between chat's 48px bottom edge and the FPS counter. */
.ctf-objective{position:absolute;bottom:max(20px,var(--ctf-safe-bottom));left:50%;transform:translateX(-50%);width:max-content;max-width:calc(100% - 40px);padding:3px 19px;border-bottom:1px solid #bac9d35e;background:linear-gradient(90deg,#0b121c00,#0b121ce8 12%,#0b121ce8 88%,#0b121c00);display:flex;align-items:center;gap:11px;text-align:center}
.ctf-objective-kicker{font-family:var(--ctf-font);font-size:11px;letter-spacing:.12em;color:#a9b9c7}.ctf-objective-text{font-size:16px;line-height:1.25;letter-spacing:.05em}
.ctf-score-event{position:absolute;left:50%;top:max(160px,calc(var(--ctf-safe-top) + 145px));transform:translateX(-50%);width:min(530px,calc(100% - 40px));text-align:center;padding:17px 42px 14px;background:linear-gradient(90deg,#080f1900,#080f19ef 15%,#080f19ef 85%,#080f1900);border-top:1px solid rgba(var(--team-rgb),.6);border-bottom:1px solid rgba(var(--team-rgb),.6);overflow:hidden}
.ctf-score-event:before{content:'';position:absolute;left:0;top:0;height:100%;width:100%;background:repeating-linear-gradient(120deg,transparent 0 28px,rgba(var(--team-rgb),.035) 28px 30px);pointer-events:none}
.ctf-score-event-title{font-family:var(--ctf-font);color:var(--team);font-size:18px;line-height:1.4;font-weight:400;letter-spacing:.16em}
.ctf-score-event strong{display:block;position:relative;font-family:var(--ctf-font);font-size:clamp(17px,2.5vw,27px);font-weight:400;letter-spacing:.035em;line-height:1.45;color:#fff}
.ctf-score-event-sub{display:block;font-family:var(--ctf-font);font-size:11px;letter-spacing:.1em;color:#ccd8df;margin-top:6px}
.ctf-score-event i{position:absolute;right:15px;top:50%;transform:translateY(-50%);font:400 35px var(--ctf-font);font-style:normal;color:var(--team);opacity:.65}
.ctf-minor-event{position:absolute;top:max(155px,calc(var(--ctf-safe-top) + 140px));left:50%;transform:translateX(-50%);color:var(--team);padding:7px 22px;background:#08111bea;border-bottom:1px solid var(--team);font-family:var(--ctf-font);font-size:14px;font-weight:400;letter-spacing:.08em;white-space:nowrap}
.ctf-marker{position:absolute;left:0;top:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:3px;max-width:128px;min-width:90px;text-align:center;filter:drop-shadow(0 1px 3px #000)}
.ctf-marker .ctf-crest{width:16px;height:18px;opacity:.95}.ctf-marker-label{padding:2px 5px;background:#0a152bd9;color:var(--team);font-family:var(--ctf-font);font-weight:400;font-size:11px;letter-spacing:.04em;line-height:1.15;white-space:nowrap;border-bottom:1px solid rgba(var(--team-rgb),.45)}
.ctf-marker small{font-family:var(--ctf-font);color:#e3edf3;font-size:11px;line-height:1;white-space:nowrap}
.ctf-marker-arrow{display:none;width:17px;height:14px;background:var(--team);clip-path:polygon(0 0,100% 50%,0 100%,26% 50%);transform:rotate(var(--ctf-arrow-angle,0rad));margin-bottom:3px}.ctf-marker-offscreen .ctf-marker-arrow{display:block}.ctf-marker-offscreen .ctf-crest{display:none}
.ctf-reduced-motion .ctf-possession-line{animation:none!important}
@media(prefers-reduced-motion:reduce){.ctf-possession-line{animation:none!important}}
@container ctf-ui (max-width:760px){.ctf-scoreboard{width:min(440px,calc(100% - 30px));top:max(12px,var(--ctf-safe-top));height:58px;grid-template-columns:minmax(0,1fr) 57px minmax(0,1fr)}.ctf-team{padding:5px 9px;gap:7px}.ctf-team-name{font-size:15px}.ctf-score{font-size:28px}.ctf-crest{width:20px;height:25px}.ctf-flag-status{font-size:11px}.ctf-match-meta{top:max(73px,calc(var(--ctf-safe-top) + 61px))}.ctf-possession{top:max(89px,calc(var(--ctf-safe-top) + 77px))}.ctf-objective{bottom:max(95px,calc(var(--ctf-safe-bottom) + 82px));padding:6px 12px;max-width:calc(100% - 28px)}.ctf-objective-text{font-size:14px}.ctf-objective-kicker{display:none}}
@container ctf-ui (max-width:460px){.ctf-scoreboard{width:calc(100% - 20px);height:55px;grid-template-columns:minmax(0,1fr) 49px minmax(0,1fr)}.ctf-team{gap:5px;padding:5px 7px}.ctf-team-name{font-size:14px}.ctf-you{font-size:11px}.ctf-score{font-size:25px;min-width:1.12em}.ctf-crest{width:16px;height:22px}.ctf-flag-status{font-size:11px;letter-spacing:0}.ctf-mode>span{font-size:11px}.ctf-mode small{font-size:11px}.ctf-timer{font-size:16px}.ctf-match-meta{top:max(70px,calc(var(--ctf-safe-top) + 58px));font-size:11px}.ctf-possession{width:calc(100% - 24px);top:max(85px,calc(var(--ctf-safe-top) + 73px))}.ctf-possession-line{gap:6px;padding:3px 5px}.ctf-possession-line strong{font-size:15px;letter-spacing:.02em}.ctf-possession-line small{max-width:78px;font-size:11px}.ctf-score-event{top:max(157px,calc(var(--ctf-safe-top) + 142px));padding:12px 24px;width:calc(100% - 24px)}.ctf-score-event-title{font-size:15px}.ctf-score-event strong{font-size:21px}.ctf-score-event i{font-size:22px;right:7px;opacity:.45}.ctf-score-event-sub{font-size:11px;letter-spacing:.05em}.ctf-marker-label{font-size:11px}.ctf-marker small{font-size:11px}.ctf-minor-event{font-size:11px}}
@container ctf-ui (max-height:500px){.ctf-scoreboard{top:max(9px,var(--ctf-safe-top));height:49px}.ctf-score{font-size:25px}.ctf-match-meta{top:max(62px,calc(var(--ctf-safe-top) + 53px))}.ctf-mode>span{display:none}.ctf-possession{top:max(76px,calc(var(--ctf-safe-top) + 67px))}.ctf-score-event{top:135px;padding-top:8px;padding-bottom:8px}.ctf-score-event-title{font-size:14px}.ctf-score-event strong{font-size:18px}.ctf-objective{bottom:max(20px,var(--ctf-safe-bottom));padding:3px 12px}.ctf-possession-line{min-height:25px}.ctf-minor-event{top:137px}}
/* The original touch pause control occupies the upper-right 60px hit region.
   Reserve it in the HUD rather than moving a control away from its engine hitbox. */
@container ctf-ui (max-width:760px){
 #ctfHud.ctf-touch .ctf-scoreboard{left:calc(50% - 36px + (var(--ctf-safe-left) - var(--ctf-safe-right))/2);width:min(440px,calc(100% - 90px - var(--ctf-safe-right) - var(--ctf-safe-left)));grid-template-columns:minmax(0,1fr) 44px minmax(0,1fr)}
 #ctfHud.ctf-touch .ctf-team{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:1fr auto;column-gap:5px;row-gap:0;padding:4px 7px 5px}
 #ctfHud.ctf-touch .ctf-team>.ctf-crest,#ctfHud.ctf-touch .ctf-you{display:none}
 #ctfHud.ctf-touch .ctf-team-copy{display:contents}
 #ctfHud.ctf-touch .ctf-team-name{grid-column:1;grid-row:1;align-self:center}
 #ctfHud.ctf-touch .ctf-score{grid-column:2;grid-row:1;font-size:23px}
 #ctfHud.ctf-touch .ctf-flag-status{grid-column:1/3;grid-row:2;margin-top:1px;font-size:11px;letter-spacing:0}
 #ctfHud.ctf-touch .ctf-match-meta{left:calc(50% - 36px + (var(--ctf-safe-left) - var(--ctf-safe-right))/2);max-width:min(440px,calc(100% - 90px - var(--ctf-safe-left) - var(--ctf-safe-right)))}
}
