/* Elink DIRECTV Stream pages: character and motion (3.15.1).
   Loaded only by the seven DIRECTV Stream pages. Motion uses transform and opacity, respects reduced motion,
   and never delays a button. Prices, terms, disclosures and links live in the page HTML and are not touched here. */
:root{
  --dtv-out:cubic-bezier(.23,1,.32,1);      /* strong ease-out: things entering */
  --dtv-io:cubic-bezier(.77,0,.175,1);      /* strong ease-in-out: things moving on screen */
}

/* ---------- 1. Hero: the TV settles in, then the phone slides out from behind it ---------- */
.dtv-split{position:relative}
.dtv-split>img{display:block}
.dtv-split .dtv-tv{position:relative;z-index:2;clip-path:inset(-20% 27.06% -20% -20%)}
.dtv-split .dtv-phone{position:absolute;inset:0;z-index:1;width:100%;height:auto;clip-path:inset(-20% -20% -20% 72.94%)}
.dtv-split::before{content:"";position:absolute;z-index:0;left:8%;right:8%;top:14%;bottom:6%;border-radius:50%;
  background:radial-gradient(closest-side,rgba(123,108,255,.42),rgba(238,39,93,.18) 55%,transparent);filter:blur(28px);opacity:.75;pointer-events:none}
html.js .hero-art.dtv-hero{animation:none !important;opacity:1 !important;transform:none !important;filter:none !important}
@media (prefers-reduced-motion:no-preference){
  html.js .dtv-split.dtv-pre .dtv-tv{opacity:0;transform:translateY(18px) scale(.985)}
  html.js .dtv-split.dtv-pre .dtv-phone{opacity:0;transform:translateX(-13%) rotate(-3deg)}
  html.js .dtv-split.dtv-pre::before{opacity:0}
  .dtv-split.dtv-go .dtv-tv{transition:opacity .45s var(--dtv-out),transform .75s var(--dtv-out)}
  .dtv-split.dtv-go .dtv-phone{transition:opacity .35s var(--dtv-out) .38s,transform .8s var(--dtv-out) .38s;transform-origin:20% 80%}
  .dtv-split.dtv-go::before{transition:opacity 1.2s ease .2s}
}

/* ---------- 2. Dealer badge: the live treatment, with room under it ---------- */
.hero .dealer-badge{margin-bottom:1.1rem}
@media (max-width:48rem){.hero .dealer-badge{margin-bottom:.9rem}}

/* ---------- 3. DIRECTV mega-menu: quick open, no replay when moving between menus, still for keyboard ---------- */
@media (hover:hover) and (min-width:68.01rem){
  .nav .menu{transition:opacity .12s ease-out,visibility 0s linear .12s;clip-path:inset(0 0 100% 0)}
  .nav .nav-item.open>.menu{transition:opacity .16s var(--dtv-out) 50ms,clip-path .22s var(--dtv-out) 50ms,visibility 0s;clip-path:inset(-40px -40px -80px -40px)}
  .nav .nav-item.open>.menu .mi{animation:dtvMi .22s var(--dtv-out) both}
  .nav .nav-item.open>.menu .mi:nth-child(1){animation-delay:60ms}
  .nav .nav-item.open>.menu .mi:nth-child(2){animation-delay:85ms}
  .nav .nav-item.open>.menu .mi:nth-child(3){animation-delay:110ms}
  .nav .nav-item.open>.menu .mi:nth-child(4){animation-delay:135ms}
  .nav .nav-item.open>.menu .mi:nth-child(5){animation-delay:160ms}
  .nav .nav-item.open>.menu .mi:nth-child(n+6){animation-delay:185ms}
  .nav.dtv-swap .nav-item.open>.menu,.nav.dtv-kbd .nav-item.open>.menu{transition:none;clip-path:none}
  .nav.dtv-swap .nav-item.open>.menu .mi,.nav.dtv-kbd .nav-item.open>.menu .mi{animation:none}
  .nav .mi{transition:background-color .12s ease,border-color .12s ease}
  .nav .mi:hover .mi-ic{transition-duration:.18s}
  .nav .mf .mf-art img{transition:transform .5s var(--dtv-out)}
  .nav .mf:hover .mf-art img{transform:translateY(-3px) scale(1.02)}
}
@keyframes dtvMi{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){
  .nav .menu,.nav .nav-item.open>.menu{transition:opacity .12s ease;clip-path:none}
  .nav .nav-item.open>.menu .mi{animation:none}
  .nav .mf:hover .mf-art img{transform:none}
}

/* ---------- 4. Household or property owner: one switch, the highlight slides, panels change in place ---------- */
.ptab-bar.dtv-ind{position:relative;display:inline-flex;flex-wrap:nowrap;gap:.25rem;padding:.3rem;border-radius:var(--pill);
  border:1px solid var(--line-2);background:rgba(8,12,40,.55);left:50%;transform:translateX(-50%);max-width:100%}
.ptab-bar.dtv-ind .ptab{position:relative;z-index:1;border:0;background:transparent;box-shadow:none;transition:color .2s ease}
.ptab-bar.dtv-ind .ptab.is-on{background:transparent;box-shadow:none;color:#fff}
.ptab-bar.dtv-ind .ptab:not(.is-on):hover{color:var(--t1)}
.ptab-bar .dtv-pill{position:absolute;z-index:0;top:0;left:0;height:0;width:0;border-radius:var(--pill);background:var(--grad);
  box-shadow:0 10px 30px -14px rgba(238,39,93,.7);pointer-events:none;transition:transform .26s var(--dtv-io),width .26s var(--dtv-io)}
.ptab-bar .ptab:active{transform:scale(.97)}
@media (max-width:40rem){
  .ptab-bar.dtv-ind{display:flex;left:auto;transform:none;width:100%}
  .ptab-bar.dtv-ind .ptab{flex:1 1 0;padding:.75rem .6rem;font-size:.86rem;white-space:normal;text-align:center}
}
@media (prefers-reduced-motion:no-preference){
  .ptab-panel.is-on.dtv-in{animation:dtvPanel .26s var(--dtv-out) both}
  .ptab-panel.is-on.dtv-in.from-l{animation-name:dtvPanelL}
  .ptab-panel.is-on.dtv-in .tier,.ptab-panel.is-on.dtv-in .card{animation:dtvCard .3s var(--dtv-out) both}
  .ptab-panel.is-on.dtv-in .tier:nth-child(2),.ptab-panel.is-on.dtv-in .card:nth-child(2){animation-delay:40ms}
  .ptab-panel.is-on.dtv-in .tier:nth-child(3),.ptab-panel.is-on.dtv-in .card:nth-child(3){animation-delay:80ms}
  .ptab-panel.is-on.dtv-in .tier:nth-child(n+4),.ptab-panel.is-on.dtv-in .card:nth-child(n+4){animation-delay:120ms}
}
@keyframes dtvPanel{from{opacity:0;transform:translateX(14px)}to{opacity:1;transform:none}}
@keyframes dtvPanelL{from{opacity:0;transform:translateX(-14px)}to{opacity:1;transform:none}}
@keyframes dtvCard{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.ptab-bar .dtv-pill{transition:none}.ptab-bar .ptab:active{transform:none}}

/* ---------- 5. Package and pack cards: lift under a mouse, press when tapped ---------- */
.tiers .tier,.gp .card{transition:transform .22s var(--dtv-out),border-color .22s ease,box-shadow .22s ease}
@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
  .tiers .tier:hover,.gp .card:hover{transform:translateY(-4px);border-color:rgba(255,255,255,.22);box-shadow:0 26px 60px -30px rgba(123,108,255,.55)}
}
.tiers .btn,.gp .btn,.acts .btn{transition-property:transform,background-color,color,box-shadow;transition-duration:.16s;transition-timing-function:ease-out}
.tiers .btn:active,.gp .btn:active,.acts .btn:active{transform:scale(.97)}

/* ---------- 6. Genre Packs: room to read and compare ---------- */
.gp.five{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem}
@media (max-width:72rem){.gp.five{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:48rem){.gp.five{grid-template-columns:minmax(0,1fr);gap:1rem}}
.gp .card{padding:1.6rem 1.5rem;gap:.7rem}
.gp .card h3{font-size:clamp(1.3rem,1.15rem + .5vw,1.55rem);margin:0}
.gp .card>p:not(.kicker):not(.price):not(.chs):not(.fine-mark){font-size:1rem;line-height:1.5;color:var(--t1)}
.gp .card .fine-mark{font-size:.84rem;line-height:1.45}
.gp .card .price{font-size:clamp(1.9rem,1.6rem + .8vw,2.3rem)}
.gp .card .chs b{font-size:.95rem;color:var(--t1)}
.dtv-more{display:inline-flex;align-items:center;gap:.4rem;align-self:flex-start;min-height:44px;padding:.55rem .95rem;margin:.1rem 0 0;
  border-radius:var(--pill);border:1px solid var(--line-2);background:var(--glass);color:var(--t1);font:600 .9rem/1 var(--display);cursor:pointer;
  transition:background-color .15s ease,border-color .15s ease,transform .16s ease-out}
.dtv-more:hover{background:var(--glass-2);border-color:rgba(255,255,255,.26)}
.dtv-more:active{transform:scale(.97)}
.dtv-more:focus-visible{outline:2px solid var(--sky);outline-offset:2px}
.dtv-more svg{width:1rem;height:1rem;transition:transform .22s var(--dtv-out)}
.dtv-more[aria-expanded="true"] svg{transform:rotate(180deg)}
.dtv-chs{display:grid;grid-template-rows:0fr;transition:grid-template-rows .26s var(--dtv-io)}
.dtv-chs>div{overflow:hidden;min-height:0}
.dtv-chs>div>p{margin:.2rem 0 0;padding-top:.15rem}
.dtv-chs.open{grid-template-rows:1fr}
@media (prefers-reduced-motion:reduce){.dtv-chs,.dtv-more svg{transition:none}}

/* ---------- 7. Sports: the Sports Central preview plays in view, with a clear pause control ---------- */
.dtv-cap{display:flex;align-items:center;justify-content:center;gap:.5rem;margin:.9rem 0 0;font:500 .82rem/1.3 var(--display);color:var(--t2);letter-spacing:.01em}
.dtv-cap::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--sky);box-shadow:0 0 10px var(--sky)}
.dev-tv .vid-toggle{opacity:1 !important;width:44px;height:44px;border-radius:50%;background:rgba(4,6,26,.78);border:1px solid rgba(255,255,255,.35);color:#fff;
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);transition:transform .16s ease-out,background-color .15s ease}
.dev-tv .vid-toggle:hover{background:rgba(4,6,26,.92)}
.dev-tv .vid-toggle:active{transform:scale(.94)}
.dev-tv .vid-toggle:focus-visible{outline:2px solid var(--sky);outline-offset:3px}
.dev-tv .vid-toggle svg{width:18px;height:18px}

/* ---------- 8. Scroll statement and spacing (these seven pages only) ---------- */
.sec .wrap>.statement{margin-inline:auto;text-align:center;max-width:24ch;font-size:clamp(1.85rem,1rem + 3.2vw,3.6rem);line-height:1.1;letter-spacing:-.035em;text-wrap:balance}
.sec:has(>.wrap>.statement){padding-block:clamp(3.5rem,2.2rem + 4vw,6.5rem)}
.sec:has(>.wrap>.statement)+.sec-tight{padding-top:0}
.sec:has(>.wrap>.statement)+.sec-tight .toc-inline{justify-content:center}
.sec:not(.cta-sec):not(.sec-tight){padding-block:clamp(3.75rem,2.4rem + 4.2vw,7rem)}
.split{align-items:center}

/* =====================================================================================================
   3.15.2: real DIRECTV screens and real network logos, with more life
   ===================================================================================================== */
/* ---------- Hero stage: a TV cycling through real DIRECTV screens, the phone app beside it ---------- */
.dtv-stage{position:relative;padding:0 9% 6% 0}
.dtv-stage .dtv-tvbox{position:relative;z-index:2}
.dtv-screens{position:absolute;left:1.4%;top:2.1%;width:97.2%;height:87%;overflow:hidden;border-radius:4px;background:#000}
.dtv-screens .dtv-scr{position:absolute;inset:0;left:0;top:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.06);transition:opacity .8s ease,transform 5s linear}
.dtv-screens .dtv-scr.is-on{opacity:1;transform:scale(1)}
.dtv-phone2{position:absolute;z-index:3;right:0;bottom:0;width:21%;height:auto;filter:drop-shadow(0 24px 30px rgba(0,0,0,.6)) !important}
.dtv-glow{position:absolute;z-index:0;inset:6% 4% 0 -4%;border-radius:50%;background:radial-gradient(closest-side,rgba(238,39,93,.38),rgba(123,108,255,.28) 50%,rgba(110,193,228,.12) 70%,transparent);filter:blur(30px);pointer-events:none}
.dtv-cyc{position:absolute;z-index:4;left:3%;bottom:15%;width:34px;height:34px;border-radius:50%;border:1px solid rgba(255,255,255,.3);background:rgba(4,6,26,.7);color:#fff;display:grid;place-items:center;cursor:pointer;opacity:.85;transition:opacity .15s ease,transform .16s ease-out}
.dtv-cyc:hover{opacity:1}.dtv-cyc:active{transform:scale(.94)}.dtv-cyc:focus-visible{outline:2px solid var(--sky);outline-offset:2px}
.dtv-cyc svg,.dtv-mq-toggle svg{width:14px;height:14px}
@media (prefers-reduced-motion:no-preference){
  .dtv-glow{animation:dtvBreathe 5.5s ease-in-out infinite}
  html.js .dtv-stage.dtv-pre .dtv-tvbox{opacity:0;transform:translateY(22px) scale(.975)}
  html.js .dtv-stage.dtv-pre .dtv-phone2{opacity:0;transform:translate(-40%,6%) rotate(-6deg)}
  .dtv-stage.dtv-go .dtv-tvbox{transition:opacity .5s var(--dtv-out),transform .8s var(--dtv-out)}
  .dtv-stage.dtv-go .dtv-phone2{transition:opacity .4s var(--dtv-out) .42s,transform .85s var(--dtv-out) .42s}
}
@keyframes dtvBreathe{0%,100%{opacity:.65;transform:scale(1)}50%{opacity:1;transform:scale(1.06)}}
@media (prefers-reduced-motion:reduce){.dtv-screens .dtv-scr{transition:none;transform:none}.dtv-cyc{display:none}}
@media (max-width:48rem){.dtv-stage{padding:0 10% 7% 0;margin-top:1rem}.dtv-cyc{width:30px;height:30px}}

/* ---------- Network logo wall: two rows drifting in opposite directions ---------- */
.dtv-nets-sec{overflow:hidden}
.dtv-nets-head{text-align:center;margin-inline:auto}
.dtv-nets-head .lead{margin-inline:auto}
.dtv-marquee{position:relative;display:grid;gap:clamp(1.1rem,.8rem + 1vw,1.8rem);margin-top:clamp(1.8rem,1.2rem + 2vw,3rem);
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent);mask-image:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent)}
.dtv-row{overflow:hidden}
.dtv-track{display:flex;align-items:center;gap:clamp(2.2rem,1.4rem + 3vw,4.2rem);width:max-content;margin:0;padding:0 1rem;list-style:none}
.dtv-track li{flex:none;display:grid;place-items:center;height:clamp(2.4rem,2rem + 1.2vw,3.2rem)}
.dtv-track img{height:clamp(1.35rem,1.1rem + .8vw,2.1rem);width:auto;max-width:9.5rem;object-fit:contain;opacity:.82;transition:opacity .2s ease,transform .2s var(--dtv-out)}
@media (hover:hover) and (pointer:fine){.dtv-track li:hover img{opacity:1;transform:scale(1.08)}}
.dtv-mq-toggle{position:absolute;right:max(1rem,calc((100vw - 80rem)/2));bottom:-2.6rem;width:34px;height:34px;border-radius:50%;border:1px solid var(--line-2);background:var(--glass);color:var(--t1);display:grid;place-items:center;cursor:pointer}
.dtv-mq-toggle:focus-visible{outline:2px solid var(--sky);outline-offset:2px}
.dtv-nets-fine{text-align:center;margin-top:1.4rem}
@media (prefers-reduced-motion:no-preference){
  .dtv-track{animation:dtvMq 52s linear infinite}
  .dtv-row.rev .dtv-track{animation-direction:reverse;animation-duration:58s}
  .dtv-marquee:hover .dtv-track,.dtv-marquee:focus-within .dtv-track,.dtv-marquee.is-paused .dtv-track,.dtv-marquee:not(.in-view) .dtv-track{animation-play-state:paused}
}
@keyframes dtvMq{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){
  .dtv-marquee{-webkit-mask-image:none;mask-image:none}
  .dtv-track{width:auto;flex-wrap:wrap;justify-content:center;row-gap:1.2rem}
  .dtv-track li[aria-hidden="true"],.dtv-mq-toggle{display:none}
}

/* ---------- Logos that light up in turn ---------- */
@media (prefers-reduced-motion:no-preference){
  .dtv-pulse.in-view>li{animation:dtvPulse var(--dur,6s) ease-in-out infinite;animation-delay:calc(var(--i,0) * var(--step,.5s))}
}
@keyframes dtvPulse{0%,14%,100%{transform:none;filter:none}6%{transform:translateY(-3px) scale(1.07);filter:drop-shadow(0 0 14px rgba(238,39,93,.55)) drop-shadow(0 0 4px rgba(169,227,250,.6))}}

/* ---------- Game day: channel chips and the real Sports Mix screen ---------- */
.dtv-chips{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;margin:1.1rem 0 1.4rem;padding:0;list-style:none}
.dtv-chips li{display:grid;place-items:center}
.dtv-chips .dtv-round{width:2.9rem;height:2.9rem;border-radius:50%}
.dtv-chips li.wide{height:2.9rem;padding:0 1.1rem;border-radius:var(--pill);background:var(--glass-2);border:1px solid var(--line-2)}
.dtv-chips li.wide img{height:1rem;width:auto}
.dtv-gametv .dev-screen{object-fit:cover}
@media (prefers-reduced-motion:no-preference){.dtv-gametv .dev-screen{animation:dtvPan 16s ease-in-out infinite alternate}}
@keyframes dtvPan{from{transform:scale(1)}to{transform:scale(1.07) translate(-1.5%,1%)}}
.dtv-gametv{overflow:visible}
.dtv-gametv .dev-screen{transform-origin:40% 40%}

/* ---------- What every package includes: logo and screen boards ---------- */
.hs-art.dtv-board{background:radial-gradient(90% 90% at 50% 20%,rgba(123,108,255,.32),rgba(238,39,93,.10) 55%,transparent 80%),#080C28}
.dtv-locals{display:grid;grid-template-columns:repeat(2,4.6rem);gap:1rem;margin:0;padding:0;list-style:none}
.dtv-locals .dtv-round{width:4.6rem;height:4.6rem;border-radius:50%;box-shadow:0 14px 30px -12px rgba(0,0,0,.7)}
.dtv-board-espn .dtv-hero-logo{width:58%;height:auto;filter:drop-shadow(0 0 22px rgba(238,39,93,.45))}
.dtv-board-apps{display:flex !important;flex-direction:column;justify-content:center;gap:1.4rem}
.dtv-board-apps .dtv-app-logo{height:3rem;width:auto;max-width:62%;object-fit:contain}
.dtv-board-ui img.photo{object-fit:cover;object-position:left top}
.dtv-board-cut img.cutout{max-width:86%;max-height:84%;width:auto;height:auto;object-fit:contain}
@media (prefers-reduced-motion:no-preference){.dtv-board-espn .dtv-hero-logo{animation:dtvGlow 3.6s ease-in-out infinite}}
@keyframes dtvGlow{0%,100%{filter:drop-shadow(0 0 14px rgba(238,39,93,.3))}50%{filter:drop-shadow(0 0 30px rgba(238,39,93,.7)) drop-shadow(0 0 8px rgba(169,227,250,.5))}}

/* ---------- Every game in one place: sports networks ---------- */
.dtv-sportnets{display:flex;flex-wrap:wrap;gap:.55rem;margin:1.2rem 0 .9rem;padding:0;list-style:none}
.dtv-sportnets li{display:grid;place-items:center;height:2.6rem;padding:0 .9rem;border-radius:12px;background:var(--glass);border:1px solid var(--line)}
.dtv-sportnets img{height:1.05rem;width:auto;max-width:6.5rem;object-fit:contain}

/* ---------- Genre Packs: channel logos on each card ---------- */
.dtv-packlogos{display:flex;flex-wrap:wrap;gap:.45rem;margin:.1rem 0 .2rem;padding:0;list-style:none}
.dtv-packlogos li{display:grid;place-items:center;height:2.2rem;padding:0 .7rem;border-radius:10px;background:rgba(255,255,255,.06);border:1px solid var(--line)}
.dtv-packlogos img{height:.95rem;width:auto;max-width:5.6rem;object-fit:contain}
@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){.gp .card:hover .dtv-packlogos li{border-color:rgba(255,255,255,.2)}}
/* the hero's generic ".hub-art img{width:100%;height:auto}" must not resize the stage's layers */
.hub-art.dtv-stage .dtv-phone2{width:21%;max-width:none;height:auto}
.hub-art.dtv-stage .dtv-screens .dtv-scr{width:100%;height:100%;max-width:none}
.hub-art.dtv-stage .dev-tv .dev-frame{width:100%;height:100%}

/* ---------- 3.15.2: logos sized by their shape, so square and wide marks look the same size ---------- */
.dtv-track img{height:calc(clamp(1.35rem,1.1rem + .8vw,2rem) * var(--s,1));max-width:11rem}
.dtv-sportnets img{height:calc(1rem * var(--s,1));max-width:7rem}
.dtv-packlogos img{height:calc(.9rem * var(--s,1));max-width:6rem}
.dtv-chips li.wide img{height:calc(1rem * var(--s,1))}
.dtv-board-apps .dtv-app-logo{height:calc(2.4rem * var(--s,1))}
.dtv-white{filter:brightness(0) invert(1) !important}

/* ---------- Shows and games rail ---------- */
.dtv-shows-sec{overflow:hidden}
.dtv-rail .dtv-track{gap:clamp(.9rem,.7rem + .6vw,1.3rem);padding:.6rem 1rem 1.2rem}
.dtv-rail .dtv-track li{height:auto}
.dtv-show{position:relative;margin:0;width:clamp(15rem,11rem + 12vw,23rem);aspect-ratio:16/9;border-radius:16px;overflow:hidden;background:#0D1236;
  box-shadow:0 22px 50px -24px rgba(0,0,0,.85),0 0 0 1px rgba(255,255,255,.08);transition:transform .3s var(--dtv-out),box-shadow .3s ease}
.dtv-show img{width:100%;height:100%;object-fit:cover;display:block;opacity:1;max-width:none}
.dtv-rail .dtv-track .dtv-show img{height:100%;max-width:none;opacity:1}
.dtv-show figcaption{position:absolute;left:0;right:0;bottom:0;display:flex;align-items:flex-end;justify-content:space-between;gap:.6rem;padding:2.2rem .9rem .75rem;
  background:linear-gradient(180deg,transparent,rgba(4,6,26,.88));font:600 .86rem/1.2 var(--display);color:#fff;opacity:0;transform:translateY(6px);transition:opacity .2s ease,transform .25s var(--dtv-out)}
.dtv-show figcaption span{flex:none;padding:.25rem .55rem;border-radius:999px;background:rgba(255,255,255,.14);font-size:.72rem;font-weight:600;color:var(--t1)}
.dtv-show:focus-within figcaption{opacity:1;transform:none}
@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
  .dtv-rail li:hover .dtv-show{transform:translateY(-6px) scale(1.035);box-shadow:0 30px 60px -24px rgba(238,39,93,.55),0 0 0 1px rgba(255,255,255,.22)}
}
@media (hover:hover) and (pointer:fine){.dtv-rail li:hover figcaption{opacity:1;transform:none}}
@media (hover:none){.dtv-show figcaption{opacity:1;transform:none}}
@media (prefers-reduced-motion:no-preference){.dtv-rail .dtv-track{animation-duration:80s}}
@media (prefers-reduced-motion:reduce){.dtv-rail .dtv-track{flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;width:100%;scroll-snap-type:x mandatory}.dtv-rail .dtv-track li{scroll-snap-align:start}.dtv-rail figcaption{opacity:1;transform:none}}

/* ---------- Devices band ---------- */
.dtv-devices{margin-top:clamp(2.6rem,2rem + 2vw,4rem);text-align:center}
.dtv-dev-h{font:600 clamp(1rem,.95rem + .3vw,1.2rem)/1.35 var(--display);color:var(--t1);margin:0 0 1.3rem}
.dtv-devlist{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:clamp(1.4rem,1rem + 2vw,2.8rem);margin:0;padding:0;list-style:none}
.dtv-devlist img{height:calc(1.25rem * var(--s,1));width:auto;opacity:.82;transition:opacity .2s ease}
@media (hover:hover) and (pointer:fine){.dtv-devlist li:hover img{opacity:1}}

/* ---------- TV explorer: pick a topic, the TV changes ---------- */
.dtv-x{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:clamp(1.6rem,1rem + 3vw,4rem);align-items:center;margin-top:clamp(1.8rem,1.2rem + 2vw,3rem)}
.dtv-x-stage{position:relative}
.dtv-x-tv{position:relative;z-index:2}
.dtv-x-screen{position:absolute;left:1.4%;top:2.1%;width:97.2%;height:87%;overflow:hidden;border-radius:4px;background:#05071c}
.dtv-x-scr{position:absolute;inset:0;display:grid;place-items:center;opacity:0;transform:scale(1.04);transition:opacity .45s ease,transform .6s var(--dtv-out)}
.dtv-x-scr.is-on{opacity:1;transform:none}
.dtv-x-scr[hidden]{display:grid !important;visibility:hidden}
.dtv-x-scr.is-on[hidden]{visibility:visible}
.dtv-x-img{width:100%;height:100%;object-fit:cover;max-width:none}
.dtv-x-scr:not(.dtv-x-sports):not(.dtv-x-apps):not(.dtv-x-screens){background:radial-gradient(70% 90% at 50% 30%,rgba(123,108,255,.35),rgba(238,39,93,.12) 55%,transparent 80%),#05071c}
.dtv-bubbles{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:4% 5%;width:86%;margin:0;padding:0;list-style:none}
.dtv-bubbles li{display:grid;place-items:center;width:clamp(3.4rem,2.4rem + 4vw,6.2rem);aspect-ratio:1;border-radius:50%;background:#0b0f2e;border:1px solid rgba(255,255,255,.14);box-shadow:0 14px 30px -14px rgba(0,0,0,.8)}
.dtv-bubbles li img{width:auto;max-width:72%;height:calc(1.05rem * var(--s,1));max-height:56%;object-fit:contain}
.dtv-bubbles li img.dtv-round{width:100%;height:100%;max-width:none;max-height:none;border-radius:50%}
.dtv-x-premium .dtv-bubbles li{width:clamp(4rem,2.8rem + 4.6vw,7rem)}
.dtv-posters{display:grid;grid-template-columns:repeat(3,1fr);gap:3%;width:92%;margin:0;padding:0;list-style:none}
.dtv-posters li{aspect-ratio:16/9;border-radius:8px;overflow:hidden;box-shadow:0 10px 24px -12px rgba(0,0,0,.9)}
.dtv-posters img{width:100%;height:100%;object-fit:cover}
.dtv-x-list{display:flex;flex-direction:column;gap:.35rem}
.dtv-x-opt{position:relative;display:grid;gap:.35rem;text-align:left;padding:1rem 1.2rem 1.05rem 1.35rem;border-radius:16px;border:1px solid transparent;background:transparent;color:var(--t2);cursor:pointer;overflow:hidden;
  transition:background-color .2s ease,border-color .2s ease,color .2s ease}
.dtv-x-opt::before{content:"";position:absolute;left:0;top:18%;bottom:18%;width:3px;border-radius:3px;background:var(--line-2)}
.dtv-x-opt b{font:700 clamp(1.15rem,1rem + .6vw,1.55rem)/1.15 var(--display);color:inherit;letter-spacing:-.01em}
.dtv-x-opt span{display:none;font-size:.95rem;line-height:1.5;color:var(--t2)}
.dtv-x-opt.is-on{background:var(--glass-2);border-color:var(--line-2);color:var(--t1)}
.dtv-x-opt.is-on::before{background:var(--grad)}
.dtv-x-opt.is-on span{display:block}
.dtv-x-opt:not(.is-on):hover{color:var(--t1)}
.dtv-x-opt:focus-visible{outline:2px solid var(--sky);outline-offset:2px}
.dtv-x-bar{position:absolute;left:1.35rem;right:1.2rem;bottom:.45rem;height:2px;border-radius:2px;background:var(--grad);transform:scaleX(0);transform-origin:left;opacity:0}
.dtv-x.is-auto .dtv-x-opt.is-on .dtv-x-bar{opacity:.9;animation:dtvBar var(--dtv-x-dur,6s) linear both}
@keyframes dtvBar{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.dtv-x-auto{position:absolute;z-index:4;left:3%;bottom:15%;width:34px;height:34px;border-radius:50%;border:1px solid rgba(255,255,255,.3);background:rgba(4,6,26,.7);color:#fff;display:grid;place-items:center;cursor:pointer}
.dtv-x-auto svg{width:14px;height:14px}.dtv-x-auto:focus-visible{outline:2px solid var(--sky);outline-offset:2px}
@media (prefers-reduced-motion:no-preference){
  .dtv-x-scr.is-on .dtv-bubbles li{animation:dtvBob 5s ease-in-out infinite;animation-delay:calc(var(--k) * -.7s)}
  .dtv-x-scr.is-on .dtv-posters li{animation:dtvCard .4s var(--dtv-out) both}
  .dtv-x-scr.is-on .dtv-posters li:nth-child(2){animation-delay:50ms}.dtv-x-scr.is-on .dtv-posters li:nth-child(3){animation-delay:100ms}
  .dtv-x-scr.is-on .dtv-posters li:nth-child(4){animation-delay:150ms}.dtv-x-scr.is-on .dtv-posters li:nth-child(5){animation-delay:200ms}.dtv-x-scr.is-on .dtv-posters li:nth-child(6){animation-delay:250ms}
  .dtv-x-scr.dtv-x-sports.is-on .dtv-x-img,.dtv-x-scr.dtv-x-apps.is-on .dtv-x-img,.dtv-x-scr.dtv-x-screens.is-on .dtv-x-img{animation:dtvPan 9s ease-out both}
}
@keyframes dtvBob{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
@media (prefers-reduced-motion:reduce){.dtv-x-scr{transition:opacity .2s ease;transform:none}.dtv-x-auto{display:none}}
@media (max-width:60rem){
  .dtv-x{grid-template-columns:minmax(0,1fr)}
  .dtv-x-list{flex-direction:row;overflow-x:auto;scroll-snap-type:x mandatory;gap:.5rem;padding-bottom:.3rem;-webkit-overflow-scrolling:touch}
  .dtv-x-opt{flex:none;width:min(78vw,20rem);scroll-snap-align:start;border-color:var(--line)}
  .dtv-x-opt span{display:block}
  .dtv-x-opt b{font-size:1.1rem}
}
/* sports networks a little larger */
.dtv-sportnets li{height:2.8rem;padding:0 1rem}
.dtv-sportnets img{height:calc(1.15rem * var(--s,1))}

/* ---------- Gemini spotlight, then every device ---------- */
.dtv-gem{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:clamp(1.4rem,1rem + 2.5vw,3rem);align-items:center;padding:clamp(1.4rem,1rem + 2vw,2.6rem) !important;text-align:left;
  background:radial-gradient(70% 120% at 0% 50%,rgba(123,108,255,.22),transparent 60%),var(--glass) !important;border:1px solid var(--line-2) !important;border-radius:26px !important}
.dtv-gem-art{position:relative;display:grid;place-items:center}
.dtv-gem-art img{position:relative;z-index:1;width:100%;height:auto}
.dtv-gem-tx h3{font:700 clamp(1.5rem,1.2rem + 1.2vw,2.2rem)/1.1 var(--display);letter-spacing:-.02em;margin:.3rem 0 .7rem}
.dtv-gem-tx p{color:var(--t2);line-height:1.55}
.dtv-gem-ticks{margin:.9rem 0}
.dtv-devices .dtv-dev-h{margin-top:clamp(2rem,1.6rem + 1.5vw,3rem)}
.dtv-devgrid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.7rem}
.dtv-devgrid li{display:grid;place-items:center;height:4.2rem;border-radius:16px;background:var(--glass);border:1px solid var(--line);transition:border-color .2s ease,transform .22s var(--dtv-out),background-color .2s ease}
@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){.dtv-devgrid li:hover{transform:translateY(-3px);border-color:rgba(255,255,255,.24);background:var(--glass-2)}}
@media (prefers-reduced-motion:no-preference){
  .dtv-gem-art img{animation:dtvFloat 6s ease-in-out infinite}
  .dtv-devgrid.in-view li{animation:dtvCard .45s var(--dtv-out) both;animation-delay:calc(var(--i,0) * 45ms)}
}
@keyframes dtvFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
@media (max-width:48rem){.dtv-gem{grid-template-columns:minmax(0,1fr)}.dtv-devgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.dtv-rail{gap:clamp(.6rem,.4rem + .5vw,1rem)}

/* 3.15.3: show rail hover. The row clips anything outside it, so give the shadow room and keep it soft and neutral */
.dtv-rail .dtv-row{padding-block:1.6rem 3.2rem;margin-block:-1.6rem -3.2rem}
.dtv-rail .dtv-track{padding-block:0}
.dtv-show{box-shadow:0 18px 40px -22px rgba(0,0,0,.9),0 0 0 1px rgba(255,255,255,.08)}
@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
  .dtv-rail li:hover .dtv-show{transform:translateY(-6px) scale(1.02);box-shadow:0 26px 44px -20px rgba(0,0,0,.95),0 0 0 1px rgba(255,255,255,.28),0 0 34px -6px rgba(123,108,255,.35)}
}

/* ---------- 3.15.4: Watch your favorite teams ---------- */
.dtv-teams-sec{overflow:hidden}
.dtv-teams .dtv-track{gap:clamp(1.4rem,1rem + 1.6vw,2.6rem);padding-block:.4rem}
.dtv-teams .dtv-track li{height:auto}
.dtv-teams .dtv-track img.dtv-team{height:clamp(2.6rem,2.1rem + 1.6vw,3.8rem);width:clamp(2.6rem,2.1rem + 1.6vw,3.8rem);max-width:none;object-fit:contain;opacity:1;
  filter:drop-shadow(0 6px 14px rgba(0,0,0,.45));transition:transform .25s var(--dtv-out)}
@media (hover:hover) and (pointer:fine){.dtv-teams .dtv-track li:hover img.dtv-team{transform:scale(1.14) translateY(-2px)}}
@media (prefers-reduced-motion:no-preference){.dtv-teams .dtv-track{animation-duration:90s}.dtv-teams .dtv-row.rev .dtv-track{animation-duration:100s}}
.dtv-teams-acts{display:flex;flex-wrap:wrap;justify-content:center;gap:.7rem;margin-top:clamp(1.6rem,1.2rem + 1.5vw,2.4rem)}
.dtv-nets-sec+.dtv-teams-sec,.dtv-teams-sec+.dtv-nets-sec,.dtv-shows-sec+.dtv-nets-sec,.dtv-nets-sec+.dtv-shows-sec,.dtv-shows-sec+.dtv-teams-sec{padding-top:clamp(1.5rem,1rem + 2vw,3rem)}
.sec.dtv-nets-sec+.sec.dtv-teams-sec,.sec.dtv-teams-sec+.sec.dtv-nets-sec,.sec.dtv-shows-sec+.sec.dtv-nets-sec,.sec.dtv-nets-sec+.sec.dtv-shows-sec,.sec.dtv-shows-sec+.sec.dtv-teams-sec{padding-top:clamp(1.5rem,1rem + 2vw,3rem)}
.sec.dtv-nets-sec:has(+.dtv-teams-sec),.sec.dtv-nets-sec:has(+.dtv-shows-sec),.sec.dtv-shows-sec:has(+.dtv-nets-sec),.sec.dtv-shows-sec:has(+.dtv-teams-sec),.sec.dtv-teams-sec:has(+.dtv-nets-sec){padding-bottom:clamp(1.5rem,1rem + 2vw,3rem)}

/* ---------- 3.15.7: DIRECTV pages body upgrade ---------- */
.dtv-page .lead{font-size:clamp(1.12rem,1rem + .45vw,1.35rem);line-height:1.55}
.dtv-page main p{font-size:max(1rem,1em)}
.dtv-page .sec-head h2,.dtv-page main h2{text-wrap:balance}
.dtv-page .split{gap:clamp(2rem,1.2rem + 4vw,5rem)}
.dtv-page .hero-art{max-width:none}
.hero .hero-art .dtv-stage{width:100%}
/* steps become numbered cards */
.steps.dtv-steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,19rem),1fr));gap:1rem;counter-reset:st}
.steps.dtv-steps::before,.steps.dtv-steps::after{display:none}
.steps.dtv-steps .step{display:flex;flex-direction:column;gap:.6rem;padding:1.4rem 1.4rem 1.5rem;border-radius:20px;background:var(--glass);border:1px solid var(--line);transition:border-color .2s ease,transform .22s var(--dtv-out)}
.steps.dtv-steps .step::before{width:2.6rem;height:2.6rem;font-size:1.05rem;background:var(--grad);border-color:transparent;box-shadow:0 10px 24px -10px rgba(238,39,93,.7)}
.steps.dtv-steps .step h3{margin:.3rem 0 0;font-size:1.25rem;line-height:1.2}
.steps.dtv-steps .step p{color:var(--t2);line-height:1.55;margin:0}
@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){.steps.dtv-steps .step:hover{transform:translateY(-4px);border-color:rgba(255,255,255,.22)}}
.dtv-steplogos{display:flex;flex-wrap:wrap;gap:.45rem;margin:.7rem 0 0;padding:0;list-style:none}
.dtv-steplogos li{display:grid;place-items:center;height:2.2rem;padding:0 .7rem;border-radius:10px;background:rgba(255,255,255,.06);border:1px solid var(--line)}
.dtv-steplogos img{height:.8rem;width:auto}
.steps.dtv-steps .dtv-steplogos{display:flex !important;flex-direction:row;flex-wrap:wrap}
.steps.dtv-steps .dtv-steplogos li{display:grid !important;width:auto;flex:none;margin:0;list-style:none}
.steps.dtv-steps .dtv-steplogos li::before,.steps.dtv-steps .dtv-steplogos li::marker{content:none;display:none}

/* =====================================================================================================
   3.15.8: varied formats. Team picker, channel grid, show mosaic, TV feature.
   ===================================================================================================== */
/* ---------- Team picker ---------- */
.dtv-picker{margin-top:clamp(1.4rem,1rem + 1.5vw,2.2rem)}
.dtv-lg-tabs{display:flex;justify-content:center;gap:.3rem;width:max-content;max-width:100%;margin:0 auto 1.4rem;padding:.3rem;border-radius:999px;background:rgba(8,12,40,.55);border:1px solid var(--line-2)}
.dtv-lg{min-width:5rem;padding:.7rem 1.2rem;border:0;border-radius:999px;background:transparent;color:var(--t2);font:700 .95rem/1 var(--display);cursor:pointer;transition:background-color .2s ease,color .2s ease}
.dtv-lg.is-on{background:var(--grad);color:#fff;box-shadow:0 10px 26px -12px rgba(238,39,93,.7)}
.dtv-lg:not(.is-on):hover{color:var(--t1)}
.dtv-lg:focus-visible{outline:2px solid var(--sky);outline-offset:2px}
.dtv-teamgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(8.4rem,1fr));gap:.6rem;margin:0;padding:0;list-style:none}
.dtv-teamgrid a{display:flex;align-items:center;gap:.7rem;min-height:3.6rem;padding:.55rem .8rem;border-radius:14px;background:var(--glass);border:1px solid var(--line);color:var(--t1);text-decoration:none;font:600 .88rem/1.2 var(--display);
  transition:background-color .15s ease,border-color .15s ease,transform .2s var(--dtv-out)}
.dtv-teamgrid img{flex:none;width:2.2rem;height:2.2rem;object-fit:contain;filter:drop-shadow(0 4px 8px rgba(0,0,0,.45))}
.dtv-teamgrid a:hover{background:var(--glass-2);border-color:rgba(255,255,255,.24)}
.dtv-teamgrid a:focus-visible{outline:2px solid var(--sky);outline-offset:2px}
@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){.dtv-teamgrid a:hover{transform:translateY(-2px)}}
@media (prefers-reduced-motion:no-preference){.dtv-lg-panel.is-on .dtv-teamgrid li{animation:dtvCard .32s var(--dtv-out) both;animation-delay:calc(min(var(--i,0),16) * 18ms)}}
@media (max-width:40rem){.dtv-teamgrid{grid-template-columns:repeat(2,minmax(0,1fr))}.dtv-lg{min-width:0;padding:.65rem .95rem}}

/* ---------- Channel grid: still tiles that light up one at a time ---------- */
.dtv-grid-wrap{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.3fr);gap:clamp(1.6rem,1rem + 3vw,4rem);align-items:center}
.dtv-grid-tx .sec-head{margin:0}
.dtv-grid-tx .acts{margin-top:1.2rem}
.dtv-netgrid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.55rem;margin:0;padding:0;list-style:none}
.dtv-netgrid li{display:grid;place-items:center;aspect-ratio:1.25;border-radius:14px;background:rgba(255,255,255,.04);border:1px solid var(--line);transition:background-color .5s ease,border-color .5s ease,box-shadow .5s ease,transform .5s var(--dtv-out)}
.dtv-netgrid img{height:calc(1.05rem * var(--s,1));width:auto;max-width:76%;object-fit:contain;opacity:.62;transition:opacity .5s ease}
.dtv-netgrid li.is-lit{background:rgba(123,108,255,.16);border-color:rgba(255,255,255,.3);box-shadow:0 0 0 1px rgba(238,39,93,.25),0 14px 34px -14px rgba(238,39,93,.6);transform:translateY(-2px)}
.dtv-netgrid li.is-lit img{opacity:1}
@media (hover:hover) and (pointer:fine){.dtv-netgrid li:hover img{opacity:1}}
@media (max-width:60rem){.dtv-grid-wrap{grid-template-columns:minmax(0,1fr)}.dtv-netgrid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (prefers-reduced-motion:reduce){.dtv-netgrid img{opacity:.9}}

/* ---------- Show mosaic: one featured, four around it ---------- */
.dtv-mosaic{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(2,auto);gap:.8rem;margin:clamp(1.4rem,1rem + 1.5vw,2.2rem) 0 0;padding:0;list-style:none}
.dtv-mosaic li.is-big{grid-column:span 2;grid-row:span 2}
.dtv-mosaic .dtv-show{width:100%;height:100%;aspect-ratio:16/9}
.dtv-mosaic li.is-big .dtv-show{aspect-ratio:auto;min-height:100%}
.dtv-mosaic .dtv-show figcaption{opacity:1;transform:none}
.dtv-mosaic li.is-big figcaption{padding:3rem 1.2rem 1rem;font-size:1.05rem}
@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
  .dtv-mosaic .dtv-show img{transition:transform .6s var(--dtv-out)}
  .dtv-mosaic li:hover .dtv-show img{transform:scale(1.05)}
}
@media (prefers-reduced-motion:no-preference){.dtv-mosaic li.is-big .dtv-show img{animation:dtvPan 14s ease-in-out infinite alternate}}
@media (max-width:48rem){.dtv-mosaic{grid-template-columns:repeat(2,minmax(0,1fr))}.dtv-mosaic li.is-big{grid-column:span 2;grid-row:auto}.dtv-mosaic li.is-big .dtv-show{aspect-ratio:16/9}}

/* ---------- TV feature ---------- */
.dtv-feature-sec .dtv-chips li.wide img{height:calc(1rem * var(--s,1))}

/* ---------- 3.15.8 rules: no boxes inside cards, filled number badges everywhere ---------- */
.dtv-steplogos li,.dtv-packlogos li{background:none !important;border:0 !important;padding:0 !important;height:auto !important}
.dtv-steplogos,.dtv-packlogos{gap:.9rem 1.1rem !important;align-items:center}
.dtv-steplogos img{height:.95rem}
.dtv-packlogos img{height:calc(1rem * var(--s,1)) !important;opacity:.9}
.step::before{background:var(--grad) !important;border-color:transparent !important;color:#fff !important}
.steps.dtv-steps .step.dtv-wide{flex-direction:row;flex-wrap:wrap;align-content:flex-start}
.steps.dtv-steps .step.dtv-wide>div{flex:1 1 18rem}
.steps.dtv-steps .step.dtv-wide h3{font-size:1.45rem}
.gp .card.dtv-wide .price{font-size:clamp(2.2rem,1.8rem + 1vw,2.8rem)}

/* ---------- 3.15.9: real logos and screens instead of stock photos ---------- */
img.dtv-teamcut{width:auto !important;height:auto;max-width:min(100%,17rem);max-height:17rem;margin-left:auto;display:block;object-fit:contain;
  filter:drop-shadow(0 0 34px rgba(123,108,255,.45)) drop-shadow(0 24px 30px rgba(0,0,0,.5)) !important}
img.dtv-netcut{max-height:5rem}
.ph-cuts.n3 img.dtv-teamcut,.ph-cuts.n4 img.dtv-teamcut{max-height:9rem}
.bb-cut img.dtv-teamcut{max-height:15rem;margin:0 auto}
@media (prefers-reduced-motion:no-preference){img.dtv-teamcut{animation:dtvFloat 6s ease-in-out infinite}.ph-cut.c1 img.dtv-teamcut{animation-delay:-2s}.ph-cut.c2 img.dtv-teamcut{animation-delay:-4s}}
.dtv-swap-tv{position:relative}
.dtv-swap-tv .dtv-glow{position:absolute;inset:8% 0 -4%;z-index:-1}
.stack-vis .dtv-swap-tv{width:100%}
img.dtv-screen-photo{object-fit:cover;object-position:left top}

/* ---------- flow: the second of two alike sections takes another form ---------- */
.dtv-stacked .split,.dtv-stacked .split.flip{display:flex !important;flex-direction:column;align-items:center;text-align:center;gap:clamp(1.6rem,1rem + 2vw,2.6rem)}
.dtv-stacked .split>.stack-l,.dtv-stacked .split>div:first-child{max-width:46rem;margin-inline:auto;order:0}
.dtv-stacked .split .acts,.dtv-stacked .split .ticks{justify-content:center}
.dtv-stacked .split .ticks{display:flex;flex-wrap:wrap;gap:.5rem 1.4rem;text-align:left}
.dtv-stacked .split>.split-art{order:1;width:min(100%,58rem);margin-inline:auto}
.dtv-alt .feats,.dtv-alt .hub,.dtv-alt .gp,.dtv-alt .verdicts,.dtv-alt .proscons,.dtv-alt .pf-grid,.dtv-alt .ways,.dtv-alt .cc-grid{grid-template-columns:repeat(2,minmax(0,1fr)) !important;gap:0 2.4rem !important}
.dtv-alt .feats>*,.dtv-alt .hub>*,.dtv-alt .gp>*,.dtv-alt .verdicts>*,.dtv-alt .proscons>*,.dtv-alt .pf-grid>*,.dtv-alt .ways>*,.dtv-alt .cc-grid>*{background:none !important;border:0 !important;border-top:1px solid var(--line-2) !important;border-radius:0 !important;box-shadow:none !important;padding:1.3rem 0 !important}
@media (max-width:48rem){.dtv-alt .feats,.dtv-alt .hub,.dtv-alt .gp,.dtv-alt .verdicts,.dtv-alt .proscons,.dtv-alt .pf-grid,.dtv-alt .ways,.dtv-alt .cc-grid{grid-template-columns:minmax(0,1fr) !important}}
.dtv-board-team{display:grid !important;place-items:center}
.dtv-panel-logo{width:auto !important;height:62% !important;max-width:70%;object-fit:contain;filter:drop-shadow(0 0 30px rgba(123,108,255,.45)) drop-shadow(0 18px 24px rgba(0,0,0,.5))}
@media (prefers-reduced-motion:no-preference){.hs-panel:hover .dtv-panel-logo{transform:scale(1.06)}.dtv-panel-logo{transition:transform .5s var(--dtv-out)}}

/* ---------- 3.16.0: logos used cleanly; panels hold real product images ---------- */
img.dtv-devcut{width:100% !important;height:auto;max-width:34rem;max-height:none;margin-left:auto;display:block;filter:drop-shadow(0 30px 40px rgba(0,0,0,.5)) !important}
.ph-cuts.n1 .c0 img.dtv-devcut{max-width:100%}
.bb-cut img.dtv-devcut{max-width:30rem;margin:0 auto}
@media (prefers-reduced-motion:no-preference){img.dtv-devcut{animation:dtvFloat 7s ease-in-out infinite}}
/* team cards: compact, with a large faint logo mark bleeding off the corner */
.hs-panel.dtv-teamcard{position:relative;grid-template-rows:auto;overflow:hidden;min-height:15rem;align-content:end}
.hs-panel.dtv-teamcard .hs-tx{position:relative;z-index:1}
.hs-panel.dtv-teamcard .dtv-wm{position:absolute;right:-12%;top:-14%;width:72%;height:auto;opacity:.12;pointer-events:none;filter:none;transition:opacity .4s ease,transform .6s var(--dtv-out)}
.hs-panel.dtv-teamcard .hs-logo{width:3rem !important;height:3rem !important;object-fit:contain}
@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){.hs-panel.dtv-teamcard:hover .dtv-wm{opacity:.2;transform:scale(1.04) rotate(-3deg)}}
.dtv-netgrid{gap:1.6rem 1rem}
.dtv-netgrid li{aspect-ratio:auto;height:3.2rem;background:none !important;border:0 !important;box-shadow:none !important;border-radius:0}
.dtv-netgrid li.is-lit{transform:scale(1.08)}
.dtv-netgrid img{opacity:.45;height:calc(1.25rem * var(--s,1))}
.dtv-netgrid li.is-lit img{opacity:1}

/* 3.16.1 speed: looping animations pause off screen; pulse uses transform only; screen-reader text */
.dtv-off,.dtv-off *,.dtv-off *::before,.dtv-off *::after{animation-play-state:paused!important}
@keyframes dtvPulse{0%,14%,100%{transform:none}6%{transform:translateY(-3px) scale(1.07)}}
.dtv-sr{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
/* hero text is visible from the first frame (it still slides in), so the page counts as painted sooner */
@keyframes dtvHeroT{from{transform:translateY(10px)}to{transform:none}}
html.js .hero p[data-r],html.js .hero .lead[data-r]{animation-name:dtvHeroT}
/* closing band: the real Sports Mix screen sits back far enough that the offer and the disclosure stay easy to read */
img.dtv-bandbg{opacity:.7}
@media (max-width:48rem){img.dtv-bandbg{opacity:.22;object-position:70% 50%}}
/* real product cutouts in card art (cordless phone): the product sits on a soft glow instead of being cropped */
img.dtv-prodcut{object-fit:contain!important;object-position:50% 55%;padding:7% 14%;box-sizing:border-box;background:radial-gradient(55% 65% at 50% 58%,rgba(123,108,255,.30),rgba(238,39,93,.08) 55%,transparent 75%),linear-gradient(165deg,#17173d,#0a0a20)}
