/* Magnivox core: tokens, base, typography, nav, menu, footer, shared components. Used by every page. */
/* Concept: Magnivox is a live broadcast. Every section is a "channel" (CH 01–11).
   Imagery: coarse halftone print loops, white dots on black, logo blue as the only spot colour.
   Motion: everything travels on the logo's 30° diagonal; loops are 5s. */
:root{
  --void:#050506;
  --plate:#0e0e11;
  --rule:#24242a;
  --bone:#f5f5f2;
  --ash:#a3a3ab;
  --blue:#0b6bf2;
  --blue-lite:#5b9cff;
  --display:"Archivo","Helvetica Neue",Arial,sans-serif;
  --serif:"Newsreader","Iowan Old Style",Georgia,serif;
  --mono:"JetBrains Mono",ui-monospace,Menlo,monospace;
  --gutter:clamp(16px,4vw,56px);
  --dots:radial-gradient(circle at center,rgba(255,255,255,.07) 1px,transparent 1.6px) 0 0/6px 6px;
  color-scheme:dark;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--void);color:var(--bone);font-family:var(--display);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit}
:focus-visible{outline:2px solid var(--blue-lite);outline-offset:3px}
.wrap{padding-inline:var(--gutter);max-width:1440px;margin-inline:auto}
.eyebrow{font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--blue-lite);display:block;line-height:1.6}
.eyebrow b{font-weight:500;color:var(--ash);margin-left:6px}
.caps{font-family:var(--display);font-weight:800;font-stretch:112%;text-transform:uppercase;letter-spacing:-.035em;line-height:.9;text-wrap:balance;margin:0}
.caps em{font-family:var(--serif);font-style:italic;font-weight:300;text-transform:none;letter-spacing:-.02em;font-stretch:100%}
.dot{color:var(--blue)}
.lede{color:var(--ash);font-size:clamp(16px,1.3vw,19px);max-width:48ch;margin:0}
.lede strong{color:var(--bone);font-weight:500}
/* loop video frames: halftone footage in a "monitor" with corner ticks */
.loop{position:relative;display:block;width:100%;aspect-ratio:16/9;background:#000;overflow:hidden}
.loop video,.loop img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.frame{position:relative}
.frame::before,.frame::after{content:"";position:absolute;width:18px;height:18px;border:1px solid var(--blue-lite);z-index:3;pointer-events:none}
.frame::before{top:-6px;left:-6px;border-right:0;border-bottom:0}
.frame::after{bottom:-6px;right:-6px;border-left:0;border-top:0}
.tc{position:absolute;z-index:3;left:12px;bottom:10px;font-family:var(--mono);font-size:11px;letter-spacing:.08em;color:#fff;background:rgba(0,0,0,.55);padding:3px 7px;display:flex;gap:8px;align-items:center}
.tc i{width:7px;height:7px;border-radius:50%;background:#ff3b30;animation:blink 1.2s steps(2) infinite}
@keyframes blink{50%{opacity:.2}}
/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;gap:12px;font-family:var(--mono);font-size:13px;letter-spacing:.1em;text-transform:uppercase;text-decoration:none;padding:16px 24px;border-radius:2px;transition:background .2s,color .2s,border-color .2s;cursor:pointer}
.btn svg{width:14px;height:14px;transition:transform .25s}
.btn:hover svg{transform:translate(3px,-3px)}
.btn-solid{background:var(--blue);color:#fff;border:1px solid var(--blue)}
.btn-solid:hover{background:#fff;color:var(--void);border-color:#fff}
.btn-ghost{background:transparent;border:1px solid var(--rule);color:var(--bone)}
.btn-ghost:hover{border-color:var(--bone)}
/* ---------- nav ---------- */
.nav{position:sticky;top:env(safe-area-inset-top,0px);z-index:30;background:color-mix(in srgb,var(--void) 96%,transparent);backdrop-filter:blur(12px);border-bottom:1px solid var(--rule)}
.nav .wrap{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-block:14px}
.brand{display:flex;align-items:flex-end;gap:14px;text-decoration:none}
.brand svg{height:30px;width:auto}
.brand .k{fill:var(--bone)}
.brand .b{fill:var(--blue)}
.brand .brand-name{height:calc(30px*304/397);width:auto;display:block;overflow:visible}
.brand-name text{font-family:var(--display)}
.brand-name .wm1{font-weight:800;font-stretch:118%;font-size:15.5px;fill:var(--bone)}
.brand-name .wm2{font-weight:300;font-size:9.6px;fill:var(--ash)}
.live{font-family:var(--mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--ash);display:flex;align-items:center;gap:10px}
.live i{width:8px;height:8px;border-radius:50%;background:#ff3b30;animation:blink 1.2s steps(2) infinite}
.live b{color:var(--bone);font-weight:500;font-variant-numeric:tabular-nums}
.nav .btn{padding:12px 18px}
@media (max-width:900px){.live{display:none}}
@media (max-width:600px){.brand .brand-name{display:none}}
@media (max-width:480px){.nav .btn{font-size:11px;padding:11px 14px}}
/* ---------- channel dial (section indicator) ---------- */
.dial{position:fixed;right:max(12px,env(safe-area-inset-right,0px));top:50%;transform:translateY(-50%);z-index:25;display:grid;gap:6px;justify-items:end;font-family:var(--mono);pointer-events:none}
.dial .num{font-size:12px;letter-spacing:.1em;background:var(--blue);color:#fff;padding:4px 7px;font-weight:700;font-variant-numeric:tabular-nums}
.dial .name{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ash);writing-mode:vertical-rl;transform:rotate(180deg);margin-top:6px}
.dial .ticks{display:grid;gap:5px;justify-items:end}
.dial .ticks span{width:10px;height:2px;background:var(--rule);transition:width .3s,background .3s}
.dial .ticks span.on{width:22px;background:var(--blue-lite)}
@media (max-width:760px){.dial{display:none}}
/* ---------- hero ---------- */
.hero{position:relative;border-bottom:1px solid var(--rule);overflow:hidden}
.hero-media .loop{height:100%;aspect-ratio:auto}
.hero .wrap{position:relative;z-index:2;padding-block:clamp(72px,11vw,160px) clamp(48px,7vw,96px);display:grid;gap:32px;min-height:min(86vh,860px);align-content:end}
.hero h1{font-size:clamp(44px,9.6vw,156px);max-width:10.5ch}
.ctas{display:flex;flex-wrap:wrap;gap:12px}
@media (max-width:760px){.hero-media .loop{height:auto;aspect-ratio:4/3}
.hero .wrap{min-height:0;padding-top:8px}}
/* ---------- sections ---------- */
.chan{border-bottom:1px solid var(--rule);position:relative}
.sec{padding-block:clamp(72px,10vw,140px)}
.head{display:grid;gap:20px;margin-bottom:clamp(36px,5vw,72px)}
.head h2{font-size:clamp(40px,6.2vw,100px);max-width:14ch}
.about .copy{display:grid;gap:22px}
.coverage{display:flex;flex-wrap:wrap;gap:8px;padding:0;margin:0}
.coverage li{list-style:none;font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;border:1px solid var(--rule);padding:6px 10px;color:var(--ash)}
.desk-bg .loop{height:100%;aspect-ratio:auto}
.desk-wrap .wrap{position:relative;z-index:1}
.desk{border:1px solid var(--rule);background:color-mix(in srgb,var(--plate) 92%,transparent);display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr)}
.strip .ch{font-family:var(--mono);font-size:11px;letter-spacing:.1em}
.strip[aria-pressed="true"] .ch{color:var(--blue-lite)}
.vu span.l{background:var(--blue)}
.vu span.l.hot{background:#fff}
.readout.swap{animation:swap .45s ease}
@media (max-width:980px){.desk{grid-template-columns:1fr}}
.sports-media .loop{aspect-ratio:21/9}
.fixtures{border-top:1px solid var(--rule)}
.fix{display:grid;grid-template-columns:auto 1fr auto;gap:16px;align-items:center;padding-block:14px;border-bottom:1px solid var(--rule)}
.fix .n{font-family:var(--mono);font-size:11px;color:var(--blue-lite);letter-spacing:.1em}
.fix b{font-weight:800;font-stretch:112%;text-transform:uppercase;letter-spacing:-.01em}
.fix span{font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ash);text-align:right}
@media (max-width:860px){.sports-media .loop{aspect-ratio:16/10}}
.link{display:grid;gap:12px;padding-right:24px;align-content:start}
.link .jack{width:20px;height:20px;border-radius:50%;border:2px solid var(--blue-lite);background:var(--void);position:relative;z-index:1}
.link .n{font-family:var(--mono);font-size:12px;color:var(--blue-lite);letter-spacing:.1em;margin-top:8px}
.link h3{margin:0;font-weight:800;font-stretch:112%;text-transform:uppercase;font-size:22px;letter-spacing:-.02em}
.link p{margin:0;color:var(--ash);font-size:15px}
@media (max-width:980px){.link .jack{position:absolute;left:0;margin-top:2px}
.link{position:relative}}
.nda .copy{display:grid;gap:24px}
.tape{border:1px solid var(--rule);background:var(--plate);padding:14px;display:grid;gap:10px}
.tape small{font-family:var(--mono);font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--blue-lite)}
.tape .bars{display:grid;gap:6px}
.tape .bars i{display:block;height:9px;background:var(--bone)}
.tape .bars i:nth-child(2){width:70%;background:#2b2b31}
.tape .bars i:nth-child(3){width:45%}
/* contact: on air */
.studio{position:relative}
.studio .loop .sign{position:absolute;z-index:2;left:29.5%;top:23.5%;width:40.5%;height:38.5%;display:grid;place-items:center;font-weight:900;font-stretch:125%;color:#fff;font-size:clamp(28px,6.4vw,104px);letter-spacing:-.02em;text-transform:uppercase;text-shadow:0 0 30px rgba(255,255,255,.55);transition:opacity .08s}
.studio .loop .sign.off{opacity:.06}
.contact-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:clamp(32px,5vw,80px);align-items:end;margin-top:clamp(36px,5vw,64px)}
.contact h2{font-size:clamp(48px,8.4vw,140px)}
.lines{border-top:1px solid var(--rule)}
.line{display:grid;grid-template-columns:110px minmax(0,1fr) auto;gap:16px;align-items:center;padding-block:16px;border-bottom:1px solid var(--rule)}
.line .k{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ash)}
.line .v{font-size:clamp(17px,1.6vw,22px);font-weight:600;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.copy-btn{background:none;border:1px solid var(--rule);color:var(--ash);font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;padding:6px 10px;cursor:pointer}
.copy-btn:hover{color:var(--bone);border-color:var(--bone)}
@media (max-width:900px){.contact-grid{grid-template-columns:1fr}}
@media (max-width:480px){.line{grid-template-columns:1fr auto}
.line .k{grid-column:1/-1}}
footer .wrap{display:flex;flex-wrap:wrap;justify-content:space-between;gap:24px;padding-block:36px;font-family:var(--mono);font-size:12px;letter-spacing:.04em;color:var(--ash)}
footer address{font-style:normal;max-width:60ch}
footer nav{display:flex;gap:20px}
footer a{text-decoration:none}
footer a:hover{color:var(--bone)}
.term-body.typing::after{content:"▌";color:var(--blue-lite);animation:blink 1s steps(2) infinite}
/* rules + who */
.rules{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));grid-auto-rows:auto;border-top:1px solid var(--rule)}
/* heading + text share rows across all five columns, so every description starts on the same line */
.rule{padding:28px 22px 6px 0;display:grid;grid-row:span 2;grid-template-rows:subgrid;row-gap:14px;align-content:start;position:relative}
.rule+.rule{border-left:1px solid var(--rule);padding-left:22px}
.rule h3{margin:0;display:flex;gap:12px;align-items:flex-start;font-weight:800;font-stretch:112%;text-transform:uppercase;font-size:clamp(20px,1.7vw,26px);letter-spacing:-.02em;line-height:1}
.rule h3::before{content:"";flex:none;width:9px;height:.9em;margin:.02em 2px 0 4px;background:var(--blue);transform:skewX(-30deg)}
.rule p{margin:0;color:var(--ash);font-size:15px}
@media (max-width:1000px){.rules{grid-template-columns:1fr 1fr}
.rule:nth-child(odd){border-left:0;padding-left:0}
.rule{border-bottom:1px solid var(--rule);padding-bottom:24px}}
@media (max-width:560px){.rules{grid-template-columns:1fr}
.rule,.rule+.rule{border-left:0;padding-left:0}}
.who{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.who-card{border:1px solid var(--rule);padding:24px;display:grid;gap:14px;align-content:start;transition:border-color .25s,background .25s}
.who-card:hover{border-color:var(--blue);background:rgba(11,107,242,.06)}
.who-k{font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--blue-lite)}
.who-card p{margin:0;color:var(--ash)}
@media (max-width:1000px){.who{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.who{grid-template-columns:1fr}}
.founder{display:grid;gap:20px;position:sticky;top:110px}
.founder blockquote{margin:0;font-family:var(--serif);font-style:italic;font-weight:300;font-size:clamp(26px,2.6vw,38px);line-height:1.2;text-wrap:balance}
.story{display:grid;grid-template-columns:150px minmax(0,1fr) auto;gap:20px;align-items:baseline;padding-block:20px;border-bottom:1px solid var(--rule);text-decoration:none;transition:padding .25s}
.story:hover{padding-left:10px}
.story:hover h3{color:var(--blue-lite)}
.cat{font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ash)}
.story h3{margin:0;font-weight:700;font-size:clamp(17px,1.5vw,21px);line-height:1.25;transition:color .2s}
.meta{font-family:var(--mono);font-size:11px;color:var(--ash);white-space:nowrap}
.more{display:inline-flex;align-items:center;gap:10px;margin-top:20px;font-family:var(--mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;text-decoration:none;border-bottom:1px solid var(--blue);padding-bottom:3px}
.more svg{width:12px;height:12px}
@media (max-width:900px){.founder{position:static}}
@media (max-width:560px){.story{grid-template-columns:1fr}
.meta{display:none}}
/* faq */
.faq-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(32px,5vw,80px);align-items:start}
.faq{border-top:1px solid var(--rule)}
.faq details{border-bottom:1px solid var(--rule)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:20px;align-items:center;padding-block:22px;font-weight:700;font-size:clamp(17px,1.5vw,21px)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-family:var(--mono);font-weight:400;font-size:22px;color:var(--blue-lite);transition:transform .25s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{margin:0 0 22px;color:var(--ash);max-width:62ch}
@media (max-width:900px){.faq-grid{grid-template-columns:1fr}}
/* split-column headings size to their own column (container units) so long words never cross into the next column */
.about .copy,.nda .copy,.faq-grid>.head,.sports-grid>.head,.fit{container-type:inline-size;min-width:0}
#about-title{font-size:clamp(34px,11.5cqi,92px)}
#faq-title{font-size:clamp(34px,14.5cqi,100px)}
#work-title{font-size:clamp(34px,14cqi,88px)}
#sports-title{font-size:clamp(40px,12cqi,116px)}
#contact-title{font-size:clamp(28px,12.5cqi,140px)}
/* keep the channel dial clear of content on wide screens */
@media (min-width:761px){.wrap{padding-right:max(var(--gutter),88px)}
.nav .wrap,footer .wrap{padding-right:var(--gutter)}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}
html{scroll-behavior:auto}}
/* main nav links */
.site-links{display:flex;gap:clamp(14px,1.6vw,26px);font-family:var(--mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase}
.site-links a{text-decoration:none;color:var(--ash);padding-block:6px;border-bottom:1px solid transparent}
.site-links a:hover{color:var(--bone)}
.site-links a[aria-current="page"]{color:var(--bone);border-bottom-color:var(--blue)}
@media (max-width:1500px){.site-links~.live{display:none}}
.nav .btn{white-space:nowrap}
@media (max-width:1020px){.site-links{display:none}}
footer nav{flex-wrap:wrap;row-gap:10px}
/* mobile menu: "Channel guide" (below 1020px) */
.menu-btn{display:none;appearance:none;background:none;border:1px solid var(--rule);color:var(--bone);font-family:var(--mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;padding:0 14px;height:44px;align-items:center;gap:10px;cursor:pointer;flex:none}
.menu-btn:hover{border-color:var(--bone)}
.mb-bars{display:grid;gap:5px;width:18px}
.mb-bars i{display:block;height:2px;background:currentColor;transition:transform .3s}
.mb-bars i:last-child{width:70%;background:var(--blue-lite)}
.menu-btn[aria-expanded="true"] .mb-bars i:first-child{transform:translateY(3.5px) rotate(45deg)}
.menu-btn[aria-expanded="true"] .mb-bars i:last-child{width:100%;transform:translateY(-3.5px) rotate(-45deg);background:currentColor}
.menu{position:fixed;inset:0;z-index:28;background:var(--void);overflow-y:auto;padding:calc(var(--navh,70px) + 24px) var(--gutter) calc(32px + env(safe-area-inset-bottom,0px))}
.menu::before{content:"";position:fixed;inset:0;background:var(--dots);opacity:.5;pointer-events:none}
.menu[hidden]{display:none!important}
.menu-inner{position:relative;display:grid;gap:28px;max-width:720px}
.menu-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--rule)}
.menu-list a{display:flex;align-items:baseline;gap:16px;padding:14px 0;border-bottom:1px solid var(--rule);text-decoration:none;font-weight:800;font-stretch:112%;text-transform:uppercase;letter-spacing:-.02em;font-size:clamp(28px,8vw,48px);line-height:1}
.menu-list a:hover,.menu-list a[aria-current="page"]{color:var(--blue-lite)}
.m-ch{font-family:var(--mono);font-weight:400;font-size:11px;letter-spacing:.1em;color:var(--blue-lite);min-width:44px;font-stretch:100%}
.menu-svc ul{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.menu-svc a{display:block;border:1px solid var(--rule);padding:9px 12px;text-decoration:none;font-size:14px;color:var(--ash)}
.menu-svc a:hover{color:var(--bone);border-color:var(--bone)}
.menu-foot{display:grid;gap:14px;justify-items:start}
.menu-foot p{margin:0;font-family:var(--mono);font-size:13px;color:var(--ash);line-height:1.7}
.menu-open{overflow:hidden}
.menu-open .dial{display:none}
@media (max-width:1020px){.menu-btn{display:inline-flex}}
@media (max-width:480px){.nav .btn.btn-solid{display:none}
.mb-label{display:none}
.menu-btn{width:44px;justify-content:center;padding:0}}
@media (prefers-reduced-motion:reduce){.mb-bars i{transition:none}}

/* ---------- utilities (replace former inline style="" attributes; !important keeps inline-level precedence) ---------- */
.m-0{margin:0!important}.mt-0{margin-top:0!important}.mt-14{margin-top:14px!important}.mt-20{margin-top:20px!important}.mt-28{margin-top:28px!important}
.mt-block{margin-top:clamp(72px,9vw,128px)!important}.pb-sec{padding-bottom:clamp(72px,10vw,140px)!important}
.pt-tight{padding-top:clamp(32px,4vw,56px)!important}.h-sm{font-size:clamp(34px,4.6vw,72px)!important}
.sr-only{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- skip links ---------- */
.skip-links{position:absolute;top:0;left:0;z-index:60}
.skip-link{position:absolute;left:-9999px;top:8px;background:var(--blue);color:#fff;font-family:var(--mono);font-size:13px;letter-spacing:.08em;text-transform:uppercase;padding:12px 16px;border:0;text-decoration:none;white-space:nowrap;cursor:pointer}
.skip-link:focus{left:var(--gutter)}
.skip-link+.skip-link:focus{left:calc(var(--gutter) + 210px)}

/* ---------- small text buttons (footer, menu) ---------- */
.text-btn{appearance:none;background:none;border:0;padding:0;color:var(--ash);font:inherit;font-family:var(--mono);font-size:12px;letter-spacing:.04em;cursor:pointer;text-decoration:underline;text-decoration-color:var(--rule);text-underline-offset:4px}
.text-btn:hover{color:var(--bone);text-decoration-color:var(--blue)}
.foot-tools{display:flex;flex-wrap:wrap;gap:20px;width:100%}
.line-cta{margin-top:20px;justify-self:start}

/* ---------- media ---------- */
.lazy-video{background:#000}
.lazy-video.is-mirrored{transform:scaleX(-1)}
picture{display:contents}

/* ---------- paused motion (visitor choice) ---------- */
.motion-paused *,.motion-paused *::before,.motion-paused *::after{animation-play-state:paused!important}

/* ---------- partner names under partner-type cards ---------- */
.who-names{margin:0;padding-top:14px;border-top:1px solid var(--rule);color:var(--bone)!important;font-weight:600;font-size:15px;line-height:1.5}

/* ---------- cookie consent ---------- */
.cc-banner{position:fixed;left:0;right:0;bottom:0;z-index:40;background:#0b0b0e;border-top:1px solid var(--blue);padding:18px var(--gutter) calc(18px + env(safe-area-inset-bottom,0px));box-shadow:0 -12px 40px rgba(0,0,0,.6)}
.cc-banner[hidden]{display:none}
.cc-inner{max-width:1440px;margin:0 auto;display:flex;flex-wrap:wrap;gap:16px 32px;align-items:center;justify-content:space-between}
.cc-inner p{margin:0;max-width:78ch;font-size:14px;line-height:1.6;color:var(--ash)}
.cc-inner p b{color:var(--bone)}.cc-inner a{color:var(--bone);text-decoration-color:var(--blue)}
.cc-actions{display:flex;flex-wrap:wrap;gap:10px}
.cc-actions .btn{padding:12px 16px;font-size:12px}
.cc-dialog{max-width:min(620px,calc(100vw - 32px));width:100%;background:#0b0b0e;color:var(--bone);border:1px solid var(--rule);padding:0}
.cc-dialog::backdrop{background:rgba(0,0,0,.72)}
.cc-form{display:grid;gap:18px;padding:clamp(20px,3vw,32px)}
.cc-head{display:flex;justify-content:space-between;align-items:center;gap:16px}
.cc-head h2{margin:0;font-weight:800;font-stretch:112%;text-transform:uppercase;font-size:22px;letter-spacing:-.02em}
.cc-x{appearance:none;background:none;border:1px solid var(--rule);color:var(--bone);width:40px;height:40px;font-size:22px;line-height:1;cursor:pointer}
.cc-intro{margin:0;color:var(--ash);font-size:14px}
.cc-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:center;border-top:1px solid var(--rule);padding-top:16px}
.cc-row h3{margin:0 0 4px;font-size:16px}.cc-row p{margin:0;color:var(--ash);font-size:13.5px;line-height:1.5}
.cc-always{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--blue-lite)}
.cc-switch{position:relative;display:inline-block;width:52px;height:30px;cursor:pointer}
.cc-switch input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer}
.cc-switch span{position:absolute;inset:0;border:1px solid var(--rule);background:#16161a;transition:background .2s}
.cc-switch span::after{content:"";position:absolute;top:4px;left:4px;width:20px;height:20px;background:var(--ash);transition:transform .2s,background .2s}
.cc-switch input:checked+span{background:var(--blue);border-color:var(--blue)}
.cc-switch input:checked+span::after{transform:translateX(22px);background:#fff}
.cc-switch input:focus-visible+span{outline:2px solid var(--blue-lite);outline-offset:3px}
@media (max-width:640px){
  .cc-banner{padding:14px var(--gutter) calc(14px + env(safe-area-inset-bottom,0px))}
  .cc-inner{gap:12px}
  .cc-inner p{font-size:13px;line-height:1.5}
  .cc-actions{width:100%}
  .cc-actions .btn{flex:1 1 auto;justify-content:center;min-height:44px}
  .cc-banner .cc-actions{flex-wrap:nowrap;gap:8px}
  .cc-banner .cc-actions .btn{padding:13px 6px;font-size:11px;letter-spacing:.04em}
  .cc-wide{display:none}
}
/* Partner lists (homepage match-day section, About) with each partner's mark (sized by area in build_pages.py) */
.fix-logo{grid-template-columns:auto 104px minmax(0,1fr) auto}
.fix-mark{display:flex;align-items:center;min-height:48px}
.fix-mark img{display:block;opacity:.94}
@media (max-width:560px){
  .fix-logo{grid-template-columns:auto 72px minmax(0,1fr);row-gap:4px}
  .fix-mark{min-height:34px}
  .fix-mark img{max-width:72px;height:auto}
  .fix-logo>span:last-child{grid-column:3;text-align:left}
}
/* Section index header (Services, Insights, News, Careers, Work): shared by every page family */
.idx-head .wrap{padding-block:clamp(28px,4vw,48px) clamp(24px,3vw,40px);display:grid;gap:clamp(24px,3vw,40px)}
.idx-top{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:clamp(24px,5vw,80px);align-items:end}
.idx-top .fit{display:grid;gap:20px}
#idx-title{font-size:clamp(44px,15cqi,150px)}
.idx-top .lede a{color:var(--bone);text-decoration-color:var(--blue)}
@media (max-width:860px){.idx-top{grid-template-columns:1fr}}
/* Touch targets: small text links get an invisible tap area of about 44px without changing the layout */
footer nav a,footer .text-btn,.crumbs a,.more,.case-link,.press-head a,.coverage-list li a{position:relative}
footer nav a::after,footer .text-btn::after,.crumbs a::after,.more::after,.case-link::after,.press-head a::after,.coverage-list li a::after{content:"";position:absolute;inset:-12px -6px}
footer nav{row-gap:22px}
.copy-btn{min-height:40px;min-width:56px}
/* Who we work with: control-room monitor wall (homepage + About). Still layout by default; site.js adds .is-live. */
.monwall{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(12px,1.6vw,20px)}
.mon{border:1px solid var(--rule);background:#08080a;padding:10px;display:grid;gap:10px;align-content:start;transition:border-color .25s}
.mon:hover{border-color:var(--blue)}
.mon-bar{display:flex;align-items:center;gap:12px;padding:2px 4px;font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ash);min-width:0}
.mon-cam{display:inline-flex;align-items:center;gap:7px;color:var(--bone);flex:none}
.mon-cam i{width:7px;height:7px;border-radius:50%;background:#ff3b30;animation:blink 1.2s steps(2) infinite}
.mon-standby .mon-cam i{background:var(--ash);animation:none}
.mon-k{color:var(--blue-lite);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.mon-count{margin-left:auto;flex:none}
.mon-screen{position:relative;aspect-ratio:16/9;overflow:hidden;border:1px solid #16161c;background:radial-gradient(120% 95% at 50% 42%,#111827 0%,#07080c 62%,#050506 100%)}
.mon-screen::before{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;box-shadow:inset 0 0 90px rgba(0,0,0,.85)}
.mon-screen::after{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;background:repeating-linear-gradient(0deg,rgba(255,255,255,.04) 0 1px,transparent 1px 3px)}
.mon-reel{list-style:none;margin:0;padding:clamp(20px,3vw,32px);position:absolute;inset:0;display:flex;flex-wrap:wrap;align-content:center;justify-content:center;gap:18px 28px}
.mon-item{display:grid;place-items:center}
.mon-item img{display:block;height:clamp(30px,3.4vw,44px);width:auto;max-width:100%}
.mon-text{font-weight:800;font-stretch:112%;text-transform:uppercase;font-size:clamp(18px,2vw,26px)}
.mon-lt{display:none}
/* live: one partner at a time, with a broadcast lower-third */
.monwall.is-live .mon-reel{display:block;padding:0}
.monwall.is-live .mon-item{position:absolute;inset:0 0 18%;opacity:0;filter:blur(6px);transform:scale(1.04);transition:opacity .5s,filter .5s,transform .7s}
.monwall.is-live .mon-item.on{opacity:1;filter:none;transform:none}
.monwall.is-live .mon-item img{height:auto;max-width:58%;max-height:62%}
.monwall.is-live .mon-lt{display:grid;gap:2px;position:absolute;left:12px;bottom:12px;z-index:3;max-width:calc(100% - 24px);padding:6px 10px;background:rgba(5,5,6,.85);border-left:2px solid var(--blue)}
.mon-lt b{font-weight:800;font-stretch:112%;text-transform:uppercase;font-size:13px;letter-spacing:.02em;color:var(--bone)}
.mon-lt span{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--ash)}
/* empty category: test card with an open slot */
.mon-test{position:absolute;inset:0;display:grid;grid-template-columns:repeat(7,1fr);opacity:.55}
.mon-test i:nth-child(1){background:#e9e8e3}.mon-test i:nth-child(2){background:#b9b8b3}.mon-test i:nth-child(3){background:#8a8a8f}
.mon-test i:nth-child(4){background:#5b5b63}.mon-test i:nth-child(5){background:var(--blue)}.mon-test i:nth-child(6){background:#2c2c33}.mon-test i:nth-child(7){background:#14141a}
.mon-slot{position:absolute;z-index:3;left:50%;top:50%;transform:translate(-50%,-50%);display:grid;gap:8px;justify-items:center;text-align:center;padding:14px 18px;background:#050506;border:1px solid var(--blue);max-width:86%}
.mon-slot span{font-family:var(--mono);font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--blue-lite)}
.mon-slot a{display:inline-flex;align-items:center;gap:8px;white-space:nowrap;font-weight:700;font-size:15px;color:var(--bone);text-decoration:none;border-bottom:1px solid var(--blue);padding-bottom:2px;position:relative}
.mon-slot a::after{content:"";position:absolute;inset:-12px -8px}
.mon-slot a svg{width:12px;height:12px}
.mon-desc{margin:2px 4px 6px;color:var(--ash);font-size:15px;line-height:1.55}
@media (max-width:760px){.monwall{grid-template-columns:1fr}}
@media (max-width:420px){.mon-slot a{font-size:13px}.mon-slot{padding:12px 14px;max-width:92%}}
@media (max-width:560px){
  .mon-sel{display:none}
  .monwall.is-live .mon-item{inset:0 0 34%}
  .monwall.is-live .mon-item img{max-width:62%;max-height:52%}
  .monwall.is-live .mon-lt{left:8px;bottom:8px;padding:4px 8px}
  .mon-lt b{font-size:12px}
}
/* trademark notice under partner logos */
.tm-note{margin:16px 0 0;max-width:80ch;font-size:12.5px;line-height:1.55;color:var(--ash)}
