:root {
  color-scheme: light;
  --ink: #191714;
  --ink-soft: #2a2721;
  --paper: #ebe5da;
  --paper-bright: #f5f1e9;
  --paper-shadow: #d9d0c1;
  --muted: #766e62;
  --gold: #b18b56;
  --gold-light: #dbc59f;
  --wine: #6d2925;
  --line: rgba(25, 23, 20, .18);
  --dark-line: rgba(235, 229, 218, .17);
  --serif: Georgia, "Times New Roman", serif;
  --sans: "Aptos", "Segoe UI", Arial, sans-serif;
  --measure: 70rem;
  --shadow: 0 24px 70px rgba(13, 12, 10, .2);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 6rem; }
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font: 16px/1.65 var(--sans);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
body::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  opacity: .12;
  background-image: radial-gradient(rgba(55, 43, 29, .18) .45px, transparent .6px);
  background-size: 5px 5px;
}
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration-thickness: .08em; text-underline-offset: .2em; }
button, input { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
::selection { background: var(--gold); color: var(--ink); }
:focus-visible { outline: 3px solid var(--gold); outline-offset: 4px; }

.skip-link {
  position: fixed; top: .75rem; left: .75rem; z-index: 1000;
  padding: .65rem 1rem; transform: translateY(-180%);
  background: var(--paper-bright); color: var(--ink); border: 1px solid var(--gold);
}
.skip-link:focus { transform: none; }
.site-header {
  position: sticky; top: 0; z-index: 50;
  display: flex; align-items: center; justify-content: space-between; gap: 1.5rem;
  min-height: 5.25rem; padding: .7rem clamp(1rem, 4vw, 4rem);
  color: var(--paper-bright); background: rgba(20, 19, 17, .96);
  border-bottom: 1px solid rgba(219, 197, 159, .22);
  backdrop-filter: blur(14px);
}
.brand { display: inline-flex; align-items: center; gap: .8rem; text-decoration: none; flex: 0 0 auto; }
.brand-mark {
  width: 2.6rem; height: 2.6rem; display: grid; place-items: center;
  border: 1px solid var(--gold); border-radius: 50%; color: var(--gold-light);
  font: 700 .79rem/1 var(--serif); letter-spacing: .08em;
}
.brand-copy { display: grid; gap: .02rem; }
.brand-title { font: 600 .98rem/1.15 var(--serif); letter-spacing: .025em; }
.brand-subtitle { color: #b7ad9d; font-size: .65rem; letter-spacing: .18em; text-transform: uppercase; }
.primary-nav { display: flex; align-items: center; gap: clamp(.6rem, 1.3vw, 1.35rem); }
.primary-nav a {
  color: #e8e0d4; font-size: .76rem; font-weight: 600; letter-spacing: .045em;
  text-decoration: none; white-space: nowrap; transition: color .22s ease;
}
.primary-nav a:hover, .primary-nav a[aria-current="page"] { color: var(--gold-light); }
.primary-nav .nav-buy { padding: .68rem 1rem; border: 1px solid var(--gold); color: var(--gold-light); }
.primary-nav .nav-buy:hover { background: var(--gold); color: var(--ink); }
.nav-toggle { display: none; color: var(--paper-bright); background: none; border: 1px solid var(--dark-line); padding: .55rem .7rem; cursor: pointer; }

.container { width: min(var(--measure), calc(100% - 2.25rem)); margin-inline: auto; }
.container-wide { width: min(85rem, calc(100% - 2.25rem)); margin-inline: auto; }
.section { padding: clamp(4rem, 8vw, 7.5rem) 0; }
.section-tight { padding: clamp(2.5rem, 5vw, 4.25rem) 0; }
.section-dark { background: var(--ink); color: var(--paper); }
.section-dark p { color: #c9c1b3; }
.section-paper { background: var(--paper-bright); }
.section-rule { border-top: 1px solid var(--line); }
.eyebrow, .kicker {
  display: inline-flex; align-items: center; gap: .65rem;
  margin: 0 0 1.15rem; color: var(--wine); font-size: .69rem; font-weight: 700;
  letter-spacing: .2em; text-transform: uppercase;
}
.eyebrow::before, .kicker::before { content: ""; width: 2rem; height: 1px; background: currentColor; }
.section-dark .eyebrow, .hero .eyebrow { color: var(--gold-light); }
h1, h2, h3, h4 { margin: 0; font-family: var(--serif); font-weight: 500; line-height: 1.08; text-wrap: balance; }
h1 { font-size: clamp(2.8rem, 7vw, 6.5rem); letter-spacing: -.035em; }
h2 { max-width: 18ch; font-size: clamp(2.15rem, 4.4vw, 4rem); letter-spacing: -.025em; }
h3 { font-size: clamp(1.45rem, 2vw, 2.1rem); }
h4 { font-size: 1.25rem; }
p { margin: 0 0 1.15rem; }
.lede { max-width: 44rem; color: #575146; font-size: clamp(1.05rem, 1.65vw, 1.3rem); line-height: 1.75; }
.section-dark .lede { color: #d5cdbc; }
.gold-text { color: var(--gold-light); }
.muted { color: var(--muted); }
.small { font-size: .85rem; }
.section-heading { display: flex; align-items: end; justify-content: space-between; gap: 2rem; margin-bottom: 2.5rem; }
.section-heading > div { max-width: 45rem; }
.section-heading p { max-width: 27rem; margin: 0; color: var(--muted); }
.section-dark .section-heading p { color: #bcb3a5; }

.button-row { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 1.7rem; }
.button {
  display: inline-flex; align-items: center; justify-content: center; gap: .65rem;
  min-height: 3.1rem; padding: .82rem 1.2rem; border: 1px solid var(--ink);
  color: var(--ink); font-size: .75rem; font-weight: 700; letter-spacing: .1em;
  text-decoration: none; text-transform: uppercase; transition: color .25s ease, background .25s ease, border-color .25s ease, transform .25s ease;
}
.button:hover { transform: translateY(-2px); background: var(--ink); color: var(--paper-bright); }
.button-gold { border-color: var(--gold); background: var(--gold); color: var(--ink); }
.button-gold:hover { border-color: var(--gold-light); background: var(--gold-light); color: var(--ink); }
.button-light { border-color: var(--gold-light); color: var(--paper-bright); }
.button-light:hover { background: var(--gold-light); color: var(--ink); }
.text-link { display: inline-flex; align-items: center; gap: .65rem; color: var(--wine); font-size: .78rem; font-weight: 700; letter-spacing: .09em; text-decoration: none; text-transform: uppercase; }
.text-link span { transition: transform .2s ease; }
.text-link:hover span { transform: translateX(.3rem); }
.section-dark .text-link { color: var(--gold-light); }

.hero {
  position: relative; isolation: isolate; overflow: hidden; display: flex; align-items: end;
  min-height: clamp(38rem, 78svh, 55rem); color: var(--paper-bright); background-color: #171513;
  background-position: center; background-size: cover;
}
.hero::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(10, 9, 8, .89) 0%, rgba(10, 9, 8, .62) 42%, rgba(10, 9, 8, .06) 100%), linear-gradient(0deg, rgba(10, 9, 8, .46), transparent 48%); }
.hero-home { background-image: url("/assets/img/rio-santa-teresa.webp"); background-position: center 56%; }
.hero-content { width: min(75rem, calc(100% - 2.5rem)); margin: 0 auto; padding: clamp(5.5rem, 12vh, 9rem) 0 clamp(5rem, 10vh, 8rem); }
.hero-content > * { max-width: 48rem; }
.hero h1 { max-width: 11ch; margin-bottom: 1rem; }
.hero h1 em { color: var(--gold-light); font-style: normal; }
.hero-book-title { margin: .6rem 0 0; color: #e8dfd0; font: 500 clamp(1.1rem, 2vw, 1.55rem)/1.4 var(--serif); letter-spacing: .055em; }
.hero-copy { max-width: 34rem; margin-top: 1.2rem; color: #dfd8ca; font-size: clamp(1rem, 1.5vw, 1.2rem); }
.hero-caption { position: absolute; right: clamp(1rem, 4vw, 4rem); bottom: 1rem; color: rgba(245, 241, 233, .72); font-size: .66rem; letter-spacing: .1em; text-transform: uppercase; }
.hero-cue { position: absolute; left: 50%; bottom: 1.3rem; display: flex; align-items: center; gap: .6rem; transform: translateX(-50%); color: #e5d8c3; font-size: .65rem; letter-spacing: .2em; text-transform: uppercase; }
.hero-cue::after { content: "↓"; color: var(--gold-light); font-size: 1rem; }
.page-hero { position: relative; isolation: isolate; overflow: hidden; min-height: 27rem; display: flex; align-items: end; color: var(--paper-bright); background: var(--ink) center/cover no-repeat; }
.page-hero::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(13,12,10,.9), rgba(13,12,10,.48) 60%, rgba(13,12,10,.12)), linear-gradient(0deg, rgba(13,12,10,.44), transparent 45%); }
.page-hero-content { width: min(75rem, calc(100% - 2.25rem)); margin: 0 auto; padding: 5rem 0 4.5rem; }
.page-hero h1 { max-width: 14ch; margin-bottom: 1rem; font-size: clamp(2.8rem, 6vw, 5.5rem); }
.page-hero p { max-width: 43rem; color: #ded5c6; font-size: 1.08rem; }
.page-hero .eyebrow { color: var(--gold-light); }
.hero-rio { min-height: 34rem; background-image: url("/assets/img/enciclopedia-feudo-rio-2026.webp"); background-position: center 52%; }
.hero-egide { background-image: url("/assets/img/korven-gravura.webp"); background-position: 72% 32%; }
.hero-encyclopedia { background-image: url("/assets/img/enciclopedia-santa-teresa.webp"); background-position: center 45%; }
.hero-houses { background-image: url("/assets/img/casa-umbral.webp"); background-position: center 34%; }

.intro-band { padding: clamp(3.5rem, 7vw, 6.5rem) 0; background: var(--paper-bright); }
.intro-grid { display: grid; grid-template-columns: minmax(14rem, .75fr) 1.25fr; align-items: start; gap: clamp(2rem, 6vw, 6rem); }
.intro-grid h2 { font-size: clamp(2rem, 4vw, 3.5rem); }
.intro-copy { max-width: 42rem; padding-top: .45rem; }
.intro-copy p { color: #5c554b; font-size: 1.03rem; }
.ornament { width: 3.5rem; height: 1px; margin: 1.8rem 0; background: var(--gold); }

.tile-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.1rem; }
.image-tile, .house-card, .character-card { position: relative; isolation: isolate; display: block; overflow: hidden; min-height: 24rem; background: #211e19; color: var(--paper-bright); text-decoration: none; }
.image-tile img, .house-card img, .character-card img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; transition: transform .65s cubic-bezier(.2,.7,.15,1), filter .5s ease, opacity .5s ease; }
.image-tile::after, .house-card::after, .character-card::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(0deg, rgba(11,10,9,.94), rgba(11,10,9,.05) 80%); transition: background .35s ease; }
.image-tile:hover img, .image-tile:focus-visible img, .house-card:hover img, .house-card:focus-visible img, .character-card:hover img, .character-card:focus-visible img { transform: scale(1.06); filter: grayscale(1) brightness(.42); }
.image-tile-content, .house-card-content, .character-card-content { position: absolute; inset: auto 1.45rem 1.45rem; }
.image-tile-content .eyebrow, .house-card-content .eyebrow, .character-card-content .eyebrow { margin-bottom: .5rem; color: var(--gold-light); }
.image-tile h3, .house-card h3, .character-card h3 { max-width: 17ch; color: white; font-size: clamp(1.7rem, 2.8vw, 2.55rem); }
.image-tile-content p, .house-card-content p, .character-card-content p { max-width: 32ch; margin: .6rem 0 0; color: #d1c7b6; font-size: .9rem; }
.card-arrow { display: inline-flex; align-items: center; gap: .6rem; margin-top: .85rem; color: var(--gold-light); font-size: .69rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.card-arrow span { transition: transform .2s ease; }
.image-tile:hover .card-arrow span, .house-card:hover .card-arrow span, .character-card:hover .card-arrow span { transform: translateX(.35rem); }
.image-tile, .house-card, .character-card { transition: transform .35s ease, box-shadow .35s ease; }
.image-tile:hover, .house-card:hover, .character-card:hover { transform: translateY(-4px); box-shadow: var(--shadow); }

.house-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.house-groups { display: grid; gap: .8rem; }
.house-group-overview { display: grid; grid-template-columns: minmax(12rem, 16rem) minmax(0,1fr); align-items: center; gap: clamp(1.4rem, 3vw, 2.5rem); padding: 1.4rem clamp(1rem, 3vw, 2rem); }
.house-group-illustration { margin: 0; border: 1px solid rgba(177,139,86,.4); background: #080808; }
.house-group-illustration img { display: block; width: 100%; height: auto; aspect-ratio: 2 / 3; object-fit: contain; }
.house-group-text .house-group-heading { min-height: auto; padding: 0; background: transparent; }
.house-group-text .house-group-origin { grid-template-columns: 1fr; gap: .65rem; padding: 1.3rem 0 0; }
.house-group { overflow: hidden; border: 1px solid rgba(177,139,86,.32); background: var(--paper-bright); transition: border-color .3s ease, box-shadow .3s ease; }
.house-group:hover, .house-group:focus-within { border-color: rgba(177,139,86,.85); box-shadow: 0 14px 34px rgba(24,19,14,.09); }
.house-group-heading { display: grid; grid-template-columns: 5rem minmax(0,1fr); align-items: center; gap: 1.4rem; min-height: 8rem; padding: 1.3rem clamp(1.2rem, 3vw, 2.3rem); background: #f7f3ec; }
.house-group-index { display: grid; width: 4.2rem; height: 4.2rem; place-items: center; border: 1px solid rgba(177,139,86,.75); color: var(--wine); font: 500 2.15rem/1 var(--serif); }
.house-group-summary-copy { display: block; }
.house-group-summary-copy .eyebrow { margin-bottom: .35rem; color: var(--wine); }
.house-group-title { display: block; margin-bottom: .35rem; color: var(--ink); font: 500 clamp(1.7rem, 3vw, 2.45rem)/1.1 var(--serif); }
.house-group-teaser { display: block; max-width: 58rem; color: #625b51; font-size: .93rem; }
.house-group-content { padding: 0 clamp(1rem, 3vw, 2rem) 1rem; }
.house-group-origin { display: grid; grid-template-columns: minmax(12rem,.65fr) 1.35fr; align-items: start; gap: 2rem; padding: 1.5rem 0 1.2rem; }
.house-group-origin .kicker { margin: .2rem 0 0; }
.house-group-origin .lede { margin: 0; color: #4e4942; font-size: 1rem; }
.house-members { border-top: 1px solid var(--line); }
.house-members-summary { display: flex; min-height: 3.8rem; align-items: center; justify-content: space-between; gap: 1rem; cursor: pointer; list-style: none; }
.house-members-summary::-webkit-details-marker { display: none; }
.house-members-summary:focus-visible { outline: 2px solid var(--wine); outline-offset: -3px; }
.house-members-summary > span { color: var(--ink); font: 500 1.1rem/1.2 var(--serif); }
.house-members-summary strong { display: inline-flex; align-items: center; gap: .55rem; color: var(--wine); font-size: .68rem; letter-spacing: .1em; text-transform: uppercase; }
.house-members-summary strong span { transition: transform .25s ease; }
.house-members[open] .house-members-summary strong span { transform: rotate(180deg); }
.house-members[open] > .house-grid { animation: house-group-enter .38s ease both; }
@keyframes house-group-enter { from { opacity: 0; transform: translateY(.55rem); } to { opacity: 1; transform: none; } }
.house-card { min-height: 27rem; border: 1px solid rgba(177,139,86,.3); }
.house-card img { filter: saturate(.68); }
.house-card::after { background: linear-gradient(0deg, rgba(12,11,10,.97) 0%, rgba(12,11,10,.18) 77%); }
.house-card-content { transform: translateY(.2rem); transition: transform .35s ease; }
.house-card:hover .house-card-content, .house-card:focus-visible .house-card-content { transform: translateY(-.2rem); }
.filter-bar { display: flex; flex-wrap: wrap; gap: .55rem; margin: 2rem 0; }
.filter-button { padding: .62rem .9rem; border: 1px solid var(--line); background: transparent; color: var(--ink); cursor: pointer; font-size: .7rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; transition: background .2s, color .2s, border-color .2s; }
.filter-button:hover, .filter-button[aria-pressed="true"] { border-color: var(--ink); background: var(--ink); color: var(--paper-bright); }
.rare-note { display: grid; grid-template-columns: 9rem 1fr; align-items: center; gap: 1.4rem; margin-top: 3rem; padding: 1.2rem; border: 1px solid var(--line); background: var(--paper-bright); }
.rare-note img { width: 9rem; aspect-ratio: 1; object-fit: cover; }
.rare-note h3 { margin-bottom: .5rem; font-size: 1.55rem; }
.rare-note p { margin: 0; color: #60594f; }

.character-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .9rem; }
.character-card { min-height: 28rem; }
.character-card img { object-position: center 28%; }
.character-card h3 { font-size: clamp(1.45rem, 2vw, 2.1rem); }
.character-card-content p { font-size: .82rem; }
.character-card .eyebrow { font-size: .58rem; }
.character-card::after { background: linear-gradient(0deg, rgba(11,10,9,.96), rgba(11,10,9,.02) 76%); }

.two-col { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: clamp(2rem, 7vw, 7rem); }
.two-col.reverse > :first-child { order: 2; }
.framed-image { position: relative; padding: 1rem; border: 1px solid rgba(177,139,86,.48); background: rgba(177,139,86,.08); }
.framed-image img { width: 100%; height: auto; max-height: 39rem; object-fit: cover; }
.group-section { padding-top: 4rem; }
.group-engraving { padding: 1rem; border: 1px solid rgba(177,139,86,.48); background: #050505; }
.group-engraving img { display: block; width: 100%; max-height: 54rem; margin: 0 auto; object-fit: contain; }
.group-engraving .image-caption { margin-top: .75rem; }
.image-caption { margin: .7rem 0 0; color: var(--muted); font-size: .72rem; letter-spacing: .05em; }
.section-dark .image-caption { color: #b7ad9d; }
.character-detail { display: grid; grid-template-columns: minmax(17rem, .78fr) 1.22fr; align-items: center; gap: clamp(2.5rem, 8vw, 8rem); padding: clamp(3rem, 7vw, 6rem) 0; }
.portrait { position: relative; overflow: hidden; max-height: 42rem; border: 1px solid rgba(177,139,86,.55); background: #191714; }
.portrait img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: center 18%; }
.character-copy h1 { margin-bottom: .8rem; font-size: clamp(2.8rem, 6vw, 5.3rem); }
.character-copy .role { margin: 0 0 1.5rem; color: var(--wine); font: 500 1rem var(--serif); letter-spacing: .07em; }
.character-copy .lede { margin-bottom: 1.5rem; }
.quote-mark { margin: 1.5rem 0; padding-left: 1.2rem; border-left: 2px solid var(--gold); color: #554b3d; font: italic 1.25rem/1.5 var(--serif); }

.detail-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .85rem; margin-top: 2.5rem; }
.detail-card { padding: 1.4rem; border: 1px solid var(--line); background: var(--paper-bright); }
.detail-card .eyebrow { margin-bottom: .75rem; font-size: .62rem; }
.detail-card h3 { margin-bottom: .55rem; font-size: 1.3rem; }
.detail-card p { margin: 0; color: #625b51; font-size: .91rem; }
.detail-card-dark { border-color: var(--dark-line); background: #211e19; }
.detail-card-dark h3 { color: var(--paper-bright); }
.detail-card-dark p { color: #c9c1b3; }

.house-detail-hero { display: grid; grid-template-columns: 1.02fr .98fr; min-height: 39rem; background: var(--ink); color: var(--paper-bright); }
.house-detail-image { min-height: 39rem; overflow: hidden; }
.house-detail-image img { width: 100%; height: 100%; object-fit: cover; object-position: center 24%; }
.house-detail-copy { align-self: center; padding: clamp(2rem, 6vw, 6rem); }
.house-detail-copy h1 { margin: .5rem 0 1rem; font-size: clamp(2.8rem, 5.4vw, 5.8rem); }
.house-detail-copy .subtitle { color: var(--gold-light); font: 500 1.1rem/1.5 var(--serif); }
.house-detail-copy p { margin-top: 1.1rem; color: #d0c7b8; }
.power-banner { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; margin: -2rem auto 0; position: relative; width: min(62rem, calc(100% - 2.25rem)); padding: 1.4rem 1.6rem; background: var(--gold); color: var(--ink); box-shadow: var(--shadow); }
.power-banner span { font-size: .7rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.power-banner strong { font: 500 clamp(1.4rem, 3vw, 2rem) var(--serif); }
.house-pagination { display: flex; justify-content: space-between; gap: 1rem; margin-top: 3rem; padding-top: 1.5rem; border-top: 1px solid var(--line); }
.house-all-button { justify-content: center; }

.book-cover-art { position: relative; isolation: isolate; overflow: hidden; display: grid; place-items: center; min-height: 34rem; padding: 2rem; color: var(--paper-bright); background: #161411 center/cover no-repeat; box-shadow: var(--shadow); }
.book-cover-art::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(0deg, rgba(12,11,10,.92), rgba(12,11,10,.2)), linear-gradient(90deg, rgba(12,11,10,.24), rgba(12,11,10,.1)); }
.book-cover-frame { width: min(20rem, 100%); aspect-ratio: .69; display: flex; flex-direction: column; justify-content: space-between; padding: 2rem 1.5rem; border: 1px solid rgba(219,197,159,.67); outline: 1px solid rgba(219,197,159,.45); outline-offset: -.55rem; text-align: center; }
.book-cover-frame .cover-small { color: var(--gold-light); font-size: .57rem; letter-spacing: .3em; text-transform: uppercase; }
.book-cover-frame strong { display: block; font: 500 clamp(1.8rem, 3.6vw, 2.7rem)/1.03 var(--serif); letter-spacing: .025em; }
.book-cover-frame em { display: block; margin-top: .8rem; color: var(--gold-light); font: 500 1rem var(--serif); }
.meta-list { display: grid; grid-template-columns: auto 1fr; gap: .6rem 1.2rem; padding: 0; margin: 1.5rem 0 0; font-size: .88rem; }
.meta-list dt { color: var(--muted); }
.meta-list dd { margin: 0; font-weight: 600; }

.city-gallery { display: grid; grid-template-columns: 1.15fr .85fr; gap: 1rem; }
.city-figure { position: relative; overflow: hidden; min-height: 22rem; background: #25211b; }
.city-figure img { width: 100%; height: 100%; min-height: inherit; object-fit: cover; transition: transform .7s ease; }
.city-figure:hover img { transform: scale(1.035); }
.city-figure figcaption { position: absolute; inset: auto 0 0; padding: 1.5rem; color: white; background: linear-gradient(transparent, rgba(10,9,8,.91)); }
.city-figure figcaption strong { display: block; font: 500 1.35rem var(--serif); }
.city-figure figcaption span { color: #d7cdbd; font-size: .76rem; }
.map-note { margin-top: 1rem; padding: 1rem 1.2rem; border-left: 2px solid var(--gold); color: #665e52; background: rgba(255,255,255,.26); font-size: .86rem; }

.warning-note { display: flex; align-items: flex-start; gap: .9rem; margin: 1.5rem 0; padding: 1rem 1.1rem; border: 1px solid rgba(109,41,37,.35); background: rgba(109,41,37,.07); color: #582824; font-size: .86rem; }
.warning-note strong { display: block; margin-bottom: .1rem; font-size: .7rem; letter-spacing: .13em; text-transform: uppercase; }
.warning-note p { margin: 0; }
.section-dark .warning-note { border-color: rgba(219,197,159,.35); background: rgba(219,197,159,.08); color: #e0d4c0; }
.korven-details { margin: 1.2rem 0; border: 1px solid var(--line); background: var(--paper-bright); }
.korven-details summary { padding: .9rem 1.1rem; color: var(--wine); cursor: pointer; font: 600 .9rem var(--serif); }
.korven-details > div { padding: 0 1.1rem 1rem; color: #5d554a; }
.korven-details > div p:last-child { margin-bottom: 0; }
.section-dark .korven-details { border-color: var(--dark-line); background: #201d18; }
.section-dark .korven-details summary { color: var(--gold-light); }
.section-dark .korven-details > div { color: #cbc2b2; }

.glossary-tools { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin: 2rem 0 1.3rem; }
.search-wrap { position: relative; width: min(29rem, 100%); }
.search-wrap input { width: 100%; min-height: 3rem; padding: .8rem 1rem .8rem 2.7rem; border: 1px solid var(--line); border-radius: 0; background: var(--paper-bright); color: var(--ink); }
.search-wrap::before { content: "⌕"; position: absolute; left: .95rem; top: .2rem; color: var(--muted); font-size: 1.5rem; }
.glossary-count { color: var(--muted); font-size: .78rem; }
.glossary-group { margin-top: 2.4rem; }
.glossary-group h3 { margin-bottom: 1rem; font-size: 1.55rem; }
.glossary-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; }
.glossary-entry { padding: 1rem 1.15rem; border: 1px solid var(--line); background: rgba(245,241,233,.8); }
.glossary-entry dt { margin-bottom: .3rem; color: var(--wine); font: 600 1.08rem var(--serif); }
.glossary-entry dd { margin: 0; color: #5c554b; font-size: .9rem; }
.no-results { display: none; margin: 1rem 0; padding: 1rem; color: var(--muted); }

.cta-band { position: relative; overflow: hidden; padding: clamp(3.5rem, 7vw, 6.5rem) 0; background: var(--wine); color: var(--paper-bright); }
.cta-band::after { content: "✦"; position: absolute; right: 5vw; top: 50%; transform: translateY(-55%); color: rgba(219,197,159,.15); font-size: clamp(9rem, 24vw, 21rem); line-height: 1; }
.cta-content { position: relative; z-index: 1; display: flex; align-items: center; justify-content: space-between; gap: 2rem; }
.cta-content h2 { max-width: 13ch; }
.cta-content p { max-width: 34rem; margin: .8rem 0 0; color: #e2d4c8; }
.cta-content .button-row { flex: 0 0 auto; margin: 0; }

.site-footer { padding: 3rem 0 1.5rem; color: #e7dfd2; background: #141311; }
.footer-grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 2rem; padding-bottom: 2rem; }
.footer-grid h3 { margin-bottom: .8rem; color: var(--gold-light); font-size: 1.15rem; }
.footer-grid p, .footer-grid li { color: #bdb4a6; font-size: .86rem; }
.footer-links { display: grid; gap: .45rem; padding: 0; margin: 0; list-style: none; }
.footer-links a { color: #d2c9bb; text-decoration: none; }
.footer-links a:hover { color: var(--gold-light); }
.footer-bottom { display: flex; justify-content: space-between; gap: 1rem; padding-top: 1rem; border-top: 1px solid var(--dark-line); color: #958c7f; font-size: .72rem; }

.breadcrumb { padding-top: 1.2rem; color: var(--muted); font-size: .75rem; }
.breadcrumb a { text-decoration: none; }
.breadcrumb a:hover { color: var(--wine); }
.page-end { padding: 2rem 0 4rem; }
.house-empty { display: none; }
.js [data-reveal] { opacity: 0; transform: translateY(1.15rem); transition: opacity .65s ease, transform .65s ease; }
.js [data-reveal].is-visible { opacity: 1; transform: none; }

@media (max-width: 1180px) {
  .site-header { flex-wrap: wrap; }
  .nav-toggle { display: inline-flex; align-items: center; gap: .55rem; }
  .primary-nav { display: none; position: absolute; top: 100%; left: 0; right: 0; padding: 1rem 1.15rem 1.3rem; background: rgba(20,19,17,.98); border-bottom: 1px solid rgba(219,197,159,.25); }
  .primary-nav.is-open { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .primary-nav a { padding: .65rem .35rem; }
  .primary-nav .nav-buy { text-align: center; }
}
@media (max-width: 900px) {
  .character-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
  .house-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .tile-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .tile-grid > :last-child:nth-child(odd) { grid-column: span 2; }
  .detail-grid { grid-template-columns: 1fr; }
  .intro-grid { grid-template-columns: 1fr; gap: 1.2rem; }
  .house-detail-hero { grid-template-columns: .9fr 1.1fr; }
  .house-detail-image { min-height: 32rem; }
  .house-detail-copy { padding: 2.2rem; }
  .house-group-origin { grid-template-columns: 1fr; gap: .65rem; }
}
@media (max-width: 640px) {
  body { font-size: 15px; }
  .site-header { min-height: 4.6rem; padding-inline: 1rem; }
  .brand-title { font-size: .9rem; }
  .brand-mark { width: 2.35rem; height: 2.35rem; }
  .primary-nav.is-open { grid-template-columns: 1fr 1fr; gap: .1rem .8rem; }
  .hero { min-height: 43rem; background-position: 40% center; }
  .hero::before { background: linear-gradient(90deg, rgba(10,9,8,.8), rgba(10,9,8,.38)), linear-gradient(0deg, rgba(10,9,8,.64), transparent 65%); }
  .hero-content { width: calc(100% - 2rem); padding: 5rem 0 5.5rem; }
  .hero-caption { left: 1rem; right: 1rem; bottom: .55rem; font-size: .56rem; }
  .hero-cue { display: none; }
  .page-hero { min-height: 25rem; }
  .hero-rio { min-height: 33rem; background-position: 38% center; }
  .page-hero-content { padding: 4rem 0 3rem; }
  .section-heading { display: block; }
  .section-heading p { margin-top: 1rem; }
  .tile-grid, .house-grid, .character-grid { grid-template-columns: 1fr; }
  .tile-grid > :last-child:nth-child(odd) { grid-column: auto; }
  .image-tile { min-height: 22rem; }
  .house-card { min-height: 26rem; }
  .house-group-heading { grid-template-columns: 3.2rem minmax(0,1fr); gap: .8rem; min-height: 6.8rem; padding: 1rem .85rem; }
  .house-group-overview { grid-template-columns: 1fr; gap: 1.25rem; padding: 1rem .85rem; }
  .house-group-illustration { width: min(100%, 18rem); margin-inline: auto; }
  .house-group-index { width: 2.8rem; height: 2.8rem; font-size: 1.6rem; }
  .house-group-title { font-size: 1.55rem; }
  .house-group-teaser { font-size: .84rem; }
  .house-group-content { padding: 0 .8rem 1rem; }
  .house-group-origin { gap: .5rem; padding: 1.1rem 0 1.25rem; }
  .character-card { min-height: 29rem; }
  .two-col, .character-detail, .house-detail-hero { grid-template-columns: 1fr; }
  .two-col.reverse > :first-child { order: 0; }
  .house-detail-image { min-height: 27rem; max-height: 34rem; }
  .house-detail-copy { padding: 2.3rem 1.25rem 3.2rem; }
  .power-banner { display: grid; gap: .25rem; margin-top: -1rem; padding: 1rem 1.1rem; }
  .rare-note { grid-template-columns: 5.5rem 1fr; gap: .9rem; padding: .8rem; }
  .rare-note img { width: 5.5rem; }
  .city-gallery { grid-template-columns: 1fr; }
  .city-figure, .city-figure img { min-height: 18rem; }
  .glossary-tools { align-items: flex-start; flex-direction: column; }
  .glossary-grid { grid-template-columns: 1fr; }
  .cta-content { align-items: flex-start; flex-direction: column; }
  .cta-content .button-row { margin-top: .6rem; }
  .footer-grid { grid-template-columns: 1fr; gap: 1.5rem; }
  .footer-bottom { flex-direction: column; gap: .4rem; }
  .house-pagination { align-items: flex-start; flex-direction: column; }
  .book-cover-art { min-height: 28rem; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .01ms !important; }
  .js [data-reveal] { opacity: 1; transform: none; }
}

/* Finalization: Ordem Marmórea, Feudo do Rio and encyclopedia hierarchy. */
.order-home-section { padding-block: clamp(3.4rem, 6vw, 5.8rem); }
.order-home-section .section-heading { margin-bottom: 1.6rem; }
.order-home-grid { display: grid; grid-template-columns: minmax(17rem, .88fr) 1.12fr; align-items: start; gap: clamp(1.4rem, 4vw, 4rem); }
.order-home-art { margin: 0; padding: .65rem; border: 1px solid rgba(219,197,159,.38); background: #090909; }
.order-home-art img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; }
.order-home-copy .lede { margin-bottom: 1.1rem; }
.order-home-points { display: grid; gap: .65rem; }
.order-home-points article { display: grid; grid-template-columns: 2rem 1fr; gap: .6rem; padding: .6rem 0; border-top: 1px solid var(--dark-line); }
.order-home-points article > span { color: var(--gold-light); font: 500 1rem var(--serif); }
.order-home-points h3 { margin: 0 0 .15rem; color: var(--paper-bright); font-size: 1.16rem; }
.order-home-points p, .order-home-aside { margin: 0; color: #c9c1b3; font-size: .88rem; }
.order-home-aside { margin: 1rem 0; }
.home-feudo-feature { display: grid; grid-template-columns: 1.05fr .95fr; align-items: center; gap: clamp(1.3rem, 4vw, 3.6rem); margin-top: clamp(2.4rem, 5vw, 4.5rem); padding-top: clamp(2rem, 4vw, 3.5rem); border-top: 1px solid var(--dark-line); }
.home-feudo-feature figure { margin: 0; border: 1px solid rgba(219,197,159,.38); }
.home-feudo-feature img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; }
.home-feudo-feature h3 { margin: 0 0 .8rem; color: var(--paper-bright); font-size: clamp(1.6rem, 3vw, 2.4rem); }
.home-feudo-feature p:not(.eyebrow) { max-width: 42rem; color: #c9c1b3; }
.home-feudo-feature .text-link { color: var(--gold-light); }
.rio-feudo-section .two-col { align-items: center; }
.rio-feudo-section h2 { margin-bottom: 1.2rem; }
.order-encyclopedia { padding-top: clamp(3.5rem, 7vw, 6rem); }
.order-encyclopedia-intro { align-items: center; margin-bottom: clamp(2.5rem, 5vw, 4rem); }
.order-encyclopedia-art { margin: 0; padding: .65rem; border: 1px solid rgba(219,197,159,.42); background: #090909; }
.order-encyclopedia-art img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; }
.order-map-heading { margin: 1.2rem 0 1.4rem; }
.order-map-heading h2 { margin-bottom: .6rem; }
.order-map-heading > p:last-child { max-width: 44rem; color: #c9c1b3; }
.order-hierarchy { max-width: 78rem; margin: auto; }
.hierarchy-root { width: min(100%, 27rem); margin: 0 auto; padding: 1.1rem 1.2rem; border: 1px solid rgba(219,197,159,.65); background: #211e19; text-align: center; }
.hierarchy-root > span { display: block; margin-bottom: .25rem; color: var(--gold-light); font-size: .62rem; font-weight: 700; letter-spacing: .17em; text-transform: uppercase; }
.hierarchy-root > strong { display: block; color: var(--paper-bright); font: 500 clamp(1.55rem, 3vw, 2rem)/1.15 var(--serif); }
.hierarchy-root > p { margin: .35rem 0 0; color: #c9c1b3; font-size: .84rem; }
.hierarchy-branches { display: grid; grid-template-columns: 1fr 1fr; gap: .8rem; margin-top: .8rem; }
.hierarchy-branch, .hierarchy-offices article { padding: 1.1rem; border: 1px solid var(--dark-line); background: #191714; }
.hierarchy-branch .eyebrow, .hierarchy-offices .eyebrow { margin-bottom: .55rem; font-size: .58rem; }
.hierarchy-flow { display: flex; align-items: center; justify-content: space-between; gap: .6rem; margin: .35rem 0 .65rem; }
.hierarchy-flow strong { color: var(--paper-bright); font: 500 clamp(.96rem, 1.8vw, 1.25rem)/1.2 var(--serif); }
.hierarchy-flow span { color: var(--gold-light); font-size: 1rem; }
.hierarchy-branch > p:last-child { margin: 0; color: #c9c1b3; font-size: .85rem; }
.hierarchy-offices { display: grid; grid-template-columns: 1fr 1fr; gap: .8rem; margin-top: .8rem; }
.hierarchy-offices h3 { margin-bottom: .35rem; color: var(--paper-bright); font-size: 1.2rem; }
.hierarchy-offices article > p:last-child { margin: 0; color: #c9c1b3; font-size: .84rem; }
.hierarchy-note { margin: .9rem 0 0; padding: .85rem 1rem; border-left: 2px solid var(--wine); color: #c9c1b3; font-size: .82rem; }
.glossary-entry { overflow: hidden; padding: 0; border-color: var(--dark-line); background: #211e19; }
.glossary-entry img { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; background: #080808; }
.glossary-copy { padding: 1rem 1.15rem; }
.glossary-entry:not(.has-image) .glossary-copy { padding: 1rem 1.15rem; }
.glossary-entry h4 { margin-bottom: .35rem; color: var(--gold-light); font-size: 1.08rem; }
.glossary-entry p { margin: 0; color: #c9c1b3; font-size: .88rem; }
.home-return { display: flex; justify-content: center; padding: 1.5rem 1rem; border-top: 1px solid var(--dark-line); background: var(--ink); }
.home-return a { display: inline-flex; align-items: center; justify-content: center; min-height: 2.9rem; padding: .72rem 1.35rem; border: 1px solid var(--gold); color: var(--gold-light); font-size: .72rem; font-weight: 700; letter-spacing: .1em; text-decoration: none; text-transform: uppercase; }
.home-return a:hover, .home-return a:focus-visible { background: var(--gold); color: var(--ink); }

@media (max-width: 900px) {
  .order-home-grid { grid-template-columns: minmax(14rem, .85fr) 1.15fr; gap: 1.4rem; }
  .order-home-points article { padding-block: .5rem; }
}
@media (max-width: 640px) {
  .order-home-section { padding-block: 3.3rem; }
  .order-home-grid, .home-feudo-feature, .hierarchy-branches, .hierarchy-offices { grid-template-columns: 1fr; }
  .order-home-art { max-width: 38rem; }
  .home-feudo-feature { gap: 1.2rem; margin-top: 2.4rem; padding-top: 2rem; }
  .home-feudo-feature h3 { font-size: 1.75rem; }
  .hierarchy-root { padding: .95rem; }
  .hierarchy-flow { justify-content: flex-start; flex-wrap: wrap; }
  .hierarchy-flow strong { font-size: 1.05rem; }
  .rio-feudo-section { padding-top: 2.8rem; }
  .rio-feudo-section .framed-image { order: 2; }
  .order-encyclopedia-intro { gap: 1.4rem; }
  .order-map-heading { margin-top: 2.2rem; }
  .glossary-copy { padding: .9rem; }
}

/* Keep adjacent editorial sections close enough to read as one narrative. */
.intro-band + .order-home-section { padding-top: clamp(2.4rem, 4vw, 3.8rem); }
.order-home-section + .section-dark { padding-top: clamp(2.7rem, 4vw, 3.8rem); }
.rio-feudo-section { padding-block: clamp(3rem, 5vw, 4.5rem); }
.rio-feudo-section + .section { padding-top: clamp(2.5rem, 4vw, 3.6rem); }
.feudo-encyclopedia { padding-block: clamp(3rem, 5vw, 4.6rem); }

@media (max-width: 640px) {
  .intro-band + .order-home-section { padding-top: 2.25rem; }
  .order-home-section + .section-dark { padding-top: 2.6rem; }
  .rio-feudo-section { padding-block: 2.8rem; }
  .rio-feudo-section + .section { padding-top: 2.5rem; }
  .feudo-encyclopedia { padding-block: 2.8rem; }
}

/* Preserve image proportions when fixed intrinsic height attributes are present. */
.glossary-entry img { height: auto; }
.rare-note img { height: 9rem; }
@media (max-width: 640px) {
  .rare-note img { height: 5.5rem; }
}

/* Return to the site's original black, white and red identity. */
:root {
  color-scheme: dark;
  --ink: #050505;
  --ink-soft: #111111;
  --paper: #f1f1f1;
  --paper-bright: #f2f2f2;
  --paper-shadow: #202020;
  --muted: #a6a6a6;
  --gold: #a71928;
  --gold-light: #ee2639;
  --wine: #a71928;
  --line: rgba(242, 242, 242, .17);
  --dark-line: rgba(242, 242, 242, .17);
  --serif: "Cinzel Decorative", Georgia, "Times New Roman", serif;
  --sans: Inter, Arial, sans-serif;
  --shadow: 0 24px 70px rgba(0, 0, 0, .58);
}

body { background: #050505; color: #f2f2f2; }
body::before {
  opacity: .07;
  background-image: radial-gradient(rgba(255,255,255,.2) .45px, transparent .6px);
}
::selection { background: #a71928; color: #fff; }
:focus-visible { outline-color: #ee2639; }
.skip-link { background: #101010; color: #fff; border-color: #a71928; }
.site-header {
  background: rgba(0,0,0,.97);
  border-bottom-color: rgba(167,25,40,.34);
}
.brand { gap: .7rem; }
.brand-logo-window {
  position: relative;
  display: block;
  width: 4.45rem;
  height: 4.45rem;
  overflow: hidden;
  flex: 0 0 auto;
  background: #000;
}
.brand-logo-window img {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 13.35rem !important;
  height: 13.35rem !important;
  max-width: none !important;
  transform: translate(-50%, -50%);
}
.brand-copy { color: #f5f5f5; }
.brand-title { color: #f5f5f5; font-family: "Cinzel Decorative", Georgia, serif; }
.brand-subtitle { color: #c7c7c7; }
.primary-nav a { color: #ededed; font-family: Inter, Arial, sans-serif; }
.primary-nav a:hover, .primary-nav a[aria-current="page"] { color: #ee2639; }
.primary-nav .nav-buy { border-color: #a71928; color: #fff; }
.primary-nav .nav-buy:hover { background: #a71928; color: #fff; }
.nav-toggle { color: #fff; border-color: rgba(238,38,57,.5); }
@media (max-width: 1180px) {
  .primary-nav { background: rgba(0,0,0,.98); border-bottom-color: rgba(167,25,40,.34); }
}

h1, h2, h3, h4 { color: #f4f4f4; font-family: "Cinzel Decorative", Georgia, serif; }
.section-dark, .section-paper, .intro-band, .site-footer, .home-return {
  background: #070707;
  color: #f1f1f1;
}
.section-dark p, .section-paper p, .intro-band p, .section .lede, .section-tight .lede,
.intro-copy p, .section-heading > p, .section-dark .section-heading p,
.section-paper .section-heading p, .detail-card p, .rare-note p,
.house-group-teaser, .house-group-origin .lede, .house-members-summary > span,
.meta-list, .korven-details > div, .glossary-entry dd {
  color: #c7c7c7;
}
.section-dark .lede, .section-paper .lede { color: #e0e0e0; }
.eyebrow, .kicker, .section-dark .eyebrow, .hero .eyebrow, .page-hero .eyebrow,
.image-tile-content .eyebrow, .house-card-content .eyebrow,
.character-card-content .eyebrow, .order-home-points article > span,
.hierarchy-root > span, .hierarchy-flow span, .glossary-entry h4,
.footer-grid h3, .section-dark .text-link,
.card-arrow, .book-cover-frame .cover-small, .book-cover-frame em {
  color: #ee2639;
}
.ornament { background: #a71928; }
.section-rule, .house-members, .home-feudo-feature, .house-pagination { border-color: rgba(238,38,57,.3); }

.button {
  border-color: #f2f2f2;
  border-radius: 999px;
  color: #fff;
  background: transparent;
}
.button:hover { border-color: #a71928; background: #a71928; color: #fff; }
.button-gold { border-color: #a71928; background: #a71928; color: #fff; }
.button-gold:hover { border-color: #ee2639; background: #ee2639; color: #fff; }
.button-light { border-color: #f2f2f2; color: #fff; }
.button-light:hover { border-color: #a71928; background: #a71928; color: #fff; }
.hero { align-items: center; background-color: #050505; }
.hero::before {
  background: linear-gradient(0deg, rgba(0,0,0,.72), rgba(0,0,0,.18) 48%, rgba(0,0,0,.32)),
    linear-gradient(90deg, rgba(0,0,0,.35), transparent 52%, rgba(0,0,0,.34));
}
.hero-content { text-align: center; }
.hero-content > * { margin-left: auto; margin-right: auto; }
.hero-wordmark {
  display: grid;
  gap: .15em;
  max-width: none !important;
  margin: 0 auto .9rem !important;
  color: #fff;
  font: 400 clamp(3rem, 7.5vw, 6.1rem)/1.12 "Cinzel Decorative", Georgia, serif;
  letter-spacing: .015em;
  text-transform: uppercase;
}
.hero-wordmark span { color: #fff; }
.hero-wordmark em { color: #ee2639 !important; font-style: normal; }
.hero-tagline {
  max-width: none !important;
  margin: 1.35rem auto 0;
  color: #f4f4f4;
  font: italic 500 clamp(1rem, 1.8vw, 1.25rem)/1.5 Inter, Arial, sans-serif;
}
.hero-rating { display: grid; justify-items: center; gap: .2rem; margin: 3.5rem auto 2.1rem; }
.hero-rating > span { color: #f3f3f3; font-size: 1.35rem; letter-spacing: .14em; }
.hero-rating small { color: #e1e1e1; font-size: .8rem; }
.button-legacy {
  min-width: 12rem;
  min-height: 3.3rem;
  padding: .55rem 1.6rem;
  border: 3px solid #fff;
  background: #666;
  color: #fff;
  font-size: 1rem;
  letter-spacing: .05em;
}
.button-legacy:hover { border-color: #fff; background: #a71928; color: #fff; }
.hero-caption, .hero-cue { display: none; }
.page-hero { color: #f4f4f4; }
.page-hero p { color: #dedede; }
.page-hero::before { background: linear-gradient(90deg, rgba(0,0,0,.88), rgba(0,0,0,.48) 60%, rgba(0,0,0,.12)), linear-gradient(0deg, rgba(0,0,0,.55), transparent 45%); }

.image-tile, .house-card, .character-card, .house-group, .house-group-heading,
.rare-note, .detail-card, .detail-card-dark, .korven-details, .glossary-entry,
.hierarchy-root, .hierarchy-branch, .hierarchy-offices article,
.order-home-art, .order-encyclopedia-art, .framed-image, .group-engraving,
.portrait, .book-cover-art, .book-cover-frame, .search-wrap input {
  background-color: #101010;
  border-color: rgba(167,25,40,.42);
  color: #f1f1f1;
}
.house-group-heading { background: #111; }
.house-group-title, .house-group-members-summary > span, .house-members-summary > span,
.detail-card h3, .hierarchy-root > strong, .hierarchy-flow strong,
.hierarchy-offices h3, .character-copy h1, .meta-list dd { color: #f4f4f4; }
.house-group-overview, .house-group-content { background: #090909; }
.house-group-heading { border-color: rgba(167,25,40,.3); }
.house-group-index, .house-group-illustration, .house-card, .framed-image,
.group-engraving, .portrait, .order-home-art, .home-feudo-feature figure,
.order-encyclopedia-art { border-color: rgba(167,25,40,.4); }
.book-cover-frame { outline-color: rgba(167,25,40,.42); }
.house-group-index { color: #ee2639; }
.house-card img { filter: grayscale(.72) contrast(1.08); }
.filter-button { border-color: rgba(242,242,242,.25); background: #101010; color: #eee; }
.filter-button:hover, .filter-button[aria-pressed="true"] { border-color: #a71928; background: #a71928; color: #fff; }
.warning-note, .section-dark .warning-note { border-color: rgba(238,38,57,.4); background: rgba(167,25,40,.12); color: #eee; }
.korven-details { border-color: rgba(238,38,57,.35); }
.korven-details summary, .section-dark .korven-details summary { color: #ee2639; }
.search-wrap input { color: #f2f2f2; }
.search-wrap input::placeholder { color: #aaa; }
.glossary-entry dt { color: #ee2639; }
.home-return { border-top-color: rgba(167,25,40,.35); }
.home-return a { border: 1px solid #a71928; border-radius: 999px; color: #fff; }
.home-return a:hover, .home-return a:focus-visible { background: #a71928; color: #fff; }
.footer-grid p, .footer-grid li, .footer-links a, .footer-bottom { color: #bdbdbd; }
.footer-links a:hover { color: #ee2639; }
.cta-band { background: #17070a; }
.cta-band::after { color: rgba(238,38,57,.12); }
.cta-content p { color: #d3d3d3; }
.power-banner { background: #a71928; color: #fff; }
.house-detail-hero { background: #050505; color: #f4f4f4; }
.house-detail-copy .subtitle { color: #ee2639; }
.house-detail-copy p { color: #d0d0d0; }
.quote-mark { border-left-color: #a71928; color: #e4e4e4; }
.map-note { border-left-color: #a71928; color: #d0d0d0; background: rgba(167,25,40,.1); }
.image-caption, .section-dark .image-caption { color: #bcbcbc; }

.home-rio-teaser { border-top-color: rgba(167,25,40,.38); }
.home-rio-teaser figure { overflow: hidden; background: #050505; }
.home-rio-teaser img { filter: grayscale(.82) contrast(1.08); }
.home-rio-teaser h3 { color: #f4f4f4; font-size: clamp(2rem, 4.5vw, 3.5rem); }
.home-rio-teaser .home-rio-lead { color: #fff; font: 400 clamp(1.15rem, 2.2vw, 1.65rem)/1.5 "Cinzel Decorative", Georgia, serif; }
.home-rio-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 3.25rem;
  margin-top: .8rem;
  padding: .8rem 1.45rem;
  border: 1px solid #a71928;
  border-radius: 999px;
  color: #fff;
  font: 600 .74rem/1.25 Inter, Arial, sans-serif;
  letter-spacing: .12em;
  text-decoration: none;
  transition: background .3s ease, box-shadow .3s ease, transform .3s ease;
}
.home-rio-cta:hover, .home-rio-cta:focus-visible { background: #981927; box-shadow: 0 0 26px rgba(165,27,42,.34); transform: translateY(-2px); }

/* Compact homepage restored to its original book-first structure. */
.home-original-intro,
.home-original-review {
  padding-block: clamp(3.2rem, 5.5vw, 4.8rem);
  background: #070707;
  color: #f1f1f1;
}
.home-original-intro { border-bottom: 1px solid rgba(167,25,40,.3); }
.home-original-copy,
.home-original-review-content {
  text-align: center;
}
.home-original-copy { max-width: 55rem; }
.home-original-copy .eyebrow { justify-content: center; }
.home-original-copy h2 {
  max-width: none;
  margin: 0 auto 1.25rem;
  color: #f4f4f4;
  font-size: clamp(2rem, 4vw, 3.2rem);
}
.home-original-copy p:not(.eyebrow) {
  max-width: 49rem;
  margin-inline: auto;
  color: #c7c7c7;
}
.home-original-copy .button { margin-top: .35rem; }
.home-original-buy-p { margin: 1.55rem auto 0; color: #ededed !important; font: 400 clamp(1.03rem, 1.8vw, 1.22rem)/1.6 "Cinzel Decorative", Georgia, serif; }
.home-intro-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: .8rem; margin-top: 1.2rem; }
.home-intro-actions .button { margin-top: 0; }
.home-intro-actions .button-legacy { background: #a71928; }
.home-intro-actions .button-legacy:hover { background: #ee2639; }
.home-story { padding-block: clamp(3.6rem, 6.5vw, 5.4rem); }
.home-story + .home-story { border-top: 1px solid rgba(167,25,40,.3); }
.home-story-art { display: flex; min-width: 0; min-height: 0; align-items: center; justify-content: center; margin: 0; padding: .65rem; overflow: hidden; border: 1px solid rgba(167,25,40,.45); background: #080808; box-shadow: 0 18px 48px rgba(0,0,0,.35); }
.home-story-art img { display: block; width: 100%; height: auto; max-height: 30rem; object-fit: contain; filter: grayscale(.94) contrast(1.12); }
.home-house-lineages { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: stretch; }
.home-house-lineages img { width: 100%; height: auto; max-height: none; aspect-ratio: 2 / 3; object-fit: cover; }
.home-house-lineages img + img { border-left: 1px solid rgba(167,25,40,.5); }
.home-story-raphael .home-story-art img { width: min(100%, 21rem); max-height: min(30rem, 110vw); }
.home-story h2 { max-width: 17ch; margin-bottom: 1.1rem; color: #f4f4f4; font-size: clamp(2rem, 4.1vw, 3.35rem); line-height: 1.2; }
.home-story p:not(.eyebrow) { max-width: 39rem; color: #c7c7c7; }
.home-story .button { margin-top: .4rem; }
.home-original-review { padding-block: clamp(2.6rem, 4.5vw, 3.8rem); }
.home-original-review .eyebrow { justify-content: center; }
.home-original-review-content { max-width: 62rem; text-align: center; }
.home-original-review h2 { max-width: none; margin: 0 auto 1.5rem; color: #f4f4f4; font-size: clamp(1.8rem, 3.5vw, 2.7rem); }
.review-carousel { max-width: 54rem; margin: 0 auto; }
.review-viewport { overflow: hidden; width: 100%; }
.review-track { display: flex; width: 100%; align-items: stretch; transition: transform .8s cubic-bezier(.22,.68,0,1); will-change: transform; }
.review-slide { flex: 0 0 100%; min-width: 0; box-sizing: border-box; padding: .45rem clamp(1rem, 4vw, 2.5rem); opacity: .42; transform: translateX(.6rem) scale(.985); transition: opacity .65s ease, transform .65s ease; }
.review-slide.is-active { opacity: 1; transform: translateX(0) scale(1); }
.review-slide .review-stars {
  margin: .1rem 0 .65rem;
  color: #ee2639;
  font-size: 1.2rem;
  letter-spacing: .2em;
}
.review-slide blockquote {
  max-width: 48rem;
  margin: 0 auto;
  color: #e5e5e5;
  font: 400 clamp(1.05rem, 2vw, 1.2rem)/1.7 Inter, Arial, sans-serif;
}
.review-slide h3 { max-width: none; margin: 0 0 .55rem; color: #f5f5f5; font: 500 clamp(1.2rem, 2.5vw, 1.6rem)/1.45 "Cinzel Decorative", Georgia, serif; }
.review-slide blockquote > p { margin: 0 0 .8rem; color: #d1d1d1; }
.review-slide cite {
  display: block;
  margin-top: .75rem;
  color: #ee2639;
  font-size: .78rem;
  font-style: normal;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.review-slide cite span { display: block; margin-top: .25rem; color: #999; font-size: .68rem; font-weight: 400; letter-spacing: .08em; }
.home-review-controls { display: flex; align-items: center; justify-content: center; gap: .85rem; margin-top: 1.35rem; }
.home-review-control { display: grid; width: 2.45rem; height: 2.45rem; place-items: center; border: 1px solid rgba(238,38,57,.6); border-radius: 50%; background: transparent; color: #f4f4f4; cursor: pointer; font: 1.55rem/1 Georgia, serif; transition: background .25s ease, border-color .25s ease, transform .25s ease; }
.home-review-control:hover, .home-review-control:focus-visible { transform: translateY(-2px); border-color: #ee2639; background: #a71928; }
.home-review-toggle { padding: .45rem .5rem; border: 0; background: transparent; color: #aaa; cursor: pointer; font: 600 .67rem/1 Inter, Arial, sans-serif; letter-spacing: .1em; }
.home-review-toggle:hover, .home-review-toggle:focus-visible { color: #fff; }
.review-source { margin: 1.2rem auto 0; color: #888 !important; font-size: .75rem; text-align: center; }
.home-review-actions { justify-content: center; }
.visually-hidden { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; clip-path: inset(50%); }

.rio-legacy { width: min(70rem, calc(100% - 2.25rem)); margin-inline: auto; padding: clamp(2.5rem, 6vw, 4rem) 0 1rem; }
.rio-legacy-intro { margin: 0 auto clamp(2.2rem, 5vw, 3.4rem); text-align: center; }
.rio-legacy-intro .kicker { justify-content: center; }
.rio-legacy-intro h1 { max-width: none; margin: .7rem 0 1.1rem; font-size: clamp(2.2rem, 5vw, 3.4rem); line-height: 1.24; }
.rio-legacy-lead { max-width: 46rem; margin: 0 auto 1.5rem; color: #f1f1f1 !important; font: 400 clamp(1.2rem, 2.3vw, 1.55rem)/1.55 "Cinzel Decorative", Georgia, serif; }
.rio-legacy-intro > p:last-child { color: #c9c9c9; }
.rio-legacy-rule { width: 4.4rem; height: 2px; margin: 1.7rem auto; background: #ee2639; }
.rio-legacy-scenes { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: clamp(1.2rem, 3vw, 2rem); }
.rio-legacy-scenes figure { min-width: 0; }
.rio-legacy-scenes img { width: 100%; height: clamp(14rem, 28vw, 20rem); border-radius: .65rem; object-fit: cover; filter: grayscale(.8) contrast(1.08); transition: transform .65s ease, filter .65s ease; }
.rio-legacy-scenes figure:hover img { transform: translateY(-3px); filter: grayscale(.55) contrast(1.08); }
.rio-legacy-scenes figcaption { padding-top: 1.1rem; }
.rio-legacy-scenes h2, .rio-legacy-feudo h3 { margin: 0 0 .65rem; color: #f2f2f2; font-size: clamp(1.3rem, 2.5vw, 1.7rem); line-height: 1.35; }
.rio-legacy-scenes p, .rio-legacy-feudo p { color: #c7c7c7; }
.rio-legacy-quote { margin: clamp(2.5rem, 6vw, 4rem) auto; color: #f1f1f1; font: 400 clamp(1.45rem, 3vw, 2.1rem)/1.5 "Cinzel Decorative", Georgia, serif; text-align: center; }
.rio-legacy-feudo { padding: 2rem 0; border-top: 1px solid rgba(167,25,40,.35); }
.rio-legacy-feudo > h2 { max-width: none; margin: 0 0 1.5rem; color: #ee2639; font-size: clamp(1.7rem, 3.5vw, 2.35rem); text-align: center; }
.rio-legacy-feudo-grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(1.2rem, 3vw, 2.5rem); }
.rio-legacy-feudo-grid article { padding-top: 1rem; }

@media (max-width: 640px) {
  .brand-logo-window { width: 3.5rem; height: 3.5rem; }
  .brand-logo-window img { width: 10.5rem !important; height: 10.5rem !important; }
  .hero { min-height: 43rem; }
  .hero-content { padding: 5rem 0 4.8rem; }
  .hero-rating { margin-top: 2.7rem; }
  .hero-wordmark { font-size: clamp(2.3rem, 11vw, 3.7rem); }
  .home-rio-teaser { grid-template-columns: 1fr; }
  .home-rio-teaser figure { order: 0; }
  .home-rio-teaser > div { order: 1; }
  .rio-legacy { width: calc(100% - 2rem); padding-top: 2.2rem; }
  .rio-legacy-scenes, .rio-legacy-feudo-grid { grid-template-columns: 1fr; }
  .rio-legacy-scenes { gap: 2rem; }
  .rio-legacy-scenes img { height: 15rem; }
  .rio-legacy-quote { margin-block: 2.4rem; }
  .home-story-art { padding: .45rem; }
  .home-story-raphael .home-story-art img { max-height: min(26rem, 110vw); }
  .home-review-controls { gap: .5rem; }
  .review-slide { padding-inline: .35rem; }
}

/* Ordem Marmórea: página própria e hierarquia editorial */
.hero-order { background-image: url("/assets/img/enciclopedia-ordem-marmorea-2026.webp"); background-position: center 46%; }
.hero-order .eyebrow { color: #ee2639; }
.encyclopedia-order-link { border-block: 1px solid rgba(167,25,40,.32); }
.encyclopedia-order-link .two-col { align-items: center; }
.encyclopedia-order-link h2 { margin-bottom: .55rem; color: #f4f4f4; }
.encyclopedia-order-link p:not(.eyebrow) { max-width: 42rem; color: #c9c9c9; }
.encyclopedia-order-link .button { justify-self: start; }
.order-sovereignty { padding-block: clamp(3.25rem, 6vw, 5.5rem); }
.order-sovereign-heading { max-width: 52rem; margin: 0 auto clamp(1.5rem, 3vw, 2.3rem); text-align: center; }
.order-sovereign-heading .eyebrow { justify-content: center; color: #ee2639; }
.order-sovereign-heading h2 { max-width: none; margin: 0 auto .85rem; color: #f4f4f4; font-size: clamp(2rem, 4.6vw, 3.6rem); }
.order-sovereign-heading .lede { margin-inline: auto; color: #dedede; }
.order-sovereign-art { max-width: 74rem; margin: 0 auto; padding: .65rem; border: 1px solid rgba(167,25,40,.48); background: #080808; }
.order-sovereign-art img { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.order-territory { border-top: 1px solid rgba(167,25,40,.32); }
.order-territory .section-heading { align-items: end; }
.order-territory .section-heading p { color: #c9c9c9; }
.order-rank-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr)); gap: .8rem; margin-bottom: clamp(2rem, 4vw, 3rem); }
.order-rank-card { padding: 1.2rem 1.25rem; border: 1px solid rgba(167,25,40,.3); border-top: 2px solid #a71928; background: #111; }
.order-rank-card .eyebrow { margin-bottom: .4rem; color: #ee2639; font-size: .64rem; }
.order-rank-card h3 { margin-bottom: .45rem; color: #f4f4f4; font-size: clamp(1.3rem, 2.1vw, 1.7rem); }
.order-rank-card p:last-child { margin: 0; color: #c9c9c9; font-size: .88rem; }
.order-image-role-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr)); gap: 1rem; }
.order-image-role { min-width: 0; padding: 1rem; border: 1px solid rgba(167,25,40,.34); background: #111; }
.order-image-role > .eyebrow { margin: 0 0 .35rem; color: #ee2639; font-size: .63rem; }
.order-image-role h3 { margin: 0 0 .85rem; color: #f4f4f4; font-size: clamp(1.25rem, 2.2vw, 1.75rem); }
.order-image-role figure { margin: 0 0 .9rem; overflow: hidden; background: #050505; }
.order-image-role figure img { display: block; width: 100%; height: auto; object-fit: contain; }
.order-image-role > p:last-child { margin: 0; color: #c9c9c9; font-size: .88rem; }
.order-council-panel { display: grid; grid-template-columns: minmax(14rem, .7fr) 1.3fr; align-items: center; gap: 1.2rem; margin-top: 1rem; padding: clamp(1.1rem, 2.5vw, 1.7rem); border-left: 2px solid #a71928; background: #151515; }
.order-council-panel .eyebrow { margin-bottom: .3rem; color: #ee2639; font-size: .64rem; }
.order-council-panel h3 { margin: 0; color: #f4f4f4; font-size: 1.45rem; }
.order-council-panel > p { margin: 0; color: #d0d0d0; }
.order-scope-note { max-width: 54rem; margin: 1.35rem auto 0; color: #aaa; font-size: .85rem; text-align: center; }
.order-explore { border-top: 1px solid rgba(167,25,40,.32); }
.order-explore .button-row { margin-top: 1.25rem; }

@media (max-width: 640px) {
  .order-sovereign-art { padding: .4rem; }
  .order-sovereign-art img { aspect-ratio: 4 / 3; }
  .order-image-role-grid { grid-template-columns: 1fr; }
  .order-council-panel { grid-template-columns: 1fr; gap: .55rem; }
  .encyclopedia-order-link .two-col { gap: 1rem; }
}
