@import url('https://fonts.googleapis.com/css2?family=Forum&display=swap');

@font-face { font-family: "Involve"; src: url("assets/fonts/Involve-Regular.otf") format("opentype"); font-weight: 400; font-display: swap; }
@font-face { font-family: "Involve"; src: url("assets/fonts/Involve-Medium.otf") format("opentype"); font-weight: 500; font-display: swap; }
@font-face { font-family: "Involve"; src: url("assets/fonts/Involve-SemiBold.otf") format("opentype"); font-weight: 600; font-display: swap; }
@font-face { font-family: "Involve"; src: url("assets/fonts/Involve-Bold.otf") format("opentype"); font-weight: 700; font-display: swap; }

:root {
  --paper: #0d0c0a;
  --paper-light: #171410;
  --ink: #f2e8d6;
  --muted: #b8aa96;
  --line: rgba(224, 185, 111, 0.18);
  --teal: #61c6bd;
  --teal-dark: #31928c;
  --teal-soft: #17322f;
  --sun: #d6a34a;
  --leaf: #b99755;
  --fire: #bd7840;
  --violet: #9c8265;
  --night: #0d0c0a;
  --night-soft: #171410;
  --night-raised: #1e1a15;
  --cream: #f2e8d6;
  --gold: #c99743;
  --gold-light: #efd28b;
  --max: 1240px;
  --serif: "Forum", Georgia, serif;
  --sans: "Involve", Arial, sans-serif;
}

/* Reviews are intentionally unavailable until the festival team enables them. */
html:not([data-live="ready"]) a[href="reviews.html"] { display: none !important; }

* { box-sizing: border-box; }

html {
  scroll-behavior: smooth;
  color-scheme: dark;
}

body {
  margin: 0;
  overflow-x: clip;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--sans);
  font-size: 16px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}

body.menu-open { overflow: hidden; }

img {
  display: block;
  max-width: 100%;
}

a { color: inherit; }
button, input { font: inherit; }
button { color: inherit; }

.skip-link {
  position: fixed;
  z-index: 100;
  top: 12px;
  left: 12px;
  transform: translateY(-180%);
  padding: 10px 16px;
  background: var(--ink);
  color: white;
}

.skip-link:focus { transform: none; }

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

.site-header {
  position: fixed;
  z-index: 50;
  inset: 0 0 auto;
  border-bottom: 1px solid transparent;
  color: white;
  transition: background-color .25s ease, border-color .25s ease, color .25s ease;
}

.site-header.is-scrolled,
.site-header.header-solid {
  background: rgba(251, 248, 242, .96);
  border-color: var(--line);
  color: var(--ink);
  backdrop-filter: blur(14px);
}

.header-inner {
  min-height: 82px;
  display: flex;
  align-items: center;
  gap: 34px;
}

.brand {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  flex: 0 0 auto;
  text-decoration: none;
}

.brand img {
  width: 43px;
  height: 38px;
  object-fit: contain;
  filter: brightness(0) invert(1);
  transition: filter .25s ease;
}

.brand::after {
  color: currentColor;
  content: none;
  font-family: var(--serif);
  font-size: 18px;
  letter-spacing: .13em;
}

.site-header.is-scrolled .brand img,
.site-header.header-solid .brand img {
  filter: none;
}

.desktop-nav {
  display: flex;
  align-items: center;
  gap: 26px;
  margin-left: auto;
}

.desktop-nav a {
  position: relative;
  padding-block: 7px;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .06em;
  text-decoration: none;
  text-transform: uppercase;
}

.desktop-nav a::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  height: 1px;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: right;
  transition: transform .2s ease;
}

.desktop-nav a:hover::after,
.desktop-nav a[aria-current="page"]::after {
  transform: scaleX(1);
  transform-origin: left;
}

.button {
  display: inline-flex;
  min-height: 50px;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 12px 21px;
  border: 1px solid transparent;
  border-radius: 2px;
  background: var(--teal);
  color: white;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .06em;
  line-height: 1.2;
  text-align: center;
  text-decoration: none;
  text-transform: uppercase;
  transition: background-color .2s ease, color .2s ease, border-color .2s ease, transform .2s ease;
}

.button:hover {
  background: var(--teal-dark);
  transform: translateY(-2px);
}

.button-light {
  background: var(--paper-light);
  color: var(--ink);
}

.button-light:hover {
  background: white;
  color: var(--teal-dark);
}

.button-outline {
  border-color: currentColor;
  background: transparent;
  color: inherit;
}

.button-outline:hover {
  border-color: var(--teal);
  background: var(--teal);
  color: white;
}

.icon {
  width: 24px;
  height: 24px;
  flex: 0 0 auto;
}

.icon-arrow { width: 21px; height: 21px; }

.menu-button {
  display: none;
  width: 44px;
  height: 44px;
  margin-left: auto;
  border: 1px solid currentColor;
  border-radius: 50%;
  background: transparent;
}

.menu-button span {
  display: block;
  width: 18px;
  height: 1px;
  margin: 5px auto;
  background: currentColor;
  transition: transform .2s ease;
}

.menu-button[aria-expanded="true"] span:first-child { transform: translateY(3px) rotate(45deg); }
.menu-button[aria-expanded="true"] span:last-child { transform: translateY(-3px) rotate(-45deg); }

.mobile-menu {
  display: none;
  position: fixed;
  z-index: 45;
  inset: 0;
  padding: 116px 28px 36px;
  background: var(--paper-light);
  color: var(--ink);
}

.mobile-menu.is-open {
  display: flex;
  flex-direction: column;
}

.mobile-menu a:not(.button) {
  padding: 12px 0;
  border-bottom: 1px solid var(--line);
  font-family: var(--serif);
  font-size: clamp(25px, 7vw, 36px);
  text-decoration: none;
}

.mobile-menu .button { margin-top: auto; }

.hero {
  position: relative;
  min-height: 760px;
  display: grid;
  align-items: end;
  overflow: hidden;
  background: #28201a;
  color: white;
}

.hero-media,
.page-hero-media {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.hero::after,
.page-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(20, 14, 11, .82) 0%, rgba(20, 14, 11, .48) 48%, rgba(20, 14, 11, .16) 100%),
              linear-gradient(0deg, rgba(20, 14, 11, .55), transparent 55%);
}

.hero-content {
  position: relative;
  z-index: 1;
  max-width: 780px;
  padding: 176px 0 82px;
}

.eyebrow {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0 0 19px;
  color: var(--teal);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .18em;
  line-height: 1.3;
  text-transform: uppercase;
}

.eyebrow::before {
  width: 32px;
  height: 1px;
  background: currentColor;
  content: "";
}

.hero .eyebrow,
.page-hero .eyebrow { color: #9be0d5; }

h1, h2, h3, p { margin-top: 0; }

h1, h2, h3 {
  font-family: var(--serif);
  font-weight: 400;
  line-height: 1.12;
}

h1 {
  max-width: 760px;
  margin-bottom: 24px;
  font-size: clamp(50px, 7.5vw, 104px);
  letter-spacing: -.04em;
}

.hero-lead {
  max-width: 610px;
  margin-bottom: 34px;
  color: rgba(255,255,255,.86);
  font-size: clamp(17px, 1.6vw, 21px);
}

.hero-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 14px;
}

.hero-facts {
  display: flex;
  gap: 30px;
  margin-top: 42px;
}

.hero-fact {
  display: flex;
  align-items: center;
  gap: 10px;
  color: rgba(255,255,255,.9);
  font-size: 13px;
  font-weight: 600;
}

.hero-fact .icon { width: 22px; height: 22px; color: #9be0d5; }

.directions {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  height: 64px;
}

.direction {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  color: white;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .09em;
  text-transform: uppercase;
}

.direction .icon { width: 22px; height: 22px; }
.direction:nth-child(1) { background: var(--sun); }
.direction:nth-child(2) { background: var(--leaf); }
.direction:nth-child(3) { background: var(--teal); }
.direction:nth-child(4) { background: var(--fire); }
.direction:nth-child(5) { background: var(--violet); }

.section { padding: 112px 0; }
.section-compact { padding: 76px 0; }
.section-light { background: var(--paper-light); }
.section-dark { background: var(--ink); color: var(--paper-light); }
.section-teal { background: var(--teal-dark); color: white; }

.section-heading {
  display: grid;
  grid-template-columns: 1.2fr .8fr;
  gap: 80px;
  align-items: end;
  margin-bottom: 52px;
}

.section-heading h2 {
  max-width: 760px;
  margin-bottom: 0;
  font-size: clamp(38px, 5vw, 72px);
  letter-spacing: -.035em;
}

.section-heading p {
  max-width: 520px;
  margin-bottom: 4px;
  color: var(--muted);
  font-size: 16px;
}

.section-dark .section-heading p,
.section-teal .section-heading p {
  color: rgba(255,255,255,.7);
}

.outcomes {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
}

.outcome {
  min-height: 230px;
  padding: 28px;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.outcome .icon {
  width: 34px;
  height: 34px;
  margin-bottom: 30px;
  color: var(--teal);
}

.outcome h3 {
  margin-bottom: 10px;
  font-size: 24px;
}

.outcome p {
  margin: 0;
  color: var(--muted);
  font-size: 14px;
}

.media-feature {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(440px, .8fr);
  min-height: 640px;
  background: var(--ink);
  color: white;
}

.media-grid {
  display: grid;
  grid-template-columns: 1.2fr .8fr;
  grid-template-rows: 1fr 1fr;
  gap: 3px;
  min-height: 640px;
}

.media-grid a {
  position: relative;
  display: block;
  overflow: hidden;
}

.media-grid a:first-child { grid-row: span 2; }

.media-grid img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .6s cubic-bezier(.2,.7,.2,1);
}

.media-grid a:hover img { transform: scale(1.035); }

.media-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(42px, 6vw, 82px);
}

.media-copy h2 {
  margin-bottom: 22px;
  font-size: clamp(42px, 5vw, 70px);
  letter-spacing: -.04em;
}

.media-copy p {
  margin-bottom: 32px;
  color: rgba(255,255,255,.7);
}

.text-link {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  width: fit-content;
  border-bottom: 1px solid currentColor;
  padding-bottom: 7px;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .08em;
  text-decoration: none;
  text-transform: uppercase;
}

.text-link:hover { color: #8fddd4; }

.feature-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: stretch;
}

.feature-photo {
  min-height: 620px;
  overflow: hidden;
}

.feature-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.feature-content {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(52px, 8vw, 116px);
}

.feature-content h2 {
  max-width: 650px;
  margin-bottom: 24px;
  font-size: clamp(42px, 5vw, 70px);
  letter-spacing: -.04em;
}

.feature-content p {
  max-width: 570px;
  color: var(--muted);
}

.feature-list {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
  margin: 28px 0 34px;
}

.feature-list-item {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  font-size: 14px;
}

.feature-list-item .icon {
  width: 20px;
  height: 20px;
  margin-top: 2px;
  color: var(--teal);
}

.masters-row {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
}

.master-card {
  position: relative;
  min-height: 440px;
  overflow: hidden;
  background: #d9d1c5;
  text-decoration: none;
}

.master-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  transition: transform .5s ease;
}

.master-card:hover img { transform: scale(1.025); }

.master-card-info {
  position: absolute;
  inset: auto 0 0;
  padding: 54px 24px 22px;
  color: white;
  background: linear-gradient(transparent, rgba(16,12,10,.86));
}

.master-card-info strong {
  display: block;
  font-family: var(--serif);
  font-size: 24px;
  font-weight: 400;
}

.master-card-info span {
  display: block;
  color: rgba(255,255,255,.72);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.practical-strip {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
}

.practical-item {
  min-height: 210px;
  padding: 32px;
  border-right: 1px solid rgba(255,255,255,.16);
}

.practical-item:last-child { border-right: 0; }

.practical-item .icon {
  width: 30px;
  height: 30px;
  margin-bottom: 26px;
  color: #8fddd4;
}

.practical-item h3 {
  margin-bottom: 8px;
  font-size: 24px;
}

.practical-item p {
  margin: 0;
  color: rgba(255,255,255,.68);
  font-size: 14px;
}

.review-feature {
  display: grid;
  grid-template-columns: 1fr 1.05fr;
  min-height: 560px;
}

.review-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(50px, 7vw, 96px);
  background: var(--ink);
  color: var(--paper-light);
}

.review-copy .icon {
  width: 34px;
  height: 34px;
  margin-bottom: 34px;
  color: #8fddd4;
}

.review-copy blockquote {
  margin: 0 0 34px;
  font-family: var(--serif);
  font-size: clamp(28px, 3.5vw, 48px);
  line-height: 1.28;
}

.review-copy cite {
  margin-bottom: 32px;
  color: rgba(255,255,255,.6);
  font-style: normal;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.review-media {
  position: relative;
  overflow: hidden;
  min-height: 460px;
}

.review-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.play-button {
  position: absolute;
  left: 50%;
  top: 50%;
  display: grid;
  width: 82px;
  height: 82px;
  place-items: center;
  transform: translate(-50%, -50%);
  border: 1px solid rgba(255,255,255,.75);
  border-radius: 50%;
  background: rgba(9,72,72,.78);
  color: white;
  text-decoration: none;
  backdrop-filter: blur(8px);
  transition: transform .2s ease, background-color .2s ease;
}

.play-button:hover {
  transform: translate(-50%, -50%) scale(1.06);
  background: var(--teal);
}

.play-button .icon { width: 38px; height: 38px; }

.ticket-banner {
  display: grid;
  grid-template-columns: 1.2fr .8fr;
  align-items: center;
  gap: 42px;
  padding: 58px 64px;
  background: var(--teal);
  color: white;
}

.ticket-banner h2 {
  margin: 0;
  font-size: clamp(38px, 4.5vw, 66px);
  letter-spacing: -.04em;
}

.ticket-banner-side {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 28px;
}

.ticket-price strong {
  display: block;
  font-family: var(--serif);
  font-size: 48px;
  font-weight: 400;
  line-height: 1;
}

.ticket-price span {
  display: block;
  margin-top: 6px;
  color: rgba(255,255,255,.75);
  font-size: 12px;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.page-hero {
  position: relative;
  min-height: 520px;
  display: flex;
  align-items: end;
  overflow: hidden;
  background: var(--ink);
  color: white;
}

.page-hero-content {
  position: relative;
  z-index: 1;
  max-width: 820px;
  padding: 176px 0 66px;
}

.page-hero h1 {
  margin-bottom: 14px;
  font-size: clamp(48px, 7vw, 92px);
}

.page-hero p {
  max-width: 660px;
  margin: 0;
  color: rgba(255,255,255,.75);
  font-size: 18px;
}

.page-intro {
  display: grid;
  grid-template-columns: .8fr 1.2fr;
  gap: 80px;
  padding: 80px 0;
  border-bottom: 1px solid var(--line);
}

.page-intro h2 {
  font-size: clamp(36px, 4vw, 56px);
  letter-spacing: -.03em;
}

.page-intro p {
  max-width: 720px;
  color: var(--muted);
}

.tabs {
  display: flex;
  gap: 8px;
  margin-bottom: 34px;
  overflow-x: auto;
}

.tab-button {
  min-width: 150px;
  padding: 13px 20px;
  border: 1px solid var(--line);
  background: transparent;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
}

.tab-button[aria-selected="true"] {
  border-color: var(--ink);
  background: var(--ink);
  color: white;
}

.schedule-list {
  border-top: 1px solid var(--line);
}

.schedule-item {
  display: grid;
  grid-template-columns: 130px 1fr 220px;
  gap: 28px;
  align-items: center;
  padding: 24px 0;
  border-bottom: 1px solid var(--line);
}

.schedule-time {
  font-family: var(--serif);
  font-size: 25px;
}

.schedule-title strong {
  display: block;
  font-family: var(--serif);
  font-size: 22px;
  font-weight: 400;
}

.schedule-title span,
.schedule-place {
  color: var(--muted);
  font-size: 13px;
}

.schedule-place { text-align: right; }

.notice {
  display: flex;
  gap: 16px;
  margin: 32px 0 0;
  padding: 20px 22px;
  border-left: 3px solid var(--sun);
  background: rgba(215,148,13,.09);
  color: #68552c;
  font-size: 14px;
}

.notice .icon { width: 22px; height: 22px; flex: 0 0 auto; }

.masters-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 34px 22px;
}

.master-profile {
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(96,73,44,.12);
  border-radius: 22px;
  background: var(--paper-light);
  box-shadow: 0 15px 34px rgba(83,60,32,.08);
  text-decoration: none;
  transition: transform .28s ease, box-shadow .28s ease;
}
.master-profile:hover { transform: translateY(-5px); box-shadow: 0 22px 42px rgba(83,60,32,.13); }
.master-profile-media { position:relative; display:block; overflow:hidden; background:#ded8ca; }
.master-profile-media::after { position:absolute; inset:auto 0 0; height:36%; background:linear-gradient(0deg,rgba(24,40,36,.2),transparent); content:""; pointer-events:none; }
.master-watermark { position:absolute; z-index:2; left:4%; bottom:4%; width:24%; aspect-ratio:1/1; background:url("assets/brand/sila-solnca-icon-compact-v2.svg") center/contain no-repeat; filter:drop-shadow(0 2px 8px rgba(31,24,15,.38)); pointer-events:none; }

.master-profile > img, .master-profile-media img {
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  object-position: center top;
}

.master-profile-copy { position: relative; z-index: 2; display:flex; min-height:270px; flex-direction:column; padding:22px 22px 24px; }

.master-profile h2, .master-profile-copy strong {
  display:block;
  margin-bottom: 9px;
  color:var(--ink);
  font-family:var(--serif);
  font-size: clamp(25px, 2.1vw, 30px);
  font-weight:400;
  line-height:1.05;
}

.master-profile small {
  display: block;
  margin-bottom: 17px;
  color: var(--teal);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.master-profile p {
  margin: 0;
  color: var(--muted);
  font-size: 14px;
}

.master-profile-copy > span {
  display: -webkit-box;
  min-height: 4.65em;
  overflow: hidden;
  color: var(--muted);
  font-size: 13.5px;
  line-height: 1.55;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}

.master-profile-copy em { display:block; margin-top:auto; padding-top:18px; color:var(--teal); font-size:12px; font-style:normal; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.master-profile:hover img { transform:scale(1.025); }
.master-profile > img, .master-profile-media img { transition:transform .45s ease; }

.detail-section { position:relative; overflow:hidden; }
.detail-section::before { position:absolute; top:4%; right:-14%; width:42vw; aspect-ratio:1; border-radius:50%; background:radial-gradient(circle,rgba(55,169,161,.09),transparent 67%); content:""; pointer-events:none; }
.detail-profile { position:relative; display:grid; grid-template-columns:minmax(280px,.72fr) minmax(0,1.28fr); gap:clamp(38px,6vw,92px); align-items:start; }
.detail-profile-media { position:sticky; top:105px; overflow:hidden; border-radius:22px; background:var(--paper-light); box-shadow:0 24px 64px rgba(78,55,29,.14); }
.detail-profile-media img { display:block; width:100%; aspect-ratio:4/5; object-fit:cover; object-position:center top; }
.detail-watermark { position:absolute; left:4%; bottom:4%; width:24%; aspect-ratio:1/1; background:url("assets/brand/sila-solnca-icon-compact-v2.svg") center/contain no-repeat; filter:drop-shadow(0 2px 8px rgba(31,24,15,.4)); pointer-events:none; }
.detail-profile-copy { max-width:780px; padding-top:8px; }
.detail-profile-copy > .eyebrow { max-width:66ch; margin-bottom:14px; }
.detail-profile-copy h2 { max-width:13ch; margin:0 0 34px; font-size:clamp(38px,4.4vw,64px); line-height:.98; text-wrap:balance; }
.detail-prose { display:grid; max-width:68ch; gap:18px; }
.detail-prose p { margin:0; color:var(--muted); font-size:17px; line-height:1.76; text-wrap:pretty; }
.detail-prose .detail-lead { margin-bottom:4px; color:var(--ink); font-family:var(--serif); font-size:clamp(22px,2.1vw,29px); line-height:1.42; }
.detail-prose h3 { max-width:22ch; margin:18px 0 0; padding-left:18px; border-left:3px solid var(--teal); color:var(--ink); font-size:clamp(22px,2.1vw,30px); line-height:1.12; text-wrap:balance; }
.detail-prose ul { display:grid; gap:10px; margin:0; padding:4px 0 4px 2px; list-style:none; }
.detail-prose li { position:relative; padding-left:24px; color:var(--muted); font-size:16px; line-height:1.62; }
.detail-prose li::before { position:absolute; top:.72em; left:1px; width:8px; height:8px; background:var(--teal); content:""; transform:rotate(45deg); }
.detail-more { max-width:68ch; margin-top:30px; overflow:hidden; border:1px solid rgba(96,73,44,.13); border-radius:16px; background:rgba(255,255,255,.46); }
.detail-more summary { position:relative; padding:18px 52px 18px 20px; color:var(--teal-dark); font-size:12px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; cursor:pointer; transition:background .22s ease,color .22s ease; }
.detail-more summary::after { position:absolute; top:50%; right:20px; width:10px; height:10px; border-right:2px solid currentColor; border-bottom:2px solid currentColor; content:""; transform:translateY(-70%) rotate(45deg); transition:transform .22s ease; }
.detail-more[open] summary::after { transform:translateY(-30%) rotate(225deg); }
.detail-more summary:hover { background:rgba(55,169,161,.08); color:var(--teal); }
.detail-more .detail-prose { padding:4px 20px 24px; }
.detail-program { max-width:68ch; margin-top:48px; padding-top:34px; border-top:1px solid var(--line); }
.detail-program > .eyebrow { margin-bottom:10px; }
.detail-program > h3 { margin:0 0 20px; font-size:clamp(27px,3vw,40px); }
.detail-program-list { display:grid; gap:10px; }
.detail-program-list a { display:grid; gap:7px; padding:18px 20px; border:1px solid rgba(96,73,44,.12); border-radius:14px; background:var(--paper-light); color:var(--ink); text-decoration:none; transition:transform .22s ease,border-color .22s ease,background .22s ease; }
.detail-program-list a:hover { border-color:rgba(55,169,161,.4); background:#fff; transform:translateX(4px); }
.detail-program-list small { color:var(--teal); font-size:10px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
.detail-program-list strong { font-family:var(--serif); font-size:23px; font-weight:400; line-height:1.12; }
.detail-program-list span { color:var(--muted); font-size:13px; line-height:1.55; }
.detail-social { margin-top:32px !important; }
@media(max-width:760px){.detail-profile{grid-template-columns:1fr}.detail-profile-media{position:relative;top:auto;max-width:480px}.detail-profile-copy{padding-top:0}.detail-profile-copy h2{font-size:40px}.detail-prose p{font-size:16px}.detail-prose .detail-lead{font-size:23px}.detail-program{margin-top:38px}}

.gallery-masonry {
  columns: 3;
  column-gap: 12px;
}

.gallery-masonry figure {
  position: relative;
  margin: 0 0 12px;
  overflow: hidden;
  break-inside: avoid;
  background: #ddd4c9;
}

.gallery-masonry img {
  width: 100%;
  transition: transform .5s ease;
}

.gallery-masonry figure:hover img { transform: scale(1.025); }

.video-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}

.video-card {
  color: white;
  text-decoration: none;
}

.video-thumb {
  position: relative;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: #312723;
}

.video-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .5s ease;
}

.video-card:hover img { transform: scale(1.035); }

.video-thumb .icon {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 54px;
  height: 54px;
  padding: 10px;
  transform: translate(-50%, -50%);
  border: 1px solid rgba(255,255,255,.8);
  border-radius: 50%;
  background: rgba(0,0,0,.35);
}

.video-card strong {
  display: block;
  margin-top: 13px;
  font-family: var(--serif);
  font-size: 20px;
  font-weight: 400;
}

.video-card span {
  color: rgba(255,255,255,.56);
  font-size: 12px;
}

.review-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
}

.review-card {
  min-height: 330px;
  padding: 34px;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.review-card .icon {
  width: 28px;
  height: 28px;
  margin-bottom: 34px;
  color: var(--teal);
}

.review-card blockquote {
  margin: 0 0 24px;
  font-family: var(--serif);
  font-size: 22px;
  line-height: 1.45;
}

.review-card cite {
  color: var(--muted);
  font-style: normal;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.future-video {
  display: grid;
  grid-template-columns: 1.1fr .9fr;
  background: var(--teal-dark);
  color: white;
}

.future-video-copy {
  padding: clamp(50px, 7vw, 92px);
}

.future-video h2 {
  font-size: clamp(40px, 5vw, 66px);
  letter-spacing: -.04em;
}

.future-video p { color: rgba(255,255,255,.68); }

.video-slots {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 460px;
}

.video-slot {
  display: grid;
  place-items: center;
  border-left: 1px solid rgba(255,255,255,.16);
  background: rgba(255,255,255,.03);
}

.video-slot-inner { text-align: center; }
.video-slot .icon { width: 58px; height: 58px; margin-bottom: 16px; color: #8fddd4; }
.video-slot span { display: block; color: rgba(255,255,255,.55); font-size: 12px; letter-spacing: .08em; text-transform: uppercase; }

.info-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
}

.info-block {
  min-height: 300px;
  padding: 42px;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.info-block .icon {
  width: 36px;
  height: 36px;
  margin-bottom: 34px;
  color: var(--teal);
}

.info-block h2 { margin-bottom: 14px; font-size: 32px; }
.info-block p { max-width: 510px; margin: 0; color: var(--muted); }

.faq-list { border-top: 1px solid var(--line); }

.faq-item { border-bottom: 1px solid var(--line); }

.faq-question {
  width: 100%;
  display: grid;
  grid-template-columns: 1fr 28px;
  gap: 20px;
  align-items: center;
  padding: 24px 0;
  border: 0;
  background: transparent;
  font-family: var(--serif);
  font-size: 22px;
  text-align: left;
  cursor: pointer;
}

.faq-mark {
  position: relative;
  width: 22px;
  height: 22px;
}

.faq-mark::before,
.faq-mark::after {
  position: absolute;
  top: 10px;
  left: 2px;
  width: 18px;
  height: 1px;
  background: currentColor;
  content: "";
  transition: transform .2s ease;
}

.faq-mark::after { transform: rotate(90deg); }
.faq-question[aria-expanded="true"] .faq-mark::after { transform: rotate(0); }

.faq-answer {
  max-width: 760px;
  padding: 0 0 26px;
  color: var(--muted);
}

.ticket-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}

.ticket-card {
  display: flex;
  min-height: 410px;
  flex-direction: column;
  padding: 34px;
  background: var(--paper-light);
  border-top: 4px solid var(--teal);
}

.ticket-card.featured {
  background: var(--teal-dark);
  color: white;
}

.ticket-card-label {
  margin-bottom: 34px;
  color: var(--teal);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.featured .ticket-card-label { color: #8fddd4; }

.ticket-card h2 { margin-bottom: 8px; font-size: 32px; }

.ticket-card-price {
  margin-bottom: 24px;
  font-family: var(--serif);
  font-size: 54px;
  line-height: 1;
}

.ticket-card p {
  color: var(--muted);
  font-size: 14px;
}

.featured p { color: rgba(255,255,255,.66); }
.ticket-card .button { margin-top: auto; }

.site-footer {
  padding: 62px 0 32px;
  background: #171310;
  color: rgba(255,255,255,.72);
}

.footer-grid {
  display: grid;
  grid-template-columns: 1.15fr .85fr .85fr;
  gap: 70px;
  padding-bottom: 48px;
}

.footer-brand img {
  width: 49px;
  margin-bottom: 22px;
  filter: brightness(0) invert(1);
}

.footer-brand::before {
  display: block;
  margin-bottom: 18px;
  color: white;
  content: none;
  font-family: var(--serif);
  font-size: 24px;
  letter-spacing: .13em;
}

.footer-brand p {
  max-width: 360px;
  color: rgba(255,255,255,.5);
  font-size: 14px;
}

.footer-column strong {
  display: block;
  margin-bottom: 18px;
  color: white;
  font-size: 11px;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.footer-column a {
  display: block;
  width: fit-content;
  margin: 8px 0;
  color: rgba(255,255,255,.58);
  text-decoration: none;
}

.footer-column a:hover { color: white; }

.footer-bottom {
  display: flex;
  justify-content: space-between;
  gap: 24px;
  padding-top: 26px;
  border-top: 1px solid rgba(255,255,255,.12);
  color: rgba(255,255,255,.38);
  font-size: 12px;
}

.footer-admin-link {
  color: inherit;
  text-decoration: none;
}

.footer-admin-link:hover { color: inherit; }

.footer-admin-link:focus-visible {
  color: rgba(255,255,255,.82);
  outline: 1px solid currentColor;
  outline-offset: 4px;
}

[data-reveal] {
  opacity: 0;
  transform: translateY(22px);
  transition: opacity .65s ease, transform .65s ease;
}

[data-reveal].is-visible {
  opacity: 1;
  transform: none;
}

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

@media (max-width: 1080px) {
  .desktop-nav { gap: 16px; }
  .desktop-nav a { font-size: 11px; }
  .header-inner > .button { display: none; }
  .outcomes { grid-template-columns: repeat(2, 1fr); }
  .masters-row { grid-template-columns: repeat(2, 1fr); }
  .master-card { min-height: 520px; }
  .masters-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 820px) {
  .container { width: min(calc(100% - 32px), var(--max)); }
  .desktop-nav { display: none; }
  .menu-button { display: block; }
  .header-inner { min-height: 70px; }
  .brand img { width: 38px; height: 34px; }
  .brand::after { font-size: 16px; }
  .hero { min-height: 680px; }
  .hero-content { padding: 142px 0 54px; }
  .hero-facts { flex-direction: column; gap: 12px; margin-top: 30px; }
  .directions {
    height: 62px;
    grid-template-columns: repeat(5, 160px);
    overflow-x: auto;
  }
  .section { padding: 76px 0; }
  .section-compact { padding: 58px 0; }
  .section-heading,
  .page-intro {
    grid-template-columns: 1fr;
    gap: 20px;
  }
  .section-heading { margin-bottom: 36px; }
  .media-feature,
  .feature-split,
  .review-feature,
  .future-video {
    grid-template-columns: 1fr;
  }
  .media-grid { min-height: 520px; }
  .media-copy { padding: 56px 32px; }
  .feature-photo { min-height: 480px; }
  .feature-content { padding: 64px 32px; }
  .practical-strip { grid-template-columns: repeat(2, 1fr); }
  .practical-item:nth-child(2) { border-right: 0; }
  .practical-item:nth-child(-n+2) { border-bottom: 1px solid rgba(255,255,255,.16); }
  .ticket-banner { grid-template-columns: 1fr; padding: 45px 32px; }
  .ticket-banner-side { justify-content: flex-start; }
  .page-hero { min-height: 460px; }
  .page-hero-content { padding: 142px 0 50px; }
  .schedule-item { grid-template-columns: 110px 1fr; }
  .schedule-place { grid-column: 2; text-align: left; }
  .gallery-masonry { columns: 2; }
  .video-grid { grid-template-columns: repeat(2, 1fr); }
  .review-grid { grid-template-columns: repeat(2, 1fr); }
  .ticket-grid { grid-template-columns: 1fr; }
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 38px; }
  .footer-brand { grid-column: 1 / -1; }
}

@media (max-width: 560px) {
  body { font-size: 15px; }
  .container { width: min(calc(100% - 28px), var(--max)); }
  h1 { font-size: clamp(43px, 13vw, 64px); }
  .hero { min-height: 650px; }
  .hero::after,
  .page-hero::after {
    background: linear-gradient(0deg, rgba(20,14,11,.88) 0%, rgba(20,14,11,.38) 76%, rgba(20,14,11,.25));
  }
  .hero-content { padding-bottom: 44px; }
  .hero-actions .button { width: 100%; }
  .direction { justify-content: flex-start; padding: 0 18px; }
  .section-heading h2,
  .feature-content h2,
  .media-copy h2,
  .future-video h2 { font-size: 39px; }
  .outcomes { grid-template-columns: 1fr; }
  .outcome { min-height: 0; }
  .media-feature { display: block; }
  .media-grid {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 330px 190px;
    min-height: 0;
  }
  .media-grid a:first-child { grid-column: 1 / -1; grid-row: auto; }
  .media-copy { padding: 52px 24px; }
  .feature-photo { min-height: 390px; }
  .feature-content { padding: 54px 22px; }
  .feature-list { grid-template-columns: 1fr; }
  .masters-row { grid-template-columns: 1fr 1fr; gap: 8px; }
  .master-card { min-height: 290px; }
  .master-card-info { padding: 42px 14px 15px; }
  .master-card-info strong { font-size: 19px; }
  .master-card-info span { font-size: 9px; }
  .practical-strip { grid-template-columns: 1fr; }
  .practical-item {
    min-height: 0;
    border-right: 0;
    border-bottom: 1px solid rgba(255,255,255,.16);
  }
  .review-copy { padding: 52px 24px; }
  .review-copy blockquote { font-size: 28px; }
  .review-media { min-height: 370px; }
  .ticket-banner-side { align-items: flex-start; flex-direction: column; }
  .page-hero { min-height: 430px; }
  .page-hero h1 { font-size: 46px; }
  .page-intro { padding: 56px 0; }
  .schedule-item { grid-template-columns: 1fr; gap: 5px; padding: 20px 0; }
  .schedule-place { grid-column: auto; }
  .masters-grid { grid-template-columns: 1fr; }
  .gallery-masonry { columns: 1; }
  .video-grid { grid-template-columns: 1fr; }
  .review-grid { grid-template-columns: 1fr; }
  .review-card { min-height: 0; }
  .video-slots { min-height: 350px; }
  .info-grid { grid-template-columns: 1fr; }
  .info-block { min-height: 0; padding: 32px 24px; }
  .ticket-card { min-height: 380px; padding: 28px; }
  .footer-grid { grid-template-columns: 1fr; }
  .footer-brand { grid-column: auto; }
  .footer-bottom { flex-direction: column; }
}

/* Brand system v3 — «Сила Солнца» */
.site-header,
.site-header.is-scrolled,
.site-header.header-solid {
  background: rgba(249, 247, 242, .94);
  border-color: rgba(117, 92, 55, .14);
  color: var(--ink);
  backdrop-filter: blur(16px);
}

.header-inner { min-height: 92px; }
.brand { gap: 13px; }
.brand::after { display: none; }
.brand img { filter: none !important; }
.brand .brand-mark { width: 54px; height: 54px; content: url("assets/brand/sila-solnca-icon-compact-v2.svg"); }
.brand .brand-wordmark {
  width: 176px;
  height: auto;
  filter: drop-shadow(0 2px 7px rgba(183,123,35,.18)) !important;
}

.button { border-radius: 999px; background: var(--teal); padding-inline: 25px; }
.button:hover { background: var(--teal-dark); }
.button.button-light {
  border-color: rgba(255,255,255,.82);
  background: #fffaf2;
  color: #175e5b;
  box-shadow: 0 14px 32px rgba(20, 77, 73, .22);
}
.button.button-light:hover {
  border-color: white;
  background: white;
  color: #104744;
  box-shadow: 0 18px 38px rgba(20, 77, 73, .28);
}
.button-small { min-height: 44px; padding-inline: 20px; }

.hero-brand-v3 {
  min-height: min(760px, 92vh);
  align-items: center;
  background: #efe9df url("assets/hero-sila-solnca-v4.png") 50% center / cover no-repeat;
  color: var(--ink);
}
.hero-video { opacity: 0; transition: opacity .9s ease; }
.hero-video.is-video-ready { opacity: 1; }
.hero-brand-v3 .hero-media { object-position: 50% center; }
.hero-brand-v3::after {
  background:
    linear-gradient(90deg, rgba(250,248,243,.97) 0%, rgba(250,248,243,.91) 30%, rgba(250,248,243,.58) 44%, rgba(250,248,243,.12) 59%, transparent 70%),
    linear-gradient(0deg, rgba(36,29,23,.24), transparent 42%);
}
.hero-brand-v3 .hero-content {
  width: min(700px, calc(100% - 48px));
  max-width: 700px;
  margin-right: 0;
  margin-left: max(24px, calc((100vw - var(--max)) / 2));
  padding: 165px 0 72px;
}
.hero-brand-v3 .eyebrow {
  color: var(--teal);
  font-size: clamp(14px, 1.05vw, 16px);
  letter-spacing: .16em;
}
.hero-brand-v3 h1 {
  max-width: 700px;
  margin-bottom: 22px;
  color: #5c4223;
  font-size: clamp(56px, 5.45vw, 82px);
  letter-spacing: -.025em;
  line-height: .96;
  text-shadow: 0 2px 24px rgba(251,249,245,.88);
}
.hero-brand-v3 .hero-lead {
  max-width: 620px;
  margin: 0 0 12px;
  color: #28231f;
  font-family: var(--serif);
  font-size: clamp(24px, 2vw, 31px);
  line-height: 1.12;
  text-wrap: balance;
}
.hero-brand-v3 .hero-note {
  max-width: 580px;
  margin: 0 0 30px;
  color: #4b433c;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .08em;
  line-height: 1.5;
  text-transform: uppercase;
}
.button-ghost-dark {
  min-height: 50px;
  border-color: rgba(39,34,30,.28);
  background: rgba(250,248,243,.65);
  color: var(--ink);
}
.button-ghost-dark:hover { border-color: var(--teal); background: #fff; color: var(--teal-dark); }
.button-ghost-dark .icon { width: 20px; height: 20px; }
.hero-scale {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 24px;
  margin-top: 28px;
  color: #50463d;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.hero-scale span {
  position: relative;
  padding-left: 18px;
}
.hero-scale span::before {
  position: absolute;
  top: 50%;
  left: 0;
  width: 8px;
  height: 8px;
  transform: translateY(-50%) rotate(45deg);
  background: var(--teal);
  content: "";
}

.brand-pillars {
  position: relative;
  z-index: 3;
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  background: #fbf9f5;
  border-bottom: 1px solid rgba(117,92,55,.14);
}
.brand-pillar {
  min-height: 168px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  padding: 24px 12px;
  border-right: 1px solid rgba(117,92,55,.14);
  text-align: center;
}
.brand-pillar:last-child { border-right: 0; }
.brand-pillar svg { width: 42px; height: 42px; margin-bottom: 13px; color: #b08b50; }
.brand-pillar:nth-child(1) svg { color: var(--sun); }
.brand-pillar:nth-child(2) svg { color: var(--leaf); }
.brand-pillar:nth-child(3) svg { color: var(--fire); }
.brand-pillar:nth-child(4) svg { color: var(--teal); }
.brand-pillar:nth-child(5) svg { color: var(--violet); }
.brand-pillar:nth-child(6) svg { color: var(--teal-dark); }
.brand-pillar strong { font-size: 11px; letter-spacing: .11em; text-transform: uppercase; }
.brand-pillar span { margin-top: 5px; color: var(--muted); font-size: 12px; line-height: 1.45; }

.brand-story {
  display: grid;
  grid-template-columns: 35% 65%;
  min-height: 570px;
  background: #eee7dd;
}
.brand-story-copy { display: flex; justify-content: center; flex-direction: column; padding: 70px clamp(34px, 6vw, 105px); }
.brand-story-copy > img { width: 32px; margin-bottom: 20px; }
.brand-story-copy h2 { max-width: 440px; color: #735b38; font-size: clamp(39px, 3.4vw, 58px); }
.brand-story-copy p:not(.eyebrow) { max-width: 430px; color: #61584f; }
.brand-story-copy .button { width: fit-content; margin-top: 12px; }
.brand-story-photo { position: relative; min-height: 570px; overflow: hidden; }
.brand-story-photo::after { position: absolute; inset: 45% 0 0; background: linear-gradient(transparent, rgba(30,24,19,.66)); content: ""; }
.brand-story-photo img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s ease; }
.brand-story-photo:hover img { transform: scale(1.025); }
.brand-story-photo span { position: absolute; z-index: 1; right: 7%; bottom: 8%; color: white; font-family: var(--serif); font-size: clamp(30px, 3vw, 52px); line-height: 1; text-align: right; text-transform: uppercase; }

.experience-section { padding: 88px 0 0; background: var(--paper-light); }
.compact-heading { align-items: end; margin-bottom: 38px; }
.compact-heading .text-link { justify-self: end; }
.experience-grid { display: grid; grid-template-columns: repeat(5, 1fr); min-height: 390px; }
.experience-grid a { position: relative; overflow: hidden; background: #43392f; color: white; }
.experience-grid a:nth-child(1) { box-shadow: inset 0 6px 0 var(--fire); }
.experience-grid a:nth-child(2) { box-shadow: inset 0 6px 0 var(--leaf); }
.experience-grid a:nth-child(3) { box-shadow: inset 0 6px 0 var(--teal); }
.experience-grid a:nth-child(4) { box-shadow: inset 0 6px 0 var(--sun); }
.experience-grid a:nth-child(5) { box-shadow: inset 0 6px 0 var(--violet); }
.experience-grid a::after { position: absolute; inset: 30% 0 0; background: linear-gradient(transparent, rgba(25,20,16,.78)); content: ""; }
.experience-grid img { width: 100%; height: 100%; object-fit: cover; transition: transform .65s ease; }
.experience-grid a:hover img { transform: scale(1.045); }
.experience-grid span { position: absolute; z-index: 1; right: 22px; bottom: 25px; left: 22px; font-family: var(--serif); font-size: clamp(20px, 1.7vw, 29px); line-height: 1.04; text-transform: uppercase; }

.proof-band {
  position: relative;
  overflow: hidden;
  padding: 96px 0;
  background:
    radial-gradient(circle at 84% 10%, rgba(233,214,167,.18), transparent 32%),
    linear-gradient(135deg, #236f70 0%, #347f7e 52%, #275e65 100%);
  color: white;
}
.proof-band::before {
  position: absolute;
  inset: 0;
  opacity: .16;
  background-image: radial-gradient(rgba(255,255,255,.7) .65px, transparent .65px);
  background-size: 6px 6px;
  content: "";
  pointer-events: none;
}
.proof-band-inner { position: relative; z-index: 1; }
.proof-band-inner { display: grid; grid-template-columns: .9fr 1.1fr; align-items: center; gap: 8%; }
.proof-band .eyebrow { color: #e9d6a7; }
.proof-band blockquote { max-width: 610px; margin: 0 0 24px; font-family: var(--serif); font-size: clamp(34px, 4.4vw, 66px); line-height: 1.03; }
.proof-band cite { color: rgba(255,255,255,.68); font-size: 12px; font-style: normal; letter-spacing: .12em; text-transform: uppercase; }
.proof-video { position: relative; min-height: 390px; overflow: hidden; }
.proof-video img { width: 100%; height: 100%; object-fit: cover; }
.proof-video > span { position: absolute; inset: 50% auto auto 50%; width: 76px; height: 76px; display: grid; place-items: center; transform: translate(-50%,-50%); border: 1px solid rgba(255,255,255,.7); border-radius: 50%; background: rgba(255,255,255,.18); color: white; backdrop-filter: blur(8px); }
.proof-video svg { width: 34px; height: 34px; }

.final-cta { padding: 72px 0; background: #eee7dc; }
.final-cta-grid { display: grid; grid-template-columns: 1.2fr .9fr .55fr; align-items: center; gap: 48px; }
.final-cta h2 { margin-bottom: 12px; color: #735b38; font-size: clamp(38px, 3.6vw, 58px); }
.final-cta p:not(.eyebrow) { margin: 0; color: var(--muted); }
.final-facts { display: grid; gap: 16px; }
.final-facts span { display: flex; align-items: center; gap: 12px; font-size: 13px; text-transform: uppercase; }
.final-facts svg { width: 27px; height: 27px; color: #ac874e; }
.final-price { display: flex; align-items: flex-start; flex-direction: column; }
.final-price span { color: var(--muted); font-size: 12px; text-transform: uppercase; }
.final-price strong { margin: 2px 0 15px; color: #735b38; font-family: var(--serif); font-size: 54px; line-height: 1; }

.brand-footer-v3 { background: #24201d; }
.footer-brand::before { display: none; }
.footer-brand img { width: 170px; height: auto; filter: none; }

@media (max-width: 1080px) {
  .brand .brand-wordmark { width: 148px; }
  .brand-pillars { grid-template-columns: repeat(3, 1fr); }
  .brand-pillar:nth-child(3) { border-right: 0; }
  .brand-pillar:nth-child(-n+3) { border-bottom: 1px solid rgba(117,92,55,.14); }
  .experience-grid { grid-template-columns: repeat(3, 1fr); }
  .experience-grid a { min-height: 350px; }
  .experience-grid a:nth-child(n+4) { min-height: 300px; }
  .final-cta-grid { grid-template-columns: 1fr 1fr; }
  .final-price { grid-column: 1 / -1; align-items: center; flex-direction: row; gap: 24px; }
  .final-price strong { margin: 0 auto 0 0; }
}

@media (max-width: 820px) {
  .header-inner { min-height: 76px; }
  .brand .brand-mark { width: 43px; height: 43px; }
  .brand .brand-wordmark { width: 142px; }
  .hero-brand-v3 { min-height: 720px; align-items: end; }
  .hero-brand-v3::after { background: linear-gradient(0deg, rgba(250,248,243,.98) 0%, rgba(250,248,243,.91) 45%, rgba(250,248,243,.14) 75%, rgba(31,25,20,.04) 100%); }
  .hero-brand-v3 .hero-media { object-position: 58% center; }
  .hero-brand-v3 .hero-content { width: calc(100% - 32px); margin-left: 16px; padding: 360px 0 48px; }
  .hero-brand-v3 h1 { font-size: clamp(53px, 12vw, 78px); }
  .brand-story { grid-template-columns: 1fr; }
  .brand-story-copy { padding: 64px 32px; }
  .brand-story-photo { min-height: 500px; }
  .experience-grid { grid-template-columns: repeat(2, 1fr); }
  .experience-grid a, .experience-grid a:nth-child(n+4) { min-height: 330px; }
  .experience-grid a:last-child { grid-column: 1 / -1; min-height: 300px; }
  .proof-band-inner { grid-template-columns: 1fr; }
  .proof-video { min-height: 360px; }
}

@media (max-width: 560px) {
  .brand .brand-mark { width: 38px; height: 38px; }
  .brand .brand-wordmark { width: 128px; }
  .hero-brand-v3 { min-height: 690px; }
  .hero-brand-v3 .hero-content { width: calc(100% - 28px); margin-left: 14px; padding: 320px 0 38px; }
  .hero-brand-v3 .eyebrow { gap: 9px; font-size: 13px; letter-spacing: .12em; }
  .hero-brand-v3 .eyebrow::before { width: 24px; }
  .hero-brand-v3 h1 { font-size: 52px; }
  .hero-brand-v3 .hero-lead { font-size: 23px; }
  .hero-brand-v3 .hero-note { max-width: 340px; margin-bottom: 24px; font-size: 10px; }
  .hero-scale { display: none; }
  .hero-brand-v3 .hero-actions .button { width: auto; }
  .brand-pillars { grid-template-columns: repeat(2, 1fr); }
  .brand-pillar { min-height: 154px; }
  .brand-pillar:nth-child(3) { border-right: 1px solid rgba(117,92,55,.14); }
  .brand-pillar:nth-child(2n) { border-right: 0; }
  .brand-pillar:nth-child(-n+4) { border-bottom: 1px solid rgba(117,92,55,.14); }
  .brand-story-copy { padding: 54px 24px; }
  .brand-story-photo { min-height: 410px; }
  .brand-story-photo span { right: 24px; bottom: 28px; font-size: 32px; }
  .experience-section { padding-top: 62px; }
  .compact-heading .text-link { justify-self: start; }
  .experience-grid { grid-template-columns: 1fr 1fr; }
  .experience-grid a, .experience-grid a:nth-child(n+4) { min-height: 260px; }
  .experience-grid span { right: 14px; bottom: 17px; left: 14px; font-size: 20px; }
  .proof-band { padding: 62px 0; }
  .proof-band blockquote { font-size: 39px; }
  .proof-video { min-height: 260px; }
  .final-cta-grid { grid-template-columns: 1fr; gap: 30px; }
  .final-price { grid-column: auto; flex-wrap: wrap; }
}

/* Motion v1: restrained depth, parallax and tactile hover */
.hero-depth-mark {
  position: absolute;
  z-index: 2;
  top: 134px;
  right: auto;
  left: max(50%, 670px);
  width: 164px;
  aspect-ratio: 1;
  display: grid;
  isolation: isolate;
  place-items: center;
  opacity: 1;
  pointer-events: none;
  transform-style: preserve-3d;
  will-change: transform;
}

.hero-depth-mark::before {
  position: absolute;
  z-index: 0;
  inset: 8px;
  border: 0;
  border-radius: 50%;
  background: transparent;
  box-shadow: none;
  content: "";
}

.hero-depth-mark::after {
  position: absolute;
  z-index: 1;
  inset: 19px;
  border: 1px dashed rgba(135,224,215,.82);
  border-radius: 50%;
  content: "";
}

.hero-depth-mark img {
  position: relative;
  z-index: 3;
  width: 65px;
  height: 65px;
  filter: brightness(1.16) saturate(.94) drop-shadow(0 6px 12px rgba(83,60,28,.28));
}

.hero-depth-ring {
  position: absolute;
  z-index: 2;
  inset: 0;
  border: 1.5px solid rgba(105,213,204,.92);
  border-radius: 50%;
  transform: rotateX(66deg) rotateZ(8deg);
}

.hero-depth-ring::before,
.hero-depth-ring::after {
  position: absolute;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #e2b766;
  box-shadow: 0 0 0 7px rgba(105,213,204,.2), 0 0 18px rgba(255,255,255,.9);
  content: "";
}

.hero-depth-ring::before { top: 17px; left: 16px; }
.hero-depth-ring::after { right: 12px; bottom: 24px; width: 5px; height: 5px; }
.hero-depth-ring-inner { inset: 29px; border-color: rgba(231,190,111,.92); transform: rotateX(66deg) rotateZ(-22deg); opacity: .96; }
.hero-depth-ring-inner::before { top: 4px; left: 8px; width: 5px; height: 5px; }
.hero-depth-ring-inner::after { display: none; }

.motion-ready .hero-media,
.motion-ready .page-hero-media,
.motion-ready .brand-story-photo img,
.motion-ready .experience-grid a,
.motion-ready .proof-video {
  will-change: transform, opacity;
}

.brand-pillar {
  transform-style: preserve-3d;
  perspective: 700px;
  transition: background-color .45s ease, color .45s ease;
}

.brand-pillar svg {
  transform: translateZ(0);
  transition: transform .6s cubic-bezier(.22,1,.36,1), color .45s ease;
}

.brand-pillar:hover { background: #f0e8dc; }
.brand-pillar:hover svg { color: var(--teal); transform: translateZ(24px) rotate(-4deg) scale(1.08); }

.experience-grid {
  perspective: 1200px;
}

.experience-grid a,
.brand-story-photo,
.proof-video {
  transform-origin: center;
  backface-visibility: hidden;
}

.experience-grid a img,
.proof-video img {
  transition: transform .85s cubic-bezier(.22,1,.36,1), filter .6s ease;
}

.experience-grid a:hover img,
.proof-video:hover img {
  transform: scale(1.075);
  filter: saturate(1.08) contrast(1.03);
}

.button {
  box-shadow: 0 9px 24px rgba(25, 113, 108, .12);
  will-change: transform;
}

.button-ghost-dark { box-shadow: none; }

@media (min-width: 1081px) {
  .experience-grid { display: flex; }
  .experience-grid a {
    min-width: 0;
    flex: 1 1 20%;
    transition: flex .75s cubic-bezier(.22,1,.36,1), filter .55s ease;
  }
  .experience-grid a:hover { flex-grow: 1.55; }
  .experience-grid:hover a:not(:hover) { filter: saturate(.72) brightness(.84); }
}

@media (max-width: 820px) {
  .hero-depth-mark { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  .hero-video { display: none; }
  .hero-depth-mark { display: none; }
  .brand-pillar:hover svg,
  .experience-grid a:hover img,
  .proof-video:hover img { transform: none; }
}
/* Events archive: matches the v2 editorial layout and collapses to one column on mobile. */
.events-intro { align-items: end; }
.events-section { padding: 88px 0; }
.events-section + .events-section { padding-top: 0; }
.events-heading { display: flex; align-items: end; gap: 28px; margin-bottom: 36px; padding-bottom: 22px; border-bottom: 1px solid var(--line); }
.events-heading h2 { margin: 0; font-size: clamp(42px, 5vw, 68px); }
.events-heading p { max-width: 65ch; margin: 0; color: var(--muted); }
.event-list { display: grid; gap: 20px; }
.event-card { display: grid; grid-template-columns: minmax(250px, .72fr) minmax(0, 1.28fr); min-height: 310px; overflow: hidden; border: 1px solid rgba(96, 73, 44, .12); border-radius: 30px; background: var(--paper-light); box-shadow: 0 18px 46px rgba(83, 60, 32, .08); }
.event-card-media { position: relative; min-height: 310px; overflow: hidden; }
.event-card-media::after { position: absolute; inset: 0; background: linear-gradient(0deg, rgba(28, 21, 17, .28), transparent 58%); content: ""; }
.event-card-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s cubic-bezier(.22, 1, .36, 1); }
.event-card:hover .event-card-media img { transform: scale(1.045); }
.event-card-copy { display: flex; flex-direction: column; align-items: flex-start; padding: clamp(28px, 4vw, 54px); }
.event-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; margin-bottom: 24px; }
.event-date { color: #8b6d3e; font-size: 13px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.event-status { padding: 6px 12px; border-radius: 999px; background: var(--teal-soft); color: var(--teal-dark); font-size: 10px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.event-status--past { background: #ece4d8; color: #7e6f5d; }
.event-card h3 { margin: 0 0 14px; font-size: clamp(34px, 4vw, 54px); }
.event-card p { max-width: 680px; margin-bottom: 28px; color: var(--muted); }
.event-card .button { margin-top: auto; }
.event-card--compact { grid-template-columns: 200px 1fr; min-height: 220px; }
.event-card--compact .event-card-media { min-height: 220px; }
.event-card--compact .event-card-copy { padding: 30px 36px; }
.event-card--compact h3 { font-size: clamp(28px, 3vw, 40px); }
@media (max-width: 820px) { .events-heading { align-items: flex-start; flex-direction: column; gap: 10px; } .event-card, .event-card--compact { grid-template-columns: 1fr; } .event-card-media, .event-card--compact .event-card-media { min-height: 280px; } }
@media (max-width: 560px) { .events-section { padding: 62px 0; } .event-card { border-radius: 22px; } .event-card-media, .event-card--compact .event-card-media { min-height: 220px; } .event-card-copy, .event-card--compact .event-card-copy { padding: 25px 22px 28px; } }
@media (prefers-reduced-motion: reduce) { .event-card:hover .event-card-media img { transform: none; } }

/* Dark editorial theme v25: warm black, restrained gold and cinematic media. */
body {
  background:
    radial-gradient(circle at 14% 8%, rgba(201,151,67,.075), transparent 28rem),
    radial-gradient(circle at 88% 34%, rgba(49,146,140,.055), transparent 34rem),
    var(--night);
  color: var(--cream);
}

::selection { background: rgba(97,198,189,.34); color: #fff9ed; }

.skip-link { background: var(--gold-light); color: #17110a; }

.site-header,
.site-header.is-scrolled,
.site-header.header-solid,
body.page-home .site-header {
  border-color: rgba(224,185,111,.16);
  background: rgba(11,10,8,.88);
  color: var(--cream);
  box-shadow: 0 12px 34px rgba(0,0,0,.18);
  backdrop-filter: blur(16px) saturate(120%);
}

.desktop-nav a:hover,
.desktop-nav a[aria-current="page"] { color: var(--gold-light); }

.mobile-menu {
  background:
    radial-gradient(circle at 100% 0, rgba(201,151,67,.12), transparent 48%),
    var(--night-soft);
}

.menu-button { border-color: rgba(239,210,139,.58); }

.button {
  box-shadow: 0 12px 28px rgba(30,115,109,.2);
}

.button:hover { box-shadow: 0 16px 34px rgba(30,115,109,.28); }

.button.button-light,
.button-light {
  border-color: rgba(239,210,139,.48);
  background: var(--gold-light);
  color: #1a130b;
  box-shadow: 0 14px 34px rgba(201,151,67,.2);
}

.button.button-light:hover,
.button-light:hover {
  border-color: #ffe7a9;
  background: #ffe7a9;
  color: #120d07;
}

.button-outline:hover { border-color: var(--gold); background: var(--gold); color: #17110a; }

.hero-brand-v3 {
  min-height: 100dvh;
  background-color: #0b0907;
  color: var(--cream);
}

.hero-brand-v3 .hero-media {
  width: 100%;
  height: 100%;
  object-position: center;
  filter: brightness(.7) saturate(.88) contrast(1.06);
}

.hero-brand-v3::after {
  background:
    linear-gradient(90deg, rgba(8,7,6,.82) 0%, rgba(8,7,6,.68) 35%, rgba(8,7,6,.42) 56%, rgba(8,7,6,.18) 76%, rgba(8,7,6,.12) 100%),
    linear-gradient(0deg, rgba(8,7,6,.52), transparent 48%);
}

.hero-brand-v3 .hero-content {
  padding: clamp(96px, 12vh, 154px) 0 clamp(62px, 8vh, 94px);
}

.hero-brand-v3 h1 {
  color: var(--gold-light);
  text-shadow: 0 5px 28px rgba(0,0,0,.56);
}

.hero-brand-v3 .hero-lead { color: rgba(255,248,234,.94); }
.hero-brand-v3 .hero-note { color: rgba(255,248,234,.8); }
.hero-brand-v3 .hero-scale { color: rgba(255,248,234,.78); }

.button-ghost-dark {
  border-color: rgba(255,255,255,.5);
  background: rgba(10,8,6,.24);
  color: #fff8ea;
}
.button-ghost-dark:hover { border-color: #fff8ea; background: #fff8ea; color: #20170d; }

@media (max-width: 820px) {
  .hero-brand-v3 { min-height: calc(100dvh - 76px); }
  .hero-brand-v3::after { background: linear-gradient(0deg, rgba(8,7,6,.9) 0%, rgba(8,7,6,.62) 55%, rgba(8,7,6,.2) 100%); }
  .hero-brand-v3 .hero-content { padding: 300px 0 48px; }
}

@media (max-width: 560px) {
  .hero-brand-v3 { min-height: calc(100dvh - 76px); }
  .hero-brand-v3 .hero-content { padding: 276px 0 38px; }
}

.hero-depth-mark {
  top: 136px;
  left: 47%;
}

.hero-depth-mark::after { border-color: rgba(112,224,215,.9); }
.hero-depth-ring { border-color: rgba(109,225,216,.96); }
.hero-depth-mark img { filter: brightness(1.28) saturate(.9) drop-shadow(0 7px 14px rgba(83,60,28,.3)); }

.button-ghost-dark {
  border-color: rgba(64,48,30,.28);
  background: rgba(250,248,243,.78);
  color: #2b251f;
}

.button-ghost-dark:hover { border-color: var(--teal-dark); background: #fffaf0; color: #185f5a; }

.section-dark,
.media-feature,
.review-copy,
.page-hero { background: var(--night-soft); }

.section-dark { color: var(--cream); }
.section-teal { background: #15312f; color: var(--cream); }

.page-hero-media {
  filter: brightness(.56) saturate(.76) contrast(1.08);
}

.page-hero::after {
  background:
    linear-gradient(90deg, rgba(7,6,5,.86) 0%, rgba(7,6,5,.58) 52%, rgba(7,6,5,.22) 100%),
    linear-gradient(0deg, rgba(7,6,5,.72), transparent 58%);
}

.brand-pillars,
.experience-section,
.section-light,
.final-cta {
  background: var(--night-soft);
}

.brand-pillars { border-color: var(--line); }

.brand-pillar {
  border-color: var(--line);
  transition: background-color .25s ease, transform .25s ease;
}

.brand-pillar:hover { background: rgba(239,210,139,.045); transform: translateY(-2px); }
.brand-pillar svg,
.brand-pillar:nth-child(n) svg { color: var(--gold); }

.brand-story {
  background:
    radial-gradient(circle at 20% 24%, rgba(201,151,67,.09), transparent 38%),
    var(--night-raised);
}

.brand-story-copy h2,
.final-cta h2,
.final-price strong { color: var(--gold-light); }

.brand-story-copy p:not(.eyebrow) { color: var(--muted); }

.experience-grid a:nth-child(n) { box-shadow: inset 0 4px 0 rgba(201,151,67,.9); }
.experience-grid img,
.brand-story-photo img,
.proof-video img { filter: saturate(.82) contrast(1.04) brightness(.88); }
.experience-grid a:hover img,
.brand-story-photo:hover img { filter: saturate(.96) contrast(1.04) brightness(.96); }

.proof-band {
  background:
    radial-gradient(circle at 84% 10%, rgba(239,210,139,.14), transparent 34%),
    linear-gradient(135deg, #11100d 0%, #192421 54%, #101a19 100%);
  border-block: 1px solid var(--line);
}

.final-cta { border-top: 1px solid var(--line); }
.final-facts svg { color: var(--gold); }

.ticket-banner {
  border: 1px solid rgba(239,210,139,.22);
  background:
    radial-gradient(circle at 80% 0, rgba(97,198,189,.16), transparent 42%),
    linear-gradient(135deg, #18140f, #211b13);
  color: var(--cream);
  box-shadow: 0 28px 70px rgba(0,0,0,.22);
}

.tab-button[aria-selected="true"] {
  border-color: var(--gold);
  background: var(--gold);
  color: #17110a;
}

.notice {
  background: rgba(214,163,74,.09);
  color: var(--gold-light);
}

.master-profile,
.event-card,
.ticket-card,
.detail-profile-media,
.detail-program-list a,
.detail-more {
  border-color: rgba(224,185,111,.16);
  background: var(--night-raised);
  box-shadow: 0 20px 54px rgba(0,0,0,.24);
}

.master-profile-media,
.master-profile > img,
.master-profile-media img,
.gallery-masonry figure { background: #211d18; }

.master-profile:hover,
.event-card:hover { box-shadow: 0 28px 68px rgba(0,0,0,.34); }

.master-profile-media img,
.event-card-media img,
.gallery-masonry img,
.detail-profile-media img { filter: saturate(.86) contrast(1.03) brightness(.91); }

.master-profile:hover img,
.event-card:hover img,
.gallery-masonry figure:hover img { filter: saturate(1) contrast(1.03) brightness(.98); }

.master-profile small,
.master-profile-copy em,
.event-date,
.detail-program-list small { color: var(--gold-light); }

.event-status { background: rgba(97,198,189,.13); color: #8ce0d7; }
.event-status--past { background: rgba(184,170,150,.1); color: var(--muted); }

.detail-section::before {
  background: radial-gradient(circle, rgba(97,198,189,.08), transparent 67%);
}

.detail-more summary { color: var(--gold-light); }
.detail-more summary:hover { background: rgba(201,151,67,.08); color: #ffe1a1; }
.detail-program-list a:hover { border-color: rgba(97,198,189,.42); background: #242019; }

.review-card,
.info-block { background: rgba(255,255,255,.012); }

.review-card:hover,
.info-block:hover { background: rgba(239,210,139,.028); }

.future-video {
  background:
    radial-gradient(circle at 20% 10%, rgba(97,198,189,.15), transparent 46%),
    #102321;
}

.video-slot { background: rgba(255,255,255,.018); }

.ticket-card { border-top-color: var(--gold); }
.ticket-card.featured {
  border-color: rgba(97,198,189,.42);
  background: linear-gradient(150deg, #17312e, #111a18);
}

.site-footer,
.brand-footer-v3 {
  border-top: 1px solid rgba(224,185,111,.13);
  background: #090806;
}

@media (max-width: 1080px) {
  .hero-depth-mark { display: none; }
}

@media (max-width: 820px) {
  .hero-brand-v3::after {
    background:
      linear-gradient(0deg, rgba(250,248,243,.99) 0%, rgba(250,248,243,.95) 46%, rgba(250,248,243,.22) 77%, rgba(6,6,5,.18) 100%),
      linear-gradient(90deg, rgba(6,6,5,.15), rgba(6,6,5,.32));
  }
}

/* Performance and hero-tone refinement v26. */
.site-header,
.site-header.is-scrolled,
.site-header.header-solid,
body.page-home .site-header {
  background: rgba(11,10,8,.96);
  backdrop-filter: none;
}

.hero-brand-v3 { background-color: #deddd9; }

.hero-brand-v3 .hero-media,
.page-hero-media { filter: none; }

.hero-brand-v3::after {
  background:
    linear-gradient(90deg, rgba(222,221,217,.99) 0%, rgba(222,221,217,.96) 30%, rgba(222,221,217,.58) 44%, rgba(222,221,217,.12) 59%, transparent 70%),
    linear-gradient(0deg, rgba(6,6,5,.52), transparent 45%),
    linear-gradient(90deg, rgba(7,7,6,.04) 0%, rgba(7,7,6,.16) 54%, rgba(7,7,6,.38) 100%);
}

.hero-depth-mark {
  top: 108px;
  left: clamp(34px, 5.25vw, 110px);
}

.hero-depth-mark::after {
  border-color: rgba(156,238,231,.98);
  box-shadow: 0 0 18px rgba(126,224,216,.14);
}

.hero-depth-ring {
  border-color: rgba(142,232,225,.98);
  filter: drop-shadow(0 0 8px rgba(126,224,216,.2));
}

.hero-depth-ring-inner { border-color: rgba(247,210,135,.98); }

.hero-depth-ring::before,
.hero-depth-ring::after {
  background: #f4d38c;
  box-shadow: 0 0 0 7px rgba(126,224,216,.18), 0 0 20px rgba(255,244,211,.76);
}

.hero-depth-mark img {
  filter: brightness(1.48) saturate(1.04) contrast(1.08) drop-shadow(0 5px 13px rgba(110,76,26,.26));
}

.hero-brand-v3 .eyebrow { color: #167a75; }

.motion-ready .page-hero-media,
.motion-ready .brand-story-photo img,
.motion-ready .experience-grid a,
.motion-ready .proof-video { will-change: auto; }

.experience-grid img,
.brand-story-photo img,
.proof-video img,
.master-profile-media img,
.event-card-media img,
.gallery-masonry img,
.detail-profile-media img,
.experience-grid a:hover img,
.brand-story-photo:hover img,
.master-profile:hover img,
.event-card:hover img,
.gallery-masonry figure:hover img { filter: none; }

@media (max-width: 820px) {
  .hero-brand-v3::after {
    background:
      linear-gradient(0deg, rgba(222,221,217,.995) 0%, rgba(222,221,217,.96) 48%, rgba(222,221,217,.28) 78%, rgba(6,6,5,.2) 100%),
      linear-gradient(90deg, rgba(6,6,5,.12), rgba(6,6,5,.28));
  }
}

/* Split hero v30: no pale wash, full video frame contained on the right. */
.hero-brand-v3 {
  isolation: isolate;
  background: var(--night);
  color: var(--cream);
}

.hero-brand-v3 .hero-media {
  z-index: 0;
  inset: 92px 0 auto 50%;
  width: 50%;
  height: calc(100% - 92px);
  object-fit: contain;
  object-position: center;
  background: #090806;
  transform: none !important;
}

.hero-brand-v3::after {
  z-index: 0;
  background:
    linear-gradient(90deg, rgba(13,12,10,1) 0%, rgba(13,12,10,1) 47%, rgba(13,12,10,.82) 51%, rgba(13,12,10,.14) 59%, rgba(8,7,6,.12) 100%),
    linear-gradient(0deg, rgba(6,6,5,.3), transparent 46%);
}

.hero-brand-v3 .hero-content {
  width: min(620px, calc(100% - 48px));
  max-width: 620px;
}

.hero-brand-v3 h1 {
  max-width: 620px;
  font-size: clamp(52px, 4.7vw, 76px);
  line-height: .94;
  color: #f3d994;
  text-shadow: 0 3px 28px rgba(0,0,0,.62);
}

.hero-brand-v3 .eyebrow {
  color: #72d9d0;
  text-shadow: 0 2px 16px rgba(0,0,0,.72);
}

.hero-brand-v3 .hero-lead {
  color: #f4ead8;
  text-shadow: 0 2px 20px rgba(0,0,0,.72);
}

.hero-brand-v3 .hero-note {
  color: rgba(244,234,216,.84);
  text-shadow: 0 2px 14px rgba(0,0,0,.76);
}

.hero-brand-v3 .hero-scale {
  color: rgba(244,234,216,.78);
  text-shadow: 0 2px 12px rgba(0,0,0,.7);
}

@media (max-width: 820px) {
  .hero-brand-v3 .hero-media {
    inset: 76px 0 auto;
    width: 100%;
    height: calc(100% - 76px);
    object-fit: cover;
    background: var(--night);
  }

  .hero-brand-v3::after {
    background:
      linear-gradient(0deg, rgba(9,8,7,.98) 0%, rgba(9,8,7,.92) 48%, rgba(9,8,7,.22) 78%, rgba(9,8,7,.36) 100%),
      linear-gradient(90deg, rgba(9,8,7,.12), rgba(9,8,7,.28));
  }
}

@media (max-width: 560px) {
  .hero-brand-v3 {
    min-height: 790px;
  }

  .hero-brand-v3 h1 {
    font-size: clamp(40px, 10.6vw, 44px);
    line-height: .98;
  }

  .hero-brand-v3 .hero-actions {
    display: grid;
    width: min(100%, 280px);
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .hero-brand-v3 .hero-actions .button {
    width: 100%;
  }
}

/* Events must remain visible if their entrance animation is skipped or interrupted. */
.event-list .event-card {
  opacity: 1 !important;
  transform: none !important;
}

/* Full-screen hero video: fill the complete viewport without side gutters. */
.hero-brand-v3 {
  min-height: 100dvh;
  background: #090806;
}

.hero-brand-v3 .hero-media {
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  background: #090806;
  filter: brightness(.88) saturate(.94) contrast(1.03);
}

.hero-brand-v3::after {
  background:
    linear-gradient(90deg, rgba(9,8,6,.78) 0%, rgba(9,8,6,.65) 38%, rgba(9,8,6,.43) 58%, rgba(9,8,6,.24) 78%, rgba(9,8,6,.18) 100%),
    linear-gradient(0deg, rgba(9,8,6,.48), transparent 52%);
}

@media (max-width: 820px) {
  .hero-brand-v3 { min-height: max(720px, 100dvh); }
  .hero-brand-v3 .hero-media { inset: 0; width: 100%; height: 100%; object-fit: cover; }
  .hero-brand-v3::after {
    background: linear-gradient(0deg, rgba(9,8,6,.94) 0%, rgba(9,8,6,.72) 56%, rgba(9,8,6,.26) 100%);
  }
}

@media (max-width: 560px) {
  .hero-brand-v3 { min-height: max(700px, 100dvh); }
}

/* Festival facts replace the old icon strip with one calm, floating hero panel. */
.festival-facts {
  position: absolute;
  z-index: 3;
  right: 50%;
  bottom: 16px;
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 0;
  width: min(1280px, calc(100% - 64px));
  padding: 10px 18px;
  transform: translateX(50%);
  border: 1px solid rgba(201, 151, 67, .32);
  border-radius: 16px;
  background:
    radial-gradient(circle at 82% 0%, rgba(104, 194, 183, .11), transparent 34%),
    rgba(15, 18, 17, .78);
  box-shadow: 0 20px 50px rgba(0, 0, 0, .3), inset 0 1px 0 rgba(255, 248, 225, .06);
  backdrop-filter: blur(18px) saturate(112%);
}

.festival-fact {
  display: grid;
  grid-template-columns: 40px minmax(0, 1fr);
  gap: 11px;
  align-items: center;
  min-height: 72px;
  padding: 10px 18px;
  border: 0;
  background: transparent;
}

.festival-fact + .festival-fact { border-left: 1px solid rgba(201, 151, 67, .22); }

.festival-fact-icon {
  display: grid;
  width: 40px;
  height: 40px;
  place-items: center;
  border: 1px solid rgba(229, 186, 94, .48);
  border-radius: 50%;
  background: rgba(201, 151, 67, .08);
  box-shadow: inset 0 0 18px rgba(201, 151, 67, .06);
}

.festival-fact-icon svg { width: 22px; height: 22px; color: #e2b75c; }
.festival-fact p { min-width: 0; margin: 0; color: #f4ead8; font-size: 13px; font-weight: 600; line-height: 1.3; text-wrap: balance; }
.festival-fact strong,
.festival-fact p > span { display: block; }
.festival-fact p > span { color: rgba(244, 234, 216, .68); font-weight: 500; }

@media (min-width: 821px) {
  .hero-brand-v3 .hero-content { margin-bottom: 68px; }
}

@media (max-width: 1100px) {
  .festival-facts { grid-template-columns: repeat(3, minmax(0, 1fr)); width: min(860px, calc(100% - 48px)); }
  .festival-fact:nth-child(4) { border-left: 0; }
  .festival-fact:nth-child(n+4) { border-top: 1px solid rgba(201, 151, 67, .18); }
}

@media (max-width: 820px) {
  .festival-facts {
    position: relative;
    right: auto;
    bottom: auto;
    align-self: end;
    width: calc(100% - 32px);
    margin: 0 16px 22px;
    transform: none;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    border-radius: 14px;
  }
  .festival-fact:nth-child(odd) { border-left: 0; }
  .festival-fact:nth-child(even) { border-left: 1px solid rgba(201, 151, 67, .22); }
  .festival-fact:nth-child(n+3) { border-top: 1px solid rgba(201, 151, 67, .18); }
}

@media (max-width: 560px) {
  .festival-facts {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: minmax(225px, 78vw);
    grid-template-columns: none;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scroll-snap-type: x proximity;
    scrollbar-width: none;
  }
  .festival-facts::-webkit-scrollbar { display: none; }
  .festival-fact { min-height: 70px; border-top: 0; border-left: 1px solid rgba(201, 151, 67, .22); scroll-snap-align: start; }
  .festival-fact:first-child { border-left: 0; }
}
