@font-face{font-family:'Oswald';src:url(fonts/Oswald-VariableFont_wght.ttf?v=11) format('truetype');font-weight:200 700;font-display:swap}
@font-face{font-family:'Barlow Condensed';src:url(fonts/BarlowCondensed-Medium.ttf?v=11) format('truetype');font-weight:500;font-display:swap}
@font-face{font-family:'Barlow Condensed';src:url(fonts/BarlowCondensed-SemiBold.ttf?v=11) format('truetype');font-weight:600;font-display:swap}
@font-face{font-family:'Barlow Condensed';src:url(fonts/BarlowCondensed-Bold.ttf?v=11) format('truetype');font-weight:700;font-display:swap}
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
:root{--bg:#141516;--panel:rgba(22,23,24,.82);--line:rgba(230,226,214,.14);--txt:#ECE9E1;--dim:#9A988F;--tan:#B9A577;--olive:#7E8460;--red:#E52B12;--ok:#9DB36B;--st:env(safe-area-inset-top,0px);--sb:env(safe-area-inset-bottom,0px)}
html,body{margin:0;min-height:100dvh;background:var(--bg);color:var(--txt);font-family:'Barlow Condensed','Oswald',system-ui,sans-serif;-webkit-font-smoothing:antialiased;overscroll-behavior:none;user-select:none;-webkit-user-select:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
.emoji{font-family:'Apple Color Emoji','Segoe UI Emoji','Noto Color Emoji',sans-serif}
.app-shell{position:fixed;inset:0;overflow:hidden;max-width:520px;margin:0 auto;background:var(--bg)}
.smoke-bg{position:absolute;inset:0;background:url(assets/smoke_bg.jpg) center/cover;filter:grayscale(.55) brightness(.7)}
.smoke-bg:after{content:"";position:absolute;inset:0;background:radial-gradient(120% 70% at 70% 30%,transparent 0,rgba(10,10,11,.55) 70%),linear-gradient(180deg,rgba(10,10,11,.35),rgba(10,10,11,.15) 40%,rgba(10,10,11,.88))}
.grain{position:absolute;inset:0;pointer-events:none;opacity:.08;z-index:60;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>")}
.screen{position:absolute;inset:0;display:none;flex-direction:column;overflow:hidden}
.screen.active{display:flex}
.scroll{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:0 16px;position:relative;z-index:5}
.lbl{font:600 11px 'Barlow Condensed';letter-spacing:2px;text-transform:uppercase;color:var(--dim)}
.lbl.ok{color:var(--ok)}.lbl.light{color:#cfccc3}.lbl.tap{cursor:pointer}.lbl.dim{opacity:.7}
.topbar{position:relative;z-index:6;display:flex;justify-content:space-between;align-items:center;padding:calc(var(--st) + 12px) 16px 8px}
.chips{display:flex;gap:6px}
.logo{display:flex;align-items:center;gap:7px}
.logo b{background:var(--red);color:#fff;font:700 17px 'Oswald';padding:1px 7px 2px;letter-spacing:2px;clip-path:polygon(0 0,100% 0,100% 72%,86% 100%,0 100%)}
.logo span{font:500 11px 'Oswald';letter-spacing:4px;color:var(--dim)}
.chip{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--line);background:rgba(15,15,16,.72);padding:4px 8px;font:600 12px 'Barlow Condensed';letter-spacing:1px;text-transform:uppercase;white-space:nowrap}
.chip.red-edge{border-left:2px solid var(--red)}
.chip.small{font-size:11px;padding:3px 6px}
.back{font:700 14px 'Oswald';letter-spacing:2px;padding:6px 10px;border:1px solid var(--line);background:rgba(15,15,16,.72)}
.title-bar{font:600 14px 'Oswald';letter-spacing:4px;display:flex;align-items:center;gap:9px;margin:4px 0 12px}
.title-bar:before{content:"";width:3px;height:15px;background:var(--tan)}
.sec-title{font:700 34px 'Oswald';letter-spacing:4px}
.panel{background:var(--panel);border:1px solid var(--line);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}
.sh{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:6px}
.sh .t{font:600 13px 'Oswald';letter-spacing:3px}
.sh.tight{margin-bottom:2px}
.lvbar{height:3px;background:rgba(255,255,255,.15);position:relative}.lvbar i{position:absolute;left:0;top:0;bottom:0;background:var(--txt)}
img.av{object-fit:cover;filter:grayscale(.3) contrast(1.06) brightness(.96)}
.you{background:var(--red);color:#fff;font:700 10px 'Barlow Condensed';letter-spacing:1.5px;padding:1px 5px;margin-left:6px;vertical-align:middle}
.cta{position:relative;z-index:7;display:flex;align-items:center;justify-content:space-between;height:56px;padding:0 18px;color:#fff;width:100%;clip-path:polygon(0 0,100% 0,100% 70%,96% 100%,0 100%)}
.cta.red{background:var(--red)}
.cta b{font:700 24px 'Oswald';letter-spacing:4px;white-space:nowrap}
.cta span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-left:10px}
.cta span{font:600 12px 'Barlow Condensed';letter-spacing:1.5px;opacity:.92}
.cta.locked{background:#3a2a26;color:#cfc6bd}
.cta:disabled{opacity:.6}
.btn{flex:1;height:52px;display:grid;place-items:center;font:700 17px 'Oswald';letter-spacing:3px;border:1px solid var(--line);background:rgba(16,16,17,.88)}
.btn.tan{background:var(--tan);color:#151515;border:0;flex:1.5}
.foot-btns{position:absolute;left:16px;right:16px;bottom:calc(var(--sb) + 16px);display:flex;gap:10px;z-index:8}
.form-error{color:#ff8b74;font:600 14px 'Barlow Condensed';letter-spacing:.5px;min-height:18px;margin:6px 0}
.toast{position:absolute;left:50%;top:calc(var(--st) + 60px);transform:translate(-50%,-20px);opacity:0;transition:.25s;z-index:90;background:rgba(12,12,13,.94);border:1px solid var(--line);border-left:3px solid var(--tan);padding:8px 14px;font:600 14px 'Barlow Condensed';letter-spacing:.8px;max-width:90%;text-align:center;pointer-events:none}
.toast.show{opacity:1;transform:translate(-50%,0)}

/* ---------- onboarding ---------- */
.onboard-wrap{position:relative;z-index:5;flex:1;display:flex;flex-direction:column;padding:16px 22px calc(var(--sb) + 20px);overflow-y:auto}
.onboard-sub{font:500 15px 'Barlow Condensed';color:var(--dim);letter-spacing:.5px;margin:4px 0 18px}
.selfie-card{display:flex;justify-content:center;margin-bottom:16px}
.selfie-outer-box{position:relative}
.selfie-ring-wrap{position:relative;width:min(56vw,230px);height:min(56vw,230px);background:rgba(255,255,255,.04);border:1px solid var(--line);overflow:hidden;cursor:pointer}
.selfie-ring-wrap video,.selfie-ring-wrap img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.selfie-ring-wrap video{transform:scaleX(-1)}
.selfie-ring-wrap img:not([src]),.selfie-ring-wrap img[src=""]{display:none}
.selfie-ring-wrap .corner{position:absolute;width:22px;height:22px;border-color:var(--tan);border-style:solid;border-width:0;z-index:3}
.corner.tl{top:6px;left:6px;border-top-width:2px;border-left-width:2px}.corner.tr{top:6px;right:6px;border-top-width:2px;border-right-width:2px}
.corner.bl{bottom:6px;left:6px;border-bottom-width:2px;border-left-width:2px}.corner.br{bottom:6px;right:6px;border-bottom-width:2px;border-right-width:2px}
.selfie-live-tap-hint{position:absolute;left:0;right:0;bottom:12px;text-align:center;z-index:4;font:700 13px 'Barlow Condensed';letter-spacing:3px;color:#fff;text-shadow:0 1px 4px #000}
.selfie-ring-wrap .ph-empty{position:absolute;inset:0;display:grid;place-items:center;font:600 13px 'Barlow Condensed';letter-spacing:2px;color:var(--dim);text-align:center;padding:20px}
.avatar-pencil-btn{position:absolute;right:-12px;bottom:-12px;width:42px;height:42px;background:var(--tan);display:grid;place-items:center;font-size:18px;z-index:5;clip-path:polygon(0 0,100% 0,100% 75%,75% 100%,0 100%)}
.avatar-picker-menu{position:absolute;right:-12px;top:calc(100% + 36px);z-index:20;background:rgba(14,14,15,.97);border:1px solid var(--line);min-width:190px}
.picker-menu-item{display:block;width:100%;text-align:left;padding:12px 14px;font:600 16px 'Barlow Condensed';letter-spacing:.8px;border-bottom:1px solid var(--line)}
.input-group{margin-top:8px}
.text-input{width:100%;margin-top:6px;height:64px;background:rgba(14,14,15,.85);border:1px solid var(--line);border-left:3px solid var(--tan);color:var(--txt);font:700 38px 'Oswald';letter-spacing:12px;text-transform:uppercase;padding:0 16px;outline:none;user-select:text;-webkit-user-select:text}
.text-input::placeholder{color:rgba(236,233,225,.18)}
#onboarding-submit-btn{margin-top:auto}

/* ---------- main menu ---------- */
.hero-op{position:absolute;right:-60px;top:calc(var(--st) + 40px);width:330px;height:460px;background-position:center top;background-size:cover;filter:grayscale(.4) contrast(1.05) brightness(.86);-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 38%),linear-gradient(0deg,transparent 0,#000 30%);-webkit-mask-composite:source-in;mask-image:linear-gradient(90deg,transparent 0,#000 38%);z-index:1;pointer-events:none}
.hero-op.small{width:270px;height:330px;right:-30px;opacity:.75}
#view-lobby{padding-bottom:calc(var(--sb) + 14px)}
.menu-list{position:relative;z-index:5;width:200px;margin:2px 0 0 16px}
.mi{display:flex;align-items:center;gap:10px;padding:6px 11px;margin-bottom:4px;background:linear-gradient(90deg,rgba(18,18,19,.84),rgba(18,18,19,.35));border-left:3px solid transparent;font:600 19px 'Oswald';letter-spacing:2px;text-transform:uppercase;color:#cfccc3;cursor:pointer}
.mi small{display:block;font:500 10.5px 'Barlow Condensed';letter-spacing:1.4px;color:var(--dim);margin-top:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:150px}
.mi.on{background:linear-gradient(90deg,rgba(185,165,119,.95),rgba(185,165,119,.55));color:#141414;border-left-color:#fff;font-size:25px;padding:8px 11px}
.mi.on small{color:#2a271f}
.mi .n{font:600 11px 'Barlow Condensed';color:var(--dim);width:14px}.mi.on .n{color:#2a271f}
.menu-lower{position:relative;z-index:5;flex:1;display:flex;flex-direction:column;justify-content:flex-end;gap:9px;padding:0 16px 10px;min-height:0}
.op-card{display:flex;gap:11px;align-items:center;padding:9px 11px;background:rgba(16,16,17,.88);border:1px solid var(--line);border-left:3px solid var(--red)}
.op-card img{width:54px;height:54px;flex:0 0 54px}
.op-card .mid{flex:1;min-width:0}
.op-card .nm{font:700 21px 'Oswald';letter-spacing:1px;line-height:1;display:flex;align-items:center}
.op-card .nm .edit{margin-left:auto;font-size:14px;padding:2px 4px}
.op-card .rk{font:600 12px 'Barlow Condensed';letter-spacing:1.5px;color:var(--tan);text-transform:uppercase;margin-top:2px}
.op-card .xp{display:flex;justify-content:space-between;font:600 11px 'Barlow Condensed';letter-spacing:1px;color:var(--dim);margin:5px 0 3px}
.op-card .lvl{text-align:center;border-left:1px solid var(--line);padding-left:11px}
.op-card .lvl b{display:block;font:700 28px 'Oswald';line-height:1}
.car{display:flex;gap:8px;overflow-x:auto;scroll-snap-type:x mandatory;margin-right:-16px;padding-right:16px;scrollbar-width:none}
.car::-webkit-scrollbar{display:none}
.gm{flex:0 0 112px;height:104px;position:relative;background:linear-gradient(160deg,#2a2b2c,#141415);border:1px solid var(--line);padding:9px;display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden;scroll-snap-align:start;cursor:pointer}
.gm.on{flex-basis:138px;border:1.5px solid var(--tan);box-shadow:0 0 0 3px rgba(185,165,119,.15)}
.gm .ico{position:absolute;top:8px;right:8px;font-size:20px;opacity:.9}
.gm b{font:700 15px 'Oswald';letter-spacing:1px;text-transform:uppercase;line-height:1.05}
.gm p{font:500 10.5px 'Barlow Condensed';color:var(--dim);letter-spacing:.4px;margin-top:2px;line-height:1.12}
.gm .sel{position:absolute;top:9px;left:9px;background:var(--tan);color:#141414;font:700 9px 'Barlow Condensed';letter-spacing:1.5px;padding:1px 5px}
.car-dots{display:none}
.squad-panel{padding:9px 11px}
.squad{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:4px;margin-top:8px}
.pl{min-width:0;text-align:center;position:relative;cursor:pointer}
.pl .ph{width:100%;aspect-ratio:1/1;position:relative;border:2px solid rgba(236,233,225,.28);background:#222}
.pl .ph img{width:100%;height:100%;display:block;object-fit:cover}
.pl:active .ph{filter:brightness(1.15)}
.pl.me .ph{border-color:var(--red);box-shadow:0 0 0 1px var(--red),0 0 10px rgba(229,43,18,.35)}
.pl .nm{font:700 19px/1 'Oswald';letter-spacing:.5px;margin-top:6px;white-space:nowrap;overflow:hidden}
.pl.me .nm{color:var(--red)}
.pl .tm{font:700 10.5px/1 'Barlow Condensed';letter-spacing:.8px;color:var(--dim);white-space:nowrap;margin-top:3px}
.pl .tm.s{color:#e0907a}.pl .tm.h{color:var(--ok)}
.pl .lv{position:absolute;bottom:-2px;right:-2px;background:#111;font:700 11px/1.2 'Barlow Condensed';padding:1px 4px;border-left:1px solid var(--line);border-top:1px solid var(--line)}
.pl .rd{position:absolute;top:-4px;left:-4px;width:11px;height:11px;border-radius:50%;background:var(--ok);border:2px solid #111;z-index:2}
.pl .rd.no{background:#6b4a40}
.pl.inv{cursor:default}
.pl.inv .ph{border-style:dashed;display:grid;place-items:center;background:rgba(255,255,255,.03);font:300 26px 'Oswald';color:var(--dim)}
.pl.pending .ph{border-style:dashed;border-color:var(--tan)}
.pl.pending img{opacity:.55}
.pl .swap{cursor:pointer}
.squad-foot{display:flex;justify-content:space-between;margin-top:8px}
.play-btn{margin:0 16px;width:auto}

/* ---------- loadout ---------- */
.kits{width:150px;margin-bottom:14px;position:relative;z-index:5}
.kit{padding:7px 9px;font:600 14px 'Oswald';letter-spacing:1px;color:#bdbab1;border-left:2px solid transparent;margin-bottom:3px;background:rgba(15,15,16,.6);cursor:pointer;text-transform:uppercase}
.kit i{font-style:normal;color:var(--dim);font-size:11px;margin-right:7px}
.kit.on{background:rgba(185,165,119,.22);border-left-color:var(--tan);color:#fff}
.row{border-bottom:1px solid var(--line);padding:9px 11px;position:relative}
.row:last-child{border-bottom:0}
.row .nm{font:700 18px 'Oswald';letter-spacing:.5px;text-transform:uppercase;line-height:1.05}
.row .sub{font:600 12px 'Barlow Condensed';color:var(--tan);letter-spacing:.5px}
.row .desc{font:500 12.5px 'Barlow Condensed';color:var(--dim);letter-spacing:.3px;margin-top:2px;line-height:1.2}
.row .rt{position:absolute;right:11px;top:10px;font:600 11px 'Barlow Condensed';letter-spacing:1px;color:var(--dim)}
.row .ic{font-size:24px;float:right;margin-left:8px}
.lgrid{display:grid;grid-template-columns:1fr 104px}
.streaks{border-left:1px solid var(--line);padding:6px 8px}
.st{display:flex;flex-direction:column;align-items:center;padding:7px 0;border-bottom:1px solid var(--line);text-align:center}
.st:last-child{border-bottom:0}
.st .e{font-size:20px;height:26px}
.st .k{font:700 13px 'Oswald';letter-spacing:.5px;margin-top:1px}
.st .d{font:600 10px 'Barlow Condensed';letter-spacing:1px;color:var(--dim);text-transform:uppercase}
.st.locked{opacity:.4}
.opts{display:flex;gap:6px;flex-wrap:wrap;margin-top:7px}
.opt{flex:1 1 30%;min-width:88px;padding:7px 6px;border:1px solid var(--line);background:rgba(255,255,255,.03);text-align:center;cursor:pointer;position:relative}
.opt .e{font-size:20px;display:block}
.opt span{display:block;font:600 11.5px 'Barlow Condensed';letter-spacing:.6px;text-transform:uppercase;margin-top:2px;color:#d8d5cc}
.opt small{display:block;font:500 10px 'Barlow Condensed';color:var(--dim);letter-spacing:.3px;line-height:1.1;margin-top:2px}
.opt.on{border-color:var(--tan);background:rgba(185,165,119,.18)}
.opt.locked{opacity:.42;cursor:not-allowed}
.opt .lk{position:absolute;top:3px;right:4px;font:700 9px 'Barlow Condensed';color:var(--tan);letter-spacing:1px}
.row-h{font:600 11px 'Barlow Condensed';letter-spacing:2px;color:var(--dim);text-transform:uppercase}

/* ---------- operators ---------- */
.ops-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.opc{position:relative;height:220px;border:1px solid var(--line);background:#1b1c1d;overflow:hidden}
.opc img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 20%;filter:grayscale(.35) contrast(1.05) brightness(.9)}
.opc:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(10,10,11,.95))}
.opc .info{position:absolute;left:10px;right:10px;bottom:9px;z-index:2}
.opc .nm{font:700 24px 'Oswald';letter-spacing:2px;line-height:1}
.opc .rk{font:600 11px 'Barlow Condensed';letter-spacing:1.5px;color:var(--tan);text-transform:uppercase}
.opc .st2{display:flex;gap:8px;font:600 11px 'Barlow Condensed';letter-spacing:1px;color:var(--dim);margin-top:4px}
.opc .lvtag{position:absolute;top:8px;right:8px;z-index:2;background:rgba(10,10,11,.8);border:1px solid var(--line);font:700 12px 'Oswald';padding:1px 6px}
.opc .tmtag{position:absolute;top:8px;left:8px;z-index:2;font:700 10px 'Barlow Condensed';letter-spacing:1.5px;padding:2px 6px;background:rgba(10,10,11,.8)}
.opc.me{border-color:var(--red)}
.opc.pending img{opacity:.5}

/* ---------- leaderboard ---------- */
.lb-head,.lb-row{display:grid;grid-template-columns:26px 1fr 38px 38px 38px 40px;align-items:center;gap:4px}
.lb-head{font:600 10px 'Barlow Condensed';letter-spacing:1.5px;color:var(--dim);padding:0 10px 6px;text-align:center}
.lb-head span:nth-child(2){text-align:left}
.lb-row{background:var(--panel);border:1px solid var(--line);padding:8px 10px;margin-bottom:6px;text-align:center;font:700 17px 'Oswald'}
.lb-row.top{border-left:3px solid var(--tan)}
.lb-row.me{border-left:3px solid var(--red)}
.lb-row .pos{font:700 18px 'Oswald';color:var(--tan)}
.lb-row .who{display:flex;align-items:center;gap:8px;text-align:left;min-width:0}
.lb-row .who img{width:38px;height:38px;flex:0 0 38px}
.lb-row .who b{display:block;font:700 18px 'Oswald';letter-spacing:1px;line-height:1}
.lb-row .who small{display:block;font:600 10.5px 'Barlow Condensed';letter-spacing:1px;color:var(--dim);text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lb-row .w{color:var(--tan)}

/* ---------- reels ---------- */
.reel{display:flex;gap:10px;background:var(--panel);border:1px solid var(--line);padding:8px;margin-bottom:8px;cursor:pointer}
.reel .thumb{width:84px;height:120px;flex:0 0 84px;background:#222 center/cover;position:relative}
.reel .thumb:after{content:"▶";position:absolute;inset:0;display:grid;place-items:center;font-size:22px;color:#fff;text-shadow:0 0 8px #000}
.reel .meta{flex:1;min-width:0}
.reel .meta b{font:700 18px 'Oswald';letter-spacing:1px;text-transform:uppercase;display:block}
.reel .meta .w{font:600 13px 'Barlow Condensed';color:var(--tan);letter-spacing:1px;text-transform:uppercase}
.reel .meta p{font:500 12.5px 'Barlow Condensed';color:var(--dim);margin-top:3px;line-height:1.2}
.reel .meta .yt{display:inline-block;margin-top:6px;font:600 12px 'Barlow Condensed';color:var(--txt);border:1px solid var(--line);padding:2px 7px;letter-spacing:1px}
.empty{font:500 15px 'Barlow Condensed';color:var(--dim);text-align:center;padding:40px 10px;letter-spacing:.5px}

/* ---------- in-game ---------- */
#view-game{background:#0e0f10}
.camera-half{position:relative;height:56%;overflow:hidden;background:#000;flex:0 0 auto}
.camera-half #camera-fallback-img,.camera-half video,.camera-half canvas{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
#camera-fallback-img{filter:saturate(.7) contrast(1.05) brightness(.9)}
#live-camera-video{transform-origin:center center}
#frozen-frame-canvas{display:none;z-index:2}
.scope-vignette{position:absolute;inset:0;z-index:3;pointer-events:none;background:radial-gradient(70% 55% at 50% 52%,transparent 55%,rgba(0,0,0,.6)),linear-gradient(180deg,rgba(0,0,0,.45),transparent 20%,transparent 78%,rgba(14,15,16,1))}
.reticle{position:absolute;left:50%;top:54%;width:180px;height:180px;transform:translate(-50%,-50%);z-index:4;pointer-events:none}
.lens-hit-area{position:absolute;left:50%;top:54%;width:190px;height:190px;transform:translate(-50%,-50%);z-index:6;border-radius:50%;cursor:pointer}
.center-bare-poop{position:absolute;left:50%;top:54%;transform:translate(-50%,-50%);font-size:46px;z-index:5;pointer-events:none;opacity:.9}
.wheel-lines{position:absolute;inset:0;width:100%;height:100%;z-index:7;pointer-events:none}
#radial-faces-container{position:absolute;inset:0;z-index:8;pointer-events:none}
.rf{position:absolute;width:66px;transform:translate(-50%,-50%);text-align:center;pointer-events:auto;cursor:pointer;transition:transform .15s}
.rf .ph{width:58px;height:58px;margin:0 auto;border:2px solid rgba(236,233,225,.55);background:#222;position:relative}
.rf .ph img{width:100%;height:100%;object-fit:cover;display:block}
.rf .nm{font:700 13px 'Oswald';letter-spacing:1px;margin-top:3px;text-shadow:0 1px 3px #000;background:rgba(10,10,11,.7);display:inline-block;padding:0 5px}
.rf.sel .ph{border-color:var(--red);box-shadow:0 0 0 3px rgba(229,43,18,.35)}
.rf.sel{transform:translate(-50%,-50%) scale(1.08)}
.rf.out{opacity:.38;pointer-events:none}
.rf.out .ph:after{content:"×";position:absolute;inset:0;display:grid;place-items:center;color:var(--red);font:700 48px 'Oswald'}
.center-submit-btn{position:absolute;left:50%;top:54%;transform:translate(-50%,-50%);z-index:9;display:none;width:96px;height:96px;border-radius:50%;background:var(--red);color:#fff;font:700 15px 'Oswald';letter-spacing:2px;box-shadow:0 0 0 4px rgba(229,43,18,.25)}
.center-submit-btn.show{display:block}
.center-submit-btn:disabled{background:#4b2a24;color:#b9a9a0}
.retake-pill{position:absolute;left:50%;bottom:12px;transform:translateX(-50%);z-index:9;display:none;background:rgba(10,10,11,.85);border:1px solid var(--line);padding:6px 14px;font:700 13px 'Oswald';letter-spacing:2px;cursor:pointer}
.retake-pill.show{display:block}
.rec-clip-pill{position:absolute;left:50%;top:calc(var(--st) + 64px);transform:translateX(-50%);z-index:9;display:none;color:#fff;background:rgba(229,43,18,.85);font:700 11px 'Barlow Condensed';letter-spacing:2px;padding:2px 8px}
.rec-clip-pill.show{display:block}
.hud{position:absolute;top:calc(var(--st) + 10px);left:12px;right:12px;display:flex;justify-content:space-between;align-items:flex-start;z-index:10;pointer-events:none}
.hud-l{display:flex;flex-direction:column;gap:3px}
.role{font:700 11px 'Barlow Condensed';letter-spacing:2px;padding:2px 7px;display:inline-block;align-self:flex-start}
.role.hunter{background:#9b2f1f}.role.ghost{background:#4f5a3a}.role.out{background:#3a3a3a}
.timer{text-align:center;background:rgba(10,10,11,.72);border:1px solid var(--line);padding:3px 11px}
.timer .lbl{font-size:9px}
.timer b{font:700 22px 'Oswald';letter-spacing:2px;display:block;line-height:1.1}
.feed{position:absolute;top:calc(var(--st) + 62px);left:12px;z-index:10;display:flex;flex-direction:column;gap:4px;pointer-events:none;max-width:62%}
.fi{display:flex;align-items:center;gap:5px;background:rgba(10,10,11,.66);padding:3px 7px;font:600 12px 'Barlow Condensed';letter-spacing:.5px;animation:fiin .3s ease-out}
.fi .a{color:#ff8b74}.fi .t{color:#d9e7b9}.fi .k{color:var(--tan)}
@keyframes fiin{from{opacity:0;transform:translateX(-10px)}to{opacity:1;transform:none}}
.zoom{position:absolute;right:12px;top:calc(var(--st) + 62px);z-index:10;display:flex;flex-direction:column;gap:5px;align-items:flex-end}
.zoom span{font:700 12px 'Barlow Condensed';letter-spacing:1px;padding:3px 8px;background:rgba(10,10,11,.66);border:1px solid var(--line);cursor:pointer}
.zoom span.on{background:var(--tan);color:#141414;border-color:var(--tan)}
.corner-moon-btn{position:absolute;right:12px;bottom:14px;z-index:10;width:36px;height:36px;display:grid;place-items:center;background:rgba(10,10,11,.66);border:1px solid var(--line);font-size:17px;cursor:pointer}
.kill-banner{position:absolute;left:0;right:0;top:46%;z-index:20;text-align:center;opacity:0;transform:scale(1.15);transition:opacity .2s,transform .25s;pointer-events:none}
.kill-banner.show{opacity:1;transform:none}
.kill-banner .strip{margin:0 auto;width:100%;padding:13px 0 11px;background:linear-gradient(90deg,transparent,rgba(12,12,13,.93) 12%,rgba(12,12,13,.93) 88%,transparent);border-top:1px solid rgba(185,165,119,.55);border-bottom:1px solid rgba(185,165,119,.55);position:relative}
.kill-banner .sk{position:absolute;left:50%;top:-24px;width:44px;height:44px;background:#141414;border:2px solid var(--red);display:grid;place-items:center;transform:translateX(-50%) rotate(45deg)}
.kill-banner .sk span{transform:rotate(-45deg);font-size:20px}
.kill-banner h1{font:700 44px 'Oswald';letter-spacing:5px;line-height:1;margin-top:12px;text-shadow:0 0 22px rgba(229,43,18,.35)}
.kill-banner h2{font:600 14px 'Oswald';letter-spacing:4px;color:var(--tan);margin-top:3px}
.kill-banner .who{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:9px;font:600 15px 'Oswald';letter-spacing:1px}
.kill-banner .who img{width:28px;height:28px;object-fit:cover}
.kill-banner .who .me{color:var(--red)}
.kill-banner .who .xp{background:var(--tan);color:#141414;font:700 13px 'Barlow Condensed';letter-spacing:1px;padding:1px 7px}
.cap{position:absolute;left:12px;right:12px;bottom:58px;z-index:21;display:flex;align-items:center;gap:8px;background:rgba(10,10,11,.88);border-left:3px solid var(--olive);padding:7px 10px;opacity:0;transform:translateY(8px);transition:.25s;pointer-events:none}
.cap.show{opacity:1;transform:none}
.cap .r{font:700 11px 'Barlow Condensed';letter-spacing:2px;color:var(--olive);background:rgba(126,132,96,.2);padding:2px 5px;white-space:nowrap}
.cap p{font:500 14.5px 'Barlow Condensed';letter-spacing:.3px;font-style:italic;color:#e3e0d7;line-height:1.15}
.wave{display:flex;gap:2px;align-items:center;height:16px}.wave i{width:3px;height:6px;background:var(--olive);display:block}
.cap.show .wave i{animation:wv .6s ease-in-out infinite alternate}
.wave i:nth-child(2){animation-delay:.1s!important}.wave i:nth-child(3){animation-delay:.2s!important}.wave i:nth-child(4){animation-delay:.3s!important}.wave i:nth-child(5){animation-delay:.15s!important}
@keyframes wv{from{height:4px}to{height:16px}}
.map-half{position:relative;flex:1;min-height:0;background:#0e0f10}
.radar-wrap{position:absolute;left:50%;top:6px;transform:translateX(-50%);height:calc(100% - 78px - var(--sb));aspect-ratio:1;max-width:62%}
.radar{width:100%;height:100%;display:block}
.radar-state{position:absolute;left:0;right:0;bottom:-2px;text-align:center;font:700 10px 'Barlow Condensed';letter-spacing:2px;color:var(--red)}
.side{position:absolute;top:8px;z-index:4;display:flex;flex-direction:column;gap:6px}
.side.left{left:8px}.side.right{right:8px}
.box{background:rgba(22,23,24,.92);border:1px solid var(--line);padding:4px 7px;width:76px;white-space:nowrap;overflow:hidden}
.box .lbl{font-size:9px;letter-spacing:1.3px}
.box b{display:block;font:700 16px 'Oswald';line-height:1.1}
.box b.radio-b{font:600 11px 'Barlow Condensed';overflow:hidden;text-overflow:ellipsis}
.box.jam{border-color:rgba(229,43,18,.55)}.box.jam b{color:#ff8b74}
.box.tap{cursor:pointer}
.actbar{position:absolute;left:10px;right:10px;bottom:calc(var(--sb) + 10px);height:52px;display:flex;gap:6px;z-index:5}
.ab{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;background:rgba(22,23,24,.94);border:1px solid var(--line);font:700 12px 'Oswald';letter-spacing:1.2px;position:relative;cursor:pointer;min-width:0}
.ab .e{font-size:16px;line-height:1}
.ab small{font:600 9px 'Barlow Condensed';letter-spacing:1px;color:var(--dim)}
.ab.main{flex:1.5;background:var(--red);border:0;font-size:16px;letter-spacing:3px}
.ab.main small{color:#ffd9cf}
.ab.used,.ab:disabled{opacity:.38}
.ab.ready{border-color:var(--tan);box-shadow:inset 0 0 0 1px var(--tan)}
.ab.ready small{color:var(--tan)}
.stealth-overlay{position:absolute;inset:0;background:#000;z-index:100;display:none;flex-direction:column;align-items:center;justify-content:center;gap:12px;text-align:center}
.stealth-overlay.show{display:flex}

/* ---------- summary ---------- */
.sum-hdr{text-align:center;margin:6px 0 12px}
.sum-hdr .lbl{letter-spacing:4px}
.sum-hdr h1{font:700 40px 'Oswald';letter-spacing:3px;line-height:1.05;margin-top:3px}
.sum-hdr h1 em{font-style:normal;color:var(--tan)}
.sum-hdr p{font:600 14px 'Barlow Condensed';letter-spacing:1.5px;color:var(--dim);margin-top:3px}
.lvwrap{display:flex;align-items:center;gap:13px;padding:12px;background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--red);margin-bottom:10px}
.lvwrap img{width:72px;height:72px;object-position:center 22%;flex:0 0 72px}
.lvwrap .r{flex:1;min-width:0}
.lvnums{display:flex;align-items:center;gap:10px;font:700 34px 'Oswald';line-height:1}
.lvnums .from{color:var(--dim);font-size:26px}.lvnums .arr{color:var(--tan);font-size:20px}
.lvnums .to{color:#fff;text-shadow:0 0 18px rgba(185,165,119,.6)}
.up{display:inline-block;background:var(--tan);color:#141414;font:700 11px 'Barlow Condensed';letter-spacing:2px;padding:1px 7px;margin-bottom:5px}
.bar2{height:7px;background:rgba(255,255,255,.12);margin-top:8px;position:relative}
.bar2 i{position:absolute;top:0;bottom:0;left:0}
.xprow{display:flex;justify-content:space-between;font:600 11px 'Barlow Condensed';letter-spacing:1px;color:var(--dim);margin-top:4px}
.bd{margin-bottom:10px}
.bd .t{padding:8px 12px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between}
.li{display:flex;align-items:center;padding:8px 12px;border-bottom:1px solid var(--line);gap:10px}
.li .e{width:30px;height:30px;display:grid;place-items:center;font-size:17px;background:rgba(255,255,255,.05);border:1px solid var(--line)}
.li .n{flex:1;font:600 16px 'Oswald';letter-spacing:.5px;text-transform:uppercase}
.li .n small{display:block;font:500 11px 'Barlow Condensed';color:var(--dim);letter-spacing:1px;text-transform:none}
.li .v{font:700 18px 'Oswald';color:var(--tan)}
.tot{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;background:rgba(185,165,119,.12)}
.tot b{font:700 26px 'Oswald';color:#fff}
.unl{display:flex;gap:12px;align-items:center;padding:11px;background:linear-gradient(120deg,rgba(126,132,96,.45),rgba(20,20,21,.9) 60%);border:1.5px solid var(--tan);margin-bottom:10px}
.unl .art{width:62px;height:62px;flex:0 0 62px;display:grid;place-items:center;font-size:30px;background:radial-gradient(circle,rgba(185,165,119,.35),rgba(0,0,0,.2) 70%);border:1px solid rgba(185,165,119,.5)}
.unl .nm{font:700 20px 'Oswald';letter-spacing:1px;line-height:1.05}
.unl .ds{font:500 12.5px 'Barlow Condensed';color:#d3d0c6;margin-top:2px;line-height:1.2}
.new{background:var(--red);color:#fff;font:700 10px 'Barlow Condensed';letter-spacing:2px;padding:1px 6px}
.mvp{display:flex;justify-content:space-around;margin:4px 0 8px}
.m{width:84px;text-align:center;font:600 11px 'Barlow Condensed';letter-spacing:1px;color:var(--dim)}
.m img{width:40px;height:40px;display:block;margin:0 auto 3px;border:1px solid var(--line);object-fit:cover}
.m b{display:block;color:var(--txt);font:600 13px 'Oswald'}
.sum-reel-status{text-align:center}
.sum-menu-link{position:absolute;left:0;right:0;bottom:calc(var(--sb) + 74px);z-index:8;font:600 12px 'Barlow Condensed';letter-spacing:2px;color:var(--dim);text-align:center}

/* ---------- sheets ---------- */
.sheet{position:absolute;inset:0;z-index:80;background:rgba(0,0,0,.6);display:none;align-items:flex-end}
.sheet.show{display:flex}
.sheet-card{width:100%;background:#17181a;border-top:2px solid var(--tan);padding:14px 16px calc(var(--sb) + 18px)}
.sheet .x{font:400 28px 'Oswald';line-height:1;padding:0 6px}
.rule-row{display:flex;justify-content:space-between;align-items:center;padding:11px 0;border-bottom:1px solid var(--line);font:600 16px 'Barlow Condensed';letter-spacing:.8px}
.rule-select{background:#222;color:var(--txt);border:1px solid var(--line);font:600 15px 'Barlow Condensed';padding:5px 8px}
.vol{width:150px;accent-color:var(--tan)}
.mini{border:1px solid var(--line);padding:5px 12px;font:700 13px 'Oswald';letter-spacing:2px;background:#222}
.reel-card{padding-bottom:calc(var(--sb) + 12px)}
#reel-player-video{width:100%;max-height:72vh;background:#000;display:block;margin-top:8px}
#reel-player-yt{width:min(100%,calc(72vh * 9 / 16));aspect-ratio:9/16;max-height:72vh;border:0;background:#000;margin:8px auto 0}

@media (max-height:760px){
  .mi{padding:4px 10px;font-size:17px}.mi.on{font-size:21px;padding:6px 10px}
  .gm{height:88px}.hero-op{height:380px}
  .op-card img{width:46px;height:46px;flex-basis:46px}
}
.foot-btns .btn{white-space:nowrap;font-size:18px;letter-spacing:2px}

/* ============ SERVICE RECORD ============ */
.sr{position:absolute;inset:0;z-index:78;background:var(--bg);display:none;flex-direction:column;overflow:hidden}
.sr.show{display:flex;animation:srIn .22s ease-out}
@keyframes srIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.sr-hero{position:absolute;left:0;right:0;top:0;height:330px;background:#1b1c1d center 22%/cover no-repeat;filter:grayscale(.45) brightness(.55) contrast(1.05)}
.sr-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,21,22,.2),rgba(20,21,22,.65) 55%,var(--bg))}
.sr .scroll{padding-bottom:calc(var(--sb) + 28px)}
.sr-id{display:flex;gap:14px;align-items:flex-end;margin:56px 0 14px}
.sr-pt{position:relative;width:118px;height:138px;flex:0 0 118px;border:1.5px solid var(--tan);background:#222;clip-path:polygon(0 0,100% 0,100% 88%,88% 100%,0 100%)}
.sr-pt img{width:100%;height:100%;object-fit:cover;object-position:center 20%;display:block}
.sr-pt .edit{position:absolute;right:4px;bottom:6px;width:30px;height:30px;display:grid;place-items:center;background:rgba(10,10,11,.85);border:1px solid var(--line);font-size:14px}
.sr-nm{font:700 46px 'Oswald';letter-spacing:4px;line-height:.95}
.sr-rk{font:600 14px 'Barlow Condensed';letter-spacing:2px;color:var(--tan);text-transform:uppercase;margin-top:4px}
.sr-tags{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap}
.sr-tags .chip.s{color:#d0866f}.sr-tags .chip.h{color:var(--ok)}
.sr-lv{display:flex;align-items:center;gap:12px;padding:10px 12px;margin-bottom:16px}
.sr-lv .box{width:54px;height:54px;flex:0 0 54px;display:grid;place-items:center;border:1.5px solid var(--tan);text-align:center}
.sr-lv .box b{display:block;font:700 24px 'Oswald';line-height:1}
.sr-lv .box span{font:600 9px 'Barlow Condensed';letter-spacing:2px;color:var(--dim)}
.sr-lv .r{flex:1;min-width:0}
.sr-lv .xprow{display:flex;justify-content:space-between;font:600 11.5px 'Barlow Condensed';letter-spacing:1px;color:var(--dim);margin-top:6px;text-transform:uppercase}
.sr-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:18px}
.sr-stat{background:var(--panel);border:1px solid var(--line);padding:9px 8px 8px;text-align:center}
.sr-stat b{display:block;font:700 24px 'Oswald';line-height:1.05}
.sr-stat span{font:600 10px 'Barlow Condensed';letter-spacing:1.5px;color:var(--dim);text-transform:uppercase}
.sr-stat.hl b{color:var(--tan)}
.sr-sec{display:flex;justify-content:space-between;align-items:center}
.sr-sec .cnt{font:700 13px 'Oswald';letter-spacing:2px;color:var(--tan)}
.sr-medals{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:18px}
.md{position:relative;background:var(--panel);border:1px solid var(--line);padding:10px 6px 8px;text-align:center;min-height:150px}
.md .hex{width:52px;height:58px;margin:0 auto 6px;display:grid;place-items:center;font-size:24px;clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%);background:linear-gradient(160deg,#d8c48f,#8a7444)}
.md .hex i{font-style:normal;width:44px;height:50px;display:grid;place-items:center;clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%);background:radial-gradient(circle at 50% 35%,#3a3b3c,#17181a)}
.md b{display:block;font:700 13.5px 'Oswald';letter-spacing:1px;text-transform:uppercase;line-height:1.1}
.md p{font:500 11px 'Barlow Condensed';color:var(--dim);line-height:1.15;margin-top:3px}
.md .when{font:600 10px 'Barlow Condensed';letter-spacing:1.5px;color:var(--ok);margin-top:5px;text-transform:uppercase}
.md.on{border-color:rgba(185,165,119,.55);background:linear-gradient(180deg,rgba(185,165,119,.16),rgba(22,23,24,.85))}
.md.off .hex{background:#3a3b3c;filter:grayscale(1)}
.md.off .hex i{opacity:.45;filter:grayscale(1)}
.md.off b{color:#8d8b84}
.md .pg{height:4px;background:rgba(255,255,255,.1);margin-top:6px;position:relative}
.md .pg i{position:absolute;left:0;top:0;bottom:0;background:var(--tan)}
.md .pn{font:600 10px 'Barlow Condensed';letter-spacing:1px;color:var(--dim);margin-top:3px}
.md .lock{position:absolute;top:5px;right:6px;font-size:10px;opacity:.6}
.sr-lo{margin-bottom:18px}
.sr-lo .li .n small{text-transform:uppercase;letter-spacing:1.5px}
.sr-kit{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:18px}
.sr-kit .k{display:flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--panel);padding:5px 8px;font:600 12px 'Barlow Condensed';letter-spacing:.8px;text-transform:uppercase}
.sr-kit .k.lk{opacity:.5}
.sr-kit .k .lv{font:700 10px 'Oswald';color:var(--tan);letter-spacing:1px}
.sr-ops{margin-bottom:18px}
.sr-op{display:flex;align-items:center;gap:10px;padding:9px 12px;border-bottom:1px solid var(--line)}
.sr-op:last-child{border-bottom:0}
.sr-op .res{width:34px;height:34px;flex:0 0 34px;display:grid;place-items:center;font:700 15px 'Oswald';border:1.5px solid var(--line)}
.sr-op .res.w{border-color:var(--ok);color:var(--ok)}.sr-op .res.l{border-color:var(--red);color:var(--red)}
.sr-op .n{flex:1;min-width:0;font:600 15px 'Oswald';letter-spacing:.5px;text-transform:uppercase}
.sr-op .n small{display:block;font:500 11.5px 'Barlow Condensed';color:var(--dim);letter-spacing:1px;text-transform:none}
.sr-op .play{font:700 11px 'Barlow Condensed';letter-spacing:1.5px;border:1px solid var(--tan);color:var(--tan);padding:4px 8px}
.sr-empty{padding:14px 12px;font:500 13px 'Barlow Condensed';color:var(--dim);letter-spacing:.5px}
.tapface{cursor:pointer}
.unl.medal{background:linear-gradient(120deg,rgba(185,165,119,.38),rgba(20,20,21,.9) 62%);cursor:pointer}
.unl.medal .new{background:var(--tan);color:#141516}

.sr-admin{margin:26px 0 30px;text-align:center}
.sr-remove{background:transparent;border:1px solid rgba(229,43,18,.55);color:#e9897a;font:600 12px 'Barlow Condensed';letter-spacing:2px;text-transform:uppercase;padding:9px 18px}
.sr-remove:active{background:rgba(229,43,18,.15)}

/* update strip: sits in its own slot above the header; content is pushed down (no overlap) */
body.has-update{--st:calc(env(safe-area-inset-top,0px) + 40px)}
.update-banner{position:fixed;left:0;right:0;top:env(safe-area-inset-top,0px);height:40px;z-index:85;display:flex;align-items:center;gap:10px;padding:0 12px 0 16px;background:#0E0E0F;border:0;border-bottom:1px solid var(--line);color:var(--txt);text-align:left;transform:translateY(-100%);opacity:0;pointer-events:none;transition:.25s}
.update-banner.show{transform:none;opacity:1;pointer-events:auto}
.update-banner .ub-dot{width:8px;height:8px;border-radius:50%;background:var(--tan);box-shadow:0 0 0 4px rgba(185,165,119,.18);flex:0 0 auto;animation:ubp 1.6s infinite}
.update-banner .ub-t{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.update-banner b{font:700 14px/1 'Oswald';letter-spacing:1.5px}
.update-banner small{font:500 12px/1 'Barlow Condensed';letter-spacing:.6px;color:var(--dim);margin-left:8px}
.update-banner .ub-go{font:700 12px/1 'Barlow Condensed';letter-spacing:1.5px;color:#141516;background:var(--tan);padding:6px 10px}
.update-banner.busy .ub-go{opacity:.6}
@keyframes ubp{50%{box-shadow:0 0 0 7px rgba(185,165,119,0)}}

/* boot loader: matches the iOS startup image (scope dead centre, wordmark below) */
.boot{position:fixed;inset:0;z-index:200;background:#141516;transition:opacity .35s}
.boot.gone{opacity:0;pointer-events:none}
.boot-in{position:absolute;left:50%;top:50%;width:46vw;max-width:300px;aspect-ratio:1;transform:translate(-50%,-50%)}
.boot-in img{display:block;width:100%;height:100%}
.boot-wm{position:absolute;left:50%;top:calc(100% + min(7vw,45px));transform:translateX(-50%);white-space:nowrap;font:700 min(7.5vw,48px)/1 'Oswald';letter-spacing:.12em;color:#F0ECE2}
.boot-wm span{color:#E52B12}
/* while the update strip is showing, tighten the main menu so nothing overlaps on short screens */
body.has-update #view-lobby .mi{padding-top:3px;padding-bottom:3px;margin-bottom:2px}
body.has-update #view-lobby .mi.on{padding-top:5px;padding-bottom:5px}
body.has-update #view-lobby .menu-lower{gap:7px}

/* v17 · play zone, no-go roads, GPS, ping, out of zone */
.rule-pair{display:flex;align-items:center;gap:8px}
.mini.ghost-b{padding:5px 9px;font-size:11px;color:var(--tan);background:transparent}
.sw{position:relative;display:inline-block;width:46px;height:26px}
.sw input{opacity:0;width:0;height:0;position:absolute}
.sw i{position:absolute;inset:0;background:#2a2b2d;border:1px solid var(--line);transition:.2s}
.sw i:before{content:"";position:absolute;width:18px;height:18px;left:3px;top:3px;background:#8a877e;transition:.2s}
.sw input:checked+i{background:rgba(157,179,107,.25);border-color:var(--ok,#9DB36B)}
.sw input:checked+i:before{transform:translateX(20px);background:#9DB36B}
.squad-foot{gap:10px;align-items:center}
.squad-foot .invite-b{color:var(--tan);margin-left:auto}
.squad-foot .invite-b.pulse{color:#ECE9E1;animation:invpulse 1.6s ease-in-out infinite}
@keyframes invpulse{50%{color:var(--red);text-shadow:0 0 8px rgba(229,43,18,.6)}}
.zone-card{padding-top:12px}
.zone-card .t em{font-style:normal;color:var(--red)}
.zone-map-wrap{width:min(100%,360px);margin:6px auto 0;aspect-ratio:1}
.zone-map-wrap svg{width:100%;height:100%}
.zone-legend{display:flex;gap:14px;justify-content:center;align-items:center;margin-top:10px;font:700 11px 'Barlow Condensed';letter-spacing:1.5px;color:#cfccc3}
.zone-legend i{display:inline-block;width:18px;height:4px;margin-right:6px;vertical-align:middle}
.zone-legend .lz{border-top:2px dashed var(--red);height:0}
.zone-legend .lr{background:rgba(229,43,18,.55);height:5px}
.zone-legend .osm{color:#8a877e;font-weight:600;letter-spacing:.5px}
.map-tog{position:absolute;right:7%;top:2px;font:700 10px 'Oswald';letter-spacing:1.5px;padding:3px 7px;background:rgba(22,23,24,.92);border:1px solid var(--line);color:#cfccc3;z-index:3}
.map-tog.on{color:#141516;background:var(--tan);border-color:var(--tan)}
.gps-chip{position:absolute;left:7%;bottom:16px;display:flex;align-items:center;gap:5px;font:700 10px 'Barlow Condensed';letter-spacing:1.2px;padding:3px 7px;background:rgba(22,23,24,.92);border:1px solid var(--line);color:#cfccc3;z-index:3}
.gps-chip i{width:7px;height:7px;border-radius:50%;background:#E52B12}
.gps-chip.ok i{background:#9DB36B;box-shadow:0 0 6px #9DB36B}
.gps-chip.mid i{background:#ffb347}
.gps-chip.stale{color:#ff8b74;border-color:rgba(229,43,18,.6);animation:invpulse 1.2s infinite}
.nogo-leg{position:absolute;right:7%;bottom:20px;font:700 9px 'Barlow Condensed';letter-spacing:1.5px;color:#ff8b74;display:flex;align-items:center;gap:5px;z-index:3}
.nogo-leg i{width:14px;height:4px;background:rgba(229,43,18,.6)}
.ping-box small{display:block;font:700 9px 'Barlow Condensed';letter-spacing:1px;color:#9DB36B;line-height:1.1}
.ping-box.sent{border-color:#9DB36B}
.ping-box.sent .lbl{color:#9DB36B}
.zone-alert{position:absolute;left:12px;right:12px;top:38%;z-index:22;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 14px;background:rgba(10,10,11,.9);border:2px solid var(--red);box-shadow:0 0 24px rgba(229,43,18,.45);opacity:0;transform:scale(.96);transition:.2s;pointer-events:none}
.zone-alert.show{opacity:1;transform:none;animation:zapulse 1s ease-in-out infinite}
.zone-alert b{display:block;font:700 22px 'Oswald';letter-spacing:3px;color:#fff}
.zone-alert span{display:block;font:700 11px 'Barlow Condensed';letter-spacing:2px;color:#ff8b74}
.zone-alert em{font:700 34px 'Oswald';font-style:normal;color:var(--red);font-variant-numeric:tabular-nums}
.zone-alert.hot{background:rgba(70,8,4,.92)}
@keyframes zapulse{50%{box-shadow:0 0 6px rgba(229,43,18,.2)}}

/* Cloudflare build: video/movie archive switched off by feature flag */
body.no-archive .archive-only { display: none !important; }

/* v18-rooms1 private squads: switcher / create / join / rename sheet */
.room-name{white-space:nowrap}
.chip.tap,.room-chip{cursor:pointer}
.squad-links{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.squad-links .mini{flex:1 1 auto;min-height:40px}
.squad-card{max-height:86vh;overflow-y:auto}
.sq-note{font:500 15px 'Barlow Condensed';color:var(--mut,#b9b3a8);margin:6px 0 12px;line-height:1.3}
.sq-note.small{font-size:13px;margin-top:8px}
.sq-input{width:100%;height:52px;margin:6px 0 4px;background:rgba(14,14,15,.85);border:1px solid var(--line);border-left:3px solid var(--tan);color:var(--txt);font:700 24px 'Oswald',"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif;letter-spacing:2px;text-transform:uppercase;padding:0 12px;outline:none;user-select:text;-webkit-user-select:text}
.sq-input.code{letter-spacing:10px;font-size:30px}
.sq-input::placeholder{color:rgba(236,233,225,.2)}
.lbl em{font-style:normal;margin-left:8px;opacity:.75}
.lbl em.bad{color:#ff8b74;opacity:1}
.sq-cta{margin-top:10px}
.sq-alt{margin-top:12px}
.sq-cur{border:1px solid var(--line);padding:12px;margin:6px 0 14px;background:#1d1e20}
.sq-cur-name{font:700 26px 'Oswald';letter-spacing:2px;overflow-wrap:anywhere}
.sq-code-row{display:flex;align-items:baseline;gap:10px;margin-top:4px}
.sq-code-row b{font:700 30px 'Oswald';letter-spacing:8px;color:var(--tan)}
.sq-link{font:500 13px 'Barlow Condensed';opacity:.8;overflow-wrap:anywhere;margin:4px 0 10px;user-select:text;-webkit-user-select:text}
.sq-row-btns{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}
.sq-rename{display:flex;gap:8px;align-items:center}
.sq-rename .sq-input{flex:1}
.sq-list{display:flex;flex-direction:column;gap:6px;margin:6px 0}
.sq-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line);background:#202123;cursor:pointer}
.sq-item.cur{border-left:3px solid var(--red);cursor:default}
.sq-item .nm{flex:1;font:700 18px 'Oswald';letter-spacing:1.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sq-item .cd{font:600 13px 'Barlow Condensed';letter-spacing:2px;opacity:.7}
.sq-item .go{font:700 12px 'Oswald';letter-spacing:1.5px;color:var(--tan)}

/* v17-cf4 full-bleed layout (31 Oct 2026, Pixel fullscreen + iOS 26 standalone).
   The document scrolls; no wrapper has a vh/dvh height together with overflow:auto.
   Menu screens flow in the page; the in-game scope/radar view stays a fixed full-screen layer. */
:root{--vh:100dvh}
html,body{margin:0;background:#141516;min-height:100dvh}
@media (display-mode: standalone),(display-mode: fullscreen){:root{--vh:100lvh}html,body{min-height:100lvh}}
body{padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px)}
.app-shell{position:relative;inset:auto;min-height:var(--vh);overflow:visible;overflow-x:clip}
.smoke-bg,.grain{position:fixed}
.screen{position:relative;inset:auto;min-height:var(--vh);overflow:visible}
.screen .scroll{flex:1 0 auto;overflow:visible}
.onboard-wrap{flex:1 0 auto;overflow:visible;padding-bottom:calc(env(safe-area-inset-bottom,0px) + 20px)}
.menu-lower{flex:1 0 auto}
#view-lobby{padding-bottom:calc(env(safe-area-inset-bottom,0px) + 16px)}
.foot-btns{position:fixed;left:max(16px,calc(50% - 244px));right:max(16px,calc(50% - 244px));bottom:calc(env(safe-area-inset-bottom,0px) + 16px)}
#view-loadout{padding-bottom:calc(env(safe-area-inset-bottom,0px) + 96px)}
#view-summary{padding-bottom:calc(env(safe-area-inset-bottom,0px) + 140px)}
.sum-menu-link{position:fixed;bottom:calc(env(safe-area-inset-bottom,0px) + 74px)}
.sheet,.sr,.toast{position:fixed}
/* In-game: fixed full-screen layer (scope / radar keep their layout), document locked behind it */
#view-game{position:fixed;inset:0;min-height:0;max-width:520px;margin:0 auto;overflow:hidden;z-index:6}
html:has(#view-game.active),html:has(#view-game.active) body{overflow:hidden}
/* v18-rooms1 loadout: selected-slot summary */
.lo-sel{border:1px solid var(--tan);border-radius:10px;padding:10px 12px;margin-bottom:10px}
.lo-lock{font-size:10px;letter-spacing:.06em;color:var(--dim);border:1px solid currentColor;border-radius:4px;padding:0 4px;margin-left:2px}
.opt.locked.on{opacity:.7}
