  :root {
      --cream: #F7F2E8;
      --sage: #7A9E7E;
      --forest: #2C4A2E;
      --amber: #C8832A;
      --rust: #A04D2D;
      --ivory: #EDE5D0;
      --gold: #D4A84B;
      --dark: #1A2B1B;
      --muted: #6B7A5C;
      --light-sage: #B8D4BB;
  }

  *,
  *::before,
  *::after {
      box-sizing: border-box;
      margin: 0;
      padding: 0;
  }

  html {
      scroll-behavior: smooth;
  }

  body {
      background-color: var(--cream);
      color: var(--dark);
      font-family: 'Jost', sans-serif;
      font-weight: 300;
      overflow-x: hidden;
      line-height: 1.6;
  }

  /* ── NOISE TEXTURE OVERLAY ── */
  body::before {
      content: '';
      position: fixed;
      inset: 0;
      background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.03'/%3E%3C/svg%3E");
      pointer-events: none;
      z-index: 9999;
      opacity: 0.4;
  }

  /* ── HERO ── */
  .hero {
      position: relative;
      min-height: 100svh;
      display: grid;
      grid-template-columns: 1fr 1fr;
      overflow: hidden;
      background-color: var(--forest);
  }

  .hero-left {
      position: relative;
      display: flex;
      flex-direction: column;
      justify-content: flex-end;
      padding: clamp(2rem, 5vw, 5rem);
      padding-bottom: clamp(3rem, 6vw, 6rem);
      z-index: 2;
  }

  .hero-badge {
      display: inline-flex;
      align-items: center;
      gap: 0.5rem;
      background: var(--amber);
      color: #fff;
      font-family: 'Jost', sans-serif;
      font-size: 0.7rem;
      font-weight: 600;
      letter-spacing: 0.18em;
      text-transform: uppercase;
      padding: 0.45rem 1rem;
      border-radius: 2px;
      margin-bottom: 2rem;
      width: fit-content;
  }

  .hero-badge::before {
      content: '✦';
      font-size: 0.6rem;
  }

  .hero-numeral {
      font-family: 'Cormorant Garamond', serif;
      font-size: clamp(5rem, 12vw, 11rem);
      font-weight: 300;
      line-height: 0.85;
      color: rgba(255, 255, 255, 0.08);
      position: absolute;
      top: clamp(1rem, 4vw, 3rem);
      left: clamp(1.5rem, 4vw, 4rem);
      pointer-events: none;
      user-select: none;
  }

  .hero-title {
      font-family: 'Cormorant Garamond', serif;
      font-weight: 600;
      font-size: clamp(2.4rem, 5.5vw, 5.2rem);
      line-height: 1.05;
      color: var(--cream);
      margin-bottom: 0.6rem;
  }

  .hero-title em {
      font-style: italic;
      color: var(--gold);
  }

  .hero-subtitle {
      font-family: 'Cormorant Garamond', serif;
      font-style: italic;
      font-size: clamp(1.1rem, 2vw, 1.6rem);
      color: var(--light-sage);
      margin-bottom: 2.5rem;
      font-weight: 300;
  }

  .hero-meta {
      display: flex;
      flex-wrap: wrap;
      gap: 1.5rem;
  }

  .hero-meta-item {
      display: flex;
      flex-direction: column;
      gap: 0.2rem;
  }

  .hero-meta-label {
      font-size: 0.62rem;
      letter-spacing: 0.2em;
      text-transform: uppercase;
      color: var(--sage);
      font-weight: 500;
  }

  .hero-meta-value {
      font-family: 'Cormorant Garamond', serif;
      font-size: clamp(1rem, 1.6vw, 1.25rem);
      color: var(--cream);
      font-weight: 400;
  }

  /* right panel – image placeholder */
  .hero-right {
      position: relative;
      overflow: hidden;
  }

  .hero-img-placeholder {
      width: 100%;
      height: 100%;
      background: linear-gradient(135deg, #3a5f3c 0%, #2c4a2e 40%, #1a2b1b 100%);
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 1rem;
  }

  .hero-img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      /* keeps aspect ratio, fills container */
  }

  .hero-img-placeholder .ph-icon {
      width: 64px;
      height: 64px;
      opacity: 0.3;
      stroke: var(--cream);
      fill: none;
  }

  .hero-img-placeholder .ph-label {
      font-size: 0.7rem;
      letter-spacing: 0.18em;
      text-transform: uppercase;
      color: rgba(255, 255, 255, 0.25);
  }

  /* decorative diagonal slash */
  .hero::after {
      content: '';
      position: absolute;
      top: 0;
      left: 50%;
      width: 3px;
      height: 100%;
      background: linear-gradient(to bottom, transparent, var(--amber), transparent);
      transform: translateX(-50%) skewX(-6deg);
      z-index: 3;
  }

  /* botanical svg overlay left */
  .hero-botanical {
      position: absolute;
      bottom: -2rem;
      right: -1rem;
      width: clamp(120px, 22vw, 260px);
      opacity: 0.12;
      pointer-events: none;
      z-index: 1;
  }

  /* ── SCROLL TICKER ── */
  .ticker {
      background: var(--amber);
      overflow: hidden;
      white-space: nowrap;
      padding: 0.65rem 0;
      position: relative;
      z-index: 4;
  }

  .ticker-inner {
      display: inline-flex;
      animation: ticker 22s linear infinite;
  }

  .ticker-item {
      font-size: 0.72rem;
      font-weight: 600;
      letter-spacing: 0.18em;
      text-transform: uppercase;
      color: #fff;
      padding: 0 2.5rem;
  }

  .ticker-item::after {
      content: '✦';
      padding-left: 2.5rem;
      opacity: 0.6;
  }

  @keyframes ticker {
      0% {
          transform: translateX(0);
      }

      100% {
          transform: translateX(-50%);
      }
  }

  /* ── SECTION COMMON ── */
  section {
      position: relative;
  }

  .section-inner {
      max-width: 1160px;
      margin: 0 auto;
      padding: clamp(3rem, 7vw, 7rem) clamp(1.25rem, 4vw, 3rem);
  }

  .section-tag {
      display: inline-block;
      font-size: 0.65rem;
      font-weight: 600;
      letter-spacing: 0.22em;
      text-transform: uppercase;
      color: var(--amber);
      margin-bottom: 1rem;
  }

  .section-heading {
      font-family: 'Cormorant Garamond', serif;
      font-size: clamp(2rem, 4.5vw, 3.8rem);
      font-weight: 600;
      line-height: 1.1;
      color: var(--forest);
      margin-bottom: 1.5rem;
  }

  .section-heading em {
      font-style: italic;
      color: var(--rust);
  }

  .section-body {
      font-size: clamp(0.9rem, 1.5vw, 1.05rem);
      color: var(--muted);
      line-height: 1.8;
      max-width: 60ch;
  }

  /* ── ABOUT ── */
  .about {
      background: var(--ivory);
  }

  .about .section-inner {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: clamp(2rem, 5vw, 5rem);
      align-items: center;
  }

  .about-visual {
      position: relative;
  }

  .about-img-wrap {
      aspect-ratio: 16/9;
      border-radius: 2px;
      overflow: hidden;
      position: relative;
  }

  .img-placeholder {
      width: 100%;
      height: 100%;
      background: linear-gradient(160deg, var(--sage) 0%, var(--forest) 100%);
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 0.75rem;
  }

  .img-placeholder svg {
      width: 48px;
      height: 48px;
      opacity: 0.35;
      stroke: #fff;
      fill: none;
  }

  .img-placeholder span {
      font-size: 0.65rem;
      letter-spacing: 0.18em;
      text-transform: uppercase;
      color: rgba(255, 255, 255, 0.3);
  }

  .about-img-accent {
      position: absolute;
      bottom: -1.5rem;
      right: -1.5rem;
      width: clamp(80px, 14vw, 140px);
      aspect-ratio: 1;
      background: var(--amber);
      border-radius: 2px;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 0.15rem;
      padding: 0.5rem;
  }

  .about-img-accent .acc-num {
      font-family: 'Cormorant Garamond', serif;
      font-size: clamp(1.8rem, 3.5vw, 2.8rem);
      font-weight: 700;
      color: #fff;
      line-height: 1;
  }

  .about-img-accent .acc-text {
      font-size: 0.55rem;
      font-weight: 600;
      letter-spacing: 0.12em;
      text-transform: uppercase;
      color: rgba(255, 255, 255, 0.8);
      text-align: center;
  }

  .about-img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      display: block;
  }

  .about-right {}

  .goal-block {
      margin-top: 2.5rem;
      border-left: 3px solid var(--amber);
      padding-left: 1.5rem;
  }

  .goal-block h3 {
      font-family: 'Cormorant Garamond', serif;
      font-size: 1.3rem;
      font-weight: 600;
      color: var(--forest);
      margin-bottom: 1rem;
  }

  .goal-list {
      list-style: none;
      display: flex;
      flex-direction: column;
      gap: 0.7rem;
  }

  .goal-list li {
      display: flex;
      align-items: flex-start;
      gap: 0.75rem;
      font-size: 0.95rem;
      color: var(--muted);
      line-height: 1.55;
  }

  .goal-list li::before {
      content: '';
      flex-shrink: 0;
      margin-top: 0.55rem;
      width: 6px;
      height: 6px;
      border-radius: 50%;
      background: var(--rust);
  }

  /* ── FORMATS ── */
  .formats {
      background: var(--forest);
      position: relative;
      overflow: hidden;
  }

  .formats-bg-text {
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
      font-family: 'Cormorant Garamond', serif;
      font-size: clamp(6rem, 16vw, 18rem);
      font-weight: 700;
      color: rgba(255, 255, 255, 0.03);
      white-space: nowrap;
      pointer-events: none;
      user-select: none;
  }

  .formats .section-inner {
      position: relative;
      z-index: 2;
  }

  .formats .section-tag {
      color: var(--gold);
  }

  .formats .section-heading {
      color: var(--cream);
  }

  .formats-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 1.5px;
      margin-top: 3rem;
      background: rgba(255, 255, 255, 0.07);
      border: 1.5px solid rgba(255, 255, 255, 0.07);
  }

  .format-card {
      background: var(--forest);
      padding: clamp(1.5rem, 3vw, 2.5rem);
      transition: background 0.3s;
      position: relative;
      overflow: hidden;
  }

  .format-card:hover {
      background: #354f37;
  }

  .format-card-num {
      font-family: 'Cormorant Garamond', serif;
      font-size: 3.5rem;
      font-weight: 700;
      color: rgba(255, 255, 255, 0.06);
      line-height: 1;
      position: absolute;
      top: 0.5rem;
      right: 1rem;
  }

  .format-card-icon {
      font-size: 1.6rem;
      margin-bottom: 1.2rem;
      display: block;
  }

  .format-card h3 {
      font-family: 'Cormorant Garamond', serif;
      font-size: 1.4rem;
      font-weight: 600;
      color: var(--cream);
      margin-bottom: 0.75rem;
      line-height: 1.2;
  }

  .format-card p {
      font-size: 0.88rem;
      color: rgba(255, 255, 255, 0.55);
      line-height: 1.7;
  }

  .format-card-tag {
      display: inline-block;
      margin-top: 1.2rem;
      font-size: 0.6rem;
      letter-spacing: 0.18em;
      text-transform: uppercase;
      color: var(--gold);
      font-weight: 600;
      border-bottom: 1px solid var(--amber);
      padding-bottom: 0.15rem;
  }

  /* ── HIGHLIGHTS STRIP ── */
  .highlights {
      background: var(--amber);
      padding: clamp(2.5rem, 5vw, 4rem) clamp(1.25rem, 4vw, 3rem);
      overflow: hidden;
  }

  .highlights-inner {
      max-width: 1160px;
      margin: 0 auto;
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 2rem;
      text-align: center;
  }

  .highlight-item {}

  .highlight-num {
      font-family: 'Cormorant Garamond', serif;
      font-size: clamp(2.8rem, 5vw, 4rem);
      font-weight: 700;
      color: #fff;
      line-height: 1;
      display: block;
  }

  .highlight-label {
      font-size: 0.7rem;
      font-weight: 600;
      letter-spacing: 0.16em;
      text-transform: uppercase;
      color: rgba(255, 255, 255, 0.75);
      margin-top: 0.3rem;
      display: block;
  }

  /* ── PROGRAMME ── */
  .programme {
      background: var(--cream);
  }

  .programme .section-inner {
      display: grid;
      grid-template-columns: 1fr 1.2fr;
      gap: clamp(2rem, 5vw, 5rem);
      align-items: start;
  }

  .prog-image-wrap {
      position: relative;
      aspect-ratio: 3/4;
      border-radius: 2px;
      overflow: hidden;
  }

  .prog-image-wrap::after {
      content: '';
      position: absolute;
      inset: 0;
      background: linear-gradient(to bottom, transparent 50%, rgba(44, 74, 46, 0.7) 100%);
  }

  .prog-image-label {
      position: absolute;
      bottom: 1.5rem;
      left: 1.5rem;
      z-index: 2;
      font-family: 'Cormorant Garamond', serif;
      font-size: 1.4rem;
      color: #fff;
      font-style: italic;
  }

  .prog-items {
      display: flex;
      flex-direction: column;
      gap: 0;
  }

  .prog-item {
      padding: 1.5rem 0;
      border-bottom: 1px solid rgba(44, 74, 46, 0.12);
      display: grid;
      grid-template-columns: auto 1fr;
      gap: 1.25rem;
      align-items: start;
  }

  .prog-item:first-child {
      border-top: 1px solid rgba(44, 74, 46, 0.12);
  }

  .prog-item-emoji {
      font-size: 1.4rem;
      padding-top: 0.1rem;
      line-height: 1;
  }

  .prog-item-body {}

  .prog-item-title {
      font-family: 'Cormorant Garamond', serif;
      font-size: 1.2rem;
      font-weight: 600;
      color: var(--forest);
      margin-bottom: 0.3rem;
      line-height: 1.2;
  }

  .prog-item-desc {
      font-size: 0.88rem;
      color: var(--muted);
      line-height: 1.65;
  }

  /* ── VR CALLOUT ── */
  .vr-callout {
      background: var(--rust);
      position: relative;
      overflow: hidden;
  }

  .vr-callout::before {
      content: 'VR';
      position: absolute;
      right: -2rem;
      top: 50%;
      transform: translateY(-50%);
      font-family: 'Cormorant Garamond', serif;
      font-size: clamp(8rem, 20vw, 22rem);
      font-weight: 700;
      color: rgba(255, 255, 255, 0.05);
      line-height: 1;
      pointer-events: none;
  }

  .vr-callout .section-inner {
      display: grid;
      grid-template-columns: 1.2fr 1fr;
      gap: clamp(2rem, 5vw, 5rem);
      align-items: center;
      position: relative;
      z-index: 2;
  }

  .vr-callout .section-tag {
      color: rgba(255, 255, 255, 0.6);
  }

  .vr-callout .section-heading {
      color: #fff;
  }

  .vr-callout .section-body {
      color: rgba(255, 255, 255, 0.7);
  }

  .vr-image {
      aspect-ratio: 1;
      border-radius: 50%;
      overflow: hidden;
  }

  .vr-image .img-placeholder {
      background: linear-gradient(135deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.4) 100%);
      height: 100%;
  }

  .vr-stats {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 1rem;
      margin-top: 2.5rem;
  }

  .vr-stat {
      background: rgba(255, 255, 255, 0.1);
      padding: 1.25rem;
      border-radius: 2px;
  }

  .vr-stat-num {
      font-family: 'Cormorant Garamond', serif;
      font-size: 2rem;
      font-weight: 700;
      color: #fff;
      line-height: 1;
      display: block;
  }

  .vr-stat-label {
      font-size: 0.75rem;
      color: rgba(255, 255, 255, 0.6);
      margin-top: 0.3rem;
      display: block;
      line-height: 1.4;
  }

  /* ── GALLERY STRIP ── */
  .gallery-strip {
      display: grid;
      grid-template-columns: repeat(5, 1fr);
      height: clamp(140px, 18vw, 260px);
  }

  .gallery-cell {
      overflow: hidden;
      position: relative;
  }

  .gallery-cell .img-placeholder {
      height: 100%;
      filter: grayscale(20%);
      transition: filter 0.4s, transform 0.4s;
  }

  .gallery-cell:hover .img-placeholder {
      filter: grayscale(0%);
      transform: scale(1.04);
  }

  .gallery-cell:nth-child(2) .img-placeholder {
      background: linear-gradient(160deg, #b8d4bb, #7a9e7e);
  }

  .gallery-cell:nth-child(3) .img-placeholder {
      background: linear-gradient(160deg, #c8832a, #a04d2d);
  }

  .gallery-cell:nth-child(4) .img-placeholder {
      background: linear-gradient(160deg, #2c4a2e, #7a9e7e);
  }

  .gallery-cell:nth-child(5) .img-placeholder {
      background: linear-gradient(160deg, #d4a84b, #c8832a);
  }

  /* ── TICKETS ── */
  .tickets {
      background: var(--ivory);
  }

  .tickets .section-inner {
      text-align: center;
  }

  .ticket-cards {
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      gap: 1.5rem;
      margin-top: 3rem;
      max-width: 760px;
      margin-left: auto;
      margin-right: auto;
  }

  .ticket-card {
      background: #fff;
      border: 1.5px solid rgba(44, 74, 46, 0.1);
      padding: clamp(1.5rem, 3vw, 2.5rem);
      border-radius: 2px;
      text-align: left;
      position: relative;
      overflow: hidden;
      transition: box-shadow 0.3s, transform 0.3s;
  }

  .ticket-card:hover {
      box-shadow: 0 12px 40px rgba(44, 74, 46, 0.12);
      transform: translateY(-3px);
  }

  .ticket-card.featured {
      background: var(--forest);
      border-color: transparent;
  }

  .ticket-card-corner {
      position: absolute;
      top: 0;
      right: 0;
      width: 60px;
      height: 60px;
      background: var(--amber);
      clip-path: polygon(100% 0, 0 0, 100% 100%);
  }

  .ticket-card.featured .ticket-card-corner {
      background: var(--gold);
  }

  .ticket-type {
      font-size: 0.65rem;
      font-weight: 600;
      letter-spacing: 0.2em;
      text-transform: uppercase;
      color: var(--amber);
      margin-bottom: 0.75rem;
      display: block;
  }

  .ticket-card.featured .ticket-type {
      color: var(--gold);
  }

  .ticket-title {
      font-family: 'Cormorant Garamond', serif;
      font-size: 1.5rem;
      font-weight: 600;
      color: var(--forest);
      margin-bottom: 0.5rem;
      line-height: 1.2;
  }

  .ticket-card.featured .ticket-title {
      color: var(--cream);
  }

  .ticket-desc {
      font-size: 0.85rem;
      color: var(--muted);
      line-height: 1.65;
  }

  .ticket-card.featured .ticket-desc {
      color: rgba(255, 255, 255, 0.6);
  }

  /* ── CTA ── */
  .cta-btn {
      display: inline-flex;
      align-items: center;
      gap: 0.6rem;
      background: var(--amber);
      color: #fff;
      font-family: 'Jost', sans-serif;
      font-size: 0.78rem;
      font-weight: 600;
      letter-spacing: 0.16em;
      text-transform: uppercase;
      text-decoration: none;
      padding: 0.9rem 2rem;
      border-radius: 2px;
      margin-top: 1.5rem;
      transition: background 0.25s, transform 0.2s;
      border: none;
      cursor: pointer;
  }

  .cta-btn:hover {
      background: var(--rust);
      transform: translateY(-1px);
  }

  .cta-btn-ghost {
      background: transparent;
      color: var(--forest);
      border: 1.5px solid var(--forest);
  }

  .cta-btn-ghost:hover {
      background: var(--forest);
      color: #fff;
  }

  .ticket-actions {
      display: flex;
      flex-wrap: wrap;
      gap: 0.75rem;
      margin-top: 2.5rem;
      justify-content: center;
  }

  /* ── LOCATION ── */
  .location {
      background: var(--forest);
  }

  .location .section-inner {
      display: grid;
      grid-template-columns: 1fr 1.4fr;
      gap: clamp(2rem, 5vw, 5rem);
      align-items: center;
  }

  .location .section-tag {
      color: var(--gold);
  }

  .location .section-heading {
      color: var(--cream);
  }

  .location .section-body {
      color: rgba(255, 255, 255, 0.6);
  }

  .location-info {
      margin-top: 2rem;
      display: flex;
      flex-direction: column;
      gap: 1rem;
  }

  .location-info-item {
      display: flex;
      gap: 1rem;
      align-items: flex-start;
  }

  .loc-icon {
      flex-shrink: 0;
      width: 36px;
      height: 36px;
      border: 1.5px solid rgba(255, 255, 255, 0.15);
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 0.9rem;
      margin-top: 0.1rem;
  }

  .loc-text {}

  .loc-label {
      font-size: 0.62rem;
      font-weight: 600;
      letter-spacing: 0.18em;
      text-transform: uppercase;
      color: var(--gold);
      display: block;
      margin-bottom: 0.15rem;
  }

  .loc-value {
      font-family: 'Cormorant Garamond', serif;
      font-size: 1.1rem;
      color: var(--cream);
  }

  .map-placeholder {
      aspect-ratio: 4/3;
      background: #263d28;
      border-radius: 2px;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 0.75rem;
      position: relative;
      overflow: hidden;
  }

  .map-placeholder::before {
      content: '';
      position: absolute;
      inset: 0;
      background: radial-gradient(circle at 50% 50%, rgba(212, 168, 75, 0.15) 0%, transparent 70%);
  }

  .map-dot {
      width: 14px;
      height: 14px;
      background: var(--amber);
      border-radius: 50%;
      box-shadow: 0 0 0 6px rgba(200, 131, 42, 0.3), 0 0 0 14px rgba(200, 131, 42, 0.1);
      animation: pulse 2s ease-in-out infinite;
  }

  @keyframes pulse {

      0%,
      100% {
          box-shadow: 0 0 0 6px rgba(200, 131, 42, 0.3), 0 0 0 14px rgba(200, 131, 42, 0.1);
      }

      50% {
          box-shadow: 0 0 0 10px rgba(200, 131, 42, 0.2), 0 0 0 22px rgba(200, 131, 42, 0.05);
      }
  }

  .map-placeholder .ph-label {
      font-size: 0.65rem;
      letter-spacing: 0.18em;
      text-transform: uppercase;
      color: rgba(255, 255, 255, 0.2);
      margin-top: 0.5rem;
  }

  /* ── FOOTER ── */
  footer {
      background: var(--dark);
      padding: clamp(2rem, 4vw, 3.5rem) clamp(1.25rem, 4vw, 3rem);
      text-align: center;
  }

  .footer-inner {
      max-width: 1160px;
      margin: 0 auto;
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 1.25rem;
  }

  .footer-logo {
      font-family: 'Cormorant Garamond', serif;
      font-size: 1.5rem;
      font-weight: 600;
      color: var(--cream);
      line-height: 1;
  }

  .footer-logo span {
      color: var(--gold);
  }

  .footer-tagline {
      font-size: 0.78rem;
      color: rgba(255, 255, 255, 0.35);
      letter-spacing: 0.12em;
  }

  .footer-divider {
      width: 48px;
      height: 1px;
      background: rgba(255, 255, 255, 0.12);
  }

  .footer-copy {
      font-size: 0.72rem;
      color: rgba(255, 255, 255, 0.2);
      letter-spacing: 0.06em;
  }

  /* ── ANIMATIONS ── */
  .fade-up {
      opacity: 0;
      transform: translateY(28px);
      transition: opacity 0.7s ease, transform 0.7s ease;
  }

  .fade-up.visible {
      opacity: 1;
      transform: translateY(0);
  }

  /* ── RESPONSIVE ── */
  @media (max-width: 900px) {
      .hero {
          grid-template-columns: 1fr;
          min-height: auto;
      }

      .hero-right {
          height: 45vw;
          min-height: 240px;
      }

      .hero::after {
          display: none;
      }

      .hero-left {
          padding-bottom: clamp(2rem, 5vw, 3.5rem);
      }

      .about .section-inner {
          grid-template-columns: 1fr;
      }

      .about-visual {
          order: -1;
      }

      .about-img-wrap {
          aspect-ratio: 16/9;
      }

      .formats-grid {
          grid-template-columns: 1fr;
          gap: 0;
      }

      .highlights-inner {
          grid-template-columns: repeat(2, 1fr);
          gap: 1.5rem;
      }

      .programme .section-inner {
          grid-template-columns: 1fr;
      }

      .prog-image-wrap {
          aspect-ratio: 16/9;
      }

      .vr-callout .section-inner {
          grid-template-columns: 1fr;
      }

      .vr-image {
          max-width: 260px;
          margin: 0 auto;
      }

      .vr-image .img-placeholder {
          height: 260px;
      }

      .gallery-strip {
          grid-template-columns: repeat(3, 1fr);
      }

      .gallery-cell:nth-child(4),
      .gallery-cell:nth-child(5) {
          display: none;
      }

      .ticket-cards {
          grid-template-columns: 1fr;
          max-width: 420px;
      }

      .location .section-inner {
          grid-template-columns: 1fr;
      }

      .vr-stats {
          grid-template-columns: 1fr 1fr;
      }
  }

  @media (max-width: 540px) {
      .highlights-inner {
          grid-template-columns: repeat(2, 1fr);
      }

      .gallery-strip {
          grid-template-columns: repeat(2, 1fr);
      }

      .gallery-cell:nth-child(3) {
          display: none;
      }

      .vr-stats {
          grid-template-columns: 1fr;
      }

      .hero-meta {
          flex-direction: column;
          gap: 1rem;
      }
  }

  /* ── DECORATIVE LEAF SVG helper ── */
  .leaf-deco {
      position: absolute;
      pointer-events: none;
      opacity: 0.07;
  }