/* =========================================================
   Performance layer — loaded last on every page
   ========================================================= */
/* 1. Blend-mode overlays force full repaints on scroll: flatten them */
.grain::after,.v-hero::after,.ih::after{mix-blend-mode:normal!important;opacity:.035!important}
.h2-hero .slash{mix-blend-mode:normal!important}
/* 2. No continuous transforms on large video layers */
.v-hero .bgv video,.ih .bgm img,.ih .bgm video,.subhead .bgm video{animation:none!important;transform:none!important}
.subhead--lines .lines,.bm-back::before{animation:none!important}
/* 3. Skip rendering off-screen sections until needed */
main > section:not(:first-child),main > .ticker + section{content-visibility:auto;contain-intrinsic-size:auto 900px}
.rr5,.pin-cta{content-visibility:visible}
/* 4. Pause decorative loops when their section is off-screen (class set by JS) */
.anim-off .tk,.anim-off .wall-row,.anim-off .marquee,.anim-off .ring .dash,.anim-off .ft-line::before{animation-play-state:paused!important}
/* 5. Promote only what actually animates */
.tk,.wall-row{will-change:transform}
.video-off{visibility:visible}
/* 6. Phones & tablets: drop expensive blur, keep the look */
@media (max-width:900px){
  *{-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
  .glass2,.pnl,.act2,.lchips a,.rail,.h-foot,.ih-foot,.avid .gq,.chipx,.sq .in{background-color:rgba(12,12,12,.88)!important}
  .grain::after,.v-hero::after,.ih::after{display:none}
}
/* 7. Respect users who ask for less motion */
@media (prefers-reduced-motion:reduce){.tk,.wall-row,.marquee{animation:none!important}}

/* =========================================================
   Mobile navigation v2 (≤1180px) — loaded last
   ========================================================= */
.nav-mcall{display:none}
.nav-links .ma{display:none}
@media (max-width:1180px){
  .nav{padding:0 0 0 clamp(16px,4vw,32px);height:72px!important;align-items:center}
  .logo img{width:clamp(170px,46vw,240px)!important}
  .nav-right{height:100%;align-items:stretch;gap:0}
  .nav-right .nav-cta,.nav-phone{display:none!important}
  .nav-mcall{display:grid;place-items:center;width:64px;height:100%;border-left:1px solid rgba(255,255,255,.12);color:#fff}
  .nav-mcall svg{width:20px;height:20px;color:var(--blue)}
  .burger{display:grid!important;place-items:center;width:72px;height:100%;margin:0!important;border:0!important;background:var(--blue)!important;position:relative;z-index:130}
  .burger span{position:absolute;left:23px!important;right:23px!important;height:2.5px!important;background:#fff!important;transform-origin:center;transition:transform .4s var(--ease),opacity .2s,width .3s}
  .burger span:nth-child(1){top:26px!important}
  .burger span:nth-child(2){top:35px!important;right:31px!important}
  .burger span:nth-child(3){top:44px!important}
  .menu-open .burger{background:#000!important}
  .menu-open .burger span:nth-child(1){transform:translateY(9px) rotate(45deg)!important}
  .menu-open .burger span:nth-child(2){opacity:0}
  .menu-open .burger span:nth-child(3){transform:translateY(-9px) rotate(-45deg)!important}
  /* overlay */
  .nav-main{position:fixed!important;inset:72px 0 0 0!important;display:block!important;padding:26px clamp(18px,5vw,40px) 40px!important;overflow-y:auto;background:radial-gradient(60% 40% at 100% 0%,rgba(56,152,236,.28),transparent 70%),radial-gradient(50% 40% at 0% 100%,rgba(56,152,236,.18),transparent 70%),#000!important;border-top:2px solid var(--blue)!important;opacity:0!important;visibility:hidden!important;transform:translateX(100%)!important;transition:transform .5s var(--ease),opacity .3s,visibility .5s!important;z-index:120}
  .nav-main::before{content:"";position:absolute;inset:0;background:none;opacity:.07;pointer-events:none}
  .menu-open .nav-main{opacity:1!important;visibility:visible!important;transform:none!important}
  .nav-main nav{position:relative;display:block}
  .nav-links{display:block!important;counter-reset:mn;margin:0;padding:0}
  .nav-links > li:not(.m-extra){counter-increment:mn;border-bottom:1px solid rgba(255,255,255,.1)!important;opacity:0;transform:translateX(30px);transition:opacity .4s,transform .5s var(--ease)}
  .menu-open .nav-links > li{opacity:1;transform:none}
  .menu-open .nav-links > li:nth-child(1){transition-delay:.08s}.menu-open .nav-links > li:nth-child(2){transition-delay:.13s}.menu-open .nav-links > li:nth-child(3){transition-delay:.18s}.menu-open .nav-links > li:nth-child(4){transition-delay:.23s}.menu-open .nav-links > li:nth-child(5){transition-delay:.28s}.menu-open .nav-links > li:nth-child(6){transition-delay:.33s}
  .nav-links > li:not(.m-extra) > a{display:grid!important;grid-template-columns:44px 1fr auto;align-items:center;gap:10px;padding:18px 4px!important;font-size:clamp(22px,6.4vw,34px)!important;font-weight:900!important;font-style:italic;font-stretch:118%;letter-spacing:-.01em!important;color:#fff!important;background:none!important}
  .nav-links > li:not(.m-extra) > a::before{content:"0" counter(mn)!important;display:block!important;position:static!important;width:auto!important;height:auto!important;background:none!important;transform:none!important;font-size:13px;color:var(--blue);letter-spacing:.08em}
  .nav-links > li > a::after{display:none!important}
  .nav-links .ma{display:block;font-size:20px;color:var(--blue);transition:transform .3s var(--ease)}
  .nav-links a:active .ma,.nav-links a:hover .ma{transform:translateX(6px)}
  .nav-links a[aria-current="page"]{color:var(--blue)!important}
  .nav-links a[aria-current="page"] .mt::after{content:"";display:inline-block;width:8px;height:8px;margin-left:12px;vertical-align:middle;background:var(--blue);transform:skewX(var(--skew))}
  .m-extra{display:block!important;border:0!important;padding-top:26px;opacity:0;transition:opacity .4s .38s}
  .menu-open .m-extra{opacity:1}
  .m-cta{width:100%;font-size:14px!important}
  .m-locs{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px}
  .m-locs a{display:flex;gap:10px;align-items:flex-start;padding:14px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.04);font-size:13px;color:rgba(255,255,255,.72);line-height:1.4}
  .m-locs svg{flex:0 0 16px;width:16px;height:16px;color:var(--blue);margin-top:2px}
  .m-locs b{display:block;font-family:var(--f-display);font-weight:900;font-style:italic;font-size:13px;text-transform:uppercase;color:#fff}
  .m-foot{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;margin-top:18px;padding-top:18px;border-top:1px solid rgba(255,255,255,.1)}
  .m-foot > a{display:inline-flex;align-items:center;gap:10px;font-family:var(--f-display);font-weight:800;font-size:15px;color:#fff}
  .m-foot > a svg{width:18px;height:18px;color:var(--blue)}
  .m-extra p{display:none}
}
@media (max-width:380px){.m-locs{grid-template-columns:1fr}.nav-mcall{width:54px}.burger{width:62px}.burger span{left:19px!important;right:19px!important}.burger span:nth-child(2){right:27px!important}}

/* ---- mobile menu fixes ---- */
@media (max-width:1180px){
  .nav-links > li:not(.m-extra) > a{white-space:normal!important;font-size:clamp(20px,5.6vw,30px)!important;line-height:1.05}
  .m-extra,.m-extra *{white-space:normal!important}
  .m-extra a{padding:0;letter-spacing:normal;text-transform:none;font-style:normal}
  .m-extra a::before,.m-extra a::after{content:none}
  .m-extra .m-cta{display:flex!important;padding:18px 24px!important;font-family:var(--f-display);font-weight:800;font-size:14px!important;letter-spacing:.14em!important;text-transform:uppercase!important;color:#fff!important}
  .m-extra .m-cta::before{content:""!important;position:absolute;inset:0;width:auto;height:auto;background:var(--blue)!important;transform:skewX(var(--skew))!important;z-index:-1}
  .m-locs{grid-template-columns:repeat(2,minmax(0,1fr))}
  .m-locs a{min-width:0;padding:14px!important}
  .m-foot .socials a{display:grid!important;place-items:center;width:42px;height:42px;padding:0!important}
  .m-foot .socials svg{width:18px;height:18px}
}
@media (max-width:420px){.m-locs{grid-template-columns:1fr}}
/* ---- desktop nav: never overflow ---- */
@media (max-width:1560px){.nav-phone small{display:none}.nav-phone{padding:0 18px}}
@media (max-width:1480px){.nav-phone span{display:none}.nav-links a{padding:0 12px!important;font-size:12.5px!important;letter-spacing:.08em!important}.logo{padding-right:20px}.logo img{width:clamp(190px,14vw,240px)}.nav-cta{padding:0 22px!important;font-size:13px!important}}
@media (max-width:1300px){.nav-links a{padding:0 9px!important;font-size:12px!important}}
