
    /* ─── DESIGN TOKENS (Apple-adapted for memorial) ─── */
    :root {
      --primary:          #0066cc;
      --primary-focus:    #0071e3;
      --primary-on-dark:  #2997ff;
      --ink:              #1d1d1f;
      --body-muted:       #cccccc;
      --ink-muted-80:     #333333;
      --ink-muted-48:     #7a7a7a;
      --divider-soft:     #f0f0f0;
      --hairline:         #e0e0e0;
      --canvas:           #ffffff;
      --canvas-parchment: #f5f5f7;
      --surface-pearl:    #fafafc;
      --tile-dark-1:      #1a1a1c;
      --tile-dark-2:      #222224;
      --tile-dark-3:      #141416;
      --surface-black:    #000000;
      --on-dark:          #ffffff;
      --gold-accent:      #c4a35a;
      --gold-soft:        #e8d5a3;
      --product-shadow:   rgba(0,0,0,0.22) 3px 5px 30px 0;

      --font-display: "Cormorant Garamond", "SF Pro Display", system-ui, -apple-system, serif;
      --font-body:    "DM Sans", "SF Pro Text", system-ui, -apple-system, sans-serif;

      --r-sm:   8px;
      --r-md:   11px;
      --r-lg:   18px;
      --r-pill: 9999px;

      --sp-xs:      8px;
      --sp-sm:      12px;
      --sp-md:      17px;
      --sp-lg:      24px;
      --sp-xl:      32px;
      --sp-xxl:     48px;
      --sp-section: 80px;
    }

    /* ─── RESET ─── */
    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
    html { scroll-behavior: smooth; }
    body {
      font-family: var(--font-body);
      font-size: 17px;
      font-weight: 400;
      line-height: 1.47;
      letter-spacing: -0.374px;
      color: var(--ink);
      background: var(--canvas);
      overflow-x: hidden;
    }
    img { display: block; max-width: 100%; }
    a { text-decoration: none; color: inherit; }
    button, input, textarea, select {
      font-family: inherit;
      font-size: inherit;
    }

    /* ─── GLOBAL NAV ─── */
    .g-nav {
      position: fixed;
      top: 0; left: 0; right: 0;
      z-index: 1000;
      height: 52px;
      background: rgba(0,0,0,0.85);
      backdrop-filter: saturate(180%) blur(20px);
      -webkit-backdrop-filter: saturate(180%) blur(20px);
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 0 var(--sp-xl);
      border-bottom: 1px solid rgba(255,255,255,0.08);
    }
        .g-nav__logo {
      display: flex;
      align-items: center;
      gap: 9px;
      text-decoration: none;
      flex-shrink: 0;
      transition: opacity 0.2s;
    }
    .g-nav__logo:hover { opacity: 0.85; }
    .g-nav__logo-img {
      width: 30px;
      height: 30px;
      border-radius: 50%;
      object-fit: cover;
      object-position: center top;
      border: 1.5px solid rgba(196,163,90,0.55);
      box-shadow: 0 0 0 2px rgba(196,163,90,0.12);
      flex-shrink: 0;
      display: block;
    }
    .g-nav__logo-text {
      font-family: var(--font-display);
      font-size: 15px;
      font-weight: 500;
      color: var(--gold-accent);
      letter-spacing: 0.04em;
      white-space: nowrap;
      line-height: 1;
    }
    .g-nav__links {
      display: flex;
      align-items: center;
      gap: var(--sp-xl);
      list-style: none;
    }
    .g-nav__links a {
      font-size: 12px;
      font-weight: 400;
      color: rgba(255,255,255,0.8);
      letter-spacing: -0.12px;
      transition: color 0.2s;
    }
    .g-nav__links a:hover { color: var(--on-dark); }
    .g-nav__cta {
      font-size: 12px;
      font-weight: 400;
      color: var(--on-dark);
      background: var(--primary);
      border: none;
      border-radius: var(--r-pill);
      padding: 7px 16px;
      cursor: pointer;
      transition: background 0.2s, transform 0.1s;
    }
    .g-nav__cta:hover { background: var(--primary-focus); }
    .g-nav__cta:active { transform: scale(0.95); }

    /* Hamburger (mobile) */
    /* ─── HAMBURGER ─── */
    .g-nav__hamburger {
      display: none;
      align-items: center;
      justify-content: center;
      width: 36px;
      height: 36px;
      border-radius: 50%;
      background: rgba(255,255,255,0.07);
      border: 1px solid rgba(255,255,255,0.13);
      cursor: pointer;
      padding: 0;
      flex-shrink: 0;
      transition: background 0.25s, border-color 0.25s, transform 0.15s;
      position: relative;
      z-index: 1001;
    }
    .g-nav__hamburger:hover {
      background: rgba(255,255,255,0.14);
      border-color: rgba(255,255,255,0.22);
    }
    .g-nav__hamburger:active { transform: scale(0.9); }
    .g-nav__hamburger.open {
      background: rgba(196,163,90,0.15);
      border-color: rgba(196,163,90,0.35);
    }
    .g-nav__hamburger span {
      display: block;
      position: absolute;
      width: 17px;
      height: 1.5px;
      background: rgba(255,255,255,0.88);
      border-radius: 2px;
      left: 50%;
      transform-origin: center;
      transition: transform 0.32s cubic-bezier(0.23,1,0.32,1),
                  opacity   0.22s ease,
                  background 0.25s;
    }
    .g-nav__hamburger span:nth-child(1) { transform: translateX(-50%) translateY(-5.5px); }
    .g-nav__hamburger span:nth-child(2) { transform: translateX(-50%) translateY(0); width: 12px; margin-left: -2.5px; }
    .g-nav__hamburger span:nth-child(3) { transform: translateX(-50%) translateY(5.5px); }
    /* Open → X */
    .g-nav__hamburger.open span:nth-child(1) {
      transform: translateX(-50%) translateY(0) rotate(45deg);
      background: var(--gold-accent);
    }
    .g-nav__hamburger.open span:nth-child(2) {
      opacity: 0;
      transform: translateX(-50%) scaleX(0);
    }
    .g-nav__hamburger.open span:nth-child(3) {
      transform: translateX(-50%) translateY(0) rotate(-45deg);
      background: var(--gold-accent);
    }
    /* ─── MOBILE MENU ─── */
    .g-nav__mobile-menu {
      visibility: hidden;
      opacity: 0;
      position: fixed;
      top: 52px; left: 0; right: 0;
      background: rgba(14,14,16,0.97);
      backdrop-filter: saturate(180%) blur(24px);
      -webkit-backdrop-filter: saturate(180%) blur(24px);
      padding: 0;
      max-height: 0;
      overflow: hidden;
      z-index: 998;
      flex-direction: column;
      gap: 0;
      border-bottom: 1px solid rgba(255,255,255,0.0);
      transition: max-height 0.38s cubic-bezier(0.23,1,0.32,1),
                  opacity    0.28s ease,
                  visibility 0.28s,
                  border-color 0.28s,
                  padding    0.3s cubic-bezier(0.23,1,0.32,1);
    }
    .g-nav__mobile-menu.open {
      visibility: visible;
      opacity: 1;
      display: flex;
      max-height: 420px;
      padding: 8px 0 20px;
      border-bottom-color: rgba(255,255,255,0.08);
    }
    .g-nav__mobile-menu a {
      font-size: 17px;
      font-weight: 400;
      color: rgba(255,255,255,0.78);
      padding: 14px 24px;
      border-bottom: none;
      letter-spacing: -0.374px;
      display: flex;
      align-items: center;
      gap: 10px;
      transition: background 0.18s, color 0.18s, padding-left 0.22s;
    }
    .g-nav__mobile-menu a:hover {
      background: rgba(255,255,255,0.05);
      color: rgba(255,255,255,1);
      padding-left: 32px;
    }
    .g-nav__mobile-menu a.active { color: var(--gold-accent); }
    .g-nav__mobile-menu a::before {
      content: '';
      display: block;
      width: 4px; height: 4px;
      border-radius: 50%;
      background: rgba(196,163,90,0.5);
      flex-shrink: 0;
    }
    .g-nav__mobile-menu a.active::before { background: var(--gold-accent); }
    /* Staggered slide-in for menu items */
    .g-nav__mobile-menu a:nth-child(1)  { transition-delay: 0.04s; }
    .g-nav__mobile-menu a:nth-child(2)  { transition-delay: 0.07s; }
    .g-nav__mobile-menu a:nth-child(3)  { transition-delay: 0.10s; }
    .g-nav__mobile-menu a:nth-child(4)  { transition-delay: 0.13s; }
    .g-nav__mobile-menu a:nth-child(5)  { transition-delay: 0.16s; }
    /* Divider line between items */
    .g-nav__mobile-menu a + a {
      border-top: 1px solid rgba(255,255,255,0.05);
    }
    /* Backdrop */
    .g-nav__backdrop {
      position: fixed; inset: 0;
      background: rgba(0,0,0,0.45);
      z-index: 997;
      opacity: 0; visibility: hidden;
      transition: opacity 0.3s ease, visibility 0.3s;
      backdrop-filter: blur(2px);
      -webkit-backdrop-filter: blur(2px);
    }
    .g-nav__backdrop.open { opacity: 1; visibility: visible; }

    /* ─── SHARED HELPERS ─── */
    .container {
      max-width: 980px;
      margin: 0 auto;
      padding: 0 var(--sp-xl);
    }
    .container--wide {
      max-width: 1200px;
      margin: 0 auto;
      padding: 0 var(--sp-xl);
    }
    .section-label {
      font-family: var(--font-display);
      font-size: 13px;
      font-weight: 400;
      letter-spacing: 0.18em;
      text-transform: uppercase;
      color: var(--gold-accent);
      margin-bottom: var(--sp-md);
    }
    .btn-primary {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      background: var(--primary);
      color: var(--on-dark);
      font-family: var(--font-body);
      font-size: 17px;
      font-weight: 400;
      line-height: 1;
      letter-spacing: -0.374px;
      border: none;
      border-radius: var(--r-pill);
      padding: 11px 22px;
      cursor: pointer;
      transition: background 0.2s, transform 0.1s;
      white-space: nowrap;
    }
    .btn-primary:hover { background: var(--primary-focus); }
    .btn-primary:active { transform: scale(0.95); }
    .btn-ghost {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      background: transparent;
      color: var(--primary);
      font-family: var(--font-body);
      font-size: 17px;
      font-weight: 400;
      line-height: 1;
      letter-spacing: -0.374px;
      border: 1px solid var(--primary);
      border-radius: var(--r-pill);
      padding: 11px 22px;
      cursor: pointer;
      transition: background 0.2s, color 0.2s, transform 0.1s;
      white-space: nowrap;
    }
    .btn-ghost:hover { background: var(--primary); color: var(--on-dark); }
    .btn-ghost:active { transform: scale(0.95); }
    .btn-ghost--on-dark {
      color: var(--on-dark);
      border-color: rgba(255,255,255,0.5);
    }
    .btn-ghost--on-dark:hover { background: rgba(255,255,255,0.15); }

    /* ─── CANDLE ANIMATION ─── */
    @keyframes flicker {
      0%,100% { transform: scaleY(1) skewX(0deg); opacity:1; }
      25%      { transform: scaleY(1.08) skewX(-2deg); opacity:0.9; }
      50%      { transform: scaleY(0.95) skewX(1deg); opacity:1; }
      75%      { transform: scaleY(1.05) skewX(2deg); opacity:0.85; }
    }
    @keyframes glow-pulse {
      0%,100% { box-shadow: 0 0 12px 4px rgba(255,200,80,0.35); }
      50%      { box-shadow: 0 0 24px 8px rgba(255,200,80,0.55); }
    }
    @keyframes rise-in {
      from { opacity:0; transform: translateY(32px); }
      to   { opacity:1; transform: translateY(0); }
    }
    @keyframes fade-in {
      from { opacity:0; }
      to   { opacity:1; }
    }
    @keyframes float-up {
      0%   { opacity:0.7; transform: translateY(0) scale(1); }
      100% { opacity:0;   transform: translateY(-60px) scale(0.5); }
    }

    /* ─── HERO SECTION ─── */
    .hero {
      background: var(--tile-dark-3);
      min-height: 100vh;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      padding: calc(52px + var(--sp-section)) var(--sp-xl) var(--sp-section);
      position: relative;
      overflow: hidden;
      text-align: center;
    }
    .hero::before {
      content: '';
      position: absolute;
      inset: 0;
      background: radial-gradient(ellipse 60% 50% at 50% 40%, rgba(196,163,90,0.08) 0%, transparent 70%);
      pointer-events: none;
    }

    /* Candle lighting glow (toggled via JS) */
    .hero--glow::after {
      content: '';
      position: absolute;
      inset: 0;
      pointer-events: none;
      background: radial-gradient(circle at 50% 30%, rgba(255,220,120,0.14), rgba(196,163,90,0.06) 20%, transparent 40%);
      animation: hero-glow-pulse 1.8s ease-in-out;
    }
    .hero--glow .hero__portrait-ring {
      box-shadow: 0 0 100px rgba(196,163,90,0.35), 0 0 40px rgba(196,163,90,0.25), var(--product-shadow);
      transform: scale(1.01);
      transition: box-shadow 0.3s, transform 0.24s;
    }
    @keyframes hero-glow-pulse {
      0% { opacity: 0.0; transform: scale(0.98); }
      50% { opacity: 1;   transform: scale(1.01); }
      100% { opacity: 0;   transform: scale(0.99); }
    }

    .hero__candles {
      display: flex;
      gap: 40px;
      justify-content: center;
      margin-bottom: var(--sp-xxl);
      animation: fade-in 1s ease 0.5s both;
    }
    .candle {
      display: flex;
      flex-direction: column;
      align-items: center;
      cursor: pointer;
      position: relative;
    }
    .candle__flame {
      width: 12px;
      height: 18px;
      background: linear-gradient(to top, #ff9500 0%, #ffcc00 50%, #fff8e1 100%);
      border-radius: 50% 50% 35% 35% / 60% 60% 40% 40%;
      animation: flicker 1.8s ease-in-out infinite;
      transform-origin: bottom center;
      position: relative;
      margin-bottom: -2px;
    }
    .candle__flame::after {
      content: '';
      position: absolute;
      bottom: -2px;
      left: 50%;
      transform: translateX(-50%);
      width: 18px;
      height: 8px;
      background: radial-gradient(ellipse, rgba(255,200,80,0.6) 0%, transparent 70%);
      border-radius: 50%;
    }
    .candle__body {
      width: 14px;
      height: 52px;
      background: linear-gradient(to right, #fffde7 0%, #fff9c4 40%, #f9a825 100%);
      border-radius: 2px 2px 3px 3px;
      animation: glow-pulse 2.5s ease-in-out infinite;
    }
    .candle__base {
      width: 18px;
      height: 4px;
      background: rgba(255,255,255,0.15);
      border-radius: 2px;
    }
    .candle--lit .candle__flame { display: block; }
    .candle--unlit .candle__flame { display: none; }

    .hero__portrait-wrap {
      position: relative;
      margin-bottom: var(--sp-xxl);
      animation: rise-in 1s ease 0.3s both;
    }
    .hero__portrait-ring {
      width: 220px;
      height: 220px;
      border-radius: 50%;
      padding: 4px;
      background: linear-gradient(145deg, var(--gold-accent), rgba(196,163,90,0.3) 60%, var(--gold-accent));
      box-shadow: 0 0 40px rgba(196,163,90,0.25), var(--product-shadow);
      margin: 0 auto;
    }
    .hero__portrait {
      width: 100%;
      height: 100%;
      border-radius: 50%;
      object-fit: cover;
      object-position: center top;
      display: block;
    }
    .hero__eternal-badge {
      position: absolute;
      bottom: 4px;
      right: -8px;
      background: var(--tile-dark-1);
      border: 1px solid var(--gold-accent);
      color: var(--gold-accent);
      font-family: var(--font-display);
      font-size: 11px;
      letter-spacing: 0.12em;
      text-transform: uppercase;
      padding: 5px 10px;
      border-radius: var(--r-pill);
      white-space: nowrap;
    }

    .hero__content {
      animation: rise-in 1s ease 0.6s both;
    }
    .hero__name {
      font-family: var(--font-display);
      font-size: clamp(36px, 6vw, 64px);
      font-weight: 600;
      line-height: 1.05;
      letter-spacing: -0.02em;
      color: var(--on-dark);
      margin-bottom: var(--sp-sm);
    }
    .hero__dates {
      font-family: var(--font-body);
      font-size: 17px;
      font-weight: 300;
      color: var(--gold-accent);
      letter-spacing: 0.12em;
      text-transform: uppercase;
      margin-bottom: var(--sp-lg);
    }
    .hero__quote {
      font-family: var(--font-display);
      font-size: clamp(18px, 2.5vw, 24px);
      font-weight: 300;
      font-style: italic;
      line-height: 1.5;
      color: var(--body-muted);
      max-width: 580px;
      margin: 0 auto var(--sp-xxl);
    }
    .hero__quote::before { content: '\201C'; color: var(--gold-accent); margin-right: 2px; }
    .hero__quote::after  { content: '\201D'; color: var(--gold-accent); margin-left: 2px; }
    .hero__ctas {
      display: flex;
      gap: var(--sp-md);
      justify-content: center;
      flex-wrap: wrap;
    }
    .hero__scroll-hint {
      position: absolute;
      bottom: var(--sp-xl);
      left: 50%;
      transform: translateX(-50%);
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: var(--sp-xs);
      color: rgba(255,255,255,0.3);
      font-size: 11px;
      letter-spacing: 0.1em;
      text-transform: uppercase;
      animation: fade-in 1s ease 2s both;
    }
    .hero__scroll-hint::after {
      content: '';
      display: block;
      width: 1px;
      height: 32px;
      background: linear-gradient(to bottom, rgba(255,255,255,0.3), transparent);
      animation: float-up 2s ease-in-out infinite;
    }

    /* Light a Candle CTA */
    .candle-cta {
      margin-top: var(--sp-xl);
      /* display: flex; */
      align-items: center;
      gap: var(--sp-xs);
      font-size: 13px;
      color: rgba(255,255,255,0.4);
      letter-spacing: 0.04em;
      animation: fade-in 1.5s ease 1.5s both;
    }
    .candle-cta button {
      background: none;
      border: none;
      color: var(--gold-accent);
      font-family: var(--font-body);
      font-size: 13px;
      cursor: pointer;
      letter-spacing: 0.04em;
      text-decoration: underline;
      text-underline-offset: 3px;
      transition: opacity 0.2s;
    }
    .candle-cta button:hover { opacity: 0.7; }
    #candle-count { font-weight: 500; color: rgba(255,255,255,0.5); }

    /* ─── ANNOUNCEMENT SECTION ─── */
    .announcement {
      background: var(--canvas-parchment);
      padding: var(--sp-section) var(--sp-xl);
    }
    .announcement__inner {
      max-width: 980px;
      margin: 0 auto;
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: var(--sp-xxl);
      align-items: start;
    }
    .announcement__heading {
      font-family: var(--font-display);
      font-size: clamp(28px, 4vw, 40px);
      font-weight: 600;
      line-height: 1.1;
      letter-spacing: -0.01em;
      color: var(--ink);
      margin-bottom: var(--sp-lg);
    }
    .announcement__lead {
      font-size: 17px;
      line-height: 1.6;
      color: var(--ink-muted-80);
      margin-bottom: var(--sp-xxl);
    }
    .announcement__cards {
      display: flex;
      flex-direction: column;
      gap: var(--sp-md);
    }
    .service-actions {
      margin-top: var(--sp-xl);
      display: flex;
      justify-content: center;
      gap: 12px;
      flex-wrap: wrap;
    }
    .service-card {
      background: var(--canvas);
      border: 1px solid var(--hairline);
      border-radius: var(--r-lg);
      padding: var(--sp-lg);
      display: flex;
      gap: var(--sp-md);
      align-items: flex-start;
      transition: box-shadow 0.2s;
    }
    .service-card:hover { box-shadow: 0 2px 16px rgba(0,0,0,0.06); }
    .service-card__icon {
      width: 44px;
      height: 44px;
      border-radius: var(--r-sm);
      background: var(--tile-dark-1);
      display: flex;
      align-items: center;
      justify-content: center;
      flex-shrink: 0;
      font-size: 20px;
    }
    .service-card__label {
      font-size: 11px;
      font-weight: 600;
      letter-spacing: 0.1em;
      text-transform: uppercase;
      color: var(--gold-accent);
      margin-bottom: 4px;
    }
    .service-card__title {
      font-family: var(--font-display);
      font-size: 18px;
      font-weight: 600;
      color: var(--ink);
      margin-bottom: 4px;
    }
    .service-card__detail {
      font-size: 14px;
      color: var(--ink-muted-48);
      line-height: 1.5;
    }
    .announcement__countdown {
      background: var(--tile-dark-1);
      border-radius: var(--r-lg);
      padding: var(--sp-lg) var(--sp-xl);
      text-align: center;
      margin-top: var(--sp-xl);
    }
    .announcement__countdown-label {
      font-size: 12px;
      font-weight: 400;
      letter-spacing: 0.12em;
      text-transform: uppercase;
      color: rgba(255,255,255,0.4);
      margin-bottom: var(--sp-md);
    }
    .countdown-grid {
      display: flex;
      gap: var(--sp-md);
      justify-content: center;
    }
    .countdown-unit {
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 4px;
      min-width: 56px;
    }
    .countdown-unit__num {
      font-family: var(--font-display);
      font-size: 36px;
      font-weight: 600;
      color: var(--gold-accent);
      line-height: 1;
    }
    .countdown-unit__label {
      font-size: 11px;
      font-weight: 400;
      letter-spacing: 0.1em;
      text-transform: uppercase;
      color: rgba(255,255,255,0.35);
    }

    /* ─── BIOGRAPHY PREVIEW ─── */
    .bio-preview {
      background: var(--canvas);
      padding: var(--sp-section) var(--sp-xl);
    }
    .bio-preview__inner {
      max-width: 980px;
      margin: 0 auto;
      display: grid;
      grid-template-columns: 1fr 1.2fr;
      gap: 80px;
      align-items: center;
    }
    .bio-preview__img-wrap {
      position: relative;
    }
    .bio-preview__img-frame {
      width: 100%;
      aspect-ratio: 3/4;
      border-radius: var(--r-lg);
      overflow: hidden;
      box-shadow: var(--product-shadow);
    }
    .bio-preview__img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      object-position: center top;
    }
    .bio-preview__img-caption {
      position: absolute;
      bottom: -var(--sp-sm);
      left: var(--sp-md);
      right: var(--sp-md);
      background: rgba(255,255,255,0.95);
      backdrop-filter: blur(12px);
      border-radius: var(--r-sm);
      padding: var(--sp-sm) var(--sp-md);
      border: 1px solid var(--hairline);
      bottom: var(--sp-md);
    }
    .bio-preview__img-caption-name {
      font-family: var(--font-display);
      font-size: 15px;
      font-weight: 600;
      color: var(--ink);
    }
    .bio-preview__img-caption-sub {
      font-size: 12px;
      color: var(--ink-muted-48);
    }
    .bio-preview__heading {
      font-family: var(--font-display);
      font-size: clamp(28px, 4vw, 40px);
      font-weight: 600;
      line-height: 1.1;
      letter-spacing: -0.01em;
      color: var(--ink);
      margin-bottom: var(--sp-md);
    }
    .bio-preview__text {
      font-size: 17px;
      line-height: 1.7;
      color: var(--ink-muted-80);
      margin-bottom: var(--sp-lg);
    }
    .bio-preview__text + .bio-preview__text { margin-top: var(--sp-md); }
    .bio-preview__stats {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: var(--sp-md);
      margin: var(--sp-xxl) 0;
    }
    .bio-stat {
      padding: var(--sp-md) 0;
      border-top: 1px solid var(--divider-soft);
    }
    .bio-stat__value {
      font-family: var(--font-display);
      font-size: 28px;
      font-weight: 600;
      color: var(--ink);
      line-height: 1.1;
    }
    .bio-stat__label {
      font-size: 13px;
      color: var(--ink-muted-48);
      margin-top: 3px;
    }

    /* ─── TRIBUTES SECTION ─── */
    .tributes-section {
      background: var(--tile-dark-1);
      padding: var(--sp-section) 0;
      overflow: hidden;
    }
    .tributes-section__header {
      text-align: center;
      padding: 0 var(--sp-xl);
      margin-bottom: var(--sp-xxl);
    }
    .tributes-section__heading {
      font-family: var(--font-display);
      font-size: clamp(28px, 4vw, 40px);
      font-weight: 600;
      line-height: 1.1;
      color: var(--on-dark);
      margin-bottom: var(--sp-sm);
    }
    .tributes-section__sub {
      font-size: 17px;
      font-weight: 300;
      color: var(--body-muted);
    }
    .tributes-carousel {
      position: relative;
    }
    .tributes-track {
      display: flex;
      gap: var(--sp-lg);
      padding: var(--sp-xs) var(--sp-xl) var(--sp-xl);
      overflow-x: auto;
      scroll-snap-type: x mandatory;
      scrollbar-width: none;
      -ms-overflow-style: none;
    }
    .tributes-track::-webkit-scrollbar { display: none; }
    .tribute-card {
      flex: 0 0 320px;
      background: rgba(255,255,255,0.05);
      border: 1px solid rgba(255,255,255,0.08);
      border-radius: var(--r-lg);
      padding: var(--sp-xl);
      scroll-snap-align: start;
      transition: background 0.2s, border-color 0.2s;
    }
    .tribute-card:hover {
      background: rgba(255,255,255,0.08);
      border-color: rgba(255,255,255,0.14);
    }
    .tribute-card__quote {
      font-family: var(--font-display);
      font-size: 18px;
      font-weight: 400;
      font-style: italic;
      line-height: 1.55;
      color: var(--on-dark);
      margin-bottom: var(--sp-xl);
      position: relative;
    }
    .tribute-card__quote::before {
      content: '\201C';
      font-size: 48px;
      line-height: 1;
      font-family: var(--font-display);
      color: var(--gold-accent);
      opacity: 0.6;
      display: block;
      margin-bottom: -12px;
    }
    .tribute-card__author {
      display: flex;
      align-items: center;
      gap: var(--sp-md);
    }
    .tribute-card__avatar {
      width: 44px;
      height: 44px;
      border-radius: 50%;
      object-fit: cover;
      background: var(--tile-dark-2);
      display: flex;
      align-items: center;
      justify-content: center;
      font-family: var(--font-display);
      font-size: 17px;
      font-weight: 600;
      color: var(--gold-accent);
      flex-shrink: 0;
    }
    .tribute-card__name {
      font-weight: 600;
      font-size: 15px;
      color: var(--on-dark);
      line-height: 1.3;
    }
    .tribute-card__relation {
      font-size: 13px;
      color: var(--body-muted);
    }
    .tribute-card__date {
      font-size: 12px;
      color: rgba(255,255,255,0.3);
      margin-top: 4px;
    }
    .tributes-nav {
      display: flex;
      justify-content: center;
      gap: var(--sp-md);
      padding: var(--sp-xl) var(--sp-xl) 0;
    }
    .tributes-nav button {
      width: 44px; height: 44px;
      border-radius: 50%;
      border: 1px solid rgba(255,255,255,0.15);
      background: rgba(255,255,255,0.07);
      color: var(--on-dark);
      font-size: 18px;
      cursor: pointer;
      display: flex;
      align-items: center;
      justify-content: center;
      transition: background 0.2s, transform 0.1s;
    }
    .tributes-nav button:hover { background: rgba(255,255,255,0.15); }
    .tributes-nav button:active { transform: scale(0.92); }
    .tributes-section__footer {
      text-align: center;
      padding-top: var(--sp-xxl);
    }

    /* ─── GALLERY PREVIEW ─── */
    .gallery-preview {
      background: var(--canvas-parchment);
      padding: var(--sp-section) var(--sp-xl);
    }
    .gallery-preview__inner { max-width: 1200px; margin: 0 auto; }
    .gallery-preview__header {
      text-align: center;
      margin-bottom: var(--sp-xxl);
    }
    .gallery-preview__heading {
      font-family: var(--font-display);
      font-size: clamp(28px, 4vw, 40px);
      font-weight: 600;
      line-height: 1.1;
      color: var(--ink);
      margin-bottom: var(--sp-sm);
    }
    .gallery-preview__sub {
      font-size: 17px;
      font-weight: 300;
      color: var(--ink-muted-48);
    }
    .gallery-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      grid-template-rows: auto auto;
      gap: 12px;
    }
    .gallery-item {
      position: relative;
      border-radius: var(--r-md);
      overflow: hidden;
      cursor: pointer;
      background: var(--tile-dark-1);
    }
    .gallery-item:first-child {
      grid-row: 1 / 3;
    }
    .gallery-item__img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      transition: transform 0.4s ease;
    }
    .gallery-item:hover .gallery-item__img { transform: scale(1.04); }
    .gallery-item--placeholder {
      display: flex;
      align-items: center;
      justify-content: center;
      min-height: 180px;
    }
    .gallery-item__overlay {
      position: absolute;
      inset: 0;
      background: linear-gradient(to top, rgba(0,0,0,0.5) 0%, transparent 50%);
      opacity: 0;
      transition: opacity 0.3s;
      display: flex;
      align-items: flex-end;
      padding: var(--sp-md);
    }
    .gallery-item:hover .gallery-item__overlay { opacity: 1; }
    .gallery-item__caption {
      color: var(--on-dark);
      font-size: 13px;
      font-weight: 400;
    }
    /* Placeholder gallery items using CSS art */
    .gallery-ph {
      width: 100%; height: 100%; min-height: 180px;
      display: flex; align-items: center; justify-content: center;
      flex-direction: column;
      gap: 8px;
      color: rgba(255,255,255,0.2);
      font-size: 13px;
      letter-spacing: 0.06em;
    }
    .gallery-ph svg { opacity: 0.3; }
    .gallery-preview__footer {
      text-align: center;
      margin-top: var(--sp-xxl);
    }

    /* ─── TRIBUTE FORM SECTION ─── */
    .tribute-form-section {
      background: var(--canvas);
      padding: var(--sp-section) var(--sp-xl);
    }
    .tribute-form-section__inner {
      max-width: 680px;
      margin: 0 auto;
    }
    .tribute-form-section__header {
      text-align: center;
      margin-bottom: var(--sp-xxl);
    }
    .tribute-form-section__heading {
      font-family: var(--font-display);
      font-size: clamp(28px, 4vw, 40px);
      font-weight: 600;
      line-height: 1.1;
      color: var(--ink);
      margin-bottom: var(--sp-sm);
    }
    .tribute-form-section__sub {
      font-size: 17px;
      font-weight: 300;
      color: var(--ink-muted-48);
    }
    .tribute-form {
      display: flex;
      flex-direction: column;
      gap: var(--sp-lg);
    }
    .form-row {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: var(--sp-md);
    }
    .form-field {
      display: flex;
      flex-direction: column;
      gap: 6px;
    }
    .form-field label {
      font-size: 14px;
      font-weight: 600;
      color: var(--ink);
      letter-spacing: -0.224px;
    }
    .form-field input,
    .form-field textarea,
    .form-field select {
      background: var(--canvas-parchment);
      border: 1px solid var(--hairline);
      border-radius: var(--r-sm);
      padding: 12px 16px;
      font-size: 17px;
      color: var(--ink);
      line-height: 1.47;
      outline: none;
      transition: border-color 0.2s, box-shadow 0.2s;
      width: 100%;
      -webkit-appearance: none;
    }
    .form-field input:focus,
    .form-field textarea:focus,
    .form-field select:focus {
      border-color: var(--primary);
      box-shadow: 0 0 0 3px rgba(0,102,204,0.15);
    }
    .form-field textarea {
      min-height: 140px;
      resize: vertical;
    }
    .form-field input::placeholder,
    .form-field textarea::placeholder {
      color: var(--ink-muted-48);
    }
    .upload-zone {
      border: 2px dashed var(--hairline);
      border-radius: var(--r-sm);
      padding: var(--sp-xl);
      text-align: center;
      cursor: pointer;
      transition: border-color 0.2s, background 0.2s;
      position: relative;
      overflow: hidden;
    }
    .upload-zone:hover {
      border-color: var(--primary);
      background: rgba(0,102,204,0.03);
    }
    .upload-zone input[type="file"] {
      position: absolute;
      inset: 0;
      opacity: 0;
      cursor: pointer;
    }
    .upload-zone__icon { font-size: 28px; margin-bottom: var(--sp-xs); }
    .upload-zone__text { font-size: 14px; color: var(--ink-muted-48); }
    .upload-zone__text strong { color: var(--primary); }
    .upload-zones {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: var(--sp-md);
    }
    .upload-zone-label {
      font-size: 13px;
      font-weight: 600;
      color: var(--ink-muted-80);
      margin-bottom: var(--sp-xs);
      letter-spacing: -0.224px;
    }
    .form-submit {
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: var(--sp-sm);
      padding-top: var(--sp-sm);
    }
    .form-submit .btn-primary {
      width: 100%;
      max-width: 320px;
      padding: 14px 28px;
      font-size: 17px;
    }
    .form-submit__note {
      font-size: 12px;
      color: var(--ink-muted-48);
    }
    #form-success {
      display: none;
      text-align: center;
      padding: var(--sp-xxl);
      background: var(--canvas-parchment);
      border-radius: var(--r-lg);
      border: 1px solid var(--hairline);
    }
    #form-success .success-icon { font-size: 48px; margin-bottom: var(--sp-md); }
    #form-success h3 {
      font-family: var(--font-display);
      font-size: 24px;
      font-weight: 600;
      color: var(--ink);
      margin-bottom: var(--sp-sm);
    }
    #form-success p { color: var(--ink-muted-48); }

    /* ─── FOOTER ─── */
    .site-footer {
      background: var(--canvas-parchment);
      border-top: 1px solid var(--hairline);
      padding: 64px var(--sp-xl) var(--sp-xl);
    }
    .site-footer__inner {
      max-width: 980px;
      margin: 0 auto;
    }
    .site-footer__top {
      display: grid;
      grid-template-columns: 2fr;
      text-align: center;
      gap: var(--sp-xxl);
      padding-bottom: var(--sp-xxl);
      border-bottom: 1px solid var(--hairline);
      margin-bottom: var(--sp-xl);
    }
    .site-footer__brand-name {
      font-family: var(--font-display);
      font-size: 20px;
      font-weight: 600;
      color: var(--ink);
      margin-bottom: var(--sp-sm);
    }
    .site-footer__brand-sub {
      font-size: 14px;
      color: var(--ink-muted-48);
      line-height: 1.6;
      margin-bottom: var(--sp-lg);
    }
    .site-footer__col-title {
      font-size: 14px;
      font-weight: 600;
      color: var(--ink);
      letter-spacing: -0.224px;
      margin-bottom: var(--sp-md);
    }
    .site-footer__links {
      list-style: none;
      display: flex;
      flex-direction: column;
    }
    .site-footer__links a {
      font-size: 17px;
      color: var(--ink-muted-80);
      line-height: 2.4;
      letter-spacing: 0;
      transition: color 0.2s;
    }
    .site-footer__links a:hover { color: var(--primary); }
    .site-footer__bottom {
      display: flex;
      align-items: center;
      justify-content: space-between;
      flex-wrap: wrap;
      gap: var(--sp-md);
    }
    .site-footer__legal {
      font-size: 12px;
      color: var(--ink-muted-48);
    }
    .site-footer__socials {
      display: flex;
      gap: var(--sp-md);
    }
    .site-footer__socials a {
      width: 36px; height: 36px;
      border-radius: 50%;
      background: var(--hairline);
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 15px;
      color: var(--ink-muted-80);
      transition: background 0.2s, color 0.2s;
    }
    .site-footer__socials a:hover { background: var(--primary); color: var(--on-dark); }

    /* ─── SCROLL REVEAL ─── */
    .reveal {
      opacity: 0;
      transform: translateY(24px);
      transition: opacity 0.7s ease, transform 0.7s ease;
    }
    .reveal.visible {
      opacity: 1;
      transform: translateY(0);
    }

    /* ─── MUSIC TOGGLE ─── */
    .music-btn {
      position: fixed;
      bottom: var(--sp-xl);
      right: var(--sp-xl);
      z-index: 900;
      width: 44px; height: 44px;
      border-radius: 50%;
      background: rgba(0,0,0,0.6);
      backdrop-filter: blur(8px);
      border: 1px solid rgba(255,255,255,0.15);
      color: var(--on-dark);
      font-size: 18px;
      cursor: pointer;
      display: flex;
      align-items: center;
      justify-content: center;
      transition: background 0.2s, transform 0.1s;
      box-shadow: 0 2px 12px rgba(0,0,0,0.3);
    }
    .music-btn:hover { background: rgba(0,0,0,0.8); }
    .music-btn:active { transform: scale(0.92); }
    .music-btn__tooltip {
      position: absolute;
      right: 52px;
      top: 50%;
      transform: translateY(-50%);
      background: rgba(0,0,0,0.75);
      color: var(--on-dark);
      font-size: 12px;
      padding: 5px 10px;
      border-radius: var(--r-sm);
      white-space: nowrap;
      opacity: 0;
      pointer-events: none;
      transition: opacity 0.2s;
    }
    .music-btn:hover .music-btn__tooltip { opacity: 1; }

    /* ─── RESPONSIVE ─── */
    @media (max-width: 1068px) {
      .announcement__inner { grid-template-columns: 1fr; }
      .bio-preview__inner { grid-template-columns: 1fr; gap: var(--sp-xxl); }
      .bio-preview__img-wrap { max-width: 320px; margin: 0 auto; }
      .site-footer__top { grid-template-columns: 1fr 1fr; }
    }
    @media (max-width: 834px) {
      .g-nav__links { display: none; }
      .g-nav__cta { display: none; }
      .g-nav__hamburger { display: flex; }
      .gallery-grid { grid-template-columns: 1fr 1fr; }
      .gallery-item:first-child { grid-row: auto; }
      .upload-zones { grid-template-columns: 1fr; }
      .form-row { grid-template-columns: 1fr; }
    }
    @media (max-width: 640px) {
      .hero__portrait-ring { width: 180px; height: 180px; }
      .hero__candles { gap: 24px; }
      .gallery-grid { grid-template-columns: 1fr; }
      .site-footer__top { grid-template-columns: 1fr; gap: var(--sp-xl); }
      .countdown-grid { gap: var(--sp-sm); }
      .countdown-unit__num { font-size: 28px; }
      .tribute-card { flex: 0 0 280px; }
    }
    @media (max-width: 419px) {
      .hero__name { font-size: 30px; }
      .hero__ctas { flex-direction: column; align-items: center; }
      .hero__portrait-ring { width: 150px; height: 150px; }
    }
  