@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&display=swap');
:root{--bg:#020812;--bg2:#04101d;--panel:#071524;--cyan:#24dcff;--blue:#087cff;--white:#f7fbff;--muted:#9bb3c8;--line:rgba(85,214,255,.18);--green:#45e39f;--danger:#ff6a80;--shadow:0 28px 90px rgba(0,0,0,.42)}
*{box-sizing:border-box} html{scroll-behavior:smooth} body{margin:0;min-height:100vh;font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--white);background:radial-gradient(circle at 8% 0%,rgba(0,118,255,.18),transparent 31%),radial-gradient(circle at 94% 14%,rgba(36,220,255,.08),transparent 25%),linear-gradient(180deg,#020812,#020b15 68%,#020812)}
a{color:inherit;text-decoration:none} button{font:inherit}.hidden{display:none!important}
.topbar{position:sticky;top:0;z-index:100;height:76px;padding:0 clamp(20px,4vw,68px);display:flex;align-items:center;gap:28px;background:rgba(2,8,18,.88);backdrop-filter:blur(20px);border-bottom:1px solid rgba(255,255,255,.06)}
.brand{display:flex;align-items:center;gap:11px;margin-right:auto}.brand-logo{width:48px;height:48px;border-radius:13px;object-fit:cover;box-shadow:0 0 22px rgba(36,220,255,.16)}.brand-copy{display:grid;gap:1px}.brand-copy strong{font-size:21px;letter-spacing:-1.1px}.brand-copy small{font-size:10px;color:#87a4ba;letter-spacing:.04em}
.nav{display:flex;align-items:center;gap:28px;font-size:14px;font-weight:800;color:#bdcad6}.nav a{position:relative;padding:28px 0}.nav a:hover,.nav a.active{color:#fff}.nav a.active:after{content:"";position:absolute;left:0;right:0;bottom:18px;height:2px;background:linear-gradient(90deg,var(--cyan),var(--blue));box-shadow:0 0 14px rgba(36,220,255,.4)}
.ghost-button,.primary-button,.secondary-button,.mini-button{border:0;cursor:pointer;transition:.18s ease}.ghost-button{padding:12px 18px;border-radius:999px;color:#04111c;background:linear-gradient(135deg,#64e8ff,#22c7ff);font-weight:900;box-shadow:0 10px 30px rgba(0,177,255,.18)}.ghost-button:hover,.primary-button:hover{transform:translateY(-1px);filter:brightness(1.08)}
main{width:min(1660px,94vw);margin:0 auto}.hero{position:relative;min-height:590px;margin-top:22px;overflow:hidden;border:1px solid rgba(36,220,255,.12);border-radius:28px;background:linear-gradient(110deg,#04111e 0%,#031523 46%,#041525 100%);box-shadow:var(--shadow);isolation:isolate}.hero-ambient{position:absolute;inset:0;background:radial-gradient(circle at 72% 35%,rgba(0,150,255,.22),transparent 27%),linear-gradient(90deg,rgba(2,8,18,.98) 0%,rgba(2,8,18,.96) 42%,rgba(2,8,18,.35) 72%,rgba(2,8,18,.55) 100%);z-index:-1}
.hero-copy{position:relative;z-index:5;width:min(660px,48%);padding:clamp(42px,5vw,78px);display:flex;min-height:590px;flex-direction:column;justify-content:center}.eyebrow{color:var(--cyan);font-size:11px;font-weight:900;letter-spacing:.19em}.hero h1{margin:18px 0 0;font-size:clamp(46px,5vw,78px);line-height:.98;letter-spacing:-.055em}.hero h1 em{font-style:normal;color:var(--cyan)}.hero-copy>p{max-width:610px;margin:24px 0 0;color:#c9d8e4;font-size:18px;line-height:1.6}.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}.primary-button,.secondary-button{padding:14px 22px;border-radius:13px;font-weight:900}.primary-button{background:#fff;color:#04111c}.secondary-button{border:1px solid rgba(98,233,255,.55);background:rgba(2,8,18,.28);color:#fff}.secondary-button:hover{background:rgba(36,220,255,.08)}.hero-features{display:flex;gap:22px;flex-wrap:wrap;margin-top:28px;color:#8da8bb;font-size:12px;font-weight:700}.hero-features span:first-child{color:#9eecc9}.hero-features b{display:inline-block;width:7px;height:7px;margin-right:6px;border-radius:50%;background:var(--green);box-shadow:0 0 10px rgba(69,227,159,.7)}
.hero-showcase{position:absolute;z-index:3;right:-2%;top:5%;width:58%;height:90%;transform:perspective(1100px) rotateY(-6deg)}.showcase-card{position:absolute;border:1px solid rgba(36,220,255,.48);border-radius:20px;overflow:hidden;background-image:linear-gradient(0deg,rgba(2,8,18,.86),rgba(2,8,18,.04) 58%),var(--art);background-size:cover;background-position:center;box-shadow:0 24px 55px rgba(0,0,0,.38)}.showcase-card span{position:absolute;left:22px;bottom:18px;font-size:clamp(20px,2vw,34px);font-weight:900;text-shadow:0 4px 16px #000}.showcase-a{left:0;top:5%;width:52%;height:45%;transform:rotate(-2deg)}.showcase-b{right:0;top:0;width:44%;height:42%;transform:rotate(1deg)}.showcase-c{left:7%;bottom:0;width:48%;height:43%;transform:rotate(1deg)}.showcase-d{right:-2%;bottom:3%;width:43%;height:45%;transform:rotate(-1deg)}
.channels-section,.player-section,.project-section{width:100%}.channels-section{padding:58px 0 58px}.section-title,.player-heading{display:flex;align-items:end;justify-content:space-between;gap:28px;margin-bottom:18px}.section-title h2,.player-heading h2,.project-copy h2{margin:7px 0 0;font-size:clamp(30px,3vw,46px);letter-spacing:-.045em}.section-title>p{max-width:530px;margin:0;color:var(--muted);font-size:13px;line-height:1.55;text-align:right}
.channel-grid{display:flex;gap:16px;overflow-x:auto;overflow-y:visible;padding:12px 4px 28px;scroll-snap-type:x proximity;scrollbar-width:none}.channel-grid::-webkit-scrollbar{display:none}.channel-card{--card-bg:linear-gradient(135deg,#087f78,#083b52);--card-image:none;position:relative;flex:0 0 clamp(300px,26vw,420px);aspect-ratio:16/9;overflow:hidden;padding:18px;display:flex;flex-direction:column;justify-content:end;border:2px solid rgba(255,255,255,.07);border-radius:20px;cursor:pointer;background:var(--card-bg);box-shadow:0 16px 38px rgba(0,0,0,.24);transition:.18s ease;scroll-snap-align:start}.channel-card.has-artwork{background-image:var(--card-image);background-size:cover;background-position:center}.channel-card:before{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(2,8,18,.95) 0%,rgba(2,8,18,.42) 34%,rgba(2,8,18,.04) 72%)}.channel-card:after{content:"";position:absolute;inset:0;border:2px solid var(--cyan);border-radius:inherit;opacity:0;box-shadow:inset 0 0 0 1px rgba(36,220,255,.14),0 0 28px rgba(36,220,255,.15);transition:.18s}.channel-card:hover{transform:translateY(-5px);filter:brightness(1.04)}.channel-card:hover:after,.channel-card.active:after{opacity:1}.channel-card-content{position:relative;z-index:2}.channel-meta{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:36px}.channel-icon{width:44px;height:44px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.14);border-radius:13px;background:rgba(2,8,18,.5);backdrop-filter:blur(10px);font-size:21px}.channel-logo{max-width:115px;max-height:46px;object-fit:contain;filter:drop-shadow(0 3px 10px rgba(0,0,0,.65))}.live-badge{padding:6px 9px;border-radius:999px;font-size:9px!important;font-weight:900;letter-spacing:.07em}.channel-card h3{margin:0 0 6px;font-size:clamp(20px,1.7vw,27px);text-shadow:0 3px 12px #000}.channel-card p{margin:0;color:#d0dfeb;font-size:12.5px;line-height:1.45;text-shadow:0 2px 9px #000}.channel-play{display:inline-flex;align-items:center;gap:7px;margin-top:12px;color:var(--cyan);font-weight:900;font-size:12px}.channel-programming{margin-top:8px;padding:7px 9px;border:1px solid rgba(102,231,255,.18);border-radius:9px;background:rgba(2,8,16,.62);font-size:10.5px;line-height:1.4;backdrop-filter:blur(8px)}.channel-programming span{color:#c7d9e6}
.player-section{padding:22px 0 72px}.player-heading p{margin:9px 0 0;color:var(--muted);line-height:1.5}.player-actions{display:flex;gap:10px}.mini-button{padding:11px 14px;border:1px solid rgba(255,255,255,.12);border-radius:11px;color:#dfeaf4;background:rgba(255,255,255,.04)}.mini-button:hover{border-color:rgba(36,220,255,.55);background:rgba(36,220,255,.08)}.video-shell{position:relative;overflow:hidden;aspect-ratio:16/9;border:1px solid rgba(76,187,255,.22);border-radius:24px;background:#000;box-shadow:var(--shadow)}video{display:block;width:100%;height:100%;background:#000}.video-placeholder{position:absolute;inset:0;display:grid;place-content:center;text-align:center;background:radial-gradient(circle at 50% 40%,rgba(0,119,255,.24),transparent 28%),linear-gradient(135deg,#05111f,#02060c)}.video-placeholder img{width:104px;height:104px;margin:0 auto 15px;border-radius:24px;box-shadow:0 0 32px rgba(36,220,255,.16)}.video-placeholder strong{font-size:22px}.video-placeholder p{margin:8px 0 0;color:var(--muted)}.video-placeholder.hidden{display:none}.player-status{position:absolute;left:16px;bottom:58px;max-width:calc(100% - 32px);padding:10px 14px;border-radius:10px;color:#fff;font-size:13px;background:rgba(11,21,32,.94);border:1px solid rgba(255,255,255,.12)}.player-status.error{border-color:rgba(255,92,117,.42);color:#ffd6dd}
.project-section{margin:0 0 80px;padding:42px;display:grid;grid-template-columns:1.1fr .9fr;gap:48px;border:1px solid rgba(36,220,255,.11);border-radius:25px;background:linear-gradient(135deg,rgba(0,119,255,.10),rgba(31,216,255,.025)),rgba(7,18,33,.75)}.project-copy p{max-width:650px;color:var(--muted);line-height:1.65}.project-stats{display:grid;grid-template-columns:1fr 1fr;gap:12px}.stat{padding:20px;border:1px solid rgba(255,255,255,.07);border-radius:16px;background:rgba(255,255,255,.025)}.stat strong{display:block;color:var(--cyan);font-size:18px}.stat span{display:block;margin-top:6px;color:var(--muted);font-size:12px;line-height:1.45}
footer{padding:30px clamp(20px,4vw,68px);display:flex;align-items:center;justify-content:space-between;gap:20px;border-top:1px solid rgba(255,255,255,.06);color:#7890a4}.footer-brand{display:flex;align-items:center;gap:10px}.footer-brand img{width:42px;height:42px;border-radius:11px}.footer-brand span{display:grid}.footer-brand strong{color:#fff;font-size:16px}.footer-brand small{font-size:10px;color:#7890a4}footer p{font-size:12px}
@media(max-width:1100px){.hero-copy{width:56%}.hero-showcase{width:53%;opacity:.78}.project-section{grid-template-columns:1fr}.section-title>p{display:none}}
@media(max-width:760px){.topbar{height:66px;padding:0 16px}.brand-logo{width:42px;height:42px}.brand-copy small,.nav,.ghost-button{display:none}main{width:100%}.hero{margin-top:0;border-radius:0;border-left:0;border-right:0;min-height:620px}.hero-copy{width:100%;min-height:620px;padding:38px 20px;justify-content:flex-end;background:linear-gradient(0deg,rgba(2,8,18,.98) 8%,rgba(2,8,18,.72) 55%,rgba(2,8,18,.22) 100%)}.hero h1{font-size:clamp(40px,12vw,58px)}.hero-showcase{inset:0;width:100%;height:58%;transform:none;opacity:.6}.showcase-a{left:-5%;top:4%;width:58%;height:55%}.showcase-b{right:-6%;top:0;width:55%;height:52%}.showcase-c{left:8%;bottom:0;width:52%;height:47%}.showcase-d{right:-8%;bottom:-3%;width:48%;height:48%}.hero-showcase span{display:none}.hero-features{display:none}.channels-section,.player-section{padding-left:18px;padding-right:18px}.section-title,.player-heading{display:block}.player-actions{margin-top:15px}.channel-card{flex-basis:84vw}.project-section{margin:0 18px 55px;padding:26px}.project-stats{grid-template-columns:1fr}.footer-brand+ p{display:none}}

/* ============================================================
   TVGIRO DESIGN V2 — acabamento visual
   ============================================================ */
.hero::before{
  content:"";
  position:absolute;
  z-index:1;
  width:720px;
  height:720px;
  right:-260px;
  top:-360px;
  border:2px solid rgba(36,220,255,.32);
  border-radius:50%;
  box-shadow:0 0 48px rgba(0,151,255,.15),inset 0 0 48px rgba(36,220,255,.05);
  pointer-events:none;
}
.hero::after{
  content:"";
  position:absolute;
  z-index:1;
  width:560px;
  height:560px;
  right:-195px;
  top:-285px;
  border:1px solid rgba(8,124,255,.55);
  border-radius:50%;
  filter:drop-shadow(0 0 12px rgba(36,220,255,.22));
  pointer-events:none;
}
.hero-copy,.hero-showcase{z-index:3}
.showcase-card{background:#06111d}
.showcase-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;filter:saturate(1.06) contrast(1.02)}
.showcase-card::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(2,8,18,.88) 0%,rgba(2,8,18,.13) 55%,rgba(2,8,18,.02) 100%)}
.showcase-card span{z-index:2}
.showcase-card:hover img{transform:scale(1.02)}
.showcase-card img{transition:transform .25s ease}

/* Artes locais como fallback visual para canais conhecidos, sem alterar app.js */
.channel-card:not(.has-artwork)[data-channel="nostalgia"],
.channel-card:not(.has-artwork)[data-channel="canal-nostalgia"]{background-image:url('tv/assets/cards/nostalgia.png');background-size:cover;background-position:center}
.channel-card:not(.has-artwork)[data-channel="tempo"],
.channel-card:not(.has-artwork)[data-channel="canal-tempo"]{background-image:url('tv/assets/cards/tempo.png');background-size:cover;background-position:center}
.channel-card:not(.has-artwork)[data-channel="infantil"],
.channel-card:not(.has-artwork)[data-channel="canal-infantil"]{background-image:url('tv/assets/cards/infantil.png');background-size:cover;background-position:center}
.channel-card:not(.has-artwork)[data-channel="unisantos"],
.channel-card:not(.has-artwork)[data-channel="tv-serra-do-mar"],
.channel-card:not(.has-artwork)[data-channel="tv-serra-do-mar-unisantos"]{background-image:url('tv/assets/cards/unisantos.png');background-size:cover;background-position:center}
.channel-card:not(.has-artwork)[data-channel="sony"],
.channel-card:not(.has-artwork)[data-channel="sony-movies"]{background-image:url('tv/assets/cards/sony_movies.png');background-size:cover;background-position:center}

.channel-card:not(.has-artwork)[data-channel="nostalgia"] .channel-icon,
.channel-card:not(.has-artwork)[data-channel="tempo"] .channel-icon,
.channel-card:not(.has-artwork)[data-channel="infantil"] .channel-icon,
.channel-card:not(.has-artwork)[data-channel="unisantos"] .channel-icon,
.channel-card:not(.has-artwork)[data-channel="tv-serra-do-mar"] .channel-icon,
.channel-card:not(.has-artwork)[data-channel="tv-serra-do-mar-unisantos"] .channel-icon,
.channel-card:not(.has-artwork)[data-channel="sony"] .channel-icon,
.channel-card:not(.has-artwork)[data-channel="sony-movies"] .channel-icon{visibility:hidden}

.channel-card{background-position:center;background-size:cover}
.channel-card.active{transform:translateY(-3px)}
.video-shell{outline:1px solid rgba(36,220,255,.05)}

@media(max-width:760px){
  .hero::before,.hero::after{display:none}
}

/* TVGIRO V3 - cards locais no site */
.channel-card.has-artwork{background-position:center!important;background-size:cover!important}
.channel-card.has-artwork:before{background:linear-gradient(0deg,rgba(2,8,18,.90) 0%,rgba(2,8,18,.35) 40%,rgba(2,8,18,.02) 76%)!important}
.channel-card.has-artwork .channel-meta{margin-bottom:54px}


/* TVGIRO V4 - acabamento dos cards */
@media (min-width: 1100px){
  .channel-card{
    flex:0 0 calc((100% - 48px)/4) !important;
    min-width:0;
  }
}
.channel-card.branded-artwork h3,
.channel-card.branded-artwork p{display:none!important}
.channel-card.branded-artwork .channel-meta{margin-bottom:72px!important}
.channel-card.branded-artwork .channel-play{
  width:max-content;
  padding:6px 9px;
  border-radius:9px;
  background:rgba(2,8,18,.68);
  border:1px solid rgba(98,233,255,.18);
  color:#fff;
  backdrop-filter:blur(8px)
}
