Fireworks Ember 1 – Arts and Entertainment

via Fireworks · Generated

  • AIMAC Debt 5.36
  • Cost $0.41
  • Total Violations 34
  • HTML Size 76 KB
  • Em Dashes 41

Screenshot

View Fireworks Ember 1 Arts and Entertainment page View Live Page

Accessibility Issues Found

34 Serious

  • color-contrast serious 34 instances

    Elements must meet minimum color contrast ratio thresholds

    Example HTML <p id="eventCount" class="mt-6 text-center text-xs uppercase tracking-widest text-cream/40">Showing 6 of 6 events</p>

Artifacts

View Generated HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>The Marquee — Where Culture Takes Center Stage</title>
<meta name="description" content="The Marquee is an independent arts and entertainment journal covering music, film, visual arts, and the performing arts — reviews, artist profiles, and the season's essential events.">

<!-- Fonts -->
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,600;0,700;0,800;0,900;1,400;1,600&family=Inter:wght@300;400;500;600;700&display=swap" rel="stylesheet">

<!-- Tailwind -->
<script src="https://cdn.tailwindcss.com"></script>
<script>
tailwind.config = {
  theme: {
    extend: {
      colors: {
        ink:     '#16130f',
        coal:    '#201a14',
        smoke:   '#2b241c',
        cream:   '#f7f2e8',
        sand:    '#efe7d6',
        parchment:'#e6dcc6',
        gold:    '#c9a227',
        goldlight:'#e4c355',
        crimson: '#8e1e2f',
        crimsondark:'#6d1523'
      },
      fontFamily: {
        display: ['"Playfair Display"', 'Georgia', 'serif'],
        body: ['Inter', 'system-ui', 'sans-serif']
      },
      boxShadow: {
        editorial: '0 20px 60px -20px rgba(22,19,15,.35)',
        card: '0 10px 30px -12px rgba(22,19,15,.25)'
      }
    }
  }
}
</script>

<style>
  html { scroll-behavior: smooth; }
  body { -webkit-font-smoothing: antialiased; }
  ::selection { background: #c9a227; color: #16130f; }

  /* Kicker rule */
  .kicker { letter-spacing: .22em; }
  .kicker::before {
    content: ""; display: inline-block; width: 2.25rem; height: 2px;
    background: #c9a227; margin-right: .75rem; vertical-align: middle;
  }

  /* Scroll reveal */
  .reveal { opacity: 0; transform: translateY(26px); transition: opacity .8s cubic-bezier(.22,.61,.36,1), transform .8s cubic-bezier(.22,.61,.36,1); }
  .reveal.visible { opacity: 1; transform: translateY(0); }

  /* Headline ticker */
  .ticker-track { display: flex; width: max-content; animation: ticker 38s linear infinite; }
  .ticker:hover .ticker-track { animation-play-state: paused; }
  @keyframes ticker { from { transform: translateX(0); } to { transform: translateX(-50%); } }

  /* Event card pop-in after filtering */
  .card-pop { animation: pop .45s cubic-bezier(.22,.61,.36,1) both; }
  @keyframes pop { from { opacity: 0; transform: translateY(14px) scale(.98); } to { opacity: 1; transform: translateY(0) scale(1); } }

  /* FAQ accordion */
  .faq-body { max-height: 0; overflow: hidden; transition: max-height .45s cubic-bezier(.22,.61,.36,1); }
  .faq-item .faq-icon { transition: transform .35s ease; }
  .faq-item.open .faq-icon { transform: rotate(45deg); }

  /* Header state */
  #siteHeader { transition: box-shadow .3s ease, background-color .3s ease; }
  #siteHeader.scrolled { box-shadow: 0 10px 30px -12px rgba(0,0,0,.55); }

  /* Gallery hover */
  .gallery-item img { transition: transform .7s cubic-bezier(.22,.61,.36,1), filter .7s ease; }
  .gallery-item:hover img { transform: scale(1.06); filter: saturate(1.1); }
  .gallery-item .caption { opacity: 0; transform: translateY(8px); transition: opacity .4s ease, transform .4s ease; }
  .gallery-item:hover .caption { opacity: 1; transform: translateY(0); }

  /* Underline link effect */
  .link-underline { position: relative; }
  .link-underline::after {
    content: ""; position: absolute; left: 0; bottom: -4px; height: 2px; width: 0;
    background: #c9a227; transition: width .3s ease;
  }
  .link-underline:hover::after { width: 100%; }

  /* Back to top */
  #toTop { opacity: 0; pointer-events: none; transition: opacity .3s ease, transform .3s ease; transform: translateY(10px); }
  #toTop.show { opacity: 1; pointer-events: auto; transform: translateY(0); }

  /* Custom scrollbar */
  ::-webkit-scrollbar { width: 10px; }
  ::-webkit-scrollbar-track { background: #16130f; }
  ::-webkit-scrollbar-thumb { background: #3a3227; border-radius: 6px; }
  ::-webkit-scrollbar-thumb:hover { background: #c9a227; }
</style>
</head>

<body class="bg-cream text-ink font-body">

<!-- Skip link -->
<a href="#main" class="sr-only focus:not-sr-only focus:absolute focus:top-2 focus:left-2 focus:z-[100] focus:bg-gold focus:text-ink focus:px-4 focus:py-2 focus:rounded">Skip to main content</a>

<!-- ══════════════════ HEADER ══════════════════ -->
<header id="siteHeader" class="sticky top-0 z-50 bg-ink/95 backdrop-blur border-b border-white/10">
  <!-- Announcement bar -->
  <div class="bg-crimson text-cream text-center text-[11px] sm:text-xs tracking-[0.18em] uppercase py-1.5 px-4">
    Issue No. 47 — The Autumn Season Preview &nbsp;·&nbsp; On stands and screens now
  </div>

  <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
    <div class="flex items-center justify-between h-20">
      <!-- Brand -->
      <a href="#home" class="flex items-center gap-3 group">
        <img src="https://placehold.co/96x96/16130f/c9a227?text=M&font=playfair-display" alt="The Marquee logo" class="w-11 h-11 rounded-md ring-1 ring-gold/40 group-hover:ring-gold transition">
        <span class="leading-tight">
          <span class="block font-display font-800 text-2xl text-cream tracking-tight" style="font-weight:800">The Marquee</span>
          <span class="block text-[10px] uppercase tracking-[0.28em] text-gold">Where Culture Takes Center Stage</span>
        </span>
      </a>

      <!-- Desktop nav -->
      <nav aria-label="Primary" class="hidden lg:flex items-center gap-8 text-sm font-medium text-cream/80">
        <a href="#home" class="link-underline hover:text-cream">Home</a>
        <a href="#artists" class="link-underline hover:text-cream">Artists</a>
        <a href="#reviews" class="link-underline hover:text-cream">Reviews</a>
        <a href="#events" class="link-underline hover:text-cream">Events</a>
        <a href="#features" class="link-underline hover:text-cream">Features</a>
        <a href="#gallery" class="link-underline hover:text-cream">Gallery</a>
        <a href="#contact" class="link-underline hover:text-cream">Contact</a>
      </nav>

      <div class="flex items-center gap-3">
        <a href="#subscribe" class="hidden sm:inline-flex items-center gap-2 bg-gold text-ink text-sm font-semibold px-5 py-2.5 rounded-full hover:bg-goldlight transition-colors">
          Subscribe
          <svg class="w-4 h-4" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" d="M17 8l4 4m0 0l-4 4m4-4H3"/></svg>
        </a>
        <!-- Mobile menu button -->
        <button id="menuBtn" class="lg:hidden text-cream p-2" aria-label="Toggle menu" aria-expanded="false" aria-controls="mobileMenu">
          <svg id="iconOpen" class="w-6 h-6" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"><path stroke-linecap="round" d="M4 7h16M4 12h16M4 17h16"/></svg>
          <svg id="iconClose" class="w-6 h-6 hidden" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"><path stroke-linecap="round" d="M6 6l12 12M18 6L6 18"/></svg>
        </button>
      </div>
    </div>
  </div>

  <!-- Mobile nav -->
  <div id="mobileMenu" class="lg:hidden hidden border-t border-white/10 bg-ink">
    <nav aria-label="Mobile" class="px-6 py-4 flex flex-col gap-1 text-cream/90 text-sm font-medium">
      <a href="#home" class="py-2.5 border-b border-white/5">Home</a>
      <a href="#artists" class="py-2.5 border-b border-white/5">Artists</a>
      <a href="#reviews" class="py-2.5 border-b border-white/5">Reviews</a>
      <a href="#events" class="py-2.5 border-b border-white/5">Events</a>
      <a href="#features" class="py-2.5 border-b border-white/5">Features</a>
      <a href="#gallery" class="py-2.5 border-b border-white/5">Gallery</a>
      <a href="#contact" class="py-2.5">Contact</a>
      <a href="#subscribe" class="mt-3 inline-flex justify-center bg-gold text-ink font-semibold px-5 py-3 rounded-full">Subscribe</a>
    </nav>
  </div>
</header>

<main id="main">

<!-- ══════════════════ HERO ══════════════════ -->
<section id="home" class="bg-ink text-cream relative overflow-hidden">
  <div class="absolute inset-0 opacity-[0.07] pointer-events-none" style="background-image:radial-gradient(circle at 20% 30%, #c9a227 0, transparent 40%), radial-gradient(circle at 85% 70%, #8e1e2f 0, transparent 45%);"></div>
  <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-16 lg:py-24 relative">
    <div class="grid lg:grid-cols-12 gap-12 items-center">

      <div class="lg:col-span-7 reveal">
        <p class="kicker text-gold text-xs font-semibold uppercase mb-6">Cover Story · Music</p>
        <h1 class="font-display font-black text-4xl sm:text-5xl lg:text-[3.6rem] leading-[1.08] tracking-tight">
          The Resonance Project: How Mara Ellison Is Rewriting the Language of Modern Composition
        </h1>
        <p class="mt-6 text-lg text-cream/70 leading-relaxed max-w-2xl">
          In a converted shipyard studio on the city's east bank, the most talked-about composer of her generation is preparing a commission that blurs the line between concert hall and cathedral. We spent three weeks inside the rehearsal room.
        </p>
        <div class="mt-6 flex items-center gap-4 text-sm text-cream/50">
          <img src="https://i.pravatar.cc/64?u=julian-voss" alt="Portrait of Julian Voss" class="w-10 h-10 rounded-full ring-2 ring-gold/50">
          <div>
            <p class="text-cream/90 font-medium">By Julian Voss</p>
            <p>Senior Music Critic · 14 min read · Oct 8, 2025</p>
          </div>
        </div>
        <div class="mt-8 flex flex-wrap gap-4">
          <a href="#artists" class="inline-flex items-center gap-2 bg-gold text-ink font-semibold px-7 py-3.5 rounded-full hover:bg-goldlight transition-colors">
            Read the Feature
            <svg class="w-4 h-4" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" d="M17 8l4 4m0 0l-4 4m4-4H3"/></svg>
          </a>
          <a href="#events" class="inline-flex items-center gap-2 border border-cream/25 text-cream font-semibold px-7 py-3.5 rounded-full hover:border-gold hover:text-gold transition-colors">
            Explore the Season
          </a>
        </div>
      </div>

      <div class="lg:col-span-5 reveal" style="transition-delay:150ms">
        <figure class="relative rounded-2xl overflow-hidden shadow-editorial ring-1 ring-white/10">
          <img src="https://picsum.photos/seed/marquee-cover/1100/1300" alt="Composer Mara Ellison conducting in a rehearsal studio" class="w-full h-[420px] lg:h-[520px] object-cover">
          <span class="absolute top-4 left-4 bg-crimson text-cream text-[11px] font-semibold uppercase tracking-[0.18em] px-3 py-1.5 rounded-full">Exclusive</span>
          <figcaption class="absolute bottom-0 inset-x-0 bg-gradient-to-t from-ink/90 to-transparent px-5 pt-16 pb-4 text-xs text-cream/70">
            Mara Ellison in residence at the Whitmore Concert Hall, September 2025. Photograph for The Marquee.
          </figcaption>
        </figure>
      </div>

    </div>
  </div>

  <!-- Headline ticker -->
  <div class="ticker border-t border-white/10 bg-coal py-3 overflow-hidden" aria-hidden="true">
    <div class="ticker-track text-sm text-cream/60">
      <span class="flex items-center gap-8 pr-8">
        <span class="text-gold font-semibold uppercase tracking-widest text-xs">Trending</span>
        <span>“The Glass Hour” extends its run at the Holloway through December</span><span class="text-gold">◆</span>
        <span>Night Census announce surprise second leg of the Vireo tour</span><span class="text-gold">◆</span>
        <span>Bellwether Gallery unveils its largest commissioning program to date</span><span class="text-gold">◆</span>
        <span>Rivoli Cinema restores the 1978 director's cut of “Static Bloom”</span><span class="text-gold">◆</span>
      </span>
      <span class="flex items-center gap-8 pr-8">
        <span class="text-gold font-semibold uppercase tracking-widest text-xs">Trending</span>
        <span>“The Glass Hour” extends its run at the Holloway through December</span><span class="text-gold">◆</span>
        <span>Night Census announce surprise second leg of the Vireo tour</span><span class="text-gold">◆</span>
        <span>Bellwether Gallery unveils its largest commissioning program to date</span><span class="text-gold">◆</span>
        <span>Rivoli Cinema restores the 1978 director's cut of “Static Bloom”</span><span class="text-gold">◆</span>
      </span>
    </div>
  </div>
</section>

<!-- ══════════════════ EDITORIAL BODY (main + sidebar) ══════════════════ -->
<section class="bg-cream py-20 lg:py-24">
  <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 grid lg:grid-cols-3 gap-14">

    <!-- ── Main column ── -->
    <div class="lg:col-span-2 space-y-24">

      <!-- ARTIST SPOTLIGHT -->
      <article id="artists" class="scroll-mt-28 reveal">
        <p class="kicker text-crimson text-xs font-semibold uppercase mb-4">01 · Artist Spotlight</p>
        <h2 class="font-display font-bold text-3xl sm:text-4xl leading-tight tracking-tight">
          A Repertoire Built on Risk: Inside Mara Ellison's Three-Week Residency
        </h2>

        <figure class="mt-8 grid sm:grid-cols-5 gap-6 items-start">
          <img src="https://picsum.photos/seed/mara-portrait/800/1000" alt="Portrait of composer Mara Ellison" class="sm:col-span-2 w-full h-72 sm:h-96 object-cover rounded-xl shadow-card">
          <div class="sm:col-span-3">
            <p class="text-lg leading-relaxed text-ink/85 first-letter:font-display first-letter:text-6xl first-letter:font-bold first-letter:float-left first-letter:mr-3 first-letter:text-crimson first-letter:leading-[0.85]">
              When the Alder Street Philharmonic first approached Mara Ellison about a new commission, the brief was deliberately open: write something that could only exist in the Whitmore Concert Hall. Fourteen months later, the result is <em>Resonance</em> — a fifty-minute work for orchestra, amplified architecture, and a choir of forty untrained voices drawn from the surrounding neighborhood. It is the boldest entry yet in a repertoire that has steadily refused categorization.
            </p>
            <p class="mt-5 leading-relaxed text-ink/75">
              Ellison's process is rooted in collaboration. The score was developed in weekly workshops with principal players, rewritten after each session, and shaped by an ongoing dialogue with choreographer Tomas Ilic, whose dancers will move through the aisles during the premiere. "The hall is an instrument," Ellison told us, tapping the brass rail of the balcony. "Most composers write for the stage. I wanted to write for the whole building."
            </p>
          </div>
        </figure>

        <p class="mt-6 leading-relaxed text-ink/75">
          The commission is the centerpiece of a broader residency that includes two chamber recitals, an open rehearsal series for students, and a late-night electroacoustic set in the Whitmore's notoriously echo-prone loading dock — a nod to the composer's years scoring experimental theatre in warehouse spaces. Critics who heard early workshop performances describe a work of "granite and gauze," anchored by a string writing that recalls her breakthrough 2019 quartet <em>Vespers for a Feral City</em>.
        </p>

        <blockquote class="mt-8 border-l-4 border-gold bg-sand rounded-r-xl px-8 py-6">
          <p class="font-display italic text-2xl leading-snug text-ink/90">
            "I don't write music to be admired from a distance. I write it to be inhabited — by the players, by the room, by whoever happens to walk in off the street."
          </p>
          <cite class="mt-4 block not-italic text-sm font-semibold uppercase tracking-widest text-crimson">— Mara Ellison</cite>
        </blockquote>

        <div class="mt-8 flex flex-wrap gap-4">
          <a href="#" class="inline-flex items-center gap-2 bg-ink text-cream font-semibold px-6 py-3 rounded-full hover:bg-smoke transition-colors">
            Discover the Full Profile
            <svg class="w-4 h-4" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" d="M17 8l4 4m0 0l-4 4m4-4H3"/></svg>
          </a>
          <a href="#events" class="inline-flex items-center gap-2 text-crimson font-semibold px-2 py-3 link-underline">
            Book Premiere Tickets — Nov 9
          </a>
        </div>
      </article>

      <hr class="border-ink/10">

      <!-- REVIEWS -->
      <div id="reviews" class="scroll-mt-28">
        <div class="flex items-end justify-between flex-wrap gap-4 reveal">
          <div>
            <p class="kicker text-crimson text-xs font-semibold uppercase mb-4">02 · Reviews</p>
            <h2 class="font-display font-bold text-3xl sm:text-4xl tracking-tight">This Week on the Critic's Desk</h2>
            <p class="mt-3 text-ink/60 max-w-xl">Uncompromising, unsponsored, and argued over at length. Our critics file on film, theatre, recordings, and the gallery circuit.</p>
          </div>
          <a href="#" class="inline-flex items-center gap-2 text-sm font-semibold text-crimson link-underline">Read All Reviews
            <svg class="w-4 h-4" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" d="M17 8l4 4m0 0l-4 4m4-4H3"/></svg>
          </a>
        </div>

        <div class="mt-10 grid sm:grid-cols-2 gap-8">

          <!-- Review card -->
          <article class="review-card reveal bg-white rounded-2xl overflow-hidden shadow-card hover:shadow-editorial transition-shadow group">
            <div class="relative overflow-hidden">
              <img src="https://picsum.photos/seed/film-static/640/420" alt="Still from the film Static Bloom" class="w-full h-48 object-cover group-hover:scale-105 transition-transform duration-700">
              <span class="absolute top-3 left-3 bg-ink/85 text-cream text-[10px] font-semibold uppercase tracking-[0.18em] px-3 py-1.5 rounded-full">Film</span>
            </div>
            <div class="p-6">
              <div class="flex items-center justify-between">
                <div class="stars" data-rating="4.5" aria-label="Rated 4.5 out of 5 stars"></div>
                <span class="text-xs text-ink/40">Rivoli Cinema · Restored Cut</span>
              </div>
              <h3 class="mt-3 font-display font-bold text-xl leading-snug group-hover:text-crimson transition-colors">“Static Bloom” Returns, and Its Silence Still Deafens</h3>
              <p class="mt-3 text-sm leading-relaxed text-ink/65">Forty-seven years after its muted premiere, the restored director's cut reveals a film decades ahead of its audience. The newly recovered greenhouse sequence alone justifies the restoration — a masterclass in patience that modern blockbusters would do well to study.</p>
              <p class="mt-4 text-xs font-semibold uppercase tracking-widest text-ink/40">Review by Helen Marsh</p>
            </div>
          </article>

          <article class="review-card reveal bg-white rounded-2xl overflow-hidden shadow-card hover:shadow-editorial transition-shadow group" style="transition-delay:100ms">
            <div class="relative overflow-hidden">
              <img src="https://picsum.photos/seed/glass-hour/640/420" alt="Stage production of The Glass Hour" class="w-full h-48 object-cover group-hover:scale-105 transition-transform duration-700">
              <span class="absolute top-3 left-3 bg-ink/85 text-cream text-[10px] font-semibold uppercase tracking-[0.18em] px-3 py-1.5 rounded-full">Theatre</span>
            </div>
            <div class="p-6">
              <div class="flex items-center justify-between">
                <div class="stars" data-rating="5" aria-label="Rated 5 out of 5 stars"></div>
                <span class="text-xs text-ink/40">Holloway Theatre</span>
              </div>
              <h3 class="mt-3 font-display font-bold text-xl leading-snug group-hover:text-crimson transition-colors">“The Glass Hour” Is the Rare Revival That Outshines the Original</h3>
              <p class="mt-3 text-sm leading-relaxed text-ink/65">Director Lena Okafor strips the 1962 classic to its nervous system and rebuilds it around a career-defining performance by August Chen. The second-act confrontation, staged in near-darkness, is the most electrifying twenty minutes on any stage this year.</p>
              <p class="mt-4 text-xs font-semibold uppercase tracking-widest text-ink/40">Review by Marcus Bell</p>
            </div>
          </article>

          <article class="review-card reveal bg-white rounded-2xl overflow-hidden shadow-card hover:shadow-editorial transition-shadow group" style="transition-delay:150ms">
            <div class="relative overflow-hidden">
              <img src="https://picsum.photos/seed/vireo-album/640/420" alt="Album artwork for Vireo by Night Census" class="w-full h-48 object-cover group-hover:scale-105 transition-transform duration-700">
              <span class="absolute top-3 left-3 bg-ink/85 text-cream text-[10px] font-semibold uppercase tracking-[0.18em] px-3 py-1.5 rounded-full">Album</span>
            </div>
            <div class="p-6">
              <div class="flex items-center justify-between">
                <div class="stars" data-rating="4" aria-label="Rated 4 out of 5 stars"></div>
                <span class="text-xs text-ink/40">Night Census · “Vireo”</span>
              </div>
              <h3 class="mt-3 font-display font-bold text-xl leading-snug group-hover:text-crimson transition-colors">Night Census Trade Neon for Nocturne on the Gorgeous “Vireo”</h3>
              <p class="mt-3 text-sm leading-relaxed text-ink/65">The synth-pop quartet's fourth album slows the pulse and widens the lens, folding string arrangements and field recordings into their signature shimmer. It sags slightly in its middle third, but the closing triptych is the finest writing of their career.</p>
              <p class="mt-4 text-xs font-semibold uppercase tracking-widest text-ink/40">Review by Julian Voss</p>
            </div>
          </article>

          <article class="review-card reveal bg-white rounded-2xl overflow-hidden shadow-card hover:shadow-editorial transition-shadow group" style="transition-delay:200ms">
            <div class="relative overflow-hidden">
              <img src="https://picsum.photos/seed/chromatic/640/420" alt="Installation view of the Chromatic Fields exhibition" class="w-full h-48 object-cover group-hover:scale-105 transition-transform duration-700">
              <span class="absolute top-3 left-3 bg-ink/85 text-cream text-[10px] font-semibold uppercase tracking-[0.18em] px-3 py-1.5 rounded-full">Visual Arts</span>
            </div>
            <div class="p-6">
              <div class="flex items-center justify-between">
                <div class="stars" data-rating="4" aria-label="Rated 4 out of 5 stars"></div>
                <span class="text-xs text-ink/40">Bellwether Gallery</span>
              </div>
              <h3 class="mt-3 font-display font-bold text-xl leading-snug group-hover:text-crimson transition-colors">“Chromatic Fields” Turns the Gallery Into a Weather System</h3>
              <p class="mt-3 text-sm leading-relaxed text-ink/65">Six artists, four rooms, and one unforgettable corridor of shifting light. The curation occasionally crowds its strongest work, but Ada Lim's pigment-suspended installation — a cloud you can walk through — is worth the ticket on its own.</p>
              <p class="mt-4 text-xs font-semibold uppercase tracking-widest text-ink/40">Review by Simone Adeyemi</p>
            </div>
          </article>

        </div>
      </div>

    </div>

    <!-- ── Sidebar ── -->
    <aside class="space-y-10 lg:sticky lg:top-32 self-start">

      <!-- Critic's Picks -->
      <div class="reveal bg-ink text-cream rounded-2xl p-7 shadow-editorial">
        <h3 class="font-display font-bold text-xl flex items-center gap-3">
          <span class="w-8 h-8 rounded-full bg-gold text-ink flex items-center justify-center">
            <svg class="w-4 h-4" fill="currentColor" viewBox="0 0 24 24"><path d="M12 2l2.9 6.6 7.1.6-5.4 4.7 1.6 7-6.2-3.7-6.2 3.7 1.6-7L2 9.2l7.1-.6z"/></svg>
          </span>
          Critic's Picks
        </h3>
        <ol class="mt-6 space-y-5">
          <li class="flex gap-4 items-center group">
            <span class="font-display font-black text-2xl text-gold/70">1</span>
            <img src="https://picsum.photos/seed/pick1/160/160" alt="" class="w-14 h-14 rounded-lg object-cover">
            <div>
              <p class="font-semibold leading-snug group-hover:text-gold transition-colors">“Resonance” — Alder Street Philharmonic</p>
              <p class="text-xs text-cream/50 mt-1">Whitmore Concert Hall · Nov 9</p>
            </div>
          </li>
          <li class="flex gap-4 items-center group">
            <span class="font-display font-black text-2xl text-gold/70">2</span>
            <img src="https://picsum.photos/seed/pick2/160/160" alt="" class="w-14 h-14 rounded-lg object-cover">
            <div>
              <p class="font-semibold leading-snug group-hover:text-gold transition-colors">“The Glass Hour” — extended run</p>
              <p class="text-xs text-cream/50 mt-1">Holloway Theatre · Through Dec</p>
            </div>
          </li>
          <li class="flex gap-4 items-center group">
            <span class="font-display font-black text-2xl text-gold/70">3</span>
            <img src="https://picsum.photos/seed/pick3/160/160" alt="" class="w-14 h-14 rounded-lg object-cover">
            <div>
              <p class="font-semibold leading-snug group-hover:text-gold transition-colors">“Chromatic Fields” — group exhibition</p>
              <p class="text-xs text-cream/50 mt-1">Bellwether Gallery · Opens Nov 2</p>
            </div>
          </li>
          <li class="flex gap-4 items-center group">
            <span class="font-display font-black text-2xl text-gold/70">4</span>
            <img src="https://picsum.photos/seed/pick4/160/160" alt="" class="w-14 h-14 rounded-lg object-cover">
            <div>
              <p class="font-semibold leading-snug group-hover:text-gold transition-colors">“Static Bloom” — restored director's cut</p>
              <p class="text-xs text-cream/50 mt-1">Rivoli Cinema · Oct 24</p>
            </div>
          </li>
        </ol>
      </div>

      <!-- Editor's Choice -->
      <div class="reveal bg-white rounded-2xl overflow-hidden shadow-card">
        <img src="https://picsum.photos/seed/editors/640/400" alt="Editor's choice feature" class="w-full h-40 object-cover">
        <div class="p-6">
          <span class="text-[10px] font-semibold uppercase tracking-[0.2em] text-crimson">Editor's Choice</span>
          <h3 class="mt-2 font-display font-bold text-lg leading-snug">The Quiet Rebellion of the City's Underground Opera Scene</h3>
          <p class="mt-2 text-sm text-ink/60 leading-relaxed">In parking garages and deconsecrated chapels, a new generation is staging Puccini for audiences of forty. Our editors spent a month in the cheap seats.</p>
          <a href="#" class="mt-4 inline-flex items-center gap-2 text-sm font-semibold text-crimson link-underline">Read the Essay
            <svg class="w-4 h-4" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" d="M17 8l4 4m0 0l-4 4m4-4H3"/></svg>
          </a>
        </div>
      </div>

      <!-- Venue Spotlight -->
      <div class="reveal bg-sand rounded-2xl p-6 border border-ink/10">
        <span class="text-[10px] font-semibold uppercase tracking-[0.2em] text-crimson">Venue Spotlight</span>
        <img src="https://picsum.photos/seed/orpheum/640/400" alt="Interior of the Orpheum Hall" class="mt-3 w-full h-36 object-cover rounded-xl">
        <h3 class="mt-4 font-display font-bold text-lg">The Orpheum Hall</h3>
        <p class="mt-2 text-sm text-ink/65 leading-relaxed">A 1911 vaudeville house rescued from demolition in 2008, now the city's most atmospheric mid-size room. Capacity 1,150 · famously steep balcony · cash-only bar in the lobby mezzanine.</p>
        <dl class="mt-4 text-xs text-ink/60 space-y-1.5">
          <div class="flex justify-between"><dt class="font-semibold">Address</dt><dd>88 Calder Avenue, Theatre District</dd></div>
          <div class="flex justify-between"><dt class="font-semibold">Box Office</dt><dd>Tue–Sat, 12–6 PM</dd></div>
          <div class="flex justify-between"><dt class="font-semibold">Accessibility</dt><dd>Step-free via Calder St. entrance</dd></div>
        </dl>
      </div>

      <!-- Newsletter -->
      <div id="subscribe" class="reveal bg-crimson text-cream rounded-2xl p-7 scroll-mt-32">
        <h3 class="font-display font-bold text-xl">The Encore — Our Weekly Dispatch</h3>
        <p class="mt-2 text-sm text-cream/80 leading-relaxed">One email every Friday: the week's reviews, three tickets worth buying, and one thing our editors can't stop arguing about. No noise, no spam.</p>
        <form id="newsletterForm" class="mt-5">
          <label for="newsletterEmail" class="sr-only">Email address</label>
          <input id="newsletterEmail" type="email" required placeholder="you@example.com"
            class="w-full px-4 py-3 rounded-full text-ink text-sm focus:outline-none focus:ring-2 focus:ring-gold">
          <button type="submit" class="mt-3 w-full bg-ink text-cream font-semibold py-3 rounded-full hover:bg-smoke transition-colors">Subscribe Free</button>
        </form>
        <p id="newsletterSuccess" class="hidden mt-4 text-sm bg-cream/15 rounded-lg px-4 py-3">Welcome aboard. Your first Encore arrives Friday.</p>
        <p class="mt-3 text-[11px] text-cream/60">Joined by 28,000 readers. Unsubscribe anytime.</p>
      </div>

    </aside>
  </div>
</section>

<!-- ══════════════════ GALLERY ══════════════════ -->
<section id="gallery" class="bg-sand py-20 scroll-mt-20 border-y border-ink/10">
  <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
    <div class="flex items-end justify-between flex-wrap gap-4 reveal">
      <div>
        <p class="kicker text-crimson text-xs font-semibold uppercase mb-4">03 · Gallery</p>
        <h2 class="font-display font-bold text-3xl sm:text-4xl tracking-tight">From the Photo Desk</h2>
        <p class="mt-3 text-ink/60 max-w-xl">Rehearsal rooms, opening nights, and the quiet hours before the doors open — shot by our staff photographers across the season.</p>
      </div>
      <a href="#" class="inline-flex items-center gap-2 bg-ink text-cream text-sm font-semibold px-6 py-3 rounded-full hover:bg-smoke transition-colors">
        View Gallery
        <svg class="w-4 h-4" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" d="M17 8l4 4m0 0l-4 4m4-4H3"/></svg>
      </a>
    </div>

    <div class="mt-10 grid grid-cols-2 md:grid-cols-3 gap-4">
      <figure class="gallery-item reveal relative rounded-xl overflow-hidden h-56 md:h-64"><img src="https://picsum.photos/seed/gal1/600/500" alt="Orchestra tuning before a performance" class="w-full h-full object-cover"><figcaption class="caption absolute bottom-0 inset-x-0 bg-gradient-to-t from-ink/85 to-transparent text-cream text-xs px-4 pt-10 pb-3">Whitmore Hall, final tuning — Oct 2025</figcaption></figure>
      <figure class="gallery-item reveal relative rounded-xl overflow-hidden h-56 md:h-64" style="transition-delay:80ms"><img src="https://picsum.photos/seed/gal2/600/500" alt="Dancers rehearsing in a studio" class="w-full h-full object-cover"><figcaption class="caption absolute bottom-0 inset-x-0 bg-gradient-to-t from-ink/85 to-transparent text-cream text-xs px-4 pt-10 pb-3">Ilic Dance Company, studio 4 — Sep 2025</figcaption></figure>
      <figure class="gallery-item reveal relative rounded-xl overflow-hidden h-56 md:h-64" style="transition-delay:160ms"><img src="https://picsum.photos/seed/gal3/600/500" alt="Gallery visitors viewing an installation" class="w-full h-full object-cover"><figcaption class="caption absolute bottom-0 inset-x-0 bg-gradient-to-t from-ink/85 to-transparent text-cream text-xs px-4 pt-10 pb-3">“Chromatic Fields” installation — Sep 2025</figcaption></figure>
      <figure class="gallery-item reveal relative rounded-xl overflow-hidden h-56 md:h-64"><img src="https://picsum.photos/seed/gal4/600/500" alt="Audience silhouettes at a concert" class="w-full h-full object-cover"><figcaption class="caption absolute bottom-0 inset-x-0 bg-gradient-to-t from-ink/85 to-transparent text-cream text-xs px-4 pt-10 pb-3">Night Census, Orpheum Hall — Aug 2025</figcaption></figure>
      <figure class="gallery-item reveal relative rounded-xl overflow-hidden h-56 md:h-64" style="transition-delay:80ms"><img src="https://picsum.photos/seed/gal5/600/500" alt="Backstage at the Holloway Theatre" class="w-full h-full object-cover"><figcaption class="caption absolute bottom-0 inset-x-0 bg-gradient-to-t from-ink/85 to-transparent text-cream text-xs px-4 pt-10 pb-3">Holloway Theatre, backstage — Aug 2025</figcaption></figure>
      <figure class="gallery-item reveal relative rounded-xl overflow-hidden h-56 md:h-64" style="transition-delay:160ms"><img src="https://picsum.photos/seed/gal6/600/500" alt="Film projection at the Rivoli Cinema" class="w-full h-full object-cover"><figcaption class="caption absolute bottom-0 inset-x-0 bg-gradient-to-t from-ink/85 to-transparent text-cream text-xs px-4 pt-10 pb-3">Rivoli Cinema, projection booth — Jul 2025</figcaption></figure>
    </div>
  </div>
</section>

<!-- ══════════════════ UPCOMING SHOWS (interactive filter) ══════════════════ -->
<section id="events" class="bg-ink text-cream py-20 lg:py-24 scroll-mt-20">
  <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
    <div class="text-center max-w-2xl mx-auto reveal">
      <p class="kicker text-gold text-xs font-semibold uppercase mb-4 justify-center inline-flex">04 · Upcoming Shows</p>
      <h2 class="font-display font-bold text-3xl sm:text-4xl tracking-tight">The Season at a Glance</h2>
      <p class="mt-4 text-cream/60 leading-relaxed">Every listing below is vetted by our editors. Filter by discipline to build your own calendar — then book direct with the venue.</p>
    </div>

    <!-- Filter tabs -->
    <div class="mt-10 flex flex-wrap justify-center gap-3 reveal" role="group" aria-label="Filter events by category">
      <button class="filter-btn active bg-gold text-ink text-sm font-semibold px-6 py-2.5 rounded-full transition-colors" data-filter="all">All Events</button>
      <button class="filter-btn bg-white/5 text-cream/70 hover:text-cream text-sm font-semibold px-6 py-2.5 rounded-full ring-1 ring-white/15 transition-colors" data-filter="music">Music</button>
      <button class="filter-btn bg-white/5 text-cream/70 hover:text-cream text-sm font-semibold px-6 py-2.5 rounded-full ring-1 ring-white/15 transition-colors" data-filter="theatre">Theatre</button>
      <button class="filter-btn bg-white/5 text-cream/70 hover:text-cream text-sm font-semibold px-6 py-2.5 rounded-full ring-1 ring-white/15 transition-colors" data-filter="film">Film</button>
      <button class="filter-btn bg-white/5 text-cream/70 hover:text-cream text-sm font-semibold px-6 py-2.5 rounded-full ring-1 ring-white/15 transition-colors" data-filter="visual">Visual Arts</button>
    </div>

    <p id="eventCount" class="mt-6 text-center text-xs uppercase tracking-widest text-cream/40">Showing 6 of 6 events</p>

    <!-- Event grid -->
    <div id="eventGrid" class="mt-8 grid md:grid-cols-2 lg:grid-cols-3 gap-7">

      <article class="event-card reveal bg-coal rounded-2xl overflow-hidden ring-1 ring-white/10 hover:ring-gold/50 transition group" data-category="music">
        <div class="relative overflow-hidden">
          <img src="https://picsum.photos/seed/ev-census/800/500" alt="Night Census performing live" class="w-full h-44 object-cover group-hover:scale-105 transition-transform duration-700">
          <span class="absolute top-3 left-3 bg-gold text-ink text-[10px] font-bold uppercase tracking-[0.18em] px-3 py-1.5 rounded-full">Music</span>
        </div>
        <div class="p-6 flex gap-5">
          <div class="text-center shrink-0 bg-white/5 rounded-xl px-3 py-2 h-fit ring-1 ring-white/10">
            <p class="text-[10px] font-bold uppercase tracking-widest text-gold">Oct</p>
            <p class="font-display font-black text-2xl leading-none mt-1">12</p>
          </div>
          <div>
            <h3 class="font-display font-bold text-lg leading-snug">Night Census: The Vireo Tour</h3>
            <p class="mt-1.5 text-xs text-cream/50">The Orpheum Hall · Doors 7 PM, Show 8 PM</p>
            <div class="mt-4 flex items-center justify-between gap-3">
              <span class="text-sm font-semibold text-gold">From $42</span>
              <a href="#" class="text-xs font-semibold bg-cream text-ink px-4 py-2 rounded-full hover:bg-gold transition-colors">Get Tickets</a>
            </div>
          </div>
        </div>
      </article>

      <article class="event-card reveal bg-coal rounded-2xl overflow-hidden ring-1 ring-white/10 hover:ring-gold/50 transition group" data-category="theatre" style="transition-delay:80ms">
        <div class="relative overflow-hidden">
          <img src="https://picsum.photos/seed/ev-glass/800/500" alt="Stage scene from The Glass Hour" class="w-full h-44 object-cover group-hover:scale-105 transition-transform duration-700">
          <span class="absolute top-3 left-3 bg-crimson text-cream text-[10px] font-bold uppercase tracking-[0.18em] px-3 py-1.5 rounded-full">Theatre</span>
        </div>
        <div class="p-6 flex gap-5">
          <div class="text-center shrink-0 bg-white/5 rounded-xl px-3 py-2 h-fit ring-1 ring-white/10">
            <p class="text-[10px] font-bold uppercase tracking-widest text-gold">Oct</p>
            <p class="font-display font-black text-2xl leading-none mt-1">18</p>
          </div>
          <div>
            <h3 class="font-display font-bold text-lg leading-snug">The Glass Hour — Extended Run</h3>
            <p class="mt-1.5 text-xs text-cream/50">Holloway Theatre · 7:30 PM · Runtime 2h 10m</p>
            <div class="mt-4 flex items-center justify-between gap-3">
              <span class="text-sm font-semibold text-gold">From $38</span>
              <a href="#" class="text-xs font-semibold bg-cream text-ink px-4 py-2 rounded-full hover:bg-gold transition-colors">Get Tickets</a>
            </div>
          </div>
        </div>
      </article>

      <article class="event-card reveal bg-coal rounded-2xl overflow-hidden ring-1 ring-white/10 hover:ring-gold/50 transition group" data-category="film" style="transition-delay:160ms">
        <div class="relative overflow-hidden">
          <img src="https://picsum.photos/seed/ev-bloom/800/500" alt="Restored film screening at Rivoli Cinema" class="w-full h-44 object-cover group-hover:scale-105 transition-transform duration-700">
          <span class="absolute top-3 left-3 bg-cream text-ink text-[10px] font-bold uppercase tracking-[0.18em] px-3 py-1.5 rounded-full">Film</span>
        </div>
        <div class="p-6 flex gap-5">
          <div class="text-center shrink-0 bg-white/5 rounded-xl px-3 py-2 h-fit ring-1 ring-white/10">
            <p class="text-[10px] font-bold uppercase tracking-widest text-gold">Oct</p>
            <p class="font-display font-black text-2xl leading-none mt-1">24</p>
          </div>
          <div>
            <h3 class="font-display font-bold text-lg leading-snug">“Static Bloom” Director's Cut + Q&amp;A</h3>
            <p class="mt-1.5 text-xs text-cream/50">Rivoli Cinema · 6:45 PM · New 4K restoration</p>
            <div class="mt-4 flex items-center justify-between gap-3">
              <span class="text-sm font-semibold text-gold">From $16</span>
              <a href="#" class="text-xs font-semibold bg-cream text-ink px-4 py-2 rounded-full hover:bg-gold transition-colors">Get Tickets</a>
            </div>
          </div>
        </div>
      </article>

      <article class="event-card reveal bg-coal rounded-2xl overflow-hidden ring-1 ring-white/10 hover:ring-gold/50 transition group" data-category="visual">
        <div class="relative overflow-hidden">
          <img src="https://picsum.photos/seed/ev-chroma/800/500" alt="Opening gala at Bellwether Gallery" class="w-full h-44 object-cover group-hover:scale-105 transition-transform duration-700">
          <span class="absolute top-3 left-3 bg-white/20 text-cream text-[10px] font-bold uppercase tracking-[0.18em] px-3 py-1.5 rounded-full">Visual Arts</span>
        </div>
        <div class="p-6 flex gap-5">
          <div class="text-center shrink-0 bg-white/5 rounded-xl px-3 py-2 h-fit ring-1 ring-white/10">
            <p class="text-[10px] font-bold uppercase tracking-widest text-gold">Nov</p>
            <p class="font-display font-black text-2xl leading-none mt-1">02</p>
          </div>
          <div>
            <h3 class="font-display font-bold text-lg leading-snug">“Chromatic Fields” Opening Gala</h3>
            <p class="mt-1.5 text-xs text-cream/50">Bellwether Gallery · 6 PM · Artists in attendance</p>
            <div class="mt-4 flex items-center justify-between gap-3">
              <span class="text-sm font-semibold text-gold">Free · RSVP</span>
              <a href="#" class="text-xs font-semibold bg-cream text-ink px-4 py-2 rounded-full hover:bg-gold transition-colors">Reserve</a>
            </div>
          </div>
        </div>
      </article>

      <article class="event-card reveal bg-coal rounded-2xl overflow-hidden ring-1 ring-gold/40 transition group" data-category="music" style="transition-delay:80ms">
        <div class="relative overflow-hidden">
          <img src="https://picsum.photos/seed/ev-phil/800/500" alt="Alder Street Philharmonic on stage" class="w-full h-44 object-cover group-hover:scale-105 transition-transform duration-700">
          <span class="absolute top-3 left-3 bg-gold text-ink text-[10px] font-bold uppercase tracking-[0.18em] px-3 py-1.5 rounded-full">Music · Premiere</span>
        </div>
        <div class="p-6 flex gap-5">
          <div class="text-center shrink-0 bg-gold/15 rounded-xl px-3 py-2 h-fit ring-1 ring-gold/40">
            <p class="text-[10px] font-bold uppercase tracking-widest text-gold">Nov</p>
            <p class="font-display font-black text-2xl leading-none mt-1 text-gold">09</p>
          </div>
          <div>
            <h3 class="font-display font-bold text-lg leading-snug">Ellison's “Resonance” — World Premiere</h3>
            <p class="mt-1.5 text-xs text-cream/50">Whitmore Concert Hall · 8 PM · Alder Street Philharmonic</p>
            <div class="mt-4 flex items-center justify-between gap-3">
              <span class="text-sm font-semibold text-gold">From $55</span>
              <a href="#" class="text-xs font-semibold bg-gold text-ink px-4 py-2 rounded-full hover:bg-goldlight transition-colors">Get Tickets</a>
            </div>
          </div>
        </div>
      </article>

      <article class="event-card reveal bg-coal rounded-2xl overflow-hidden ring-1 ring-white/10 hover:ring-gold/50 transition group" data-category="theatre" style="transition-delay:160ms">
        <div class="relative overflow-hidden">
          <img src="https://picsum.photos/seed/ev-meridian/800/500" alt="Intimate black box theatre production" class="w-full h-44 object-cover group-hover:scale-105 transition-transform duration-700">
          <span class="absolute top-3 left-3 bg-crimson text-cream text-[10px] font-bold uppercase tracking-[0.18em] px-3 py-1.5 rounded-full">Theatre</span>
        </div>
        <div class="p-6 flex gap-5">
          <div class="text-center shrink-0 bg-white/5 rounded-xl px-3 py-2 h-fit ring-1 ring-white/10">
            <p class="text-[10px] font-bold uppercase tracking-widest text-gold">Nov</p>
            <p class="font-display font-black text-2xl leading-none mt-1">15</p>
          </div>
          <div>
            <h3 class="font-display font-bold text-lg leading-snug">“Ghosts of the Meridian” — New Writing</h3>
            <p class="mt-1.5 text-xs text-cream/50">Black Box Annex · 7 PM · Limited 90-seat run</p>
            <div class="mt-4 flex items-center justify-between gap-3">
              <span class="text-sm font-semibold text-gold">From $28</span>
              <a href="#" class="text-xs font-semibold bg-cream text-ink px-4 py-2 rounded-full hover:bg-gold transition-colors">Get Tickets</a>
            </div>
          </div>
        </div>
      </article>

    </div>

    <div class="mt-12 text-center reveal">
      <a href="#" class="inline-flex items-center gap-2 border border-cream/25 text-cream font-semibold px-8 py-3.5 rounded-full hover:border-gold hover:text-gold transition-colors">
        View Full Season Calendar
        <svg class="w-4 h-4" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" d="M17 8l4 4m0 0l-4 4m4-4H3"/></svg>
      </a>
    </div>
  </div>
</section>

<!-- ══════════════════ CULTURAL IMPACT ══════════════════ -->
<section id="features" class="bg-crimson text-cream py-20 lg:py-24 scroll-mt-20 relative overflow-hidden">
  <div class="absolute inset-0 opacity-10 pointer-events-none" style="background-image:radial-gradient(circle at 80% 20%, #000 0, transparent 50%);"></div>
  <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 relative">
    <div class="grid lg:grid-cols-2 gap-14 items-center">
      <div class="reveal">
        <p class="kicker text-goldlight text-xs font-semibold uppercase mb-4">05 · Cultural Impact</p>
        <h2 class="font-display font-bold text-3xl sm:text-4xl tracking-tight leading-tight">Criticism Is Only Half the Job. The Other Half Is Patronage.</h2>
        <p class="mt-6 leading-relaxed text-cream/85">
          The Marquee was founded on a simple conviction: a city's culture is only as strong as the ecosystem that sustains it. Reviews fill seats for a night; commissions build a repertoire for a generation. That is why, since 2016, the Marquee Foundation has directed a fixed share of every subscription toward the creation of new work — no strings, no content approval, no logo on the poster.
        </p>
        <p class="mt-4 leading-relaxed text-cream/85">
          To date, the fund has co-commissioned forty-two new works across music, theatre, dance, and the visual arts, including Mara Ellison's <em>Resonance</em> and the Black Box Annex's new-writing program. Our Critic in Residence initiative places an emerging writer inside a working arts institution for a full season, and our education partnership with the Portmerion public schools has put more than 18,000 students in front of live performance — many for the first time.
        </p>
        <p class="mt-4 leading-relaxed text-cream/85">
          We publish our funding ledger openly every January. Independence is not a slogan here; it is an accounting practice.
        </p>
        <a href="#" class="mt-8 inline-flex items-center gap-2 bg-cream text-crimson font-semibold px-7 py-3.5 rounded-full hover:bg-gold hover:text-ink transition-colors">
          Learn About the Foundation
          <svg class="w-4 h-4" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" d="M17 8l4 4m0 0l-4 4m4-4H3"/></svg>
        </a>
      </div>

      <div class="reveal" style="transition-delay:150ms">
        <img src="https://picsum.photos/seed/impact-stage/1000/700" alt="A full theatre audience during a performance" class="w-full h-72 object-cover rounded-2xl shadow-editorial ring-1 ring-white/20">
        <div class="mt-8 grid grid-cols-2 gap-4">
          <div class="bg-crimsondark/70 rounded-2xl p-6 ring-1 ring-white/10 text-center">
            <p class="font-display font-black text-4xl text-goldlight"><span data-count="12">0</span></p>
            <p class="mt-1 text-xs uppercase tracking-widest text-cream/70">Years of Independent Criticism</p>
          </div>
          <div class="bg-crimsondark/70 rounded-2xl p-6 ring-1 ring-white/10 text-center">
            <p class="font-display font-black text-4xl text-goldlight"><span data-count="480">0</span>+</p>
            <p class="mt-1 text-xs uppercase tracking-widest text-cream/70">Reviews Published</p>
          </div>
          <div class="bg-crimsondark/70 rounded-2xl p-6 ring-1 ring-white/10 text-center">
            <p class="font-display font-black text-4xl text-goldlight"><span data-count="42">0</span></p>
            <p class="mt-1 text-xs uppercase tracking-widest text-cream/70">New Works Commissioned</p>
          </div>
          <div class="bg-crimsondark/70 rounded-2xl p-6 ring-1 ring-white/10 text-center">
            <p class="font-display font-black text-4xl text-goldlight"><span data-count="18">0</span>k</p>
            <p class="mt-1 text-xs uppercase tracking-widest text-cream/70">Students Reached Through Outreach</p>
          </div>
        </div>
      </div>
    </div>
  </div>
</section>

<!-- ══════════════════ TESTIMONIALS ══════════════════ -->
<section class="bg-cream py-20 lg:py-24">
  <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
    <div class="text-center max-w-2xl mx-auto reveal">
      <p class="kicker text-crimson text-xs font-semibold uppercase mb-4 inline-flex">06 · Voices</p>
      <h2 class="font-display font-bold text-3xl sm:text-4xl tracking-tight">What the Community Says</h2>
      <p class="mt-4 text-ink/60">Directors, curators, and readers on what The Marquee means to the city's cultural life.</p>
    </div>

    <div class="mt-12 grid md:grid-cols-3 gap-8">
      <figure class="reveal bg-white rounded-2xl p-8 shadow-card relative">
        <span class="absolute -top-5 left-8 font-display text-7xl text-gold/40 select-none" aria-hidden="true">&ldquo;</span>
        <blockquote class="relative text-ink/75 leading-relaxed text-[15px]">
          The Marquee's review of our opening night was tough, fair, and — frankly — right. Their critics understand that a regional theatre's job is risk, and they write about risk with more nuance than any outlet in the country.
        </blockquote>
        <figcaption class="mt-6 flex items-center gap-4">
          <img src="https://i.pravatar.cc/96?u=lena-okafor" alt="Portrait of Lena Okafor" class="w-12 h-12 rounded-full ring-2 ring-gold/40">
          <div>
            <p class="font-semibold text-sm">Lena Okafor</p>
            <p class="text-xs text-ink/50">Artistic Director, Holloway Theatre</p>
          </div>
        </figcaption>
      </figure>

      <figure class="reveal bg-white rounded-2xl p-8 shadow-card relative" style="transition-delay:100ms">
        <span class="absolute -top-5 left-8 font-display text-7xl text-gold/40 select-none" aria-hidden="true">&ldquo;</span>
        <blockquote class="relative text-ink/75 leading-relaxed text-[15px]">
          When the Foundation co-commissioned our first large-scale installation, they asked for nothing in return — not even a mention. That kind of patronage is vanishingly rare, and it has changed what this gallery is able to attempt.
        </blockquote>
        <figcaption class="mt-6 flex items-center gap-4">
          <img src="https://i.pravatar.cc/96?u=dominic-reyes" alt="Portrait of Dominic Reyes" class="w-12 h-12 rounded-full ring-2 ring-gold/40">
          <div>
            <p class="font-semibold text-sm">Dominic Reyes</p>
            <p class="text-xs text-ink/50">Chief Curator, Bellwether Gallery</p>
          </div>
        </figcaption>
      </figure>

      <figure class="reveal bg-white rounded-2xl p-8 shadow-card relative" style="transition-delay:200ms">
        <span class="absolute -top-5 left-8 font-display text-7xl text-gold/40 select-none" aria-hidden="true">&ldquo;</span>
        <blockquote class="relative text-ink/75 leading-relaxed text-[15px]">
          I plan my entire concert season around The Encore newsletter. As a working cellist, I don't have time to see everything — The Marquee helps me see the right things. Their season preview issue lives on my piano all autumn.
        </blockquote>
        <figcaption class="mt-6 flex items-center gap-4">
          <img src="https://i.pravatar.cc/96?u=priya-raman" alt="Portrait of Priya Raman" class="w-12 h-12 rounded-full ring-2 ring-gold/40">
          <div>
            <p class="font-semibold text-sm">Priya Raman</p>
            <p class="text-xs text-ink/50">Cellist &amp; Subscriber since 2018</p>
          </div>
        </figcaption>
      </figure>
    </div>
  </div>
</section>

<!-- ══════════════════ FAQ ══════════════════ -->
<section class="bg-sand py-20 lg:py-24 border-y border-ink/10">
  <div class="max-w-3xl mx-auto px-4 sm:px-6 lg:px-8">
    <div class="text-center reveal">
      <p class="kicker text-crimson text-xs font-semibold uppercase mb-4 inline-flex">07 · FAQ</p>
      <h2 class="font-display font-bold text-3xl sm:text-4xl tracking-tight">Frequently Asked Questions</h2>
      <p class="mt-4 text-ink/60">Everything artists, venues, and readers ask us most.</p>
    </div>

    <div class="mt-12 space-y-4">
      <div class="faq-item reveal bg-white rounded-xl shadow-card overflow-hidden">
        <button class="faq-btn w-full flex items-center justify-between gap-4 text-left px-7 py-5 font-semibold" aria-expanded="false">
          How do I submit my work or production for review consideration?
          <span class="faq-icon shrink-0 w-7 h-7 rounded-full bg-gold/15 text-crimson flex items-center justify-center font-display text-xl leading-none">+</span>
        </button>
        <div class="faq-body">
          <p class="px-7 pb-6 text-sm leading-relaxed text-ink/65">Send a press kit — including dates, venue, high-resolution images, and a brief artist statement — to <span class="font-semibold text-crimson">submissions@themarquee.press</span> at least three weeks before opening. We review every submission, though space allows us to cover roughly one in five. Unsolicited tickets are always welcome; comped tickets never guarantee coverage or influence a rating.</p>
        </div>
      </div>

      <div class="faq-item reveal bg-white rounded-xl shadow-card overflow-hidden" style="transition-delay:60ms">
        <button class="faq-btn w-full flex items-center justify-between gap-4 text-left px-7 py-5 font-semibold" aria-expanded="false">
          What does a Marquee subscription include?
          <span class="faq-icon shrink-0 w-7 h-7 rounded-full bg-gold/15 text-crimson flex items-center justify-center font-display text-xl leading-none">+</span>
        </button>
        <div class="faq-body">
          <p class="px-7 pb-6 text-sm leading-relaxed text-ink/65">Subscribers receive the quarterly print edition, full digital access including our twelve-year review archive, The Encore weekly newsletter, priority booking windows for Foundation-co-commissioned premieres, and invitations to two subscriber-only salon evenings per season. A fixed share of every subscription funds the commissioning program — automatically, with no opt-in required.</p>
        </div>
      </div>

      <div class="faq-item reveal bg-white rounded-xl shadow-card overflow-hidden" style="transition-delay:120ms">
        <button class="faq-btn w-full flex items-center justify-between gap-4 text-left px-7 py-5 font-semibold" aria-expanded="false">
          How are Critic's Picks and star ratings decided?
          <span class="faq-icon shrink-0 w-7 h-7 rounded-full bg-gold/15 text-crimson flex items-center justify-center font-display text-xl leading-none">+</span>
        </button>
        <div class="faq-body">
          <p class="px-7 pb-6 text-sm leading-relaxed text-ink/65">Star ratings belong to the individual critic and are never edited upward or downward by the desk. Critic's Picks are chosen in a weekly editorial meeting where any staff writer can champion a production; consensus is required, and ties are settled by the editor-in-chief. Advertising relationships are disclosed in the meeting and excluded from consideration.</p>
        </div>
      </div>

      <div class="faq-item reveal bg-white rounded-xl shadow-card overflow-hidden" style="transition-delay:180ms">
        <button class="faq-btn w-full flex items-center justify-between gap-4 text-left px-7 py-5 font-semibold" aria-expanded="false">
          Do you offer press credentials or media partnerships?
          <span class="faq-icon shrink-0 w-7 h-7 rounded-full bg-gold/15 text-crimson flex items-center justify-center font-display text-xl leading-none">+</span>
        </button>
        <div class="faq-body">
          <p class="px-7 pb-6 text-sm leading-relaxed text-ink/65">Accredited outlets can request credentials for Foundation-supported premieres via <span class="font-semibold text-crimson">press@themarquee.press</span>. For partnerships — festival coverage, co-presented panels, venue spotlights — contact our partnerships desk. All sponsored arrangements are labeled clearly in print and online, without exception.</p>
        </div>
      </div>

      <div class="faq-item reveal bg-white rounded-xl shadow-card overflow-hidden" style="transition-delay:240ms">
        <button class="faq-btn w-full flex items-center justify-between gap-4 text-left px-7 py-5 font-semibold" aria-expanded="false">
          Can I republish or excerpt Marquee content?
          <span class="faq-icon shrink-0 w-7 h-7 rounded-full bg-gold/15 text-crimson flex items-center justify-center font-display text-xl leading-none">+</span>
        </button>
        <div class="faq-body">
          <p class="px-7 pb-6 text-sm leading-relaxed text-ink/65">Short excerpts of up to 60 words may be quoted with attribution and a link. Venues and artists may use full pull quotes on marketing materials at no charge — we ask only that the critic's name and publication appear. For syndication, educational reprints, or archive licensing, write to <span class="font-semibold text-crimson">rights@themarquee.press</span>.</p>
        </div>
      </div>
    </div>
  </div>
</section>

<!-- ══════════════════ CONTACT ══════════════════ -->
<section id="contact" class="bg-cream py-20 lg:py-24 scroll-mt-20">
  <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
    <div class="grid lg:grid-cols-2 gap-14">

      <div class="reveal">
        <p class="kicker text-crimson text-xs font-semibold uppercase mb-4">08 · Contact</p>
        <h2 class="font-display font-bold text-3xl sm:text-4xl tracking-tight">Get in Touch With the Desk</h2>
        <p class="mt-4 text-ink/60 leading-relaxed">Whether you're pitching a story, booking a subscriber event, or flagging a correction, a human reads every message within two business days.</p>

        <div class="mt-8 space-y-4">
          <div class="flex gap-4 bg-white rounded-xl p-5 shadow-card">
            <span class="shrink-0 w-11 h-11 rounded-full bg-crimson/10 text-crimson flex items-center justify-center">
              <svg class="w-5 h-5" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" d="M3 8l7.89 5.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z"/></svg>
            </span>
            <div>
              <p class="font-semibold text-sm">Editorial &amp; Tips</p>
              <p class="text-sm text-ink/60 mt-0.5">editorial@themarquee.press · Story pitches, corrections, and letters to the editor.</p>
            </div>
          </div>
          <div class="flex gap-4 bg-white rounded-xl p-5 shadow-card">
            <span class="shrink-0 w-11 h-11 rounded-full bg-crimson/10 text-crimson flex items-center justify-center">
              <svg class="w-5 h-5" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" d="M21 13.255A23.9 23.9 0 0112 15c-3.183 0-6.22-.62-9-1.745M16 6V4a2 2 0 00-2-2h-4a2 2 0 00-2 2v2m4 6h.01M5 20h14a2 2 0 002-2V8a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z"/></svg>
            </span>
            <div>
              <p class="font-semibold text-sm">Press &amp; Partnerships</p>
              <p class="text-sm text-ink/60 mt-0.5">press@themarquee.press · Credentials, co-presented events, and media inquiries.</p>
            </div>
          </div>
          <div class="flex gap-4 bg-white rounded-xl p-5 shadow-card">
            <span class="shrink-0 w-11 h-11 rounded-full bg-crimson/10 text-crimson flex items-center justify-center">
              <svg class="w-5 h-5" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" d="M17.657 16.657L13.414 20.9a2 2 0 01-2.827 0l-4.244-4.243a8 8 0 1111.314 0z"/><path stroke-linecap="round" stroke-linejoin="round" d="M15 11a3 3 0 11-6 0 3 3 0 016 0z"/></svg>
            </span>
            <div>
              <p class="font-semibold text-sm">The Newsroom</p>
              <p class="text-sm text-ink/60 mt-0.5">214 Lantern Street, Suite 400, Portmerion, NY 10014 · +1 (212) 555-0184 · Mon–Fri, 9 AM–6 PM ET.</p>
            </div>
          </div>
        </div>
      </div>

      <div class="reveal" style="transition-delay:150ms">
        <form id="contactForm" class="bg-ink text-cream rounded-2xl p-8 shadow-editorial">
          <h3 class="font-display font-bold text-2xl">Send a Message</h3>
          <p class="mt-2 text-sm text-cream/60">Fields marked with an asterisk are required.</p>
          <div class="mt-6 grid sm:grid-cols-2 gap-4">
            <div>
              <label for="cfName" class="text-xs font-semibold uppercase tracking-widest text-cream/60">Name *</label>
              <input id="cfName" type="text" required class="mt-2 w-full bg-white/5 ring-1 ring-white/15 rounded-lg px-4 py-3 text-sm placeholder:text-cream/30 focus:outline-none focus:ring-gold" placeholder="Your name">
            </div>
            <div>
              <label for="cfEmail" class="text-xs font-semibold uppercase tracking-widest text-cream/60">Email *</label>
              <input id="cfEmail" type="email" required class="mt-2 w-full bg-white/5 ring-1 ring-white/15 rounded-lg px-4 py-3 text-sm placeholder:text-cream/30 focus:outline-none focus:ring-gold" placeholder="you@example.com">
            </div>
          </div>
          <div class="mt-4">
            <label for="cfTopic" class="text-xs font-semibold uppercase tracking-widest text-cream/60">Topic *</label>
            <select id="cfTopic" required class="mt-2 w-full bg-white/5 ring-1 ring-white/15 rounded-lg px-4 py-3 text-sm text-cream focus:outline-none focus:ring-gold [&>option]:text-ink">
              <option value="">Choose a topic…</option>
              <option>Story pitch or tip</option>
              <option>Review submission</option>
              <option>Press &amp; credentials</option>
              <option>Subscriptions &amp; billing</option>
              <option>Corrections</option>
              <option>Other</option>
            </select>
          </div>
          <div class="mt-4">
            <label for="cfMsg" class="text-xs font-semibold uppercase tracking-widest text-cream/60">Message *</label>
            <textarea id="cfMsg" rows="5" required class="mt-2 w-full bg-white/5 ring-1 ring-white/15 rounded-lg px-4 py-3 text-sm placeholder:text-cream/30 focus:outline-none focus:ring-gold resize-none" placeholder="Tell us what's on your mind…"></textarea>
          </div>
          <button type="submit" class="mt-6 w-full bg-gold text-ink font-semibold py-3.5 rounded-full hover:bg-goldlight transition-colors">Send Message</button>
          <p id="contactSuccess" class="hidden mt-4 text-sm bg-gold/15 text-goldlight rounded-lg px-4 py-3">Thank you — your message has been received. Expect a reply within two business days.</p>
        </form>
      </div>

    </div>
  </div>
</section>

</main>

<!-- ══════════════════ FOOTER ══════════════════ -->
<footer class="bg-ink text-cream border-t border-white/10">
  <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-16">
    <div class="grid md:grid-cols-2 lg:grid-cols-4 gap-12">

      <div>
        <a href="#home" class="flex items-center gap-3">
          <img src="https://placehold.co/96x96/16130f/c9a227?text=M&font=playfair-display" alt="The Marquee logo" class="w-10 h-10 rounded-md ring-1 ring-gold/40">
          <span class="font-display font-bold text-xl">The Marquee</span>
        </a>
        <p class="mt-4 text-sm text-cream/55 leading-relaxed">An independent journal of music, film, visual arts, and the performing arts — published in Portmerion since 2013. Criticism without compromise, patronage without strings.</p>
        <div class="mt-6 flex gap-3">
          <a href="#" aria-label="Follow us on X" class="w-9 h-9 rounded-full bg-white/5 ring-1 ring-white/15 flex items-center justify-center hover:bg-gold hover:text-ink transition-colors">
            <svg class="w-4 h-4" fill="currentColor" viewBox="0 0 24 24"><path d="M18.9 2H22l-6.8 7.8L23.3 22h-6.3l-4.9-6.4L6.4 22H3.3l7.3-8.3L1 2h6.5l4.4 5.9L18.9 2zm-1.1 18h1.7L7.6 3.8H5.7L17.8 20z"/></svg>
          </a>
          <a href="#" aria-label="Follow us on Instagram" class="w-9 h-9 rounded-full bg-white/5 ring-1 ring-white/15 flex items-center justify-center hover:bg-gold hover:text-ink transition-colors">
            <svg class="w-4 h-4" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"><rect x="3" y="3" width="18" height="18" rx="5"/><circle cx="12" cy="12" r="4"/><circle cx="17.5" cy="6.5" r="1" fill="currentColor" stroke="none"/></svg>
          </a>
          <a href="#" aria-label="Subscribe on YouTube" class="w-9 h-9 rounded-full bg-white/5 ring-1 ring-white/15 flex items-center justify-center hover:bg-gold hover:text-ink transition-colors">
            <svg class="w-4 h-4" fill="currentColor" viewBox="0 0 24 24"><path d="M23 12s0-3.8-.5-5.6c-.3-1-1.1-1.8-2.1-2C18.6 4 12 4 12 4s-6.6 0-8.4.4c-1 .2-1.8 1-2.1 2C1 8.2 1 12 1 12s0 3.8.5 5.6c.3 1 1.1 1.8 2.1 2 1.8.4 8.4.4 8.4.4s6.6 0 8.4-.4c1-.2 1.8-1 2.1-2 .5-1.8.5-5.6.5-5.6zM9.8 15.5v-7l6 3.5-6 3.5z"/></svg>
          </a>
          <a href="#" aria-label="Follow us on Facebook" class="w-9 h-9 rounded-full bg-white/5 ring-1 ring-white/15 flex items-center justify-center hover:bg-gold hover:text-ink transition-colors">
            <svg class="w-4 h-4" fill="currentColor" viewBox="0 0 24 24"><path d="M13.5 22v-8h2.7l.4-3.2h-3.1V8.7c0-.9.3-1.6 1.6-1.6h1.7V4.2c-.3 0-1.3-.1-2.5-.1-2.5 0-4.2 1.5-4.2 4.3v2.4H7.4V14h2.7v8h3.4z"/></svg>
          </a>
        </div>
      </div>

      <nav aria-label="Footer explore">
        <h4 class="text-xs font-semibold uppercase tracking-[0.22em] text-gold">Explore</h4>
        <ul class="mt-5 space-y-3 text-sm text-cream/60">
          <li><a href="#artists" class="hover:text-gold transition-colors">Artist Spotlights</a></li>
          <li><a href="#reviews" class="hover:text-gold transition-colors">Latest Reviews</a></li>
          <li><a href="#events" class="hover:text-gold transition-colors">Season Calendar</a></li>
          <li><a href="#gallery" class="hover:text-gold transition-colors">Photo Gallery</a></li>
          <li><a href="#features" class="hover:text-gold transition-colors">The Foundation</a></li>
          <li><a href="#subscribe" class="hover:text-gold transition-colors">The Encore Newsletter</a></li>
        </ul>
      </nav>

      <nav aria-label="Footer sections">
        <h4 class="text-xs font-semibold uppercase tracking-[0.22em] text-gold">Sections</h4>
        <ul class="mt-5 space-y-3 text-sm text-cream/60">
          <li><a href="#" class="hover:text-gold transition-colors">Music</a></li>
          <li><a href="#" class="hover:text-gold transition-colors">Film &amp; Screen</a></li>
          <li><a href="#" class="hover:text-gold transition-colors">Theatre &amp; Dance</a></li>
          <li><a href="#" class="hover:text-gold transition-colors">Visual Arts</a></li>
          <li><a href="#" class="hover:text-gold transition-colors">Essays &amp; Interviews</a></li>
          <li><a href="#" class="hover:text-gold transition-colors">Archive · 2013–Present</a></li>
        </ul>
      </nav>

      <div>
        <h4 class="text-xs font-semibold uppercase tracking-[0.22em] text-gold">Contact</h4>
        <address class="mt-5 not-italic text-sm text-cream/60 space-y-3 leading-relaxed">
          <p>The Marquee Media Group<br>214 Lantern Street, Suite 400<br>Portmerion, NY 10014</p>
          <p><a href="mailto:hello@themarquee.press" class="hover:text-gold transition-colors">hello@themarquee.press</a><br><a href="tel:+12125550184" class="hover:text-gold transition-colors">+1 (212) 555-0184</a></p>
          <p class="text-cream/40 text-xs">Newsroom hours: Mon–Fri, 9 AM–6 PM ET</p>
        </address>
      </div>

    </div>
  </div>

  <div class="border-t border-white/10">
    <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-6 flex flex-col sm:flex-row items-center justify-between gap-4 text-xs text-cream/40">
      <p>© <span id="year">2025</span> The Marquee Media Group. All rights reserved. Published independently in Portmerion, NY.</p>
      <nav aria-label="Legal" class="flex flex-wrap gap-x-6 gap-y-2">
        <a href="#" class="hover:text-gold transition-colors">Privacy Policy</a>
        <a href="#" class="hover:text-gold transition-colors">Terms of Service</a>
        <a href="#" class="hover:text-gold transition-colors">Cookie Policy</a>
        <a href="#" class="hover:text-gold transition-colors">Accessibility</a>
      </nav>
    </div>
  </div>
</footer>

<!-- Back to top -->
<button id="toTop" aria-label="Back to top" class="fixed bottom-6 right-6 z-50 w-12 h-12 rounded-full bg-gold text-ink shadow-editorial flex items-center justify-center hover:bg-goldlight">
  <svg class="w-5 h-5" fill="none" stroke="currentColor" stroke-width="2.5" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" d="M5 15l7-7 7 7"/></svg>
</button>

<script>
(function () {
  "use strict";

  /* ── Mobile menu ── */
  var menuBtn = document.getElementById('menuBtn');
  var mobileMenu = document.getElementById('mobileMenu');
  var iconOpen = document.getElementById('iconOpen');
  var iconClose = document.getElementById('iconClose');
  menuBtn.addEventListener('click', function () {
    var open = mobileMenu.classList.toggle('hidden');
    iconOpen.classList.toggle('hidden', !open);
    iconClose.classList.toggle('hidden', open);
    menuBtn.setAttribute('aria-expanded', String(!open));
  });
  mobileMenu.querySelectorAll('a').forEach(function (link) {
    link.addEventListener('click', function () {
      mobileMenu.classList.add('hidden');
      iconOpen.classList.remove('hidden');
      iconClose.classList.add('hidden');
      menuBtn.setAttribute('aria-expanded', 'false');
    });
  });

  /* ── Header shadow + back-to-top ── */
  var header = document.getElementById('siteHeader');
  var toTop = document.getElementById('toTop');
  window.addEventListener('scroll', function () {
    header.classList.toggle('scrolled', window.scrollY > 10);
    toTop.classList.toggle('show', window.scrollY > 600);
  }, { passive: true });
  toTop.addEventListener('click', function () {
    window.scrollTo({ top: 0, behavior: 'smooth' });
  });

  /* ── Scroll reveal ── */
  var revealObserver = new IntersectionObserver(function (entries) {
    entries.forEach(function (entry) {
      if (entry.isIntersecting) {
        entry.target.classList.add('visible');
        revealObserver.unobserve(entry.target);
      }
    });
  }, { threshold: 0.12 });
  document.querySelectorAll('.reveal').forEach(function (el) { revealObserver.observe(el); });

  /* ── Star ratings ── */
  var starPath = 'M12 2l2.9 6.6 7.1.6-5.4 4.7 1.6 7-6.2-3.7-6.2 3.7 1.6-7L2 9.2l7.1-.6z';
  function starSVG(color) {
    return '<svg viewBox="0 0 24 24" fill="' + color + '" class="w-4 h-4" aria-hidden="true"><path d="' + starPath + '"/></svg>';
  }
  document.querySelectorAll('.stars').forEach(function (el) {
    var rating = parseFloat(el.dataset.rating) || 0;
    var full = Math.floor(rating);
    var frac = rating - full;
    var html = '<span class="flex items-center gap-0.5">';
    for (var i = 0; i < 5; i++) {
      if (i < full) {
        html += starSVG('#c9a227');
      } else if (i === full && frac > 0) {
        html += '<span class="relative inline-block w-4 h-4">'
              +   '<span class="absolute inset-0">' + starSVG('#d8d2c4') + '</span>'
              +   '<span class="absolute inset-0 overflow-hidden" style="width:' + (frac * 100) + '%">' + starSVG('#c9a227') + '</span>'
              + '</span>';
      } else {
        html += starSVG('#d8d2c4');
      }
    }
    html += '<span class="ml-2 text-xs font-semibold text-ink/50">' + rating.toFixed(1) + '</span></span>';
    el.innerHTML = html;
  });

  /* ── Event filtering ── */
  var filterBtns = document.querySelectorAll('.filter-btn');
  var eventCards = document.querySelectorAll('.event-card');
  var eventCount = document.getElementById('eventCount');
  filterBtns.forEach(function (btn) {
    btn.addEventListener('click', function () {
      filterBtns.forEach(function (b) {
        b.classList.remove('active', 'bg-gold', 'text-ink');
        b.classList.add('bg-white/5', 'text-cream/70', 'ring-1', 'ring-white/15');
      });
      btn.classList.add('active', 'bg-gold', 'text-ink');
      btn.classList.remove('bg-white/5', 'text-cream/70', 'ring-1', 'ring-white/15');

      var filter = btn.dataset.filter;
      var shown = 0;
      eventCards.forEach(function (card) {
        var match = filter === 'all' || card.dataset.category === filter;
        card.classList.toggle('hidden', !match);
        if (match) {
          shown++;
          card.classList.remove('card-pop');
          void card.offsetWidth; /* restart animation */
          card.classList.add('card-pop');
        }
      });
      eventCount.textContent = 'Showing ' + shown + ' of ' + eventCards.length + ' events';
    });
  });

  /* ── Animated counters ── */
  var counterObserver = new IntersectionObserver(function (entries) {
    entries.forEach(function (entry) {
      if (!entry.isIntersecting) return;
      var el = entry.target;
      counterObserver.unobserve(el);
      var target = parseInt(el.dataset.count, 10);
      var duration = 1600;
      var start = null;
      function step(ts) {
        if (!start) start = ts;
        var p = Math.min((ts - start) / duration, 1);
        var eased = 1 - Math.pow(1 - p, 3);
        el.textContent = Math.round(eased * target);
        if (p < 1) requestAnimationFrame(step);
      }
      requestAnimationFrame(step);
    });
  }, { threshold: 0.5 });
  document.querySelectorAll('[data-count]').forEach(function (el) { counterObserver.observe(el); });

  /* ── FAQ accordion ── */
  document.querySelectorAll('.faq-btn').forEach(function (btn) {
    btn.addEventListener('click', function () {
      var item = btn.closest('.faq-item');
      var body = item.querySelector('.faq-body');
      var isOpen = item.classList.contains('open');
      document.querySelectorAll('.faq-item.open').forEach(function (other) {
        other.classList.remove('open');
        other.querySelector('.faq-body').style.maxHeight = null;
        other.querySelector('.faq-btn').setAttribute('aria-expanded', 'false');
      });
      if (!isOpen) {
        item.classList.add('open');
        body.style.maxHeight = body.scrollHeight + 'px';
        btn.setAttribute('aria-expanded', 'true');
      }
    });
  });

  /* ── Forms ── */
  var newsletterForm = document.getElementById('newsletterForm');
  newsletterForm.addEventListener('submit', function (e) {
    e.preventDefault();
    newsletterForm.classList.add('hidden');
    document.getElementById('newsletterSuccess').classList.remove('hidden');
  });

  var contactForm = document.getElementById('contactForm');
  contactForm.addEventListener('submit', function (e) {
    e.preventDefault();
    document.getElementById('contactSuccess').classList.remove('hidden');
    contactForm.querySelectorAll('input, select, textarea').forEach(function (f) { f.value = ''; });
  });

  /* ── Footer year ── */
  document.getElementById('year').textContent = new Date().getFullYear();
})();
</script>
</body>
</html>
View Axe Report (JSON)
{
  "testEngine": {
    "name": "axe-core",
    "version": "4.10.2"
  },
  "testRunner": {
    "name": "axe"
  },
  "testEnvironment": {
    "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/156.0.8078.4 Safari/537.36",
    "windowWidth": 1280,
    "windowHeight": 720,
    "orientationAngle": 0,
    "orientationType": "landscape-primary"
  },
  "timestamp": "2026-11-12T09:53:06.613Z",
  "url": "https://benchmark.aimac.invalid/add30cd0e74f7510c9145c907394b9f1dd1caa20e7f0d04c9740b1ce974de251.html",
  "toolOptions": {
    "runOnly": {
      "type": "tag",
      "values": [
        "wcag2a",
        "wcag2aa",
        "wcag21a",
        "wcag21aa",
        "wcag22a",
        "wcag22aa"
      ]
    },
    "resultTypes": [
      "violations"
    ],
    "reporter": "v1"
  },
  "inapplicable": [
    {
      "id": "area-alt",
      "impact": null,
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag244",
        "wcag412",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT6.a",
        "EN-301-549",
        "EN-9.2.4.4",
        "EN-9.4.1.2",
        "ACT"
      ],
      "description": "Ensure <area> elements of image maps have alternative text",
      "help": "Active <area> elements must have alternative text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/area-alt?application=axeAPI",
      "nodes": []
    },
    {
      "id": "aria-braille-equivalent",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure aria-braillelabel and aria-brailleroledescription have a non-braille equivalent",
      "help": "aria-braille attributes must have a non-braille equivalent",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-braille-equivalent?application=axeAPI",
      "nodes": []
    },
    {
      "id": "aria-command-name",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "TTv5",
        "TT6.a",
        "EN-301-549",
        "EN-9.4.1.2",
        "ACT"
      ],
      "description": "Ensure every ARIA button, link and menuitem has an accessible name",
      "help": "ARIA commands must have an accessible name",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-command-name?application=axeAPI",
      "nodes": []
    },
    {
      "id": "aria-input-field-name",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "TTv5",
        "TT5.c",
        "EN-301-549",
        "EN-9.4.1.2",
        "ACT"
      ],
      "description": "Ensure every ARIA input field has an accessible name",
      "help": "ARIA input fields must have an accessible name",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-input-field-name?application=axeAPI",
      "nodes": []
    },
    {
      "id": "aria-meter-name",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag111",
        "EN-301-549",
        "EN-9.1.1.1"
      ],
      "description": "Ensure every ARIA meter node has an accessible name",
      "help": "ARIA meter nodes must have an accessible name",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-meter-name?application=axeAPI",
      "nodes": []
    },
    {
      "id": "aria-progressbar-name",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag111",
        "EN-301-549",
        "EN-9.1.1.1"
      ],
      "description": "Ensure every ARIA progressbar node has an accessible name",
      "help": "ARIA progressbar nodes must have an accessible name",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-progressbar-name?application=axeAPI",
      "nodes": []
    },
    {
      "id": "aria-required-children",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag131",
        "EN-301-549",
        "EN-9.1.3.1"
      ],
      "description": "Ensure elements with an ARIA role that require child roles contain them",
      "help": "Certain ARIA roles must contain particular children",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-required-children?application=axeAPI",
      "nodes": []
    },
    {
      "id": "aria-required-parent",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag131",
        "EN-301-549",
        "EN-9.1.3.1"
      ],
      "description": "Ensure elements with an ARIA role that require parent roles are contained by them",
      "help": "Certain ARIA roles must be contained by particular parents",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-required-parent?application=axeAPI",
      "nodes": []
    },
    {
      "id": "aria-toggle-field-name",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "TTv5",
        "TT5.c",
        "EN-301-549",
        "EN-9.4.1.2",
        "ACT"
      ],
      "description": "Ensure every ARIA toggle field has an accessible name",
      "help": "ARIA toggle fields must have an accessible name",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-toggle-field-name?application=axeAPI",
      "nodes": []
    },
    {
      "id": "aria-tooltip-name",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure every ARIA tooltip node has an accessible name",
      "help": "ARIA tooltip nodes must have an accessible name",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-tooltip-name?application=axeAPI",
      "nodes": []
    },
    {
      "id": "autocomplete-valid",
      "impact": null,
      "tags": [
        "cat.forms",
        "wcag21aa",
        "wcag135",
        "EN-301-549",
        "EN-9.1.3.5",
        "ACT"
      ],
      "description": "Ensure the autocomplete attribute is correct and suitable for the form field",
      "help": "autocomplete attribute must be used correctly",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/autocomplete-valid?application=axeAPI",
      "nodes": []
    },
    {
      "id": "blink",
      "impact": null,
      "tags": [
        "cat.time-and-media",
        "wcag2a",
        "wcag222",
        "section508",
        "section508.22.j",
        "TTv5",
        "TT2.b",
        "EN-301-549",
        "EN-9.2.2.2"
      ],
      "description": "Ensure <blink> elements are not used",
      "help": "<blink> elements are deprecated and must not be used",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/blink?application=axeAPI",
      "nodes": []
    },
    {
      "id": "frame-focusable-content",
      "impact": null,
      "tags": [
        "cat.keyboard",
        "wcag2a",
        "wcag211",
        "TTv5",
        "TT4.a",
        "EN-301-549",
        "EN-9.2.1.1"
      ],
      "description": "Ensure <frame> and <iframe> elements with focusable content do not have tabindex=-1",
      "help": "Frames with focusable content must not have tabindex=-1",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/frame-focusable-content?application=axeAPI",
      "nodes": []
    },
    {
      "id": "frame-title-unique",
      "impact": null,
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag412",
        "TTv5",
        "TT12.d",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure <iframe> and <frame> elements contain a unique title attribute",
      "help": "Frames must have a unique title attribute",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/frame-title-unique?application=axeAPI",
      "nodes": []
    },
    {
      "id": "frame-title",
      "impact": null,
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag412",
        "section508",
        "section508.22.i",
        "TTv5",
        "TT12.d",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure <iframe> and <frame> elements have an accessible name",
      "help": "Frames must have an accessible name",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/frame-title?application=axeAPI",
      "nodes": []
    },
    {
      "id": "html-xml-lang-mismatch",
      "impact": null,
      "tags": [
        "cat.language",
        "wcag2a",
        "wcag311",
        "EN-301-549",
        "EN-9.3.1.1",
        "ACT"
      ],
      "description": "Ensure that HTML elements with both valid lang and xml:lang attributes agree on the base language of the page",
      "help": "HTML elements with lang and xml:lang must have the same base language",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/html-xml-lang-mismatch?application=axeAPI",
      "nodes": []
    },
    {
      "id": "input-button-name",
      "impact": null,
      "tags": [
        "cat.name-role-value",
        "wcag2a",
        "wcag412",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT5.c",
        "EN-301-549",
        "EN-9.4.1.2",
        "ACT"
      ],
      "description": "Ensure input buttons have discernible text",
      "help": "Input buttons must have discernible text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/input-button-name?application=axeAPI",
      "nodes": []
    },
    {
      "id": "input-image-alt",
      "impact": null,
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag111",
        "wcag412",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT7.a",
        "EN-301-549",
        "EN-9.1.1.1",
        "EN-9.4.1.2",
        "ACT"
      ],
      "description": "Ensure <input type=\"image\"> elements have alternative text",
      "help": "Image buttons must have alternative text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/input-image-alt?application=axeAPI",
      "nodes": []
    },
    {
      "id": "link-in-text-block",
      "impact": null,
      "tags": [
        "cat.color",
        "wcag2a",
        "wcag141",
        "TTv5",
        "TT13.a",
        "EN-301-549",
        "EN-9.1.4.1"
      ],
      "description": "Ensure links are distinguished from surrounding text in a way that does not rely on color",
      "help": "Links must be distinguishable without relying on color",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/link-in-text-block?application=axeAPI",
      "nodes": []
    },
    {
      "id": "marquee",
      "impact": null,
      "tags": [
        "cat.parsing",
        "wcag2a",
        "wcag222",
        "TTv5",
        "TT2.b",
        "EN-301-549",
        "EN-9.2.2.2"
      ],
      "description": "Ensure <marquee> elements are not used",
      "help": "<marquee> elements are deprecated and must not be used",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/marquee?application=axeAPI",
      "nodes": []
    },
    {
      "id": "meta-refresh",
      "impact": null,
      "tags": [
        "cat.time-and-media",
        "wcag2a",
        "wcag221",
        "TTv5",
        "TT8.a",
        "EN-301-549",
        "EN-9.2.2.1"
      ],
      "description": "Ensure <meta http-equiv=\"refresh\"> is not used for delayed refresh",
      "help": "Delayed refresh under 20 hours must not be used",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/meta-refresh?application=axeAPI",
      "nodes": []
    },
    {
      "id": "object-alt",
      "impact": null,
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag111",
        "section508",
        "section508.22.a",
        "EN-301-549",
        "EN-9.1.1.1"
      ],
      "description": "Ensure <object> elements have alternative text",
      "help": "<object> elements must have alternative text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/object-alt?application=axeAPI",
      "nodes": []
    },
    {
      "id": "role-img-alt",
      "impact": null,
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag111",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT7.a",
        "EN-301-549",
        "EN-9.1.1.1",
        "ACT"
      ],
      "description": "Ensure [role=\"img\"] elements have alternative text",
      "help": "[role=\"img\"] elements must have an alternative text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/role-img-alt?application=axeAPI",
      "nodes": []
    },
    {
      "id": "scrollable-region-focusable",
      "impact": null,
      "tags": [
        "cat.keyboard",
        "wcag2a",
        "wcag211",
        "wcag213",
        "TTv5",
        "TT4.a",
        "EN-301-549",
        "EN-9.2.1.1",
        "EN-9.2.1.3"
      ],
      "description": "Ensure elements that have scrollable content are accessible by keyboard",
      "help": "Scrollable region must have keyboard access",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/scrollable-region-focusable?application=axeAPI",
      "nodes": []
    },
    {
      "id": "server-side-image-map",
      "impact": null,
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag211",
        "section508",
        "section508.22.f",
        "TTv5",
        "TT4.a",
        "EN-301-549",
        "EN-9.2.1.1"
      ],
      "description": "Ensure that server-side image maps are not used",
      "help": "Server-side image maps must not be used",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/server-side-image-map?application=axeAPI",
      "nodes": []
    },
    {
      "id": "summary-name",
      "impact": null,
      "tags": [
        "cat.name-role-value",
        "wcag2a",
        "wcag412",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT6.a",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure summary elements have discernible text",
      "help": "Summary elements must have discernible text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/summary-name?application=axeAPI",
      "nodes": []
    },
    {
      "id": "svg-img-alt",
      "impact": null,
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag111",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT7.a",
        "EN-301-549",
        "EN-9.1.1.1",
        "ACT"
      ],
      "description": "Ensure <svg> elements with an img, graphics-document or graphics-symbol role have an accessible text",
      "help": "<svg> elements with an img role must have an alternative text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/svg-img-alt?application=axeAPI",
      "nodes": []
    },
    {
      "id": "td-headers-attr",
      "impact": null,
      "tags": [
        "cat.tables",
        "wcag2a",
        "wcag131",
        "section508",
        "section508.22.g",
        "TTv5",
        "TT14.b",
        "EN-301-549",
        "EN-9.1.3.1"
      ],
      "description": "Ensure that each cell in a table that uses the headers attribute refers only to other cells in that table",
      "help": "Table cells that use the headers attribute must only refer to cells in the same table",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/td-headers-attr?application=axeAPI",
      "nodes": []
    },
    {
      "id": "th-has-data-cells",
      "impact": null,
      "tags": [
        "cat.tables",
        "wcag2a",
        "wcag131",
        "section508",
        "section508.22.g",
        "TTv5",
        "TT14.b",
        "EN-301-549",
        "EN-9.1.3.1"
      ],
      "description": "Ensure that <th> elements and elements with role=columnheader/rowheader have data cells they describe",
      "help": "Table headers in a data table must refer to data cells",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/th-has-data-cells?application=axeAPI",
      "nodes": []
    },
    {
      "id": "valid-lang",
      "impact": null,
      "tags": [
        "cat.language",
        "wcag2aa",
        "wcag312",
        "TTv5",
        "TT11.b",
        "EN-301-549",
        "EN-9.3.1.2",
        "ACT"
      ],
      "description": "Ensure lang attributes have valid values",
      "help": "lang attribute must have a valid value",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/valid-lang?application=axeAPI",
      "nodes": []
    },
    {
      "id": "video-caption",
      "impact": null,
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag122",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT17.a",
        "EN-301-549",
        "EN-9.1.2.2"
      ],
      "description": "Ensure <video> elements have captions",
      "help": "<video> elements must have captions",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/video-caption?application=axeAPI",
      "nodes": []
    },
    {
      "id": "no-autoplay-audio",
      "impact": null,
      "tags": [
        "cat.time-and-media",
        "wcag2a",
        "wcag142",
        "TTv5",
        "TT2.a",
        "EN-301-549",
        "EN-9.1.4.2",
        "ACT"
      ],
      "description": "Ensure <video> or <audio> elements do not autoplay audio for more than 3 seconds without a control mechanism to stop or mute the audio",
      "help": "<video> or <audio> elements must not play automatically",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/no-autoplay-audio?application=axeAPI",
      "nodes": []
    }
  ],
  "passes": [
    {
      "id": "aria-allowed-attr",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure an element's role supports its ARIA attributes",
      "help": "Elements must only use supported ARIA attributes",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-allowed-attr?application=axeAPI",
      "nodes": [
        {
          "any": [],
          "all": [
            {
              "id": "aria-allowed-attr",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "ARIA attributes are used correctly for the defined role"
            }
          ],
          "none": [
            {
              "id": "aria-unsupported-attr",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "ARIA attribute is supported"
            }
          ],
          "impact": null,
          "html": "<nav aria-label=\"Primary\" class=\"hidden lg:flex items-center gap-8 text-sm font-medium text-cream/80\">",
          "target": [
            ".lg\\:flex"
          ]
        }
      ]
    },
    {
      "id": "aria-conditional-attr",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure ARIA attributes are used as described in the specification of the element's role",
      "help": "ARIA attributes must be used as specified for the element's role",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-conditional-attr?application=axeAPI",
      "nodes": [
        {
          "any": [],
          "all": [
            {
              "id": "aria-conditional-attr",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "ARIA attribute is allowed"
            }
          ],
          "none": [],
          "impact": null,
          "html": "<nav aria-label=\"Primary\" class=\"hidden lg:flex items-center gap-8 text-sm font-medium text-cream/80\">",
          "target": [
            ".lg\\:flex"
          ]
        }
      ]
    },
    {
      "id": "aria-deprecated-role",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure elements do not use deprecated roles",
      "help": "Deprecated ARIA roles must not be used",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-deprecated-role?application=axeAPI",
      "nodes": [
        {
          "any": [],
          "all": [],
          "none": [
            {
              "id": "deprecatedrole",
              "data": null,
              "relatedNodes": [],
              "impact": "minor",
              "message": "ARIA role is not deprecated"
            }
          ],
          "impact": null,
          "html": "<div class=\"mt-10 flex flex-wrap justify-center gap-3 reveal\" role=\"group\" aria-label=\"Filter events by category\">",
          "target": [
            "div[role=\"group\"]"
          ]
        }
      ]
    },
    {
      "id": "aria-hidden-body",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag131",
        "wcag412",
        "EN-301-549",
        "EN-9.1.3.1",
        "EN-9.4.1.2"
      ],
      "description": "Ensure aria-hidden=\"true\" is not present on the document body.",
      "help": "aria-hidden=\"true\" must not be present on the document body",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-hidden-body?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "aria-hidden-body",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "No aria-hidden attribute is present on document body"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<body class=\"bg-cream text-ink font-body\">",
          "target": [
            "body"
          ]
        }
      ]
    },
    {
      "id": "aria-hidden-focus",
      "impact": null,
      "tags": [
        "cat.name-role-value",
        "wcag2a",
        "wcag412",
        "TTv5",
        "TT6.a",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure aria-hidden elements are not focusable nor contain focusable elements",
      "help": "ARIA hidden element must not be focusable or contain focusable elements",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-hidden-focus?application=axeAPI",
      "nodes": [
        {
          "any": [],
          "all": [
            {
              "id": "focusable-modal-open",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "No focusable elements while a modal is open"
            },
            {
              "id": "focusable-disabled",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "No focusable elements contained within element"
            },
            {
              "id": "focusable-not-tabbable",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "No focusable elements contained within element"
            }
          ],
          "none": [],
          "impact": null,
          "html": "<div class=\"ticker border-t border-white/10 bg-coal py-3 overflow-hidden\" aria-hidden=\"true\">",
          "target": [
            ".ticker"
          ]
        }
      ]
    },
    {
      "id": "aria-prohibited-attr",
      "impact": "serious",
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure ARIA attributes are not prohibited for an element's role",
      "help": "Elements must only use permitted ARIA attributes",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-prohibited-attr?application=axeAPI",
      "nodes": [
        {
          "any": [],
          "all": [],
          "none": [
            {
              "id": "aria-prohibited-attr",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "ARIA attribute is allowed"
            }
          ],
          "impact": null,
          "html": "<nav aria-label=\"Primary\" class=\"hidden lg:flex items-center gap-8 text-sm font-medium text-cream/80\">",
          "target": [
            ".lg\\:flex"
          ]
        }
      ]
    },
    {
      "id": "aria-required-attr",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure elements with ARIA roles have all required ARIA attributes",
      "help": "Required ARIA attributes must be provided",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-required-attr?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "aria-required-attr",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "All required ARIA attributes are present"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<div class=\"mt-10 flex flex-wrap justify-center gap-3 reveal\" role=\"group\" aria-label=\"Filter events by category\">",
          "target": [
            "div[role=\"group\"]"
          ]
        }
      ]
    },
    {
      "id": "aria-roles",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure all elements with a role attribute use a valid value",
      "help": "ARIA roles used must conform to valid values",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-roles?application=axeAPI",
      "nodes": [
        {
          "any": [],
          "all": [],
          "none": [
            {
              "id": "invalidrole",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "ARIA role is valid"
            },
            {
              "id": "abstractrole",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Abstract roles are not used"
            },
            {
              "id": "unsupportedrole",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "ARIA role is supported"
            }
          ],
          "impact": null,
          "html": "<div class=\"mt-10 flex flex-wrap justify-center gap-3 reveal\" role=\"group\" aria-label=\"Filter events by category\">",
          "target": [
            "div[role=\"group\"]"
          ]
        }
      ]
    },
    {
      "id": "aria-valid-attr-value",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure all ARIA attributes have valid values",
      "help": "ARIA attributes must conform to valid values",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-valid-attr-value?application=axeAPI",
      "nodes": [
        {
          "any": [],
          "all": [
            {
              "id": "aria-valid-attr-value",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "ARIA attribute values are valid"
            },
            {
              "id": "aria-errormessage",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "aria-errormessage exists and references elements visible to screen readers that use a supported aria-errormessage technique"
            },
            {
              "id": "aria-level",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "aria-level values are valid"
            }
          ],
          "none": [],
          "impact": null,
          "html": "<nav aria-label=\"Primary\" class=\"hidden lg:flex items-center gap-8 text-sm font-medium text-cream/80\">",
          "target": [
            ".lg\\:flex"
          ]
        }
      ]
    },
    {
      "id": "aria-valid-attr",
      "impact": null,
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure attributes that begin with aria- are valid ARIA attributes",
      "help": "ARIA attributes must conform to valid names",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-valid-attr?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "aria-valid-attr",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "ARIA attribute name is valid"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<nav aria-label=\"Primary\" class=\"hidden lg:flex items-center gap-8 text-sm font-medium text-cream/80\">",
          "target": [
            ".lg\\:flex"
          ]
        }
      ]
    },
    {
      "id": "avoid-inline-spacing",
      "impact": null,
      "tags": [
        "cat.structure",
        "wcag21aa",
        "wcag1412",
        "EN-301-549",
        "EN-9.1.4.12",
        "ACT"
      ],
      "description": "Ensure that text spacing set through style attributes can be adjusted with custom stylesheets",
      "help": "Inline text spacing must be adjustable with custom stylesheets",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/avoid-inline-spacing?application=axeAPI",
      "nodes": [
        {
          "any": [],
          "all": [
            {
              "id": "important-letter-spacing",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "Letter-spacing in the style attribute is not set to !important, or meets the minimum"
            },
            {
              "id": "important-word-spacing",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "word-spacing in the style attribute is not set to !important, or meets the minimum"
            },
            {
              "id": "important-line-height",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "line-height in the style attribute is not set to !important, or meets the minimum"
            }
          ],
          "none": [],
          "impact": null,
          "html": "<span class=\"block font-display font-800 text-2xl text-cream tracking-tight\" style=\"font-weight:800\">The Marquee</span>",
          "target": [
            ".font-800"
          ]
        }
      ]
    },
    {
      "id": "button-name",
      "impact": null,
      "tags": [
        "cat.name-role-value",
        "wcag2a",
        "wcag412",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT6.a",
        "EN-301-549",
        "EN-9.4.1.2",
        "ACT"
      ],
      "description": "Ensure buttons have discernible text",
      "help": "Buttons must have discernible text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/button-name?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "button-has-visible-text",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element has inner text that is visible to screen readers"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<button type=\"submit\" class=\"mt-3 w-full bg-ink text-cream font-semibold py-3 rounded-full hover:bg-smoke transition-colors\">Subscribe Free</button>",
          "target": [
            ".hover\\:bg-smoke.bg-ink[type=\"submit\"]"
          ]
        }
      ]
    },
    {
      "id": "bypass",
      "impact": null,
      "tags": [
        "cat.keyboard",
        "wcag2a",
        "wcag241",
        "section508",
        "section508.22.o",
        "TTv5",
        "TT9.a",
        "EN-301-549",
        "EN-9.2.4.1"
      ],
      "description": "Ensure each page has at least one mechanism for a user to bypass navigation and jump straight to the content",
      "help": "Page must have means to bypass repeated blocks",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/bypass?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "internal-link-present",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "Valid skip link found"
            },
            {
              "id": "header-present",
              "data": null,
              "relatedNodes": [
                {
                  "html": "<h1 class=\"font-display font-black text-4xl sm:text-5xl lg:text-[3.6rem] leading-[1.08] tracking-tight\">\n          The Resonance Project: How Mara Ellison Is Rewriting the Language of Modern Composition\n        </h1>",
                  "target": [
                    "h1"
                  ]
                },
                {
                  "html": "<h2 class=\"font-display font-bold text-3xl sm:text-4xl leading-tight tracking-tight\">\n          A Repertoire Built on Risk: Inside Mara Ellison's Three-Week Residency\n        </h2>",
                  "target": [
                    "#artists > .leading-tight"
                  ]
                },
                {
                  "html": "<h2 class=\"font-display font-bold text-3xl sm:text-4xl tracking-tight\">This Week on the Critic's Desk</h2>",
                  "target": [
                    "#reviews > .items-end.flex-wrap.justify-between > div > h2"
                  ]
                },
                {
                  "html": "<h3 class=\"mt-3 font-display font-bold text-xl leading-snug group-hover:text-crimson transition-colors\">\u201cStatic Bloom\u201d Returns, and Its Silence Still Deafens</h3>",
                  "target": [
                    ".review-card.hover\\:shadow-editorial.transition-shadow:nth-child(1) > .p-6 > .group-hover\\:text-crimson.text-xl.mt-3"
                  ]
                },
                {
                  "html": "<h3 class=\"mt-3 font-display font-bold text-xl leading-snug group-hover:text-crimson transition-colors\">\u201cThe Glass Hour\u201d Is the Rare Revival That Outshines the Original</h3>",
                  "target": [
                    ".review-card.hover\\:shadow-editorial.transition-shadow:nth-child(2) > .p-6 > .group-hover\\:text-crimson.text-xl.mt-3"
                  ]
                },
                {
                  "html": "<h3 class=\"mt-3 font-display font-bold text-xl leading-snug group-hover:text-crimson transition-colors\">Night Census Trade Neon for Nocturne on the Gorgeous \u201cVireo\u201d</h3>",
                  "target": [
                    ".review-card.hover\\:shadow-editorial.transition-shadow:nth-child(3) > .p-6 > .group-hover\\:text-crimson.text-xl.mt-3"
                  ]
                },
                {
                  "html": "<h3 class=\"mt-3 font-display font-bold text-xl leading-snug group-hover:text-crimson transition-colors\">\u201cChromatic Fields\u201d Turns the Gallery Into a Weather System</h3>",
                  "target": [
                    ".review-card.hover\\:shadow-editorial.transition-shadow:nth-child(4) > .p-6 > .group-hover\\:text-crimson.text-xl.mt-3"
                  ]
                },
                {
                  "html": "<h3 class=\"font-display font-bold text-xl flex items-center gap-3\">",
                  "target": [
                    ".text-xl.gap-3"
                  ]
                },
                {
                  "html": "<h3 class=\"mt-2 font-display font-bold text-lg leading-snug\">The Quiet Rebellion of the City's Underground Opera Scene</h3>",
                  "target": [
                    ".mt-2.text-lg"
                  ]
                },
                {
                  "html": "<h3 class=\"mt-4 font-display font-bold text-lg\">The Orpheum Hall</h3>",
                  "target": [
                    ".border.bg-sand.border-ink\\/10 > .text-lg"
                  ]
                },
                {
                  "html": "<h3 class=\"font-display font-bold text-xl\">The Encore \u2014 Our Weekly Dispatch</h3>",
                  "target": [
                    "#subscribe > .text-xl"
                  ]
                },
                {
                  "html": "<h2 class=\"font-display font-bold text-3xl sm:text-4xl tracking-tight\">From the Photo Desk</h2>",
                  "target": [
                    ".max-w-7xl.sm\\:px-6.lg\\:px-8 > .items-end.flex-wrap.justify-between > div > h2"
                  ]
                },
                {
                  "html": "<h2 class=\"font-display font-bold text-3xl sm:text-4xl tracking-tight\">The Season at a Glance</h2>",
                  "target": [
                    "#events > .max-w-7xl.sm\\:px-6.lg\\:px-8 > .max-w-2xl.mx-auto.text-center > h2"
                  ]
                },
                {
                  "html": "<h3 class=\"font-display font-bold text-lg leading-snug\">Night Census: The Vireo Tour</h3>",
                  "target": [
                    ".hover\\:ring-gold\\/50.event-card[data-category=\"music\"] > .gap-5.p-6.flex > div:nth-child(2) > .text-lg"
                  ]
                },
                {
                  "html": "<h3 class=\"font-display font-bold text-lg leading-snug\">The Glass Hour \u2014 Extended Run</h3>",
                  "target": [
                    ".hover\\:ring-gold\\/50.event-card[data-category=\"theatre\"]:nth-child(2) > .gap-5.p-6.flex > div:nth-child(2) > .text-lg"
                  ]
                },
                {
                  "html": "<h3 class=\"font-display font-bold text-lg leading-snug\">\u201cStatic Bloom\u201d Director's Cut + Q&amp;A</h3>",
                  "target": [
                    "article[data-category=\"film\"] > .gap-5.p-6.flex > div:nth-child(2) > .text-lg"
                  ]
                },
                {
                  "html": "<h3 class=\"font-display font-bold text-lg leading-snug\">\u201cChromatic Fields\u201d Opening Gala</h3>",
                  "target": [
                    "article[data-category=\"visual\"] > .gap-5.p-6.flex > div:nth-child(2) > .text-lg"
                  ]
                },
                {
                  "html": "<h3 class=\"font-display font-bold text-lg leading-snug\">Ellison's \u201cResonance\u201d \u2014 World Premiere</h3>",
                  "target": [
                    ".event-card.bg-coal[data-category=\"music\"]:nth-child(5) > .gap-5.p-6.flex > div:nth-child(2) > .text-lg"
                  ]
                },
                {
                  "html": "<h3 class=\"font-display font-bold text-lg leading-snug\">\u201cGhosts of the Meridian\u201d \u2014 New Writing</h3>",
                  "target": [
                    ".hover\\:ring-gold\\/50.event-card[data-category=\"theatre\"]:nth-child(6) > .gap-5.p-6.flex > div:nth-child(2) > .text-lg"
                  ]
                },
                {
                  "html": "<h2 class=\"font-display font-bold text-3xl sm:text-4xl tracking-tight leading-tight\">Criticism Is Only Half the Job. The Other Half Is Patronage.</h2>",
                  "target": [
                    ".lg\\:grid-cols-2.gap-14.grid > .reveal:nth-child(1) > .leading-tight"
                  ]
                },
                {
                  "html": "<h2 class=\"font-display font-bold text-3xl sm:text-4xl tracking-tight\">What the Community Says</h2>",
                  "target": [
                    ".py-20.lg\\:py-24:nth-child(6) > .max-w-7xl.sm\\:px-6.lg\\:px-8 > .max-w-2xl.mx-auto.text-center > h2"
                  ]
                },
                {
                  "html": "<h2 class=\"font-display font-bold text-3xl sm:text-4xl tracking-tight\">Frequently Asked Questions</h2>",
                  "target": [
                    ".max-w-3xl > .text-center.reveal > h2"
                  ]
                },
                {
                  "html": "<h2 class=\"font-display font-bold text-3xl sm:text-4xl tracking-tight\">Get in Touch With the Desk</h2>",
                  "target": [
                    "#contact > .max-w-7xl.sm\\:px-6.lg\\:px-8 > .lg\\:grid-cols-2.gap-14.grid > .reveal:nth-child(1) > h2"
                  ]
                },
                {
                  "html": "<h3 class=\"font-display font-bold text-2xl\">Send a Message</h3>",
                  "target": [
                    "#contactForm > .text-2xl"
                  ]
                },
                {
                  "html": "<h4 class=\"text-xs font-semibold uppercase tracking-[0.22em] text-gold\">Explore</h4>",
                  "target": [
                    "nav[aria-label=\"Footer explore\"] > h4"
                  ]
                },
                {
                  "html": "<h4 class=\"text-xs font-semibold uppercase tracking-[0.22em] text-gold\">Sections</h4>",
                  "target": [
                    "nav[aria-label=\"Footer sections\"] > h4"
                  ]
                },
                {
                  "html": "<h4 class=\"text-xs font-semibold uppercase tracking-[0.22em] text-gold\">Contact</h4>",
                  "target": [
                    "div:nth-child(4) > h4"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Page has a heading"
            },
            {
              "id": "landmark",
              "data": null,
              "relatedNodes": [
                {
                  "html": "<main id=\"main\">",
                  "target": [
                    "#main"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Page has a landmark region"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<html lang=\"en\">",
          "target": [
            "html"
          ]
        }
      ]
    },
    {
      "id": "color-contrast",
      "impact": "serious",
      "tags": [
        "cat.color",
        "wcag2aa",
        "wcag143",
        "TTv5",
        "TT13.c",
        "EN-301-549",
        "EN-9.1.4.3",
        "ACT"
      ],
      "description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
      "help": "Elements must meet minimum color contrast ratio thresholds",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/color-contrast?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#f7f2e8",
                "bgColor": "#8e1e2f",
                "contrastRatio": 7.91,
                "fontSize": "9.0pt (12px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [],
              "impact": "serious",
              "message": "Element has sufficient color contrast of 7.91"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<div class=\"bg-crimson text-cream text-center text-[11px] sm:text-xs tracking-[0.18em] uppercase py-1.5 px-4\">\n    Issue No. 47 \u2014 The Autumn Season Preview &nbsp;\u00b7&nbsp; On stands and screens now\n  </div>",
          "target": [
            ".sm\\:text-xs"
          ]
        }
      ]
    },
    {
      "id": "definition-list",
      "impact": null,
      "tags": [
        "cat.structure",
        "wcag2a",
        "wcag131",
        "EN-301-549",
        "EN-9.1.3.1"
      ],
      "description": "Ensure <dl> elements are structured correctly",
      "help": "<dl> elements must only directly contain properly-ordered <dt> and <dd> groups, <script>, <template> or <div> elements",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/definition-list?application=axeAPI",
      "nodes": [
        {
          "any": [],
          "all": [],
          "none": [
            {
              "id": "structured-dlitems",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "When not empty, element has both <dt> and <dd> elements"
            },
            {
              "id": "only-dlitems",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "dl element only has direct children that are allowed inside; <dt>, <dd>, or <div> elements"
            }
          ],
          "impact": null,
          "html": "<dl class=\"mt-4 text-xs text-ink/60 space-y-1.5\">",
          "target": [
            "dl"
          ]
        }
      ]
    },
    {
      "id": "dlitem",
      "impact": null,
      "tags": [
        "cat.structure",
        "wcag2a",
        "wcag131",
        "EN-301-549",
        "EN-9.1.3.1"
      ],
      "description": "Ensure <dt> and <dd> elements are contained by a <dl>",
      "help": "<dt> and <dd> elements must be contained by a <dl>",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/dlitem?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "dlitem",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "Description list item has a <dl> parent element"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<dt class=\"font-semibold\">Address</dt>",
          "target": [
            ".justify-between.flex:nth-child(1) > dt"
          ]
        }
      ]
    },
    {
      "id": "document-title",
      "impact": null,
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag242",
        "TTv5",
        "TT12.a",
        "EN-301-549",
        "EN-9.2.4.2",
        "ACT"
      ],
      "description": "Ensure each HTML document contains a non-empty <title> element",
      "help": "Documents must have <title> element to aid in navigation",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/document-title?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "doc-has-title",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "Document has a non-empty <title> element"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<html lang=\"en\">",
          "target": [
            "html"
          ]
        }
      ]
    },
    {
      "id": "duplicate-id-aria",
      "impact": null,
      "tags": [
        "cat.parsing",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure every id attribute value used in ARIA and in labels is unique",
      "help": "IDs used in ARIA and labels must be unique",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/duplicate-id-aria?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "duplicate-id-aria",
              "data": "mobileMenu",
              "relatedNodes": [],
              "impact": "critical",
              "message": "Document has no elements referenced with ARIA or labels that share the same id attribute"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<div id=\"mobileMenu\" class=\"lg:hidden hidden border-t border-white/10 bg-ink\">",
          "target": [
            "#mobileMenu"
          ]
        }
      ]
    },
    {
      "id": "form-field-multiple-labels",
      "impact": null,
      "tags": [
        "cat.forms",
        "wcag2a",
        "wcag332",
        "TTv5",
        "TT5.c",
        "EN-301-549",
        "EN-9.3.3.2"
      ],
      "description": "Ensure form field does not have multiple label elements",
      "help": "Form field must not have multiple label elements",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/form-field-multiple-labels?application=axeAPI",
      "nodes": [
        {
          "any": [],
          "all": [],
          "none": [
            {
              "id": "multiple-label",
              "data": null,
              "relatedNodes": [
                {
                  "html": "<label for=\"newsletterEmail\" class=\"sr-only\">Email address</label>",
                  "target": [
                    "label[for=\"newsletterEmail\"]"
                  ]
                }
              ],
              "impact": "moderate",
              "message": "Form field does not have multiple label elements"
            }
          ],
          "impact": null,
          "html": "<input id=\"newsletterEmail\" type=\"email\" required=\"\" placeholder=\"you@example.com\" class=\"w-full px-4 py-3 rounded-full text-ink text-sm focus:outline-none focus:ring-2 focus:ring-gold\">",
          "target": [
            "#newsletterEmail"
          ]
        }
      ]
    },
    {
      "id": "html-has-lang",
      "impact": null,
      "tags": [
        "cat.language",
        "wcag2a",
        "wcag311",
        "TTv5",
        "TT11.a",
        "EN-301-549",
        "EN-9.3.1.1",
        "ACT"
      ],
      "description": "Ensure every HTML document has a lang attribute",
      "help": "<html> element must have a lang attribute",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/html-has-lang?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "has-lang",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "The <html> element has a lang attribute"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<html lang=\"en\">",
          "target": [
            "html"
          ]
        }
      ]
    },
    {
      "id": "html-lang-valid",
      "impact": null,
      "tags": [
        "cat.language",
        "wcag2a",
        "wcag311",
        "TTv5",
        "TT11.a",
        "EN-301-549",
        "EN-9.3.1.1",
        "ACT"
      ],
      "description": "Ensure the lang attribute of the <html> element has a valid value",
      "help": "<html> element must have a valid value for the lang attribute",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/html-lang-valid?application=axeAPI",
      "nodes": [
        {
          "any": [],
          "all": [],
          "none": [
            {
              "id": "valid-lang",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "Value of lang attribute is included in the list of valid languages"
            }
          ],
          "impact": null,
          "html": "<html lang=\"en\">",
          "target": [
            "html"
          ]
        }
      ]
    },
    {
      "id": "image-alt",
      "impact": null,
      "tags": [
        "cat.text-alternatives",
        "wcag2a",
        "wcag111",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT7.a",
        "TT7.b",
        "EN-301-549",
        "EN-9.1.1.1",
        "ACT"
      ],
      "description": "Ensure <img> elements have alternative text or a role of none or presentation",
      "help": "Images must have alternative text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/image-alt?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "has-alt",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element has an alt attribute"
            }
          ],
          "all": [],
          "none": [
            {
              "id": "alt-space-value",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element has a valid alt attribute value"
            }
          ],
          "impact": null,
          "html": "<img src=\"https://placehold.co/96x96/16130f/c9a227?text=M&amp;font=playfair-display\" alt=\"The Marquee logo\" class=\"w-11 h-11 rounded-md ring-1 ring-gold/40 group-hover:ring-gold transition\">",
          "target": [
            ".group-hover\\:ring-gold"
          ]
        }
      ]
    },
    {
      "id": "label",
      "impact": null,
      "tags": [
        "cat.forms",
        "wcag2a",
        "wcag412",
        "section508",
        "section508.22.n",
        "TTv5",
        "TT5.c",
        "EN-301-549",
        "EN-9.4.1.2",
        "ACT"
      ],
      "description": "Ensure every form element has a label",
      "help": "Form elements must have labels",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/label?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "explicit-label",
              "data": null,
              "relatedNodes": [
                {
                  "html": "<label for=\"newsletterEmail\" class=\"sr-only\">Email address</label>",
                  "target": [
                    "label[for=\"newsletterEmail\"]"
                  ]
                }
              ],
              "impact": "critical",
              "message": "Element has an explicit <label>"
            },
            {
              "id": "non-empty-placeholder",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Element has a placeholder attribute"
            }
          ],
          "all": [],
          "none": [
            {
              "id": "hidden-explicit-label",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Form element has a visible explicit <label>"
            }
          ],
          "impact": null,
          "html": "<input id=\"newsletterEmail\" type=\"email\" required=\"\" placeholder=\"you@example.com\" class=\"w-full px-4 py-3 rounded-full text-ink text-sm focus:outline-none focus:ring-2 focus:ring-gold\">",
          "target": [
            "#newsletterEmail"
          ]
        }
      ]
    },
    {
      "id": "link-name",
      "impact": null,
      "tags": [
        "cat.name-role-value",
        "wcag2a",
        "wcag244",
        "wcag412",
        "section508",
        "section508.22.a",
        "TTv5",
        "TT6.a",
        "EN-301-549",
        "EN-9.2.4.4",
        "EN-9.4.1.2",
        "ACT"
      ],
      "description": "Ensure links have discernible text",
      "help": "Links must have discernible text",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/link-name?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "has-visible-text",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "Element has text that is visible to screen readers"
            }
          ],
          "all": [],
          "none": [
            {
              "id": "focusable-no-name",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "Element is not in tab order or has accessible text"
            }
          ],
          "impact": null,
          "html": "<a href=\"#main\" class=\"sr-only focus:not-sr-only focus:absolute focus:top-2 focus:left-2 focus:z-[100] focus:bg-gold focus:text-ink focus:px-4 focus:py-2 focus:rounded\">Skip to main content</a>",
          "target": [
            ".focus\\:not-sr-only"
          ]
        }
      ]
    },
    {
      "id": "list",
      "impact": null,
      "tags": [
        "cat.structure",
        "wcag2a",
        "wcag131",
        "EN-301-549",
        "EN-9.1.3.1"
      ],
      "description": "Ensure that lists are structured correctly",
      "help": "<ul> and <ol> must only directly contain <li>, <script> or <template> elements",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/list?application=axeAPI",
      "nodes": [
        {
          "any": [],
          "all": [],
          "none": [
            {
              "id": "only-listitems",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "List element only has direct children that are allowed inside <li> elements"
            }
          ],
          "impact": null,
          "html": "<ol class=\"mt-6 space-y-5\">",
          "target": [
            "ol"
          ]
        }
      ]
    },
    {
      "id": "listitem",
      "impact": null,
      "tags": [
        "cat.structure",
        "wcag2a",
        "wcag131",
        "EN-301-549",
        "EN-9.1.3.1"
      ],
      "description": "Ensure <li> elements are used semantically",
      "help": "<li> elements must be contained in a <ul> or <ol>",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/listitem?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "listitem",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "List item has a <ul>, <ol> or role=\"list\" parent element"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<li class=\"flex gap-4 items-center group\">",
          "target": [
            "ol > .group:nth-child(1)"
          ]
        }
      ]
    },
    {
      "id": "meta-viewport",
      "impact": null,
      "tags": [
        "cat.sensory-and-visual-cues",
        "wcag2aa",
        "wcag144",
        "EN-301-549",
        "EN-9.1.4.4",
        "ACT"
      ],
      "description": "Ensure <meta name=\"viewport\"> does not disable text scaling and zooming",
      "help": "Zooming and scaling must not be disabled",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/meta-viewport?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "meta-viewport",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "<meta> tag does not disable zooming on mobile devices"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">",
          "target": [
            "meta[name=\"viewport\"]"
          ]
        }
      ]
    },
    {
      "id": "nested-interactive",
      "impact": null,
      "tags": [
        "cat.keyboard",
        "wcag2a",
        "wcag412",
        "TTv5",
        "TT6.a",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure interactive controls are not nested as they are not always announced by screen readers or can cause focus problems for assistive technologies",
      "help": "Interactive controls must not be nested",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/nested-interactive?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "no-focusable-content",
              "data": null,
              "relatedNodes": [],
              "impact": "serious",
              "message": "Element does not have focusable descendants"
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<img src=\"https://placehold.co/96x96/16130f/c9a227?text=M&amp;font=playfair-display\" alt=\"The Marquee logo\" class=\"w-11 h-11 rounded-md ring-1 ring-gold/40 group-hover:ring-gold transition\">",
          "target": [
            ".group-hover\\:ring-gold"
          ]
        }
      ]
    },
    {
      "id": "select-name",
      "impact": null,
      "tags": [
        "cat.forms",
        "wcag2a",
        "wcag412",
        "section508",
        "section508.22.n",
        "TTv5",
        "TT5.c",
        "EN-301-549",
        "EN-9.4.1.2",
        "ACT"
      ],
      "description": "Ensure select element has an accessible name",
      "help": "Select element must have an accessible name",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/select-name?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "explicit-label",
              "data": null,
              "relatedNodes": [
                {
                  "html": "<label for=\"cfTopic\" class=\"text-xs font-semibold uppercase tracking-widest text-cream/60\">Topic *</label>",
                  "target": [
                    "label[for=\"cfTopic\"]"
                  ]
                }
              ],
              "impact": "critical",
              "message": "Element has an explicit <label>"
            }
          ],
          "all": [],
          "none": [
            {
              "id": "hidden-explicit-label",
              "data": null,
              "relatedNodes": [],
              "impact": "critical",
              "message": "Form element has a visible explicit <label>"
            }
          ],
          "impact": null,
          "html": "<select id=\"cfTopic\" required=\"\" class=\"mt-2 w-full bg-white/5 ring-1 ring-white/15 rounded-lg px-4 py-3 text-sm text-cream focus:outline-none focus:ring-gold [&amp;&gt;option]:text-ink\">",
          "target": [
            "#cfTopic"
          ]
        }
      ]
    },
    {
      "id": "target-size",
      "impact": null,
      "tags": [
        "cat.sensory-and-visual-cues",
        "wcag22aa",
        "wcag258"
      ],
      "description": "Ensure touch targets have sufficient size and space",
      "help": "All touch targets must be 24px large, or leave sufficient space",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/target-size?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "target-offset",
              "data": {
                "closestOffset": 24,
                "minOffset": 24
              },
              "relatedNodes": [],
              "impact": "serious",
              "message": "Target has sufficient space from its closest neighbors. Safe clickable space has a diameter of 24px which is at least 24px."
            }
          ],
          "all": [],
          "none": [],
          "impact": null,
          "html": "<a href=\"#main\" class=\"sr-only focus:not-sr-only focus:absolute focus:top-2 focus:left-2 focus:z-[100] focus:bg-gold focus:text-ink focus:px-4 focus:py-2 focus:rounded\">Skip to main content</a>",
          "target": [
            ".focus\\:not-sr-only"
          ]
        }
      ]
    }
  ],
  "incomplete": [
    {
      "id": "aria-prohibited-attr",
      "impact": "serious",
      "tags": [
        "cat.aria",
        "wcag2a",
        "wcag412",
        "EN-301-549",
        "EN-9.4.1.2"
      ],
      "description": "Ensure ARIA attributes are not prohibited for an element's role",
      "help": "Elements must only use permitted ARIA attributes",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-prohibited-attr?application=axeAPI",
      "nodes": [
        {
          "any": [],
          "all": [],
          "none": [
            {
              "id": "aria-prohibited-attr",
              "data": {
                "role": null,
                "nodeName": "div",
                "messageKey": "noRoleSingular",
                "prohibited": [
                  "aria-label"
                ]
              },
              "relatedNodes": [],
              "impact": "serious",
              "message": "aria-label attribute is not well supported on a div with no valid role attribute."
            }
          ],
          "impact": "serious",
          "html": "<div class=\"stars\" data-rating=\"4.5\" aria-label=\"Rated 4.5 out of 5 stars\">",
          "target": [
            "div[data-rating=\"4.5\"]"
          ],
          "failureSummary": "Fix all of the following:\n  aria-label attribute is not well supported on a div with no valid role attribute."
        }
      ]
    },
    {
      "id": "color-contrast",
      "impact": "serious",
      "tags": [
        "cat.color",
        "wcag2aa",
        "wcag143",
        "TTv5",
        "TT13.c",
        "EN-301-549",
        "EN-9.1.4.3",
        "ACT"
      ],
      "description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
      "help": "Elements must meet minimum color contrast ratio thresholds",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/color-contrast?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": null,
                "bgColor": null,
                "contrastRatio": 0,
                "fontSize": "9.0pt (12px)",
                "fontWeight": "normal",
                "messageKey": "bgOverlap",
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [],
              "impact": "serious",
              "message": "Element's background color could not be determined because it is overlapped by another element"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<p class=\"kicker text-gold text-xs font-semibold uppercase mb-6\">Cover Story \u00b7 Music</p>",
          "target": [
            ".mb-6"
          ],
          "failureSummary": "Fix any of the following:\n  Element's background color could not be determined because it is overlapped by another element"
        }
      ]
    }
  ],
  "violations": [
    {
      "id": "color-contrast",
      "impact": "serious",
      "tags": [
        "cat.color",
        "wcag2aa",
        "wcag143",
        "TTv5",
        "TT13.c",
        "EN-301-549",
        "EN-9.1.4.3",
        "ACT"
      ],
      "description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
      "help": "Elements must meet minimum color contrast ratio thresholds",
      "helpUrl": "https://dequeuniversity.com/rules/axe/4.10/color-contrast?application=axeAPI",
      "nodes": [
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#706c66",
                "bgColor": "#16130f",
                "contrastRatio": 3.54,
                "fontSize": "9.0pt (12px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<section id=\"events\" class=\"bg-ink text-cream py-20 lg:py-24 scroll-mt-20\">",
                  "target": [
                    "#events"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.54 (foreground color: #706c66, background color: #16130f, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<p id=\"eventCount\" class=\"mt-6 text-center text-xs uppercase tracking-widest text-cream/40\">Showing 6 of 6 events</p>",
          "target": [
            "#eventCount"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.54 (foreground color: #706c66, background color: #16130f, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#706c66",
                "bgColor": "#16130f",
                "contrastRatio": 3.54,
                "fontSize": "9.0pt (12px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<footer class=\"bg-ink text-cream border-t border-white/10\">",
                  "target": [
                    "footer"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.54 (foreground color: #706c66, background color: #16130f, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<p class=\"text-cream/40 text-xs\">Newsroom hours: Mon\u2013Fri, 9 AM\u20136 PM ET</p>",
          "target": [
            "address > .text-cream\\/40.text-xs"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.54 (foreground color: #706c66, background color: #16130f, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#706c66",
                "bgColor": "#16130f",
                "contrastRatio": 3.54,
                "fontSize": "9.0pt (12px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<footer class=\"bg-ink text-cream border-t border-white/10\">",
                  "target": [
                    "footer"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.54 (foreground color: #706c66, background color: #16130f, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<p>\u00a9 <span id=\"year\">2026</span> The Marquee Media Group. All rights reserved. Published independently in Portmerion, NY.</p>",
          "target": [
            ".sm\\:flex-row > p"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.54 (foreground color: #706c66, background color: #16130f, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#706c66",
                "bgColor": "#16130f",
                "contrastRatio": 3.54,
                "fontSize": "9.0pt (12px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<footer class=\"bg-ink text-cream border-t border-white/10\">",
                  "target": [
                    "footer"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.54 (foreground color: #706c66, background color: #16130f, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span id=\"year\">2026</span>",
          "target": [
            "#year"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.54 (foreground color: #706c66, background color: #16130f, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#706c66",
                "bgColor": "#16130f",
                "contrastRatio": 3.54,
                "fontSize": "9.0pt (12px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<footer class=\"bg-ink text-cream border-t border-white/10\">",
                  "target": [
                    "footer"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.54 (foreground color: #706c66, background color: #16130f, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<a href=\"#\" class=\"hover:text-gold transition-colors\">Privacy Policy</a>",
          "target": [
            ".gap-x-6 > .hover\\:text-gold.transition-colors[href=\"#\"]:nth-child(1)"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.54 (foreground color: #706c66, background color: #16130f, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#706c66",
                "bgColor": "#16130f",
                "contrastRatio": 3.54,
                "fontSize": "9.0pt (12px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<footer class=\"bg-ink text-cream border-t border-white/10\">",
                  "target": [
                    "footer"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.54 (foreground color: #706c66, background color: #16130f, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<a href=\"#\" class=\"hover:text-gold transition-colors\">Terms of Service</a>",
          "target": [
            ".hover\\:text-gold.transition-colors[href=\"#\"]:nth-child(2)"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.54 (foreground color: #706c66, background color: #16130f, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#706c66",
                "bgColor": "#16130f",
                "contrastRatio": 3.54,
                "fontSize": "9.0pt (12px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<footer class=\"bg-ink text-cream border-t border-white/10\">",
                  "target": [
                    "footer"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.54 (foreground color: #706c66, background color: #16130f, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<a href=\"#\" class=\"hover:text-gold transition-colors\">Cookie Policy</a>",
          "target": [
            ".hover\\:text-gold.transition-colors[href=\"#\"]:nth-child(3)"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.54 (foreground color: #706c66, background color: #16130f, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#706c66",
                "bgColor": "#16130f",
                "contrastRatio": 3.54,
                "fontSize": "9.0pt (12px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<footer class=\"bg-ink text-cream border-t border-white/10\">",
                  "target": [
                    "footer"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.54 (foreground color: #706c66, background color: #16130f, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<a href=\"#\" class=\"hover:text-gold transition-colors\">Accessibility</a>",
          "target": [
            ".hover\\:text-gold.transition-colors[href=\"#\"]:nth-child(4)"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.54 (foreground color: #706c66, background color: #16130f, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#8b8987",
                "bgColor": "#ffffff",
                "contrastRatio": 3.48,
                "fontSize": "9.0pt (12px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<article class=\"review-card reveal bg-white rounded-2xl overflow-hidden shadow-card hover:shadow-editorial transition-shadow group visible\">",
                  "target": [
                    ".review-card.hover\\:shadow-editorial.transition-shadow:nth-child(1)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.48 (foreground color: #8b8987, background color: #ffffff, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"ml-2 text-xs font-semibold text-ink/50\">4.5</span>",
          "target": [
            "div[data-rating=\"4.5\"] > .gap-0\\.5.items-center.flex > .ml-2.text-ink\\/50.text-xs"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.48 (foreground color: #8b8987, background color: #ffffff, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#a2a19f",
                "bgColor": "#ffffff",
                "contrastRatio": 2.58,
                "fontSize": "9.0pt (12px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<article class=\"review-card reveal bg-white rounded-2xl overflow-hidden shadow-card hover:shadow-editorial transition-shadow group visible\">",
                  "target": [
                    ".review-card.hover\\:shadow-editorial.transition-shadow:nth-child(1)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 2.58 (foreground color: #a2a19f, background color: #ffffff, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"text-xs text-ink/40\">Rivoli Cinema \u00b7 Restored Cut</span>",
          "target": [
            ".review-card.hover\\:shadow-editorial.transition-shadow:nth-child(1) > .p-6 > .justify-between.items-center.flex > .text-ink\\/40.text-xs"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 2.58 (foreground color: #a2a19f, background color: #ffffff, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#a2a19f",
                "bgColor": "#ffffff",
                "contrastRatio": 2.58,
                "fontSize": "9.0pt (12px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<article class=\"review-card reveal bg-white rounded-2xl overflow-hidden shadow-card hover:shadow-editorial transition-shadow group visible\">",
                  "target": [
                    ".review-card.hover\\:shadow-editorial.transition-shadow:nth-child(1)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 2.58 (foreground color: #a2a19f, background color: #ffffff, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<p class=\"mt-4 text-xs font-semibold uppercase tracking-widest text-ink/40\">Review by Helen Marsh</p>",
          "target": [
            ".review-card.hover\\:shadow-editorial.transition-shadow:nth-child(1) > .p-6 > .text-ink\\/40.tracking-widest.mt-4"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 2.58 (foreground color: #a2a19f, background color: #ffffff, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#8b8987",
                "bgColor": "#ffffff",
                "contrastRatio": 3.48,
                "fontSize": "9.0pt (12px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<article class=\"review-card reveal bg-white rounded-2xl overflow-hidden shadow-card hover:shadow-editorial transition-shadow group visible\" style=\"transition-delay:100ms\">",
                  "target": [
                    ".review-card.hover\\:shadow-editorial.transition-shadow:nth-child(2)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.48 (foreground color: #8b8987, background color: #ffffff, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"ml-2 text-xs font-semibold text-ink/50\">5.0</span>",
          "target": [
            "div[data-rating=\"5\"] > .gap-0\\.5.items-center.flex > .ml-2.text-ink\\/50.text-xs"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.48 (foreground color: #8b8987, background color: #ffffff, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#a2a19f",
                "bgColor": "#ffffff",
                "contrastRatio": 2.58,
                "fontSize": "9.0pt (12px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<article class=\"review-card reveal bg-white rounded-2xl overflow-hidden shadow-card hover:shadow-editorial transition-shadow group visible\" style=\"transition-delay:100ms\">",
                  "target": [
                    ".review-card.hover\\:shadow-editorial.transition-shadow:nth-child(2)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 2.58 (foreground color: #a2a19f, background color: #ffffff, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"text-xs text-ink/40\">Holloway Theatre</span>",
          "target": [
            ".review-card.hover\\:shadow-editorial.transition-shadow:nth-child(2) > .p-6 > .justify-between.items-center.flex > .text-ink\\/40.text-xs"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 2.58 (foreground color: #a2a19f, background color: #ffffff, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#a2a19f",
                "bgColor": "#ffffff",
                "contrastRatio": 2.58,
                "fontSize": "9.0pt (12px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<article class=\"review-card reveal bg-white rounded-2xl overflow-hidden shadow-card hover:shadow-editorial transition-shadow group visible\" style=\"transition-delay:100ms\">",
                  "target": [
                    ".review-card.hover\\:shadow-editorial.transition-shadow:nth-child(2)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 2.58 (foreground color: #a2a19f, background color: #ffffff, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<p class=\"mt-4 text-xs font-semibold uppercase tracking-widest text-ink/40\">Review by Marcus Bell</p>",
          "target": [
            ".review-card.hover\\:shadow-editorial.transition-shadow:nth-child(2) > .p-6 > .text-ink\\/40.tracking-widest.mt-4"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 2.58 (foreground color: #a2a19f, background color: #ffffff, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6d685f",
                "bgColor": "#efe7d6",
                "contrastRatio": 4.49,
                "fontSize": "9.0pt (12px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"reveal bg-sand rounded-2xl p-6 border border-ink/10 visible\">",
                  "target": [
                    ".border.bg-sand.border-ink\\/10"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.49 (foreground color: #6d685f, background color: #efe7d6, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<dt class=\"font-semibold\">Address</dt>",
          "target": [
            ".justify-between.flex:nth-child(1) > dt"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.49 (foreground color: #6d685f, background color: #efe7d6, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6d685f",
                "bgColor": "#efe7d6",
                "contrastRatio": 4.49,
                "fontSize": "9.0pt (12px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"reveal bg-sand rounded-2xl p-6 border border-ink/10 visible\">",
                  "target": [
                    ".border.bg-sand.border-ink\\/10"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.49 (foreground color: #6d685f, background color: #efe7d6, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<dd>88 Calder Avenue, Theatre District</dd>",
          "target": [
            ".justify-between.flex:nth-child(1) > dd"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.49 (foreground color: #6d685f, background color: #efe7d6, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6d685f",
                "bgColor": "#efe7d6",
                "contrastRatio": 4.49,
                "fontSize": "9.0pt (12px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"reveal bg-sand rounded-2xl p-6 border border-ink/10 visible\">",
                  "target": [
                    ".border.bg-sand.border-ink\\/10"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.49 (foreground color: #6d685f, background color: #efe7d6, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<dt class=\"font-semibold\">Box Office</dt>",
          "target": [
            ".justify-between.flex:nth-child(2) > dt"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.49 (foreground color: #6d685f, background color: #efe7d6, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6d685f",
                "bgColor": "#efe7d6",
                "contrastRatio": 4.49,
                "fontSize": "9.0pt (12px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"reveal bg-sand rounded-2xl p-6 border border-ink/10 visible\">",
                  "target": [
                    ".border.bg-sand.border-ink\\/10"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.49 (foreground color: #6d685f, background color: #efe7d6, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<dd>Tue\u2013Sat, 12\u20136 PM</dd>",
          "target": [
            ".justify-between.flex:nth-child(2) > dd"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.49 (foreground color: #6d685f, background color: #efe7d6, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6d685f",
                "bgColor": "#efe7d6",
                "contrastRatio": 4.49,
                "fontSize": "9.0pt (12px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"reveal bg-sand rounded-2xl p-6 border border-ink/10 visible\">",
                  "target": [
                    ".border.bg-sand.border-ink\\/10"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.49 (foreground color: #6d685f, background color: #efe7d6, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<dt class=\"font-semibold\">Accessibility</dt>",
          "target": [
            ".justify-between.flex:nth-child(3) > dt"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.49 (foreground color: #6d685f, background color: #efe7d6, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6d685f",
                "bgColor": "#efe7d6",
                "contrastRatio": 4.49,
                "fontSize": "9.0pt (12px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div class=\"reveal bg-sand rounded-2xl p-6 border border-ink/10 visible\">",
                  "target": [
                    ".border.bg-sand.border-ink\\/10"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.49 (foreground color: #6d685f, background color: #efe7d6, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<dd>Step-free via Calder St. entrance</dd>",
          "target": [
            ".justify-between.flex:nth-child(3) > dd"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.49 (foreground color: #6d685f, background color: #efe7d6, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#8b8987",
                "bgColor": "#ffffff",
                "contrastRatio": 3.48,
                "fontSize": "9.0pt (12px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<article class=\"review-card reveal bg-white rounded-2xl overflow-hidden shadow-card hover:shadow-editorial transition-shadow group visible\" style=\"transition-delay:150ms\">",
                  "target": [
                    ".review-card.hover\\:shadow-editorial.transition-shadow:nth-child(3)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.48 (foreground color: #8b8987, background color: #ffffff, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"ml-2 text-xs font-semibold text-ink/50\">4.0</span>",
          "target": [
            ".review-card.hover\\:shadow-editorial.transition-shadow:nth-child(3) > .p-6 > .justify-between.items-center.flex > .stars[data-rating=\"4\"][aria-label=\"Rated 4 out of 5 stars\"] > .gap-0\\.5.items-center.flex > .ml-2.text-ink\\/50.text-xs"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.48 (foreground color: #8b8987, background color: #ffffff, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#a2a19f",
                "bgColor": "#ffffff",
                "contrastRatio": 2.58,
                "fontSize": "9.0pt (12px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<article class=\"review-card reveal bg-white rounded-2xl overflow-hidden shadow-card hover:shadow-editorial transition-shadow group visible\" style=\"transition-delay:150ms\">",
                  "target": [
                    ".review-card.hover\\:shadow-editorial.transition-shadow:nth-child(3)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 2.58 (foreground color: #a2a19f, background color: #ffffff, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"text-xs text-ink/40\">Night Census \u00b7 \u201cVireo\u201d</span>",
          "target": [
            ".review-card.hover\\:shadow-editorial.transition-shadow:nth-child(3) > .p-6 > .justify-between.items-center.flex > .text-ink\\/40.text-xs"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 2.58 (foreground color: #a2a19f, background color: #ffffff, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#a2a19f",
                "bgColor": "#ffffff",
                "contrastRatio": 2.58,
                "fontSize": "9.0pt (12px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<article class=\"review-card reveal bg-white rounded-2xl overflow-hidden shadow-card hover:shadow-editorial transition-shadow group visible\" style=\"transition-delay:150ms\">",
                  "target": [
                    ".review-card.hover\\:shadow-editorial.transition-shadow:nth-child(3)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 2.58 (foreground color: #a2a19f, background color: #ffffff, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<p class=\"mt-4 text-xs font-semibold uppercase tracking-widest text-ink/40\">Review by Julian Voss</p>",
          "target": [
            ".review-card.hover\\:shadow-editorial.transition-shadow:nth-child(3) > .p-6 > .text-ink\\/40.tracking-widest.mt-4"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 2.58 (foreground color: #a2a19f, background color: #ffffff, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#8b8987",
                "bgColor": "#ffffff",
                "contrastRatio": 3.48,
                "fontSize": "9.0pt (12px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<article class=\"review-card reveal bg-white rounded-2xl overflow-hidden shadow-card hover:shadow-editorial transition-shadow group visible\" style=\"transition-delay:200ms\">",
                  "target": [
                    ".review-card.hover\\:shadow-editorial.transition-shadow:nth-child(4)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.48 (foreground color: #8b8987, background color: #ffffff, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"ml-2 text-xs font-semibold text-ink/50\">4.0</span>",
          "target": [
            ".review-card.hover\\:shadow-editorial.transition-shadow:nth-child(4) > .p-6 > .justify-between.items-center.flex > .stars[data-rating=\"4\"][aria-label=\"Rated 4 out of 5 stars\"] > .gap-0\\.5.items-center.flex > .ml-2.text-ink\\/50.text-xs"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.48 (foreground color: #8b8987, background color: #ffffff, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#a2a19f",
                "bgColor": "#ffffff",
                "contrastRatio": 2.58,
                "fontSize": "9.0pt (12px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<article class=\"review-card reveal bg-white rounded-2xl overflow-hidden shadow-card hover:shadow-editorial transition-shadow group visible\" style=\"transition-delay:200ms\">",
                  "target": [
                    ".review-card.hover\\:shadow-editorial.transition-shadow:nth-child(4)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 2.58 (foreground color: #a2a19f, background color: #ffffff, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<span class=\"text-xs text-ink/40\">Bellwether Gallery</span>",
          "target": [
            ".review-card.hover\\:shadow-editorial.transition-shadow:nth-child(4) > .p-6 > .justify-between.items-center.flex > .text-ink\\/40.text-xs"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 2.58 (foreground color: #a2a19f, background color: #ffffff, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#a2a19f",
                "bgColor": "#ffffff",
                "contrastRatio": 2.58,
                "fontSize": "9.0pt (12px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<article class=\"review-card reveal bg-white rounded-2xl overflow-hidden shadow-card hover:shadow-editorial transition-shadow group visible\" style=\"transition-delay:200ms\">",
                  "target": [
                    ".review-card.hover\\:shadow-editorial.transition-shadow:nth-child(4)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 2.58 (foreground color: #a2a19f, background color: #ffffff, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<p class=\"mt-4 text-xs font-semibold uppercase tracking-widest text-ink/40\">Review by Simone Adeyemi</p>",
          "target": [
            ".review-card.hover\\:shadow-editorial.transition-shadow:nth-child(4) > .p-6 > .text-ink\\/40.tracking-widest.mt-4"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 2.58 (foreground color: #a2a19f, background color: #ffffff, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#cd9d9e",
                "bgColor": "#8e1e2f",
                "contrastRatio": 3.74,
                "fontSize": "8.3pt (11px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<div id=\"subscribe\" class=\"reveal bg-crimson text-cream rounded-2xl p-7 scroll-mt-32 visible\">",
                  "target": [
                    "#subscribe"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.74 (foreground color: #cd9d9e, background color: #8e1e2f, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<p class=\"mt-3 text-[11px] text-cream/60\">Joined by 28,000 readers. Unsubscribe anytime.</p>",
          "target": [
            ".text-\\[11px\\].text-cream\\/60.mt-3"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.74 (foreground color: #cd9d9e, background color: #8e1e2f, font size: 8.3pt (11px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6d685f",
                "bgColor": "#efe7d6",
                "contrastRatio": 4.49,
                "fontSize": "12.0pt (16px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<section id=\"gallery\" class=\"bg-sand py-20 scroll-mt-20 border-y border-ink/10\">",
                  "target": [
                    "#gallery"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.49 (foreground color: #6d685f, background color: #efe7d6, font size: 12.0pt (16px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<p class=\"mt-3 text-ink/60 max-w-xl\">Rehearsal rooms, opening nights, and the quiet hours before the doors open \u2014 shot by our staff photographers across the season.</p>",
          "target": [
            ".max-w-7xl.sm\\:px-6.lg\\:px-8 > .items-end.flex-wrap.visible > div > .max-w-xl.text-ink\\/60.mt-3"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.49 (foreground color: #6d685f, background color: #efe7d6, font size: 12.0pt (16px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6d685f",
                "bgColor": "#efe7d6",
                "contrastRatio": 4.49,
                "fontSize": "12.0pt (16px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<section id=\"gallery\" class=\"bg-sand py-20 scroll-mt-20 border-y border-ink/10\">",
                  "target": [
                    "#gallery"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.49 (foreground color: #6d685f, background color: #efe7d6, font size: 12.0pt (16px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<p class=\"mt-3 text-ink/60 max-w-xl\">Rehearsal rooms, opening nights, and the quiet hours before the doors open \u2014 shot by our staff photographers across the season.</p>",
          "target": [
            ".max-w-7xl.sm\\:px-6.lg\\:px-8 > .items-end.flex-wrap.justify-between > div > .max-w-xl.text-ink\\/60.mt-3"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.49 (foreground color: #6d685f, background color: #efe7d6, font size: 12.0pt (16px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#8b8987",
                "bgColor": "#ffffff",
                "contrastRatio": 3.48,
                "fontSize": "9.0pt (12px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<figure class=\"reveal bg-white rounded-2xl p-8 shadow-card relative visible\">",
                  "target": [
                    ".md\\:grid-cols-3.mt-12.gap-8 > .p-8:nth-child(1)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.48 (foreground color: #8b8987, background color: #ffffff, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<p class=\"text-xs text-ink/50\">Artistic Director, Holloway Theatre</p>",
          "target": [
            ".p-8:nth-child(1) > figcaption > div > .text-ink\\/50.text-xs"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.48 (foreground color: #8b8987, background color: #ffffff, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#8b8987",
                "bgColor": "#ffffff",
                "contrastRatio": 3.48,
                "fontSize": "9.0pt (12px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<figure class=\"reveal bg-white rounded-2xl p-8 shadow-card relative visible\" style=\"transition-delay:100ms\">",
                  "target": [
                    ".p-8:nth-child(2)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.48 (foreground color: #8b8987, background color: #ffffff, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<p class=\"text-xs text-ink/50\">Chief Curator, Bellwether Gallery</p>",
          "target": [
            ".p-8:nth-child(2) > figcaption > div > .text-ink\\/50.text-xs"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.48 (foreground color: #8b8987, background color: #ffffff, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#8b8987",
                "bgColor": "#ffffff",
                "contrastRatio": 3.48,
                "fontSize": "9.0pt (12px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<figure class=\"reveal bg-white rounded-2xl p-8 shadow-card relative visible\" style=\"transition-delay:200ms\">",
                  "target": [
                    ".p-8:nth-child(3)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 3.48 (foreground color: #8b8987, background color: #ffffff, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<p class=\"text-xs text-ink/50\">Cellist &amp; Subscriber since 2018</p>",
          "target": [
            ".p-8:nth-child(3) > figcaption > div > .text-ink\\/50.text-xs"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 3.48 (foreground color: #8b8987, background color: #ffffff, font size: 9.0pt (12px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6d685f",
                "bgColor": "#efe7d6",
                "contrastRatio": 4.49,
                "fontSize": "12.0pt (16px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<section class=\"bg-sand py-20 lg:py-24 border-y border-ink/10\">",
                  "target": [
                    ".border-y.bg-sand.border-ink\\/10:nth-child(7)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.49 (foreground color: #6d685f, background color: #efe7d6, font size: 12.0pt (16px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<p class=\"mt-4 text-ink/60\">Everything artists, venues, and readers ask us most.</p>",
          "target": [
            ".max-w-3xl > .text-center.visible.reveal > .text-ink\\/60.mt-4"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.49 (foreground color: #6d685f, background color: #efe7d6, font size: 12.0pt (16px), font weight: normal). Expected contrast ratio of 4.5:1"
        },
        {
          "any": [
            {
              "id": "color-contrast",
              "data": {
                "fgColor": "#6d685f",
                "bgColor": "#efe7d6",
                "contrastRatio": 4.49,
                "fontSize": "12.0pt (16px)",
                "fontWeight": "normal",
                "messageKey": null,
                "expectedContrastRatio": "4.5:1",
                "shadowColor": null
              },
              "relatedNodes": [
                {
                  "html": "<section class=\"bg-sand py-20 lg:py-24 border-y border-ink/10\">",
                  "target": [
                    ".border-y.bg-sand.border-ink\\/10:nth-child(7)"
                  ]
                }
              ],
              "impact": "serious",
              "message": "Element has insufficient color contrast of 4.49 (foreground color: #6d685f, background color: #efe7d6, font size: 12.0pt (16px), font weight: normal). Expected contrast ratio of 4.5:1"
            }
          ],
          "all": [],
          "none": [],
          "impact": "serious",
          "html": "<p class=\"mt-4 text-ink/60\">Everything artists, venues, and readers ask us most.</p>",
          "target": [
            ".max-w-3xl > .text-center.reveal.visible > .text-ink\\/60.mt-4"
          ],
          "failureSummary": "Fix any of the following:\n  Element has insufficient color contrast of 4.49 (foreground color: #6d685f, background color: #efe7d6, font size: 12.0pt (16px), font weight: normal). Expected contrast ratio of 4.5:1"
        }
      ]
    }
  ],
  "coverage": {
    "contract": "main-document-vertical-scroll",
    "complete": true,
    "positions": [
      {
        "y": 0,
        "height": 9255
      },
      {
        "y": 576,
        "height": 9255
      },
      {
        "y": 1152,
        "height": 9255
      },
      {
        "y": 1728,
        "height": 9255
      },
      {
        "y": 2304,
        "height": 9255
      },
      {
        "y": 2880,
        "height": 9255
      },
      {
        "y": 3456,
        "height": 9255
      },
      {
        "y": 4032,
        "height": 9255
      },
      {
        "y": 4608,
        "height": 9255
      },
      {
        "y": 5184,
        "height": 9255
      },
      {
        "y": 5760,
        "height": 9255
      },
      {
        "y": 6336,
        "height": 9255
      },
      {
        "y": 6912,
        "height": 9255
      },
      {
        "y": 7488,
        "height": 9255
      },
      {
        "y": 8064,
        "height": 9255
      },
      {
        "y": 8535,
        "height": 9255
      }
    ],
    "scans": 17,
    "max_states": 512,
    "settle_ms": 5000,
    "page_timeout_seconds": 150,
    "layout_stability": "consecutive 100ms size samples within one CSS pixel",
    "animation_settling": "finite animations present when scroll resources are ready finish or are cancelled",
    "interactive_states": "not exercised",
    "horizontal_scroll": "not exercised"
  }
}
System Prompt
You are a lead web developer at a top digital agency, tasked with creating a one-page website for a new client based on the given specifications, delivered as an HTML file. First non-whitespace char '<', last non-whitespace char '>'. Use the following services to generate placeholder images where needed:
- placehold.co (text): https://placehold.co/[{w}x{h}|{size}][/{bg-color}/{text-color}]?text={text}&font=[lato|lora|montserrat|noto sans|open sans|oswald|playfair display|poppins|pt sans|raleway|roboto|source sans|source sans pro]
- picsum.photos (photos): https://picsum.photos/[{w}/{h}|{size}]?[grayscale][&blur={1-10}]
- pravatar.cc (avatars): https://i.pravatar.cc/{size}?u={identifier}
Choose sizes appropriate to layout.
User Prompt
Create a **complete, polished, production-quality** primary web page for a new client in the "Arts and Entertainment" sector.
Your goal is to generate the full HTML code for a page that is not just functional but also visually compelling, content-rich, and feels like a finished product ready for launch.

**Client & Category:**
- Industry: "Arts and Entertainment"
- Description: Music, movies, visual arts, performing arts, and entertainment industry news and resources.

**Your Creative Task:**
1.  **Invent:** Create a unique, professional-sounding site name and a strong tagline fitting the "Arts and Entertainment" category.
2.  **Define Page:** Determine the most effective primary page type (e.g., homepage, service landing page, category portal) to showcase this fictional entity.
3.  **Design:** Develop an opinionated, modern, and professional layout. Make distinct choices about structure and flow.

**Content & Structure Requirements (Deliver a COMPLETE page):**
-   **Overall:** The final page must feel substantial and complete, with realistic amounts of text (multiple paragraphs per section where appropriate, avoid single sentences), well-integrated placeholder images, and logical flow. It should look like a real website a business would proudly use.
-   **HEADER:** Include the invented site name, tagline, a logo placeholder image, and a primary navigation bar. Ensure the navigation has **at least 5-7 clearly defined, relevant links** including: "Artists", "Reviews", "Contact".
-   **MAIN CONTENT:** Structure this area with **at least 3-4 distinct, well-developed sections**.
    -   Address key topics relevant to the "Arts and Entertainment" category. Consider themes similar to: "Cultural Impact", "Artist Spotlights", "Upcoming Shows".
    -   **Content Depth:** Populate each section with **substantial, realistic text** (multiple sentences/paragraphs). Use authentic industry language and terminology like: "collaboration", "repertoire", "commission".
    -   **Visuals:** Integrate relevant placeholder images logically within the content sections.
    -   **Calls to Action:** Include clear and contextually relevant CTAs. Use strong verbs similar to: "Subscribe", "Discover", "View Gallery".
-   **ENGAGEMENT (Recommended):** Strongly consider incorporating **one meaningful interactive element** that would genuinely benefit a user in the "Arts and Entertainment" sector. Ideas similar but not limited to: "venue map".
-   **SIDEBAR (Optional):** If your design includes a sidebar, populate it with **useful, relevant content**. Ideas: "venue spotlights", "critic picks", "editor's choice".
-   **FOOTER:** Include a professional footer with invented contact details, copyright (current year), social media links, and standard links (Privacy, Terms).
-   **MODERN WEB PATTERNS:** Include modern web patterns like testimonial cards, feature grids, or FAQ accordions where appropriate.