
    /* ============================================================
       Homepage-specific layout. Base tokens come from css/style.css.
       Everything here is scoped to the home page.
       ============================================================ */

    /* Home page assumes light surface. Header inherits site pattern. */
    .home-main { display: block; }
    .home-page .site-header { background: var(--color-bg); color: var(--color-text); }
    .home-page .header-nav a { color: var(--color-text-muted); }
    .home-page .mobile-menu-btn span { background: var(--color-text); }
    .home-page a:focus-visible, .home-page button:focus-visible,
    .home-page input:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 4px; }
    @media (max-width: 1100px) {
      .home-page .header-nav { display: none; }
      .home-page .mobile-menu-btn { display: flex; }
      .home-page .header-actions { gap: 12px; }
      .home-page .btn-inquire { display: inline-flex; padding: 10px 12px; }
      .home-page .mobile-nav { overflow-y: auto; justify-content: flex-start; padding-top: 100px; gap: 12px; }
      .home-page .mobile-nav a { font-size: 24px; padding-bottom: 12px; }
    }
    @media (max-width: 480px) {
      .home-page .site-header { gap: 8px; padding-inline: 16px; }
      .home-page .logo-text .logo-name { font-size: 12px; letter-spacing: .06em; }
      .home-page .logo-mark { width: 24px; height: 24px; }
      .home-page .header-logo { gap: 8px; }
      .home-page .theme-toggle { display: none; }
      .home-page .header-actions { flex-shrink: 0; gap: 8px; }
      .home-page .btn-inquire { width: auto; min-width: 78px; flex-shrink: 0; font-size: 12px; }
      .home-page .mobile-menu-btn { width: 44px; min-width: 44px; height: 44px; border: 0; background: none; }
    }

    /* ---------- Section rhythm ---------- */
    .home-section {
      padding: clamp(var(--space-16), 9vw, var(--space-32)) var(--space-8);
    }
    .home-section--quiet {
      padding-top: clamp(var(--space-16), 7vw, var(--space-24));
      padding-bottom: clamp(var(--space-16), 7vw, var(--space-24));
    }
    .home-section--minimal {
      padding-top: clamp(var(--space-12), 5vw, var(--space-20));
      padding-bottom: clamp(var(--space-12), 5vw, var(--space-20));
    }
    .home-container {
      max-width: var(--content-wide);
      margin: 0 auto;
    }
    .home-container--narrow {
      max-width: var(--content-default);
      margin: 0 auto;
    }
    .home-container--reading {
      max-width: var(--content-narrow);
      margin: 0 auto;
    }

    .home-eyebrow {
      font-family: var(--font-body);
      font-size: var(--text-xs);
      font-weight: 500;
      letter-spacing: 0.22em;
      text-transform: uppercase;
      color: var(--color-accent);
      margin-bottom: var(--space-8);
    }

    .home-title {
      font-family: var(--font-display);
      font-weight: 300;
      line-height: 1.05;
      letter-spacing: -0.01em;
      color: var(--color-text);
    }
    .home-title em {
      font-style: italic;
      font-weight: 300;
    }

    .home-lede {
      font-family: var(--font-display);
      font-size: var(--text-lg);
      font-weight: 300;
      line-height: 1.5;
      color: var(--color-text);
      margin-top: var(--space-8);
      max-width: 52ch;
    }

    .home-body {
      font-size: var(--text-base);
      color: var(--color-text-muted);
      line-height: 1.85;
      max-width: 60ch;
    }
    .home-body + .home-body { margin-top: var(--space-5); }

    .home-cta-row {
      display: flex;
      flex-wrap: wrap;
      gap: var(--space-4) var(--space-6);
      margin-top: clamp(var(--space-8), 4vw, var(--space-12));
    }

    .home-btn-primary {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: var(--space-2);
      padding: var(--space-4) var(--space-10);
      background: var(--color-text);
      color: var(--color-bg);
      font-family: var(--font-body);
      font-size: var(--text-sm);
      letter-spacing: 0.14em;
      text-transform: uppercase;
      text-decoration: none;
      border: 1px solid var(--color-text);
      transition: opacity var(--transition);
    }
    .home-btn-primary:hover { opacity: 0.82; }

    .home-btn-outline {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: var(--space-2);
      padding: var(--space-4) var(--space-10);
      color: var(--color-text);
      background: transparent;
      font-family: var(--font-body);
      font-size: var(--text-sm);
      letter-spacing: 0.14em;
      text-transform: uppercase;
      text-decoration: none;
      border: 1px solid var(--color-border);
      transition: border-color var(--transition), color var(--transition);
    }
    .home-btn-outline:hover {
      border-color: var(--color-text);
    }

    .home-inline-link {
      display: inline-flex;
      align-items: center;
      gap: var(--space-2);
      font-family: var(--font-body);
      font-size: var(--text-sm);
      letter-spacing: 0.14em;
      text-transform: uppercase;
      color: var(--color-text);
      text-decoration: none;
      padding-bottom: var(--space-2);
      border-bottom: 1px solid var(--color-text);
      transition: color var(--transition), border-color var(--transition);
    }
    .home-inline-link:hover {
      color: var(--color-accent);
      border-color: var(--color-accent);
    }

    /* ---------- HERO ---------- */
    .home-hero {
      padding: max(110px, 8vw) var(--space-8) clamp(var(--space-20), 9vw, var(--space-32));
    }
    .home-hero-grid {
      display: grid;
      grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
      gap: clamp(var(--space-10), 6vw, var(--space-24));
      align-items: center;
      max-width: var(--content-wide);
      margin: 0 auto;
    }
    .home-hero-text .home-eyebrow { margin-bottom: var(--space-10); }
    .home-hero-title {
      font-size: clamp(2.5rem, 1rem + 4.5vw, 5.25rem);
      font-family: var(--font-display);
      font-weight: 300;
      line-height: 1.02;
      letter-spacing: -0.015em;
    }
    .home-hero-tagline {
      font-family: var(--font-display);
      font-size: var(--text-xl);
      font-weight: 300;
      font-style: italic;
      color: var(--color-text-muted);
      margin-top: var(--space-6);
      line-height: 1.35;
      max-width: 30ch;
    }
    .home-hero-body {
      font-size: var(--text-base);
      color: var(--color-text-muted);
      line-height: 1.85;
      margin-top: var(--space-8);
      max-width: 46ch;
    }
    .home-hero-image {
      width: 100%;
      height: auto;
      display: block;
      /* preserve natural aspect ratio, no crop, no shadow, no border */
    }
    @media (max-width: 900px) {
      .home-hero-grid {
        grid-template-columns: 1fr;
        gap: var(--space-12);
      }
      .home-hero-title { font-size: clamp(2.25rem, 6vw, 3.75rem); }
    }

    /* ---------- FEATURED EXHIBITION (no image) ---------- */
    .home-feature {
      background: var(--color-surface);
      border-top: 1px solid var(--color-divider);
      border-bottom: 1px solid var(--color-divider);
    }
    .home-feature-eyebrow {
      display: flex;
      align-items: center;
      gap: var(--space-4);
      font-family: var(--font-body);
      font-size: var(--text-xs);
      letter-spacing: 0.22em;
      text-transform: uppercase;
      color: var(--color-accent);
      margin-bottom: var(--space-10);
    }
    .home-feature-eyebrow::after {
      content: "";
      flex: 0 0 60px;
      height: 1px;
      background: var(--color-accent);
    }
    .home-feature-title {
      font-family: var(--font-display);
      font-weight: 300;
      font-size: clamp(2.25rem, 1rem + 3.5vw, 4rem);
      line-height: 1.08;
      letter-spacing: -0.01em;
      margin-bottom: var(--space-6);
    }
    .home-feature-title em { font-style: italic; }
    .home-feature-artists {
      font-family: var(--font-display);
      font-style: italic;
      font-size: var(--text-lg);
      color: var(--color-text-muted);
      margin-bottom: var(--space-4);
    }
    .home-feature-meta {
      font-family: var(--font-body);
      font-size: var(--text-sm);
      letter-spacing: 0.06em;
      color: var(--color-text-faint);
      margin-bottom: var(--space-12);
    }
    .home-feature-body {
      max-width: 60ch;
      font-size: var(--text-base);
      color: var(--color-text-muted);
      line-height: 1.85;
    }
    .home-feature-body + .home-feature-body { margin-top: var(--space-5); }

    /* ---------- CURATORIAL APPROACH (quiet) ---------- */
    .home-approach { }
    .home-approach-grid {
      display: grid;
      grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
      gap: clamp(var(--space-10), 6vw, var(--space-20));
      align-items: start;
      max-width: var(--content-wide);
      margin: 0 auto;
    }
    .home-approach-heading {
      font-family: var(--font-display);
      font-weight: 300;
      font-size: clamp(1.75rem, 1rem + 2vw, 2.5rem);
      line-height: 1.15;
      letter-spacing: -0.005em;
    }
    .home-approach-heading em { font-style: italic; }
    @media (max-width: 850px) {
      .home-approach-grid {
        grid-template-columns: 1fr;
        gap: var(--space-8);
      }
    }

    /* ---------- ARTISTS ---------- */
    .home-artists {
      border-top: 1px solid var(--color-divider);
    }
    .home-artists-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: clamp(var(--space-12), 6vw, var(--space-20));
      max-width: var(--content-wide);
      margin: var(--space-16) auto 0;
      align-items: start;
    }
    .home-artist { }
    .home-artist-image-wrap {
      display: flex;
      justify-content: center;
      align-items: flex-start;
      margin-bottom: var(--space-10);
    }
    .home-artist-image {
      width: 100%;
      height: auto;
      display: block;
      max-height: 640px;
      object-fit: contain;
      /* No shadow, no border, no forced aspect ratio */
    }
    .home-artist-name {
      font-family: var(--font-display);
      font-weight: 300;
      font-size: clamp(1.5rem, 1rem + 1vw, 2rem);
      line-height: 1.2;
      margin-bottom: var(--space-4);
    }
    .home-artist-body {
      font-size: var(--text-base);
      color: var(--color-text-muted);
      line-height: 1.8;
      margin-bottom: var(--space-6);
      max-width: 44ch;
    }
    @media (max-width: 850px) {
      .home-artists-grid {
        grid-template-columns: 1fr;
        gap: var(--space-20);
      }
    }

    /* ---------- ENGAGE (Collectors and Institutions) ---------- */
    .home-engage {
      background: var(--color-surface);
      border-top: 1px solid var(--color-divider);
      border-bottom: 1px solid var(--color-divider);
    }
    .home-engage-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: clamp(var(--space-10), 5vw, var(--space-16));
      max-width: var(--content-wide);
      margin: 0 auto;
    }
    .home-engage-pathway {
      padding-top: var(--space-8);
      border-top: 1px solid var(--color-border);
    }
    .home-engage-label {
      font-family: var(--font-body);
      font-size: var(--text-xs);
      letter-spacing: 0.22em;
      text-transform: uppercase;
      color: var(--color-accent);
      margin-bottom: var(--space-6);
    }
    .home-engage-heading {
      font-family: var(--font-display);
      font-weight: 300;
      font-size: clamp(1.5rem, 1rem + 1vw, 2rem);
      line-height: 1.25;
      margin-bottom: var(--space-4);
      color: var(--color-text);
    }
    .home-engage-body {
      font-size: var(--text-base);
      color: var(--color-text-muted);
      line-height: 1.8;
      margin-bottom: var(--space-8);
      max-width: 44ch;
    }
    @media (max-width: 750px) {
      .home-engage-grid { grid-template-columns: 1fr; gap: var(--space-12); }
    }

    /* ---------- SELECTED PRESS (minimal) ---------- */
    .home-press {
      text-align: center;
    }
    .home-press-eyebrow {
      font-family: var(--font-body);
      font-size: var(--text-xs);
      letter-spacing: 0.22em;
      text-transform: uppercase;
      color: var(--color-text-faint);
      margin-bottom: var(--space-6);
    }
    .home-press-list {
      font-family: var(--font-display);
      font-weight: 300;
      font-size: clamp(1.25rem, 0.75rem + 1.25vw, 1.75rem);
      color: var(--color-text-muted);
      margin-bottom: var(--space-8);
      letter-spacing: 0.01em;
    }
    .home-press-list span {
      display: inline-block;
      padding: 0 var(--space-3);
      color: var(--color-text-faint);
    }

    /* ---------- STAY CONNECTED ---------- */
    .home-stay {
      --color-text-inverse: #F5F2EB;
      background: var(--color-surface-dark);
      color: var(--color-text-inverse);
    }
    .home-stay-heading {
      font-family: var(--font-display);
      font-weight: 300;
      font-size: clamp(1.75rem, 1rem + 2vw, 2.5rem);
      line-height: 1.2;
      color: var(--color-text-inverse);
      margin-bottom: var(--space-4);
      text-align: center;
    }
    .home-stay-body {
      font-size: var(--text-base);
      color: rgba(237, 233, 224, 0.7);
      line-height: 1.75;
      margin: 0 auto var(--space-10);
      max-width: 46ch;
      text-align: center;
    }
    .home-stay-form {
      display: flex;
      flex-wrap: wrap;
      gap: var(--space-3);
      max-width: 520px;
      margin: 0 auto;
    }
    .home-stay-input {
      flex: 1 1 260px;
      padding: var(--space-4) var(--space-5);
      background: transparent;
      color: var(--color-text-inverse);
      font-family: var(--font-body);
      font-size: var(--text-sm);
      border: 1px solid rgba(237, 233, 224, 0.25);
      border-radius: 0;
    }
    .home-stay-input::placeholder {
      color: rgba(237, 233, 224, 0.5);
    }
    .home-stay-input:focus {
      outline: none;
      border-color: var(--color-accent);
    }
    .home-stay-btn {
      padding: var(--space-4) var(--space-8);
      background: var(--color-accent);
      color: #0C0A07;
      font-family: var(--font-body);
      font-size: var(--text-sm);
      letter-spacing: 0.14em;
      text-transform: uppercase;
      border: 1px solid var(--color-accent);
      cursor: pointer;
      transition: background var(--transition), border-color var(--transition);
    }
    .home-stay-btn:hover {
      background: var(--color-accent-hover);
      border-color: var(--color-accent-hover);
    }
    .home-stay-thanks {
      display: none;
      text-align: center;
      color: var(--color-accent);
      font-size: var(--text-sm);
      letter-spacing: 0.06em;
      margin-top: var(--space-6);
    }
    .home-stay-thanks.is-visible { display: block; }
    .home-stay-error { text-align: center; color: #F5F2EB; margin: 20px auto 0; max-width: 46ch; }

    /* ---------- HOMEPAGE FOOTER (dedicated, matches direction) ---------- */
    .home-footer {
      --color-text-inverse: #F5F2EB;
      background: var(--color-surface-dark);
      color: var(--color-text-inverse);
      padding: clamp(var(--space-16), 6vw, var(--space-20)) var(--space-8) var(--space-10);
      border-top: 1px solid rgba(237, 233, 224, 0.08);
    }
    .home-footer-inner {
      max-width: var(--content-wide);
      margin: 0 auto;
      display: grid;
      grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
      gap: clamp(var(--space-10), 6vw, var(--space-20));
    }
    .home-footer-brand {
      font-family: var(--font-display);
      font-size: var(--text-lg);
      letter-spacing: 0.08em;
      margin-bottom: var(--space-5);
      color: var(--color-text-inverse);
    }
    .home-footer-descriptor {
      font-size: var(--text-sm);
      color: rgba(237, 233, 224, 0.65);
      line-height: 1.75;
      max-width: 40ch;
    }
    .home-footer-nav-cols {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: clamp(var(--space-8), 4vw, var(--space-16));
    }
    .home-footer-col-title {
      font-family: var(--font-body);
      font-size: var(--text-xs);
      letter-spacing: 0.2em;
      text-transform: uppercase;
      color: rgba(237, 233, 224, 0.5);
      margin-bottom: var(--space-5);
    }
    .home-footer-links {
      list-style: none;
      padding: 0;
      margin: 0;
      display: flex;
      flex-direction: column;
      gap: var(--space-3);
    }
    .home-footer-links a {
      color: rgba(237, 233, 224, 0.85);
      text-decoration: none;
      font-size: var(--text-sm);
      transition: color var(--transition);
    }
    .home-footer-links a:hover { color: var(--color-accent); }

    .home-footer-bottom {
      max-width: var(--content-wide);
      margin: var(--space-16) auto 0;
      padding-top: var(--space-6);
      border-top: 1px solid rgba(237, 233, 224, 0.08);
      display: flex;
      flex-wrap: wrap;
      gap: var(--space-4) var(--space-8);
      justify-content: space-between;
      font-size: var(--text-xs);
      color: rgba(237, 233, 224, 0.45);
      letter-spacing: 0.06em;
    }
    @media (max-width: 750px) {
      .home-footer-inner { grid-template-columns: 1fr; gap: var(--space-10); }
      .home-footer-nav-cols { grid-template-columns: 1fr 1fr; }
    }
  