:root {
  --bg: #0B0B0D;
  --surface: #17171A;
  --surface-soft: #121214;
  --text: #EAE6DF;
  --muted: #B8B1A8;
  --line: #343438;
  --accent: #C75F6D;
  --accent-deep: #701F30;
  --max: 1380px;
  --pad: clamp(20px, 4vw, 64px);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--bg);
  color: var(--text);
  font-family: "IBM Plex Sans", system-ui, sans-serif;
  font-size: 16px;
  line-height: 1.55;
}
body.menu-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
button, input { font: inherit; }
button { color: inherit; }

.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;
}

.section-shell {
  width: min(100%, var(--max));
  margin: 0 auto;
  padding-left: var(--pad);
  padding-right: var(--pad);
}

.eyebrow {
  margin: 0 0 22px;
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

h1, h2, h3 {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-weight: 600;
  line-height: 0.95;
  margin-top: 0;
}

h2 {
  margin-bottom: 20px;
  font-size: clamp(3.1rem, 7vw, 6.5rem);
  letter-spacing: -0.045em;
}

.site-header {
  position: sticky;
  top: 0;
  z-index: 40;
  min-height: 74px;
  display: flex;
  align-items: center;
  gap: 28px;
  padding: 0 var(--pad);
  border-bottom: 1px solid rgba(52,52,56,0.8);
  background: rgba(11,11,13,0.94);
  backdrop-filter: blur(16px);
}

.brand {
  display: inline-flex;
  min-width: 190px;
  font-size: 0.82rem;
  letter-spacing: 0.11em;
  font-weight: 600;
}
.brand__discreet { display: none; }

.desktop-nav {
  margin-left: auto;
  display: flex;
  gap: 24px;
  font-size: 0.72rem;
  letter-spacing: 0.08em;
}
.desktop-nav a, .footer-links a, .card-link, .text-link { transition: color 160ms ease, opacity 160ms ease; }
.desktop-nav a:hover, .footer-links a:hover, .card-link:hover, .text-link:hover { color: var(--accent); }

.header-actions { display: flex; align-items: center; gap: 18px; }
.mode-toggle, .menu-toggle {
  border: 0;
  background: transparent;
  cursor: pointer;
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.11em;
}
.menu-toggle { display: none; }

.hero {
  min-height: calc(100vh - 74px);
  padding-top: clamp(54px, 8vw, 120px);
  padding-bottom: clamp(54px, 7vw, 96px);
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(340px, 0.95fr);
  gap: clamp(44px, 7vw, 110px);
  align-items: center;
}
.hero h1 {
  margin-bottom: 24px;
  font-size: clamp(5.1rem, 11vw, 10.8rem);
  letter-spacing: -0.065em;
}
.hero__tagline {
  margin: 0 0 30px;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: clamp(2rem, 4vw, 4.6rem);
  line-height: 0.94;
}
.hero__intro {
  max-width: 520px;
  margin: 0 0 34px;
  color: var(--muted);
  font-size: 1.05rem;
}
.hero__actions { display: flex; gap: 26px; align-items: center; flex-wrap: wrap; }

.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 0 20px;
  border: 1px solid var(--text);
  border-radius: 3px;
  background: transparent;
  color: var(--text);
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.09em;
  cursor: pointer;
}
.button--primary:hover { background: var(--text); color: var(--bg); }
.button:disabled { opacity: 0.5; cursor: default; }

.text-link {
  color: var(--muted);
  font-size: 0.72rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.text-link--large { font-size: 0.8rem; }
.text-link--button { border: 0; padding: 0; background: transparent; cursor: pointer; }

.visual-card {
  min-height: 590px;
  border: 1px solid var(--line);
  padding: 18px;
  background: var(--surface);
}
.visual-card__frame {
  height: 100%;
  min-height: 552px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 24px;
  border: 1px solid #27272b;
  background-color: #101012;
  background-image:
    linear-gradient(#1c1c20 1px, transparent 1px),
    linear-gradient(90deg, #1c1c20 1px, transparent 1px);
  background-size: 44px 44px;
}
.visual-card__index, .visual-card__label {
  font-size: 0.7rem;
  letter-spacing: 0.12em;
  color: var(--muted);
}
.visual-card__label { align-self: flex-end; text-align: right; }

.section-block {
  padding-top: clamp(92px, 12vw, 170px);
  padding-bottom: clamp(92px, 12vw, 170px);
  border-top: 1px solid var(--line);
}
.section-block--contrast {
  width: 100%;
  max-width: none;
  padding-left: max(var(--pad), calc((100vw - var(--max)) / 2 + var(--pad)));
  padding-right: max(var(--pad), calc((100vw - var(--max)) / 2 + var(--pad)));
  background: var(--surface-soft);
}
.section-heading { max-width: 850px; margin-bottom: 60px; }
.section-heading > p, .section-lead, .about-copy, .section-heading--split > p { color: var(--muted); }
.section-heading--split {
  max-width: none;
  display: grid;
  grid-template-columns: 1fr minmax(300px, 0.55fr);
  gap: 60px;
  align-items: end;
}
.section-heading--split > p { max-width: 520px; margin: 0 0 16px; }

.editorial-grid { display: grid; gap: 0; border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.editorial-grid--4 { grid-template-columns: repeat(4, 1fr); }
.editorial-card {
  min-height: 320px;
  padding: 28px;
  display: flex;
  flex-direction: column;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.editorial-card__number { color: var(--accent); font-size: 0.75rem; letter-spacing: 0.12em; }
.editorial-card h3 { margin: auto 0 16px; font-size: 2.3rem; }
.editorial-card p { margin: 0 0 24px; color: var(--muted); }
.card-link { margin-top: auto; font-size: 0.73rem; letter-spacing: 0.1em; }

.az-layout {
  display: grid;
  grid-template-columns: 0.85fr 1.15fr;
  gap: 80px;
  align-items: end;
}
.az-browser { padding-bottom: 16px; }
.letters { display: grid; grid-template-columns: repeat(13, 1fr); gap: 9px; margin-bottom: 28px; }
.letters span { color: var(--muted); font-size: 0.78rem; text-align: center; }
.search-box input {
  width: 100%;
  border: 0;
  border-bottom: 1px solid var(--text);
  background: transparent;
  color: var(--text);
  padding: 14px 0;
  outline: none;
  font-size: 1rem;
}
.search-box input::placeholder { color: #777278; }
.term-list { margin-top: 80px; border-top: 1px solid var(--line); }
.term-entry {
  display: grid;
  grid-template-columns: 170px 0.7fr 1.3fr;
  gap: 40px;
  padding: 28px 0;
  border-bottom: 1px solid var(--line);
  align-items: start;
}
.term-entry__meta { color: var(--accent); font-size: 0.7rem; letter-spacing: 0.11em; }
.term-entry h3 { font-size: 2.4rem; margin-bottom: 0; }
.term-entry p:last-child { color: var(--muted); margin: 3px 0 0; }
.search-empty { margin-top: 28px; color: var(--muted); }
.section-link { display: inline-block; margin-top: 38px; }

.community-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; }
.community-card {
  min-height: 390px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 34px;
  border: 1px solid var(--line);
  background: var(--surface-soft);
}
.community-card__type { color: var(--accent); font-size: 0.7rem; letter-spacing: 0.12em; }
.community-card h3 { margin: 90px 0 18px; font-size: clamp(3rem, 5vw, 5rem); }
.community-card p:not(.community-card__type) { max-width: 500px; color: var(--muted); }
.community-card__footer {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  padding-top: 24px;
  border-top: 1px solid var(--line);
  font-size: 0.7rem;
  letter-spacing: 0.08em;
}
.community-card__footer span { color: var(--muted); }
.community-card__footer a:hover { color: var(--accent); }
.scene-note { margin-top: 26px; padding-top: 24px; border-top: 1px solid var(--line); color: var(--muted); }

.bdsmer-section {
  width: min(100%, var(--max));
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 70px;
  align-items: center;
}
.bdsmer-panel h2 { max-width: 760px; }
.bdsmer-panel > p:not(.eyebrow) { max-width: 650px; color: var(--muted); }
.bdsmer-meta { display: flex; gap: 10px; flex-wrap: wrap; margin: 28px 0 36px; }
.bdsmer-meta span, .source-tags span {
  border: 1px solid var(--line);
  padding: 8px 10px;
  font-size: 0.64rem;
  letter-spacing: 0.09em;
}
.bdsmer-report { border-left: 1px solid var(--line); padding-left: 50px; }
.report-row {
  display: grid;
  grid-template-columns: 120px 1fr 32px;
  gap: 16px;
  align-items: center;
  padding: 18px 0;
  border-bottom: 1px solid var(--line);
  font-size: 0.73rem;
  letter-spacing: 0.08em;
}
.report-line { height: 2px; background: #2b2b2f; }
.report-line i { display: block; height: 100%; background: var(--accent); }
.report-row b { font-weight: 500; color: var(--muted); }

.archive-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.archive-card { min-height: 390px; padding: 30px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); display: flex; flex-direction: column; }
.archive-card__label { color: var(--accent); font-size: 0.7rem; letter-spacing: 0.12em; }
.archive-card h3 { margin: 80px 0 20px; font-size: 2.35rem; line-height: 1.02; }
.archive-card p:not(.archive-card__label) { color: var(--muted); }
.archive-card__meta { margin-top: auto; padding-top: 24px; color: var(--muted); font-size: 0.7rem; letter-spacing: 0.1em; }
.source-tags { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 32px; }

.about-section { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; }
.about-copy { font-size: 1.1rem; max-width: 650px; }
.privacy-strip { padding-top: 44px; padding-bottom: 44px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.privacy-strip p:last-child { color: var(--muted); max-width: 850px; }

.site-footer {
  padding-top: 60px;
  padding-bottom: 60px;
  display: grid;
  grid-template-columns: 1.2fr 0.8fr;
  gap: 50px;
}
.brand-footer { letter-spacing: 0.11em; font-size: 0.82rem; }
.site-footer > div > p:last-child { color: var(--muted); }
.footer-links { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px 24px; font-size: 0.8rem; }
.footer-meta { grid-column: 1 / -1; display: flex; justify-content: space-between; padding-top: 26px; border-top: 1px solid var(--line); color: var(--muted); font-size: 0.68rem; letter-spacing: 0.08em; }

.age-gate {
  position: fixed;
  inset: 0;
  z-index: 100;
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  background: var(--bg);
}
.age-gate[hidden] { display: none; }
.age-gate__panel {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: var(--pad);
  max-width: 720px;
}
.age-gate h1, .age-gate__title { margin-bottom: 24px; font-size: clamp(4rem, 8vw, 8rem); letter-spacing: -0.055em; }
.age-gate__copy { max-width: 570px; color: var(--muted); }
.age-gate__actions { display: flex; align-items: center; gap: 24px; margin-top: 32px; flex-wrap: wrap; }
.age-gate__meta { display: flex; gap: 8px; margin-top: 26px; color: var(--muted); }
.age-gate__visual {
  position: relative;
  display: flex;
  align-items: flex-end;
  justify-content: flex-end;
  padding: 36px;
  border-left: 1px solid var(--line);
  background-color: #111113;
  background-image:
    linear-gradient(#1c1c20 1px, transparent 1px),
    linear-gradient(90deg, #1c1c20 1px, transparent 1px);
  background-size: 52px 52px;
}
.age-gate__visual::before {
  content: "";
  position: absolute;
  width: 42%;
  height: 56%;
  left: 12%;
  top: 20%;
  border: 1px solid var(--accent-deep);
}
.age-gate__visual span { position: relative; color: var(--muted); font-size: 0.7rem; letter-spacing: 0.12em; }

.mobile-menu {
  position: fixed;
  inset: 74px 0 0;
  z-index: 35;
  padding: 34px var(--pad);
  background: var(--bg);
  border-top: 1px solid var(--line);
}
.mobile-menu nav { display: flex; flex-direction: column; }
.mobile-menu nav a { padding: 20px 0; border-bottom: 1px solid var(--line); font-family: "Cormorant Garamond", serif; font-size: 2.2rem; }
.mode-toggle--mobile { margin-top: 28px; }

body.discreet-mode {
  --accent: #A7A3A0;
  --accent-deep: #3A393C;
}
body.discreet-mode .brand__main { display: none; }
body.discreet-mode .brand__discreet { display: inline; }
body.discreet-mode .hero__tagline { font-size: 0; }
body.discreet-mode .hero__tagline::after { content: "Cultura, arquivo e cena carioca."; font-size: clamp(2rem, 4vw, 4.6rem); }
body.discreet-mode .visual-card,
body.discreet-mode .age-gate__visual,
body.discreet-mode .bdsmer-report { display: none; }
body.discreet-mode .hero,
body.discreet-mode .bdsmer-section { grid-template-columns: 1fr; }

@media (max-width: 1080px) {
  .desktop-nav { display: none; }
  .menu-toggle { display: block; }
  .header-actions { margin-left: auto; }
  .hero { grid-template-columns: 1fr; min-height: auto; }
  .hero__visual { min-height: 430px; }
  .visual-card__frame { min-height: 392px; }
  .editorial-grid--4 { grid-template-columns: repeat(2, 1fr); }
  .az-layout { grid-template-columns: 1fr; gap: 46px; }
  .bdsmer-section { grid-template-columns: 1fr; }
  .bdsmer-report { border-left: 0; border-top: 1px solid var(--line); padding: 36px 0 0; }
  .archive-grid { grid-template-columns: 1fr; }
}

@media (max-width: 760px) {
  .site-header { min-height: 66px; gap: 12px; }
  .brand { min-width: auto; font-size: 0.72rem; }
  .mode-toggle:not(.mode-toggle--mobile) { display: none; }
  .mobile-menu { inset: 66px 0 0; }
  .hero { min-height: auto; padding-top: 52px; }
  .hero h1 { font-size: clamp(4.7rem, 23vw, 7rem); }
  .hero__tagline { font-size: clamp(2.4rem, 12vw, 4rem); }
  .visual-card { min-height: 470px; }
  .visual-card__frame { min-height: 432px; }
  .section-heading--split, .about-section { grid-template-columns: 1fr; gap: 24px; }
  .editorial-grid--4 { grid-template-columns: 1fr; }
  .editorial-card { min-height: 260px; }
  .letters { grid-template-columns: repeat(9, 1fr); }
  .term-entry { grid-template-columns: 1fr; gap: 8px; }
  .community-grid { grid-template-columns: 1fr; }
  .community-card h3 { margin-top: 60px; }
  .report-row { grid-template-columns: 92px 1fr 28px; }
  .site-footer { grid-template-columns: 1fr; }
  .footer-meta { grid-column: auto; flex-direction: column; gap: 10px; }
  .age-gate { grid-template-columns: 1fr; }
  .age-gate__visual { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; animation: none !important; }
}

/* v0.2 — gate information and editorial content pages */
.gate-info {
  position: absolute;
  inset: 0;
  z-index: 120;
  display: grid;
  place-items: center;
  padding: var(--pad);
  background: rgba(5,5,7,.92);
}
.gate-info[hidden] { display: none; }
.gate-info__panel {
  position: relative;
  width: min(720px, 100%);
  max-height: min(720px, 85vh);
  overflow: auto;
  padding: clamp(32px, 6vw, 68px);
  border: 1px solid var(--line);
  background: var(--surface-soft);
}
.gate-info__panel h2 { font-size: clamp(3rem, 7vw, 5.5rem); }
.gate-info__body { max-width: 580px; color: var(--muted); font-size: 1rem; }
.gate-info__close {
  position: absolute;
  top: 20px;
  right: 20px;
  border: 0;
  background: transparent;
  color: var(--muted);
  cursor: pointer;
  font-size: .68rem;
  letter-spacing: .12em;
}
.gate-info__close:hover { color: var(--accent); }
.card-link--muted, .text-link--disabled { color: #777278; cursor: default; }
.term-entry--link { color: inherit; transition: background 160ms ease; }
.term-entry--link:hover { background: rgba(255,255,255,.025); }
.term-entry--link:hover h3 { color: var(--accent); }

.article-page { min-height: 100vh; }
.article-header {
  padding-top: clamp(70px, 10vw, 140px);
  padding-bottom: clamp(64px, 8vw, 110px);
  border-bottom: 1px solid var(--line);
}
.article-header__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(280px, .55fr);
  gap: clamp(48px, 8vw, 120px);
  align-items: end;
}
.article-header h1 {
  margin: 0 0 28px;
  font-size: clamp(4.5rem, 11vw, 10rem);
  letter-spacing: -.06em;
}
.article-deck { max-width: 760px; margin: 0; color: var(--muted); font-size: clamp(1.15rem, 2vw, 1.45rem); }
.article-index { padding: 28px 0 4px; border-top: 1px solid var(--line); color: var(--muted); }
.article-index dl { margin: 0; }
.article-index div { display: grid; grid-template-columns: 110px 1fr; gap: 18px; padding: 8px 0; }
.article-index dt { font-size: .66rem; letter-spacing: .1em; text-transform: uppercase; }
.article-index dd { margin: 0; color: var(--text); font-size: .82rem; }
.article-body {
  display: grid;
  grid-template-columns: minmax(190px, .35fr) minmax(0, .95fr) minmax(180px, .3fr);
  gap: clamp(36px, 6vw, 80px);
  padding-top: clamp(68px, 9vw, 120px);
  padding-bottom: clamp(90px, 12vw, 160px);
}
.article-toc { position: sticky; top: 106px; align-self: start; }
.article-toc p { color: var(--accent); font-size: .68rem; letter-spacing: .12em; }
.article-toc a { display: block; padding: 8px 0; color: var(--muted); font-size: .78rem; }
.article-toc a:hover { color: var(--text); }
.article-copy { max-width: 760px; }
.article-copy h2 { margin-top: 90px; font-size: clamp(2.8rem, 5vw, 4.9rem); }
.article-copy h2:first-child { margin-top: 0; }
.article-copy h3 { margin: 48px 0 14px; font-size: 2rem; line-height: 1.05; }
.article-copy p, .article-copy li { color: #d2ccc4; font-size: 1.04rem; line-height: 1.8; }
.article-copy strong { color: var(--text); }
.article-copy ul { padding-left: 20px; }
.article-callout { margin: 46px 0; padding: 26px 28px; border-left: 2px solid var(--accent); background: var(--surface-soft); }
.article-callout p { margin: 0; color: var(--text); }
.term-compare { margin: 40px 0; border-top: 1px solid var(--line); }
.term-compare__row { display: grid; grid-template-columns: 150px 1fr; gap: 30px; padding: 20px 0; border-bottom: 1px solid var(--line); }
.term-compare__row b { font-family: "Cormorant Garamond", serif; font-size: 1.6rem; font-weight: 600; }
.term-compare__row span { color: var(--muted); }
.article-aside { align-self: start; padding-top: 4px; }
.article-aside__box { padding: 22px; border: 1px solid var(--line); background: var(--surface-soft); }
.article-aside__box + .article-aside__box { margin-top: 18px; }
.article-aside__label { margin: 0 0 12px; color: var(--accent); font-size: .64rem; letter-spacing: .12em; }
.article-aside__box p:last-child { margin-bottom: 0; color: var(--muted); font-size: .82rem; }
.sources-section { padding-top: 60px; border-top: 1px solid var(--line); }
.source-item { padding: 22px 0; border-bottom: 1px solid var(--line); }
.source-item__type { color: var(--accent); font-size: .64rem; letter-spacing: .11em; }
.source-item h3 { margin: 8px 0; font-family: "IBM Plex Sans", sans-serif; font-size: 1rem; line-height: 1.4; }
.source-item p { margin: 0 0 10px; color: var(--muted); font-size: .86rem; line-height: 1.5; }
.source-item a { color: var(--text); font-size: .72rem; letter-spacing: .08em; }
.source-item a:hover { color: var(--accent); }
.article-footer-nav { border-top: 1px solid var(--line); padding-top: 32px; padding-bottom: 70px; display: flex; justify-content: space-between; gap: 20px; }
.article-footer-nav a { font-size: .75rem; letter-spacing: .09em; }
.article-footer-nav a:hover { color: var(--accent); }
.article-back { display: inline-block; margin-bottom: 32px; color: var(--muted); font-size: .72rem; letter-spacing: .1em; }
.article-back:hover { color: var(--accent); }
body.discreet-mode .article-header .eyebrow, body.discreet-mode .article-toc p, body.discreet-mode .article-aside__label, body.discreet-mode .source-item__type { color: var(--accent); }

@media (max-width: 1000px) {
  .article-header__grid { grid-template-columns: 1fr; }
  .article-body { grid-template-columns: 1fr; }
  .article-toc { position: static; display: grid; grid-template-columns: repeat(2, 1fr); gap: 0 18px; padding-bottom: 30px; border-bottom: 1px solid var(--line); }
  .article-toc p { grid-column: 1 / -1; }
  .article-aside { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; }
  .article-aside__box + .article-aside__box { margin-top: 0; }
}
@media (max-width: 620px) {
  .article-toc, .article-aside { grid-template-columns: 1fr; }
  .article-aside__box + .article-aside__box { margin-top: 0; }
  .term-compare__row { grid-template-columns: 1fr; gap: 6px; }
  .article-footer-nav { flex-direction: column; }
}


/* v0.4 — dedicated A–Z index */
.az-page-header h1 { font-size: clamp(6rem, 16vw, 14rem); }
.az-full { min-height: 65vh; }
.az-toolbar { display: flex; align-items: center; gap: 22px; margin-bottom: 20px; }
.az-toolbar .search-box { flex: 1; }
.letters--buttons { margin-bottom: 34px; }
.letter-filter { border: 0; padding: 4px 2px; background: transparent; color: var(--muted); font: inherit; font-size: .72rem; cursor: pointer; }
.letter-filter:hover, .letter-filter.is-active { color: var(--accent); }
.term-list--full { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.term-list--full .term-entry { min-height: 260px; }
.term-compare__row a { color: var(--text); text-decoration: none; }
.term-compare__row a:hover { color: var(--accent); }
@media (max-width: 760px) {
  .az-toolbar { align-items: stretch; flex-direction: column; }
  .term-list--full { grid-template-columns: 1fr; }
}


/* v0.4 — dedicated A–Z index */
.az-page-header h1 { font-size: clamp(6rem, 16vw, 14rem); }
.az-full { min-height: 65vh; }
.az-toolbar { display: flex; align-items: center; gap: 22px; margin-bottom: 20px; }
.az-toolbar .search-box { flex: 1; }
.letters--buttons { margin-bottom: 34px; }
.letter-filter { border: 0; padding: 4px 2px; background: transparent; color: var(--muted); font: inherit; font-size: .72rem; cursor: pointer; }
.letter-filter:hover, .letter-filter.is-active { color: var(--accent); }
.term-list--full { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.term-list--full .term-entry { min-height: 260px; }
.term-compare__row a { color: var(--text); text-decoration: none; }
.term-compare__row a:hover { color: var(--accent); }
@media (max-width: 760px) {
  .az-toolbar { align-items: stretch; flex-direction: column; }
  .term-list--full { grid-template-columns: 1fr; }
}


/* v0.4 — dedicated A–Z index */
.az-page-header h1 { font-size: clamp(6rem, 16vw, 14rem); }
.az-full { min-height: 65vh; }
.az-toolbar { display: flex; align-items: center; gap: 22px; margin-bottom: 20px; }
.az-toolbar .search-box { flex: 1; }
.letters--buttons { margin-bottom: 34px; }
.letter-filter { border: 0; padding: 4px 2px; background: transparent; color: var(--muted); font: inherit; font-size: .72rem; cursor: pointer; }
.letter-filter:hover, .letter-filter.is-active { color: var(--accent); }
.term-list--full { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.term-list--full .term-entry { min-height: 260px; }
.term-compare__row a { color: var(--text); text-decoration: none; }
.term-compare__row a:hover { color: var(--accent); }
@media (max-width: 760px) {
  .az-toolbar { align-items: stretch; flex-direction: column; }
  .term-list--full { grid-template-columns: 1fr; }
}


/* v0.6 — Rio as editorial structure */
.desktop-nav .is-current { color: var(--accent); }
.scene-hero { min-height: 72vh; display:grid; grid-template-columns:1.1fr .9fr; gap:70px; align-items:end; padding-top:clamp(90px,12vw,170px); padding-bottom:clamp(70px,10vw,130px); border-bottom:1px solid var(--line); }
.scene-hero h1 { font-size:clamp(7rem,17vw,15rem); line-height:.72; letter-spacing:-.07em; margin:30px 0; }
.scene-hero__deck { max-width:760px; color:var(--muted); font-size:clamp(1.2rem,2vw,1.6rem); }
.scene-hero__stamp { min-height:430px; border:1px solid var(--line); display:flex; flex-direction:column; justify-content:space-between; padding:30px; background:repeating-linear-gradient(90deg,transparent 0,transparent 46px,rgba(255,255,255,.025) 47px); }
.scene-hero__stamp span,.scene-hero__stamp small { font-size:.68rem; letter-spacing:.13em; color:var(--muted); }
.scene-hero__stamp b { font-family:'Cormorant Garamond',serif; font-size:clamp(9rem,18vw,16rem); line-height:.7; color:var(--accent-deep); font-weight:600; }
.scene-manifesto { padding-top:clamp(80px,10vw,140px); padding-bottom:clamp(80px,10vw,140px); }
.scene-manifesto__grid,.scene-voices__grid { display:grid; grid-template-columns:.9fr 1.1fr; gap:clamp(50px,8vw,120px); align-items:start; }
.scene-manifesto h2,.scene-voices h2 { font-size:clamp(3.5rem,7vw,6.5rem); margin:0; }
.scene-manifesto__grid p,.scene-voices__grid p { color:var(--muted); font-size:1.05rem; line-height:1.75; }
.scene-axis { display:grid; grid-template-columns:repeat(3,1fr); border-left:1px solid var(--line); border-top:1px solid var(--line); }
.scene-axis__card { min-height:390px; padding:30px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); display:flex; flex-direction:column; color:inherit; }
.scene-axis__card span { color:var(--accent); font-size:.68rem; letter-spacing:.12em; }
.scene-axis__card h3 { margin:80px 0 18px; font-size:clamp(2.5rem,4vw,4.2rem); }
.scene-axis__card p { color:var(--muted); }
.scene-axis__card b { margin-top:auto; font-size:.7rem; letter-spacing:.1em; font-weight:500; }
.scene-axis__card:hover { background:rgba(255,255,255,.025); } .scene-axis__card:hover h3,.scene-axis__card:hover b { color:var(--accent); }
.rio-timeline { padding-top:clamp(100px,12vw,170px); padding-bottom:clamp(100px,12vw,170px); }
.timeline-row { display:grid; grid-template-columns:140px 1fr 130px; gap:40px; align-items:start; padding:30px 0; border-top:1px solid var(--line); }
.timeline-row:last-child { border-bottom:1px solid var(--line); }
.timeline-row time { font-family:'Cormorant Garamond',serif; font-size:2.7rem; } .timeline-row h3 { margin:0 0 8px; font-size:1.45rem; } .timeline-row p { margin:0;color:var(--muted);max-width:780px; }
.evidence { justify-self:end; border:1px solid var(--line); padding:7px 9px; color:var(--accent); font-size:.62rem; letter-spacing:.1em; white-space:nowrap; } .evidence--memory { color:var(--muted); border-style:dashed; }
.scene-voices { padding-top:80px; padding-bottom:130px; border-top:1px solid var(--line); }
.rio-home-grid { display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--line); border-left:1px solid var(--line); }
.rio-home-grid a { min-height:280px; color:inherit; border-right:1px solid var(--line); border-bottom:1px solid var(--line); padding:26px; } .rio-home-grid span { color:var(--accent);font-size:.65rem;letter-spacing:.12em; } .rio-home-grid h3 { margin:70px 0 10px;font-size:2.4rem; } .rio-home-grid p { color:var(--muted); } .rio-home-grid a:hover h3 { color:var(--accent); }
.research-stack,.geo-list,.document-grid,.voice-principles { padding-top:100px; padding-bottom:120px; }
.research-card { display:grid; grid-template-columns:220px 1fr 1fr; gap:40px; padding:45px 0; border-top:1px solid var(--line); align-items:start; } .research-card:last-child { border-bottom:1px solid var(--line); } .research-card h2 { margin:0;font-size:clamp(3rem,5vw,5rem); } .research-card>p:not(.eyebrow) { color:var(--muted);line-height:1.7; } .research-card>a { align-self:end;font-size:.7rem;letter-spacing:.1em; }
.geo-list { display:grid; grid-template-columns:repeat(2,1fr); border-left:1px solid var(--line); border-top:1px solid var(--line); padding-top:0;padding-bottom:0;margin-top:100px;margin-bottom:120px; } .geo-list article { min-height:380px;padding:30px;border-right:1px solid var(--line);border-bottom:1px solid var(--line); } .geo-list h2 { font-size:clamp(2.8rem,5vw,4.7rem); margin:54px 0 18px; } .geo-list p:not(.eyebrow) { color:var(--muted); } .geo-list a { display:inline-block;margin-top:24px;font-size:.7rem;letter-spacing:.1em; } .geo-list .evidence { float:right; }
.document-grid { display:grid;grid-template-columns:repeat(2,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line);padding-top:0;padding-bottom:0;margin-top:100px;margin-bottom:120px; } .document-grid article { min-height:350px;padding:32px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;flex-direction:column; } .document-grid h2 { font-size:clamp(2.5rem,4vw,4rem);margin:65px 0 18px; } .document-grid p:not(.eyebrow){color:var(--muted);} .document-grid a{margin-top:auto;font-size:.7rem;letter-spacing:.1em;}
.voice-principles { display:grid;grid-template-columns:repeat(2,1fr);gap:0;padding-top:100px; } .voice-principles article { min-height:330px;border:1px solid var(--line);margin:-1px 0 0 -1px;padding:32px; } .voice-principles span { color:var(--accent);font-size:.7rem; } .voice-principles h2 { margin:70px 0 16px;font-size:clamp(2.4rem,4vw,3.8rem); } .voice-principles p{color:var(--muted);}
@media(max-width:1000px){.scene-axis{grid-template-columns:repeat(2,1fr)}.rio-home-grid{grid-template-columns:repeat(2,1fr)}.research-card{grid-template-columns:1fr}.scene-hero{grid-template-columns:1fr}.scene-hero__stamp{min-height:280px}.scene-manifesto__grid,.scene-voices__grid{grid-template-columns:1fr}}
@media(max-width:700px){.scene-axis,.rio-home-grid,.geo-list,.document-grid,.voice-principles{grid-template-columns:1fr}.timeline-row{grid-template-columns:1fr;gap:12px}.evidence{justify-self:start}.scene-hero h1{font-size:clamp(6rem,30vw,9rem)}.scene-hero__stamp b{font-size:9rem}}
body.discreet-mode .scene-hero__stamp b { color:#4f4f55; }


/* v0.7 — fotografia, fontes e voz editorial */
.hero-photo { margin:0; border:1px solid var(--line); background:var(--surface); padding:14px; }
.hero-photo img { width:100%; height:auto; display:block; filter:saturate(.78) contrast(1.04); }
.hero-photo figcaption,.scene-hero__photo figcaption { display:flex; justify-content:space-between; gap:20px; padding-top:12px; color:var(--muted); font-size:.62rem; letter-spacing:.1em; text-transform:uppercase; }
.hero-photo figcaption a,.scene-hero__photo figcaption a { color:var(--muted); }
.hero-photo figcaption a:hover,.scene-hero__photo figcaption a:hover { color:var(--accent); }
.scene-hero__photo { margin:0; align-self:end; border:1px solid var(--line); padding:12px; background:var(--surface); }
.scene-hero__photo img { width:100%; height:auto; display:block; filter:saturate(.72) contrast(1.05); }
.record-note { margin:34px 0 0; padding-top:18px; border-top:1px solid var(--line); color:var(--muted); font-size:.82rem; }
.public-channel-links { display:flex; flex-wrap:wrap; gap:10px; margin:24px 0 34px; }
.public-channel-links a { border:1px solid var(--line); padding:10px 13px; font-size:.68rem; letter-spacing:.1em; }
.public-channel-links a:hover { border-color:var(--accent); color:var(--accent); }
.visual-credit-list { padding-top:70px; padding-bottom:120px; }
.visual-credit-list article { display:grid; grid-template-columns:minmax(280px,.85fr) 1.15fr; gap:clamp(40px,7vw,100px); padding:60px 0; border-top:1px solid var(--line); align-items:center; }
.visual-credit-list figure { margin:0; }
.visual-credit-list img { width:100%; display:block; }
.visual-credit-list h2 { font-size:clamp(2.8rem,6vw,5rem); }
.visual-credit-list p { color:var(--muted); }
.visual-credit-list a { font-size:.72rem; letter-spacing:.1em; }
.footer-meta a { color:var(--muted); }
.footer-meta a:hover { color:var(--accent); }
body.discreet-mode .hero-photo img,body.discreet-mode .scene-hero__photo img { filter:grayscale(1) brightness(.5); opacity:.42; }
@media(max-width:800px){.hero-photo figcaption,.scene-hero__photo figcaption{flex-direction:column;gap:5px}.visual-credit-list article{grid-template-columns:1fr}}


/* === v0.8 / CAMADA VISUAL AMPLIADA === */
.hero-photo { position: relative; overflow: hidden; background: #111; }
.hero-photo::after { content:""; position:absolute; inset:0; pointer-events:none; background:linear-gradient(180deg, rgba(11,11,13,.04), rgba(11,11,13,.30)), linear-gradient(115deg, rgba(112,31,48,.16), transparent 46%); mix-blend-mode:multiply; }
.hero-photo img { filter:saturate(.62) contrast(1.08) brightness(.98); transform:scale(1.015); }
.hero-photo figcaption { position:relative; z-index:2; }

.visual-editorial-strip { display:grid; grid-template-columns: 1.55fr .85fr; gap:1rem; padding-top:1rem; padding-bottom:5rem; }
.visual-editorial-strip figure { margin:0; min-height:300px; position:relative; overflow:hidden; border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:#101014; }
.visual-editorial-strip img { width:100%; height:100%; object-fit:cover; position:absolute; inset:0; filter:saturate(.58) contrast(1.06) brightness(.86); transition:filter .35s ease, transform .6s ease; }
.visual-editorial-strip figure:hover img { filter:saturate(.76) contrast(1.04) brightness(.94); transform:scale(1.02); }
.visual-editorial-strip figcaption { position:absolute; left:0; right:0; bottom:0; display:flex; justify-content:space-between; gap:1rem; padding:.85rem 1rem; background:linear-gradient(transparent, rgba(6,6,8,.92)); color:var(--ivory); font-size:.68rem; letter-spacing:.09em; text-transform:uppercase; z-index:2; }
.visual-editorial-strip figcaption a { color:inherit; opacity:.8; }

.rio-photo-essay { display:grid; grid-template-columns: 1.45fr .75fr; gap:1rem; padding-top:2rem; padding-bottom:5rem; }
.rio-photo-essay figure { margin:0; min-height:420px; position:relative; overflow:hidden; background:#101014; }
.rio-photo-essay figure:last-child { min-height:420px; }
.rio-photo-essay img { width:100%; height:100%; object-fit:cover; position:absolute; inset:0; filter:saturate(.68) contrast(1.07) brightness(.86); }
.rio-photo-essay figure::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg, transparent 50%, rgba(8,8,10,.88)); pointer-events:none; }
.rio-photo-essay figcaption { position:absolute; z-index:2; left:1rem; right:1rem; bottom:1rem; display:flex; align-items:end; justify-content:space-between; gap:1rem; font-size:.69rem; letter-spacing:.08em; text-transform:uppercase; }
.rio-photo-essay figcaption a { color:var(--ivory); opacity:.78; text-align:right; }

.term-entry__visual { display:block; height:150px; margin:-1px -1px 1.05rem; position:relative; overflow:hidden; background:#0d0d0f; border-bottom:1px solid var(--line); }
.term-entry__visual img { width:100%; height:100%; object-fit:cover; filter:saturate(.48) contrast(1.07) brightness(.78); transition:.35s ease; }
.term-entry:hover .term-entry__visual img { filter:saturate(.68) contrast(1.05) brightness(.88); transform:scale(1.02); }
.term-entry__visual::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg, transparent 45%, rgba(7,7,9,.82)); }
.term-entry__visual-label { position:absolute; z-index:2; left:.8rem; bottom:.65rem; font-size:.62rem; letter-spacing:.09em; color:var(--ivory); }

.article-visual { margin-top:0; margin-bottom:0; padding-top:0; padding-bottom:2.4rem; }
.article-visual__image { height:clamp(300px, 46vw, 610px); overflow:hidden; background:#0f0f12; position:relative; }
.article-visual__image::after { content:""; position:absolute; inset:0; background:linear-gradient(120deg, rgba(112,31,48,.10), transparent 44%), linear-gradient(180deg, transparent 60%, rgba(8,8,10,.32)); pointer-events:none; }
.article-visual img { width:100%; height:100%; object-fit:cover; filter:saturate(.56) contrast(1.08) brightness(.88); }
.article-visual figcaption { display:flex; justify-content:space-between; gap:1rem; padding:.75rem 0; border-bottom:1px solid var(--line); font-size:.67rem; letter-spacing:.09em; text-transform:uppercase; color:var(--muted); }
.article-visual figcaption a { color:var(--muted); }

body.discreet-mode .visual-editorial-strip img,
body.discreet-mode .rio-photo-essay img,
body.discreet-mode .article-visual img,
body.discreet-mode .term-entry__visual img,
body.discreet-mode .hero-photo img { filter:grayscale(1) brightness(.46) contrast(1.02); }

.credit-treatment { color:var(--muted); font-size:.83rem; }

@media (max-width: 800px) {
  .visual-editorial-strip, .rio-photo-essay { grid-template-columns:1fr; }
  .visual-editorial-strip figure { min-height:260px; }
  .rio-photo-essay figure, .rio-photo-essay figure:last-child { min-height:330px; }
  .visual-editorial-strip figcaption, .rio-photo-essay figcaption, .article-visual figcaption { flex-direction:column; align-items:flex-start; }
  .article-visual__image { height:68vw; min-height:280px; max-height:480px; }
  .term-entry__visual { height:170px; }
}


/* v0.9 — visual corrections */
/* Hero: keep the photographic light instead of crushing it into the dark palette. */
.hero-photo::after {
  background: linear-gradient(180deg, rgba(11,11,13,.02), rgba(11,11,13,.12)),
              linear-gradient(115deg, rgba(112,31,48,.07), transparent 56%);
  mix-blend-mode: normal;
}
.hero-photo img { filter:saturate(.72) contrast(1.03) brightness(1.06); transform:scale(1.005); }

/* A–Z illustrated cards: image occupies its own full row; text keeps the same 3-column grid as non-illustrated cards. */
.term-list--full .term-entry--visual { padding-top:0; }
.term-list--full .term-entry--visual .term-entry__visual {
  grid-column:1 / -1;
  width:100%;
  margin:0 0 1.25rem;
  height:190px;
}
.term-list--full .term-entry--visual .term-entry__meta,
.term-list--full .term-entry--visual h3,
.term-list--full .term-entry--visual > p:last-child { align-self:start; }
@media (max-width:760px){
  .term-list--full .term-entry--visual .term-entry__visual { grid-column:1; height:210px; margin-bottom:1rem; }
}


/* === v1.0 BETA / refinamentos visuais + Acervo === */
/* Hero: preto-e-branco mais luminoso para contrastar com a interface escura. */
.hero-photo::after { background:linear-gradient(180deg, rgba(11,11,13,.01), rgba(11,11,13,.08)); mix-blend-mode:normal; }
.hero-photo img { filter:grayscale(1) contrast(.96) brightness(1.18); transform:scale(1.008); }
body.discreet-mode .hero-photo img { filter:grayscale(1) brightness(.72); opacity:.64; }

/* A imagem passa a integrar o verbete sem uma linha divisória artificial. */
.term-entry__visual { border-bottom:0; margin-bottom:.9rem; }

.archive-card { color:inherit; text-decoration:none; transition:background .22s ease; }
.archive-card:hover { background:rgba(255,255,255,.025); }
.archive-card:hover h3 { color:var(--accent); }
.archive-card__action { margin-top:16px; color:var(--accent); font-size:.68rem; letter-spacing:.1em; }
.archive-index-hero { padding-top:clamp(110px,14vw,190px); padding-bottom:80px; }
.archive-index-hero h1 { max-width:900px; font-size:clamp(5.5rem,12vw,11rem); line-height:.78; margin:.25em 0; }
.archive-index-hero__deck { max-width:760px; color:var(--muted); font-size:clamp(1.15rem,2vw,1.5rem); line-height:1.55; }
.archive-index-grid { display:grid; grid-template-columns:repeat(2,1fr); border-top:1px solid var(--line); border-left:1px solid var(--line); margin-bottom:110px; }
.archive-index-grid .archive-card { min-height:360px; }
.archive-index-grid .archive-card:nth-child(5) { grid-column:1/-1; min-height:300px; }
.article-kicker { color:var(--accent); font-size:.72rem; letter-spacing:.12em; text-transform:uppercase; }
.article-copy .lead { font-size:1.32rem; line-height:1.65; color:var(--ivory); }
.article-copy ul { color:var(--muted); line-height:1.75; padding-left:1.2rem; }
.article-copy li + li { margin-top:.6rem; }
.source-note { margin-top:2rem; color:var(--muted); font-size:.84rem; }
@media(max-width:800px){.archive-index-grid{grid-template-columns:1fr}.archive-index-grid .archive-card:nth-child(5){grid-column:auto}.archive-index-hero h1{font-size:clamp(4.5rem,24vw,7.5rem)}}

/* v1.0 beta 2 — busca A–Z + artigo de entrada */
[hidden] { display: none !important; }
.term-entry[aria-hidden="true"] { display: none !important; }

.archive-featured {
  display: grid;
  grid-template-columns: minmax(0, .7fr) minmax(0, 1.3fr);
  gap: clamp(28px, 6vw, 90px);
  padding: clamp(34px, 6vw, 76px);
  margin-bottom: 28px;
  border: 1px solid var(--line);
  background: linear-gradient(130deg, rgba(112,31,48,.12), rgba(255,255,255,.015) 55%);
  color: inherit;
  text-decoration: none;
}
.archive-featured:hover h2 { color: var(--accent); }
.archive-featured__label { color: var(--accent); font-size: .7rem; letter-spacing: .12em; }
.archive-featured h2 { font-size: clamp(3.4rem, 7vw, 7rem); line-height: .88; margin: .15em 0 .25em; }
.archive-featured__copy { align-self: end; max-width: 620px; }
.archive-featured__copy p { color: var(--muted); font-size: 1.08rem; line-height: 1.65; }
.archive-featured__meta { display: flex; gap: 18px; flex-wrap: wrap; margin-top: 28px; color: var(--muted); font-size: .7rem; letter-spacing: .08em; }
@media (max-width: 760px) {
  .archive-featured { grid-template-columns: 1fr; }
}


/* v1.0 beta 3 — BDSMer funcional */
.bdsmer-page .site-header [aria-current="page"] { color: var(--accent); }
.bdsmer-hero { padding-top: clamp(70px, 9vw, 135px); padding-bottom: 80px; }
.bdsmer-hero__grid { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(300px, .7fr); gap: 90px; align-items: end; }
.bdsmer-hero h1 { margin: 24px 0 28px; font-size: clamp(5.3rem, 11vw, 10.6rem); letter-spacing: -.06em; }
.bdsmer-hero__deck { max-width: 780px; color: var(--muted); font-size: clamp(1.08rem, 1.7vw, 1.35rem); }
.bdsmer-principles { padding: 32px 0 8px 38px; border-left: 1px solid var(--line); }
.bdsmer-principles p:not(.eyebrow) { color: var(--muted); }
.bdsmer-principles strong { color: var(--text); font-weight: 500; }
.bdsmer-tool { min-height: 720px; padding-top: 80px; padding-bottom: 100px; border-top: 1px solid var(--line); }
.bdsmer-start { max-width: 900px; }
.bdsmer-start h2 { max-width: 880px; }
.bdsmer-start > p:not(.eyebrow) { max-width: 680px; color: var(--muted); font-size: 1.08rem; }
.bdsmer-scale-preview { display: grid; grid-template-columns: repeat(5, 1fr); max-width: 900px; margin: 44px 0 36px; border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.bdsmer-scale-preview span { min-height: 88px; padding: 18px 14px; display: flex; align-items: flex-end; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); color: var(--muted); font-size: .66rem; letter-spacing: .08em; }
.bdsmer-progress { max-width: 980px; margin-bottom: 64px; }
.bdsmer-progress > div:first-child { display: flex; justify-content: space-between; gap: 30px; color: var(--muted); font-size: .7rem; letter-spacing: .1em; }
.bdsmer-progress__track { height: 2px; margin-top: 15px; background: var(--line); }
.bdsmer-progress__track i { display: block; width: 0; height: 100%; background: var(--accent); transition: width .25s ease; }
.bdsmer-question { max-width: 1080px; }
.bdsmer-question h2 { max-width: 1050px; margin-bottom: 46px; font-size: clamp(3.1rem, 6vw, 6.2rem); line-height: 1.01; }
.bdsmer-options { display: grid; grid-template-columns: repeat(5, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.bdsmer-option { min-height: 150px; padding: 22px; display: flex; flex-direction: column; justify-content: space-between; gap: 28px; border: 0; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: transparent; text-align: left; cursor: pointer; transition: background .15s ease, color .15s ease; }
.bdsmer-option:hover, .bdsmer-option:focus-visible { background: var(--surface); outline: none; }
.bdsmer-option__value { color: var(--accent); font-family: "Cormorant Garamond", Georgia, serif; font-size: 2.8rem; line-height: 1; }
.bdsmer-option__label { color: var(--muted); font-size: .72rem; letter-spacing: .08em; }
.bdsmer-skip { margin-top: 24px; padding: 0; border: 0; background: none; color: var(--muted); font-size: .72rem; letter-spacing: .09em; cursor: pointer; }
.bdsmer-skip:hover { color: var(--text); }
.bdsmer-quiz-nav { max-width: 1080px; margin-top: 64px; padding-top: 22px; display: flex; justify-content: space-between; gap: 24px; border-top: 1px solid var(--line); color: var(--muted); font-size: .72rem; }
.bdsmer-quiz-nav span { text-align: right; }
.bdsmer-results__heading { display: grid; grid-template-columns: 1fr minmax(300px, .55fr); gap: 70px; align-items: end; margin-bottom: 60px; }
.bdsmer-results__heading > p { color: var(--muted); }
.bdsmer-results-grid { display: grid; grid-template-columns: repeat(5, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.bdsmer-result-axis { min-height: 360px; padding: 28px 24px; display: flex; flex-direction: column; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.bdsmer-result-axis__name { color: var(--accent); font-size: .69rem; letter-spacing: .1em; }
.bdsmer-result-axis__score { margin: 54px 0 8px; font-family: "Cormorant Garamond", Georgia, serif; font-size: clamp(4.3rem, 7vw, 6.8rem); line-height: .9; }
.bdsmer-result-axis__label { color: var(--muted); font-size: .72rem; letter-spacing: .08em; }
.bdsmer-result-axis__meter { height: 2px; margin: auto 0 20px; background: #2b2b2f; }
.bdsmer-result-axis__meter i { display: block; height: 100%; background: var(--accent); }
.bdsmer-result-axis p { margin: 0; color: var(--muted); font-size: .85rem; }
.bdsmer-reading { max-width: 1080px; margin-top: 70px; padding: 42px; border: 1px solid var(--line); background: var(--surface-soft); }
.bdsmer-reading h3 { margin: 0 0 24px; font-size: clamp(2.4rem, 4vw, 4.2rem); }
.bdsmer-reading p { max-width: 850px; color: var(--muted); }
.bdsmer-reading-links { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 26px; }
.bdsmer-reading-links a { padding: 9px 12px; border: 1px solid var(--line); font-size: .68rem; letter-spacing: .08em; }
.bdsmer-reading-links a:hover { border-color: var(--accent); }
.bdsmer-result-actions { display: flex; flex-wrap: wrap; gap: 24px; align-items: center; margin-top: 40px; }
.bdsmer-copy-status { min-height: 1.4em; color: var(--muted); font-size: .75rem; }
.bdsmer-explainer { display: grid; grid-template-columns: 1fr 1fr; gap: 90px; }
.bdsmer-explainer__copy h3 { margin: 0 0 10px; font-size: 2.3rem; }
.bdsmer-explainer__copy p { margin: 0 0 36px; color: var(--muted); }
.bdsmer-method-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.bdsmer-method-grid article { min-height: 290px; padding: 30px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.bdsmer-method-grid article > span { color: var(--accent); font-size: .72rem; }
.bdsmer-method-grid h3 { margin: 80px 0 16px; font-size: 2.2rem; }
.bdsmer-method-grid p { color: var(--muted); }
.bdsmer-sources .source-item { max-width: 1100px; }
body.discreet-mode .bdsmer-result-axis__meter i,
body.discreet-mode .bdsmer-progress__track i { background: var(--accent); }
@media (max-width: 1080px) {
  .bdsmer-hero__grid, .bdsmer-results__heading, .bdsmer-explainer { grid-template-columns: 1fr; gap: 40px; }
  .bdsmer-principles { border-left: 0; border-top: 1px solid var(--line); padding: 32px 0 0; }
  .bdsmer-results-grid { grid-template-columns: repeat(2, 1fr); }
  .bdsmer-options { grid-template-columns: repeat(3, 1fr); }
  .bdsmer-method-grid { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  .bdsmer-hero { padding-top: 52px; }
  .bdsmer-hero h1 { font-size: clamp(4.8rem, 22vw, 7.2rem); }
  .bdsmer-scale-preview { grid-template-columns: 1fr; }
  .bdsmer-scale-preview span { min-height: 52px; }
  .bdsmer-options { grid-template-columns: 1fr; }
  .bdsmer-option { min-height: 94px; flex-direction: row; align-items: center; }
  .bdsmer-option__value { font-size: 2.1rem; }
  .bdsmer-results-grid { grid-template-columns: 1fr; }
  .bdsmer-result-axis { min-height: 260px; }
  .bdsmer-quiz-nav { flex-direction: column; align-items: flex-start; }
  .bdsmer-quiz-nav span { text-align: left; }
  .bdsmer-reading { padding: 28px 22px; }
}


/* v1.0 RC1 — pre-publicação, acessibilidade e páginas institucionais */
.skip-link {
  position: fixed; left: 16px; top: 12px; z-index: 250;
  padding: 10px 14px; border: 1px solid var(--text); background: var(--bg); color: var(--text);
  transform: translateY(-180%); transition: transform .12s ease;
  font-size: .72rem; letter-spacing: .08em;
}
.skip-link:focus { transform: translateY(0); }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 4px; }
a:focus-visible, button:focus-visible, input:focus-visible { border-radius: 2px; }
.site-legal-footer {
  margin-top: 70px; padding-top: 30px; padding-bottom: 44px;
  display: flex; justify-content: space-between; gap: 28px; align-items: center;
  border-top: 1px solid var(--line); color: var(--muted); font-size: .68rem; letter-spacing: .07em;
}
.site-legal-footer nav { display: flex; flex-wrap: wrap; gap: 16px 24px; }
.site-legal-footer a:hover { color: var(--text); }
.institutional-copy { max-width: 1040px; padding-top: 80px; padding-bottom: 110px; }
.institutional-copy > h2 { margin-top: 72px; max-width: 800px; font-size: clamp(2.8rem, 5vw, 5.4rem); }
.institutional-copy > h2:first-child { margin-top: 0; }
.institutional-copy > p { max-width: 800px; color: var(--muted); font-size: 1.04rem; line-height: 1.8; }
.method-list { display: grid; grid-template-columns: repeat(2,1fr); margin: 42px 0 64px; border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.method-list article { min-height: 300px; padding: 28px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.method-list article > span { color: var(--accent); font-size: .72rem; }
.method-list h3 { margin: 74px 0 14px; font-size: 2.2rem; }
.method-list p { color: var(--muted); }
.method-list--2 article { min-height: 260px; }
body.gate-open > :not(#ageGate) { pointer-events: none; }
body.menu-open { overflow: hidden; }
@media (max-width:760px) {
  .site-legal-footer { align-items: flex-start; flex-direction: column; }
  .method-list { grid-template-columns: 1fr; }
}


/* v1.0.2 — foto no portão +18 */
.age-gate__visual { overflow:hidden; background-color:#0f0f11; background-image:none; }
.age-gate__visual img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; filter:grayscale(1) contrast(.95) brightness(1.14); }
.age-gate__visual::before { z-index:2; border-color:rgba(112,31,48,.6); }
.age-gate__visual::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(11,11,13,.03), rgba(11,11,13,.18)); z-index:1; }
.age-gate__visual span { z-index:3; padding:7px 10px; background:rgba(11,11,13,.36); backdrop-filter:blur(3px); border:1px solid rgba(255,255,255,.06); }
body.discreet-mode .age-gate__visual img { filter:grayscale(1) brightness(.72) contrast(.96); opacity:.8; }
