:root {
  color-scheme: light;
  --clr-ocean:#5c4d6b;
  --clr-ocean-soft:#ece8f2;
  --clr-sand:#f2ebe0;
  --clr-paper:#fffaf3;
  --clr-moss:#6d8b6b;
  --clr-peach:#d9a77c;
  --clr-amber:#b8784a;
  --clr-ink:#2a2420;
  --clr-ink-muted:#5f564e;
  --clr-stroke:rgba(92,77,107,0.2);
  --font-display:'Fraunces',Georgia,serif;
  --font-body:'Nunito Sans',system-ui,sans-serif;
  --space-2xs:0.35rem;
  --space-xs:0.55rem;
  --space-sm:0.85rem;
  --space-md:1.2rem;
  --space-lg:1.85rem;
  --space-xl:2.65rem;
  --space-xxl:3.65rem;
  --radius-xs:0.45rem;
  --radius-sm:0.72rem;
  --radius-md:1rem;
  --radius-lg:1.35rem;
  --radius-pill:999px;
  --shadow-soft:0 0.85rem 1.9rem rgba(42,31,46,0.12);
  --shadow-chip:0 0.48rem 1.1rem rgba(42,31,46,0.14);
  --transition-fast:0.18s ease;
  --transition-med:0.32s ease;
  --measure:clamp(26rem,80vw + 2rem,60rem);
}

*,
*::before,
*::after {
  box-sizing:border-box;
}

html {
  font-size:100%;
}

body {
  margin:0;
  font-family:var(--font-body);
  font-size:0.95rem;
  line-height:1.55;
  color:var(--clr-ink);
  background:radial-gradient(circle at 12% -4%,#ede5f4 0%,transparent 48%), radial-gradient(circle at 88% 8%,rgba(217,167,124,0.45),transparent 42%),linear-gradient(#faf6f0,#faf6f0);
  accent-color:var(--clr-ocean);
}

body.menus-open {
  overflow:hidden;
}

picture,
video,
canvas {
  max-width:100%;
}

img {
  height:auto;
  max-width:100%;
}

a {
  color:var(--clr-ocean);
  text-underline-offset:0.22em;
}

a:active {
  color:var(--clr-moss);
}

p {
  max-width:min(var(--measure),100%);
}

h1,
h2,
h3,
h4 {
  font-family:var(--font-display);
  color:#2f2422;
  line-height:1.15;
}

h1 {
  font-size:clamp(1.55rem,3.3vw + 0.85rem,2.85rem);
  margin:0 0 var(--space-sm);
  letter-spacing:-0.02em;
}

h2 {
  font-size:clamp(1.15rem,1.85vw + 0.72rem,1.75rem);
  margin:0 0 var(--space-sm);
}

h3 {
  font-size:clamp(1.02rem,1.2vw + 0.65rem,1.3rem);
  margin:0 0 var(--space-xs);
}

h4 {
  font-size:clamp(0.95rem,1vw + 0.55rem,1.1rem);
}

.page-shell {
  min-height:100vh;
  display:flex;
  flex-direction:column;
}

.inner {
  inline-size:min(1180px,100%);
  max-inline-size:100%;
  margin-inline:auto;
  padding-inline:clamp(0.75rem,4vw,var(--space-md));
  box-sizing:border-box;
}

.site-header {
  position:relative;
  z-index:900;
}

.site-header[data-retracted='true'] {
  transform:translateY(-118%);
}

.site-header[data-retracted='false'] {
  transform:translateY(0%);
}

.site-header[data-retracted] {
  transition:transform var(--transition-med);
}

.glass-band {
  background:linear-gradient(120deg,rgba(247,239,229,0.96),rgba(236,232,242,0.94));
  border-block-end:1px solid rgba(92,77,107,0.18);
}

.header-row {
  display:flex;
  align-items:center;
  gap:clamp(var(--space-xs),1.8vw,var(--space-md));
  padding-block:clamp(0.42rem,1.1vw,var(--space-sm));
}

.logo {
  display:inline-flex;
  align-items:center;
  gap:var(--space-xs);
  padding:var(--space-2xs) var(--radius-sm);
  border-radius:var(--radius-lg);
  text-decoration:none;
  color:inherit;
  font-family:var(--font-display);
  font-size:clamp(0.8rem,0.52vw + 0.74rem,0.92rem);
  border:1px solid transparent;
}

.logo-mark {
  display:inline-flex;
  justify-content:center;
  align-items:center;
  inline-size:1.76rem;
  block-size:1.76rem;
  border-radius:var(--radius-pill);
  background:conic-gradient(from 140deg,var(--clr-ocean),var(--clr-moss),var(--clr-peach),var(--clr-ocean));
  color:#fdfbf7;
  font-size:0.78rem;
  box-shadow:var(--shadow-chip);
}

.logo-text {
  white-space:normal;
}

.nav-menu.desktop-nav {
  flex:1;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:clamp(0.25rem,1.1vw,var(--space-sm));
  row-gap:0.3rem;
  flex-wrap:wrap;
  font-size:clamp(0.65rem,0.38vw + 0.56rem,0.72rem);
  line-height:1.25;
  text-transform:uppercase;
  letter-spacing:clamp(0.05em,0.12vw + 0.04em,0.1em);
}

.nav-menu.desktop-nav a {
  text-decoration:none;
  padding-inline:clamp(0.3rem,0.85vw,var(--space-xs));
  padding-block:0.18rem;
  border-radius:var(--radius-pill);
}

.nav-menu.desktop-nav a:hover {
  background:rgba(95,143,108,0.14);
}

.menu-toggle {
  border-radius:var(--radius-pill);
  border:1px solid rgba(92,77,107,0.42);
  background:rgba(246,243,238,0.88);
  color:var(--clr-ocean);
  padding-inline:0.92rem;
  padding-block:0.55rem;
  font:inherit;
  display:inline-flex;
  align-items:center;
  gap:var(--space-2xs);
  cursor:pointer;
  box-shadow:var(--shadow-chip);
  margin-inline-start:auto;
  z-index:1002;
}

.menu-toggle:hover {
  color:var(--clr-moss);
}

.mobile-menu {
  position:fixed;
  inset-block-start:0;
  inset-inline-end:0;
  inline-size:min(360px,100%);
  background:linear-gradient(#faf4ea,var(--clr-ocean-soft));
  transform:translateY(-100%);
  right:0;
  transition:transform var(--transition-med);
  z-index:1001;
  padding:clamp(3rem,14vw + 2rem,4.5rem) var(--space-lg) var(--space-xl);
  display:flex;
  flex-direction:column;
  gap:var(--space-sm);
  border-bottom-left-radius:var(--radius-lg);
  border-bottom-right-radius:var(--radius-lg);
  box-shadow:var(--shadow-soft);
}

.mobile-menu.active {
  transform:translateY(0);
}

.mobile-menu.active ~ .menu-toggle {
  display:none;
}

.mobile-links {
  display:flex;
  flex-direction:column;
  gap:clamp(0.55rem,2.2vw,var(--space-sm));
}

.mobile-menu a {
  text-decoration:none;
  font-weight:600;
  font-size:clamp(0.84rem,2.4vw + 0.62rem,0.95rem);
  line-height:1.35;
  padding-block:0.12rem;
}

.menu-close {
  position:absolute;
  inset-block-start:var(--space-sm);
  inset-inline-end:var(--space-sm);
  border-radius:var(--radius-pill);
  border:1px solid rgba(92,77,107,0.42);
  background:rgba(246,243,238,0.96);
  color:var(--clr-ocean);
  padding-inline:0.92rem;
  padding-block:0.55rem;
  font:inherit;
  cursor:pointer;
}

.menu-close:hover {
  color:var(--clr-moss);
}

.visually-hidden {
  clip:rect(0 0 0 0);
  clip-path:inset(50%);
  block-size:1px;
  inline-size:1px;
  overflow:hidden;
  position:absolute;
  white-space:nowrap;
}

.main-flow {
  flex:1;
  min-inline-size:0;
  padding-block-start:clamp(0.95rem,1.05vw + 0.82rem,1.85rem);
  padding-block-end:var(--space-xxl);
}

.hero {
  position:relative;
  border-radius:calc(var(--radius-lg) + 0.35rem);
  overflow:hidden;
  margin-inline:auto;
  margin-block-end:clamp(1rem,3.2vw,var(--space-lg));
  inline-size:min(1180px,100%);
  max-inline-size:100%;
  box-sizing:border-box;
  padding-inline:clamp(0.75rem,4vw,var(--space-md));
  background-color:#2a1f2e;
  background-image:
    linear-gradient(118deg,rgba(42,31,46,0.74),rgba(92,77,107,0.42)),
    linear-gradient(158deg,rgba(31,22,29,0.58),rgba(54,42,64,0.38)),
    url("../img/hero-bg.jpg");
  background-size:cover,cover,cover;
  background-position:center center,center center,center center;
  background-repeat:no-repeat,no-repeat,no-repeat;
  isolation:isolate;
  box-shadow:0 1.1rem 2.75rem rgba(42,31,46,0.18);
}

.hero-shell {
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,3fr) minmax(0,2.08fr);
  gap:clamp(1.05rem,2.5vw + 0.72rem,var(--space-xl));
  padding:clamp(var(--space-lg),4vw,var(--space-xxl));
  color:#fbf8f6;
}

.hero-shell > * {
  min-inline-size:0;
}

.hero-copy h1 {
  color:#fcf8f7;
}

.hero-copy p.lead {
  max-width:32rem;
  color:rgba(250,246,239,0.88);
}

.hero-actions {
  display:flex;
  flex-wrap:wrap;
  gap:var(--space-sm);
}

.btn {
  display:inline-flex;
  align-items:center;
  gap:var(--space-2xs);
  padding-inline:1.08rem;
  padding-block:0.68rem;
  border-radius:var(--radius-pill);
  border:1px solid transparent;
  cursor:pointer;
  font-size:0.8rem;
  font-weight:600;
  text-decoration:none;
  margin-block-start:var(--space-sm);
  transition:background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast),box-shadow var(--transition-fast),transform var(--transition-fast);
}

.btn-primary {
  background:linear-gradient(118deg,var(--clr-peach),#fff6ec);
  color:#382a29;
}

.btn-primary:hover {
  color:#5c4d6b;
}

.btn-ghost {
  background:rgba(7,53,61,0.45);
  color:#fcf8ef;
  border-color:rgba(255,252,244,0.36);
}

.btn-ghost:hover {
  color:#f4f9ff;
}

.btn-outline {
  background:transparent;
  border-color:rgba(95,143,108,0.72);
  color:#bde8ce;
}

.btn-outline:hover {
  color:#e7fff3;
}

.figure-stage {
  position:relative;
  min-height:clamp(11rem,20vw + 7rem,16.75rem);
  max-inline-size:100%;
}

.figure-orbit {
  position:relative;
  inline-size:min(100%,clamp(13rem,32vw + 6rem,19rem));
  margin-inline:auto;
  aspect-ratio:1;
  border-radius:var(--radius-pill);
  background:radial-gradient(circle at 38% 32%,rgba(255,229,207,0.94),transparent 61%), radial-gradient(circle at 74% 70%,rgba(95,143,108,0.78),transparent 61%), radial-gradient(circle at 54% 64%,rgba(226,239,239,0.88),transparent 71%);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,0.22),var(--shadow-soft);
  isolation:isolate;
}

.figure-marble {
  position:absolute;
  width:clamp(6.85rem,18vw + 4.2rem,8.8rem);
  height:clamp(6.85rem,18vw + 4.2rem,8.8rem);
  left:50%;
  top:50%;
  border-radius:3.2rem;
  background:linear-gradient(150deg,var(--clr-peach),#fffefb 52%,rgba(109,139,107,0.88));
  box-shadow:var(--shadow-chip);
  display:grid;
  place-items:center;
  color:#2a1f2e;
  animation:breathe 15s ease-in-out infinite alternate;
}

.figure-marble i {
  font-size:clamp(2.05rem,3.6vw + 1rem,3.35rem);
  animation:pulse-twist calc(15s/2.2) ease-in-out infinite alternate;
}

.figure-orbit .ring-soft {
  position:absolute;
  inset:9%;
  border-radius:var(--radius-pill);
  border:3px dashed rgba(255,255,255,0.42);
}

.figure-orbit .spark {
  position:absolute;
  width:0.8rem;
  height:0.8rem;
  border-radius:var(--radius-pill);
  background:#fffefb;
}

.spark.a {
  top:78%;
  left:18%;
  animation:glow-shift 13s infinite alternate linear;
}

.spark.b {
  top:26%;
  right:21%;
  animation:glow-shift 17s infinite alternate linear;
}

.spark.c {
  top:62%;
  right:63%;
  animation:glow-shift 11s infinite alternate linear;
}

@keyframes breathe {
  0% {
    transform:translate(-58%, -46%) rotate(-5deg);
  }

  50% {
    transform:translate(-45%, -60%) rotate(4deg);
  }

  100% {
    transform:translate(-36%, -50%) rotate(9deg);
  }
}

@keyframes pulse-twist {
  from {
    transform:rotate(-6deg);
  }

  to {
    transform:rotate(12deg);
  }
}

@keyframes glow-shift {
  from {
    transform:translate(-4px, -2px);
  }

  to {
    transform:translate(14px, 8px);
  }
}

.hero-footnote {
  margin-block-start:var(--space-xl);
}

.section {
  margin-block-start:clamp(2rem,7vw,var(--space-xxl));
}

.section-intro {
  max-width:32rem;
  margin-inline:auto;
}

.section-intro.center {
  text-align:center;
}

.section-intro.center.timeline-head {
  margin-block-end:var(--space-md);
}

.timeline-list {
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:var(--space-sm);
}

.split-panel {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,274px),1fr));
  gap:clamp(1rem,6vw,var(--space-xl));
  align-items:center;
}

.split-panel > * {
  min-inline-size:0;
}

.quote-panel p {
  max-width:none;
}

.main-flow.inner,
.main-flow > .inner {
  display:flex;
  flex-direction:column;
  gap:clamp(1.25rem,3.8vw,2.35rem);
  padding-block:var(--space-md) var(--space-xxl);
  inline-size:100%;
  max-inline-size:100%;
  min-inline-size:0;
  box-sizing:border-box;
}

.main-flow.inner > .section,
.main-flow > .inner > .section {
  margin-block-start:0;
  padding:clamp(1.35rem,5.2vw,2.85rem);
  border-radius:calc(var(--radius-lg) + 0.45rem);
  border:1px solid rgba(92,77,107,0.11);
  background:linear-gradient(168deg,rgba(255,254,251,0.97) 0%,rgba(250,246,239,0.88) 38%,rgba(236,229,246,0.28) 100%);
  box-shadow:0 0.45rem 1.85rem rgba(42,31,46,0.055),inset 0 1px 0 rgba(255,255,255,0.75);
  min-inline-size:0;
}

.main-flow.inner > .section:nth-child(even),
.main-flow > .inner > .section:nth-child(even) {
  background:linear-gradient(192deg,rgba(255,252,246,0.98) 0%,rgba(240,236,251,0.42) 55%,rgba(245,237,226,0.55) 100%);
  border-color:rgba(92,77,107,0.14);
}

.main-flow.inner > #visit-map.section,
.main-flow > .inner > #visit-map.section {
  background:linear-gradient(180deg,rgba(247,243,253,0.65) 0%,rgba(255,252,246,0.95) 40%);
}

.main-flow.inner > #careful-reading.section,
.main-flow > .inner > #careful-reading.section {
  background:linear-gradient(156deg,#fffcf9 0%,rgba(237,229,246,0.25) 100%);
  border-style:solid;
}

.main-flow.inner > .section.quote-panel,
.main-flow > .inner > .section.quote-panel {
  background:linear-gradient(142deg,var(--clr-ocean) 0%,#4a3948 52%,#2f262b 100%);
  border-color:rgba(255,252,246,0.14);
  box-shadow:0 0.75rem 2.25rem rgba(42,31,46,0.18),inset 0 1px 0 rgba(255,255,255,0.1);
  color:#fcf7f6;
}

.main-flow.inner > .section.quote-panel:nth-child(even),
.main-flow > .inner > .section.quote-panel:nth-child(even) {
  background:linear-gradient(142deg,var(--clr-ocean) 0%,#4a3948 52%,#2f262b 100%);
  border-color:rgba(255,252,246,0.14);
}

.section-intro h2,
#visit-map h2 {
  letter-spacing:-0.015em;
}

#visit-map > h2::after {
  content:"";
  display:block;
  width:3.4rem;
  height:3px;
  margin-block-start:var(--space-sm);
  border-radius:999px;
  background:linear-gradient(90deg,var(--clr-peach),var(--clr-moss));
}

#resource-bridge h2::after {
  content:"";
  display:block;
  width:3.2rem;
  height:3px;
  margin-block-start:var(--space-sm);
  border-radius:999px;
  background:linear-gradient(90deg,var(--clr-ocean),var(--clr-peach));
}

.section-intro.center h2::after,
.section-intro.timeline-head.center h2::after {
  content:"";
  display:block;
  width:3.85rem;
  height:3px;
  margin-block-start:var(--space-sm);
  margin-inline:auto;
  border-radius:999px;
  background:linear-gradient(90deg,var(--clr-peach),var(--clr-ocean),var(--clr-moss));
}

#light-season .ribbon-marquee {
  margin-block-end:var(--space-lg);
}

.section-intro:not(.center):not(.timeline-head) h2::after {
  content:"";
  display:block;
  width:3rem;
  height:3px;
  margin-block-start:var(--space-sm);
  border-radius:999px;
  background:linear-gradient(90deg,var(--clr-ocean),var(--clr-peach));
}

.promo-flag {
  display:inline-flex;
  align-items:center;
  gap:var(--space-2xs);
  padding-inline:0.86rem;
  padding-block:0.48rem;
  border-radius:var(--radius-pill);
  background:linear-gradient(120deg,rgba(109,139,107,0.16),rgba(217,167,124,0.18));
  color:#394536;
  font-size:0.68rem;
  font-weight:700;
  letter-spacing:0.07em;
  text-transform:uppercase;
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.6);
}

.ridge-grid {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,242px),1fr));
  gap:clamp(var(--space-sm),2vw,var(--space-lg));
}

.ridge-grid > * {
  min-inline-size:0;
}

.card-soft {
  background:linear-gradient(152deg,var(--clr-paper) 0%,rgba(242,235,229,0.96) 60%,rgba(236,232,248,0.35) 100%);
  border-radius:calc(var(--radius-md) + 0.2rem);
  padding:clamp(1rem,4vw,var(--space-lg));
  border:1px solid rgba(92,77,107,0.14);
  box-shadow:0 0.5rem 1.45rem rgba(42,31,46,0.06);
  display:flex;
  flex-direction:column;
  gap:var(--space-sm);
  position:relative;
  overflow:hidden;
  transition:transform var(--transition-med),box-shadow var(--transition-med);
}

.card-soft::before {
  content:"";
  position:absolute;
  inset-block-start:0;
  inset-inline:0;
  height:4px;
  background:linear-gradient(90deg,var(--clr-peach),var(--clr-ocean));
  opacity:0.92;
}

.card-soft:hover {
  transform:translateY(-5px);
  box-shadow:0 0.85rem 2.1rem rgba(42,31,46,0.095);
}

.card-soft h3 {
  display:flex;
  align-items:center;
  gap:var(--space-xs);
}

.card-soft h3 i {
  width:2.05rem;
  height:2.05rem;
  display:inline-grid;
  place-items:center;
  border-radius:var(--radius-pill);
  background:rgba(237,229,246,0.85);
  color:var(--clr-ocean);
  margin-inline-end:0;
  font-size:0.92rem;
  box-shadow:0 2px 8px rgba(42,31,46,0.06);
}

.timeline-rail {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:clamp(var(--space-md),5vw,var(--space-xl));
  align-items:stretch;
}

.timeline-rail > * {
  min-inline-size:0;
}

.timeline-list li {
  border-radius:calc(var(--radius-md) + 0.15rem);
  border:1px solid rgba(92,77,107,0.15);
  border-inline-start-width:4px;
  border-inline-start-color:rgba(217,167,124,0.95);
  padding:var(--space-md);
  padding-inline-start:calc(var(--space-md) + 0.25rem);
  background:linear-gradient(100deg,#fffefb 0%,rgba(237,229,246,0.22) 100%);
  box-shadow:0 0.28rem 0.95rem rgba(42,31,46,0.04);
}

.split-panel img.cover {
  display:block;
  width:100%;
  max-width:100%;
  height:auto;
  border-radius:calc(var(--radius-md) + 0.35rem);
  object-fit:cover;
  aspect-ratio:1.55/1;
  border:1px solid rgba(92,77,107,0.13);
  box-shadow:0 0.85rem 2rem rgba(42,31,46,0.1),0 0 0 5px rgba(255,253,249,0.85);
}

.ribbon-marquee {
  display:flex;
  flex-wrap:wrap;
  gap:var(--space-xs);
  padding:var(--space-md);
  border-radius:calc(var(--radius-lg) + 0.35rem);
  background:linear-gradient(135deg,rgba(237,229,246,0.55) 0%,rgba(255,252,246,0.95) 50%,rgba(231,239,229,0.45) 100%);
  border:1px solid rgba(92,77,107,0.1);
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.85),0 0.35rem 1.2rem rgba(42,31,46,0.035);
}

.ribbon-marquee span {
  border-radius:var(--radius-pill);
  background:linear-gradient(180deg,#ffffff 0%,#fff9f5 100%);
  border:1px solid rgba(207,151,117,0.42);
  padding-inline:var(--space-sm);
  padding-block:0.52rem;
  font-size:0.71rem;
  font-weight:600;
  letter-spacing:0.02em;
  box-shadow:0 2px 8px rgba(42,31,46,0.04);
}

.quote-panel {
  background:linear-gradient(142deg,var(--clr-ocean) 0%,#4a3948 52%,#2f262b 100%);
  color:#fcf7f6;
  border-radius:calc(var(--radius-lg) + 0.35rem);
  padding:clamp(1.15rem,6.5vw,var(--space-xxl));
  display:grid;
  gap:var(--space-md);
  box-shadow:0 0.75rem 2.25rem rgba(42,31,46,0.18),inset 0 1px 0 rgba(255,255,255,0.1);
}

.quote-panel h1,
.quote-panel h2,
.quote-panel h3,
.quote-panel h4 {
  color:#fff8f5;
}

.quote-panel a {
  color:#f8e4cc;
}

.quote-panel a:hover {
  color:#fffefb;
}

.quote-panel a:active {
  color:#ead9f8;
}

.quote-panel strong {
  color:#fffaf7;
}

.map-card {
  width:100%;
  max-width:100%;
  border-radius:calc(var(--radius-lg) + 0.45rem);
  overflow:hidden;
  border:1px solid rgba(92,77,107,0.22);
  box-shadow:0 0.65rem 2rem rgba(42,31,46,0.12);
  background:linear-gradient(180deg,#32282f 0%,#211a1f 100%);
}

.map-card--framed {
  padding:clamp(0.5rem,2vw,0.85rem);
  margin-block-start:var(--space-sm);
}

.contact-page-map.map-card--framed {
  margin-block-start:clamp(1rem,4vw,var(--space-xl));
}

.map-card iframe {
  display:block;
  width:100%;
  max-width:100%;
  min-inline-size:0;
  border:0;
  min-height:350px;
  height:clamp(350px,48vw,450px);
  border-radius:var(--radius-md);
}

.disclaimer-well {
  background:linear-gradient(168deg,#fffcf9 0%,rgba(246,239,229,0.65) 100%);
  border-radius:calc(var(--radius-md) + 0.3rem);
  border:2px dashed rgba(92,77,107,0.38);
  padding:clamp(1.1rem,4.5vw,var(--space-xl));
  font-size:0.76rem;
  color:var(--clr-ink-muted);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,0.5);
}

.contact-layout {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,294px),1fr));
  gap:clamp(1rem,9vw,var(--space-xl));
}

.contact-layout > * {
  min-inline-size:0;
}

.contact-sheet {
  background:linear-gradient(168deg,rgba(255,252,244,0.99) 0%,rgba(236,232,246,0.35) 100%);
  border-radius:calc(var(--radius-lg) + 0.3rem);
  padding:clamp(1.25rem,6vw + 0.4rem,var(--space-xxl));
  border:1px solid rgba(92,77,107,0.18);
  box-shadow:0 0.4rem 1.5rem rgba(42,31,46,0.05);
}

.field {
  margin-block-start:var(--space-sm);
  display:flex;
  flex-direction:column;
  gap:var(--space-2xs);
}

.field-label {
  font-size:0.72rem;
  font-weight:700;
  letter-spacing:0.04em;
}

.input {
  border-radius:var(--radius-md);
  border:1px solid rgba(92,77,107,0.32);
  padding:0.8rem;
  font:inherit;
  background:#fffefb;
}

.input:focus-visible {
  outline:2px solid rgba(109,139,107,0.65);
}

.field-error {
  font-size:0.71rem;
  color:#94342c;
  min-block-size:0;
  margin:0;
  padding:0;
  max-block-size:0;
  overflow:hidden;
  transition:max-block-size 0.2s ease, min-block-size 0.2s ease, margin-block-start 0.2s ease;
}

.field-error:not(:empty) {
  min-block-size:0.94rem;
  max-block-size:4rem;
  margin-block-start:0.28rem;
}

.consent-stack {
  display:flex;
  align-items:flex-start;
  gap:var(--space-xs);
  margin-block-start:var(--space-md);
}

.consent-stack input {
  margin-block-start:0.18rem;
}

.site-footer {
  margin-block-start:auto;
}

.site-footer.inner {
  width:100%;
  max-width:none;
  margin-inline:0;
  box-sizing:border-box;
  padding-inline:clamp(1rem,4vw,var(--space-xl));
}

.site-footer.inner > .footer-grid {
  width:min(1180px,100%);
  max-width:100%;
  margin-inline:auto;
}

.site-footer.inner > .footer-meta {
  max-width:min(1180px,100%);
  margin-inline:auto;
  margin-block-end:clamp(1rem,4vw,var(--space-lg));
}

.footer-well {
  background:#1c151a;
  color:#f0e8e4;
}

.footer-well a {
  color:#e5d7f4;
}

.footer-grid {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(226px,1fr));
  gap:var(--space-lg);
  padding-block:clamp(1rem,10vw,var(--space-xl));
}

.footer-well h3 {
  color:#f3ddd0;
  font-size:clamp(1rem,0.96vw + 0.74rem,1.15rem);
}

.footer-meta {
  font-size:0.72rem;
  color:rgba(235,226,238,0.88);
}

.pill-strip {
  display:flex;
  flex-wrap:wrap;
  gap:var(--space-xs);
}

.pill-soft {
  padding-inline:0.78rem;
  padding-block:0.42rem;
  border-radius:var(--radius-pill);
  background:rgba(56,42,58,0.88);
}

.center-page {
  min-height:clamp(340px,60vh + 5rem,650px);
  display:grid;
  place-items:center;
}

.center-page article {
  text-align:center;
  max-width:none;
}

.center-page article p {
  max-width:none;
  margin-inline:auto;
}

.mini-link-list {
  list-style:none;
  margin:var(--space-md) auto 0;
  padding:0;
  display:flex;
  flex-wrap:wrap;
  gap:var(--space-sm);
  justify-content:center;
}

.legal-sheet {
  background:#fdfbf9;
}

.legal-meta {
  display:flex;
  flex-wrap:wrap;
  gap:var(--space-sm);
  align-items:flex-end;
}

.table-scroll {
  margin-block-start:var(--space-md);
  overflow:auto;
  border-radius:var(--radius-sm);
}

.legal-table {
  width:100%;
  border-collapse:collapse;
  font-size:0.74rem;
  background:#fffefb;
}

.legal-table th,
.legal-table td {
  border:1px solid rgba(92,77,107,0.22);
  padding:var(--space-sm);
}

.legal-table th {
  text-align:left;
  background:rgba(236,232,242,0.95);
}

.home-button {
  display:inline-flex;
  align-items:center;
  gap:var(--space-2xs);
  padding-inline:1.08rem;
  padding-block:0.68rem;
  border-radius:var(--radius-pill);
  border:1px solid transparent;
  cursor:pointer;
  font-size:0.8rem;
  font-weight:600;
  text-decoration:none;
  margin-block-start:var(--space-xl);
  background:linear-gradient(118deg,var(--clr-peach),#fff6ec);
  color:#382a29;
  transition:background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast),box-shadow var(--transition-fast);
}

.home-button:hover {
  color:#5c4d6b;
  box-shadow:var(--shadow-chip);
}

.cookie-heading {
  font-size:clamp(0.94rem,0.92vw + 0.62rem,1.05rem);
  margin-block-end:var(--space-xs);
}

.cookie-panel {
  position:fixed;
  z-index:1200;
  inset-block-end:0;
  inset-inline:clamp(6px,2vw,var(--space-md));
  max-width:460px;
  margin-inline:auto;
  margin-block-end:var(--space-md);
  transition:opacity 0.28s ease, transform 0.34s ease, visibility 0.28s step-end;
}

.cookie-panel.is-hidden-node {
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translateY(calc(100% + 4rem));
  transition:opacity 0.26s ease, transform 0.34s ease, visibility 0.28s step-start;
}

.cookie-panel-inner {
  background:#1a1418;
  color:#f2e9f4;
  border-radius:var(--radius-lg);
  padding:clamp(1rem,5vw,var(--space-lg));
  border:1px solid rgba(219,197,232,0.22);
}

.cookie-buttons {
  display:flex;
  flex-wrap:wrap;
  gap:var(--space-xs);
}

.cookie-settings-inner {
  margin-block-start:0;
  overflow:hidden;
  max-block-size:0;
  opacity:0;
  pointer-events:none;
  transition:opacity 0.22s ease, max-block-size 0.38s ease, margin-block-start 0.22s ease;
}

.cookie-settings-inner.open {
  margin-block-start:var(--space-md);
  overflow:visible;
  max-block-size:80rem;
  opacity:1;
  pointer-events:auto;
}

.cookie-toggle-row {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:var(--space-xs);
}

.privacy-chip {
  position:fixed;
  inset-block-start:clamp(84px,9vw,var(--space-xl));
  inset-inline-end:clamp(6px,2vw,var(--space-md));
  z-index:1150;
  max-width:400px;
  opacity:0;
  pointer-events:none;
  transform:translateX(calc(100% + 2rem));
  transition:opacity 0.28s ease, transform 0.34s ease, visibility 0.28s step-end;
  visibility:hidden;
}

.privacy-chip.is-visible {
  opacity:1;
  pointer-events:auto;
  transform:translateX(0);
  visibility:visible;
  transition:opacity 0.28s ease, transform 0.34s ease, visibility 0.28s step-start;
}

.privacy-chip-inner {
  background:#1a1418;
  color:#f2e9f4;
  border-radius:var(--radius-lg);
  padding:clamp(1rem,4vw,var(--space-lg));
  border:1px solid rgba(219,197,232,0.26);
}

.badge-dot {
  display:inline-flex;
  align-items:center;
  gap:0.26rem;
  font-weight:700;
  font-size:0.74rem;
  color:#dfd0ec;
}

.badge-dot::before {
  content:"";
  width:9px;
  height:9px;
  border-radius:var(--radius-pill);
  background:var(--clr-moss);
}

@media (max-width:868px) {
  .timeline-rail {
    grid-template-columns:1fr;
  }

  .nav-menu.desktop-nav {
    display:none;
  }

  .hero-shell {
    grid-template-columns:1fr;
  }

  .figure-stage {
    order:-1;
  }

  body.menus-open {
    overflow:hidden;
  }
}

@media (min-width:869px) {
  .mobile-menu {
    display:none !important;
  }

  .menu-toggle {
    display:none !important;
  }

  body.menus-open {
    overflow:auto;
  }
}

@media (prefers-reduced-motion:reduce) {
  *,
  *::before,
  *::after {
    animation-duration:0.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:0.01ms !important;
    scroll-behavior:auto !important;
  }

  .card-soft:hover {
    transform:none !important;
  }
}
