@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,600;0,700;0,800;1,600&family=Source+Serif+4:ital,opsz,wght@0,8..60,400;0,8..60,500;0,8..60,600;1,8..60,400&family=IBM+Plex+Mono:wght@400;500&display=swap');

:root{
  --ink: #F1E4C4;          /* fundo principal — pergaminho */
  --ink-2: #E8D8AE;        /* fundo de cartão — pergaminho um tom mais escuro */
  --paper: #3B2A18;        /* texto principal — sépia escuro */
  --paper-dim: #6E5A3C;    /* texto secundário — marrom médio */
  --marquee: #A8461F;      /* destaque principal — terracota */
  --velvet: #6B2737;       /* destaque secundário — bordô */
  --verdigris: #5C6B47;    /* terciário — verde-oliva envelhecido */
  --line: #D3C093;         /* bordas — tom de papel envelhecido */
  --max: 1180px;

  --red-bg: #4A1414;
  --red-bg-2: #5C1C1C;
  --red-text: #F1E4C4;
  --red-line: #7A2A2A;
}

*{ box-sizing: border-box; }
html{ scroll-behavior: smooth; overflow-x: hidden; }
body{
  margin:0;
  overflow-x: hidden;
  background: var(--ink);
  color: var(--paper);
  font-family: 'Source Serif 4', Georgia, serif;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  background-image: radial-gradient(circle at 20% 10%, rgba(168,70,31,0.05), transparent 50%),
                     radial-gradient(circle at 80% 90%, rgba(107,39,55,0.05), transparent 50%);
}
h1,h2,h3{
  font-family: 'Playfair Display', Georgia, serif;
  font-weight: 700;
  letter-spacing: 0.005em;
  margin: 0;
  color: var(--paper);
}
.mono{ font-family: 'IBM Plex Mono', ui-monospace, monospace; letter-spacing: 0.04em; }
a{ color: inherit; }
img{ max-width: 100%; display:block; }

.wrap{ max-width: var(--max); margin: 0 auto; padding: 0 28px; }

.take-label{
  display:inline-flex; align-items:center; gap:10px;
  font-family: 'IBM Plex Mono', monospace;
  font-size: 0.72rem; letter-spacing: 0.14em;
  color: var(--verdigris); text-transform: uppercase;
  margin-bottom: 18px;
}
.take-label .leaf{ width: 14px; height: 14px; display:inline-block; opacity:0.8; }
.take-label .leaf::before{ content: "❧"; font-size: 16px; line-height: 1; }

/* nav */
header{ position: sticky; top:0; z-index: 50; background: rgba(241,228,196,0.94); backdrop-filter: blur(6px); border-bottom: 1px solid var(--line); }
nav.wrap{ display:flex; align-items:center; justify-content:space-between; padding-top:16px; padding-bottom:16px; }
.logo{ font-family:'Playfair Display', serif; font-weight:700; font-size: 1.5rem; letter-spacing: 0.01em; display:flex; align-items:baseline; gap:6px; text-decoration:none; color: var(--paper); }
.logo .dot{ color: var(--marquee); }
.cr-mark{ width:2.4em; height:0.95em; flex-shrink:0; align-self:center; overflow:visible; }
@media (prefers-reduced-motion: reduce){
  .cr-mark .cr-dot{ display:none; }
}
.navlinks{ display:flex; gap:32px; font-size:0.85rem; }
.navlinks a{ text-decoration:none; color: var(--paper-dim); font-family:'IBM Plex Mono', monospace; letter-spacing:0.06em; text-transform:uppercase; font-size:0.7rem; transition: color .2s; }
.navlinks a:hover{ color: var(--marquee); }

.nav-toggle{ display:none; flex-direction:column; justify-content:center; gap:5px; width:32px; height:32px; background:none; border:none; padding:0; cursor:pointer; flex-shrink:0; }
.nav-toggle span{ display:block; width:100%; height:2px; background:var(--paper); border-radius:1px; transition: transform .2s, opacity .2s; }
.nav-toggle[aria-expanded="true"] span:nth-child(1){ transform: translateY(7px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.nav-toggle[aria-expanded="true"] span:nth-child(3){ transform: translateY(-7px) rotate(-45deg); }

@media (max-width: 640px){
  .nav-toggle{ display:flex; }
  .navlinks{
    display:none; position:absolute; top:100%; left:0; right:0;
    flex-direction:column; gap:0; background: var(--ink);
    border-bottom:1px solid var(--line);
    padding:4px 28px 12px;
  }
  .navlinks.open{ display:flex; }
  .navlinks a{ padding:14px 0; border-top:1px solid var(--line); font-size:0.8rem; }
  .navlinks a:first-child{ border-top:none; }
}

/* buttons */
.btn{ display:inline-flex; align-items:center; gap:10px; padding: 13px 26px; border: 1px solid var(--marquee); color: var(--marquee); background: transparent; font-family:'IBM Plex Mono', monospace; font-size:0.72rem; letter-spacing:0.09em; text-transform: uppercase; text-decoration:none; cursor:pointer; transition: background .2s, color .2s; border-radius: 2px; }
.btn:hover{ background: var(--marquee); color: var(--ink); }
.btn.solid{ background: var(--marquee); color: var(--ink); }
.btn.solid:hover{ background: var(--velvet); border-color: var(--velvet); }
.btn.small{ padding: 9px 16px; font-size:0.66rem; }
.btn:disabled{ opacity:0.45; cursor:default; }
.btn:disabled:hover{ background:transparent; color:var(--marquee); }
.btn.on-red{ border-color: var(--red-text); color: var(--red-text); }
.btn.on-red:hover{ background: var(--red-text); color: var(--red-bg); }
.btn.on-dark{ border-color: #F1E4C4; color: #F1E4C4; }
.btn.on-dark:hover{ background: #F1E4C4; color: #241a10; }
.btn.on-dark:disabled{ opacity:0.45; }

/* hero grandfather quote */
.avo-quote{
  font-family: 'Source Serif 4', serif;
  font-style: italic;
  font-size: 1.15rem;
  line-height: 1.7;
  color: var(--paper-dim);
  max-width: 620px;
  margin: 0 auto 40px;
  text-align: center;
  padding: 28px 32px;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  position: relative;
}
.avo-quote::before{
  content: "❧";
  display:block;
  font-size: 1.3rem;
  color: var(--marquee);
  margin-bottom: 10px;
  font-style: normal;
}
.avo-quote span.signoff{
  display:block; margin-top:16px; font-style:normal;
  font-family:'IBM Plex Mono', monospace; font-size:0.68rem;
  letter-spacing:0.1em; text-transform:uppercase; color: var(--verdigris);
}

/* section shell */
section{ padding: 84px 0; border-bottom:1px solid var(--line); }
section:last-of-type{ border-bottom:none; }
.section-head{ max-width: 640px; margin-bottom: 48px; }
.section-head h2{ font-size: clamp(1.7rem, 3.2vw, 2.5rem); margin-bottom:14px; }
.section-head p{ color: var(--paper-dim); font-size:1.02rem; }

/* ---------------- FAIXAS (histórias horizontais) ---------------- */
.story-strip{
  display:grid; grid-template-columns: 1fr 1fr; gap: 44px; align-items:center;
  padding: 40px 0; border-bottom: 1px solid var(--line);
}
.story-strip:last-child{ border-bottom:none; }
.story-strip.reverse{ direction: rtl; }
.story-strip.reverse > *{ direction: ltr; }
@media (max-width: 780px){
  .story-strip{ grid-template-columns: 1fr; gap: 22px; }
  .story-strip.reverse{ direction: ltr; }
}
.strip-poster{
  aspect-ratio: 16/9;
  border: 1px solid var(--line);
  position:relative;
  display:flex; flex-direction:column; justify-content:flex-end;
  padding: 20px;
  overflow:hidden;
}
.strip-poster::after{ content:""; position:absolute; inset:0; background: linear-gradient(0deg, rgba(0,0,0,0.45), transparent 60%); }
.strip-poster .genre{ position:relative; z-index:1; font-family:'IBM Plex Mono', monospace; font-size:0.62rem; letter-spacing:0.1em; text-transform:uppercase; color: rgba(255,255,255,0.9); margin-bottom:6px; }
.strip-poster h3{ position:relative; z-index:1; font-size:1.5rem; color:#fff; line-height:1.15; }
.strip-body p{ color: var(--paper-dim); font-size:1rem; margin: 0 0 20px; }
.strip-foot{ display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; }
.strip-vote{ display:flex; align-items:center; gap:10px; font-family:'IBM Plex Mono', monospace; font-size:0.72rem; color: var(--paper-dim); }
.strip-vote b{ color: var(--marquee); font-size:0.95rem; }

/* ---------------- FAIXAS EM TELA CHEIA (vídeo de fundo por história) ---------------- */
.story-band{
  position:relative; min-height: 76vh; display:flex; align-items:center;
  overflow:hidden; width:100vw; margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw);
  border-bottom: 1px solid var(--line);
  background: var(--ink);
}
.story-band .band-bg{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; }
.story-band .band-scrim{
  position:absolute; inset:0; z-index:1;
  background: linear-gradient(90deg, rgba(12,10,7,0.9) 0%, rgba(12,10,7,0.62) 42%, rgba(12,10,7,0.08) 68%);
}
.story-band.reverse .band-scrim{ background: linear-gradient(270deg, rgba(12,10,7,0.9) 0%, rgba(12,10,7,0.62) 42%, rgba(12,10,7,0.08) 68%); }
.story-band .wrap{ position:relative; z-index:2; }
.story-band .band-content{ max-width: 540px; padding: 70px 0; }
.story-band.reverse .band-content{ margin-left:auto; }
.story-band .genre{ font-family:'IBM Plex Mono', monospace; font-size:0.72rem; letter-spacing:0.12em; text-transform:uppercase; color: var(--marquee); margin-bottom:12px; }
.story-band h3{ font-size: clamp(1.6rem, 3vw, 2.2rem); color:#fff; line-height:1.1; margin-bottom:18px; text-shadow: 0 2px 20px rgba(0,0,0,0.6); }
.story-band h3 a{ color:inherit; text-decoration:none; }
.story-band .band-content > p{ color: rgba(241,228,196,0.85); font-size:1.05rem; margin: 0 0 26px; text-shadow: 0 1px 12px rgba(0,0,0,0.4); }
.story-band .strip-vote{ color: rgba(241,228,196,0.75); }
.story-band .strip-vote b{ color: var(--marquee); }
@media (max-width: 780px){
  .story-band{ min-height:auto; padding: 56px 0; }
  .story-band .band-scrim, .story-band.reverse .band-scrim{
    background: linear-gradient(180deg, rgba(12,10,7,0.25) 0%, rgba(12,10,7,0.85) 55%, rgba(12,10,7,0.95) 100%);
  }
  .story-band .band-content, .story-band.reverse .band-content{ max-width:none; margin-left:0; padding:0; }
}

#destaque{ padding-bottom:0; }
.story-band.featured{ min-height:92vh; border-top:2px solid var(--marquee); border-bottom:2px solid var(--marquee); }
.story-band.featured .band-content{ max-width:620px; }
.story-band.featured h3{ font-size: clamp(2rem, 4.2vw, 3.1rem); }
.story-band.featured .genre{ font-size:0.8rem; }

/* poster color themes (formato horizontal) — imagem de cena, gradiente como fallback */
.poster--enigma{ background: url('assets/img/posters/enigma.png') center/cover, linear-gradient(160deg,#8a5a2e,#c99a4a); }
.poster--garota{ background: url('assets/img/posters/garota.png') center/cover, linear-gradient(160deg,#7a3030,#c96a5a); }
.poster--ywyty{ background: url('assets/img/posters/ywyty.png') center/cover, linear-gradient(160deg,#1f4a3d,#3fae8e); }
.poster--viajante{ background: url('assets/img/posters/viajante.png') center/cover, linear-gradient(160deg,#1c2a4a,#3d6ce8); }
.poster--algoritmo{ background: url('assets/img/posters/algoritmo.png') center/cover, linear-gradient(160deg,#2a3a4a,#33a9c9); }
.poster--tead{ background: url('assets/img/posters/tead.png') center/cover, linear-gradient(160deg,#2e1a2e,#a83d6a); }
.poster--sonho{ background: url('assets/img/posters/sonho.png') center/cover, linear-gradient(160deg,#5c1f1f,#c9932f); }

/* ---------------- SEÇÃO VERMELHA (18+) ---------------- */
.r18-section{
  background: var(--red-bg);
  color: var(--red-text);
  padding: 84px 0;
  border-bottom: 1px solid var(--line);
}
.r18-section .take-label{ color: rgba(241,228,196,0.6); }
.r18-section h2{ color: var(--red-text); }
.r18-section .section-head p{ color: rgba(241,228,196,0.72); }
.r18-warning{
  border: 1px solid var(--red-line);
  background: rgba(0,0,0,0.18);
  padding: 18px 22px;
  font-family:'IBM Plex Mono', monospace;
  font-size: 0.76rem;
  letter-spacing: 0.02em;
  color: var(--red-text);
  max-width: 640px;
  margin-bottom: 44px;
  line-height:1.6;
}
.r18-warning b{ color: #E8A97E; }

.r18-grid{ display:grid; grid-template-columns: repeat(3, 1fr); gap: 26px; }
@media (max-width: 860px){ .r18-grid{ grid-template-columns: repeat(2,1fr); } }
@media (max-width: 560px){ .r18-grid{ grid-template-columns: 1fr; max-width: 320px; margin: 0 auto; } }

.r18-card{ border: 1px solid var(--red-line); background: rgba(0,0,0,0.15); }
.r18-poster{ aspect-ratio: 9/16; position:relative; display:flex; flex-direction:column; justify-content:flex-end; padding: 18px; }
.r18-poster::after{ content:""; position:absolute; inset:0; background: linear-gradient(0deg, rgba(0,0,0,0.6), transparent 55%); }
.r18-poster .genre{ position:relative; z-index:1; font-family:'IBM Plex Mono', monospace; font-size:0.6rem; letter-spacing:0.1em; text-transform:uppercase; color: rgba(255,255,255,0.85); margin-bottom:6px; }
.r18-poster h3{ position:relative; z-index:1; font-size:1.25rem; color:#fff; line-height:1.15; }
.r18-body{ padding: 16px 18px 20px; }
.r18-body p{ color: rgba(241,228,196,0.75); font-size:0.86rem; margin: 0 0 16px; min-height:44px; }
.r18-foot{ display:flex; align-items:center; justify-content:space-between; gap:10px; }
.r18-vote{ font-family:'IBM Plex Mono', monospace; font-size:0.68rem; color: rgba(241,228,196,0.6); }
.r18-vote b{ color: #E8A97E; font-size:0.85rem; }

/* ---------------- FAIXAS EM TELA CHEIA (18+, vídeo emoldurado como celular) ---------------- */
.r18-band{
  position:relative; min-height: 82vh; overflow:hidden;
  width:100vw; margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw);
  border-bottom: 1px solid var(--red-line); background: var(--red-bg);
}
.r18-band-backdrop{
  position:absolute; inset:-10px; z-index:0;
  background-size:cover; background-position:center;
  filter: brightness(0.65) saturate(1.05);
  transform: scale(1.04);
}
.r18-band-scrim{
  position:absolute; inset:0; z-index:1;
  background: linear-gradient(0deg, rgba(30,8,8,0.85) 0%, rgba(30,8,8,0.45) 55%, rgba(30,8,8,0.55) 100%);
}
.r18-band .wrap{
  position:relative; z-index:2; min-height:82vh;
  display:flex; align-items:center; gap:56px; flex-wrap:wrap;
  padding-top:56px; padding-bottom:56px;
}
.r18-band.reverse .wrap{ flex-direction:row-reverse; }
.r18-video-frame{
  flex:0 0 auto; width:280px; aspect-ratio: 9/16; border-radius:6px; overflow:hidden;
  box-shadow: 0 30px 70px rgba(0,0,0,0.6); border:1px solid rgba(241,228,196,0.15);
  background:#000;
}
.r18-video-frame video{ width:100%; height:100%; object-fit:cover; display:block; }
.r18-band-content{ flex:1 1 320px; max-width:460px; }
.r18-band-content .genre{ font-family:'IBM Plex Mono', monospace; font-size:0.72rem; letter-spacing:0.12em; text-transform:uppercase; color:#E8A97E; margin-bottom:12px; }
.r18-band-content h3{ font-size: clamp(1.5rem, 2.8vw, 2.1rem); color:#fff; line-height:1.15; margin-bottom:16px; text-shadow: 0 2px 20px rgba(0,0,0,0.6); }
.r18-band-content h3 a{ color:inherit; text-decoration:none; }
.r18-band-content > p{ color: rgba(241,228,196,0.85); font-size:1.02rem; margin:0 0 24px; }
.r18-band .r18-vote{ color: rgba(241,228,196,0.7); }
.r18-band .r18-vote b{ color:#E8A97E; }
@media (max-width: 820px){
  .r18-band .wrap, .r18-band.reverse .wrap{ flex-direction:column; padding:56px 28px; min-height:auto; }
  .r18-video-frame{ width:220px; }
}

.poster--rocinha{ background: url('assets/img/posters/rocinha.png') center top/cover, linear-gradient(160deg,#2e2418,#8a5a2e); }
.poster--favor{ background: url('assets/img/posters/favor.png') center/cover, linear-gradient(160deg,#241a2e,#6a3a5a); }
.poster--redes{ background: url('assets/img/posters/redes.png') center/cover, linear-gradient(160deg,#2e1420,#8a2e4a); }
.poster--saopaulo{ background: url('assets/img/posters/saopaulo.png') center/cover, linear-gradient(160deg,#0d1f2e,#1f6e7a); }

/* ---------------- vote form (reaproveitado nas páginas de história) ---------------- */
.vote-row{ display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:auto; }
.vote-count{ font-family:'IBM Plex Mono', monospace; font-size:0.72rem; color: var(--paper-dim); }
.vote-count b{ color: var(--marquee); font-size:0.9rem; }
.vote-email-form{ margin-top:10px; display:flex; flex-direction:column; gap:8px; }
.vote-email-form input[type="email"]{ background: var(--ink-2); border:1px solid var(--line); color: var(--paper); padding:8px 10px; font-size:0.85rem; font-family:'Source Serif 4', serif; }
.vote-email-form .consent{ display:flex; align-items:flex-start; gap:6px; font-size:0.72rem; color: var(--paper-dim); line-height:1.4; }
.vote-email-form .consent input[type="checkbox"]{ width:14px; height:14px; margin-top:2px; flex-shrink:0; }
.vote-email-form .btn{ align-self:flex-start; }
.vote-email-form[hidden]{ display:none; }

/* ---------------- services ---------------- */
.diff-grid{ display:grid; grid-template-columns: repeat(3,1fr); gap: 1px; background: var(--line); border: 1px solid var(--line); margin-bottom: 56px; }
@media (max-width: 800px){ .diff-grid{ grid-template-columns: 1fr; } }
.diff{ background: var(--ink); padding: 34px 28px; }
.diff .mono{ font-size:0.66rem; color: var(--verdigris); display:block; margin-bottom:14px; }
.diff h3{ font-size:1.2rem; margin-bottom:10px; letter-spacing:0; font-family:'Playfair Display', serif; }
.diff p{ color: var(--paper-dim); font-size:0.92rem; margin:0; }

.service-panel{ display:grid; grid-template-columns: 1.1fr 0.9fr; gap:56px; align-items:start; }
@media (max-width: 860px){ .service-panel{ grid-template-columns: 1fr; } }
.service-copy p{ color: var(--paper-dim); margin-bottom:18px; }
.service-copy ul{ list-style:none; margin:0 0 28px; padding:0; }
.service-copy li{ padding-left: 26px; position:relative; margin-bottom:12px; font-size:0.95rem; }
.service-copy li::before{ content:"❧"; position:absolute; left:0; color: var(--marquee); font-size: 0.85em; }

form{ border:1px solid var(--line); background: var(--ink-2); padding: 28px; }
form label{ display:block; font-family:'IBM Plex Mono', monospace; font-size:0.66rem; letter-spacing:0.08em; text-transform:uppercase; color: var(--paper-dim); margin-bottom:6px; margin-top:18px; }
form label:first-of-type{ margin-top:0; }
form input, form select, form textarea{ width:100%; background: var(--ink); border:1px solid var(--line); color: var(--paper); padding: 11px 12px; font-family:'Source Serif 4', serif; font-size:0.95rem; }
form textarea{ min-height:90px; resize:vertical; }
form input:focus, form select:focus, form textarea:focus{ outline: 1px solid var(--marquee); border-color: var(--marquee); }
form .btn{ margin-top:22px; width:100%; justify-content:center; }
.brief-msg{ margin-top:14px; font-size:0.88rem; text-align:center; }
.brief-msg.ok{ color: var(--verdigris); }
.brief-msg.error{ color: var(--velvet); }

/* footer */
footer{ padding: 40px 0; }
footer .wrap{ display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:14px; }
footer .mono{ color: var(--paper-dim); font-size:0.7rem; }

.sr-only{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); }

/* ---------------- STORY DETAIL PAGE (reaproveitado) ---------------- */
.story-hero{ position:relative; padding: 70px 0 56px; overflow:hidden; }
.back-link{ display:inline-flex; align-items:center; gap:8px; font-family:'IBM Plex Mono', monospace; font-size:0.72rem; letter-spacing:0.06em; text-transform:uppercase; color: var(--paper-dim); text-decoration:none; margin-bottom:28px; }
.back-link:hover{ color: var(--marquee); }
.story-hero .genre-tag{ font-family:'IBM Plex Mono', monospace; font-size:0.72rem; letter-spacing:0.12em; text-transform:uppercase; color: var(--marquee); margin-bottom:14px; display:block; }
.story-hero h1{ font-size: clamp(2rem, 4.6vw, 3.2rem); line-height:1.08; max-width: 780px; margin-bottom:20px; }
.story-hero .logline{ max-width: 620px; font-size:1.1rem; color: var(--paper-dim); margin-bottom:34px; }

.player{ position:relative; aspect-ratio: 16/9; max-width: 820px; display:flex; align-items:center; justify-content:center; border: 1px solid var(--line); margin-bottom: 8px; overflow:hidden; }
.player video{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; }
.player.vertical{ aspect-ratio: 9/16; max-width: 360px; }
.player .play{ width:64px; height:64px; border-radius:50%; border: 1px solid rgba(255,255,255,0.7); display:flex; align-items:center; justify-content:center; color:#fff; position:relative; z-index:1; background: rgba(0,0,0,0.25); }
.player .play::before{ content:""; width:0; height:0; border-top: 10px solid transparent; border-bottom: 10px solid transparent; border-left: 16px solid #fff; margin-left:5px; }
.player .runtime{ position:absolute; bottom:14px; right:16px; z-index:1; font-family:'IBM Plex Mono', monospace; font-size:0.72rem; color:#fff; background: rgba(0,0,0,0.45); padding:3px 8px; }
.player-caption{ color: var(--paper-dim); font-size:0.78rem; font-family:'IBM Plex Mono', monospace; margin-bottom:60px; }

.production-note{
  margin: 32px 0 60px;
  padding: 22px 26px;
  background: var(--ink-2);
  border-left: 3px solid var(--marquee);
  font-size: 0.95rem;
  color: var(--paper-dim);
}
.production-note strong{ color: var(--paper); }
.production-note .btn{ margin-top:14px; }

.support-section{ background: var(--ink-2); }
.support-grid{ display:grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items:start; }
@media (max-width: 820px){ .support-grid{ grid-template-columns: 1fr; } }
.perk-list{ list-style:none; margin:0; padding:0; }
.perk-list li{ padding: 14px 0; border-top: 1px solid var(--line); font-size:0.98rem; padding-left: 30px; position:relative; }
.perk-list li:last-child{ border-bottom: 1px solid var(--line); }
.perk-list li::before{ content:"❧"; position:absolute; left:0; color: var(--marquee); }
.support-cta{ text-align:center; padding: 36px; border: 1px solid var(--line); background: var(--ink); }
.support-cta p{ color: var(--paper-dim); margin-bottom: 20px; }

.sobre-visual{ aspect-ratio: 4/3; border: 1px solid var(--line); overflow:hidden; }
.sobre-visual img{ width:100%; height:100%; object-fit:cover; display:block; }

.story-body{ display:grid; grid-template-columns: 1.3fr 0.7fr; gap:64px; }
@media (max-width: 900px){ .story-body{ grid-template-columns: 1fr; } }
.story-body h2{ font-size:1.5rem; margin-bottom:18px; }
.story-body .synopsis p{ color: var(--paper-dim); margin-bottom:16px; font-size:1rem; }

.open-questions{ list-style:none; margin:0; padding:0; }
.open-questions li{ padding: 14px 0; border-top:1px solid var(--line); font-size:0.95rem; color: var(--paper-dim); }
.open-questions li:last-child{ border-bottom:1px solid var(--line); }
.open-questions li::before{ content:"? "; color: var(--marquee); font-family:'IBM Plex Mono', monospace; }

.cast-list{ display:flex; flex-direction:column; gap:22px; margin-top:14px; }
.cast-card{ display:flex; gap:16px; align-items:flex-start; }
.cast-swatch{ width:56px; height:56px; flex-shrink:0; border:1px solid var(--line); }
.cast-card h4{ font-family:'Playfair Display', serif; font-size:1.05rem; margin-bottom:4px; }
.cast-card p{ margin:0; color: var(--paper-dim); font-size:0.88rem; }

.vote-cta{ margin-top: 60px; padding: 30px; border: 1px solid var(--line); background: var(--ink-2); display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:20px; }
.vote-cta .vote-count{ font-size:0.85rem; }
.vote-cta .vote-count b{ font-size:1.1rem; }

.comments-block{ margin-top: 56px; padding-top: 40px; border-top: 1px solid var(--line); }
.comments-block h2{ margin-bottom: 6px; }
.comment-form{ border:1px solid var(--line); background: var(--ink-2); padding: 22px; margin-bottom: 28px; }
.comment-form label{ display:block; font-family:'IBM Plex Mono', monospace; font-size:0.66rem; letter-spacing:0.08em; text-transform:uppercase; color: var(--paper-dim); margin-bottom:6px; margin-top:14px; }
.comment-form label:first-child{ margin-top:0; }
.comment-form input, .comment-form textarea{ width:100%; background: var(--ink); border:1px solid var(--line); color: var(--paper); padding: 10px 12px; font-family:'Source Serif 4', serif; font-size:0.92rem; }
.comment-form textarea{ min-height:80px; resize:vertical; }
.comment-form .btn{ margin-top:16px; }
.comment-item{ padding: 16px 0; border-top: 1px solid var(--line); }
.comment-item:first-child{ border-top:none; }
.comment-meta{ display:flex; justify-content:space-between; gap:12px; margin-bottom:6px; }
.comment-meta strong{ font-family:'Playfair Display', serif; font-size:0.95rem; }
.comment-meta span{ font-family:'IBM Plex Mono', monospace; font-size:0.68rem; color: var(--paper-dim); }
.comment-item p{ color: var(--paper-dim); font-size:0.9rem; margin:0; }
