    html {scroll-behavior: smooth;}
    .grain:before {
      content: "";
      position: fixed;
      inset: 0;
      /* Remove hero grain completely */
      background: none;
      display: none !important;
      pointer-events: none;
      mix-blend-mode: soft-light;
    }
    /* Subtle page vignette */
    .grain:after {
      content: "";
      position: fixed;
      inset: 0;
      pointer-events: none;
      box-shadow: inset 0 0 120px 40px rgba(0,0,0,.6);
    }
    /* Beveled poster-like frames */
    .poster {
      background: linear-gradient(180deg, rgba(255,255,255,.08), rgba(0,0,0,.25));
      box-shadow: 0 0 0 1px rgba(255,255,255,.06) inset, 0 12px 30px rgba(0,0,0,.45);
    }
    /* Halftone / duotone placeholder */
    .halftone {
      background:
        radial-gradient(circle at 1px 1px, rgba(255,255,255,.08) 1px, transparent 1px) 0 0/6px 6px,
        linear-gradient(135deg, rgba(94,185,206,.18), rgba(227,69,45,.12));
    }
    /* Dithered hero overlay to reduce banding */
    .hero-noise {position:absolute; inset:0; pointer-events:none; opacity:.08; background-image:
      radial-gradient(circle at 0 0, rgba(255,255,255,.04) 0, rgba(255,255,255,0) 50%),
      radial-gradient(circle at 10% 10%, rgba(255,255,255,.03) 0, rgba(255,255,255,0) 50%),
      radial-gradient(circle at 20% 20%, rgba(0,0,0,.03) 0, rgba(0,0,0,0) 50%);
      background-size: 3px 3px, 4px 4px, 5px 5px;
      display:none; /* disable any residual hero noise */
    }
    /* Premium motion + lighting */
    .hero-rel {position: relative; overflow: hidden;}
    /* Vintage cinema screen hero */
    .cinema-hero{position:relative; background:#0b0b0b; overflow:hidden}
    .cinema-screen{position:absolute; inset:0; z-index:0; background-image:
      url('assets/cinema-screen.webp'),
      radial-gradient(120% 90% at 50% 42%, rgba(250,248,240,.90) 0%, rgba(242,239,230,.86) 46%, rgba(86,78,70,.40) 76%, rgba(0,0,0,.82) 100%);
      background-size: cover, 100% 100%;
      background-position: center, center;
      background-repeat: no-repeat, no-repeat;
      background-blend-mode: multiply, normal}
    .screen-grain{position:absolute; inset:0; z-index:1; pointer-events:none; opacity:.05; background-image:url('assets/grain.svg'); background-size:420px 420px; mix-blend-mode:multiply}

    .screen-vignette{position:absolute; inset:0; z-index:3; pointer-events:none; box-shadow: inset 0 0 40px 10px rgba(0,0,0,.05); transition: box-shadow 600ms ease, opacity 600ms ease}
    .screen-vignette.soft{box-shadow: inset 0 0 20px 5px rgba(0,0,0,.02)}

    .screen-frame{position:absolute; inset:-14px; z-index:3; pointer-events:none; background:linear-gradient(180deg, rgba(255,255,255,.04), rgba(0,0,0,.3)); box-shadow: 0 0 0 1px rgba(255,255,255,.05) inset, 0 22px 60px rgba(0,0,0,.4)}
    .reel-band{position:absolute; inset:0; z-index:4; pointer-events:none; background:linear-gradient(90deg, transparent 0%, rgba(255,255,255,.04) 48%, rgba(255,255,255,.08) 50%, rgba(255,255,255,.04) 52%, transparent 100%); background-size: 120% 100%; opacity:.22; animation: reel 28s linear infinite}
    @media (prefers-reduced-data: reduce){
      .cinema-screen{
        background-image: radial-gradient(120% 90% at 50% 42%, rgba(250,248,240,.95) 0%, rgba(242,239,230,.92) 46%, rgba(86,78,70,.45) 76%, rgba(0,0,0,.86) 100%);
        background-blend-mode: normal;
      }
    }
    @keyframes reel{0%{background-position:-20% 0} 100%{background-position:120% 0}}
    .dust-layer{position:absolute; inset:0; z-index:5; pointer-events:none; overflow:hidden}
    .screen-boot{position:absolute; inset:0; z-index:6; pointer-events:none; background:radial-gradient(ellipse at 50% 42%, rgba(0,0,0,.5), rgba(0,0,0,.8)); animation: powerOn 1000ms ease-out forwards}
    @keyframes powerOn{0%{opacity:1}10%{opacity:.8}20%{opacity:.65}40%{opacity:.45}60%{opacity:.25}80%{opacity:.15}90%{opacity:.05}100%{opacity:0}}
    @media (prefers-reduced-motion: reduce){ .screen-boot{animation:none; opacity:0} }
    /* Floating dust (specks + motes) */
    .dust{position:absolute; width:2px; height:2px; background:rgba(0,0,0,.5); border-radius:50%; filter: blur(.6px); opacity:0; animation: dustRise linear infinite; mix-blend-mode:multiply}
    .mote{position:absolute; width:3px; height:3px; background:rgba(0,0,0,.25); border-radius:50%; filter: blur(1px); opacity:0; animation: moteDrift linear infinite; mix-blend-mode:multiply}
    @keyframes dustRise{0%{transform:translateY(10%); opacity:0}10%{opacity:.28}60%{opacity:.12}90%{opacity:.22}100%{transform:translateY(-12%); opacity:0}}
    @keyframes moteDrift{0%{transform:translate3d(-2%, 12%, 0); opacity:0}15%{opacity:.22}60%{opacity:.12}100%{transform:translate3d(2%, -16%, 0); opacity:0}}
    @media (prefers-reduced-motion: reduce){ .reel-band{animation:none} .dust, .mote{animation:none; opacity:.08} }
    /* Film gate jitter */
    .film-jitter{animation: jitter 8s steps(1, end) infinite}
    @keyframes jitter{0%,5%{transform:none}6%{transform:translate3d(.2px, .4px,0) scale(1.001)}7%{transform:none}40%{transform:none}41%{transform:translate3d(-.3px, .2px,0)}42%{transform:none}70%{transform:none}71%{transform:translate3d(.25px, -.35px,0)}72%{transform:none}}
    @media (prefers-reduced-motion: reduce){ .film-jitter{animation:none} }
    /* Pause heavy animations when hero not visible */
    #hero.paused .reel-band, #hero.paused .film-jitter, #hero.paused .dust, #hero.paused .mote {
      animation-play-state: paused !important;
    }
    .aurora {position:absolute; inset:-10%; background:
      radial-gradient(60% 80% at 10% 10%, rgba(241,162,14,.08), transparent 60%),
      radial-gradient(60% 80% at 90% 30%, rgba(94,185,206,.07), transparent 60%),
      radial-gradient(80% 60% at 50% 100%, rgba(255,177,193,.06), transparent 60%);
      filter: blur(6px); mix-blend-mode: screen; animation: aurora 18s ease-in-out infinite;}
    @keyframes aurora { 0%,100%{transform:translate3d(0,0,0)} 50%{transform:translate3d(0,-2%,0)} }
    .projector {position:absolute; inset:-20% -30% -10% -30%; background:
      conic-gradient(from 200deg at 65% 40%, rgba(241,162,14,.08), transparent 35%),
      conic-gradient(from 200deg at 70% 45%, rgba(65,155,133,.08), transparent 35%);
      transform: rotate(2deg); filter: blur(8px); mix-blend-mode: screen;}
    .marquee-lines {position:absolute; inset:0; background:
      repeating-linear-gradient( to right, rgba(255,255,255,.04), rgba(255,255,255,.04) 2px, transparent 2px, transparent 10px);
      opacity:.07; mask-image: radial-gradient(100% 60% at 70% 50%, #000 40%, transparent 70%);
    }
    .hero-scrim{position:absolute; inset:0; background: linear-gradient(180deg, rgba(0,0,0,.15), rgba(0,0,0,.08)); pointer-events:none;}
    .neon-edge {box-shadow: 0 0 0 1px rgba(241,162,14,.45) inset, 0 0 24px rgba(241,162,14,.25);}
    .neon-edge-mint {box-shadow: 0 0 0 1px rgba(65,155,133,.45) inset, 0 0 24px rgba(65,155,133,.25);}
    .phone-shell{position:relative;border-radius:28px; background:linear-gradient(180deg, #000, #000); box-shadow: 0 0 0 1px rgba(255,255,255,.08) inset, 0 20px 40px rgba(0,0,0,.6);} /* force bezel true black */
    .phone-specular:before{content:"";position:absolute;top:2px;left:2px;right:2px;height:10px;border-radius:16px;background:linear-gradient(180deg,rgba(255,255,255,.14),transparent);} /* slightly toned down */
    .phone-notch{position:absolute;top:0;left:50%;transform:translateX(-50%);width:88px;height:16px;background:#000;border-bottom-left-radius:14px;border-bottom-right-radius:14px;box-shadow:0 1px 0 rgba(255,255,255,.06) inset;}
    .phone-shell:after{content:"";position:absolute;bottom:6px;left:50%;transform:translateX(-50%);width:90px;height:4px;border-radius:9999px;background:linear-gradient(90deg, rgba(255,255,255,.15), rgba(255,255,255,.05));}
    .spot {position:absolute; z-index:7; width:38vw; height:38vw; max-width:520px; max-height:520px; pointer-events:none; background: radial-gradient(circle at center, rgba(241,162,14,.06), transparent 60%); mix-blend-mode: screen; transform: translate(-50%,-50%); opacity:.62}
    /* Mobile slider overrides */
    @media (max-width: 768px) {
      #chef {
        overflow-x: hidden;
        max-width: 100vw;
      }
      #slider {
        overflow-x: auto;
        overflow-y: hidden;
        scroll-snap-type: x mandatory;
        -webkit-overflow-scrolling: touch;
      }
      #slides {
        transform: none !important;
        display: flex;
        flex-direction: row;
        gap: 1rem;
        scroll-snap-align: start;
      }
      #slides li {
        transform: none !important;
        opacity: 1 !important;
        scale: 1 !important;
        width: 85vw !important;
        min-width: 85vw !important;
        flex-shrink: 0;
        scroll-snap-align: center;
      }

      #chefSlider {
        overflow-x: auto;
        overflow-y: hidden;
        scroll-snap-type: x mandatory;
        -webkit-overflow-scrolling: touch;
        max-width: 100vw;
        width: 100%;
        position: relative;
      }
      #chefSlides {
        transform: none !important;
        display: flex;
        flex-direction: row;
        gap: 1rem;
        scroll-snap-align: start;
        width: max-content;
        min-width: 100%;
      }
      #chefSlides li {
        transform: none !important;
        opacity: 1 !important;
        scale: 1 !important;
        width: 85vw !important;
        min-width: 85vw !important;
        max-width: 85vw !important;
        flex-shrink: 0;
        scroll-snap-align: center;
        padding: 1rem !important;
      }

      /* Reviews section mobile fixes */
      #reviewsBelt {
        width: max-content !important;
      }
      #reviewsSetA, #reviewsSetB {
        width: max-content !important;
        gap: 1rem !important;
        padding: 0 1rem !important;
      }
      #reviewsSetA figure, #reviewsSetB figure {
        width: 200px !important;
        min-width: 200px !important;
        max-width: 200px !important;
        flex-shrink: 0 !important;
        margin: 0 !important;
      }
    }
    .spot.projector-spot{background:radial-gradient(circle at center, rgba(255,255,255,.38) 0%, rgba(255,255,255,.2) 20%, rgba(255,245,220,.10) 38%, transparent 64%); opacity:.72}
    @media (max-width: 768px){ .spot{display:none} }
    .halftone-anim{position:absolute; inset:0; background-image: radial-gradient(circle, rgba(255,255,255,.08) 1px, transparent 1px); background-size: 8px 8px; opacity:.35; animation: dots 22s linear infinite;}
    @keyframes dots { 0%{transform:scale(1)} 50%{transform:scale(1.04)} 100%{transform:scale(1)} }
    /* Theater marquee (inspired by web app) */
    .theater-section{position:relative;padding:1.25rem 0}
    .theater-section:before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at top, rgba(255,7,58,.60), rgba(255,7,58,.40) 20%, rgba(255,7,58,.20) 40%, rgba(255,7,58,.10) 60%, transparent 80%);opacity:0;animation: marqueeFade 1s ease-in-out .4s forwards}
    @keyframes marqueeFade{0%{opacity:0}50%{opacity:.6}100%{opacity:1}}
    #reviews-marquee{color:#000;width:95%;margin:20px auto;position:relative;font-size:2.25rem;font-family:'Anton', Impact, sans-serif;text-align:center;text-transform:uppercase;background-size:100% 1em;background-image:linear-gradient(to right, rgba(0,0,0,.4), transparent, rgba(0,0,0,.4)),linear-gradient(to right, transparent, transparent 12.5%, #6b6b6b 12.5%, transparent 12.7%, transparent 25%, #6b6b6b 25%, transparent 25.2%, transparent 37.5%, #6b6b6b 37.5%, transparent 37.7%, transparent 50%, #6b6b6b 50%, transparent 50.2%, transparent 62.5%, #6b6b6b 62.5%, transparent 62.7%, transparent 75%, #6b6b6b 75%, transparent 75.2%, transparent 87.5%, #6b6b6b 87.5%, transparent 87.6%),linear-gradient(to bottom,#fff,#fff 25%, #7a7a7a 25%, #fff 27%, #fff 75%, #7a7a7a 75%, #fff 77%);border-radius:14px;overflow:visible}
    #reviews-marquee .theater-marquee-message{width:100%;display:table;padding:.75rem 0}
    #reviews-marquee .theater-marquee-message>span{display:table-cell;vertical-align:middle}
    .theater-neon-bar{left:0;right:0;height:20px;position:absolute;background-color:#111;z-index:2;pointer-events:none}
    .theater-neon-bar.top{top:-20px}
    .theater-neon-bar.bottom{bottom:-20px}
    .theater-neon-bar:after,.theater-neon-bar:before{height:5px;content:" ";display:block;position:absolute;box-shadow:0 0 6px 0 rgba(0,0,0,.9);border-radius:5px;background-color:#660014}
    .theater-neon-bar.on:after,.theater-neon-bar.on:before{animation:flicker 3s ease-in-out forwards}
    @media (prefers-reduced-motion: reduce){ .theater-neon-bar.on:after,.theater-neon-bar.on:before{animation:none;background:#ff073a;box-shadow:0 0 8px 0 #ff073a} }
    @keyframes flicker{0%,34%,36%,38%,40%{background:#660014;box-shadow:0 0 6px 0 rgba(0,0,0,.9)}35%,37%,39%,41%,100%{background:#ff073a;box-shadow:0 0 8px 0 #ff073a}}
    .theater-neon-bar:after{top:2px;left:-5px;right:-5px;bottom:5px}
    .theater-neon-bar:before{top:10px;left:-5px;right:-5px;bottom:5px}
    /* Footer social icons on dark background */
    .footer-social img{filter: brightness(0) invert(1)}
    /* Who we are: flat dark background (no glow) */
    .who-backlight{display:none}

    /* Hide scrollbar for horizontal scroll */
    .scrollbar-hide {
      -ms-overflow-style: none;
      scrollbar-width: none;
    }
    .scrollbar-hide::-webkit-scrollbar {
      display: none;
    }
    /* Review posters infinite marquee */
    .marquee { display:flex; gap:2rem; will-change: transform; }
    @keyframes posterLoop { from { transform: translateX(0); } to { transform: translateX(-50%); } }
    @media (prefers-reduced-motion: reduce) { .marquee { animation: none; } }
    @media (prefers-reduced-motion:no-preference) {
      .ambient {
        background-size: 200% 200%;
        animation: leak 12s ease-in-out infinite;
      }
      @keyframes leak {
        0%,100% { background-position: 0% 50%; }
        50% { background-position: 100% 50%; }
      }
      .parallax:hover img { transform: perspective(800px) rotateY(-2.5deg) translateZ(0);       }
    }

    /* ---- Phase 3: Features poster-card grid ---- */
    /* Background: same Coffee-dot halftone on Licorice used for #glance, for a consistent editorial block */
    #features { background: #111 url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='6' height='6'><circle cx='1' cy='1' r='.6' fill='%23F3E7BF' opacity='.04'/></svg>") repeat; }
    #features .features-eyebrow { color: #F3E7BF; opacity: .8; }
    #features .section-title { color: #FCF9EF; }

    /* Divider bar under the section title */
    .features-divider { width: 56px; height: 3px; background: #F3E7BF; opacity: .85; border-radius: 2px; margin-top: 1rem; }
    .features-lede { color: rgba(252,249,239,.72); max-width: 34rem; font-size: 1.02rem; line-height: 1.55; }

    /* Poster-style feature card — uniform frame, consistent proportions */
    .feature-card {
      position: relative;
      display: flex;
      flex-direction: column;
      padding: 1.5rem 1.5rem 1.75rem;
      border-radius: 14px;
      background: linear-gradient(180deg, rgba(252,249,239,.035), rgba(252,249,239,.01));
      border: 1px solid rgba(243,231,191,.18);
      height: 100%;
      transition: transform 220ms ease, border-color 220ms ease, background-color 220ms ease;
      overflow: hidden;
    }
    .feature-card:hover {
      transform: translateY(-3px);
      border-color: rgba(243,231,191,.42);
      background: linear-gradient(180deg, rgba(252,249,239,.06), rgba(252,249,239,.015));
    }
    /* Coffee tab, matches .glance-card language */
    .feature-card:before {
      content: "";
      position: absolute;
      top: 0; left: 1.5rem;
      width: 36px; height: 3px;
      background: #F3E7BF;
      border-radius: 0 0 2px 2px;
      opacity: .75;
    }

    /* Screenshot chip: phone-shaped poster image, uniform aspect so every card aligns */
    .feature-card .shot {
      position: relative;
      width: 100%;
      aspect-ratio: 4 / 3;
      display: flex;
      align-items: flex-end;
      justify-content: center;
      margin-bottom: 1.25rem;
      background: radial-gradient(ellipse at 50% 60%, rgba(243,231,191,.12), rgba(243,231,191,0) 65%);
      border-radius: 10px;
      overflow: hidden;
    }
    .feature-card .shot:after {
      /* subtle coffee-dot halftone wash to tie screenshots into the vintage look */
      content: "";
      position: absolute; inset: 0;
      background-image: radial-gradient(circle, rgba(243,231,191,.06) 1px, transparent 1.2px);
      background-size: 6px 6px;
      pointer-events: none;
    }
    .feature-card .shot img {
      position: relative;
      display: block;
      width: auto;
      height: 92%;
      max-width: 78%;
      object-fit: contain;
      filter: drop-shadow(0 12px 24px rgba(0,0,0,.45));
    }

    /* Ticket-stub numeral in the top-right of every card */
    .feature-card .stub {
      position: absolute;
      top: 1.1rem; right: 1.25rem;
      font-family: 'Anton', Impact, sans-serif;
      font-size: .82rem;
      letter-spacing: .22em;
      color: rgba(243,231,191,.55);
    }

    .feature-card h3 {
      font-family: 'Anton', Impact, sans-serif;
      font-size: 1.4rem;
      line-height: 1.02;
      letter-spacing: .02em;
      color: #FCF9EF;
      margin-bottom: .55rem;
    }
    .feature-card p {
      font-family: 'Montserrat', ui-sans-serif, system-ui;
      color: rgba(252,249,239,.74);
      font-size: .92rem;
      line-height: 1.5;
      margin: 0;
    }
    /* Thin divider under the title, matches the poster language */
    .feature-card h3:after {
      content: "";
      display: block;
      width: 28px;
      height: 2px;
      background: #E3452D;
      opacity: .8;
      border-radius: 1px;
      margin-top: .55rem;
      margin-bottom: .75rem;
    }

    /* ---- Phase 1: Header + Hero polish ---- */

    /* Header scroll state: transparent over hero, solid Licorice once scrolled */
    #top { backdrop-filter: saturate(140%) blur(0px); transition: background-color 300ms ease, border-color 300ms ease, backdrop-filter 300ms ease; }
    #top.is-scrolled { background-color: rgba(28,28,28,.92); backdrop-filter: saturate(140%) blur(8px); border-bottom: 1px solid rgba(252,249,239,.08); }
    #top.is-scrolled .nav-divider { opacity: 0; }
    #top:not(.is-scrolled) .nav-divider { opacity: 0; }

    /* Nav link underline (Cherry), replaces popcorn color swap */
    .nav-link { position: relative; color: #FCF9EF; opacity: .85; transition: opacity 200ms ease, color 200ms ease; }
    .nav-link:hover, .nav-link:focus-visible { opacity: 1; color: #FCF9EF; }
    .nav-link:after { content: ""; position: absolute; left: 0; right: 0; bottom: -4px; height: 2px; background: #E3452D; transform: scaleX(0); transform-origin: left center; transition: transform 240ms ease; }
    .nav-link:hover:after, .nav-link:focus-visible:after { transform: scaleX(1); }

    /* Mobile nav panel */
    #mobile-nav { transform: translateY(-8px); opacity: 0; pointer-events: none; transition: opacity 200ms ease, transform 200ms ease; }
    #mobile-nav.open { transform: translateY(0); opacity: 1; pointer-events: auto; }
    .mobile-menu-btn { width: 40px; height: 40px; display: none; align-items: center; justify-content: center; border-radius: 10px; color: #FCF9EF; border: 1px solid rgba(252,249,239,.15); background: rgba(28,28,28,.4); }
    @media (max-width: 767px) { .mobile-menu-btn { display: inline-flex; } }
    .mobile-menu-btn:hover { background: rgba(28,28,28,.7); }
    .mobile-menu-btn:focus-visible { outline: 2px solid #E3452D; outline-offset: 2px; }

    /* Hero primary/secondary CTAs */
    .hero-ctas { display: flex; flex-wrap: wrap; gap: 1rem; align-items: center; justify-content: center; }
    @media (min-width: 768px) { .hero-ctas { justify-content: flex-start; } }
    .hero-cta-secondary { display: inline-flex; align-items: center; gap: .5rem; padding: .75rem 1.25rem; border-radius: 9999px; border: 1.5px solid #1C1C1C; color: #1C1C1C; font-weight: 600; font-size: .875rem; letter-spacing: .02em; transition: background-color 180ms ease, color 180ms ease, transform 180ms ease; }
    .hero-cta-secondary:hover { background: #1C1C1C; color: #FCF9EF; transform: translateY(-1px); }
    .hero-cta-secondary:focus-visible { outline: 2px solid #E3452D; outline-offset: 2px; }
    .hero-cta-secondary svg { width: 14px; height: 14px; transition: transform 200ms ease; }
    .hero-cta-secondary:hover svg { transform: translateY(2px); }

    /* NOW PLAYING marquee strip (below hero) */
    .now-playing { background: #1C1C1C; color: #FCF9EF; border-top: 1px solid rgba(252,249,239,.08); border-bottom: 1px solid rgba(252,249,239,.08); overflow: hidden; position: relative; }
    .now-playing:before, .now-playing:after { content: ""; position: absolute; top: 0; bottom: 0; width: 64px; z-index: 2; pointer-events: none; }
    .now-playing:before { left: 0; background: linear-gradient(90deg, #1C1C1C, rgba(28,28,28,0)); }
    .now-playing:after { right: 0; background: linear-gradient(-90deg, #1C1C1C, rgba(28,28,28,0)); }
    .now-playing-track { display: flex; gap: 2.5rem; padding: .85rem 0; white-space: nowrap; animation: npScroll 38s linear infinite; will-change: transform; }
    .now-playing-track span { font-family: 'Anton', Impact, sans-serif; font-size: 1.15rem; letter-spacing: .35em; text-transform: uppercase; display: inline-flex; align-items: center; gap: 2.5rem; }
    .now-playing-track span:after { content: "\2022"; color: #E3452D; margin-left: 2.5rem; }
    @keyframes npScroll { from { transform: translateX(0); } to { transform: translateX(-50%); } }
    @media (prefers-reduced-motion: reduce) {
      .now-playing-track { animation: none; justify-content: center; flex-wrap: wrap; white-space: normal; }
    }

    /* ---- Phase 2: "At a Glance" + "Who we are" refresh ---- */

    /* Shared editorial kicker eyebrow (Montserrat small-caps) for section headers */
    .section-kicker { display: inline-flex; align-items: center; gap: .6rem; font-family: 'Montserrat', ui-sans-serif, system-ui; font-size: .72rem; font-weight: 600; letter-spacing: .28em; text-transform: uppercase; }
    .section-kicker:before, .section-kicker:after { content: ""; display: inline-block; width: 28px; height: 1px; background: currentColor; opacity: .45; }
    .section-kicker.align-start:after { display: none; }

    /* Editorial section heading helpers */
    .section-title { font-family: 'Anton', Impact, sans-serif; font-size: clamp(2.25rem, 4vw + 1rem, 3.75rem); line-height: .98; letter-spacing: .005em; text-transform: none; }
    .section-title em { font-style: normal; color: #E3452D; }

    /* Halftone duotone image chip (for "Who we are" microphone etc.) */
    .halftone-chip { position: relative; display: inline-block; isolation: isolate; }
    .halftone-chip img { display: block; filter: grayscale(1) contrast(1.05); mix-blend-mode: multiply; width: 100%; height: auto; }
    .halftone-chip:after { content: ""; position: absolute; inset: 0; background-image: radial-gradient(circle, rgba(28,28,28,.55) 1px, transparent 1.2px); background-size: 5px 5px; mix-blend-mode: multiply; pointer-events: none; opacity: .9; }
    .halftone-chip.on-mint:after { background-image: radial-gradient(circle, rgba(28,28,28,.42) 1px, transparent 1.2px); }

    /* "At a Glance" — Almond/Coffee neutral treatment */
    #glance { background: #111 url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='6' height='6'><circle cx='1' cy='1' r='.6' fill='%23F3E7BF' opacity='.04'/></svg>") repeat; }
    #glance .glance-eyebrow { color: #F3E7BF; opacity: .8; }
    #glance .section-title { color: #FCF9EF; }
    #glance .glance-lede { color: rgba(252,249,239,.78); max-width: 42rem; margin-left: auto; margin-right: auto; margin-top: .9rem; font-size: 1.05rem; line-height: 1.55; }
    .glance-divider { display: block; width: 56px; height: 3px; background: #F3E7BF; margin: 1.25rem auto 0; border-radius: 2px; }

    /* Poster-style feature cards with coffee/almond neutral accents */
    .glance-card { position: relative; padding: 1.6rem; border-radius: 14px; background: linear-gradient(180deg, rgba(252,249,239,.035), rgba(252,249,239,.01)); border: 1px solid rgba(243,231,191,.18); transition: transform 220ms ease, border-color 220ms ease, background-color 220ms ease; height: 100%; }
    .glance-card:hover { transform: translateY(-2px); border-color: rgba(243,231,191,.42); background: linear-gradient(180deg, rgba(252,249,239,.06), rgba(252,249,239,.015)); }
    .glance-card:before { content: ""; position: absolute; top: 0; left: 1.5rem; width: 36px; height: 3px; background: #F3E7BF; border-radius: 0 0 2px 2px; opacity: .75; }
    .glance-card .card-icon { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 10px; background: rgba(243,231,191,.09); border: 1px solid rgba(243,231,191,.22); color: #F3E7BF; margin-bottom: 1rem; }
    .glance-card .card-icon img { width: 20px; height: 20px; filter: brightness(0) saturate(100%) invert(91%) sepia(16%) saturate(397%) hue-rotate(9deg) brightness(98%) contrast(92%); }
    .glance-card .card-icon svg { width: 20px; height: 20px; }
    .glance-card h3 { font-family: 'Anton', Impact, sans-serif; font-size: 1.35rem; line-height: 1; letter-spacing: .02em; color: #FCF9EF; margin-bottom: .55rem; }
    .glance-card p { color: rgba(252,249,239,.78); font-size: .95rem; line-height: 1.5; margin-bottom: .85rem; }
    .glance-card ul { list-style: none; padding: 0; margin: 0; border-top: 1px dashed rgba(243,231,191,.18); padding-top: .7rem; }
    .glance-card ul li { position: relative; font-size: .82rem; color: rgba(252,249,239,.62); padding-left: 1rem; line-height: 1.55; }
    .glance-card ul li:before { content: "\2022"; position: absolute; left: 0; top: 0; color: #F3E7BF; opacity: .8; font-size: 1.05rem; line-height: 1.4; }

    /* "Who we are" — Mint anchor */
    #who { background: #419B85; color: #1C1C1C; position: relative; overflow: hidden; }
    #who:before { content: ""; position: absolute; inset: 0; background-image: radial-gradient(circle, rgba(28,28,28,.08) 1px, transparent 1.2px); background-size: 7px 7px; mix-blend-mode: multiply; pointer-events: none; opacity: .6; }
    #who:after { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 1px; background: repeating-linear-gradient(to right, rgba(28,28,28,.25) 0 12px, transparent 12px 20px); opacity: .5; pointer-events: none; }
    .who-kicker { color: #1C1C1C; opacity: .75; }
    .who-kicker:before { background: #1C1C1C; }
    #who .section-title { color: #1C1C1C; }
    #who .section-title em { color: #FCF9EF; background: #1C1C1C; padding: 0 .4rem; border-radius: 2px; }
    .who-lede { font-size: 1.15rem; line-height: 1.55; color: #1C1C1C; max-width: 30rem; }
    .who-meta { display: inline-flex; align-items: center; gap: .5rem; font-family: 'Montserrat', ui-sans-serif, system-ui; font-size: .72rem; font-weight: 700; letter-spacing: .28em; text-transform: uppercase; color: #1C1C1C; opacity: .75; }
    .who-meta .who-dot { width: 6px; height: 6px; border-radius: 50%; background: #E3452D; display: inline-block; }
    .who-mic-wrap { position: relative; padding: 1.25rem; }
    .who-mic-wrap .halftone-chip { max-width: 200px; margin: 0 auto; }
    .who-mic-wrap:before { content: ""; position: absolute; inset: 8% 14%; background: #FCF9EF; border-radius: 50%; opacity: .45; z-index: 0; }
    .who-mic-wrap .halftone-chip { position: relative; z-index: 1; }
    @media (min-width: 768px) { .who-mic-wrap .halftone-chip { max-width: 220px; } }

    /* ---- Phase 4: Chef + Reviews polish ---- */

    /* Chef: editorial treatment matching the phase-2/3 language */
    #chef { position: relative; background: #1C1C1C; }
    #chef:before { content: ""; position: absolute; inset: 0; background-image: radial-gradient(circle, rgba(243,231,191,.04) 1px, transparent 1.2px); background-size: 7px 7px; pointer-events: none; }
    #chef > * { position: relative; }
    #chef .chef-eyebrow { color: #F3E7BF; opacity: .8; }
    #chef .section-title { color: #FCF9EF; }
    .chef-divider { display: block; width: 56px; height: 3px; background: #F3E7BF; margin-top: 1rem; border-radius: 2px; opacity: .85; }
    .chef-lede { color: rgba(252,249,239,.78); max-width: 34rem; font-size: 1.02rem; line-height: 1.55; margin-top: 1rem; }

    /* Two-column "what it does / why it matters" split */
    .chef-split { display: grid; grid-template-columns: 1fr; gap: 1rem; margin-top: 1.75rem; }
    @media (min-width: 640px) { .chef-split { grid-template-columns: 1fr 1fr; gap: 1.25rem; } }
    .chef-block { position: relative; padding: 1.1rem 1.25rem 1.25rem; border-radius: 12px; background: linear-gradient(180deg, rgba(252,249,239,.035), rgba(252,249,239,.01)); border: 1px solid rgba(243,231,191,.18); }
    .chef-block:before { content: ""; position: absolute; top: 0; left: 1.1rem; width: 28px; height: 3px; background: #F3E7BF; border-radius: 0 0 2px 2px; opacity: .75; }
    .chef-block h3 { font-family: 'Anton', Impact, sans-serif; font-size: 1.1rem; line-height: 1; letter-spacing: .02em; color: #FCF9EF; margin-bottom: .4rem; text-transform: uppercase; }
    .chef-block .chef-block-kicker { display: block; font-family: 'Montserrat', ui-sans-serif, system-ui; font-size: .65rem; letter-spacing: .28em; text-transform: uppercase; color: #F3E7BF; opacity: .7; margin-bottom: .35rem; }
    .chef-block p { color: rgba(252,249,239,.78); font-size: .9rem; line-height: 1.55; margin: 0; }

    /* Chef screenshot frame: single uniform poster-style chip */
    .chef-frame { position: relative; border-radius: 16px; padding: 1rem 1rem 1.25rem; background: linear-gradient(180deg, rgba(243,231,191,.08), rgba(243,231,191,.02)); border: 1px solid rgba(243,231,191,.22); overflow: hidden; }
    .chef-frame:before { content: ""; position: absolute; top: 0; left: 1.25rem; width: 48px; height: 3px; background: #E3452D; border-radius: 0 0 2px 2px; opacity: .85; }
    .chef-frame:after { content: ""; position: absolute; inset: 0; background-image: radial-gradient(circle, rgba(243,231,191,.05) 1px, transparent 1.2px); background-size: 6px 6px; pointer-events: none; }
    .chef-frame .chef-frame-meta { position: absolute; top: .9rem; right: 1.1rem; font-family: 'Anton', Impact, sans-serif; font-size: .78rem; letter-spacing: .22em; color: rgba(243,231,191,.6); z-index: 2; }
    .chef-frame #chefSlider { position: relative; z-index: 1; }

    /* ---- Reviews: festival pull-quote strip ---- */
    #reviews { background: #1C1C1C; position: relative; padding-top: 1.25rem; padding-bottom: 2.5rem; overflow: hidden; }
    #reviews:before { content: ""; position: absolute; inset: 0; background-image: radial-gradient(circle, rgba(243,231,191,.04) 1px, transparent 1.2px); background-size: 7px 7px; pointer-events: none; }
    #reviews .reviews-eyebrow { color: #F3E7BF; opacity: .8; }
    #reviews .section-title { color: #FCF9EF; }
    #reviews .section-title em { color: #E3452D; }
    .reviews-divider { display: block; width: 56px; height: 3px; background: #F3E7BF; margin-top: 1rem; border-radius: 2px; opacity: .85; }
    .reviews-lede { color: rgba(252,249,239,.72); max-width: 32rem; font-size: .98rem; line-height: 1.5; margin-top: .75rem; }
    .reviews-header { position: relative; z-index: 1; }
    .reviews-header:after { content: ""; display: block; margin: 1.5rem 0 0; height: 1px; background: repeating-linear-gradient(to right, rgba(243,231,191,.4) 0 12px, transparent 12px 22px); opacity: .55; }

    /* Pull-quote card — vintage film-festival poster */
    .pullquote {
      position: relative;
      width: 320px;
      min-width: 320px;
      max-width: 320px;
      min-height: 260px;
      padding: 1.4rem 1.4rem 1.25rem;
      background: #F3E7BF;
      color: #1C1C1C;
      border: 1px solid rgba(28,28,28,.12);
      border-radius: 4px;
      display: flex; flex-direction: column; justify-content: space-between;
      box-shadow: 0 10px 24px rgba(0,0,0,.25), 0 1px 0 rgba(255,255,255,.45) inset;
      flex-shrink: 0;
    }
    .pullquote:before {
      content: "\201C";
      position: absolute; top: -.25rem; left: .6rem;
      font-family: 'Anton', Impact, sans-serif;
      font-size: 6rem; line-height: 1;
      color: #E3452D; opacity: .88;
      pointer-events: none;
    }
    .pullquote .pq-kicker { font-family: 'Montserrat', ui-sans-serif, system-ui; font-size: .62rem; font-weight: 700; letter-spacing: .3em; text-transform: uppercase; color: rgba(28,28,28,.55); margin-bottom: .35rem; position: relative; z-index: 1; padding-left: 2.6rem; }
    .pullquote .pq-title { font-family: 'Anton', Impact, sans-serif; font-size: 1.7rem; line-height: 1; letter-spacing: .01em; text-transform: uppercase; color: #1C1C1C; margin-top: .15rem; position: relative; z-index: 1; }
    .pullquote .pq-body { font-family: 'Montserrat', ui-sans-serif, system-ui; font-size: .9rem; line-height: 1.5; color: rgba(28,28,28,.78); margin-top: .6rem; flex: 1; }
    .pullquote .pq-rule { display: block; width: 28px; height: 2px; background: #E3452D; margin: .75rem 0 .5rem; border-radius: 1px; opacity: .85; }
    .pullquote .pq-by { font-family: 'Montserrat', ui-sans-serif, system-ui; font-size: .72rem; font-weight: 600; letter-spacing: .22em; text-transform: uppercase; color: rgba(28,28,28,.62); }

    .pullquote.variant-cherry { background: #E3452D; color: #FCF9EF; }
    .pullquote.variant-cherry:before { color: #1C1C1C; opacity: .5; }
    .pullquote.variant-cherry .pq-kicker { color: rgba(252,249,239,.7); }
    .pullquote.variant-cherry .pq-title { color: #FCF9EF; }
    .pullquote.variant-cherry .pq-body { color: rgba(252,249,239,.88); }
    .pullquote.variant-cherry .pq-rule { background: #1C1C1C; }
    .pullquote.variant-cherry .pq-by { color: rgba(252,249,239,.82); }

    .pullquote.variant-mint { background: #419B85; color: #FCF9EF; }
    .pullquote.variant-mint:before { color: #1C1C1C; opacity: .55; }
    .pullquote.variant-mint .pq-kicker { color: rgba(252,249,239,.72); }
    .pullquote.variant-mint .pq-title { color: #FCF9EF; }
    .pullquote.variant-mint .pq-body { color: rgba(252,249,239,.9); }
    .pullquote.variant-mint .pq-rule { background: #1C1C1C; }
    .pullquote.variant-mint .pq-by { color: rgba(252,249,239,.8); }

    /* Review belt: smooth CSS-driven marquee (no RAF), with a reduced-motion static grid fallback */
    .reviews-belt-wrap { position: relative; overflow: hidden; padding: 1.5rem 0 .25rem; mask-image: linear-gradient(90deg, transparent 0, #000 48px, #000 calc(100% - 48px), transparent 100%); -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 48px, #000 calc(100% - 48px), transparent 100%); }
    .reviews-belt { display: flex; gap: 1.25rem; width: max-content; animation: pullquoteLoop 80s linear infinite; will-change: transform; padding: 0 1rem; }
    .reviews-belt:hover { animation-play-state: paused; }
    @keyframes pullquoteLoop { from { transform: translateX(0); } to { transform: translateX(-50%); } }
    @media (prefers-reduced-motion: reduce) {
      .reviews-belt-wrap { mask-image: none; -webkit-mask-image: none; overflow: visible; }
      .reviews-belt { animation: none; width: 100%; flex-wrap: wrap; justify-content: center; }
      /* A single set is enough when reduced-motion hides the duplicate */
      .reviews-belt .reviews-set.is-duplicate { display: none; }
      .pullquote { width: 100%; max-width: 340px; min-width: 0; }
    }
    .reviews-set { display: flex; gap: 1.25rem; align-items: stretch; }

    /* ---- Phase 5: CTA, Contact, Footer + a11y/perf pass ---- */

    /* Poster-style CTA ("Visit us online") on Cherry with Coffee accents */
    #cta { position: relative; background: #E3452D; color: #FCF9EF; overflow: hidden; padding-top: 5.5rem; padding-bottom: 5.5rem; }
    #cta:before { content: ""; position: absolute; inset: 0; background-image: radial-gradient(circle, rgba(252,249,239,.10) 1px, transparent 1.2px); background-size: 7px 7px; mix-blend-mode: screen; pointer-events: none; opacity: .55; }
    #cta:after { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 1px; background: repeating-linear-gradient(to right, rgba(252,249,239,.35) 0 12px, transparent 12px 20px); opacity: .6; pointer-events: none; }
    #cta .cta-inner { position: relative; z-index: 1; display: grid; grid-template-columns: 1fr; gap: 2rem; align-items: center; max-width: 64rem; margin: 0 auto; padding: 0 1.5rem; text-align: center; }
    @media (min-width: 768px) { #cta .cta-inner { grid-template-columns: 1.15fr .85fr; gap: 3rem; text-align: left; } }
    #cta .cta-kicker { color: #F3E7BF; }
    #cta .cta-kicker:before, #cta .cta-kicker:after { background: #F3E7BF; opacity: .6; }
    #cta .section-title { color: #FCF9EF; margin-top: .85rem; }
    #cta .section-title em { color: #F3E7BF; background: #1C1C1C; padding: 0 .4rem; border-radius: 2px; }
    #cta .cta-divider { display: block; width: 56px; height: 3px; background: #F3E7BF; border-radius: 2px; margin: 1.1rem auto 1rem; }
    @media (min-width: 768px) { #cta .cta-divider { margin-left: 0; margin-right: 0; } }
    #cta .cta-lede { color: rgba(252,249,239,.92); font-size: 1.05rem; line-height: 1.55; max-width: 38rem; margin-left: auto; margin-right: auto; }
    @media (min-width: 768px) { #cta .cta-lede { margin-left: 0; } }
    #cta .cta-actions { margin-top: 1.5rem; display: flex; flex-wrap: wrap; gap: .9rem; align-items: center; justify-content: center; }
    @media (min-width: 768px) { #cta .cta-actions { justify-content: flex-start; } }
    #cta .cta-primary { display: inline-flex; align-items: center; gap: .55rem; padding: .85rem 1.35rem; border-radius: 9999px; background: #1C1C1C; color: #FCF9EF; font-weight: 600; letter-spacing: .03em; font-size: .9rem; text-transform: uppercase; box-shadow: 0 2px 0 rgba(0,0,0,.22), 0 10px 24px rgba(0,0,0,.28); transition: transform 180ms ease, background-color 180ms ease; }
    #cta .cta-primary:hover { background: #000; transform: translateY(-1px); }
    #cta .cta-primary:focus-visible { outline: 2px solid #F3E7BF; outline-offset: 3px; }
    #cta .cta-primary svg { width: 14px; height: 14px; }
    #cta .cta-secondary { display: inline-flex; align-items: center; gap: .5rem; padding: .78rem 1.2rem; border-radius: 9999px; border: 1.5px solid #FCF9EF; color: #FCF9EF; font-weight: 600; font-size: .875rem; letter-spacing: .02em; transition: background-color 180ms ease, color 180ms ease, transform 180ms ease; }
    #cta .cta-secondary:hover { background: #FCF9EF; color: #1C1C1C; transform: translateY(-1px); }
    #cta .cta-secondary:focus-visible { outline: 2px solid #1C1C1C; outline-offset: 3px; }
    #cta .cta-meta { margin-top: 1.15rem; color: rgba(252,249,239,.78); font-size: .78rem; letter-spacing: .2em; text-transform: uppercase; }

    /* Poster ticket stub on the right side (hidden on small screens) */
    #cta .cta-ticket { display: none; }
    @media (min-width: 768px) {
      #cta .cta-ticket { display: block; position: relative; background: #F3E7BF; color: #1C1C1C; border-radius: 8px; padding: 1.4rem 1.5rem; transform: rotate(2deg); box-shadow: 0 12px 28px rgba(0,0,0,.28); }
      #cta .cta-ticket:before, #cta .cta-ticket:after { content: ""; position: absolute; top: 50%; width: 18px; height: 18px; background: #E3452D; border-radius: 50%; transform: translateY(-50%); }
      #cta .cta-ticket:before { left: -9px; }
      #cta .cta-ticket:after { right: -9px; }
      #cta .cta-ticket .ticket-no { font-family: 'Montserrat', ui-sans-serif, system-ui; font-size: .68rem; letter-spacing: .28em; text-transform: uppercase; color: rgba(28,28,28,.6); }
      #cta .cta-ticket .ticket-headline { font-family: 'Anton', Impact, sans-serif; font-size: 1.9rem; line-height: 1; margin-top: .4rem; }
      #cta .cta-ticket .ticket-dashed { margin: .85rem 0; border-top: 1px dashed rgba(28,28,28,.35); }
      #cta .cta-ticket .ticket-foot { display: flex; justify-content: space-between; font-family: 'Montserrat', ui-sans-serif, system-ui; font-size: .72rem; letter-spacing: .2em; text-transform: uppercase; color: rgba(28,28,28,.7); }
    }

    /* Contact section — editorial refresh on Licorice */
    #contact { background: #1C1C1C; color: #FCF9EF; padding-top: 5rem; padding-bottom: 5rem; border-bottom: 1px solid rgba(252,249,239,.08); }
    #contact .contact-inner { max-width: 48rem; margin: 0 auto; padding: 0 1.5rem; text-align: center; }
    #contact .contact-kicker { color: #F3E7BF; opacity: .85; }
    #contact .section-title { color: #FCF9EF; }
    #contact .section-title em { color: #E3452D; }
    #contact .contact-divider { display: block; width: 56px; height: 3px; background: #F3E7BF; border-radius: 2px; margin: 1.1rem auto; }
    #contact .contact-lede { color: rgba(252,249,239,.78); font-size: 1.02rem; line-height: 1.55; margin-bottom: 1.25rem; }
    #contact .contact-mail { display: inline-flex; align-items: center; gap: .55rem; font-family: 'Anton', Impact, sans-serif; font-size: 1.6rem; letter-spacing: .01em; color: #FCF9EF; padding: .4rem .1rem; border-bottom: 2px solid rgba(252,249,239,.25); transition: color 180ms ease, border-color 180ms ease; }
    #contact .contact-mail:hover, #contact .contact-mail:focus-visible { color: #E3452D; border-color: #E3452D; }
    #contact .contact-mail:focus-visible { outline: 2px solid #E3452D; outline-offset: 4px; }

    .feature-scroll::-webkit-scrollbar-thumb:hover {
      background: #f8b744;
    }

    /* Firefox scrollbar */
    .feature-scroll {
      scrollbar-width: thin;
      scrollbar-color: #F1A20E rgba(255, 255, 255, 0.05);
    }

    /* ---- Phase 1: Header + Hero polish ---- */

    /* Header scroll state: transparent over hero, solid Licorice once scrolled */
    #top { backdrop-filter: saturate(140%) blur(0px); transition: background-color 300ms ease, border-color 300ms ease, backdrop-filter 300ms ease; }
    #top.is-scrolled { background-color: rgba(28,28,28,.92); backdrop-filter: saturate(140%) blur(8px); border-bottom: 1px solid rgba(252,249,239,.08); }
    #top.is-scrolled .nav-divider { opacity: 0; }
    #top:not(.is-scrolled) .nav-divider { opacity: 0; }

    /* Nav link underline (Cherry), replaces popcorn color swap */
    .nav-link { position: relative; color: #FCF9EF; opacity: .85; transition: opacity 200ms ease, color 200ms ease; }
    .nav-link:hover, .nav-link:focus-visible { opacity: 1; color: #FCF9EF; }
    .nav-link:after { content: ""; position: absolute; left: 0; right: 0; bottom: -4px; height: 2px; background: #E3452D; transform: scaleX(0); transform-origin: left center; transition: transform 240ms ease; }
    .nav-link:hover:after, .nav-link:focus-visible:after { transform: scaleX(1); }

    /* "Get the App" nav badge */
    .get-app-badge { display: inline-block; transition: transform 180ms ease; }
    .get-app-badge:hover { transform: translateY(-1px); }
    .get-app-badge:focus-visible { outline: 2px solid #FCF9EF; outline-offset: 2px; border-radius: 6px; }
    .get-app-badge img { height: 32px; display: block; }
    @media (min-width: 768px) {
      header nav > div.flex > div.hidden.md\:flex .get-app-badge img { height: 36px; width: auto; }
    }

    /* Mobile nav panel */
    #mobile-nav { transform: translateY(-8px); opacity: 0; pointer-events: none; transition: opacity 200ms ease, transform 200ms ease; }
    #mobile-nav.open { transform: translateY(0); opacity: 1; pointer-events: auto; }
    .mobile-menu-btn { width: 40px; height: 40px; display: none; align-items: center; justify-content: center; border-radius: 10px; color: #FCF9EF; border: 1px solid rgba(252,249,239,.15); background: rgba(28,28,28,.4); }
    @media (max-width: 767px) { .mobile-menu-btn { display: inline-flex; } }
    .mobile-menu-btn:hover { background: rgba(28,28,28,.7); }
    .mobile-menu-btn:focus-visible { outline: 2px solid #E3452D; outline-offset: 2px; }

    /* Hero eyebrow/kicker */

    /* Hero primary/secondary CTAs */
    .hero-ctas { display: flex; flex-wrap: wrap; gap: 1rem; align-items: center; justify-content: center; }
    @media (min-width: 768px) { .hero-ctas { justify-content: flex-start; } }
    .hero-cta-secondary { display: inline-flex; align-items: center; gap: .5rem; padding: .75rem 1.25rem; border-radius: 9999px; border: 1.5px solid #1C1C1C; color: #1C1C1C; font-weight: 600; font-size: .875rem; letter-spacing: .02em; transition: background-color 180ms ease, color 180ms ease, transform 180ms ease; }
    .hero-cta-secondary:hover { background: #1C1C1C; color: #FCF9EF; transform: translateY(-1px); }
    .hero-cta-secondary:focus-visible { outline: 2px solid #E3452D; outline-offset: 2px; }
    .hero-cta-secondary svg { width: 14px; height: 14px; transition: transform 200ms ease; }
    .hero-cta-secondary:hover svg { transform: translateY(2px); }

    /* NOW PLAYING marquee strip (below hero) */
    .now-playing { background: #1C1C1C; color: #FCF9EF; border-top: 1px solid rgba(252,249,239,.08); border-bottom: 1px solid rgba(252,249,239,.08); overflow: hidden; position: relative; }
    .now-playing:before, .now-playing:after { content: ""; position: absolute; top: 0; bottom: 0; width: 64px; z-index: 2; pointer-events: none; }
    .now-playing:before { left: 0; background: linear-gradient(90deg, #1C1C1C, rgba(28,28,28,0)); }
    .now-playing:after { right: 0; background: linear-gradient(-90deg, #1C1C1C, rgba(28,28,28,0)); }
    .now-playing-track { display: flex; gap: 2.5rem; padding: .85rem 0; white-space: nowrap; animation: npScroll 38s linear infinite; will-change: transform; }
    .now-playing-track span { font-family: 'Anton', Impact, sans-serif; font-size: 1.15rem; letter-spacing: .35em; text-transform: uppercase; display: inline-flex; align-items: center; gap: 2.5rem; }
    .now-playing-track span:after { content: "\2022"; color: #E3452D; margin-left: 2.5rem; }
    @keyframes npScroll { from { transform: translateX(0); } to { transform: translateX(-50%); } }
    @media (prefers-reduced-motion: reduce) {
      .now-playing-track { animation: none; justify-content: center; flex-wrap: wrap; white-space: normal; }
    }

    /* Footer — editorial refresh */
    .site-footer { background: #0F0F0F; color: rgba(252,249,239,.78); padding: 3.5rem 0 2rem; border-top: 1px solid rgba(252,249,239,.06); }
    .site-footer .footer-grid { max-width: 80rem; margin: 0 auto; padding: 0 1.5rem; display: grid; grid-template-columns: 1fr; gap: 2rem; align-items: start; }
    @media (min-width: 768px) { .site-footer .footer-grid { grid-template-columns: 1.2fr 1fr 1fr; gap: 3rem; } }
    .site-footer .footer-brand { display: flex; align-items: center; gap: .75rem; }
    .site-footer .footer-brand .footer-mark { font-family: 'Anton', Impact, sans-serif; font-size: 1.35rem; letter-spacing: .22em; color: #FCF9EF; }
    .site-footer .footer-tag { margin-top: .85rem; font-size: .875rem; line-height: 1.55; color: rgba(252,249,239,.6); max-width: 22rem; }
    .site-footer h4 { font-family: 'Montserrat', ui-sans-serif, system-ui; font-size: .72rem; font-weight: 600; letter-spacing: .28em; text-transform: uppercase; color: #F3E7BF; margin-bottom: .9rem; }
    .site-footer .footer-links { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: .55rem; }
    .site-footer .footer-links a { font-size: .9rem; color: rgba(252,249,239,.78); transition: color 180ms ease; }
    .site-footer .footer-links a:hover, .site-footer .footer-links a:focus-visible { color: #E3452D; }
    .site-footer .footer-links a:focus-visible { outline: 2px solid #E3452D; outline-offset: 3px; border-radius: 2px; }
    .site-footer .footer-social { display: flex; gap: .5rem; margin-top: .2rem; }
    .site-footer .footer-social a { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 999px; background: rgba(252,249,239,.06); border: 1px solid rgba(252,249,239,.08); transition: background-color 180ms ease, border-color 180ms ease; }
    .site-footer .footer-social a:hover { background: rgba(252,249,239,.12); border-color: rgba(252,249,239,.22); }
    .site-footer .footer-social a:focus-visible { outline: 2px solid #E3452D; outline-offset: 2px; }
    .site-footer .footer-social img { width: 18px; height: 18px; }
    .site-footer .footer-bottom { max-width: 80rem; margin: 2.5rem auto 0; padding: 1.25rem 1.5rem 0; border-top: 1px solid rgba(252,249,239,.06); display: flex; flex-direction: column; gap: .75rem; align-items: center; justify-content: space-between; text-align: center; font-size: .8rem; color: rgba(252,249,239,.55); }
    @media (min-width: 768px) { .site-footer .footer-bottom { flex-direction: row; text-align: left; } }
