/* Transform and opacity keep the opening light enough for TV WebViews. */
.tv-boot body{background:#020306}
.tv-boot body>:not(#tvSplash){visibility:hidden}
.tv-splash{position:fixed;inset:0;z-index:10000;overflow:hidden;background:#020306;color:#eaf4ff;display:grid;place-items:center;pointer-events:auto;isolation:isolate}
.tv-splash[hidden]{display:none}
.intro-aura{position:absolute;width:100%;height:100%;opacity:0;background:radial-gradient(ellipse at 40% 43%,#087cc92b,transparent 40%),radial-gradient(ellipse at 65% 51%,#6a24c12d,transparent 42%);transform:scale(.65)}
.intro-seam,.intro-streak{position:absolute;left:10%;top:43%;width:80%;height:2px;opacity:0;transform:scaleX(0);background:linear-gradient(90deg,transparent,#008dff 20%,#78e7ff 43%,#ecfaff 50%,#c4a7ff 58%,#7844ff 80%,transparent);box-shadow:0 0 18px #1faeff80,0 0 5px #99dcff}
.intro-streak{left:-10%;width:120%;height:1px;box-shadow:none;--angle:18deg;--delay:700ms}
.intro-streak:nth-child(2){--angle:-18deg;--delay:780ms}
.intro-streak:nth-child(3){--angle:36deg;--delay:840ms}
.intro-streak:nth-child(4){--angle:-36deg;--delay:900ms}
.intro-rings{position:absolute;left:50%;top:43%;width:clamp(140px,22vw,430px);height:clamp(140px,22vw,430px);transform:translate(-50%,-50%) scale(.25);border:1px solid #51cfff66;border-radius:50%;opacity:0;box-shadow:0 0 36px #267eff1a,inset 0 0 30px #963eff1a}
.intro-rings::after{content:"";position:absolute;inset:12%;border:1px solid #956eff55;border-radius:50%}
.intro-content{position:relative;z-index:2;display:flex;align-items:center;flex-direction:column;width:100%;transform:translateY(-2vh)}
.intro-eye{position:relative;width:clamp(240px,46vw,780px);height:clamp(90px,17vw,280px);overflow:hidden;opacity:0;transform:scaleX(.4) scaleY(.025);mix-blend-mode:screen}
.intro-eye img{position:absolute;left:0;top:50%;width:100%;height:auto;transform:translateY(-50%)}
.intro-wordmark{display:flex;justify-content:center;gap:.055em;margin-top:clamp(12px,2vw,38px);font-size:clamp(32px,4.1vw,80px);line-height:1.1;font-weight:800;letter-spacing:.045em}
.intro-wordmark span{opacity:0;transform:translateY(16px) scale(.94);color:#d4eaff;background:linear-gradient(140deg,#49d8ff,#b8c2ff 60%,#a674ff);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}
.intro-tagline{opacity:0;margin:24px 0 0;font-size:clamp(12px,1vw,19px);letter-spacing:.36em;color:#9fb5d3}
.intro-skip{position:absolute;bottom:6vh;right:5vw;opacity:0;font-size:clamp(11px,.8vw,15px);letter-spacing:.12em;color:#91a2bc}
.tv-splash.running .intro-aura{animation:hv-aura 3.15s ease-out both}
.tv-splash.running .intro-seam{animation:hv-seam 1.5s 100ms cubic-bezier(.2,.7,.2,1) both}
.tv-splash.running .intro-streak{animation:hv-streak 1.65s var(--delay) ease-out both}
.tv-splash.running .intro-rings{animation:hv-ring 1.8s 700ms ease-out both}
.tv-splash.running .intro-eye{animation:hv-eye 1.2s 520ms cubic-bezier(.16,.8,.2,1) both}
.tv-splash.running .intro-wordmark span{animation:hv-letter .7s calc(1250ms + var(--i)*45ms) cubic-bezier(.16,.8,.2,1) both}
.tv-splash.running .intro-tagline{animation:hv-caption .65s 2100ms ease-out both}
.tv-splash.running .intro-skip{animation:hv-caption .5s 1800ms ease-out both}
.tv-splash.leaving{opacity:0;transition:opacity 550ms ease-in-out;pointer-events:auto}
.tv-splash.leaving .intro-content{transform:translateY(-2vh) scale(1.13);transition:transform 550ms ease-in}
.tv-splash.quick,.tv-splash.quick .intro-content{transition-duration:160ms}
@keyframes hv-aura{0%{opacity:0;transform:scale(.65)}45%{opacity:1;transform:scale(1.08)}100%{opacity:.55;transform:scale(1)}}
@keyframes hv-seam{0%{opacity:0;transform:scaleX(.02)}20%{opacity:1;transform:scaleX(.4)}48%{opacity:1;transform:scaleX(1)}100%{opacity:0;transform:scaleX(1.3)}}
@keyframes hv-streak{0%{opacity:0;transform:rotate(var(--angle)) scaleX(.04)}25%{opacity:.55;transform:rotate(var(--angle)) scaleX(.7)}100%{opacity:0;transform:rotate(var(--angle)) scaleX(1.2)}}
@keyframes hv-ring{0%{opacity:0;transform:translate(-50%,-50%) scale(.25)}22%{opacity:.7}100%{opacity:0;transform:translate(-50%,-50%) scale(2.7)}}
@keyframes hv-eye{0%{opacity:0;transform:scaleX(.4) scaleY(.025)}30%{opacity:1;transform:scaleX(.95) scaleY(.05)}68%{opacity:1;transform:scaleX(1.045) scaleY(1.06)}100%{opacity:1;transform:scale(1)}}
@keyframes hv-letter{from{opacity:0;transform:translateY(16px) scale(.94)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes hv-caption{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}
.tv-splash.reduced .intro-aura,.tv-splash.reduced .intro-eye,.tv-splash.reduced .intro-wordmark span,.tv-splash.reduced .intro-tagline{animation:none;opacity:1;transform:none}
.tv-splash.reduced .intro-seam,.tv-splash.reduced .intro-streak,.tv-splash.reduced .intro-rings,.tv-splash.reduced .intro-skip{display:none}
.tv-splash.reduced.leaving,.tv-splash.reduced.leaving .intro-content{transition:none;transform:translateY(-2vh)}
@media(prefers-reduced-motion:reduce){.tv-splash.running *{animation:none!important}.tv-splash .intro-aura,.tv-splash .intro-eye,.tv-splash .intro-wordmark span,.tv-splash .intro-tagline{opacity:1;transform:none}.tv-splash .intro-seam,.tv-splash .intro-streak,.tv-splash .intro-rings,.tv-splash .intro-skip{display:none}.tv-splash.leaving,.tv-splash.leaving .intro-content{transition:none;transform:translateY(-2vh)}}
