/* ============================================================
   DoramaX · folha do site (catálogo, título, player, obrigado, admin)
   Portada do protótipo. O checkout NÃO usa esta folha: ele inlina a
   própria para proteger o LCP. (RNF-02, ADR-0002)
============================================================ */
/* Sem @import: o Propshaft não empacota CSS, e um @import não resolvido é
   uma folha que some em silêncio — foi exatamente o que aconteceu aqui.
   A ordem é garantida pelos stylesheet_link_tag do layout. */

/* ============================================================ HEADER */
header{position:fixed;top:0;left:0;right:0;z-index:50;transition:.35s}
header.scrolled{background:rgba(10,6,20,.78);backdrop-filter:blur(18px);border-bottom:1px solid var(--line)}
.header-in{max-width:1400px;margin:0 auto;padding:16px 28px;display:flex;align-items:center;gap:34px;justify-content:space-between}
.logo{font-weight:800;font-size:1.45rem;letter-spacing:.02em;display:flex;align-items:center;gap:8px}
.logo b{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.logo i{width:9px;height:9px;border-radius:50%;background:var(--grad);display:inline-block;box-shadow:0 0 14px var(--red);animation:pulse 2s infinite}
@keyframes pulse{50%{transform:scale(1.5);opacity:.6}}
.nav{display:flex;gap:26px;flex:1}
.nav a{font-size:.86rem;color:var(--muted);font-weight:600;letter-spacing:.04em;transition:.25s;position:relative;padding:4px 0}
.nav a:hover,.nav a.on{color:#fff}
.nav a.on::after{content:"";position:absolute;left:0;right:0;bottom:-4px;height:2px;background:var(--grad);border-radius:2px}
.header-actions{display:flex;gap:12px;align-items:center}
.avatar{width:40px;height:40px;border-radius:50%;background:var(--grad);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:.85rem;box-shadow:0 0 0 2px rgba(255,255,255,.15)}
.burger{display:none;flex-direction:column;gap:5px;padding:6px}
.burger span{width:24px;height:2px;background:#fff;border-radius:2px;transition:.3s}
.mobile-menu{display:none;flex-direction:column;gap:4px;padding:14px 28px 20px;background:rgba(10,6,20,.96);backdrop-filter:blur(18px);border-bottom:1px solid var(--line)}
.mobile-menu.open{display:flex}
.mobile-menu a{padding:12px 6px;border-bottom:1px solid var(--line);color:var(--muted);font-weight:600}
.mobile-menu a:hover{color:#fff}

/* Busca global atrás da lupa (padrão Netflix/Viki): fechada é só um botão
   redondo de vidro; aberta, o campo expande inline empurrando as ações.
   `visibility` entra na transição para o campo fechado não receber foco
   de teclado invisível. */
.header-search{display:flex;align-items:center}
.header-search__input{width:0;visibility:hidden;opacity:0;padding:10px 0;border:0;border-bottom:1px solid transparent;background:transparent;outline:none;font-size:.86rem;color:var(--text);transition:width .35s cubic-bezier(.2,.9,.3,1.3),opacity .25s ease,border-color .25s ease,visibility .35s}
.header-search.open .header-search__input{width:min(230px,24vw);visibility:visible;opacity:1;border-bottom-color:var(--violet)}
.header-search__input::placeholder{color:var(--muted)}
.search-toggle{width:40px;height:40px;padding:0;border-radius:50%;background:var(--glass);border:1px solid var(--line);backdrop-filter:blur(8px);display:grid;place-items:center;transition:.25s}
.search-toggle:hover{background:rgba(255,255,255,.13);border-color:rgba(255,255,255,.22)}
.search-toggle[aria-expanded="true"]{background:var(--grad);border-color:transparent;box-shadow:0 6px 18px -6px rgba(255,45,85,.5)}
.search-toggle svg{width:17px;height:17px;stroke:#fff;fill:none;stroke-width:2.2;stroke-linecap:round}

/* ============================================================ HERO */
.hero{min-height:96vh;display:flex;align-items:flex-end;position:relative;overflow:hidden;padding:130px 28px 70px}
.hero-bg{position:absolute;inset:0;background:
  radial-gradient(1000px 600px at 78% 20%,var(--hc1,#ff5e8a) 0%,transparent 55%),
  radial-gradient(800px 700px at 15% 85%,var(--hc2,#7c3aed) 0%,transparent 55%),
  linear-gradient(180deg,rgba(10,6,20,.35),var(--bg) 92%);opacity:.85}
.hero-bg::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(115deg,transparent 0 46px,rgba(255,255,255,.028) 46px 47px)}
.hero-in{position:relative;max-width:1400px;margin:0 auto;width:100%}
.hero-tag{display:inline-flex;align-items:center;gap:10px;padding:8px 18px;border-radius:99px;background:var(--glass);border:1px solid var(--line);backdrop-filter:blur(10px);font-size:.72rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:#ffd7e0;margin-bottom:22px}
.hero-tag i{width:7px;height:7px;border-radius:50%;background:var(--red);box-shadow:0 0 10px var(--red);animation:pulse 1.6s infinite}
.hero h1{font-family:'Fraunces',Georgia,serif;font-style:italic;font-weight:600;font-size:clamp(3.2rem,9vw,7.6rem);line-height:.95;letter-spacing:-.02em;margin-bottom:10px;
  background:linear-gradient(115deg,#fff 20%,#ffc2d1 45%,#c4b5fd 75%);-webkit-background-clip:text;background-clip:text;color:transparent;animation:rise .9s both}
.hero-sub{font-family:'Fraunces',Georgia,serif;font-style:italic;font-size:clamp(1rem,2.2vw,1.5rem);color:#e9d5ff;margin-bottom:20px;animation:rise .9s .12s both}
.hero-meta{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:18px;animation:rise .9s .2s both}
.hero p.sinopse{max-width:560px;color:var(--muted);line-height:1.75;font-size:.95rem;margin-bottom:30px;animation:rise .9s .28s both}
.hero-btns{display:flex;gap:14px;flex-wrap:wrap;animation:rise .9s .36s both}

/* ============================================================ SEÇÕES / CARROSSÉIS */
.section{max-width:1400px;margin:0 auto;padding:44px 28px 8px}
.section-head{display:flex;align-items:baseline;gap:16px;margin-bottom:20px}
.section-head h2{font-size:clamp(1.35rem,2.6vw,1.9rem);font-weight:800;letter-spacing:-.01em}
.section-head h2 em{font-family:'Fraunces',Georgia,serif;font-style:italic;font-weight:600;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.section-head span{color:var(--muted);font-size:.82rem}
.row{position:relative}
.row-track{display:flex;gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;padding:14px 6px 22px;scrollbar-width:none;-ms-overflow-style:none}
.row-track::-webkit-scrollbar{display:none}
.row-btn{position:absolute;top:42%;z-index:5;width:46px;height:46px;border-radius:50%;background:rgba(15,9,30,.85);border:1px solid var(--line);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;transition:.3s;opacity:0}
.row:hover .row-btn,.row-btn:focus-visible{opacity:1}
.row-btn:hover{background:var(--grad);transform:scale(1.1)}
.row-btn.prev{left:-10px}.row-btn.next{right:-10px}
.row-btn svg{width:18px;height:18px;fill:#fff}

/* ============================================================ CARD */
.card{min-width:196px;width:196px;scroll-snap-align:start;position:relative;transition:transform .45s cubic-bezier(.2,.9,.3,1.3);display:block}
.card:hover{transform:translateY(-10px)}
.card-poster{aspect-ratio:2/3;border-radius:18px;position:relative;overflow:hidden;border:1px solid var(--line);background:linear-gradient(160deg,var(--c1),var(--c2) 62%,#170f29);transition:.4s}
.card:hover .card-poster{box-shadow:0 22px 44px -12px var(--c1),0 0 0 1px rgba(255,255,255,.16)}
.card-poster::before{content:attr(data-letter);position:absolute;top:-26px;right:-12px;font-family:'Fraunces',Georgia,serif;font-style:italic;font-size:9rem;font-weight:600;color:rgba(255,255,255,.13);line-height:1}
.card-poster::after{content:"";position:absolute;inset:0;background:radial-gradient(340px 200px at 30% 20%,rgba(255,255,255,.22),transparent 60%),linear-gradient(180deg,transparent 42%,rgba(5,2,12,.92))}
.card-art{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1}
.card-flag{position:absolute;top:12px;left:12px;z-index:2;font-size:.68rem;font-weight:700;padding:5px 11px;border-radius:99px;background:rgba(5,2,12,.72);backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.18)}
.card-rate{position:absolute;top:12px;right:12px;z-index:2;font-size:.72rem;font-weight:800;color:var(--gold);padding:5px 10px;border-radius:99px;background:rgba(5,2,12,.72);backdrop-filter:blur(6px);border:1px solid rgba(251,191,36,.3)}
.card-new{position:absolute;top:46px;left:12px;z-index:2;font-size:.6rem;font-weight:800;letter-spacing:.12em;padding:4px 10px;border-radius:99px;background:var(--grad)}
.card-price{position:absolute;bottom:12px;right:12px;z-index:4;font-size:.74rem;font-weight:800;padding:6px 12px;border-radius:99px;background:rgba(5,2,12,.72);backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.16)}
.card-title{position:absolute;bottom:0;left:0;right:0;z-index:2;padding:16px 14px}
.card-wrap .card-title{padding-right:56px}
.card-title h3{font-family:'Fraunces',Georgia,serif;font-style:italic;font-weight:600;font-size:1.12rem;line-height:1.15;text-shadow:0 2px 12px rgba(0,0,0,.6)}
.card-title small{font-size:.7rem;color:#d8d2ec;font-weight:600;letter-spacing:.05em}
.card-hover{position:absolute;inset:0;z-index:3;display:flex;align-items:center;justify-content:center;opacity:0;transition:.35s;background:rgba(8,4,16,.35);backdrop-filter:blur(2px)}
.card:hover .card-hover,.card:focus-visible .card-hover{opacity:1}
.card-hover span{width:58px;height:58px;border-radius:50%;background:var(--grad);display:flex;align-items:center;justify-content:center;box-shadow:0 10px 30px -6px rgba(255,45,85,.7);transform:scale(.6);transition:.35s}
.card:hover .card-hover span{transform:scale(1)}
.card-hover svg{width:22px;height:22px;fill:#fff;margin-left:3px}
.card--locked .card-art{filter:blur(7px);opacity:.62;transform:scale(1.08)}
.card--locked .card-rate{color:#ffd08a;font-size:.9rem}
.seasonal-pass{padding:24px;border:1px solid rgba(139,92,246,.4);border-radius:20px;background:linear-gradient(160deg,rgba(139,92,246,.14),transparent 70%)}
.seasonal-pass .offer-row{background:rgba(5,2,12,.35)}
.rank-wrap{display:flex;align-items:flex-end}
.rank-num{font-size:5.4rem;font-weight:800;line-height:.78;margin-right:-16px;z-index:0;color:transparent;-webkit-text-stroke:2px rgba(255,255,255,.28);transition:.3s}
.rank-wrap:hover .rank-num{-webkit-text-stroke:2px var(--red)}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:22px;padding:10px 4px 24px}
.grid .card{width:auto;min-width:0}

/* ============================================================ PÁGINAS */
.page{max-width:1400px;margin:0 auto;padding:130px 28px 60px;min-height:100vh}
.page-title{font-size:clamp(1.9rem,4vw,2.8rem);font-weight:800;letter-spacing:-.02em;margin-bottom:6px}
.page-title em{font-family:'Fraunces',Georgia,serif;font-style:italic;font-weight:600;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.page-sub{color:var(--muted);font-size:.9rem;margin-bottom:30px}
.toolbar{display:flex;flex-direction:column;gap:16px;margin:8px 0 26px}
/* Na home a toolbar entra sem a fileira de selects — só a pílula de busca,
   com margem de segurança para nunca colar no hero nem no "continuar". */
.home-toolbar{max-width:1400px;margin:26px auto 6px;padding:0 28px}
.home-toolbar .toolbar{margin:0}
.search{display:flex;align-items:center;gap:12px;background:rgba(255,255,255,.05);border:1px solid var(--line);border-radius:99px;padding:14px 22px;max-width:520px;transition:.3s}
.search:focus-within{border-color:var(--violet);box-shadow:0 0 0 4px rgba(139,92,246,.16)}
.search svg{width:18px;height:18px;stroke:var(--muted);fill:none;stroke-width:2;flex-shrink:0}
.search input{flex:1;background:none;border:none;outline:none;font-size:.92rem}
.chips{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.chips b{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-right:4px}
.fchip{padding:9px 18px;border-radius:99px;background:rgba(255,255,255,.05);border:1px solid var(--line);font-size:.8rem;font-weight:600;color:var(--muted);transition:.25s;display:inline-block}
.fchip:hover{color:#fff;border-color:rgba(255,255,255,.3)}
.fchip.on{background:var(--grad);color:#fff;border-color:transparent;box-shadow:0 6px 18px -6px rgba(255,45,85,.5)}
.result-info{color:var(--muted);font-size:.84rem;padding:8px 4px}
.empty{text-align:center;padding:80px 20px;color:var(--muted)}
.empty .big{font-size:3.4rem;margin-bottom:14px}

/* ============================================================ HOME VAZIA */
/* Sem nenhum título publicado o hero segura a página sozinho: mesma cara
   do hero de título, mas centralizado na vertical e mais baixo — sem arte
   nem sinopse de catálogo, 96vh seria um buraco. */
.hero--empty{min-height:74vh;align-items:center;padding-top:150px}
.hero--empty .hero-meta{margin-bottom:28px}

/* Os passos dão corpo à visita enquanto a cortina não sobe. */
.home-steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:18px}
.home-step__num{font-family:'Fraunces',Georgia,serif;font-style:italic;font-weight:600;font-size:1.9rem;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.home-step h3{font-size:1.02rem;margin:12px 0 8px}
.home-step p{color:var(--muted);font-size:.86rem;line-height:1.7}

/* O CTA "Buscar por título" do estado vazio ancora na pílula de busca —
   sem margem de rolagem ela some debaixo do header fixo. */
.home-toolbar{scroll-margin-top:110px}

/* ============================================================ PÁGINA DO TÍTULO */
.d-hero{position:relative;padding:140px 28px 50px;overflow:hidden}
.d-hero-bg{position:absolute;inset:0;background:
  radial-gradient(900px 520px at 82% 12%,var(--c1) 0%,transparent 55%),
  radial-gradient(760px 640px at 8% 90%,var(--c2) 0%,transparent 55%),
  linear-gradient(180deg,rgba(10,6,20,.4),var(--bg) 94%);opacity:.8}
.d-hero-in{position:relative;max-width:1400px;margin:0 auto;display:grid;grid-template-columns:230px 1fr;gap:42px;align-items:end}
.d-poster{aspect-ratio:2/3;border-radius:20px;background:linear-gradient(160deg,var(--c1),var(--c2) 62%,#170f29);border:1px solid rgba(255,255,255,.2);box-shadow:0 30px 70px -18px var(--c1);position:relative;overflow:hidden}
.d-poster::before{content:attr(data-letter);position:absolute;top:-20px;right:-8px;font-family:'Fraunces',Georgia,serif;font-style:italic;font-size:8rem;color:rgba(255,255,255,.14)}
.d-poster::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(5,2,12,.9))}
.d-poster span{position:absolute;bottom:14px;left:14px;right:14px;z-index:2;font-family:'Fraunces',Georgia,serif;font-style:italic;font-size:1.15rem;text-shadow:0 2px 10px rgba(0,0,0,.7)}
.back{display:inline-flex;align-items:center;gap:8px;color:var(--muted);font-size:.84rem;font-weight:700;margin-bottom:22px;transition:.25s}
.back:hover{color:#fff;transform:translateX(-4px)}
.d-info h1{font-family:'Fraunces',Georgia,serif;font-style:italic;font-size:clamp(2.4rem,5.5vw,4.4rem);line-height:1;margin-bottom:14px}
.d-meta{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:18px}
.d-info p.sinopse{max-width:640px;color:var(--muted);line-height:1.8;font-size:.94rem;margin-bottom:26px}
.d-btns{display:flex;gap:14px;flex-wrap:wrap;align-items:center}
.d-body{max-width:1400px;margin:0 auto;padding:20px 28px 70px;display:flex;flex-direction:column;gap:56px}
.block h3{font-size:1.3rem;font-weight:800;margin-bottom:20px;display:flex;align-items:center;gap:12px}
.block h3::before{content:"";width:5px;height:24px;border-radius:3px;background:var(--grad)}
.eps{display:grid;grid-template-columns:repeat(auto-fill,minmax(158px,1fr));gap:14px}
.ep{padding:20px 18px;border-radius:16px;background:var(--card);border:1px solid var(--line);transition:.3s;position:relative;overflow:hidden;text-align:left;display:block}
.ep:hover{border-color:var(--violet);transform:translateY(-4px);background:rgba(139,92,246,.1)}
.ep b{font-size:1.5rem;font-weight:800;display:block;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.ep small{color:var(--muted);font-size:.72rem}
.ep .ply{position:absolute;right:14px;top:16px;width:30px;height:30px;border-radius:50%;background:var(--glass);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;opacity:0;transition:.3s}
.ep:hover .ply{opacity:1}
.ep .ply svg{width:12px;height:12px;fill:#fff;margin-left:2px}
.ep.locked{opacity:.55}
.ep.locked:hover{border-color:var(--line);transform:none;background:var(--card)}
.ep-free{display:inline-block;margin-top:6px;font-size:.6rem;font-weight:800;letter-spacing:.1em;padding:3px 8px;border-radius:99px;background:var(--grad)}

/* oferta na página do título */
.offer-row{display:flex;justify-content:space-between;align-items:center;gap:20px;background:var(--card);border:1px solid var(--line);border-radius:18px;padding:20px 24px;margin-bottom:12px;transition:.3s}
.offer-row:hover{border-color:var(--violet);background:rgba(139,92,246,.08)}
.offer-row h4{font-size:1rem;font-weight:700;margin-bottom:4px}
.offer-price{text-align:right;flex-shrink:0}
.offer-price s{color:var(--muted);font-size:.8rem}
.offer-price b{display:block;font-size:1.5rem;font-weight:800;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;margin-bottom:8px}

/* ============================================================ PLAYER */
.player-page{max-width:1100px;margin:0 auto;padding:120px 28px 70px}
.player-frame{aspect-ratio:16/9;background:#000;border-radius:20px;overflow:hidden;border:1px solid var(--line);box-shadow:0 40px 90px -30px rgba(0,0,0,.9)}
.player-frame video{width:100%;height:100%;display:block;object-fit:contain;background:#000}
.player-frame video.hide-native-subs::cue{color:transparent;background:transparent;opacity:0}
.player-frame{position:relative;isolation:isolate}
.player-media{position:absolute;inset:0}
.player-controls{position:absolute;inset:auto 0 0;padding:50px 18px 12px;background:linear-gradient(0deg,rgba(0,0,0,.94),rgba(0,0,0,.62) 64%,transparent);z-index:10;transition:opacity .35s ease,transform .35s ease}
.player-center-controls{position:absolute;z-index:9;left:50%;top:50%;display:flex;align-items:center;gap:30px;transform:translate(-50%,-50%);transition:opacity .3s ease,transform .3s ease}
.player-center-controls button{position:relative;display:grid;place-items:center;padding:0;border:1px solid rgba(255,255,255,.2);border-radius:50%;background:rgba(8,6,13,.62);color:#fff;cursor:pointer;box-shadow:0 10px 35px rgba(0,0,0,.42);backdrop-filter:blur(9px);transition:background .18s ease,border-color .18s ease,transform .18s ease}
.player-center-controls button:hover{border-color:rgba(204,177,255,.62);background:rgba(139,92,246,.48);transform:scale(1.07)}
.player-center-controls button:active{transform:scale(.94)}
.player-center-play{width:72px;height:72px}
.player-center-play svg{width:34px;height:34px}
.player-center-play__pause{display:none}
.player-center-play.is-playing .player-center-play__play{display:none}
.player-center-play.is-playing .player-center-play__pause{display:block}
.player-center-seek{width:58px;height:58px}
.player-center-seek svg{width:36px;height:36px}
.player-center-seek>span{position:absolute;left:50%;top:50%;font-size:.65rem;font-weight:900;line-height:1;transform:translate(-50%,-42%)}
.player-center-seek--forward svg{transform:scaleX(-1)}
/* Estilo "cinema": controles somem parado, como Netflix/HBO. O JS alterna
   .idle após alguns segundos sem movimento (player_controller#showControls). */
.player-frame.idle{cursor:none}
.player-frame.idle .player-controls{opacity:0;transform:translateY(8px);pointer-events:none}
.player-frame.idle .player-center-controls,.player-frame.menu-open .player-center-controls{opacity:0;transform:translate(-50%,-50%) scale(.94);pointer-events:none}
.player-spinner{position:absolute;inset:0;z-index:2;display:flex;align-items:center;justify-content:center;pointer-events:none}
.next-episode-overlay{position:absolute;z-index:8;left:50%;bottom:calc(env(safe-area-inset-bottom,0px) + 68px);display:flex;flex-direction:column;align-items:center;gap:5px;width:min(390px,calc(100% - 24px));box-sizing:border-box;padding:11px 13px;border:1px solid #ffffff32;border-radius:14px;background:#000000c9;color:#fff;text-align:center;transform:translateX(-50%)}
.next-episode-overlay[hidden]{display:none!important}
.next-episode-overlay>span{font-size:.82rem;color:#ddd7e7}
.next-episode-actions{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:6px 8px;margin-top:3px}
.next-episode-actions .btn{padding:8px 12px;font-size:.76rem}
.next-episode-dismiss{flex-basis:100%;padding:2px;border:0;background:none;color:#c2bacd;font-size:.7rem;text-decoration:underline;text-underline-offset:2px;cursor:pointer}
.player-spinner span{width:54px;height:54px;border-radius:50%;border:3px solid rgba(255,255,255,.15);border-top-color:#ac80ff;animation:player-spin .8s linear infinite}
@keyframes player-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.player-spinner span{animation-duration:1.6s}}
.player-paywall{position:absolute;inset:0;z-index:3;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;background:rgba(10,8,20,.92);text-align:center;padding:24px}
.player-paywall p{font-size:1.1rem;color:white;margin:0}
.player-retry{position:absolute;z-index:12;left:50%;top:68%;transform:translate(-50%,-50%)}
.player-report-link{display:block;margin:10px auto 0;color:#ddd5e7;font-size:.78rem;text-decoration:underline;text-underline-offset:3px}
.player-report-feedback{display:block;margin-top:10px;color:#b9f6d0;font-size:.76rem;text-align:center}
.player-skip-intro{position:absolute;z-index:9;right:16px;bottom:calc(env(safe-area-inset-bottom,0px) + 88px)}
.player-page [hidden]{display:none!important}
.player-page .sr-only,.catalog-filters .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.player-timeline{display:flex;align-items:center;height:18px;margin:0 0 1px;cursor:pointer}
.player-timeline input{--played:0%;--buffered:0%;width:100%;height:4px;margin:0;appearance:none;-webkit-appearance:none;border:0;border-radius:999px;outline:0;background:linear-gradient(to right,#b07cff 0 var(--played),rgba(222,218,229,.72) var(--played) var(--buffered),rgba(255,255,255,.22) var(--buffered) 100%);cursor:pointer;transition:height .15s ease}
.player-timeline:hover input,.player-timeline input:focus-visible{height:6px}
.player-timeline input::-webkit-slider-runnable-track{height:100%;background:transparent;border-radius:999px}
.player-timeline input::-moz-range-track{height:100%;background:transparent;border-radius:999px}
.player-timeline input::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;margin-top:calc((4px - 14px)/2);border:0;border-radius:50%;background:#b07cff;box-shadow:0 0 0 3px rgba(176,124,255,.2);opacity:0;transition:opacity .15s ease}
.player-timeline:hover input::-webkit-slider-thumb,.player-timeline input:focus-visible::-webkit-slider-thumb{opacity:1}
.player-timeline input::-moz-range-thumb{width:14px;height:14px;border:0;border-radius:50%;background:#b07cff;box-shadow:0 0 0 3px rgba(176,124,255,.2);opacity:0}
.player-timeline:hover input::-moz-range-thumb,.player-timeline input:focus-visible::-moz-range-thumb{opacity:1}
.player-control-row{display:flex;align-items:center;gap:10px}
.player-control-row button{min-width:44px;min-height:44px;border:0;border-radius:8px;background:transparent;color:white;cursor:pointer;font:inherit}
.player-control-row button:hover{background:rgba(255,255,255,.15)}
.player-icon-control{display:flex;align-items:center;justify-content:center;gap:7px;padding:0 9px;color:rgba(255,255,255,.92)!important;font-size:.72rem!important;font-weight:700!important;transition:color .18s ease,background .18s ease,transform .18s ease}
.player-icon-control:hover{color:#fff!important;transform:scale(1.04)}
.player-icon-control:active{transform:scale(.96)}
.player-icon-control svg{width:20px;height:20px;flex:none}
.player-page :focus-visible{outline:2px solid #b69bff;outline-offset:3px}
.player-time{font-size:.75rem;font-variant-numeric:tabular-nums;margin-right:auto}
.player-volume{display:flex;align-items:center;gap:6px;width:108px;flex:0 0 auto}.player-volume input{width:78px;min-width:0;accent-color:#ac80ff}.volume-icon{display:block;width:20px;height:20px;flex:0 0 20px;color:#fff}
.player-control-menu{position:relative;flex:0 0 auto;color:#fff}
.player-control-menu>summary{display:flex;align-items:center;justify-content:center;gap:7px;min-width:44px;height:44px;padding:0 9px;border-radius:8px;list-style:none;color:#fff;font-size:.72rem;font-weight:700;cursor:pointer;user-select:none}
.player-control-menu>summary::-webkit-details-marker{display:none}
.player-control-menu>summary:hover,.player-control-menu[open]>summary{background:rgba(176,124,255,.22);color:#d9c4ff}
.player-control-menu>summary svg{width:20px;height:20px;flex:none}
.cc-icon{display:grid;place-items:center;min-width:24px;height:18px;padding:0 3px;border:2px solid currentColor;border-radius:3px;font-size:.62rem;font-weight:900;line-height:1}
.player-control-popover{position:absolute;right:0;bottom:calc(100% + 12px);box-sizing:border-box;width:270px;max-height:min(420px,60vh);overflow:auto;padding:17px;border:1px solid rgba(197,164,255,.28);border-radius:14px;background:rgba(13,8,23,.97);box-shadow:0 18px 55px rgba(0,0,0,.65);backdrop-filter:blur(18px);color:#fff}
.player-control-popover:after{content:"";position:absolute;right:17px;bottom:-6px;width:12px;height:12px;border-right:1px solid rgba(197,164,255,.28);border-bottom:1px solid rgba(197,164,255,.28);background:#0d0817;transform:rotate(45deg)}
.player-control-popover>strong{display:block;margin-bottom:14px;color:#d8c5ff;font-size:.72rem;letter-spacing:.11em;text-transform:uppercase}
.player-control-popover label{display:flex;flex-direction:column;gap:7px;margin-top:12px;color:#bbb1c9;font-size:.72rem}
.player-control-popover select,.player-control-popover input[type="number"]{box-sizing:border-box;width:100%;min-height:38px;padding:8px 10px;border:1px solid rgba(190,156,255,.28);border-radius:8px;background:#1b1129;color:#fff;font:inherit}
.player-control-popover small{display:block;margin-top:11px;color:#94899f;font-size:.67rem;line-height:1.45}
.player-control-popover--subtitles{width:min(390px,calc(100vw - 28px))}
.player-control-popover--episodes{width:min(390px,calc(100vw - 28px));padding-right:10px}
.player-control-popover--episodes nav{display:flex;flex-direction:column;gap:5px;max-height:310px;overflow:auto;padding-right:7px}
.player-menu-episode{display:grid;grid-template-columns:92px minmax(0,1fr);align-items:center;gap:11px;padding:7px;border:1px solid transparent;border-radius:10px;color:#ddd7e5;font-size:.75rem}
.player-menu-episode__thumb{display:block;aspect-ratio:16/9;overflow:hidden;border-radius:7px;background:linear-gradient(135deg,#2b1b42,#0c0911)}
.player-menu-episode__thumb img{width:100%;height:100%;display:block;object-fit:cover}
.player-menu-episode__copy{display:flex;min-width:0;flex-direction:column;gap:4px}
.player-menu-episode__copy small{color:#a99db8;font-size:.63rem}
.player-menu-episode__copy strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.player-menu-episode:hover,.player-menu-episode.current{border-color:rgba(176,124,255,.38);background:rgba(176,124,255,.16);color:#fff}
.player-menu-episode--locked{border-color:rgba(255,255,255,.1);background:rgba(255,255,255,.035);color:#aaa3b2}
.player-menu-episode--locked:hover{border-color:rgba(255,190,110,.5);background:rgba(255,190,110,.08);color:#fff}
.player-menu-episode--locked .player-menu-episode__thumb{position:relative}
.player-menu-episode--locked .player-menu-episode__thumb img{filter:blur(7px);opacity:.62;transform:scale(1.08)}
.player-menu-episode__lock{position:absolute;inset:0;display:grid;place-items:center;font-size:1.3rem;text-shadow:0 2px 8px #000}
.player-menu-episode--locked .player-menu-episode__copy em{color:#ffd08a;font-size:.65rem;font-style:normal;font-weight:800}
.player-subtitle-settings{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 12px;margin:0}
.player-subtitle-settings .player-setting-wide{grid-column:1/-1}
.player-control-popover .player-autoplay{flex-direction:row;align-items:center;gap:8px;color:#ddd5e7;line-height:1.35}
.player-control-popover .player-autoplay input{accent-color:#a67cff}
.player-dev-console{margin:10px 4px 18px;border:1px dashed rgba(176,124,255,.32);border-radius:10px;background:rgba(12,8,20,.58);color:#bcaed0;font-size:.68rem}
.player-dev-console>summary{padding:8px 11px;cursor:pointer;color:#a98bd9;font-weight:700;letter-spacing:.08em}
.player-dev-console pre{max-height:150px;overflow:auto;margin:0;padding:0 11px 11px;color:#bdb4c8;font:11px/1.55 ui-monospace,SFMono-Regular,Menlo,monospace;white-space:pre-wrap}
.player-captions{position:absolute;z-index:1;bottom:24%;left:6%;right:6%;display:flex;flex-direction:column;align-items:center;gap:4px;pointer-events:none;text-align:center;font-size:calc(clamp(16px,2.2vw,32px)*var(--caption-scale,1));line-height:1.4;color:var(--caption-color,white);text-shadow:0 1px 3px #000;white-space:pre-line}
.player-captions[data-position="top"]{top:8%;bottom:auto}
.player-captions>span{background:var(--caption-background,rgba(0,0,0,.75));padding:2px 8px;border-radius:4px}
.player-feedback{min-height:48px;display:flex;align-items:center;justify-content:space-between;gap:16px;margin:12px 0}
.player-heading{display:flex;flex-wrap:wrap;gap:16px;align-items:center;margin:22px 0}
.player-heading h1{font-family:'Fraunces',Georgia,serif;font-style:italic;font-size:1.8rem;margin-bottom:6px}
.player-episode-navigation{display:flex;gap:10px;margin-left:auto}
.player-options{display:flex;flex-wrap:wrap;align-items:flex-start;gap:20px;padding:20px 0;border-top:1px solid var(--line)}
.player-options label,.catalog-filter-options label{display:flex;flex-direction:column;gap:8px;font-size:.8rem;color:var(--muted)}
.player-options select,.player-options input[type="number"],.catalog-filter-options select{background:#191222;color:#f5f2fb;border:1px solid var(--line);border-radius:8px;padding:10px;max-width:100%;font:inherit}
.player-options summary,.player-episodes summary{cursor:pointer;font-weight:600;padding:10px 0}
.player-options .player-subtitle-settings{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:16px 0}
.player-options .player-autoplay{flex-direction:row;align-items:center;margin-top:12px}.player-autoplay input{accent-color:#a67cff}
.player-episodes{margin-top:22px;border-top:1px solid var(--line)}
.player-episodes nav{max-height:360px;overflow:auto}
.player-episode{display:flex;align-items:center;gap:16px;padding:18px;border-radius:10px;margin:6px 0;background:rgba(255,255,255,.03);font-size:.85rem}
.player-episode__thumb{display:block;width:112px;aspect-ratio:16/9;flex:none;overflow:hidden;border-radius:8px;background:linear-gradient(135deg,#2b1b42,#0c0911)}
.player-episode__thumb{position:relative}
.player-episode__thumb img{width:100%;height:100%;display:block;object-fit:cover}
.player-episode__copy{display:flex;min-width:0;flex:1;flex-direction:column;gap:5px}.player-episode__copy strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.player-episode.current{background:rgba(139,92,246,.2);color:#ceb7ff}
.player-episode--locked{border-color:rgba(255,255,255,.1);background:rgba(255,255,255,.035);color:#aaa3b2}.player-episode--locked:hover{border-color:rgba(255,190,110,.5);background:rgba(255,190,110,.08);color:#fff}.player-episode--locked .player-episode__thumb img{filter:blur(7px);opacity:.62;transform:scale(1.08)}.player-episode__lock{position:absolute;inset:0;display:grid;place-items:center;font-size:1.5rem;text-shadow:0 2px 8px #000}.player-episode--locked .player-episode__copy em{color:#ffd08a;font-size:.7rem;font-style:normal;font-weight:800}
.player-frame:fullscreen{border:0;border-radius:0;width:100vw;height:100vh;aspect-ratio:auto}
.catalog-filters{width:100%}.catalog-filter-options{display:flex;align-items:end;flex-wrap:wrap;gap:14px;margin-top:18px}
@media(max-width:600px){.player-control-row{gap:0}.player-controls{padding:28px 8px 6px}.player-volume{display:none}.player-captions{bottom:32%}.player-center-controls{gap:18px}.player-center-play{width:58px;height:58px}.player-center-play svg{width:28px;height:28px}.player-center-seek{width:48px;height:48px}.player-center-seek svg{width:31px;height:31px}.player-control-menu>summary,.player-control-row button.player-icon-control{box-sizing:border-box;width:36px;min-width:36px;padding:0 7px}.player-control-menu>summary span,.player-icon-control span{display:none}.player-control-popover{position:fixed;right:8px;bottom:62px;width:min(320px,calc(100vw - 16px))}.player-control-popover--subtitles,.player-control-popover--episodes{width:calc(100vw - 16px)}.player-skip{display:none}.player-time{font-size:.67rem}.player-episode-navigation{margin-left:0}.player-heading h1{font-size:1.45rem}}
.fake-player{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;background:radial-gradient(600px 300px at 50% 120%,rgba(139,92,246,.35),#05020c)}
.eq{display:flex;gap:6px;align-items:flex-end;height:56px}
.eq i{width:7px;border-radius:4px;background:var(--grad);animation:eq 1s ease-in-out infinite;height:14px}
.eq i:nth-child(2){animation-delay:.15s}.eq i:nth-child(3){animation-delay:.3s}.eq i:nth-child(4){animation-delay:.45s}.eq i:nth-child(5){animation-delay:.6s}
@keyframes eq{0%,100%{height:14px}50%{height:56px}}

/* player cinema: layout inspirado em serviços de streaming */
.player-page--netflix{max-width:1280px;padding:92px 32px 80px;color:#f8f7fb}
.player-topbar{display:flex;align-items:center;gap:28px;margin-bottom:24px}.player-brand{font-weight:900;letter-spacing:.22em;font-size:.82rem;color:#fff}.player-back{color:#c9c3d2;font-size:.86rem;display:flex;align-items:center;gap:8px}.player-back span{font-size:1.8rem;line-height:.5}.player-nav{display:flex;gap:10px;margin-left:auto}.player-nav .btn{padding:9px 15px;font-size:.75rem}
.player-stage{position:relative;border-radius:18px;overflow:hidden;background:#050408;box-shadow:0 35px 90px rgba(0,0,0,.5)}.player-stage .player-frame{border:0;border-radius:0;box-shadow:none}.player-hero-copy{position:absolute;z-index:1;left:42px;bottom:170px;pointer-events:none;text-shadow:0 2px 14px #000,0 1px 3px #000}.player-hero-copy .eyebrow,.player-kicker{font-size:.66rem;letter-spacing:.16em;font-weight:800;color:#b99bff}.player-hero-copy h1{font-size:clamp(1.5rem,3vw,2.7rem);margin:8px 0 4px}.player-hero-copy p{color:#d4cedd;margin:0}.player-hero-copy p span{color:#9f91b6;padding:0 5px}.fake-player span{font-size:.75rem;color:#aaa0b8;letter-spacing:.06em}
.player-page--netflix:not(.player-page--shorts) .player-frame video{object-fit:contain!important;object-position:center center!important;transform:none!important}
.player-cast-button{position:absolute;z-index:11;top:16px;right:16px;display:grid;place-items:center;width:42px;height:42px;padding:0;border:1px solid rgba(255,255,255,.22);border-radius:50%;background:rgba(7,5,12,.62);color:#fff;cursor:pointer;box-shadow:0 8px 24px rgba(0,0,0,.35);backdrop-filter:blur(10px);transition:background .18s ease,color .18s ease,transform .18s ease}
.player-cast-button:hover{background:rgba(176,124,255,.32);color:#fff;transform:scale(1.05)}
.player-cast-button:active{transform:scale(.95)}
.player-cast-button svg{width:22px;height:22px}
.player-feedback{margin:10px 4px 30px;min-height:30px}.player-details{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding:0 4px 30px;border-bottom:1px solid var(--line)}.player-details h2{font-size:1.6rem;margin:10px 0 5px}.player-kicker{display:flex;align-items:center;gap:12px}.player-actions{flex-shrink:0}.player-options{margin-top:22px;padding:0 4px;border:0}.player-options>summary{display:inline-flex;padding:12px 0;color:#d8d1e4}.player-options-grid{display:flex;flex-wrap:wrap;align-items:flex-start;gap:18px;padding:20px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.025)}.player-options-grid label{min-width:140px}.player-options-grid details{min-width:210px}.player-episodes{margin-top:36px;border:0}.player-episodes .section-heading{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:14px}.player-episodes h2{font-size:1.2rem}.player-episodes nav{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:9px;max-height:400px}.player-episode{margin:0;padding:15px 16px;border:1px solid transparent;background:rgba(255,255,255,.035);transition:.2s}.player-episode:hover{border-color:rgba(173,128,255,.55);background:rgba(139,92,246,.1);transform:none}.player-episode.current{border-color:#9f75f1;background:rgba(139,92,246,.18);color:#fff}.episode-number{font-size:.7rem;color:#a99fb5;min-width:58px}.episode-play{font-size:.72rem;color:#bda8e9;margin-left:auto}
.player-page--netflix:not(.player-page--shorts) .player-options[open]{padding:16px 18px;border:1px solid rgba(173,128,255,.2);border-radius:16px;background:linear-gradient(135deg,rgba(139,92,246,.1),rgba(255,255,255,.025))}.player-page--netflix:not(.player-page--shorts) .player-options[open]>summary{padding:0 0 12px;color:#cbb8f5;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase}.player-page--netflix:not(.player-page--shorts) .player-options[open]>.player-options-grid{padding:0;border:0;background:transparent}.player-page--netflix:not(.player-page--shorts) .player-options select{min-width:170px;border-color:rgba(173,128,255,.3);background:#120d1c}
@media(max-width:700px){.player-page--netflix{padding:76px 16px 55px}.player-topbar{gap:14px}.player-brand{font-size:.7rem}.player-nav .btn{padding:8px 10px}.player-nav .btn:first-child{display:none}.player-hero-copy{left:20px;bottom:20px}.player-details{align-items:flex-start;flex-direction:column}.player-actions{width:100%}.player-actions .btn{width:100%;text-align:center}.player-options-grid{padding:14px}.player-options-grid label,.player-options-grid details{min-width:calc(50% - 10px)}.player-episodes nav{grid-template-columns:1fr}}
/* O header do site também aparece no /assistir: ele ganha um scrim em
   gradiente (como o topo do player da Netflix) para a navegação continuar
   legível sobre o vídeo e a luz ambiente. Ao rolar, o estilo .scrolled
   normal assume. */
.short-drama-watch>header[data-controller="header"]:not(.scrolled),.series-player-watch>header[data-controller="header"]:not(.scrolled){background:linear-gradient(180deg,rgba(10,6,20,.88),rgba(10,6,20,0))}
.series-player-watch .player-controls{background:linear-gradient(0deg,rgba(0,0,0,.92),rgba(0,0,0,.62) 65%,transparent)}
@media(max-width:700px){.series-player-watch .player-hero-copy{bottom:140px}}

/* ============================================================ PLAYER VERTICAL (SHORTS)
   Um episódio por tela, swipe/roda para avançar (réguas: ReelShort,
   DramaBox, TikTok). No desktop o palco 9:16 flutua sobre uma luz ambiente
   tingida pelas cores do título (--c1/--c2, mesma ideia do .hero-bg), para
   o vídeo ler como parte da cena e não como um retângulo solto.
   #050408 permanece como fundo do palco de propósito: é o "preto de sala
   de cinema" já usado pelo .player-stage das séries — um preto quente que
   desaparece atrás da luz ambiente sem competir com o vídeo. */
/* O header fixo (~72px) volta a aparecer no /assistir: o palco sobe um
   respiro abaixo dele em vez de ficar colado no topo da viewport. */
.player-page--shorts{box-sizing:border-box;width:100%;max-width:none;height:100vh;height:100dvh;min-height:100svh;padding:86px 18px 12px;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden;background:#050408;isolation:isolate}
/* Luz ambiente: dois radiais bem desfocados nas cores do título, atrás do
   palco. O fallback violeta/vermelho cobre títulos sem cor extraída. */
.player-page--shorts::before{content:"";position:absolute;inset:-12%;z-index:-1;pointer-events:none;background:radial-gradient(46% 42% at 50% 4%,var(--c1,var(--violet)) 0%,transparent 64%),radial-gradient(54% 46% at 50% 104%,var(--c2,var(--red)) 0%,transparent 62%);filter:blur(70px);opacity:.5}
.player-page--shorts .player-stage{width:min(100%,460px);height:min(calc(100svh - 102px),850px);border-radius:22px;box-shadow:0 30px 80px -20px rgba(0,0,0,.85),0 0 110px -24px var(--c1,var(--violet))}
.player-page--shorts .player-frame{width:100%;height:100%;aspect-ratio:9/16;border-radius:22px;border:1px solid rgba(255,255,255,.13);touch-action:pan-x;overscroll-behavior:contain}
.player-page--shorts .player-frame video{object-fit:cover;object-position:center center;transform:scale(1)}
.player-page--shorts .player-hero-copy,.player-page--shorts .player-feedback,.player-page--shorts .player-details,.player-page--shorts .player-options,.player-page--shorts .player-episodes{display:none}

/* O "voltar" mora dentro do palco, mas FORA do .player-frame: o estado
   .idle (que esconde trilho e copy) nunca o alcança, e ele fica sempre
   visível e clicável. Sem !important: o seletor com duas classes vence a
   regra base .player-topbar por especificidade. */
.player-page--shorts .player-topbar--shorts{position:absolute;z-index:30;top:calc(env(safe-area-inset-top,0px) + 14px);left:calc(env(safe-area-inset-left,0px) + 14px);right:auto;margin:0;pointer-events:none}
.player-page--shorts .player-topbar--shorts .shorts-back{pointer-events:auto}
.player-page--shorts .player-nav{display:none}
.shorts-back{display:grid;place-items:center;width:44px;height:44px;border:1px solid rgba(255,255,255,.22);border-radius:50%;background:rgba(10,6,20,.66);color:#fff;backdrop-filter:blur(10px);transition:background .2s ease,transform .2s ease}
.shorts-back:hover{background:var(--violet);transform:scale(1.06)}
.shorts-back svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}

/* Copy do episódio: contador como eyebrow, nome do título em Fraunces
   itálica (a voz do site), episódio como apoio — hierarquia de pôster,
   não de legenda de sistema. */
.shorts-episode-copy{position:absolute;z-index:4;left:72px;right:20px;top:calc(env(safe-area-inset-top,0px) + 17px);bottom:auto;color:var(--text);text-shadow:0 1px 6px rgba(0,0,0,.85)}
.shorts-episode-copy>span{font-size:.68rem;font-weight:800;letter-spacing:.15em;text-transform:uppercase;color:#d9c9ff}
.shorts-episode-copy h1{font-family:'Fraunces',Georgia,serif;font-style:italic;font-weight:600;font-size:clamp(1.1rem,2.4vh,1.4rem);line-height:1.15;margin:6px 0 3px}
.shorts-episode-copy p{font-size:.84rem;margin:0;color:rgba(245,242,251,.78)}

/* Trilho de episódios: vidro fosco, alvo de 44px e ícones SVG de traço
   único (2px, pontas redondas) — o mesmo dos demais controles do player. */
.shorts-episode-rail{position:absolute;z-index:5;right:14px;bottom:110px;display:flex;flex-direction:column;gap:12px}
.shorts-nav-button{display:grid;place-items:center;width:44px;height:44px;border:1px solid rgba(255,255,255,.28);border-radius:50%;background:rgba(10,6,20,.55);color:#fff;backdrop-filter:blur(8px);transition:background .2s ease,border-color .2s ease,transform .2s ease}
.shorts-nav-button:hover{background:rgba(139,92,246,.85);border-color:transparent;transform:scale(1.06)}
.shorts-nav-button svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.short-drama-watch{overflow:hidden;background:#050408}
.short-drama-watch>.orb,.short-drama-watch>footer{display:none!important}
.short-drama-watch .player-page--shorts{position:relative;z-index:1}
.shorts-autoplay-toggle.is-active{background:var(--grad);border-color:transparent;box-shadow:0 8px 22px -8px rgba(255,45,85,.55)}

.player-page--shorts .player-controls{padding:12px 14px 10px;background:linear-gradient(0deg,rgba(0,0,0,.72),transparent);border:0;backdrop-filter:none;box-shadow:none}
.player-page--shorts .series-control-menu{display:none}
.player-page--shorts .series-control-button{display:none}
.player-page--shorts .series-center-controls{display:none}
.player-page--shorts .player-volume{width:72px;flex-shrink:0}
.player-page--shorts .player-volume input{width:50px;min-width:0}
/* No palco estreito, o "Muito grande" (scale 1.6) ganha um teto menor que
   o do player 16:9: a legenda continua legível, quebra linha e não invade
   o trilho à direita. */
.player-page--shorts .player-captions{left:5%;right:19%;bottom:calc(env(safe-area-inset-bottom,0px) + 25vh);max-width:76%;overflow:visible;overflow-wrap:anywhere;word-break:normal;font-size:calc(clamp(14px,2vw,24px)*var(--caption-scale,1))}
.player-page--shorts .shorts-episode-copy,.player-page--shorts .shorts-episode-rail{transition:opacity .3s ease,transform .3s ease}
.player-page--shorts .player-frame.idle .shorts-episode-copy,.player-page--shorts .player-frame.idle .shorts-episode-rail{opacity:0;transform:translateY(8px);pointer-events:none}

/* Aviso "melhor no celular": cartão de canto no estilo do .social-proof,
   não modal — avisa sem cobrir o vídeo e sai com um clique (ou Escape). */
.shorts-mobile-tip{position:fixed;z-index:190;left:26px;bottom:calc(env(safe-area-inset-bottom,0px) + 26px);display:flex;align-items:flex-start;gap:12px;width:min(340px,calc(100vw - 52px));padding:16px 18px;border:1px solid var(--line);border-radius:16px;background:rgba(20,12,38,.94);backdrop-filter:blur(14px);box-shadow:0 18px 40px -12px rgba(0,0,0,.7);color:var(--text)}
.shorts-mobile-tip[hidden]{display:none!important}
.shorts-mobile-tip__icon{flex:none;display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:var(--glass);border:1px solid var(--line);color:#d9c9ff}
.shorts-mobile-tip__icon svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.shorts-mobile-tip__copy{min-width:0}
.shorts-mobile-tip__copy h2{margin:0 0 4px;font-size:.9rem;font-weight:700}
.shorts-mobile-tip__copy p{margin:0;color:var(--muted);font-size:.78rem;line-height:1.55}
.shorts-mobile-tip__close{flex:none;display:grid;place-items:center;width:32px;height:32px;margin:-5px -7px 0 0;border-radius:50%;color:var(--muted);transition:color .2s ease,background .2s ease}
.shorts-mobile-tip__close:hover{color:#fff;background:rgba(255,255,255,.1)}
.shorts-mobile-tip__close svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round}
/* No celular o aviso não faz sentido — a experiência já é a ideal. */
@media(max-width:767px){.shorts-mobile-tip{display:none!important}}
@media(max-width:600px){.player-page--shorts{width:100vw;padding:68px 0 0}.player-page--shorts::before{display:none}.player-page--shorts .player-topbar--shorts{top:calc(env(safe-area-inset-top,0px) + 10px);left:calc(env(safe-area-inset-left,0px) + 10px)}.player-page--shorts .player-stage{width:100vw;height:calc(100vh - 68px);height:calc(100dvh - 68px);border-radius:0;max-height:none;box-shadow:none}.player-page--shorts .player-frame{width:100vw;height:100%;border-radius:0;border:0;aspect-ratio:auto}.player-page--shorts .player-frame video{transform:scale(1)}.player-page--shorts .shorts-episode-copy{left:68px;right:68px;top:calc(env(safe-area-inset-top,0px) + 12px)}.player-page--shorts .shorts-episode-rail{right:calc(env(safe-area-inset-right,0px) + 10px);bottom:calc(env(safe-area-inset-bottom,0px) + 110px)}.player-page--shorts .player-controls{inset:auto 0 0;padding:12px 10px calc(env(safe-area-inset-bottom,0px) + 12px)}.player-page--shorts .player-volume{display:flex;width:70px;flex-shrink:0;align-items:center;gap:4px}.player-page--shorts .volume-icon{display:block;width:17px;height:17px;flex:none;color:#fff}.player-page--shorts .player-volume input{width:48px;min-width:0}.player-page--shorts .player-captions{left:5%;right:19%;bottom:calc(env(safe-area-inset-bottom,0px) + 23vh);max-width:76%;font-size:calc(clamp(14px,4vw,22px)*var(--caption-scale,1))}}

/* ============================================================ SHORT DORAMAS · LISTAGEM
   Mesma hierarquia do catálogo (.page-title, .page-sub, busca em pílula
   .search) — a página é irmã de /catalogo, não uma prima com CSS próprio.
   O que ela tem de único é a abertura: um destaque tingido pelas cores do
   título (--c1/--c2), como o hero e a página de título fazem. */
.short-dramas-page{max-width:1250px}
.short-dramas-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px}
.short-dramas-head .hero-tag{margin-bottom:18px}
.short-dramas-head .page-sub{margin-bottom:0}
.short-dramas-head>.btn{flex:none;margin-bottom:4px}

/* O destaque é uma faixa respirada, não um card a mais na grade: copy à
   esquerda, o pôster padrão do site à direita, levemente inclinado como
   um pôster na parede — endireita no hover. */
.shorts-spotlight{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:40px;align-items:center;margin:26px 0 8px;padding:38px 40px;border:1px solid var(--line);border-radius:26px;overflow:hidden;background:var(--card)}
.shorts-spotlight::before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(560px 340px at 92% 0%,var(--c1,var(--violet)) 0%,transparent 60%),radial-gradient(520px 420px at 0% 110%,var(--c2,var(--red)) 0%,transparent 58%);opacity:.3}
.shorts-spotlight__copy{position:relative}
.shorts-spotlight__kicker{font-size:.66rem;letter-spacing:.16em;font-weight:800;text-transform:uppercase;color:#b99bff}
.shorts-spotlight__copy h2{font-family:'Fraunces',Georgia,serif;font-style:italic;font-weight:600;font-size:clamp(1.8rem,3.6vw,2.9rem);line-height:1.05;margin:8px 0 14px}
.shorts-spotlight__meta{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:16px}
.shorts-spotlight__sinopse{max-width:560px;margin:0 0 24px;color:var(--muted);font-size:.92rem;line-height:1.75;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.shorts-spotlight__art{position:relative;transform:rotate(2deg);transition:transform .45s cubic-bezier(.2,.9,.3,1.3)}
.shorts-spotlight__art:hover{transform:rotate(0)}
.shorts-spotlight__art .card-wrap{min-width:176px;width:176px}
.shorts-spotlight__art .card{width:100%;min-width:0}

/* Busca no padrão do catálogo: pílula .search com vidro e raio 99px,
   botões fora da pílula, "Limpar busca" quando há termo. */
.short-dramas-search{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin:22px 0 6px}
.short-dramas-search .search{flex:1 1 280px;margin:0}
.short-dramas-page .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* Estado vazio sem emoji-ícone: a "cara" é a frase em Fraunces com o
   brilho gradiente, como os títulos do site. */
.empty__title{font-family:'Fraunces',Georgia,serif;font-style:italic;font-weight:600;font-size:clamp(1.5rem,3vw,2rem);margin-bottom:12px;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.short-dramas-page .empty p:not(.empty__title){max-width:430px;margin-left:auto;margin-right:auto;line-height:1.7}

@media(max-width:860px){
  .shorts-spotlight{grid-template-columns:1fr;gap:26px;padding:28px 24px}
  .shorts-spotlight__art{justify-self:start}
  .shorts-spotlight__art .card-wrap{min-width:140px;width:140px}
}
@media(max-width:560px){
  /* O botão "Ver catálogo completo" desce para a própria linha em vez de
     disputar largura com o h1, e a busca ocupa a largura toda. */
  .short-dramas-head{flex-direction:column;align-items:flex-start;gap:18px}
  .short-dramas-head>.btn{margin-bottom:0}
  .short-dramas-search .search{flex-basis:100%;max-width:none}
}

/* ============================================================ AVISOS / CARTÕES */
.card-panel{background:rgba(20,12,38,.72);border:1px solid var(--line);border-radius:22px;padding:30px;backdrop-filter:blur(18px)}
.alert{border-radius:14px;padding:14px 18px;margin:0 0 16px;font-size:.88rem;font-weight:600;border-left:3px solid var(--violet);background:rgba(20,12,38,.8)}
.alert--error{border-left-color:var(--red);background:rgba(255,45,85,.1);color:#ffc9c9}
.alert--success{border-left-color:var(--ok);background:rgba(34,197,94,.1);color:#b7f0d7}

/* ============================================================ ADMIN */
table.data{width:100%;border-collapse:collapse;font-size:.86rem}
table.data th,table.data td{text-align:left;padding:12px 14px;border-bottom:1px solid var(--line)}
table.data th{color:var(--muted);font-weight:700;font-size:.7rem;text-transform:uppercase;letter-spacing:.1em}
table.data tr:hover td{background:rgba(255,255,255,.02)}
.badge{font-size:.68rem;font-weight:700;padding:4px 11px;border-radius:99px;background:var(--glass);border:1px solid var(--line)}
.badge--ok{border-color:rgba(34,197,94,.4);color:var(--ok)}
.badge--warn{border-color:rgba(251,191,36,.4);color:var(--gold)}
.badge--danger{border-color:rgba(255,45,85,.4);color:var(--red)}
.field{margin-bottom:16px}
.field label{display:block;font-size:.74rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}
.field input,.field select,.field textarea{width:100%;padding:13px 18px;border-radius:14px;background:rgba(255,255,255,.05);border:1px solid var(--line);outline:none;font-size:.92rem;transition:.3s}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--violet);box-shadow:0 0 0 4px rgba(139,92,246,.18);background:rgba(139,92,246,.06)}
.field--inline{display:flex;gap:12px}
.field--inline>div{flex:1}
.summary__line{display:flex;justify-content:space-between;gap:12px;padding:8px 0;font-size:.88rem;color:var(--muted)}
.summary__total{display:flex;justify-content:space-between;align-items:baseline;border-top:1px solid var(--line);margin-top:8px;padding-top:14px}
.summary__total strong{font-size:1.6rem;font-weight:800;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}

/* ============================================================ FOOTER */
footer{margin-top:70px;border-top:1px solid var(--line);background:linear-gradient(180deg,transparent,rgba(139,92,246,.06))}
.foot-in{max-width:1400px;margin:0 auto;padding:56px 28px 30px;display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:40px}
.foot-in h4{font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-bottom:18px}
.foot-in a{display:block;color:var(--muted);font-size:.85rem;padding:5px 0;transition:.25s}
.foot-in a:hover{color:#fff;transform:translateX(4px)}
.foot-brand p{color:var(--muted);font-size:.84rem;line-height:1.7;margin:14px 0 20px;max-width:300px}
.socials{display:flex;gap:12px}
.socials a{width:40px;height:40px;border-radius:12px;background:var(--glass);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;transition:.3s;padding:0}
.socials a:hover{background:var(--grad);transform:translateY(-4px)}
.socials svg{width:17px;height:17px;fill:#fff}
.copy{text-align:center;color:var(--muted);font-size:.76rem;padding:22px;border-top:1px solid var(--line)}

/* ============================================================ RESPONSIVO */
@media(max-width:1020px){.foot-in{grid-template-columns:1fr 1fr}}
@media(max-width:860px){
  .nav{display:none}.burger{display:flex}
  /* flex-wrap + row-gap 0: a busca aberta vira a segunda linha do header;
     fechada (altura zero) não deixa fresta. space-between separa logo e
     ações sem depender do nav, que aqui está escondido. */
  .header-in{gap:14px;padding:14px 20px;flex-wrap:wrap;row-gap:0}
  .header-search{order:6;flex-basis:100%}
  .header-search__input{width:100%;max-height:0;padding:0;border:0;transition:max-height .3s ease,opacity .25s ease,padding .3s ease,margin .3s ease,visibility .3s}
  .header-search.open .header-search__input{width:100%;max-height:60px;opacity:1;margin-top:12px;padding:12px 18px;background:rgba(255,255,255,.05);border:1px solid var(--line);border-radius:99px}
  .d-hero-in{grid-template-columns:1fr;gap:26px}
  .d-poster{max-width:190px}
  .section,.page,.d-body,.player-page,.home-toolbar{padding-left:18px;padding-right:18px}
  .hero{padding-left:18px;padding-right:18px}
  .row-btn{display:none}
  .card{min-width:158px;width:158px}
  .offer-row{flex-direction:column;align-items:stretch}
  .offer-price{text-align:left}
}
@media(max-width:560px){
  .foot-in{grid-template-columns:1fr}
  .btn{padding:10px 16px;font-size:.78rem}
  .btn-lg{padding:14px 24px;font-size:.85rem}
  .hero-btns .btn-lg{flex:1}
  .grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:14px}
  .field--inline{flex-direction:column}
  /* Em telas estreitas o CTA gradiente sai do header — "Catálogo" já está
     no menu burger — e a busca (lupa), Entrar e o burger cabem sem estouro. */
  .header-in{padding-left:16px;padding-right:16px}
  .header-actions .btn-grad{display:none}
}

/* ============================================================ UPSELL (spec 002) */
.upsell{border-color:var(--red);background:
  linear-gradient(120deg,rgba(255,45,85,.12),rgba(139,92,246,.12)),rgba(20,12,38,.72);
  margin-bottom:16px;position:relative}
.upsell__flag{position:absolute;top:-11px;left:22px;font-size:.6rem;font-weight:800;
  letter-spacing:.14em;text-transform:uppercase;padding:5px 12px;border-radius:99px;background:var(--grad)}
.upsell__headline{font-family:'Fraunces',Georgia,serif;font-style:italic;font-weight:600;
  font-size:1.35rem;line-height:1.2;margin:6px 0 8px}
.upsell__description{color:var(--muted);font-size:.88rem;line-height:1.6;margin:0 0 16px}
.upsell__price{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:16px}
.upsell__price s{color:var(--muted);font-size:.9rem}
.upsell__price b{font-size:1.8rem;font-weight:800;background:var(--grad);
  -webkit-background-clip:text;background-clip:text;color:transparent}
.upsell__savings{color:var(--ok);font-size:.82rem;font-weight:600}
.upsell .button{width:100%}
.upsell__note{color:var(--muted);font-size:.78rem;margin:12px 0 0;text-align:center}

/* ============================================================ PROGRESSO (spec 003) */
.progress{height:4px;border-radius:99px;background:rgba(255,255,255,.12);overflow:hidden;margin-top:10px}
.progress__bar{height:100%;border-radius:99px;background:var(--grad);transition:width .4s}
.card--resume .progress{margin-top:8px}
.ep .progress{margin-top:12px}
.player-status{margin-top:12px;min-height:1.2em}

/* ============================================================ QUERO ASSISTIR (spec 005) */
.card-wrap{position:relative;min-width:196px;width:196px}
.grid .card-wrap,.wish-card .card-wrap{width:auto;min-width:0}
/* O coração vai no rodapé do pôster, não no topo: o canto superior direito
   já é do chip de preço, e um cobria o outro. */
.wish{position:absolute;bottom:12px;right:12px;z-index:6;width:36px;height:36px;border-radius:50%;
  background:rgba(5,2,12,.72);border:1px solid rgba(255,255,255,.18);backdrop-filter:blur(6px);
  display:flex;align-items:center;justify-content:center;padding:0;transition:.25s;cursor:pointer}
.wish svg{width:16px;height:16px;fill:none;stroke:#fff;stroke-width:2;transition:.25s}
.wish:hover{transform:scale(1.12);border-color:var(--red)}
.wish--on svg{fill:var(--red);stroke:var(--red);filter:drop-shadow(0 0 6px rgba(255,45,85,.8))}
.wish__label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.wish--limit{position:absolute;bottom:10px;right:10px;left:10px;z-index:6;width:auto;height:auto;
  border-radius:12px;padding:8px 10px;font-size:.7rem;line-height:1.4;text-align:center}
.wish--limit a{text-decoration:underline}

/* Na página do título o coração é um botão de verdade, com rótulo visível. */
.d-btns .wish{position:static;width:auto;height:auto;border-radius:99px;padding:16px 26px;gap:10px;
  font-weight:700;font-size:.95rem;background:var(--glass);border:1px solid var(--line)}
.d-btns .wish svg{width:18px;height:18px}
.d-btns .wish .wish__label{position:static;width:auto;height:auto;clip-path:none;overflow:visible}

.wish-card{position:relative}
.wish-card__foot{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:10px;min-height:36px}
.wish-card__foot .wish{position:static}

/* ============================================================ COMUNIDADE (spec 006) */
.rating-box{display:grid;grid-template-columns:200px 1fr;gap:36px;background:var(--card);
  border:1px solid var(--line);border-radius:22px;padding:30px;align-items:center}
.rating-summary{text-align:center}
.avg-big{font-size:3.6rem;font-weight:800;line-height:1;background:var(--grad);
  -webkit-background-clip:text;background-clip:text;color:transparent}
.avg-none{font-size:3.6rem;font-weight:800;line-height:1;color:var(--line)}
.avg-count{color:var(--muted);font-size:.76rem;margin-top:10px;line-height:1.5}
.stars{display:flex;gap:4px;justify-content:center;margin-top:10px}
.stars svg{width:20px;height:20px;fill:var(--gold)}
.stars svg.star--off{fill:rgba(255,255,255,.14)}
.rate-actions p{font-size:.88rem;color:var(--muted);margin:0 0 10px}
.rate-actions p strong{color:var(--text)}
.star-btns{display:flex;gap:6px;margin-bottom:10px}
.star-btn{padding:4px;background:none;border:0;cursor:pointer;transition:.2s;line-height:0}
.star-btn svg{width:30px;height:30px;fill:none;stroke:var(--gold);stroke-width:1.6;transition:.2s}
.star-btn.on svg{fill:var(--gold);filter:drop-shadow(0 0 8px rgba(251,191,36,.7))}
.star-btn:hover{transform:scale(1.18) rotate(-8deg)}

.c-form{display:flex;gap:14px;margin-bottom:26px;align-items:flex-start}
.c-av{width:42px;height:42px;border-radius:50%;background:var(--grad);display:flex;
  align-items:center;justify-content:center;font-weight:800;font-size:.82rem;flex:none}
.c-form textarea{width:100%;background:rgba(255,255,255,.05);border:1px solid var(--line);
  border-radius:14px;padding:13px 16px;min-height:56px;resize:vertical;outline:none;
  font-size:.92rem;color:var(--text);transition:.25s}
.c-form textarea:focus{border-color:var(--violet);box-shadow:0 0 0 4px rgba(139,92,246,.16)}
.c-spoiler{display:inline-flex;align-items:center;gap:8px;margin-top:8px;font-size:.8rem;color:var(--muted)}
.c-spoiler input{width:16px;height:16px;accent-color:var(--red)}

.comment{display:flex;gap:14px;padding:18px 0;border-bottom:1px solid var(--line)}
.c-body{flex:1;min-width:0}
.c-head{display:flex;align-items:baseline;gap:10px;margin-bottom:6px;flex-wrap:wrap}
.c-head b{font-size:.88rem}
.c-head small{color:var(--muted);font-size:.72rem}
.c-text{color:#ddd8ee;font-size:.9rem;line-height:1.65;margin:0 0 10px;white-space:pre-wrap;word-break:break-word}
.c-actions{display:flex;gap:16px;align-items:center;flex-wrap:wrap}
.c-actions button,.c-actions form{font-size:.76rem;font-weight:700;color:var(--muted);
  background:none;border:0;padding:0;cursor:pointer;transition:.25s}
.c-actions button:hover{color:#fff}

.c-spoiler-veil{width:100%;text-align:left;padding:13px 16px;border-radius:12px;
  background:rgba(255,45,85,.1);border:1px dashed var(--red);color:#ffc9c9;
  font-size:.84rem;font-weight:600;cursor:pointer;margin-bottom:10px}
.c-spoiler-veil:hover{background:rgba(255,45,85,.18)}

.replies{margin:12px 0 4px 18px;padding-left:18px;border-left:2px solid var(--line);
  display:flex;flex-direction:column;gap:14px}
.reply{display:flex;gap:10px}
.reply .c-av{width:30px;height:30px;font-size:.66rem}
.reply-form{display:flex;gap:10px;margin:12px 0 4px 18px}
.reply-form input{flex:1;background:rgba(255,255,255,.05);border:1px solid var(--line);
  border-radius:99px;padding:10px 18px;outline:none;font-size:.84rem;color:var(--text)}
.reply-form.hidden{display:none}

/* ============================================================ SALES PAGE BUILDER — BLOCOS */
.lp-section{max-width:900px;margin:0 auto;padding:56px 28px}
.lp-rich-text{max-width:720px;margin:0 auto;padding:48px 28px;line-height:1.8}
.lp-rich-text h1,.lp-rich-text h2,.lp-rich-text h3{font-family:'Fraunces',Georgia,serif;font-style:italic;font-weight:600;margin-bottom:14px}
.lp-rich-text p{margin-bottom:14px;color:var(--muted)}
.lp-image{padding:40px 28px;text-align:center}
.lp-image img{border-radius:18px;max-width:100%;box-shadow:0 20px 50px -20px rgba(0,0,0,.6)}
.lp-video{padding:40px 28px}
.lp-video__frame{max-width:900px;margin:0 auto;aspect-ratio:16/9;border-radius:18px;overflow:hidden;border:1px solid var(--line);background:#000}
.lp-video__frame iframe{width:100%;height:100%;border:0}
.external-player{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:32px;text-align:center;background:radial-gradient(500px 250px at 50% 115%,rgba(139,92,246,.3),#08070d 70%);color:var(--text)}
.external-player:before{content:"▶";display:grid;place-items:center;width:58px;height:58px;border-radius:50%;padding-left:3px;background:linear-gradient(135deg,#d8c2ff,#8b5cf6);color:#130c20;font-size:1.15rem;box-shadow:0 12px 35px rgba(139,92,246,.35)}
.external-player p{max-width:360px;margin:0;color:#d5cddd;font-size:.9rem;line-height:1.5}
.external-player--extracting:before{content:"DX";padding-left:0;font-size:.78rem;font-weight:900;letter-spacing:.08em}.external-player--extracting strong{font-size:1rem;color:#f4efff}
.external-player--error:before{content:"!";padding-left:0;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.28);color:#fff;font-size:1.8rem;font-weight:800}
.lp-cta{padding:48px 28px;text-align:center}
.lp-pricing{max-width:420px;margin:0 auto;padding:40px 28px;text-align:center;background:var(--card);border:1px solid var(--line);border-radius:22px}
.lp-pricing__price{font-family:'Fraunces',Georgia,serif;font-style:italic;font-size:2.4rem;font-weight:600;margin:10px 0 4px}
.lp-pricing__compare{color:var(--muted);text-decoration:line-through;font-size:.9rem;margin-bottom:18px}
.lp-testimonials{padding:48px 28px}
.lp-testimonials__grid{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px}
.lp-testimonial{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:20px}
.lp-testimonial p{color:var(--text);margin-bottom:12px;line-height:1.6}
.lp-testimonial cite{color:var(--muted);font-size:.82rem;font-style:normal;font-weight:600}
.lp-faq{max-width:760px;margin:0 auto;padding:48px 28px}
.lp-faq__item{border-bottom:1px solid var(--line);padding:16px 0}
.lp-faq__item summary{cursor:pointer;font-weight:700;list-style:none;display:flex;justify-content:space-between;gap:12px}
.lp-faq__item summary::-webkit-details-marker{display:none}
.lp-faq__item p{margin-top:10px;color:var(--muted);line-height:1.7}
.lp-countdown{padding:32px 28px;text-align:center}
.lp-countdown__grid{display:inline-flex;gap:14px}
.lp-countdown__unit{background:var(--glass);border:1px solid var(--line);border-radius:14px;padding:14px 18px;min-width:74px}
.lp-countdown__unit b{display:block;font-size:1.6rem;font-weight:800}
.lp-countdown__unit span{font-size:.68rem;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}
.lp-spacer{width:100%}

@media(max-width:700px){
  .rating-box{grid-template-columns:1fr;text-align:center;justify-items:center;gap:22px}
  .star-btns{justify-content:center}
  .c-form{flex-wrap:wrap}
  .c-form .btn{width:100%}
}

/* ============================================================ BALÃO DE PROVA SOCIAL */
.social-proof{position:fixed;bottom:26px;left:26px;z-index:190;display:flex;align-items:center;gap:10px;
  max-width:280px;padding:13px 18px;border-radius:14px;background:rgba(20,12,38,.94);
  border:1px solid var(--line);backdrop-filter:blur(14px);font-size:.8rem;color:var(--text);
  box-shadow:0 18px 40px -12px rgba(0,0,0,.7);
  transform:translateY(12px);opacity:0;transition:transform .35s cubic-bezier(.2,.9,.3,1.3),opacity .35s}
.social-proof--in{transform:translateY(0);opacity:1}
.social-proof__dot{flex:none;width:8px;height:8px;border-radius:50%;background:var(--ok);
  box-shadow:0 0 8px var(--ok);animation:pulse-dot 1.4s ease-in-out infinite}
.social-proof small{color:var(--muted)}
@media(max-width:560px){.social-proof{left:16px;right:16px;max-width:none}}

/* ============================================================ CONSENTIMENTO DE COOKIES (spec 016) */
.consent-banner{position:fixed;left:16px;right:16px;bottom:16px;z-index:195;max-width:760px;margin:0 auto;
  display:flex;flex-wrap:wrap;align-items:center;gap:16px;padding:18px 22px;border-radius:16px;
  background:rgba(20,12,38,.94);border:1px solid var(--line);backdrop-filter:blur(14px);
  box-shadow:0 18px 40px -12px rgba(0,0,0,.7);animation:rise .4s cubic-bezier(.2,.9,.3,1.3) both}
.consent-banner__text{flex:1 1 320px;color:var(--muted);font-size:.82rem;line-height:1.6}
.consent-banner__actions{display:flex;gap:10px;flex:none}
@media(max-width:560px){
  .consent-banner{left:12px;right:12px;bottom:12px;padding:16px}
  .consent-banner__actions{width:100%}
  .consent-banner__actions .btn{flex:1}
}

/* O short player ocupa a viewport inteira no Safari iOS, inclusive quando
   a barra de endereço muda de altura. */
@media(max-width:600px){
  .player-page--shorts{width:100vw;height:100dvh;min-height:100dvh;padding:0}
  .player-page--shorts .player-stage{width:100vw;height:100dvh;min-height:100dvh;max-height:none;border-radius:0;box-shadow:none}
  .player-page--shorts .player-frame{width:100vw;height:100%;border-radius:0;border:0;aspect-ratio:auto}
}
