:root{
  --ink:#0f0f10;
  --body:#3a3a3c;
  --muted:#7a7a7e;
  --line:rgba(0,0,0,.09);
  --soft:#f5f5f7;
  --white:#fff;
  --radius:18px;
  font-size:100%;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  background:var(--white);color:var(--body);
  font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",Inter,Roboto,Helvetica,Arial,sans-serif;
  font-size:1.0625rem;line-height:1.6;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
h1,h2,h3{color:var(--ink);font-weight:700}
a{color:var(--ink);text-decoration:none}
a:focus-visible,button:focus-visible{outline:2px solid var(--ink);outline-offset:3px;border-radius:6px}
img{max-width:100%;display:block}
.wrap{max-width:1120px;margin:0 auto;padding:0 max(24px,env(safe-area-inset-left))}
.display{
  font-size:clamp(2.6rem,7.2vw,5.6rem);
  line-height:1.03;letter-spacing:-0.022em;font-weight:800;
}
h2.display{font-size:clamp(1.9rem,4.4vw,3.1rem);letter-spacing:-0.018em;margin-bottom:.75em}
.sub{color:var(--muted);font-size:1.0625rem;max-width:60ch;margin-bottom:36px}

/* ---------- Nav: translucent material + scroll edge ---------- */
header{
  position:sticky;top:0;z-index:60;
  background:rgba(255,255,255,.68);
  backdrop-filter:blur(20px) saturate(180%);
  -webkit-backdrop-filter:blur(20px) saturate(180%);
}
header::after{content:"";position:absolute;inset:auto 0 -1px 0;height:1px;background:var(--line);opacity:0;transition:opacity .3s}
header.scrolled::after{opacity:1}
@media (prefers-reduced-transparency:reduce){header{background:#fff;backdrop-filter:none;-webkit-backdrop-filter:none}}
.nav{display:flex;align-items:center;justify-content:space-between;height:60px;gap:16px}
.brand img{height:22px;width:auto}
.tabs{display:flex;gap:4px;align-items:center}
.tab{font-size:.9375rem;font-weight:500;color:var(--body);padding:7px 14px;border-radius:999px;transition:background .15s;white-space:nowrap}
.tab:hover{background:rgba(0,0,0,.05)}
.tab:active{transform:scale(.97)}
.tab.active{background:var(--ink);color:#fff}



/* ---------- Hero: content is the stage, dark ---------- */
.hero{position:relative;overflow:hidden;padding:0 0 20px;background:#f5f5f7}
.stage{position:relative;height:min(58vh,520px);min-height:340px;overflow:hidden;background:linear-gradient(180deg,#e6e7ec 0%,#eeeef2 60%,#f5f5f7 100%)}
@media (prefers-reduced-motion:reduce){.stage .stage-vid{display:none}}
.tilt{position:absolute;inset:-24% -10% -12%;transform:rotate(-5deg) translateZ(0);will-change:transform;display:flex;flex-direction:column;justify-content:center;gap:0}
.stage .band{display:flex;gap:0;width:max-content;will-change:transform;transform:translateZ(0);backface-visibility:hidden;-webkit-backface-visibility:hidden}
.band img{height:128px;width:auto;display:block;transform:translateZ(0);filter:drop-shadow(0 6px 14px rgba(0,0,0,.18))}
@media(max-width:640px){.band img{height:84px}.stage{height:min(44vh,360px);min-height:260px}.hero-copy{margin-top:clamp(-140px,-16vh,-90px);padding-bottom:28px}}
@media(max-width:640px){.tilt{gap:0}}
.band.r1{animation:driftL 85s linear infinite}
.band.r2{animation:driftR 100s linear infinite}
.band.r3{animation:driftL 92s linear infinite}
.band.r4{animation:driftR 110s linear infinite}
.stage:not(.ready) .band{animation-play-state:paused}
.stage.ready .band{animation-play-state:running}
@keyframes driftL{from{transform:translate3d(0,0,0)}to{transform:translate3d(-50%,0,0)}}
@keyframes driftR{from{transform:translate3d(-50%,0,0)}to{transform:translate3d(0,0,0)}}
@media (prefers-reduced-motion:reduce){.stage .band{animation:none}}
.stage::after{content:"";position:absolute;inset:0;pointer-events:none;background:
  linear-gradient(180deg,rgba(245,245,247,0) 0%,rgba(245,245,247,0) 30%,rgba(245,245,247,.55) 48%,rgba(245,245,247,.88) 62%,rgba(245,245,247,.97) 72%,#f5f5f7 82%,#f5f5f7 100%)}
.hero-copy{position:relative;text-align:center;margin-top:clamp(-210px,-24vh,-130px);padding-bottom:40px}
.hero-copy h1{margin:0 auto 22px;max-width:13ch;color:var(--ink)}
.hero-copy .sub{color:var(--muted)}
.hero .btn-primary{background:var(--ink);color:#fff}
.hero .btn-primary:hover{background:#2c2c2e}
.hero .btn-quiet{background:rgba(0,0,0,.06);color:var(--ink)}
.hero .btn-quiet:hover{background:rgba(0,0,0,.1)}
.hero-copy h1 span{display:block;opacity:0;transform:translateY(14px);animation:rise .7s cubic-bezier(.2,.7,.2,1) forwards}
.hero-copy h1 span:nth-child(2){animation-delay:.08s}
@keyframes rise{to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.hero-copy h1 span{animation:none;opacity:1;transform:none}}
.hero-copy .sub{margin:0 auto 30px}
.actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.btn{
  display:inline-block;padding:.8em 1.6em;border-radius:999px;font-weight:600;font-size:1rem;
  transition:transform .1s ease-out, background .15s;border:none;cursor:pointer;
}
.btn:active{transform:scale(.97)}
.btn-primary{background:var(--ink);color:#fff}
.btn-primary:hover{background:#2c2c2e}
.btn-quiet{color:var(--ink);background:rgba(0,0,0,.05)}
.btn-quiet:hover{background:rgba(0,0,0,.09)}

section{padding:clamp(72px,9vw,112px) 0}

/* ---------- Announcement banner (confetti + balloons parallax) ---------- */
.announce{background:linear-gradient(180deg,#ececf0 0%,#e6e6eb 100%);color:var(--ink);text-align:center;padding:clamp(56px,7vw,92px) 0;position:relative;overflow:hidden}
.announce-copy{position:relative;z-index:3}
.announce .big{font-size:clamp(2.4rem,6vw,4.2rem);font-weight:800;letter-spacing:-.03em;line-height:1;color:var(--ink)}
.announce .label{font-size:clamp(.9rem,1.6vw,1.05rem);color:var(--muted);margin-top:6px}
.confetti,.balloons{position:absolute;inset:-12% 0;pointer-events:none;will-change:transform}
.confetti i{position:absolute;display:block;width:9px;height:14px;border-radius:2px;opacity:.85}
#cLayer2 i{width:6px;height:10px;opacity:.55}
.balloons svg{position:absolute;bottom:-24px;width:44px;height:auto;opacity:.9;filter:drop-shadow(0 3px 8px rgba(0,0,0,.25))}
@media(max-width:640px){.balloons svg{width:38px}}

/* ---------- Owned & operated ---------- */
.oo{background:var(--soft);padding-top:34px;padding-bottom:36px}
.oo .cta-link{margin-top:22px}
.oo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;align-items:start}
@media(max-width:640px){.oo-grid{grid-template-columns:repeat(2,1fr);gap:14px}}
@media(max-width:400px){.oo-grid{grid-template-columns:1fr}}
.oo-tile{display:block;border-radius:var(--radius);overflow:hidden;position:relative;box-shadow:0 1px 3px rgba(0,0,0,.08),0 10px 30px rgba(0,0,0,.08)}
.oo-tile img{aspect-ratio:16/9;object-fit:cover;width:100%;height:auto;max-height:none;display:block;transition:transform .3s ease}
.oo-tile:hover img{transform:scale(1.02)}
@media (prefers-reduced-motion:reduce){.oo-tile:hover img{transform:none}}
.oo-tile:active{transform:scale(.99)}

/* ---------- Publisher section split + collage ---------- */
.svc-split{display:grid;grid-template-columns:280px 1fr;gap:56px;align-items:start}
.svc-collage{display:grid;grid-template-columns:1fr;gap:14px;transform:rotate(-5deg);margin-top:14px}
.svc-collage img{border-radius:10px;box-shadow:0 10px 26px rgba(0,0,0,.18);aspect-ratio:16/9;object-fit:cover}
.svc-collage img:nth-child(even){transform:translateX(18px)}
@media(max-width:920px){.svc-split{grid-template-columns:1fr}.svc-collage{grid-template-columns:repeat(3,1fr);transform:rotate(-3deg);margin:0 0 10px}.svc-collage img:nth-child(even){transform:translateY(8px)}}

/* ---------- Segmented control (services) ---------- */
.seg{
  display:inline-flex;background:var(--soft);border-radius:12px;padding:3px;gap:2px;margin-bottom:34px;
}
.seg button{
  border:none;background:transparent;padding:9px 20px;border-radius:9px;font:inherit;font-size:.9375rem;font-weight:600;
  color:var(--muted);cursor:pointer;transition:color .15s, background .2s, box-shadow .2s;
}
.seg button:active{transform:scale(.98)}
.seg button.active{background:#fff;color:var(--ink);box-shadow:0 1px 4px rgba(0,0,0,.12)}
.panel{display:none}
.panel.active{display:block}
.panel .blurb{max-width:58ch;margin-bottom:6px;font-size:1.125rem;color:var(--ink)}
.panel .tag{color:var(--muted);margin-bottom:26px}
.cols{display:grid;grid-template-columns:1fr 1fr;gap:0 56px;max-width:840px}
@media(max-width:680px){.cols{grid-template-columns:1fr}}
.cols ul{list-style:none}
.cols li{padding:.65em 0;border-bottom:1px solid var(--line);font-size:.9875rem;color:var(--body)}
.cta-link{display:inline-block;margin-top:32px;font-weight:600;color:var(--ink)}
.cta-link::after{content:" \203A";font-weight:400}
.cta-link:hover{text-decoration:underline;text-underline-offset:4px}

/* ---------- Partners ---------- */
.partners{background:var(--soft)}
.partner-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;align-items:center}
@media(max-width:900px){.partner-grid{grid-template-columns:repeat(4,1fr)}}
@media(max-width:560px){.partner-grid{grid-template-columns:repeat(3,1fr)}}
.partner{background:#fff;border-radius:12px;display:flex;align-items:center;justify-content:center;padding:18px 16px;min-height:76px}
.partner img{max-height:30px;width:auto;max-width:82%;filter:grayscale(1);opacity:.8}

/* ---------- FAQ ---------- */
.faq details{border-bottom:1px solid var(--line)}
.faq details:first-of-type{border-top:1px solid var(--line)}
.faq summary{cursor:pointer;padding:22px 4px;font-weight:600;font-size:1.0625rem;color:var(--ink);list-style:none;display:flex;justify-content:space-between;gap:16px;align-items:center}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";color:var(--muted);font-size:22px;font-weight:300;flex:none;transition:transform .25s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq .a{padding:0 4px 22px;color:var(--body);max-width:72ch}

/* ---------- News ---------- */
.news-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
@media(max-width:900px){.news-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:540px){.news-grid{grid-template-columns:1fr}}
.news{display:block}
.news img{aspect-ratio:4/3;object-fit:cover;border-radius:var(--radius);margin-bottom:12px;transition:transform .25s ease}
.news:hover img{transform:scale(1.015)}
@media (prefers-reduced-motion:reduce){.news:hover img{transform:none}}
.news p{font-size:.9875rem;font-weight:600;color:var(--ink);line-height:1.4}

/* ---------- Networks ---------- */
.net-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:24px}
@media(max-width:400px){.net-grid{grid-template-columns:1fr}}
.net{background:#fff;border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column;box-shadow:0 1px 3px rgba(0,0,0,.07),0 8px 26px rgba(0,0,0,.06)}
.net img{aspect-ratio:16/9;object-fit:cover;width:100%;height:auto;display:block}
.net img{block-size:auto}
@supports not (aspect-ratio:1){.net img{height:0;padding-bottom:56.25%}}
.net-body{padding:20px 22px 22px;display:flex;flex-direction:column;gap:8px;flex:1}
.net h3{font-size:1.1875rem;letter-spacing:-.01em}
.net p{color:var(--muted);font-size:.9375rem;flex:1}
.net .links{display:flex;flex-wrap:wrap;gap:5px 0;font-size:.875rem;font-weight:500;align-items:center}
.net .links a{color:var(--ink)}
.net .links a:hover{text-decoration:underline;text-underline-offset:3px}
.net .links .sep{color:rgba(0,0,0,.18);margin:0 8px}
.net .links span.plain{color:var(--muted)}
h3.group{font-size:1.5rem;letter-spacing:-.01em;margin:72px 0 6px;color:var(--ink)}
.group-note{color:var(--muted);margin-bottom:28px;max-width:64ch;font-size:.9875rem}

/* ---------- News page + article ---------- */
.news-grid-page{grid-template-columns:repeat(2,1fr)}
@media(max-width:640px){.news-grid-page{grid-template-columns:1fr}}
.news-date{display:block;color:var(--muted);font-size:.8125rem;margin-top:4px}
.back-link{margin:0 0 26px;display:inline-block}
.article{max-width:720px}
.article img.lead{border-radius:var(--radius);margin:18px 0 8px;width:100%}
.article h1{font-size:clamp(1.7rem,4vw,2.5rem);letter-spacing:-.015em;line-height:1.12;margin-top:6px}
.article .meta{color:var(--muted);font-size:.875rem;margin:10px 0 6px}
.article h3{font-size:1.25rem;margin:34px 0 10px}
.article p{margin:0 0 16px;color:var(--body)}
.article strong{color:var(--ink)}

/* ---------- Contact ---------- */
.contact-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:44px;align-items:start}
@media(max-width:820px){.contact-grid{grid-template-columns:1fr}}
.contact-card{background:var(--soft);border-radius:var(--radius);padding:34px}
.contact-card p{margin-bottom:18px;font-size:1rem}
.contact-card b{display:block;color:var(--muted);font-weight:600;font-size:.8125rem;margin-bottom:2px}

footer{border-top:1px solid var(--line);padding:52px 0 36px;background:var(--soft)}
.foot{display:grid;grid-template-columns:1.3fr .5fr .6fr;gap:32px}
@media(max-width:760px){.foot{grid-template-columns:1fr}}
.foot img{height:20px;width:auto;margin-bottom:16px}
.foot p,.foot a{color:var(--muted);font-size:.875rem;display:block;line-height:1.9}
.foot a:hover{color:var(--ink)}
.foot b{color:var(--ink);font-size:.8125rem;display:block;margin-bottom:6px}
.copyright{color:var(--muted);font-size:.8125rem;text-align:center;margin-top:44px}

/* contained, animated confetti */
.announce{overflow:hidden}
.confetti{inset:0}
.balloons{inset:0}
.confetti i{box-shadow:0 1px 3px rgba(0,0,0,.18);top:-8%;animation:fall linear infinite}
@keyframes fall{
  0%{transform:translateY(-10vh) rotate(0deg)}
  100%{transform:translateY(60vh) rotate(540deg)}
}
.balloons svg{animation:bob 6s ease-in-out infinite alternate}
@keyframes bob{from{transform:translateY(6px)}to{transform:translateY(-14px)}}
/* count-up + shimmer on the number */
.announce .big{background:linear-gradient(100deg,var(--ink) 40%,#6b6b75 50%,var(--ink) 60%);background-size:250% 100%;
  -webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent}
.announce .big.shine{animation:shimmer 2.4s ease-in-out .3s 2}
@keyframes shimmer{0%{background-position:120% 0}100%{background-position:-120% 0}}
@media (prefers-reduced-motion:reduce){
  .confetti i{animation:none}
  .balloons svg{animation:none}
  .announce .big{background:none;color:var(--ink);-webkit-text-fill-color:var(--ink)}
  .announce .big.shine{animation:none}
}
/* Apple TV-style sheen + tilt on brand tiles */
.oo-tile{transition:transform .18s ease-out,box-shadow .25s;isolation:isolate;will-change:transform;transform:translateZ(0);-webkit-transform:translateZ(0);-webkit-mask-image:-webkit-radial-gradient(#fff,#000)}
.oo-tile::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  background:radial-gradient(300px circle at var(--mx,50%) var(--my,45%),rgba(255,255,255,.38),rgba(255,255,255,.08) 45%,transparent 65%);
  opacity:0;transition:opacity .25s;mix-blend-mode:screen}
.oo-tile:hover::after,.oo-tile:focus-visible::after{opacity:1}
.oo-tile:hover{box-shadow:0 6px 16px rgba(0,0,0,.12),0 22px 48px rgba(0,0,0,.16)}
@media (prefers-reduced-motion:reduce){.oo-tile{transition:none}.oo-tile::after{transition:none}}

/* tvOS sheen + tilt on network cards */
.net{position:relative;transition:transform .18s ease-out,box-shadow .25s;isolation:isolate;will-change:transform;transform:translateZ(0);-webkit-transform:translateZ(0);-webkit-mask-image:-webkit-radial-gradient(#fff,#000)}
.net::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  background:radial-gradient(320px circle at var(--mx,50%) var(--my,45%),rgba(255,255,255,.32),rgba(255,255,255,.06) 45%,transparent 65%);
  opacity:0;transition:opacity .25s;mix-blend-mode:screen}
.net:hover::after{opacity:1}
.net:hover{box-shadow:0 6px 16px rgba(0,0,0,.1),0 22px 48px rgba(0,0,0,.14)}
@media (prefers-reduced-motion:reduce){.net{transition:none}.net::after{transition:none}}

/* ---------- scroll reveal ---------- */
.rv{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .7s cubic-bezier(.2,.7,.2,1)}
.rv.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.rv{opacity:1;transform:none;transition:none}}

/* ---------- networks filters ---------- */
.filters{display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin:-8px 0 30px}
.filters .seg{margin:0}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{border:1px solid rgba(0,0,0,.12);background:#fff;border-radius:999px;padding:7px 14px;font:inherit;font-size:.875rem;font-weight:500;color:var(--body);cursor:pointer;transition:background .15s,border-color .15s,color .15s}
.chip:hover{border-color:rgba(0,0,0,.3)}
.chip.active{background:var(--ink);border-color:var(--ink);color:#fff}
.chip:active{transform:scale(.97)}
.net.hide{display:none}
.group-hidden{display:none}
.empty-note{color:var(--muted);padding:30px 0}

/* ---------- contact form ---------- */
.cform{display:grid;gap:14px}
.cform label{display:block;font-size:.8125rem;font-weight:600;color:var(--muted);margin-bottom:6px}
.cform input,.cform select,.cform textarea{width:100%;border:1px solid rgba(0,0,0,.12);border-radius:12px;padding:12px 14px;font:inherit;font-size:1rem;background:#fff;color:var(--ink)}
.cform input:focus,.cform select:focus,.cform textarea:focus{outline:2px solid var(--ink);outline-offset:1px;border-color:transparent}
.cform textarea{min-height:130px;resize:vertical}
.cform .row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:520px){.cform .row{grid-template-columns:1fr}}
.cform .btn{justify-self:start;margin-top:6px}
.cform .thanks{display:none;padding:22px;border-radius:12px;background:#fff;color:var(--ink);font-weight:600}
.cform.sent form{display:none}
.cform.sent .thanks{display:block}
.contact-alt{margin-top:22px;color:var(--muted);font-size:.9375rem}
.contact-alt a{font-weight:600}

.net .txt-tile{aspect-ratio:16/9;display:flex;align-items:center;justify-content:center;background:linear-gradient(150deg,#16233F,#2B4A85);color:#fff;font-weight:800;font-size:26px;text-align:center;padding:20px}


/* legal pages */
.legal{max-width:820px;padding-top:52px}
.legal .eyebrow{color:var(--muted);font-weight:600;font-size:.8125rem;letter-spacing:.08em;text-transform:uppercase;margin-bottom:6px}
.legal h1{font-size:clamp(2rem,4.5vw,2.8rem);letter-spacing:-.02em;margin-bottom:6px}
.legal .ver{color:var(--muted);font-size:.9375rem;margin-bottom:32px}
.legal h2{font-size:1.35rem;letter-spacing:-.01em;margin:34px 0 10px}
.legal h3{font-size:1.05rem;margin:22px 0 8px}
.legal p{margin:0 0 14px;color:var(--body)}
.legal ul{margin:0 0 16px;padding-left:22px}
.legal li{margin:0 0 8px;color:var(--body)}
.legal a{color:var(--ink);text-decoration:underline;text-underline-offset:3px}

/* mobile nav: five tabs must fit; logo is the Home link on small screens */


/* stats grid inside the band */
.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;position:relative;z-index:3}
@media(max-width:760px){.stat-grid{grid-template-columns:repeat(2,1fr);gap:14px}}
.stat-grid > div{background:rgba(255,255,255,.7);border:1px solid rgba(0,0,0,.06);border-radius:16px;padding:22px 16px 18px;backdrop-filter:blur(6px)}
.confetti i{opacity:.8}

/* mobile: hamburger + dropdown */
.menu-btn{display:none;background:none;border:0;padding:8px;margin:-8px;cursor:pointer;color:var(--ink)}
.menu-btn svg{width:26px;height:26px;display:block}
@media(max-width:940px){
  .brand img{height:22px}
  .menu-btn{display:block}
  .tabs{position:absolute;left:0;right:0;top:100%;flex-direction:column;align-items:stretch;gap:0;background:rgba(255,255,255,.96);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--line);padding:6px 12px 12px;display:none}
  .tabs.open{display:flex}
  .tab{padding:14px 12px;font-size:1.05rem;border-radius:12px}
  .tab.active{background:var(--ink);color:#fff}
  header{position:sticky}
  .nav{position:relative}
}

/* older Safari: no aspect-ratio support */
@supports not (aspect-ratio:1){
  .orbit{height:min(540px,92vw)}
  .bigstat, .stat-grid > div{min-height:auto}
}
