
:root {
  --ink: #171615;
  --ink-soft: #27231f;
  --paper: #f2eadb;
  --paper-light: #fbf6ed;
  --terracotta: #a94b2c;
  --terracotta-dark: #7d321d;
  --gold: #d8aa58;
  --line: rgba(23, 22, 21, 0.18);
  --white: #fffdf8;
  --serif: "Iowan Old Style", "Palatino Linotype", "Book Antiqua", Palatino, Georgia, serif;
  --sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --container: min(1180px, calc(100% - 40px));
  --shadow: 0 28px 80px rgba(24, 18, 13, 0.18);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--paper-light);
  font-family: var(--sans);
  line-height: 1.65;
  overflow-x: hidden;
}
body.menu-open { overflow: hidden; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input { font: inherit; }
button { color: inherit; }
::selection { background: var(--terracotta); color: var(--white); }

.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;
}
.skip-link {
  position: fixed;
  left: 16px;
  top: -60px;
  z-index: 9999;
  padding: 12px 18px;
  background: var(--paper-light);
  color: var(--ink);
  transition: top .2s ease;
}
.skip-link:focus { top: 16px; }
.container { width: var(--container); margin-inline: auto; }
.section { padding: clamp(90px, 11vw, 160px) 0; }

.page-loader {
  position: fixed;
  inset: 0;
  z-index: 5000;
  display: grid;
  place-items: center;
  background: var(--ink);
  transition: opacity .65s ease, visibility .65s ease;
}
.page-loader.is-hidden { opacity: 0; visibility: hidden; }
.loader-mark {
  color: var(--gold);
  font-family: var(--serif);
  font-size: 5rem;
  animation: breathe 1.15s ease-in-out infinite;
}
@keyframes breathe { 50% { opacity: .35; transform: scale(.93); } }

.site-header {
  position: fixed;
  inset: 0 0 auto;
  z-index: 1000;
  color: var(--white);
  transition: background .3s ease, color .3s ease, box-shadow .3s ease;
}
.site-header.scrolled {
  color: var(--paper-light);
  background: var(--ink-soft);
  backdrop-filter: blur(16px);
  box-shadow: 0 1px 0 rgba(23,22,21,.1);
}
.navbar {
  min-height: 88px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 30px;
}


.brand { display: inline-flex; align-items: center; gap: 12px; }
.brand-emblem {
  width: 42px;
  aspect-ratio: 1;
  display: grid;
  place-items: center;
  border: 0;
  border-radius: 50%;
  font: 1.55rem/1 var(--serif);
}
.brand-copy { display: grid; line-height: 1; }
.brand-copy strong { letter-spacing: .22em; font-size: .95rem; }
.brand-copy small { margin-top: 8px; opacity: .68; font-size: .62rem; letter-spacing: .08em; text-transform: uppercase; }
.nav-panel { display: flex; align-items: center; gap: clamp(20px, 3vw, 42px); }
.nav-panel > a { font-size: .78rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; position: relative; }
.nav-panel > a:not(.nav-cta)::after,
.nav-dropdown-toggle::after {
  content: "";
  position: absolute;
  left: 0;
  right: 100%;
  bottom: -12px;
  height: 1px;
  background: currentColor;
  transition: right .25s ease;
}
.nav-panel > a:hover::after,
.nav-panel > a.active::after,
.nav-dropdown-toggle:hover::after,
.nav-dropdown-toggle[aria-expanded="true"]::after,
.nav-dropdown:has(.nav-dropdown-menu .active) .nav-dropdown-toggle::after { right: 0; }
.nav-dropdown {
  position: relative;
  display: flex;
  align-items: center;
}
.nav-dropdown::after {
  content: "";
  position: absolute;
  top: 100%;
  left: 0;
  width: 100%;
  height: 16px;
}
.nav-dropdown-toggle {
  position: relative;
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 0 0 1px;
  border: 0;
  color: inherit;
  background: transparent;
  cursor: pointer;
  font: inherit;
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.nav-dropdown-toggle > [aria-hidden] {
  font-size: 1rem;
  line-height: 1;
  transition: transform .2s ease;
}
.nav-dropdown-toggle[aria-expanded="true"] > [aria-hidden] { transform: rotate(180deg); }
.nav-dropdown-menu {
  position: absolute;
  top: calc(100% + 16px);
  left: 0;
  min-width: 190px;
  padding: 8px;
  color: var(--ink);
  background: var(--paper-light);
  border: 1px solid var(--line);
  box-shadow: var(--shadow);
  opacity: 0;
  visibility: hidden;
  transform: translateY(-6px);
  pointer-events: none;
  transition: opacity .2s ease, visibility .2s ease, transform .2s ease;
}
.nav-dropdown-menu a {
  display: block;
  padding: 11px 12px;
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.nav-dropdown-menu a:hover,
.nav-dropdown-menu a:focus-visible,
.nav-dropdown-menu a.active {
  color: var(--white);
  background: var(--terracotta);
}
.nav-dropdown:hover .nav-dropdown-menu,
.nav-dropdown:focus-within .nav-dropdown-menu,
.nav-dropdown.is-open .nav-dropdown-menu {
  opacity: 1;
  visibility: visible;
  transform: none;
  pointer-events: auto;
}

.nav-dropdown:not(:hover):not(:focus-within):not(.is-open) .nav-dropdown-menu {
  opacity: 0 !important;
  visibility: hidden !important;
  transform: translateY(-6px) !important;
  pointer-events: none !important;
}
.nav-cta { border: 1px solid currentColor; padding: 12px 17px; }
.nav-cta:hover { background: var(--terracotta); border-color: var(--terracotta); color: var(--white); }
.nav-search { margin-left: auto; }
.nav-search input {
  width: min(220px, 26vw);
  min-height: 38px;
  border: 1px solid currentColor;
  padding: 0 12px;
  background: transparent;
  color: inherit;
  font-size: .72rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.nav-search input::placeholder { color: currentColor; opacity: .62; }
.nav-search-wrap { position: relative; flex: 0 0 auto; }
.nav-search-toggle {
  width: 70px;
 height: 38px;
  place-items: center;
  padding: 0px 10px;
  border: 0;
  border-radius: 0;
  border: 1px solid #fff;
  color: inherit;
  background: transparent;
  cursor: pointer;
  transition: color .2s ease, background .2s ease, border-color .2s ease;
}
.site-header.scrolled .nav-search-toggle {
  border: solid 1px #fff;
}
.nav-search-toggle:hover,
.nav-search-toggle[aria-expanded="true"] {
  color: var(--white);
  background: var(--terracotta);
  
}
.nav-search-toggle svg {
  width: 28px;
  height: 10px;
  fill: none;
  stroke: var(--white);
  stroke-width: 1.7;
  stroke-linecap: round;
}
.nav-search-popover {
  position: absolute;
  top: calc(100% + 14px);
  right: 0;
  width: min(370px, calc(100vw - 40px));
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
  padding: 12px;
  color: var(--ink);
  background: var(--paper-light);
  border: 1px solid var(--line);
  box-shadow: var(--shadow);
}
.nav-search-popover[hidden] { display: none; }
.nav-search-popover input {
  min-width: 0;
  min-height: 44px;
  padding: 0 13px;
  color: var(--ink);
  background: var(--white);
  border: 1px solid var(--line);
}
.nav-search-popover button {
  min-width: 54px;
  padding: 0 14px;
  border: 0;
  color: var(--white);
  background: var(--terracotta);
  cursor: pointer;
  font-size: .7rem;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.menu-toggle { display: none; border: 0; background: transparent; padding: 8px; }
.menu-toggle span:not(.sr-only) { display: block; width: 28px; height: 1px; background: currentColor; margin: 6px 0; transition: transform .25s, opacity .25s; }

.hero {
  position: relative;
  min-height: 100svh;
  display: flex;
  align-items: center;
  color: var(--white);
  background: var(--ink);
  overflow: hidden;
}
.hero-image {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(90deg, rgba(16,14,12,.87) 0%, rgba(16,14,12,.62) 47%, rgba(16,14,12,.25) 100%),
    linear-gradient(0deg, rgba(16,14,12,.58), transparent 45%),
    url('../images/hero-parthenon.jpg');
  background-size: cover;
  background-position: center 42%;
  transform: scale(1.04);
  animation: heroZoom 15s ease-out both;
}
@keyframes heroZoom { to { transform: scale(1); } }
.hero-grain {
  position: absolute;
  inset: 0;
  opacity: .16;
  pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.92' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.45'/%3E%3C/svg%3E");
}
.hero-content { position: relative; z-index: 2; padding-top: 105px; }
.eyebrow { margin: 0 0 20px; text-transform: uppercase; letter-spacing: .24em; font-weight: 800; font-size: .7rem; color: var(--gold); }
.eyebrow.dark { color: var(--terracotta); }
.hero h1, .section-heading h2, .world-heading h2, .timeline-intro h2, .stories-heading h2, .numbers-heading h2, .explore-content h2 {
  margin: 0;
  font-family: var(--serif);
  font-weight: 400;
  letter-spacing: -.04em;
  line-height: .94;
}
.hero h1 { max-width: 900px; font-size: clamp(4.3rem, 10vw, 9rem); text-wrap: balance; }
em { color: var(--gold); font-weight: 400; }
.hero-intro { max-width: 615px; margin: 32px 0 0; font-size: clamp(1rem, 1.5vw, 1.24rem); color: rgba(255,253,248,.78); }
.hero-actions { margin-top: 40px; display: flex; flex-wrap: wrap; gap: 14px; }
.button {
  min-height: 54px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  padding: 0 24px;
  border: 1px solid transparent;
  cursor: pointer;
  text-transform: uppercase;
  letter-spacing: .12em;
  font-size: .72rem;
  font-weight: 800;
  transition: transform .25s ease, background .25s ease, color .25s ease, border-color .25s ease;
}
.button:hover { transform: translateY(-3px); }
.button-primary { background: var(--terracotta); color: var(--white); }
.button-primary:hover { background: var(--terracotta-dark); }
.button-ghost { background: transparent; border-color: rgba(255,255,255,.36); color: var(--white); }
.button-ghost:hover { border-color: var(--white); }
.hero-stat {
  position: absolute;
  z-index: 2;
  right: clamp(24px, 5vw, 80px);
  bottom: 78px;
  display: flex;
  align-items: flex-end;
  gap: 14px;
  padding-left: 20px;
  border-left: 1px solid rgba(255,255,255,.28);
}
.hero-stat-number { font-family: var(--serif); color: var(--gold); font-size: clamp(3.5rem, 6vw, 6rem); line-height: .8; }
.hero-stat-copy { font-size: .68rem; line-height: 1.35; letter-spacing: .12em; text-transform: uppercase; color: rgba(255,255,255,.67); }
.scroll-cue {
  position: absolute;
  z-index: 2;
  left: 50%;
  bottom: 32px;
  transform: translateX(-50%);
  display: grid;
  justify-items: center;
  gap: 10px;
  font-size: .62rem;
  text-transform: uppercase;
  letter-spacing: .18em;
  color: rgba(255,255,255,.6);
}
.scroll-cue i { width: 1px; height: 35px; background: rgba(255,255,255,.45); position: relative; overflow: hidden; }
.scroll-cue i::after { content: ""; position: absolute; inset: -100% 0 auto; height: 100%; background: var(--white); animation: scrollLine 2s ease-in-out infinite; }
@keyframes scrollLine { to { transform: translateY(200%); } }

.intro-section { background: var(--paper-light); }
.intro-grid { display: grid; grid-template-columns: 1.08fr .92fr; gap: clamp(50px, 9vw, 130px); align-items: start; }
.section-heading h2, .world-heading h2, .timeline-intro h2, .stories-heading h2, .numbers-heading h2, .explore-content h2 { font-size: clamp(3rem, 6vw, 6rem); }
.section-heading em, .timeline-intro em, .numbers-heading em { color: var(--terracotta); }
.intro-copy { padding-top: 35px; }
.intro-copy p { color: #5e574f; }
.intro-copy .lead { color: var(--ink); font: 1.48rem/1.5 var(--serif); margin-top: 0; }
.text-link { display: inline-flex; gap: 16px; align-items: center; margin-top: 18px; font-size: .77rem; text-transform: uppercase; letter-spacing: .12em; font-weight: 800; border-bottom: 1px solid var(--ink); padding-bottom: 7px; }
.text-link span { color: var(--terracotta); }
.legacy-strip { margin-top: clamp(70px, 9vw, 120px); display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--line); }
.legacy-item { padding: 32px 26px 0 0; border-right: 1px solid var(--line); }
.legacy-item + .legacy-item { padding-left: 26px; }
.legacy-item:last-child { border-right: 0; }
.legacy-item > span { color: var(--terracotta); font: italic 1rem var(--serif); }
.legacy-item h3 { margin: 30px 0 10px; font: 2rem/1 var(--serif); }
.legacy-item p { color: #71685e; font-size: .9rem; }

.world-section { position: relative; color: var(--white); background: var(--ink-soft); overflow: hidden; }
.world-backdrop { position: absolute; top: 35px; right: -30px; color: rgba(255,255,255,.022); font: 20vw/1 var(--serif); letter-spacing: -.08em; pointer-events: none; }
.world-heading { position: relative; max-width: 730px; margin-bottom: 70px; }
.world-heading > p:last-child { max-width: 580px; color: rgba(255,255,255,.62); }
.world-grid { position: relative; display: grid; grid-template-columns: 1.15fr .85fr; grid-auto-rows: minmax(360px, 1fr); gap: 18px; }
.world-card {
  position: relative;
  min-height: 380px;
  overflow: hidden;
  background-color: #151413;
  isolation: isolate;
}
.world-card::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -2;
  background-image: var(--card-image, linear-gradient(145deg,#35302b,#151413));
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
  transition: transform .75s cubic-bezier(.2,.7,.2,1);
}
.world-card:hover::before { transform: scale(1.045); }
.world-card-overlay { position: absolute; inset: 0; z-index: -1; background: linear-gradient(0deg, rgba(14,12,10,.91), rgba(14,12,10,.05) 65%); }
.world-card-large { grid-row: span 2; }
.world-card-wide { grid-column: 1 / -1; }
.world-card-ink { background: #b34f2f; }
.world-card-ink::before { background: #b34f2f; }
.philosophy-mark { position: absolute; right: -15px; top: -50px; font: 24rem/1 var(--serif); color: rgba(255,255,255,.1); }
.world-card-content { position: absolute; inset: auto 0 0; padding: clamp(28px, 4vw, 52px); }
.world-card-content > span { position: absolute; right: 32px; top: 32px; font: italic 1rem var(--serif); color: var(--gold); }
.world-kicker { margin: 0 0 8px; font-size: .65rem; font-weight: 800; letter-spacing: .17em; text-transform: uppercase; color: var(--gold); }
.world-card h3 { margin: 0; font: 3.3rem/1 var(--serif); color: var(--white); }
.world-card-content > p:not(.world-kicker) { max-width: 420px; margin: 15px 65px 0 0; color: rgba(255,255,255,.68); font-size: .9rem; }
.circle-button {
  position: absolute;
  right: 28px;
  bottom: 28px;
  width: 54px;
  aspect-ratio: 1;
  border: 1px solid rgba(255,255,255,.35);
  border-radius: 50%;
  background: transparent;
  color: var(--white);
  cursor: pointer;
  transition: background .25s, border-color .25s, transform .25s;
}
.circle-button:hover { background: var(--white); border-color: var(--white); color: var(--ink); transform: rotate(45deg); }

.quote-section { position: relative; padding: 115px 0; background: var(--terracotta); color: var(--white); overflow: hidden; }
.quote-symbol { position: absolute; left: 4vw; top: -80px; color: rgba(255,255,255,.08); font: 24rem/1 var(--serif); }
.quote-section blockquote { position: relative; margin: 0 auto; max-width: 990px; text-align: center; }
.quote-section blockquote p { margin: 0; font: italic clamp(2.8rem, 6vw, 5.6rem)/1.08 var(--serif); }
.quote-section footer { margin-top: 26px; text-transform: uppercase; letter-spacing: .2em; font-size: .68rem; color: rgba(255,255,255,.67); }

.timeline-section { background: var(--paper); overflow: hidden; }
.timeline-layout { display: grid; grid-template-columns: minmax(690px, .92fr) minmax(0, 1.28fr); gap: clamp(50px, 8vw, 110px); }
.timeline-intro { position: relative; z-index: 2; }
.timeline-intro p:not(.eyebrow) { color: #686056; max-width: 490px; }
.timeline-controls { margin-top: 38px; display: flex; gap: 10px; }
.timeline-arrow { width: 52px; aspect-ratio: 1; border: 1px solid var(--line); background: transparent; cursor: pointer; transition: .2s; }
.timeline-arrow:hover { background: var(--ink); color: var(--white); }
.timeline-track-wrap { min-width: 0; }
.timeline-track {
  display: flex;
  gap: 18px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  padding: 5px 0 28px;
}
.timeline-track::-webkit-scrollbar { display: none; }
.timeline-card {
  flex: 0 0 min(370px, 84vw);
  min-height: 435px;
  scroll-snap-align: start;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 34px;
  background: var(--paper-light);
  border: 1px solid rgba(23,22,21,.08);
  box-shadow: 0 20px 45px rgba(37,28,21,.08);
}
.timeline-card:nth-child(even) { background: var(--ink); color: var(--white); }
.timeline-date { margin: 0 auto auto 0; color: var(--terracotta); font-size: .72rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.timeline-card:nth-child(even) .timeline-date { color: var(--gold); }
.timeline-card h3 { margin: 0 0 18px; font: 2.3rem/1.08 var(--serif); }
.timeline-card p:last-child { margin: 0; color: #71685e; font-size: .92rem; }
.timeline-card:nth-child(even) p:last-child { color: rgba(255,255,255,.62); }

.stories-section { background: var(--ink); color: var(--white); }
.stories-heading { display: grid; grid-template-columns: 1fr .7fr; align-items: end; gap: 70px; margin-bottom: 70px; }
.stories-heading > p { color: rgba(255,255,255,.6); max-width: 470px; margin-bottom: 10px; }
.story-list { border-top: 1px solid rgba(255,255,255,.16); }
.story-row { display: grid; grid-template-columns: 70px 1.15fr 1fr auto; gap: 28px; align-items: center; min-height: 185px; border-bottom: 1px solid rgba(255,255,255,.16); transition: background .25s, padding .25s; }
.story-row:hover { background: rgba(255,255,255,.035); padding-inline: 18px; }
.story-number { color: var(--gold); font: italic 1rem var(--serif); }
.story-title p { margin: 0 0 5px; color: var(--terracotta); font-size: .65rem; letter-spacing: .18em; text-transform: uppercase; font-weight: 800; }
.story-title h3 { margin: 0; font: 2rem/1.15 var(--serif); }
.story-copy { color: rgba(255,255,255,.56); font-size: .9rem; }
.story-button { border: 0; border-bottom: 1px solid rgba(255,255,255,.6); padding: 8px 0; background: transparent; color: var(--white); font-size: .68rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; cursor: pointer; white-space: nowrap; }
.story-button span { margin-left: 10px; color: var(--gold); }

.numbers-section { background: var(--paper-light); }
.numbers-grid { display: grid; grid-template-columns: 1.4fr repeat(3, .7fr); gap: 18px; align-items: stretch; }
.numbers-heading { padding-right: 30px; }
.number-card { min-height: 310px; padding: 30px; display: flex; flex-direction: column; justify-content: space-between; border: 1px solid var(--line); }
.number-card strong { color: var(--terracotta); font: 6rem/1 var(--serif); }
.number-card span { max-width: 180px; font-size: .72rem; font-weight: 800; letter-spacing: .11em; line-height: 1.5; text-transform: uppercase; }

.explore-section { position: relative; min-height: 690px; display: flex; align-items: center; color: var(--white); background: var(--ink); overflow: hidden; }
.explore-image { position: absolute; inset: 0; background: linear-gradient(90deg,rgba(16,14,12,.91),rgba(16,14,12,.4)), url('../images/delphi.jpg') center 58% / cover; }
.explore-content { position: relative; }
.explore-content { max-width: 1180px; }
.explore-content h2 { max-width: 820px; }
.explore-content p:not(.eyebrow) { color: rgba(255,255,255,.65); font-size: 1.1rem; margin: 30px 0; }

.site-footer { color: rgba(255,255,255,.7); background: #0f0e0d; }
.greek-key { height: 14px; background-color: var(--terracotta); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='14' viewBox='0 0 48 14'%3E%3Cpath d='M0 1h18v5h-8v7h5V9h8V1h7v8h8v4h5V6h-8V1h13' fill='none' stroke='%23f2eadb' stroke-width='2'/%3E%3C/svg%3E"); }
.footer-grid { display: grid; grid-template-columns: 1.3fr .7fr 1fr; gap: 70px; padding: 75px 0; }
.footer-brand { display: flex; gap: 18px; align-items: flex-start; }
.footer-brand strong { color: var(--white); letter-spacing: .2em; }
.footer-brand p { max-width: 330px; margin: 8px 0 0; font-size: .88rem; }
.footer-links { display: grid; align-content: start; gap: 10px; font-size: .78rem; text-transform: uppercase; letter-spacing: .11em; }
.footer-links a:hover, .footer-credit a:hover { color: var(--gold); }
.footer-credit { font-size: .8rem; }
.footer-credit a { text-decoration: underline; }
.footer-bottom { padding: 22px 0; border-top: 1px solid rgba(255,255,255,.1); display: flex; justify-content: space-between; font-size: .72rem; text-transform: uppercase; letter-spacing: .12em; }

.story-modal {
  width: min(720px, calc(100% - 30px));
  max-height: 85vh;
  border: 0;
  padding: 0;
  color: var(--ink);
  background: var(--paper-light);
  box-shadow: var(--shadow);
}
.story-modal::backdrop { background: rgba(12,10,9,.82); backdrop-filter: blur(7px); }
.story-modal[open] { animation: modalIn .35s ease both; }
@keyframes modalIn { from { opacity: 0; transform: translateY(25px) scale(.98); } }
.modal-inner { padding: clamp(45px, 8vw, 82px); }
.modal-close { position: absolute; top: 20px; right: 20px; width: 42px; aspect-ratio: 1; border: 1px solid var(--line); background: transparent; cursor: pointer; font-size: 1.5rem; }
.modal-kicker { margin: 0 0 10px; color: var(--terracotta); font-size: .7rem; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; }
.modal-inner h2 { margin: 0 0 26px; font: clamp(2.6rem, 7vw, 5rem)/.98 var(--serif); }
.modal-inner p { color: #5e574f; }
.modal-inner p:first-child { color: inherit; }

.reveal { opacity: 0; transform: translateY(28px); transition: opacity .8s cubic-bezier(.2,.7,.2,1), transform .8s cubic-bezier(.2,.7,.2,1); }
.reveal.is-visible { opacity: 1; transform: none; }

@media (max-width: 980px) {
  .menu-toggle { display: block; position: relative; z-index: 5; order: 3; }
  .nav-panel .nav-search-wrap { z-index: 6; order: initial; margin: 24px 0 0; }
  .nav-panel {
    position: fixed;
    inset: 0;
    z-index: 4;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    padding: 100px 34px 40px;
    background: var(--ink);
    color: var(--white);
    transform: translateX(100%);
    transition: transform .38s cubic-bezier(.2,.7,.2,1);
  }
  .nav-panel.is-open { transform: none; }
  .nav-panel > a { font: 2.5rem/1 var(--serif); text-transform: none; letter-spacing: 0; }
  .nav-dropdown { flex-wrap: wrap; }
  .nav-dropdown::after { content: none; }
  .nav-dropdown-toggle {
    gap: 12px;
    font: 2.5rem/1 var(--serif);
    letter-spacing: 0;
    text-transform: none;
  }
  .nav-dropdown-menu {
    position: static;
    flex: 0 0 100%;
    min-width: 0;
    display: none;
    margin-top: 10px;
    padding: 4px 0 4px 18px;
    color: var(--white);
    background: transparent;
    border: 0;
    border-left: 1px solid rgba(255,255,255,.28);
    box-shadow: none;
    opacity: 1;
    visibility: visible;
    transform: none;
  }
  .nav-dropdown:hover .nav-dropdown-menu,
  .nav-dropdown:focus-within .nav-dropdown-menu { display: none; }
  .nav-dropdown.is-open .nav-dropdown-menu { display: block; }
  .nav-dropdown-menu a {
    padding: 10px 14px;
    font: 1.35rem/1.2 var(--serif);
    letter-spacing: 0;
    text-transform: none;
  }
  .nav-search {
    margin: 24px 0 0;
    width: min(100%, 460px);
  }
  .nav-search input {
    width: 100%;
    min-height: 52px;
    font-size: .82rem;
    letter-spacing: .1em;
  }
  .nav-cta { margin-top: 25px; font: .75rem var(--sans) !important; letter-spacing: .12em !important; text-transform: uppercase !important; }
  .menu-toggle.is-open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
  .menu-toggle.is-open span:nth-child(2) { opacity: 0; }
  .menu-toggle.is-open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
  .hero-stat, .scroll-cue { display: none; }
  .intro-grid, .timeline-layout, .stories-heading { grid-template-columns: 1fr; }
  .legacy-strip { grid-template-columns: repeat(2, 1fr); }
  .legacy-item { border-bottom: 1px solid var(--line); padding-bottom: 28px; }
  .legacy-item:nth-child(2) { border-right: 0; }
  .world-grid { max-height: none; grid-template-columns: 1fr 1fr; grid-auto-rows: minmax(420px, 55vw); }
  .world-card-large { grid-row: auto; }
  .world-card-wide { grid-column: auto; }
  .timeline-intro { max-width: 700px; }
  .story-row { grid-template-columns: 50px 1.3fr .9fr; }
  .story-button { grid-column: 2; justify-self: start; margin-bottom: 26px; }
  .numbers-grid { grid-template-columns: repeat(3, 1fr); }
  .numbers-heading { grid-column: 1 / -1; margin-bottom: 40px; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .footer-credit { grid-column: 1 / -1; }
}

@media (max-width: 680px) {
  :root { --container: min(100% - 28px, 1180px); }
  .navbar { min-height: 74px; }
  
  .brand-copy small { display: none; }
  .hero-content { padding-top: 60px; }
  .hero h1 { font-size: clamp(3.7rem, 17vw, 5.8rem); }
  .hero-image { background-position: 60% center; }
  .button { width: 100%; }
  .intro-grid { gap: 30px; }
  .legacy-strip { grid-template-columns: 1fr; }
  .legacy-item, .legacy-item + .legacy-item { border-right: 0; padding-left: 0; }
  .world-grid { grid-template-columns: 1fr; grid-auto-rows: minmax(450px, 120vw); }
  .world-card-content > p:not(.world-kicker) { margin-right: 50px; }
  .quote-section { padding: 90px 0; }
  .story-row { grid-template-columns: 34px 1fr; gap: 16px; padding: 30px 0; }
  .story-copy, .story-button { grid-column: 2; }
  .story-button { margin-bottom: 0; }
  .numbers-grid { grid-template-columns: 1fr; }
  .numbers-heading { grid-column: auto; }
  .number-card { min-height: 230px; }
  .footer-grid { grid-template-columns: 1fr; gap: 38px; }
  .footer-credit { grid-column: auto; }
  .footer-bottom { flex-direction: column; gap: 8px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .reveal { opacity: 1; transform: none; }
}


/* ===== Multi-page collection ===== */
.inner-page .site-header:not(.scrolled) { color: var(--white); }
.inner-page .navbar,.home-page .navbar { min-height:82px; }
.inner-page .nav-panel,.home-page .nav-panel { gap:clamp(13px,1.5vw,23px); }
.inner-page .nav-panel > a,.home-page .nav-panel > a,
.inner-page .nav-dropdown-toggle,.home-page .nav-dropdown-toggle { font-size:.69rem; }

/* Related ancient worlds navigation */
.page-header {
  position: relative;
  padding: 5px max(5px, calc((100% - 1180px) / 2));
  color: var(--paper-light);
  background:
    linear-gradient(90deg, rgba(216,170,88,.12), transparent 28%, transparent 72%, rgba(216,170,88,.12)),
    var(--ink-soft);
  border-block: 1px solid rgba(216,170,88,.32);
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}
.page-header::before,
.page-header::after {
  content: "";
  position: absolute;
  top: 50%;
  width: clamp(24px, 5vw, 72px);
  height: 1px;
  background: var(--gold);
  opacity: .55;
}
.page-header::before { left: 20px; }
.page-header::after { right: 20px; }
.nav-placeholder {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 5px;
}
.nav-placeholder-title {
  margin: 0;
  color: var(--gold);
  font-size: 14px;
  font-weight: 300;
  letter-spacing: .14em;
  line-height: 1.4;
  text-align: center;
  text-transform: uppercase;
  white-space: nowrap;
}
.nav-placeholder ul {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 8px clamp(26px, 5vw, 72px);
  margin: 0;
  padding: 0;
  list-style: none;
}
.nav-placeholder li + li { position: relative; }
.nav-placeholder li + li::before {
  content: "\00B7";
  position: absolute;
  top: 50%;
  left: calc(clamp(26px, 5vw, 72px) / -2);
  color: var(--gold);
  font-size: 1.15rem;
  transform: translate(-50%, -52%);
}
.nav-placeholder a {
  position: relative;
  display: inline-block;
  padding: 8px 2px;
  font-family: var(--serif);
  font-size: clamp(.9rem, 1.4vw, 1.05rem);
  font-weight: 300;
  letter-spacing: .1em;
  text-transform: uppercase;
  transition: color .2s ease;
}
.nav-placeholder a::after {
  content: "";
  position: absolute;
  right: 50%;
  bottom: 3px;
  left: 50%;
  height: 1px;
  background: var(--gold);
  transition: right .25s ease, left .25s ease;
}
.nav-placeholder a:hover,
.nav-placeholder a:focus-visible { color: var(--gold); }
.nav-placeholder a:hover::after,
.nav-placeholder a:focus-visible::after { right: 0; left: 0; }
.nav-placeholder a:focus-visible { outline: 1px solid var(--gold); outline-offset: 5px; }

.page-hero { position:relative; min-height:760px; display:flex; align-items:center; color:var(--white); background:#171615; overflow:hidden; isolation:isolate; }
.page-hero::before { content:""; position:absolute; inset:0; z-index:-2; background-size:cover; background-position:center; transform:scale(1.035); animation:heroZoom 12s ease-out both; }
.page-hero::after { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg,rgba(13,12,11,.94),rgba(13,12,11,.62) 54%,rgba(13,12,11,.28)),linear-gradient(0deg,rgba(13,12,11,.48),transparent 50%); }
.page-hero-world::before { background-image:url('../images/hero-parthenon.jpg'); background-position:center 44%; }
.page-hero-timeline::before { background-image:url('../images/delphi.jpg'); }
.page-hero-stories::before { background-image:url('../images/pottery.jpg'); background-position:center 46%; }
.page-hero-gods::before { background-image:url('../images/delphi.jpg'); }
.page-hero-philosophers::before { background-image:url('../images/hero-parthenon.jpg'); }
.page-hero-heroes::before { background-image:url('../images/discobolus.jpg'); background-position:center 26%; }
.page-hero-heracles::before { background-image:url('../../images/heroes/herculese1.jpg'); background-position:center 24%; }
.page-hero-mythical-figures::before { background-image:url('../../images/Minotaur.jpg'); background-position:center 36%; }
.page-hero-articles::before { background-image:url('../images/pottery.jpg'); }
.page-hero-literature::before { background-image:url('../images/pottery.jpg'); background-position:center 45%; }
.page-hero-artwork::before { background-image:url('../../images/art/Athena_Herakles_Staatliche_Antikensammlungen_2301_B_full.jpg'); background-position:center 42%; }
.page-hero-warfare::before { background-image:url('../../images/heroes/Achilles.jpg'); background-position:center 34%; }
.page-hero-mythology::before { background-image:url('../images/delphi.jpg'); background-position:center 44%; }
.page-hero-democracy::before { background-image:url('../images/hero-parthenon.jpg'); background-position:center 42%; }
.page-hero-olympics::before { background-image:url('../images/discobolus.jpg'); background-position:center 27%; }
.page-hero-content { position:relative; z-index:2; padding-top:90px; }
.page-hero h1 { margin:0; max-width:970px; font:400 clamp(4.5rem,10vw,9rem)/.9 var(--serif); letter-spacing:-.055em; }
.page-hero-content > p:last-child { max-width:650px; margin:34px 0 0; color:rgba(255,255,255,.72); font-size:1.08rem; }
.page-hero-art { position:absolute; right:-2vw; bottom:-10%; z-index:1; color:rgba(255,255,255,.045); font:22vw/.8 var(--serif); white-space:nowrap; }
.page-scroll { position:absolute; z-index:3; right:5vw; bottom:42px; border-bottom:1px solid rgba(255,255,255,.55); padding-bottom:7px; font-size:.67rem; font-weight:800; letter-spacing:.15em; text-transform:uppercase; }
.split-heading { display:grid; grid-template-columns:1.05fr .75fr; gap:clamp(50px,9vw,130px); align-items:end; margin-bottom:80px; }
.split-heading h2,.gallery-toolbar h2,.articles-toolbar h2,.chronology-intro h2 { margin:0; font:400 clamp(3rem,6vw,6rem)/.96 var(--serif); letter-spacing:-.045em; }
.split-heading > p,.chronology-intro > p:last-child { color:#655d54; font-size:1.03rem; }
.dark-section { color:var(--white); background:var(--ink); }
.dark-section .section-heading { max-width:800px; margin-bottom:60px; }
.dark-section .section-heading h2 { font-size:clamp(3rem,6vw,6rem); }
.page-cta { padding:clamp(100px,13vw,170px) 0; color:var(--white); background:var(--terracotta); text-align:center; }
.page-cta h2 { max-width:900px; margin:0 auto 35px; font:400 clamp(3rem,6vw,6rem)/.97 var(--serif); }
.page-cta .button-ghost { border-color:rgba(255,255,255,.65); }
.button-row { display:flex; flex-wrap:wrap; justify-content:center; gap:12px; }

/* Greek world */
.atlas-section { background:var(--paper-light); }
.atlas-grid { display:grid; grid-template-columns:1.35fr .65fr; gap:28px; align-items:stretch; }
.atlas-map { position:relative; min-height:640px; overflow:hidden; background:radial-gradient(circle at 62% 45%,rgba(216,170,88,.14),transparent 36%),linear-gradient(145deg,#23333a,#182226); border:1px solid rgba(255,255,255,.08); box-shadow:var(--shadow); }
.atlas-map::before { content:""; position:absolute; inset:8% 12%; opacity:.78; filter:drop-shadow(0 18px 28px rgba(0,0,0,.4)); background:#cdbd9e; clip-path:polygon(12% 18%,27% 9%,37% 21%,51% 14%,59% 28%,70% 21%,84% 34%,73% 45%,90% 55%,73% 68%,60% 63%,51% 83%,36% 72%,23% 85%,10% 67%,19% 52%,4% 39%); }
.atlas-map::after { content:""; position:absolute; inset:0; opacity:.21; background-image:radial-gradient(circle at center,transparent 0 2px,rgba(255,255,255,.2) 3px,transparent 4px); background-size:27px 27px; }
.map-sea { position:absolute; z-index:2; right:8%; top:12%; color:rgba(255,255,255,.16); font:italic 1.4rem/1.5 var(--serif); letter-spacing:.22em; text-align:center; }
.atlas-map button { position:absolute; z-index:3; left:var(--x); top:var(--y); width:22px; height:22px; padding:0; border:3px solid var(--gold); border-radius:50%; background:var(--terracotta); cursor:pointer; transform:translate(-50%,-50%); box-shadow:0 0 0 8px rgba(216,170,88,.15); transition:width .2s,height .2s,background .2s,box-shadow .2s; }
.atlas-map button span { position:absolute; left:24px; top:-5px; color:var(--white); font-size:.68rem; font-weight:800; letter-spacing:.09em; text-transform:uppercase; white-space:nowrap; text-shadow:0 1px 5px rgba(0,0,0,.75); }
.atlas-map button:hover { box-shadow:0 0 0 11px rgba(216,170,88,.2); }
.atlas-map button:focus-visible { outline:2px solid var(--white); outline-offset:7px; }
.atlas-map button.active { width:28px; height:28px; background:var(--white); box-shadow:0 0 0 10px rgba(216,170,88,.28); }
.place-panel { padding:clamp(35px,5vw,65px); background:var(--paper); border:1px solid var(--line); display:flex; flex-direction:column; justify-content:center; }
.place-panel.is-changing { animation:placePanelIn .35s ease both; }
@keyframes placePanelIn { from { opacity:.62; transform:translateY(7px); } }
.place-panel h3 { margin:0 0 24px; font:400 clamp(3rem,5vw,5rem)/1 var(--serif); }
.place-panel > p:not(.eyebrow) { color:#665d54; }
.place-panel dl { margin:40px 0 0; border-top:1px solid var(--line); }
.place-panel dl div { display:grid; grid-template-columns:90px 1fr; gap:15px; padding:16px 0; border-bottom:1px solid var(--line); }
.place-panel dt { color:var(--terracotta); font-size:.68rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.place-panel dd { margin:0; font-size:.85rem; }
.atlas-directory { grid-column:1/-1; padding:clamp(35px,5vw,60px); background:var(--paper); border:1px solid var(--line); }
.atlas-directory-heading { display:grid; grid-template-columns:.8fr 1.2fr; gap:45px; align-items:end; margin-bottom:35px; }
.atlas-directory-heading h3 { margin:0; font:400 clamp(2.8rem,5vw,4.8rem)/1 var(--serif); }
.atlas-directory-heading > p { max-width:650px; margin:0; color:#665d54; }
.atlas-place-list { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); border-top:1px solid var(--line); border-left:1px solid var(--line); }
.atlas-place-list button { min-width:0; display:grid; gap:5px; padding:17px 18px; border:0; border-right:1px solid var(--line); border-bottom:1px solid var(--line); color:var(--ink); background:transparent; cursor:pointer; text-align:left; transition:background .2s,color .2s; }
.atlas-place-list button:hover,.atlas-place-list button.active { color:var(--white); background:var(--terracotta); }
.atlas-place-list strong { overflow:hidden; font:1.15rem/1.1 var(--serif); text-overflow:ellipsis; }
.atlas-place-list span { overflow:hidden; color:#81776c; font-size:.57rem; font-weight:800; letter-spacing:.1em; text-overflow:ellipsis; text-transform:uppercase; white-space:nowrap; }
.atlas-place-list button:hover span,.atlas-place-list button.active span { color:rgba(255,255,255,.72); }
.feature-grid { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid rgba(255,255,255,.15); }
.feature-card { min-height:330px; padding:38px 32px; border-right:1px solid rgba(255,255,255,.15); border-bottom:1px solid rgba(255,255,255,.15); }
.feature-card:nth-child(3n) { border-right:0; }
.feature-card span { color:var(--gold); font:italic 1rem var(--serif); }
.feature-card h3 { margin:90px 0 15px; font:2.25rem/1 var(--serif); }
.feature-card p { color:rgba(255,255,255,.58); font-size:.9rem; }
.city-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
.city-card { min-height:390px; padding:35px; background:var(--paper); border:1px solid var(--line); display:flex; flex-direction:column; transition:transform .3s,background .3s,color .3s; }
.city-card:hover { transform:translateY(-8px); background:var(--ink); color:var(--white); }
.city-card b { color:var(--terracotta); font:8rem/.8 var(--serif); opacity:.17; }
.city-card p { margin:auto 0 2px; color:var(--terracotta); font-size:.67rem; font-weight:800; letter-spacing:.15em; text-transform:uppercase; }
.city-card h3 { margin:0 0 12px; font:2.6rem/1 var(--serif); }
.city-card span { font-size:.77rem; letter-spacing:.07em; }

/* Timeline */
.chronology-section { background:var(--paper-light); }
.chronology-intro { max-width:900px; margin:0 auto 100px; text-align:center; }
.chronology-intro > p:last-child { max-width:680px; margin:28px auto 0; }
.chronology { position:relative; }
.chronology::before { content:""; position:absolute; left:31%; top:0; bottom:0; width:1px; background:var(--line); }
.chronology-item { display:grid; grid-template-columns:30% 2% 68%; min-height:270px; }
.chronology-date { padding:32px 45px 0 0; color:var(--terracotta); font:italic 1.35rem var(--serif); text-align:right; }
.chronology-dot { position:relative; }
.chronology-dot::before { content:""; position:absolute; top:41px; left:50%; width:13px; aspect-ratio:1; border:4px solid var(--paper-light); border-radius:50%; background:var(--terracotta); transform:translateX(-50%); box-shadow:0 0 0 1px var(--terracotta); }
.chronology-card { margin:0 0 28px 42px; padding:30px 35px; background:var(--paper); border:1px solid var(--line); transition:background .3s,color .3s,transform .3s; }
.chronology-item:nth-child(even) .chronology-card { background:var(--ink); color:var(--white); }
.chronology-card:hover { transform:translateX(8px); }
.chronology-card > p:first-child { margin:0 0 30px; color:var(--gold); font:italic 1rem var(--serif); }
.chronology-card h3 { margin:0 0 14px; font:2.25rem/1 var(--serif); }
.chronology-card > p:last-child { margin:0; color:#665d54; }
.chronology-item:nth-child(even) .chronology-card > p:last-child { color:rgba(255,255,255,.6); }
.timeline-band { padding:95px 0; color:var(--white); background:var(--terracotta); overflow:hidden; }
.timeline-band .container { display:grid; grid-template-columns:.7fr 1.3fr; gap:60px; align-items:center; }
.timeline-band .container > span { color:rgba(255,255,255,.12); font:9rem/1 var(--serif); }
.timeline-band h2 { margin:0; font:3.2rem/1.05 var(--serif); }

/* Stories */
.story-library { background:var(--paper-light); }
.story-chapters { border-top:1px solid var(--line); }
.story-chapter { position:relative; display:grid; grid-template-columns:.62fr 1.38fr; min-height:460px; border-bottom:1px solid var(--line); overflow:hidden; }
.story-glyph { display:grid; place-items:center; padding:35px; color:rgba(169,75,44,.17); background:var(--paper); font:clamp(4rem,9vw,8.5rem)/1 var(--serif); writing-mode:vertical-rl; }
.story-chapter-copy { padding:clamp(45px,7vw,85px); }
.story-chapter-copy > p:first-child { margin:0 0 15px; color:var(--terracotta); font-size:.68rem; font-weight:800; letter-spacing:.17em; text-transform:uppercase; }
.story-chapter h2 { margin:0; font:400 clamp(3rem,5vw,5rem)/.98 var(--serif); }
.story-chapter-copy > p:nth-of-type(2) { max-width:670px; color:#655d54; }
.story-expand { margin-top:18px; padding:10px 0; border:0; border-bottom:1px solid var(--ink); background:transparent; cursor:pointer; font-size:.7rem; font-weight:800; letter-spacing:.13em; text-transform:uppercase; }
.story-expand span { margin-left:15px; color:var(--terracotta); }
.story-passage { display:grid; grid-template-rows:0fr; transition:grid-template-rows .4s ease; }
.story-passage > p { overflow:hidden; margin:0; color:#4d473f; font:1.18rem/1.65 var(--serif); }
.story-passage a { display:inline-flex; align-items:center; gap:8px; margin-left:8px; color:var(--terracotta); font:800 .68rem/1 var(--sans); letter-spacing:.12em; text-transform:uppercase; text-decoration:none; }
.story-passage a:hover { color:var(--ink); }
.story-chapter.open .story-passage { grid-template-rows:1fr; margin-top:28px; }
.story-chapter.open .story-expand span { display:inline-block; transform:rotate(45deg); }

/* Galleries */
.gallery-section { background:var(--paper-light); }
.gallery-toolbar { display:flex; justify-content:space-between; align-items:end; gap:40px; margin-bottom:55px; }
.gallery-toolbar h2 { font-size:clamp(3rem,5vw,5rem); }
.gallery-filters { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:8px; }
.gallery-filters button { border:1px solid var(--line); padding:10px 14px; background:transparent; cursor:pointer; font-size:.66rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.gallery-filters button:hover,.gallery-filters button.active { color:var(--white); background:var(--ink); border-color:var(--ink); }
.portrait-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.portrait-card { background:var(--paper); border:1px solid var(--line); overflow:hidden; transition:transform .35s,box-shadow .35s; }
.portrait-card:hover { transform:translateY(-8px); box-shadow:var(--shadow); }
.portrait-card[hidden] { display:none; }
.portrait-image { position:relative; display:block; overflow:hidden; aspect-ratio:4/5; background:var(--ink); }
.portrait-image img { width:100%; height:100%; object-fit:cover; transition:transform .7s; }
.portrait-card:hover .portrait-image img { transform:scale(1.035); }
.portrait-image > span { position:absolute; top:20px; right:20px; padding:7px 10px; color:var(--gold); background:rgba(17,15,14,.74); backdrop-filter:blur(8px); font:.66rem var(--serif); letter-spacing:.1em; }
.portrait-copy { padding:30px; }
.portrait-copy > p:first-child { margin:0 0 8px; color:var(--terracotta); font-size:.65rem; font-weight:800; letter-spacing:.13em; text-transform:uppercase; }
.portrait-copy h2 { margin:0 0 15px; font:2.5rem/1 var(--serif); }
.portrait-copy > p:nth-of-type(2) { color:#655d54; font-size:.9rem; }
.portrait-more { padding:8px 0; border:0; border-bottom:1px solid var(--ink); background:transparent; cursor:pointer; font-size:.67rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.portrait-more span { color:var(--terracotta); margin-left:10px; }
.portrait-detail { display:grid; grid-template-rows:0fr; visibility:hidden; transition:grid-template-rows .35s, visibility 0s .35s; }
.portrait-detail-inner { overflow:hidden; }
.portrait-detail > p { overflow:hidden; }
.portrait-detail p { margin:0; color:#655d54; font-size:.86rem; }
.portrait-detail .portrait-credit { margin-top:14px; padding-top:12px; border-top:1px solid var(--line); font-size:.7rem; line-height:1.55; }
.portrait-card.open .portrait-detail { grid-template-rows:1fr; margin-top:22px; visibility:visible; transition-delay:0s; }
.portrait-article-link { display:inline-flex; align-items:center; gap:10px; margin-top:18px; padding-bottom:6px; border-bottom:1px solid var(--ink); font-size:.67rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.portrait-article-link span { color:var(--terracotta); }
.empty-state { padding:80px 0; text-align:center; }
.mythical-collection-count { margin:0 0 8px; color:#766d63; font:italic 1rem var(--serif); }
.mythical-gallery-message { min-height:220px; display:grid; place-items:center; border:1px solid var(--line); background:var(--paper); color:#655d54; text-align:center; }

/* Heracles */
.heracles-introduction { background:var(--paper-light); }
.heracles-gallery-section { color:var(--white); background:var(--ink); }
.heracles-gallery-section .gallery-toolbar { align-items:end; }
.heracles-gallery-section .gallery-toolbar h2 { color:var(--white); }
.heracles-gallery-note { max-width:260px; margin:0 0 8px; color:rgba(255,255,255,.55); font:italic 1rem/1.5 var(--serif); text-align:right; }
.heracles-database-notice { display:flex; gap:14px; margin-bottom:28px; padding:15px 18px; border:1px solid rgba(216,170,88,.35); color:rgba(255,255,255,.7); font-size:.78rem; }
.heracles-database-notice strong { flex:0 0 auto; color:var(--gold); text-transform:uppercase; letter-spacing:.1em; }
.heracles-gallery-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.heracles-gallery-card { min-width:0; background:#211f1c; border:1px solid rgba(255,255,255,.12); }
.heracles-gallery-image { position:relative; width:100%; aspect-ratio:16/10; display:block; overflow:hidden; padding:0; border:0; background:#111; cursor:zoom-in; }
.heracles-gallery-image::after { content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(12,10,9,.7),transparent 55%); pointer-events:none; }
.heracles-gallery-image img { width:100%; height:100%; display:block; object-fit:cover; filter:saturate(.72) contrast(1.05); transition:transform .65s ease,filter .35s ease; }
.heracles-gallery-image:hover img,.heracles-gallery-image:focus-visible img { transform:scale(1.045); filter:saturate(.95) contrast(1.03); }
.heracles-gallery-image > span { position:absolute; right:20px; bottom:17px; z-index:1; color:var(--white); font-size:.63rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.heracles-gallery-copy { padding:clamp(25px,4vw,40px); }
.heracles-gallery-copy > p:first-child { margin:0 0 10px; color:var(--gold); font-size:.64rem; font-weight:800; letter-spacing:.14em; text-transform:uppercase; }
.heracles-gallery-copy h3 { margin:0 0 16px; font:400 clamp(2rem,3.5vw,3.6rem)/.98 var(--serif); }
.heracles-gallery-copy > p:nth-of-type(2) { color:rgba(255,255,255,.58); }
.heracles-gallery-copy a { display:inline-flex; gap:10px; margin-top:12px; padding-bottom:6px; border-bottom:1px solid rgba(255,255,255,.45); font-size:.65rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.heracles-gallery-copy a span { color:var(--gold); }
.heracles-lightbox { width:min(1000px,calc(100% - 32px)); max-height:92vh; padding:0; border:0; color:var(--white); background:#111; box-shadow:0 30px 90px rgba(0,0,0,.6); }
.heracles-lightbox::backdrop { background:rgba(8,7,6,.9); backdrop-filter:blur(8px); }
.heracles-lightbox[open] { display:grid; grid-template-rows:minmax(0,1fr) auto; }
.heracles-lightbox img { width:100%; max-height:78vh; object-fit:contain; background:#0b0a09; }
.heracles-lightbox p { margin:0; padding:18px 60px 20px 22px; color:rgba(255,255,255,.72); font:1rem var(--serif); }
.heracles-lightbox-close { position:absolute; top:12px; right:12px; z-index:2; width:44px; height:44px; border:1px solid rgba(255,255,255,.4); color:var(--white); background:rgba(10,9,8,.75); cursor:pointer; font-size:1.55rem; }
.heracles-article-body > h1:first-child { display:none; }
.heracles-article-body > h2:first-of-type { margin-top:0; }

/* God articles */
.god-article-hero { min-height:760px; padding:145px 0 85px; color:var(--white); background:var(--ink); overflow:hidden; }
.god-article-hero-grid { display:grid; grid-template-columns:1.05fr .65fr; gap:clamp(55px,9vw,130px); align-items:center; }
.god-article-heading { position:relative; z-index:1; }
.god-back-link { display:inline-block; margin-bottom:70px; padding-bottom:6px; border-bottom:1px solid rgba(255,255,255,.4); color:rgba(255,255,255,.7); font-size:.67rem; font-weight:800; letter-spacing:.13em; text-transform:uppercase; }
.god-article-heading h1 { margin:0; font:400 clamp(5rem,11vw,10rem)/.85 var(--serif); letter-spacing:-.055em; }
.god-article-heading > p:not(.eyebrow) { max-width:680px; margin:32px 0 0; color:rgba(255,255,255,.68); font:1.18rem/1.7 var(--serif); }
.god-read-link { display:inline-block; margin-top:38px; padding-bottom:7px; border-bottom:1px solid var(--gold); color:var(--gold); font-size:.67rem; font-weight:800; letter-spacing:.14em; text-transform:uppercase; }
.god-article-portrait { position:relative; margin:0; min-width:0; }
.god-article-portrait::before { content:""; position:absolute; inset:22px -22px -22px 22px; border:1px solid rgba(216,170,88,.42); }
.god-article-portrait img { position:relative; width:100%; max-height:590px; aspect-ratio:4/5; object-fit:cover; filter:saturate(.72) contrast(1.05); }
.god-profile-page .god-article-portrait { width:100%; aspect-ratio:4/5; }
.god-profile-page .god-article-portrait img { display:block; width:100%; height:100%; max-height:none; aspect-ratio:auto; object-fit:cover; object-position:center; }
.god-article-portrait figcaption { position:absolute; right:-8px; bottom:24px; padding:10px 15px; color:var(--gold); background:rgba(23,22,21,.9); font:1rem var(--serif); letter-spacing:.15em; }
.god-article-content { padding:clamp(90px,11vw,155px) 0; background:var(--paper-light); }
.god-article-layout { display:grid; grid-template-columns:minmax(230px,.48fr) minmax(0,1.25fr); gap:clamp(55px,9vw,130px); align-items:start; }
.god-article-facts { position:sticky; top:125px; padding:30px; background:var(--paper); border:1px solid var(--line); }
.god-article-facts dl { margin:24px 0 0; }
.god-article-facts dl div { padding:15px 0; border-top:1px solid var(--line); }
.god-article-facts dt { margin-bottom:4px; color:var(--terracotta); font-size:.62rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.god-article-facts dd { margin:0; color:#554e46; font:1.05rem/1.45 var(--serif); }
.god-article-prose { max-width:790px; }
.god-article-section + .god-article-section { margin-top:70px; padding-top:65px; border-top:1px solid var(--line); }
.god-article-section h2 { margin:0 0 24px; font:400 clamp(2.5rem,4.5vw,4.4rem)/1 var(--serif); letter-spacing:-.035em; }
.god-article-section p { margin:0; color:#4e4841; font:1.18rem/1.9 var(--serif); }
.god-article-section:first-child p::first-letter { float:left; margin:9px 10px 0 0; color:var(--terracotta); font:5.4rem/.72 var(--serif); }
.god-article-prose--database > h1:first-child { display:none; }
.god-article-prose--database > h1:first-child + p { margin:0 0 48px; color:var(--terracotta); font:italic 1.25rem/1.7 var(--serif) !important; }
.god-article-prose--database h2 { margin:70px 0 24px; padding-top:65px; border-top:1px solid var(--line); font:400 clamp(2.5rem,4.5vw,4.4rem)/1 var(--serif); letter-spacing:-.035em; }
.god-article-prose--database h3 { margin:46px 0 18px; color:var(--ink); font:400 clamp(1.65rem,3vw,2.35rem)/1.15 var(--serif); letter-spacing:-.02em; }
.god-article-prose--database h4 { margin:36px 0 14px; color:var(--terracotta); font:700 .72rem/1.4 var(--sans); letter-spacing:.12em; text-transform:uppercase; }
.god-article-prose--database p { margin:0 0 28px; color:#4e4841; font:1.18rem/1.9 var(--serif); }
.god-article-prose--database ul,
.god-article-prose--database ol { margin:8px 0 38px; padding-left:1.4rem; color:#4e4841; font:1.08rem/1.75 var(--serif); }
.god-article-prose--database li { margin:10px 0; padding-left:8px; }
.god-article-prose--database li::marker { color:var(--terracotta); }
.god-article-prose--database strong { color:var(--ink); }
.god-article-prose--database a { color:var(--terracotta); text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:4px; }
.god-article-prose--database blockquote { margin:45px 0; padding:8px 0 8px 28px; border-left:2px solid var(--gold); color:#554e46; font:italic 1.3rem/1.7 var(--serif); }
.god-article-prose--database table { width:100%; margin:40px 0; border-collapse:collapse; color:#4e4841; font:1rem/1.55 var(--serif); }
.god-article-prose--database th,
.god-article-prose--database td { padding:14px; border:1px solid var(--line); text-align:left; vertical-align:top; }
.god-article-prose--database th { color:var(--ink); background:var(--paper); }
.god-article-prose--database > :last-child { margin-bottom:0; }
.god-article-pagination { padding:70px 0; color:var(--white); background:var(--terracotta); }
.god-article-pagination .container { display:grid; grid-template-columns:1fr 1fr; gap:30px; }
.god-article-pagination a { display:grid; gap:7px; padding:25px 0; border-top:1px solid rgba(255,255,255,.38); }
.god-article-pagination a:last-child { text-align:right; }
.god-article-pagination span { font-size:.64rem; font-weight:800; letter-spacing:.14em; text-transform:uppercase; }
.god-article-pagination strong { font:400 clamp(2.2rem,4vw,4rem)/1 var(--serif); }
/* Literature, art and warfare */
.culture-intro { background:var(--paper-light); }
.culture-intro-grid { display:grid; grid-template-columns:1.05fr .8fr; gap:clamp(55px,9vw,130px); align-items:start; }
.culture-intro h2,.culture-section-heading h2,.warfare-feature-copy h2 { margin:0; font:400 clamp(3.2rem,6vw,6rem)/.96 var(--serif); letter-spacing:-.045em; }
.culture-intro h2 em { color:var(--terracotta); }
.culture-lead { padding-top:35px; }
.culture-lead p { margin:0; color:#5d554d; font:1.12rem/1.8 var(--serif); }
.culture-lead p + p { margin-top:24px; }
.culture-card-grid { display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid rgba(255,255,255,.17); }
.culture-card { min-height:360px; padding:35px 30px; border-right:1px solid rgba(255,255,255,.17); border-bottom:1px solid rgba(255,255,255,.17); }
.culture-card:last-child { border-right:0; }
.culture-card > span { color:var(--gold); font:italic 1rem var(--serif); }
.culture-card h3 { margin:80px 0 18px; font:2.6rem/1 var(--serif); }
.culture-card p { color:rgba(255,255,255,.62); font-size:.9rem; }
.culture-card b { display:block; margin-top:28px; color:var(--gold); font-size:.62rem; letter-spacing:.12em; text-transform:uppercase; }
.creator-section,.period-section,.campaign-section { background:var(--paper-light); }
.culture-section-heading { display:grid; grid-template-columns:1fr .8fr; gap:20px 70px; align-items:end; margin-bottom:70px; }
.culture-section-heading .eyebrow { grid-column:1/-1; margin-bottom:0; }
.culture-section-heading > p:last-child { color:#655d54; }
.creator-list { border-top:1px solid var(--line); }
.creator-row { display:grid; grid-template-columns:70px .7fr 1fr; gap:30px; align-items:center; min-height:175px; border-bottom:1px solid var(--line); }
.creator-row > span { color:var(--terracotta); font:italic 1rem var(--serif); }
.creator-row div p { margin:0 0 5px; color:var(--terracotta); font-size:.62rem; font-weight:800; letter-spacing:.13em; text-transform:uppercase; }
.creator-row h3 { margin:0; font:2.8rem/1 var(--serif); }
.creator-row > p { color:#5f574f; }
.culture-quote { padding:clamp(100px,13vw,175px) 0; color:var(--white); background:var(--ink); text-align:center; }
.culture-quote blockquote { max-width:1000px; margin:20px auto 25px; font:italic clamp(3.2rem,7vw,7rem)/1 var(--serif); letter-spacing:-.04em; }
.culture-quote span { color:var(--gold); font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; }
.art-gallery-section { padding:0 18px 18px; background:var(--paper-light); }
.art-gallery { display:grid; grid-template-columns:1.1fr .9fr .9fr; grid-auto-rows:minmax(340px,40vw); gap:18px; max-width:1500px; margin:auto; }
.art-piece { position:relative; margin:0; overflow:hidden; background:var(--ink); }
.art-piece-tall { grid-row:span 2; }
.art-piece-wide { grid-column:span 2; }
.art-piece img { width:100%; height:100%; object-fit:cover; filter:saturate(.78) contrast(1.03); transition:transform .7s; }
.art-piece:hover img { transform:scale(1.04); }
.art-piece::after { content:""; position:absolute; inset:40% 0 0; background:linear-gradient(transparent,rgba(14,12,10,.9)); pointer-events:none; }
.art-piece figcaption { position:absolute; z-index:1; right:0; bottom:0; left:0; padding:30px; color:var(--white); }
.art-piece figcaption span { display:block; margin-bottom:7px; color:var(--gold); font-size:.62rem; font-weight:800; letter-spacing:.13em; text-transform:uppercase; }
.art-piece figcaption strong { font:2rem/1 var(--serif); }
.period-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.period-card { min-height:360px; padding:35px; background:var(--paper); border:1px solid var(--line); }
.period-card span { color:var(--terracotta); font-size:.64rem; font-weight:800; letter-spacing:.13em; text-transform:uppercase; }
.period-card h3 { margin:95px 0 18px; font:3.2rem/1 var(--serif); }
.period-card p { color:#625a51; }
.warfare-feature { display:grid; grid-template-columns:1.12fr .88fr; min-height:700px; background:var(--paper); }
.warfare-feature-image { min-height:600px; }
.warfare-feature-image img { width:100%; height:100%; object-fit:cover; object-position:center 22%; filter:saturate(.7) contrast(1.04); }
.warfare-feature-copy { display:flex; flex-direction:column; justify-content:center; padding:clamp(45px,7vw,105px); }
.warfare-feature-copy > p:not(.eyebrow) { color:#5d554d; }
.warfare-feature-copy dl { margin:40px 0 0; border-top:1px solid var(--line); }
.warfare-feature-copy dl div { display:grid; grid-template-columns:100px 1fr; gap:20px; padding:14px 0; border-bottom:1px solid var(--line); }
.warfare-feature-copy dt { color:var(--terracotta); font-size:.63rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.warfare-feature-copy dd { margin:0; font:1.1rem var(--serif); }
.campaign-list { border-top:1px solid var(--line); }
.campaign-row { display:grid; grid-template-columns:190px 1fr; min-height:220px; border-bottom:1px solid var(--line); }
.campaign-row time { padding:42px 35px 30px 0; color:var(--terracotta); font:italic 1.3rem var(--serif); }
.campaign-row div { padding:38px 0 35px 50px; border-left:1px solid var(--line); }
.campaign-row div p { margin:0 0 8px; color:var(--terracotta); font-size:.62rem; font-weight:800; letter-spacing:.13em; text-transform:uppercase; }
.campaign-row h3 { margin:0 0 15px; font:2.8rem/1 var(--serif); }
.campaign-row span { color:#625a51; }
.warfare-detail-link { display:inline-flex; align-items:center; gap:10px; width:max-content; margin-top:22px; padding-bottom:6px; border-bottom:1px solid currentColor; color:var(--terracotta); font-size:.65rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.warfare-detail-link span { color:inherit; transition:transform .25s; }
.warfare-detail-link:hover span { transform:translateX(4px); }
.culture-card .warfare-detail-link { margin-top:25px; color:var(--gold); }
.campaign-row .warfare-detail-link { display:flex; color:var(--terracotta); }
.warfare-detail-page .god-article-heading h1 { font-size:clamp(4rem,7.7vw,7rem); overflow-wrap:anywhere; }
.story-detail-page .god-article-heading h1 { font-size:clamp(4rem,7.7vw,7rem); overflow-wrap:anywhere; }
.literature-detail-page .god-article-heading h1 { font-size:clamp(4rem,7.7vw,7rem); overflow-wrap:anywhere; }
.warfare-cost { padding:clamp(100px,13vw,170px) 0; color:var(--white); background:linear-gradient(rgba(18,16,14,.88),rgba(18,16,14,.92)),url('../../images/heroes/Hector.jpg') center 35%/cover; }
.warfare-cost h2 { max-width:1050px; margin:0; font:400 clamp(3rem,6vw,6rem)/1 var(--serif); }
.warfare-cost p:last-child { max-width:760px; margin:32px 0 0 auto; color:rgba(255,255,255,.68); font:1.1rem/1.8 var(--serif); }
.myth-cycle-section,.democracy-system { background:var(--paper-light); }
.myth-cycle-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.myth-cycle-card { display:grid; grid-template-columns:.8fr 1.2fr; min-height:380px; overflow:hidden; background:var(--paper); border:1px solid var(--line); }
.myth-cycle-image { min-height:300px; overflow:hidden; background:var(--ink); }
.myth-cycle-image img { width:100%; height:100%; object-fit:cover; filter:saturate(.72) contrast(1.05); transition:transform .7s; }
.myth-cycle-card:hover img { transform:scale(1.045); }
.myth-cycle-card > div:last-child { display:flex; flex-direction:column; justify-content:center; padding:35px; }
.myth-cycle-card span { color:var(--terracotta); font-size:.62rem; font-weight:800; letter-spacing:.13em; text-transform:uppercase; }
.myth-cycle-card h3 { margin:18px 0 14px; font:2.7rem/1 var(--serif); }
.myth-cycle-card p { color:#625a51; }
.myth-purpose { padding:clamp(100px,13vw,170px) 0; color:var(--white); background:var(--terracotta); }
.myth-purpose .container { display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(50px,8vw,110px); }
.myth-purpose-heading h2 { margin:0; font:400 clamp(3rem,5vw,5.5rem)/1 var(--serif); }
.myth-purpose-list { border-top:1px solid rgba(255,255,255,.35); }
.myth-purpose-list article { display:grid; grid-template-columns:45px .55fr 1fr; gap:22px; align-items:start; padding:30px 0; border-bottom:1px solid rgba(255,255,255,.35); }
.myth-purpose-list span { color:rgba(255,255,255,.65); font:italic 1rem var(--serif); }
.myth-purpose-list h3 { margin:0; font:2rem/1 var(--serif); }
.myth-purpose-list p { margin:0; color:rgba(255,255,255,.7); }
.democracy-process { border-top:1px solid var(--line); }
.democracy-step { display:grid; grid-template-columns:55px .8fr 1fr; gap:30px; align-items:center; min-height:185px; border-bottom:1px solid var(--line); }
.democracy-step > span { color:var(--terracotta); font:italic 1rem var(--serif); }
.democracy-step div p { margin:0 0 6px; color:var(--terracotta); font-size:.62rem; font-weight:800; letter-spacing:.13em; text-transform:uppercase; }
.democracy-step h3 { display:inline; margin:0; font:2.8rem/1 var(--serif); }
.democracy-step b { margin-left:14px; color:#8a8075; font:italic 1rem var(--serif); }
.democracy-step > p { color:#5e574f; }
.democracy-limits { padding:clamp(100px,13vw,170px) 0; color:var(--white); background:var(--ink); }
.democracy-limits-heading { display:grid; grid-template-columns:.8fr 1.2fr; gap:30px 80px; align-items:end; margin-bottom:75px; }
.democracy-limits-heading .eyebrow { grid-column:1/-1; margin:0; }
.democracy-limits-heading h2 { grid-column:1/-1; max-width:1050px; margin:0; font:400 clamp(3rem,6vw,6rem)/1 var(--serif); }
.democracy-limit-grid { display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid rgba(255,255,255,.17); }
.democracy-limit-grid article { min-height:260px; padding:32px 28px; border-right:1px solid rgba(255,255,255,.17); border-bottom:1px solid rgba(255,255,255,.17); }
.democracy-limit-grid article:last-child { border-right:0; }
.democracy-limit-grid strong { color:var(--gold); font:2rem/1 var(--serif); }
.democracy-limit-grid p { margin-top:75px; color:rgba(255,255,255,.62); font-size:.88rem; }

/* Olympic Games */
.olympics-feature { display:grid; grid-template-columns:1fr 1fr; min-height:760px; background:var(--paper); }
.olympics-feature-image { min-height:650px; overflow:hidden; background:var(--ink); }
.olympics-feature-image img { width:100%; height:100%; object-fit:cover; object-position:center 20%; filter:saturate(.72) contrast(1.04); }
.olympics-feature-copy { display:flex; flex-direction:column; justify-content:center; padding:clamp(45px,7vw,105px); }
.olympics-feature-copy h2 { margin:0; font:400 clamp(3.2rem,5.6vw,5.7rem)/.96 var(--serif); letter-spacing:-.045em; }
.olympics-feature-copy h2 em { color:var(--terracotta); }
.olympics-feature-copy > p:not(.eyebrow) { color:#5d554d; }
.olympics-feature-copy dl { margin:38px 0 0; border-top:1px solid var(--line); }
.olympics-feature-copy dl div { display:grid; grid-template-columns:100px 1fr; gap:20px; padding:15px 0; border-bottom:1px solid var(--line); }
.olympics-feature-copy dt { color:var(--terracotta); font-size:.63rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.olympics-feature-copy dd { margin:0; font:1.1rem var(--serif); }
.olympics-ritual,.olympics-boundaries { background:var(--paper-light); }
.olympics-day-list { border-top:1px solid var(--line); }
.olympics-day { display:grid; grid-template-columns:55px .75fr 1fr; gap:30px; align-items:center; min-height:180px; border-bottom:1px solid var(--line); }
.olympics-day > span { color:var(--terracotta); font:italic 1.05rem var(--serif); }
.olympics-day div p { margin:0 0 7px; color:var(--terracotta); font-size:.62rem; font-weight:800; letter-spacing:.13em; text-transform:uppercase; }
.olympics-day h3 { margin:0; font:2.65rem/1 var(--serif); }
.olympics-day > p { color:#5e574f; }
.olympics-truce { padding:clamp(100px,13vw,170px) 0; color:var(--white); background:var(--terracotta); }
.olympics-truce .container { display:grid; grid-template-columns:1.1fr .9fr; gap:clamp(55px,9vw,130px); align-items:end; }
.olympics-truce h2 { max-width:850px; margin:0; font:400 clamp(3rem,6vw,6rem)/1 var(--serif); }
.olympics-truce .container > div:last-child p { color:rgba(255,255,255,.72); font:1.05rem/1.75 var(--serif); }
.olympics-truce .container > div:last-child p:last-child { margin-bottom:0; }

/* Articles */
.articles-section { background:var(--paper-light); }
.articles-toolbar { display:grid; grid-template-columns:.8fr 1.2fr; gap:70px; align-items:end; margin-bottom:65px; }
.article-tools { display:grid; gap:22px; justify-items:end; }
.article-tools input { width:min(100%,520px); min-height:52px; border:0; border-bottom:1px solid var(--ink); padding:0 4px; background:transparent; outline:none; font:1.05rem var(--serif); }
.article-tools label { width:100%; display:flex; justify-content:flex-end; }
.search-results-form { width:100%; display:grid; grid-template-columns:minmax(0,1fr) auto; gap:14px; align-items:end; }
.search-results-form label { display:grid; gap:8px; }
.search-results-form label span { color:#6f665d; font-size:.63rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.search-results-form input { width:100%; }
.search-results-form .button { min-height:52px; }
.article-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.article-card { overflow:hidden; background:var(--paper); border:1px solid var(--line); transition:transform .35s,box-shadow .35s; }
.article-card:hover { transform:translateY(-7px); box-shadow:var(--shadow); }
.article-card[hidden] { display:none; }
.article-image { position:relative; height:250px; overflow:hidden; background:var(--ink); }
.article-image img { width:100%; height:100%; object-fit:cover; filter:saturate(.72) contrast(1.05); transition:transform .7s; }
.article-card:hover img { transform:scale(1.045); }
.article-image > span { position:absolute; left:18px; bottom:18px; padding:7px 10px; color:var(--white); background:var(--terracotta); font-size:.62rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.article-copy { padding:27px; }
.article-card--text { transition:transform .35s,box-shadow .35s,background-color .3s,border-color .3s,color .3s; }
.article-card--text .article-copy { min-height:330px; display:flex; flex-direction:column; padding:32px; }
.article-card-category { width:max-content; margin-bottom:28px; padding:7px 10px; color:var(--white); background:var(--terracotta); font-size:.62rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.article-card--text .article-copy > a { margin-top:auto; align-self:flex-start; }
.article-card--text .article-copy > div,
.article-card--text .article-copy p,
.article-card--text .article-copy a { transition:color .3s,border-color .3s; }
.article-card--text:hover,.article-card--text:focus-within { color:var(--white); background:var(--ink); border-color:var(--ink); }
.article-card--text:hover .article-copy > div,
.article-card--text:focus-within .article-copy > div { color:rgba(255,255,255,.58); }
.article-card--text:hover .article-copy p,
.article-card--text:focus-within .article-copy p { color:rgba(255,255,255,.72); }
.article-card--text:hover .article-copy a,
.article-card--text:focus-within .article-copy a { color:var(--white); border-color:rgba(255,255,255,.68); }
.article-card--text:hover .article-copy a span,
.article-card--text:focus-within .article-copy a span { color:var(--gold); }
.article-copy > div { display:flex; justify-content:space-between; gap:10px; color:#81776c; font-size:.61rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.article-copy h2 { margin:22px 0 15px; font:2rem/1.05 var(--serif); }
.article-copy p { color:#655d54; font-size:.88rem; }
.article-copy a { display:inline-flex; gap:10px; margin-top:10px; padding-bottom:6px; border-bottom:1px solid var(--ink); font-size:.66rem; font-weight:800; letter-spacing:.11em; text-transform:uppercase; }
.article-copy a span { color:var(--terracotta); }
.article-note { padding:100px 0; color:var(--white); background:var(--ink); }
.article-note h2 { margin:0 0 22px; font:clamp(2.8rem,5vw,5rem)/1 var(--serif); }
.article-note p:last-child { max-width:700px; color:rgba(255,255,255,.6); }

/* Journal article detail */
.article-detail-hero { position:relative; min-height:100svh; display:flex; align-items:flex-end; color:var(--white); background:var(--ink); overflow:hidden; }
.article-detail-hero .reveal { opacity:1; transform:none; }
.article-detail-image { position:absolute; inset:0; background:url('../images/hero-parthenon.jpg') center 42%/cover no-repeat; filter:saturate(.62) contrast(1.08); transform:scale(1.025); }
.article-detail-shade { position:absolute; inset:0; background:linear-gradient(90deg,rgba(12,11,10,.93) 0%,rgba(12,11,10,.72) 48%,rgba(12,11,10,.2) 100%),linear-gradient(0deg,rgba(12,11,10,.88),transparent 55%); }
.article-detail-hero-content { position:relative; z-index:1; padding-top:145px; padding-bottom:clamp(105px,12vw,155px); }
.article-detail-back { display:inline-block; margin-bottom:clamp(65px,9vw,115px); padding-bottom:6px; border-bottom:1px solid rgba(255,255,255,.4); color:rgba(255,255,255,.7); font-size:.66rem; font-weight:800; letter-spacing:.13em; text-transform:uppercase; }
.article-detail-heading { max-width:960px; }
.article-detail-heading h1 { max-width:900px; margin:0; font:400 clamp(4.7rem,10vw,9rem)/.88 var(--serif); letter-spacing:-.055em; text-wrap:balance; }
.article-detail-heading h1 em { color:var(--gold); }
.article-detail-deck { max-width:720px; margin:32px 0 0; color:rgba(255,255,255,.75); font:1.25rem/1.65 var(--serif); }
.article-detail-meta { display:flex; flex-wrap:wrap; gap:10px 28px; margin-top:44px; font-size:.63rem; font-weight:800; letter-spacing:.13em; text-transform:uppercase; color:rgba(255,255,255,.62); }
.article-detail-meta span + span { position:relative; }
.article-detail-meta span + span::before { content:""; position:absolute; left:-15px; top:50%; width:3px; height:3px; border-radius:50%; background:var(--gold); }
.article-detail-scroll { position:absolute; right:clamp(20px,4vw,64px); bottom:42px; z-index:2; display:flex; align-items:center; gap:17px; color:rgba(255,255,255,.67); font-size:.61rem; font-weight:800; letter-spacing:.14em; text-transform:uppercase; }
.article-detail-scroll i { width:45px; height:1px; background:var(--gold); transition:width .25s; }
.article-detail-scroll:hover i { width:62px; }
.article-detail-image-credit { padding:10px 0; color:rgba(255,255,255,.58); background:var(--ink); font-size:.56rem; letter-spacing:.06em; text-align:right; }
.article-detail-image-credit a { color:rgba(255,255,255,.78); text-decoration:underline; text-underline-offset:3px; }
.article-detail-body { padding:clamp(95px,11vw,155px) 0; background:var(--paper-light); }
.article-detail-layout { display:grid; grid-template-columns:minmax(210px,.42fr) minmax(0,1.15fr); gap:clamp(65px,10vw,145px); align-items:start; }
.article-detail-aside { position:sticky; top:125px; padding-top:6px; }
.article-detail-aside nav { display:grid; margin-top:27px; border-top:1px solid var(--line); }
.article-detail-aside nav { max-height:55vh; overflow-y:auto; }
.article-detail-aside nav a { padding:13px 0; border-bottom:1px solid var(--line); color:#6b6258; font:.95rem/1.35 var(--serif); transition:color .2s,padding-left .2s; }
.article-detail-aside nav a:hover { padding-left:7px; color:var(--terracotta); }
.article-detail-share { display:grid; gap:8px; margin-top:38px; color:#81776c; font-size:.59rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.article-detail-share a { color:var(--terracotta); }
.article-detail-prose { max-width:790px; }
.article-detail-lead { margin:0 0 clamp(75px,9vw,115px); color:var(--ink); font:1.65rem/1.55 var(--serif); }
.article-detail-prose.god-article-prose--database > .article-detail-lead { margin:0 0 clamp(75px,9vw,115px); color:var(--ink); font:1.65rem/1.55 var(--serif); }
.article-detail-lead::first-letter { float:left; margin:10px 12px 0 0; color:var(--terracotta); font:6.4rem/.68 var(--serif); }
.article-detail-prose section { position:relative; scroll-margin-top:120px; }
.article-detail-prose section + section { margin-top:clamp(75px,9vw,110px); }
.article-section-number { display:block; margin-bottom:18px; color:var(--terracotta); font:italic .95rem var(--serif); }
.article-detail-prose h2 { margin:0 0 30px; font:400 clamp(2.8rem,5vw,4.8rem)/.95 var(--serif); letter-spacing:-.04em; }
.article-detail-prose.god-article-prose--database h2 { margin:0 0 30px; padding-top:0; border-top:0; }
.article-detail-prose section p { margin:0; color:#4f4942; font:1.18rem/1.9 var(--serif); }
.article-detail-prose section p + p { margin-top:24px; }
.article-detail-prose section p em { color:var(--terracotta); }
.article-pullquote { position:relative; margin:clamp(80px,10vw,125px) -7vw; padding:clamp(52px,7vw,85px) clamp(45px,7vw,90px); color:var(--white); background:var(--terracotta); overflow:hidden; }
.article-pullquote span { position:absolute; right:-25px; top:-55px; color:rgba(255,255,255,.09); font:11rem/1 var(--serif); }
.article-pullquote p { position:relative; margin:0; font:italic clamp(2rem,4vw,3.5rem)/1.15 var(--serif); }
.article-inline-figure { margin:clamp(80px,10vw,125px) 0; }
.article-inline-figure img { width:100%; max-height:560px; object-fit:cover; filter:saturate(.72) contrast(1.04); }
.article-inline-figure figcaption { display:grid; grid-template-columns:150px 1fr; gap:25px; margin-top:18px; color:#766d63; font-size:.72rem; line-height:1.55; }
.article-inline-figure figcaption span { color:var(--terracotta); font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.article-detail-end { display:grid; grid-template-columns:55px 1fr; gap:25px; align-items:center; margin-top:clamp(85px,10vw,125px); padding-top:35px; border-top:1px solid var(--line); }
.article-detail-end > span { width:52px; height:52px; display:grid; place-items:center; border:1px solid var(--line); border-radius:50%; color:var(--terracotta); font:1.5rem var(--serif); }
.article-detail-end p { max-width:580px; margin:0; color:#6b6258; font:.82rem/1.7 var(--sans); }
.article-related { padding:clamp(95px,11vw,150px) 0; color:var(--white); background:var(--ink); }
.article-related-heading { display:flex; justify-content:space-between; align-items:end; gap:30px; margin-bottom:50px; }
.article-related-heading h2 { margin:0; font:400 clamp(3.5rem,6vw,6rem)/.9 var(--serif); }
.article-related-heading > a { padding-bottom:7px; border-bottom:1px solid rgba(255,255,255,.4); font-size:.65rem; font-weight:800; letter-spacing:.13em; text-transform:uppercase; }
.article-related-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.article-related-card { position:relative; min-height:440px; display:flex; flex-direction:column; justify-content:flex-end; padding:38px; overflow:hidden; isolation:isolate; }
.article-related-card::after { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(0deg,rgba(12,11,10,.95),rgba(12,11,10,.05) 70%); }
.article-related-card img { position:absolute; inset:0; z-index:-2; width:100%; height:100%; object-fit:cover; filter:saturate(.65); transition:transform .7s; }
.article-related-card:hover img { transform:scale(1.045); }
.article-related-card span { color:var(--gold); font-size:.63rem; font-weight:800; letter-spacing:.13em; text-transform:uppercase; }
.article-related-card h3 { max-width:520px; margin:10px 0 0; font:400 clamp(2.4rem,4vw,4rem)/1 var(--serif); }

@media (max-width:1100px) {
  .inner-page .nav-panel,.home-page .nav-panel { gap:16px; }
  .inner-page .nav-panel > a,.home-page .nav-panel > a,
  .inner-page .nav-dropdown-toggle,.home-page .nav-dropdown-toggle { font-size:.62rem; }
}
@media (max-width:980px) {
  .inner-page .nav-panel > a,
  .home-page .nav-panel > a,
  .inner-page .nav-dropdown-toggle,
  .home-page .nav-dropdown-toggle { font:2.1rem/1 var(--serif); }
  .page-hero { min-height:690px; }
  .split-heading,.atlas-grid,.articles-toolbar { grid-template-columns:1fr; }
  .feature-grid,.portrait-grid,.article-grid { grid-template-columns:repeat(2,1fr); }
  .feature-card:nth-child(3n) { border-right:1px solid rgba(255,255,255,.15); }
  .feature-card:nth-child(2n) { border-right:0; }
  .city-grid { grid-template-columns:repeat(2,1fr); }
  .gallery-toolbar { align-items:flex-start; flex-direction:column; }
  .atlas-directory-heading { grid-template-columns:1fr; }
  .atlas-place-list { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .gallery-filters { justify-content:flex-start; }
  .article-tools { justify-items:start; }
  .article-tools label { justify-content:flex-start; }
  .timeline-band .container { grid-template-columns:1fr; }
  .god-article-hero-grid { grid-template-columns:1fr .7fr; gap:45px; }
  .god-article-layout { grid-template-columns:1fr; }
  .god-article-facts { position:static; display:grid; grid-template-columns:.4fr 1fr; gap:25px; }
  .god-article-facts dl { display:grid; grid-template-columns:repeat(2,1fr); gap:0 24px; margin:0; }
  .culture-intro-grid,.culture-section-heading { grid-template-columns:1fr; }
  .culture-section-heading .eyebrow { grid-column:auto; }
  .culture-card-grid { grid-template-columns:repeat(2,1fr); }
  .culture-card:nth-child(2n) { border-right:0; }
  .creator-row { grid-template-columns:55px .75fr 1fr; }
  .art-gallery { grid-template-columns:1fr 1fr; grid-auto-rows:minmax(360px,55vw); }
  .art-piece-tall { grid-row:auto; }
  .art-piece-wide { grid-column:1/-1; }
  .warfare-feature { grid-template-columns:1fr; }
  .warfare-feature-image { min-height:650px; }
  .myth-cycle-grid { grid-template-columns:1fr; }
  .myth-purpose .container { grid-template-columns:1fr; }
  .democracy-limit-grid { grid-template-columns:repeat(2,1fr); }
  .democracy-limit-grid article:nth-child(2n) { border-right:0; }
  .olympics-feature { grid-template-columns:1fr; }
  .olympics-feature-image { min-height:650px; }
  .olympics-truce .container { grid-template-columns:1fr; }
  .article-detail-layout { grid-template-columns:1fr; }
  .article-detail-aside { position:static; display:grid; grid-template-columns:.6fr 1fr; gap:35px; padding-bottom:45px; border-bottom:1px solid var(--line); }
  .article-detail-aside nav { grid-column:2; grid-row:1/3; margin-top:0; }
  .article-detail-share { margin-top:0; align-self:end; }
  .article-pullquote { margin-right:0; margin-left:0; }
  .heracles-gallery-note { text-align:left; }
}
@media (max-width:680px) {
  .page-header { padding:14px 18px; }
  .page-header::before,.page-header::after { display:none; }
  .nav-placeholder-title { font-size:.66rem; white-space:normal; }
  .nav-placeholder ul { gap:4px 24px; }
  .nav-placeholder li + li::before { left:-12px; }
  .nav-placeholder a { font-size:.75rem; letter-spacing:.08em; white-space:nowrap; }
  .nav-panel {
    justify-content:flex-start;
    gap:18px !important;
    padding:clamp(120px,18vh,150px) 24px 32px;
    overflow-y:auto;
  }
  .inner-page .nav-panel > a,
  .home-page .nav-panel > a,
  .inner-page .nav-dropdown-toggle,
  .home-page .nav-dropdown-toggle { font-size:clamp(1.65rem,8vw,2.1rem); }
  .nav-panel .nav-search-wrap { margin-top:8px; }
  .home-page .hero-content { padding-top:150px; padding-bottom:55px; }
  .page-hero { min-height:650px; }
  .page-hero h1 { font-size:clamp(3.7rem,16vw,6rem); }
  .page-hero-art { font-size:30vw; bottom:4%; }
  .page-scroll { left:14px; right:auto; }
  .atlas-map { min-height:500px; }
  .atlas-place-list { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .feature-grid,.portrait-grid,.article-grid,.city-grid { grid-template-columns:1fr; }
  .feature-card { border-right:0 !important; }
  .chronology::before { left:10px; }
  .chronology-item { grid-template-columns:0 25px 1fr; }
  .chronology-date { grid-column:3; padding:0 0 10px 30px; text-align:left; }
  .chronology-dot { grid-column:2; grid-row:1/3; }
  .chronology-card { grid-column:3; margin:0 0 25px 30px; }
  .story-chapter { grid-template-columns:1fr; }
  .story-glyph { min-height:170px; writing-mode:horizontal-tb; font-size:17vw; }
  .story-chapter-copy { padding:40px 24px 55px; }
  .gallery-toolbar { margin-bottom:38px; }
  .search-results-form { grid-template-columns:1fr; }
  .article-image { height:230px; }
  .heracles-gallery-grid { grid-template-columns:1fr; }
  .heracles-gallery-image { aspect-ratio:4/3; }
  .heracles-database-notice { flex-direction:column; }
  .god-article-hero { padding:120px 0 75px; }
  .god-article-hero-grid { grid-template-columns:1fr; }
  .god-back-link { margin-bottom:48px; }
  .god-article-heading h1 { font-size:clamp(4.6rem,22vw,7rem); }
  .god-article-portrait { width:calc(100% - 18px); }
  .god-article-facts { grid-template-columns:1fr; }
  .god-article-facts dl { grid-template-columns:1fr; }
  .god-article-section + .god-article-section { margin-top:50px; padding-top:45px; }
  .god-article-section p,
  .god-article-prose--database p { font-size:1.08rem; }
  .god-article-prose--database h2 { margin-top:50px; padding-top:45px; }
  .god-article-prose--database table { display:block; overflow-x:auto; }
  .god-article-pagination .container { grid-template-columns:1fr; }
  .god-article-pagination a:last-child { text-align:left; }
  .culture-card-grid,.period-grid { grid-template-columns:1fr; }
  .culture-card { min-height:300px; border-right:0; }
  .culture-card h3 { margin-top:55px; }
  .creator-row { grid-template-columns:35px 1fr; gap:18px; padding:30px 0; }
  .creator-row > p { grid-column:2; margin:0; }
  .art-gallery { grid-template-columns:1fr; grid-auto-rows:minmax(400px,120vw); }
  .art-piece-wide { grid-column:auto; }
  .period-card { min-height:310px; }
  .period-card h3 { margin-top:65px; }
  .warfare-feature-image { min-height:500px; }
  .campaign-row { grid-template-columns:1fr; padding:30px 0; }
  .campaign-row time { padding:0 0 10px; }
  .campaign-row div { padding:0; border-left:0; }
  .myth-cycle-card { grid-template-columns:1fr; }
  .myth-cycle-image { min-height:390px; }
  .myth-purpose-list article { grid-template-columns:32px 1fr; }
  .myth-purpose-list p { grid-column:2; }
  .democracy-step { grid-template-columns:35px 1fr; gap:18px; padding:28px 0; }
  .democracy-step > p { grid-column:2; margin:0; }
  .democracy-limit-grid { grid-template-columns:1fr; }
  .democracy-limit-grid article { min-height:230px; border-right:0; }
  .democracy-limit-grid p { margin-top:50px; }
  .olympics-feature-image { min-height:510px; }
  .olympics-day { grid-template-columns:35px 1fr; gap:18px; padding:28px 0; }
  .olympics-day > p { grid-column:2; margin:0; }
  .article-detail-hero { min-height:800px; }
  .article-detail-hero-content { padding-top:125px; padding-bottom:115px; }
  .article-detail-back { margin-bottom:70px; }
  .article-detail-heading h1 { font-size:clamp(4rem,18vw,6.2rem); }
  .article-detail-deck { font-size:1.08rem; }
  .article-detail-meta { display:grid; }
  .article-detail-meta span + span::before { display:none; }
  .article-detail-scroll { right:auto; left:20px; bottom:28px; }
  .article-detail-aside { grid-template-columns:1fr; }
  .article-detail-aside nav { grid-column:auto; grid-row:auto; }
  .article-detail-lead,
  .article-detail-prose.god-article-prose--database > .article-detail-lead { font-size:1.4rem; }
  .article-detail-lead::first-letter { font-size:5.3rem; }
  .article-detail-prose section p { font-size:1.08rem; }
  .article-pullquote { padding:48px 25px; }
  .article-inline-figure figcaption { grid-template-columns:1fr; gap:7px; }
  .article-related-heading { align-items:flex-start; flex-direction:column; }
  .article-related-grid { grid-template-columns:1fr; }
  .article-related-card { min-height:390px; padding:27px; }
}
