/* VEIGA — Astoria, Inter, Velvety Crimson. Shared by all application screens. */
@font-face{font-family:Astoria;src:url('/fonts/Astoria-Roman.ttf') format('truetype');font-display:swap;font-weight:400}
@font-face{font-family:Astoria;src:url('/fonts/Astoria-Medium.ttf') format('truetype');font-display:swap;font-weight:500}
@font-face{font-family:Astoria;src:url('/fonts/Astoria-Bold.ttf') format('truetype');font-display:swap;font-weight:700}
@font-face{font-family:Inter;src:url('/fonts/Inter-Variable.ttf') format('truetype');font-display:swap;font-weight:100 900}
:root{--bg:#000;--text:#f4f4f2;--muted:#aaa;--red:#700202;--red-hover:#920909;--red-tint:rgba(112,2,2,.18);--card:#191919;--card-soft:#131313;--card-border:#ffffff1c;--radius:12px;--radius-sm:7px;--glass-blur:blur(16px)}
body,input,textarea,select,button{font-family:Inter,sans-serif}
h1,h2,h3,.page-title,.tv-title{font-family:Astoria,Georgia,serif;font-weight:500;letter-spacing:-.02em}
body{background-color:#000;color:#f4f4f2}
button,a,input,textarea,select{transition:background-color .2s,border-color .2s,box-shadow .2s}
button:hover{filter:brightness(1.12)}
:focus-visible{outline:2px solid #f4f4f2;outline-offset:3px}
/* Channel atmosphere is deliberately local; performance colours stay legible. */
#tv .tv-rowhead{background:linear-gradient(100deg,rgba(var(--amb-rgb),.42),rgba(var(--amb-rgb),.13) 60%,#111)!important;border-left-color:rgb(var(--amb-rgb))!important;isolation:isolate}
#tv .tv-rowhead::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 80% 65%,rgba(var(--amb-rgb),.27),transparent 75%)!important;z-index:-1}
#tv .tv-rowhead::after{background:linear-gradient(90deg,#0005,transparent)!important;z-index:-1}
#tv .tv-rowhead-portrait{width:100px;object-position:bottom center!important}
#tv .tv-cutout-fallback{width:48px;height:48px;top:50%;bottom:auto;right:12px;transform:translateY(-50%);border-radius:8px!important;object-fit:contain!important}
#tv .tv-chip .tv-spark{filter:none!important;opacity:1!important}
#tv .tv-chip .tv-pct{filter:none!important;text-shadow:none!important}
#tv .tv-chip{box-shadow:inset 0 1px #ffffff05!important}
/* Thumbnail interiors float; label anchors remain exactly on observed data. */
html[data-motion=cinema] [data-screen="2"][aria-hidden="false"] .trend-thumbnail{animation:veiga-float 5.5s ease-in-out infinite}
.trend-thumbnail{background:#191919;border-radius:7px;overflow:hidden;box-shadow:0 6px 0 -3px #333,0 16px 20px -12px #000!important}
.tv-g2-nodelabel text{font-variant-numeric:tabular-nums;letter-spacing:.02em}
#tv .tv-g2-nodelabel rect{fill:#191919!important;stroke:#ffffff30;stroke-width:1}
@keyframes veiga-float{0%,100%{translate:0 0}50%{translate:0 -5px}}
/* Rank belongs to the plinth, below the card, including during spotlight. */
#tv .tv-pod-card>.tv-pod-rank{position:absolute!important;z-index:2;left:0;right:0;bottom:calc(-1 * var(--pod-rise) + 9px);height:calc(var(--pod-rise) - 32px);min-height:0;margin:0;align-items:center;justify-content:center;font-size:42px;width:auto;pointer-events:none}
#tv .tv-pod-base{z-index:-1}
#tv .tv-pod-card{padding-top:24px}
#tv .tv-pod-card.pod-1{animation-name:podIn!important}
/* A slowly passing light, not an endlessly moving KPI. */
#tv .tv-ag-tile{position:relative;isolation:isolate}
#tv .tv-ag-tile::before{content:'';position:absolute;inset:0;pointer-events:none;border-radius:inherit;z-index:-1;background:radial-gradient(ellipse at 15% 0,#ffffff0d,transparent 65%);background-size:200% 200%}
html[data-motion=cinema] [data-screen="4"][aria-hidden="false"] .tv-ag-tile::before{animation:veiga-light 11s ease-in-out infinite alternate}
html[data-motion=cinema] [data-screen="4"][aria-hidden="false"] .tv-ag-tile:nth-child(2n)::before{animation-delay:-5s}
html[data-motion=cinema] [data-screen="4"][aria-hidden="false"] .tv-ag-section-lbl .vm-icon{animation:veiga-float 6s ease-in-out infinite}
@keyframes veiga-light{from{background-position:0 0;opacity:.4}to{background-position:100% 100%;opacity:1}}
.tv-box-card-frame{isolation:isolate}
#tv .tv-box-card-thumb.box-cover{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:3;opacity:1;pointer-events:none;transition:opacity .65s ease}
#tv .tv-box-card-thumb.box-cover-out{opacity:0}
/* Graphite 3D accents retain volume, without the former pink neon. */
.vm-asset-object{filter:grayscale(.8)}
html.vm-motion-paused *,html.vm-motion-paused *::before,html.vm-motion-paused *::after{animation-play-state:paused!important}
html[data-motion=off] *,html[data-motion=off] *::before,html[data-motion=off] *::after{animation-duration:1ms!important;animation-delay:0ms!important;animation-iteration-count:1!important;transition:none!important}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:1ms!important;animation-delay:0ms!important;animation-iteration-count:1!important;transition:none!important}}
@media(max-width:700px){#tv .tv-rowhead-portrait{width:55px}#tv .tv-cutout-fallback{width:38px;height:38px;right:5px}}
/* Low-contrast graphite relief, shared with the social kit's circular pictos. */
.vm-title-mark{box-shadow:inset 1px 1px 2px #ffffff40,inset -2px -3px 5px #000,0 4px 8px #0008;background:linear-gradient(135deg,#333,#101010 55%,#222)}
html[data-motion=cinema] #tv[data-scene="6"] .vm-atmosphere{animation:veiga-mountain-drift 22s ease-in-out infinite alternate}
@keyframes veiga-mountain-drift{from{transform:scale(1) translateY(0)}to{transform:scale(1.025) translateY(-5px)}}
