:root {
  --ink: #050505;
  --ink-soft: #0a0a09;
  --panel: #0e0d0b;
  --panel-warm: #14110c;
  --ivory: #eee8dc;
  --ivory-soft: #d8d0c2;
  --muted: #aaa093;
  --gold: #cda95a;
  --gold-light: #e5c77e;
  --gold-dark: #7f5b1f;
  --red: #6c1015;
  --line: rgba(205, 169, 90, 0.30);
  --line-soft: rgba(205, 169, 90, 0.16);
  --shadow: 0 28px 80px rgba(0, 0, 0, 0.48);
  --max: 1240px;
  --reading: 820px;
  --header-h: 88px;
  --seal-size: 178px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--ink); }
body {
  margin: 0;
  min-width: 320px;
  overflow-x: hidden;
  background:
    radial-gradient(circle at 50% -20%, rgba(114, 83, 29, .17), transparent 34%),
    var(--ink);
  color: var(--ivory);
  font-family: Arial, Helvetica, sans-serif;
  font-size: 16px;
  line-height: 1.72;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

img { display: block; max-width: 100%; }
a { color: inherit; }
button, input, textarea, select { font: inherit; }
::selection { background: rgba(205, 169, 90, .36); color: #fff; }

.skip-link {
  position: fixed;
  left: 16px;
  top: -80px;
  z-index: 1000;
  padding: 10px 14px;
  background: var(--gold);
  color: #080706;
  text-decoration: none;
  transition: top .2s ease;
}
.skip-link:focus { top: 16px; }

.container {
  width: min(calc(100% - 44px), var(--max));
  margin-inline: auto;
}
.reading-width {
  width: min(calc(100% - 44px), var(--reading));
  margin-inline: auto;
}

/* Header */
.site-header {
  position: fixed;
  inset: 0 0 auto;
  z-index: 100;
  height: var(--header-h);
  background: linear-gradient(180deg, rgba(3,3,3,.96), rgba(3,3,3,.86));
  border-bottom: 1px solid var(--line-soft);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  transition: background .35s ease, box-shadow .35s ease, border-color .35s ease;
}
.site-header.is-scrolled {
  background: rgba(3,3,3,.985);
  border-color: var(--line);
  box-shadow: 0 18px 48px rgba(0,0,0,.54);
}
.header-inner {
  width: min(calc(100% - 42px), 1460px);
  height: 100%;
  margin-inline: auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
}
.brand {
  min-width: 0;
  display: inline-flex;
  align-items: center;
  gap: 16px;
  text-decoration: none;
}
.brand-mark {
  width: 58px;
  height: 62px;
  flex: 0 0 auto;
  object-fit: contain;
  filter: drop-shadow(0 0 12px rgba(205,169,90,.17));
  transition: transform .3s ease, filter .3s ease;
}
.brand:hover .brand-mark,
.brand:focus-visible .brand-mark {
  transform: translateY(-1px) scale(1.025);
  filter: drop-shadow(0 0 16px rgba(205,169,90,.34));
}
.brand-copy {
  display: grid;
  gap: 2px;
  white-space: nowrap;
}
.brand-name {
  font-family: Georgia, "Times New Roman", serif;
  color: var(--gold-light);
  font-size: 15px;
  letter-spacing: .15em;
  text-transform: uppercase;
}
.brand-subtitle {
  color: rgba(238,232,220,.62);
  font-size: 10px;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.nav {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: clamp(18px, 2.25vw, 36px);
}
.nav a {
  position: relative;
  padding-block: 31px 28px;
  color: rgba(238,232,220,.83);
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: .14em;
  font-size: 12px;
  white-space: nowrap;
  transition: color .25s ease;
}
.nav a::after {
  content: "";
  position: absolute;
  left: 0;
  right: 100%;
  bottom: 17px;
  height: 1px;
  background: linear-gradient(90deg, var(--gold-dark), var(--gold-light));
  box-shadow: 0 0 10px rgba(205,169,90,.25);
  transition: right .28s ease;
}
.nav a:hover,
.nav a:focus-visible,
.nav a.active { color: var(--gold-light); }
.nav a:hover::after,
.nav a:focus-visible::after,
.nav a.active::after { right: 0; }

.menu-button {
  display: none;
  width: 47px;
  height: 47px;
  padding: 0;
  border: 1px solid var(--line);
  background: rgba(9,9,9,.82);
  color: var(--ivory);
  align-items: center;
  justify-content: center;
  cursor: pointer;
}
.menu-button-lines,
.menu-button-lines::before,
.menu-button-lines::after {
  display: block;
  width: 21px;
  height: 1px;
  background: var(--gold-light);
  transition: transform .25s ease, opacity .25s ease;
}
.menu-button-lines { position: relative; }
.menu-button-lines::before,
.menu-button-lines::after { content: ""; position: absolute; left: 0; }
.menu-button-lines::before { top: -7px; }
.menu-button-lines::after { top: 7px; }
.menu-button[aria-expanded="true"] .menu-button-lines { background: transparent; }
.menu-button[aria-expanded="true"] .menu-button-lines::before { transform: translateY(7px) rotate(45deg); }
.menu-button[aria-expanded="true"] .menu-button-lines::after { transform: translateY(-7px) rotate(-45deg); }

/* Hero */
.page-hero {
  --hero-image: url('/assets/images/bg-home-hero.webp');
  position: relative;
  min-height: min(820px, 86svh);
  margin-top: var(--header-h);
  overflow: hidden;
  display: grid;
  place-items: center;
  isolation: isolate;
  border-bottom: 1px solid var(--line);
}
.page-hero--home { --hero-image: url('/assets/images/bg-home-hero.webp'); }
.page-hero--initiation { --hero-image: url('/assets/images/bg-initiation.webp?v=2.1.2'); }
.page-hero--ritual { --hero-image: url('/assets/images/hero-ritual-v2-1-6.webp'); }
.page-hero--calendar { --hero-image: url('/assets/images/hero-calendar-v2-1-3.webp'); }
.page-hero--contact { --hero-image: url('/assets/images/hero-contact-v2-1-3.webp'); }
.hero-media {
  position: absolute;
  inset: -1.5%;
  z-index: -3;
  background-color: #050505;
  background-image: var(--hero-image);
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
  transform: translate3d(0, var(--hero-y, 0px), 0) scale(1.02);
  transform-origin: center center;
  backface-visibility: hidden;
  will-change: transform;
  animation: hero-breathe 28s ease-in-out infinite alternate;
}
.page-hero--home .hero-media { background-position: center 48%; }
.page-hero--initiation .hero-media { background-position: center 54%; }
.page-hero--ritual .hero-media { background-position: center 52%; }
.page-hero--calendar .hero-media,
.page-hero--contact .hero-media { background-position: center; }
.hero-scrim {
  position: absolute;
  inset: 0;
  z-index: -2;
  background:
    radial-gradient(circle at 50% 42%, transparent 0, rgba(0,0,0,.12) 35%, rgba(0,0,0,.56) 100%),
    linear-gradient(180deg, rgba(0,0,0,.22), rgba(0,0,0,.12) 42%, rgba(0,0,0,.77));
}
.page-hero--initiation .hero-scrim {
  background:
    linear-gradient(180deg, rgba(0,0,0,.67), rgba(0,0,0,.18) 46%, rgba(0,0,0,.50)),
    radial-gradient(circle at 50% 22%, rgba(205,169,90,.11), transparent 40%);
}
.hero-inner {
  width: min(calc(100% - 40px), 1160px);
  margin-inline: auto;
  padding: 96px 20px 150px;
  text-align: center;
  text-shadow: 0 3px 28px rgba(0,0,0,.92);
  transform: translate3d(0, var(--hero-copy-y, 0px), 0);
  will-change: transform;
}
.hero-eyebrow {
  margin: 0;
  color: var(--gold-light);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(12px, 1.35vw, 17px);
  letter-spacing: .32em;
  text-transform: uppercase;
}
.hero-title {
  margin: .22em 0 .16em;
  color: #fffaf1;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(48px, 7.1vw, 108px);
  font-weight: 400;
  line-height: 1.02;
  letter-spacing: -.025em;
}
.page-hero:not(.page-hero--home) .hero-title {
  font-size: clamp(46px, 6.4vw, 92px);
}
.hero-subtitle {
  margin: 0;
  color: var(--ivory);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(17px, 2vw, 25px);
  letter-spacing: .11em;
}
.hero-ornament {
  width: min(440px, 78vw);
  height: 30px;
  margin: 17px auto 12px;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 16px;
  color: var(--gold);
}
.hero-ornament::before,
.hero-ornament::after {
  content: "";
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--gold));
}
.hero-ornament::after { transform: scaleX(-1); }
.hero-ornament span {
  width: 18px;
  height: 18px;
  display: grid;
  place-items: center;
  border: 1px solid var(--gold);
  transform: rotate(45deg);
  box-shadow: 0 0 16px rgba(205,169,90,.22);
}
.hero-ornament span::before {
  content: "";
  width: 6px;
  height: 6px;
  border: 1px solid var(--gold-light);
}
.scroll-cue {
  position: absolute;
  left: 50%;
  bottom: 45px;
  z-index: 2;
  width: 34px;
  height: 34px;
  margin-left: -17px;
  border: 0;
  text-indent: -9999px;
}
.scroll-cue::before,
.scroll-cue::after {
  content: "";
  position: absolute;
  width: 13px;
  height: 13px;
  border-right: 1px solid var(--gold-light);
  border-bottom: 1px solid var(--gold-light);
  transform: rotate(45deg);
  left: 10px;
  animation: cue 2.3s ease-in-out infinite;
}
.scroll-cue::before { top: 2px; }
.scroll-cue::after { top: 10px; animation-delay: .2s; }

/* Seal bridge */
.seal-bridge {
  position: relative;
  z-index: 12;
  height: calc(var(--seal-size) * .55);
  margin-top: calc(var(--seal-size) * -.42);
  pointer-events: none;
}
.seal-bridge-inner {
  width: min(calc(100% - 28px), 1500px);
  margin-inline: auto;
  display: grid;
  grid-template-columns: 1fr var(--seal-size) 1fr;
  align-items: center;
  gap: 18px;
}
.seal-line {
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--gold));
  position: relative;
  box-shadow: 0 0 10px rgba(205,169,90,.13);
}
.seal-line:last-child { transform: scaleX(-1); }
.seal-line::after {
  content: "";
  position: absolute;
  right: -3px;
  top: -3px;
  width: 7px;
  height: 7px;
  background: var(--gold);
  transform: rotate(45deg);
}
.lodge-seal {
  width: var(--seal-size);
  height: var(--seal-size);
  padding: 11px;
  border: 1px solid var(--gold);
  border-radius: 50%;
  background:
    radial-gradient(circle at 42% 35%, rgba(54,42,20,.75), rgba(5,5,5,.97) 66%),
    #060606;
  box-shadow:
    0 18px 44px rgba(0,0,0,.62),
    inset 0 0 0 5px rgba(205,169,90,.06),
    0 0 24px rgba(205,169,90,.12);
}
.lodge-seal img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

/* Generic sections */
.section {
  position: relative;
  padding: clamp(78px, 9vw, 130px) 0;
}
.section--tight { padding-block: clamp(62px, 7vw, 92px); }
.section--dark { background: #070707; }
.section--warm {
  background:
    radial-gradient(circle at 70% 10%, rgba(205,169,90,.08), transparent 34%),
    linear-gradient(145deg, #0d0c0a, #070707 56%);
}
.section-kicker {
  margin: 0 0 10px;
  color: var(--gold);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .24em;
  text-transform: uppercase;
}
.section-title,
.content-title {
  margin: 0 0 28px;
  color: #fffaf2;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(34px, 4.6vw, 59px);
  font-weight: 400;
  line-height: 1.14;
}
.section-title::after,
.content-title::after {
  content: "";
  display: block;
  width: 76px;
  height: 1px;
  margin-top: 22px;
  background: linear-gradient(90deg, var(--gold-light), var(--gold-dark));
}
.section-title--center { text-align: center; }
.section-title--center::after { margin-inline: auto; }
.lead {
  margin-top: 0;
  color: #f3ede2;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(19px, 2vw, 24px);
  line-height: 1.65;
}
p { margin: 0 0 1.35em; }
p:last-child { margin-bottom: 0; }

/* Full-background scenes */
.scene {
  --scene-image: url('/assets/images/bg-home-intro.webp');
  position: relative;
  min-height: min(900px, 92svh);
  padding: clamp(105px, 10vw, 155px) 0;
  display: flex;
  align-items: center;
  isolation: isolate;
  overflow: hidden;
  border-bottom: 1px solid var(--line-soft);
}
.scene--home-intro { --scene-image: url('/assets/images/bg-home-intro.webp'); }
.scene--roses { --scene-image: url('/assets/images/bg-roses.webp'); }
.scene--ritual { --scene-image: url('/assets/images/scene-ritual-v2-1-6.webp'); }
.scene--calendar { --scene-image: url('/assets/images/bg-calendar.webp'); }
.scene--contact { --scene-image: url('/assets/images/bg-contact.webp'); }
.scene--ritual .scene-bg { background-position: center 48%; }
.scene-bg {
  position: absolute;
  inset: -8%;
  z-index: -3;
  background-image: var(--scene-image);
  background-size: cover;
  background-position: center;
  transform: translate3d(0, var(--scene-y, 0px), 0) scale(1.08);
  will-change: transform;
}
.scene::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -2;
  background:
    linear-gradient(90deg, rgba(4,4,4,.97) 0%, rgba(4,4,4,.88) 42%, rgba(4,4,4,.28) 72%, rgba(4,4,4,.22) 100%),
    linear-gradient(180deg, rgba(0,0,0,.18), rgba(0,0,0,.56));
}
.scene-content {
  width: min(100%, 720px);
  padding: clamp(26px, 4vw, 52px);
  border-left: 1px solid var(--gold);
  background: linear-gradient(90deg, rgba(5,5,5,.82), rgba(5,5,5,.56), transparent);
  box-shadow: -36px 0 90px rgba(0,0,0,.28);
}
.scene-content--right {
  margin-left: auto;
  border-left: 0;
  border-right: 1px solid var(--gold);
  background: linear-gradient(270deg, rgba(5,5,5,.88), rgba(5,5,5,.62), transparent);
}

/* Home */
.home-intro-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(300px, .95fr);
  align-items: stretch;
  gap: clamp(40px, 7vw, 100px);
}
.home-intro-grid .scene-content { align-self: center; }
.home-facts {
  align-self: end;
  display: grid;
  gap: 1px;
  border: 1px solid var(--line);
  background: rgba(4,4,4,.66);
  backdrop-filter: blur(6px);
}
.home-fact {
  display: grid;
  grid-template-columns: 74px 1fr;
  gap: 20px;
  padding: 22px 24px;
  border-bottom: 1px solid var(--line-soft);
}
.home-fact:last-child { border-bottom: 0; }
.home-fact strong {
  color: var(--gold-light);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 28px;
  font-weight: 400;
}
.home-fact span { color: var(--ivory-soft); font-size: 14px; }

.history-grid {
  display: grid;
  grid-template-columns: .78fr 1.22fr;
  gap: clamp(42px, 8vw, 110px);
  align-items: start;
}
.history-aside {
  position: sticky;
  top: calc(var(--header-h) + 40px);
}
.history-year {
  display: block;
  color: rgba(205,169,90,.22);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(80px, 11vw, 150px);
  line-height: .8;
}
.history-copy {
  column-count: 2;
  column-gap: 44px;
  color: var(--ivory-soft);
}
.history-copy p { break-inside: avoid; }

.today-panel {
  max-width: 850px;
  padding: clamp(32px, 5vw, 62px);
  border: 1px solid var(--line);
  background: rgba(5,5,5,.77);
  backdrop-filter: blur(8px);
  box-shadow: var(--shadow);
}
.today-panel .section-title { max-width: 620px; }

.button {
  min-height: 49px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  margin-top: 18px;
  padding: 12px 24px;
  border: 1px solid var(--gold);
  background: rgba(5,5,5,.28);
  color: var(--gold-light);
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: .13em;
  font-size: 11px;
  transition: color .25s ease, background .25s ease, transform .25s ease, box-shadow .25s ease;
}
.button::after { content: "›"; font-size: 20px; line-height: 1; }
.button:hover,
.button:focus-visible {
  color: #080706;
  background: var(--gold-light);
  transform: translateY(-2px);
  box-shadow: 0 12px 30px rgba(205,169,90,.16);
}

/* Initiation / mosaic */
.labyrinth-quote {
  padding: clamp(70px, 9vw, 124px) 22px;
  background:
    radial-gradient(circle at 50% 50%, rgba(205,169,90,.08), transparent 36%),
    #070707;
  text-align: center;
  border-bottom: 1px solid var(--line-soft);
}
.labyrinth-quote p {
  max-width: 870px;
  margin-inline: auto;
  color: #f4eee3;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(22px, 3vw, 37px);
  line-height: 1.72;
}
.labyrinth-quote span { display: block; }
.labyrinth-quote span:nth-child(even) { color: var(--gold-light); }

.mosaic-wrap {
  padding: clamp(76px, 9vw, 130px) 0;
  background: #080808;
}
.mosaic-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border: 1px solid var(--gold-dark);
  box-shadow: var(--shadow);
}
.mosaic-tile {
  min-height: 360px;
  padding: clamp(34px, 5vw, 72px);
  display: flex;
  flex-direction: column;
  justify-content: center;
  border: 1px solid rgba(127,91,31,.56);
}
.mosaic-tile--dark {
  background:
    radial-gradient(circle at 85% 10%, rgba(205,169,90,.09), transparent 32%),
    #070707;
  color: var(--ivory);
}
.mosaic-tile--light {
  background:
    linear-gradient(145deg, rgba(255,255,255,.48), transparent 42%),
    #ded8cb;
  color: #16130f;
}
.mosaic-tile h2,
.mosaic-tile h3 {
  margin: 0 0 20px;
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 400;
  font-size: clamp(28px, 3.5vw, 44px);
  line-height: 1.16;
}
.mosaic-tile--dark h2,
.mosaic-tile--dark h3 { color: var(--gold-light); }
.mosaic-tile--light h2,
.mosaic-tile--light h3 { color: #3c2b10; }
.mosaic-tile p { margin-bottom: 1em; }
.mosaic-mark {
  margin-bottom: 24px;
  color: var(--gold);
  font-family: Georgia, serif;
  font-size: 18px;
  letter-spacing: .24em;
  text-transform: uppercase;
}

/* Ritual */
.ritual-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(330px, .78fr);
  gap: clamp(44px, 8vw, 110px);
  align-items: start;
}
.ritual-copy {
  padding: clamp(34px, 5vw, 64px);
  background: rgba(5,5,5,.82);
  border-left: 1px solid var(--gold);
  box-shadow: var(--shadow);
  backdrop-filter: blur(8px);
}
.ritual-copy h2,
.ritual-copy h3 {
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 400;
}
.ritual-copy h2 { font-size: clamp(34px, 4vw, 52px); margin: 0 0 26px; }
.ritual-copy h3 { color: var(--gold-light); font-size: 27px; margin: 45px 0 18px; }
.ritual-quote {
  position: sticky;
  top: calc(var(--header-h) + 42px);
  padding: 38px;
  border: 1px solid var(--line);
  background: rgba(12,10,7,.84);
  color: var(--ivory);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 22px;
  line-height: 1.75;
}
.ritual-quote::before {
  content: "“";
  display: block;
  color: rgba(205,169,90,.35);
  font-size: 84px;
  line-height: .6;
}

.symbol-section { background: #070707; }
.symbol-intro {
  max-width: 980px;
  margin: 28px 0 48px;
}
.symbol-intro > p {
  margin: 0 0 20px;
  color: var(--muted);
  font-size: clamp(15px, 1.25vw, 17px);
  line-height: 1.85;
}
.symbol-intro blockquote {
  margin: 30px 0;
  padding: 4px 0 4px 26px;
  border-left: 1px solid var(--gold);
}
.symbol-intro blockquote p {
  margin: 0;
  color: #efe2bf;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(18px, 1.8vw, 23px);
  line-height: 1.6;
}
.symbol-intro blockquote p + p {
  margin-top: 8px;
}
.symbol-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  background: var(--line-soft);
  border: 1px solid var(--line-soft);
}
.symbol-card {
  min-height: 280px;
  padding: 32px;
  background: linear-gradient(145deg, #11100e, #080808 74%);
  transition: background .28s ease, transform .28s ease;
}
.symbol-card:hover { background: linear-gradient(145deg, #17130d, #090909 74%); transform: translateY(-2px); }
.symbol-card-mark {
  width: 104px;
  height: 84px;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  color: var(--gold-light);
  font-family: Georgia, serif;
  font-size: 52px;
  line-height: 1;
}
.symbol-card-mark img {
  display: block;
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: 82px;
  object-fit: contain;
  object-position: left center;
  filter: drop-shadow(0 5px 12px rgba(205,169,90,.16));
}
.symbol-card-mark img.symbol-image--wide {
  width: 104px;
  max-height: 60px;
}
.symbol-card-mark img.symbol-image--plumb {
  max-height: 84px;
}
.symbol-card-mark img.symbol-image--original {
  width: 72px;
  max-height: 78px;
}
.symbol-card h3 {
  margin: 12px 0 12px;
  color: #fff7ea;
  font-family: Georgia, serif;
  font-size: 24px;
  font-weight: 400;
}
.symbol-card p { color: var(--muted); font-size: 14px; line-height: 1.7; }

/* Calendar */
.calendar-shell {
  position: relative;
  padding: clamp(80px, 9vw, 128px) 0;
  background:
    linear-gradient(rgba(5,5,5,.88), rgba(5,5,5,.92)),
    url('/assets/images/bg-calendar.webp') center / cover fixed;
}
.calendar-intro {
  max-width: 800px;
  margin-bottom: 50px;
}
.calendar-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 22px;
}
.month-card {
  position: relative;
  overflow: hidden;
  padding: 30px 30px 24px;
  border: 1px solid var(--line);
  background:
    radial-gradient(circle at 100% 0, rgba(205,169,90,.10), transparent 34%),
    rgba(11,10,8,.91);
  box-shadow: 0 18px 40px rgba(0,0,0,.22);
}
.month-card::before {
  content: attr(data-number);
  position: absolute;
  right: 17px;
  top: -18px;
  color: rgba(205,169,90,.08);
  font-family: Georgia, serif;
  font-size: 104px;
  line-height: 1;
}
.month-card h2 {
  position: relative;
  margin: 0 0 20px;
  color: var(--gold-light);
  font-family: Georgia, serif;
  font-size: 31px;
  font-weight: 400;
}
.event {
  position: relative;
  display: grid;
  grid-template-columns: 84px 66px minmax(0, 1fr);
  gap: 12px;
  padding: 14px 0;
  border-top: 1px solid rgba(205,169,90,.13);
  color: var(--ivory-soft);
}
.event strong { color: #fff6e9; font-weight: 500; }
.event time { color: var(--gold); font-variant-numeric: tabular-nums; }
.event span:last-child { line-height: 1.55; }
.calendar-legend {
  margin-top: 34px;
  padding: 18px 22px;
  border-left: 1px solid var(--gold);
  color: var(--muted);
  background: rgba(5,5,5,.68);
  font-size: 13px;
}

/* Contact */
.contact-layout {
  display: grid;
  grid-template-columns: minmax(0, .82fr) minmax(360px, 1.18fr);
  gap: clamp(42px, 8vw, 110px);
  align-items: center;
}
.contact-copy {
  max-width: 590px;
}
.contact-card {
  padding: clamp(36px, 5vw, 68px);
  border: 1px solid var(--line);
  background:
    radial-gradient(circle at 100% 0, rgba(205,169,90,.13), transparent 36%),
    rgba(5,5,5,.86);
  box-shadow: var(--shadow);
  backdrop-filter: blur(9px);
}
.contact-card h2 {
  margin: 0 0 28px;
  color: #fff7ea;
  font-family: Georgia, serif;
  font-size: clamp(34px, 4vw, 52px);
  font-weight: 400;
  line-height: 1.16;
}
.contact-card address { font-style: normal; color: var(--ivory-soft); }
.contact-card .label {
  display: block;
  margin-top: 28px;
  color: var(--gold);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .2em;
  text-transform: uppercase;
}
.contact-card a {
  display: inline-block;
  margin-top: 8px;
  color: var(--gold-light);
  text-decoration: none;
  font-family: Georgia, serif;
  font-size: 23px;
  border-bottom: 1px solid rgba(205,169,90,.42);
}
.contact-card a:hover,
.contact-card a:focus-visible { color: #fff; border-color: var(--gold-light); }

/* Footer */
.site-footer {
  position: relative;
  overflow: hidden;
  border-top: 1px solid var(--line);
  background:
    radial-gradient(circle at 10% 20%, rgba(205,169,90,.06), transparent 28%),
    #050505;
}
.footer-main {
  display: grid;
  grid-template-columns: 1.15fr .8fr 1fr 1.15fr;
  gap: 0;
  padding: 70px 0 54px;
}
.footer-column {
  min-height: 180px;
  padding: 0 34px;
  border-left: 1px solid var(--line-soft);
}
.footer-column:first-child { padding-left: 0; border-left: 0; }
.footer-column:last-child { padding-right: 0; }
.footer-seal {
  width: 142px;
  height: 142px;
  opacity: .18;
}
.footer-heading {
  margin: 0 0 17px;
  color: var(--gold);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .2em;
  text-transform: uppercase;
}
.footer-nav { display: grid; gap: 8px; }
.footer-nav a,
.footer-contact a {
  color: var(--ivory-soft);
  text-decoration: none;
  font-family: Georgia, serif;
  font-size: 15px;
}
.footer-nav a:hover,
.footer-contact a:hover { color: var(--gold-light); }
.footer-contact { color: var(--ivory-soft); font-family: Georgia, serif; font-size: 15px; line-height: 1.7; }
.footer-phrase {
  color: var(--ivory-soft);
  font-family: Georgia, serif;
  font-size: 17px;
  line-height: 1.75;
}
.footer-ornament {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 24px;
  color: var(--gold);
}
.footer-ornament::before,
.footer-ornament::after { content: ""; flex: 1; height: 1px; background: var(--line); }
.footer-bottom {
  padding: 22px 0 30px;
  border-top: 1px solid var(--line-soft);
  color: rgba(216,208,194,.52);
  text-align: center;
  font-size: 12px;
  letter-spacing: .04em;
}

/* 404 */
.error-page {
  min-height: 100svh;
  display: grid;
  place-items: center;
  padding: 110px 22px 60px;
  background:
    linear-gradient(rgba(0,0,0,.78), rgba(0,0,0,.92)),
    url('/assets/images/bg-home-hero.webp') center / cover;
  text-align: center;
}
.error-card { max-width: 680px; }
.error-code {
  color: rgba(205,169,90,.30);
  font-family: Georgia, serif;
  font-size: clamp(110px, 24vw, 240px);
  line-height: .78;
}
.error-card h1 { font: 400 clamp(36px,6vw,64px)/1.1 Georgia,serif; margin: 24px 0; }

/* Motion */
.reveal {
  opacity: 0;
  transform: translate3d(0, 30px, 0);
  transition: opacity .8s ease, transform .8s cubic-bezier(.2,.75,.2,1);
}
.reveal.is-visible { opacity: 1; transform: none; }
.reveal[data-delay="1"] { transition-delay: 90ms; }
.reveal[data-delay="2"] { transition-delay: 180ms; }
.reveal[data-delay="3"] { transition-delay: 270ms; }

@keyframes hero-breathe {
  from { transform: translate3d(0,var(--hero-y,0px),0) scale(1.018); }
  to { transform: translate3d(0,var(--hero-y,0px),0) scale(1.04); }
}
@keyframes cue {
  0%, 100% { transform: translateY(0) rotate(45deg); opacity: .45; }
  50% { transform: translateY(6px) rotate(45deg); opacity: 1; }
}

/* Responsive */
@media (max-width: 1120px) {
  .brand-subtitle { display: none; }
  .nav { gap: 18px; }
  .nav a { font-size: 11px; letter-spacing: .11em; }
  .history-grid { grid-template-columns: 1fr; }
  .history-aside { position: static; }
  .history-year { font-size: 92px; }
  .ritual-layout { grid-template-columns: 1fr; }
  .ritual-quote { position: static; }
  .footer-main { grid-template-columns: repeat(2, 1fr); row-gap: 44px; }
  .footer-column:nth-child(3) { border-left: 0; padding-left: 0; }
}

@media (max-width: 900px) {
  :root { --header-h: 78px; --seal-size: 142px; }
  .header-inner { width: min(calc(100% - 28px), 1460px); gap: 16px; }
  .brand-mark { width: 50px; height: 54px; }
  .brand-name { font-size: 13px; }
  .menu-button { display: inline-flex; }
  .nav {
    position: fixed;
    inset: var(--header-h) 0 auto;
    display: grid;
    gap: 0;
    padding: 10px 20px 22px;
    background: rgba(4,4,4,.985);
    border-bottom: 1px solid var(--line);
    box-shadow: 0 24px 52px rgba(0,0,0,.58);
    transform: translateY(-130%);
    opacity: 0;
    pointer-events: none;
    transition: transform .28s ease, opacity .28s ease;
  }
  .nav.is-open { transform: translateY(0); opacity: 1; pointer-events: auto; }
  .nav a { padding: 15px 6px; border-bottom: 1px solid var(--line-soft); font-size: 12px; }
  .nav a::after { bottom: 8px; }
  .page-hero { min-height: min(760px, 84svh); }
  .hero-inner { padding-bottom: 128px; }
  .home-intro-grid,
  .contact-layout { grid-template-columns: 1fr; }
  .home-facts { max-width: 640px; }
  .history-copy { column-count: 1; }
  .mosaic-grid { grid-template-columns: 1fr; }
  .mosaic-tile:nth-child(3),
  .mosaic-tile:nth-child(4) { order: initial; }
  .symbol-grid { grid-template-columns: repeat(2, 1fr); }
  .calendar-grid { grid-template-columns: 1fr; }
  .scene { min-height: auto; }
  .scene::after {
    background: linear-gradient(90deg, rgba(4,4,4,.96), rgba(4,4,4,.72) 70%, rgba(4,4,4,.48));
  }
  .scene-content { width: min(100%, 680px); }
}

@media (max-width: 640px) {
  :root { --seal-size: 112px; }
  body { font-size: 15px; }
  .container,
  .reading-width { width: min(calc(100% - 30px), var(--max)); }
  .brand { gap: 10px; }
  .brand-mark { width: 45px; height: 49px; }
  .brand-name { max-width: 154px; overflow: hidden; text-overflow: ellipsis; font-size: 11px; letter-spacing: .11em; }
  .page-hero { min-height: 70svh; }
  .hero-media { inset: 0; animation: none; transform: translate3d(0,0,0) scale(1.01); }
  .hero-inner { padding: 76px 8px 110px; }
  .hero-eyebrow { letter-spacing: .18em; line-height: 1.7; }
  .hero-title { font-size: clamp(42px, 14vw, 68px); }
  .page-hero:not(.page-hero--home) .hero-title { font-size: clamp(40px, 13vw, 62px); }
  .hero-subtitle { font-size: 16px; letter-spacing: .07em; }
  .scroll-cue { bottom: 28px; }
  .seal-bridge { height: calc(var(--seal-size) * .56); margin-top: calc(var(--seal-size) * -.42); }
  .seal-bridge-inner { grid-template-columns: 1fr var(--seal-size) 1fr; gap: 8px; }
  .lodge-seal { padding: 7px; }
  .section { padding-block: 68px; }
  .scene { padding-block: 82px; }
  .scene-bg { inset: -4%; }
  .scene-content,
  .scene-content--right { padding: 28px 22px; border-right: 0; }
  .home-fact { grid-template-columns: 58px 1fr; padding: 18px; }
  .home-fact strong { font-size: 23px; }
  .history-year { font-size: 72px; }
  .mosaic-tile { min-height: 0; padding: 42px 26px; }
  .symbol-grid { grid-template-columns: 1fr; }
  .symbol-card { min-height: auto; }
  .month-card { padding: 25px 20px 19px; }
  .event { grid-template-columns: 76px 58px minmax(0,1fr); gap: 8px; font-size: 13px; }
  .contact-card { padding: 35px 26px; }
  .contact-card a { font-size: 20px; }
  .footer-main { grid-template-columns: 1fr; padding-top: 54px; }
  .footer-column,
  .footer-column:first-child,
  .footer-column:nth-child(3) { min-height: 0; padding: 28px 0; border-left: 0; border-top: 1px solid var(--line-soft); }
  .footer-column:first-child { border-top: 0; padding-top: 0; }
  .footer-seal { width: 118px; height: 118px; }
}

@media (max-width: 420px) {
  .brand-name { max-width: 132px; }
  .event { grid-template-columns: 1fr; gap: 2px; }
  .event time { margin-bottom: 5px; }
  .hero-ornament { gap: 10px; }
}

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

/* Final composition refinements */
@media (min-width: 901px) {
  .symbol-card:last-child { grid-column: span 2; }
}
@media (max-width: 420px) {
  .brand-name {
    max-width: none;
    overflow: visible;
    text-overflow: clip;
    font-size: 10px;
    letter-spacing: .075em;
  }
}
