:root {
    --cream: #FAF7F2;
    --parchment: #F2EDE3;
    --warm-white: #FEFCF8;
    --ink: #2A2218;
    --ink-soft: #5A4F3E;
    --ink-muted: #9B8F7E;
    --gold: #C9A84C;
    --gold-light: #E8D5A3;
    --gold-pale: #F5EDD5;
    --blush: #E8CFC0;
    --sage: #B8C4B4;
    --border: rgba(201,168,76,0.25);
    --border-strong: rgba(201,168,76,0.5);
  }

  *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
  html { scroll-behavior: smooth; }
  body {
    background: var(--cream);
    color: var(--ink);
    font-family: 'Jost', sans-serif;
    font-weight: 300;
    overflow-x: hidden;
    cursor: none;
  }

  .cursor { position: fixed; width: 8px; height: 8px; background: var(--gold); border-radius: 50%; pointer-events: none; z-index: 9999; transform: translate(-50%, -50%); transition: transform 0.1s ease; }
  .cursor-ring { position: fixed; width: 32px; height: 32px; border: 1px solid var(--gold); border-radius: 50%; pointer-events: none; z-index: 9998; transform: translate(-50%, -50%); transition: all 0.2s ease; opacity: 0.6; }

  #bg-canvas { position: fixed; top: 0; left: 0; width: 100%; height: 100%; pointer-events: none; z-index: 0; opacity: 0.45; }

  /* HERO */
  .hero { position: relative; min-height: 100svh; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; z-index: 1; padding: 4rem 2rem; overflow: hidden; }
  .hero-noise { position: absolute; inset: 0; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.03'/%3E%3C/svg%3E"); opacity: 0.4; pointer-events: none; }
  .hero-lines { position: absolute; inset: 0; background: repeating-linear-gradient(0deg, transparent, transparent 79px, rgba(201,168,76,0.06) 80px); pointer-events: none; }

  .hero-top-ornament { font-family: 'Cormorant Garamond', serif; font-size: clamp(0.65rem, 1.5vw, 0.8rem); letter-spacing: 0.35em; color: var(--gold); text-transform: uppercase; margin-bottom: 2.5rem; opacity: 0; animation: fadeUp 1s ease 0.3s forwards; }
  .hero-subline { font-size: clamp(0.65rem, 1.5vw, 0.75rem); letter-spacing: 0.3em; color: var(--ink-muted); text-transform: uppercase; margin-bottom: 1.5rem; opacity: 0; animation: fadeUp 1s ease 0.5s forwards; }
  .hero-names { font-family: 'Cormorant Garamond', serif; font-size: clamp(3.2rem, 9vw, 7rem); font-weight: 300; line-height: 1.0; color: var(--ink); letter-spacing: -0.02em; opacity: 0; animation: fadeUp 1.2s ease 0.7s forwards; }
  .hero-names .amp { font-family: 'Petit Formal Script', cursive; font-size: 0.65em; color: var(--gold); display: block; line-height: 1.3; }

  .hero-date-line { display: flex; align-items: center; gap: 1.5rem; margin: 2.5rem auto; opacity: 0; animation: fadeUp 1s ease 1s forwards; }
  .hero-date-line .line { width: 60px; height: 1px; background: var(--border-strong); }
  .hero-date-line span { font-size: 0.75rem; letter-spacing: 0.3em; color: var(--ink-soft); text-transform: uppercase; }

  .hero-logo { width: clamp(90px, 16vw, 140px); height: auto; margin-bottom: 1.2rem; opacity: 0; animation: fadeUp 1.2s ease 0.1s forwards, logoGlow 5s ease-in-out 1.5s infinite; filter: drop-shadow(0 4px 14px rgba(184,137,31,0.25)); }
  @keyframes logoGlow { 0%,100% { filter: drop-shadow(0 4px 14px rgba(184,137,31,0.2)); } 50% { filter: drop-shadow(0 6px 22px rgba(201,168,76,0.55)); } }
  .hero-top-ornament { margin-bottom: 1.5rem !important; }

  /* SEAL */
  .seal-wrap { margin-top: 1rem; opacity: 0; animation: fadeUp 1s ease 1.2s forwards; }
  .seal { width: 90px; height: 90px; border-radius: 50%; background: radial-gradient(circle at 40% 35%, #d4aa50, #b8891f 60%, #8a6010); display: flex; align-items: center; justify-content: center; cursor: pointer; position: relative; box-shadow: 0 0 0 3px var(--cream), 0 0 0 4px var(--gold), 0 6px 30px rgba(184,137,31,0.3); transition: transform 0.4s cubic-bezier(0.34,1.56,0.64,1), box-shadow 0.4s ease; animation: sealFloat 6s ease-in-out infinite; }
  .seal:hover { transform: scale(1.08) rotate(-3deg); box-shadow: 0 0 0 3px var(--cream), 0 0 0 4px var(--gold), 0 12px 40px rgba(184,137,31,0.45); }
  .seal-inner { width: 68px; height: 68px; border-radius: 50%; border: 1px solid rgba(255,255,255,0.35); display: flex; align-items: center; justify-content: center; flex-direction: column; }
  .seal-monogram { font-family: 'Cormorant Garamond', serif; font-size: 1.4rem; font-weight: 400; color: rgba(255,255,255,0.92); line-height: 1; letter-spacing: 0.05em; }
  .seal-text-ring { position: absolute; inset: 0; width: 100%; height: 100%; }
  .seal-label { font-size: 0.6rem; letter-spacing: 0.15em; color: rgba(255,255,255,0.7); text-transform: uppercase; margin-top: 2px; }
  @keyframes sealFloat { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-6px); } }
  .seal-hint { font-size: 0.6rem; letter-spacing: 0.25em; color: var(--ink-muted); margin-top: 0.75rem; text-transform: uppercase; text-align: center; }

  .scroll-cue { position: absolute; bottom: 2.5rem; left: 50%; transform: translateX(-50%); display: flex; flex-direction: column; align-items: center; gap: 8px; opacity: 0; animation: fadeIn 1s ease 2s forwards; }
  .scroll-cue span { font-size: 0.6rem; letter-spacing: 0.3em; color: var(--ink-muted); text-transform: uppercase; }
  .scroll-line { width: 1px; height: 48px; background: linear-gradient(to bottom, var(--gold), transparent); animation: scrollPulse 2s ease-in-out infinite; }
  @keyframes scrollPulse { 0%, 100% { transform: scaleY(1); opacity: 0.6; } 50% { transform: scaleY(0.5); opacity: 1; } }

  /* SECTIONS */
  section { position: relative; z-index: 1; padding: clamp(4rem, 8vw, 7rem) clamp(1.5rem, 5vw, 4rem); }

  /* COUNTDOWN */

  /* EVENTS */

  @media (max-width: 640px) {
  }

  /* VENUE */

  /* DRESS CODE */

  
  /* FAMILY */
  @media (max-width: 560px) { .family-grid { grid-template-columns: 1fr; gap: 2rem; } }

  /* FOOTER */

  /* MODAL */
  .modal-overlay { position: fixed; inset: 0; background: rgba(42,34,24,0.92); z-index: 1000; display: flex; align-items: center; justify-content: center; opacity: 0; pointer-events: none; transition: opacity 0.4s ease; }
  .modal-overlay.open { opacity: 1; pointer-events: all; }
  .modal-box { background: var(--cream); padding: 3rem 2.5rem; max-width: 420px; width: 90%; text-align: center; position: relative; transform: scale(0.9) translateY(20px); transition: transform 0.4s cubic-bezier(0.34,1.56,0.64,1); }
  .modal-overlay.open .modal-box { transform: scale(1) translateY(0); }
  .modal-close { position: absolute; top: 1rem; right: 1.25rem; font-size: 1.2rem; color: var(--ink-muted); cursor: pointer; background: none; border: none; font-family: 'Jost', sans-serif; transition: color 0.2s; line-height: 1; }
  .modal-close:hover { color: var(--ink); }
  .modal-title { font-family: 'Cormorant Garamond', serif; font-size: 1.8rem; color: var(--ink); margin: 0.5rem 0; }
  .modal-subtitle { font-size: 0.7rem; letter-spacing: 0.3em; color: var(--gold); text-transform: uppercase; margin-bottom: 1.5rem; }
  .modal-body { font-size: 0.85rem; color: var(--ink-soft); line-height: 1.9; margin-bottom: 1.75rem; }
  .modal-cta { display: inline-block; padding: 0.75rem 2rem; border: 1px solid var(--ink); font-size: 0.65rem; letter-spacing: 0.3em; text-transform: uppercase; color: var(--ink); text-decoration: none; background: transparent; cursor: pointer; font-family: 'Jost', sans-serif; transition: background 0.3s ease, color 0.3s ease; }
  .modal-cta:hover { background: var(--ink); color: var(--cream); }

  @keyframes fadeUp { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }
  @keyframes fadeIn { from { opacity: 0; } to { opacity: 0.8; } }

  /* ============ 3D DEPTH SYSTEM ============ */
  .hero { perspective: 1100px; perspective-origin: 50% 42%; --p: 0; --tx: 0; --ty: 0; --k: 1; }
  .hero-stage { position: relative; z-index: 2; width: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; transform-style: preserve-3d;
    transform: rotateX(calc(var(--p) * 14deg + var(--ty) * -3deg * var(--k))) rotateY(calc(var(--tx) * 5deg * var(--k))) translateZ(calc(var(--p) * -260px)); will-change: transform; }
  .hero-fade { position: absolute; inset: 0; z-index: 3; background: var(--cream); opacity: calc(var(--p) * 0.96); pointer-events: none; }
  .hero-scene { position: absolute; inset: 0; z-index: 1; transform-style: preserve-3d; pointer-events: none; }

  /* each piece of hero content sits at its own depth and drifts at its own speed */
  .hero-logo-wrap { translate: calc(var(--tx) * -16px * var(--k)) calc(var(--p) * -110px + var(--ty) * -8px * var(--k)) 110px; transform: rotateY(calc(var(--tx) * 16deg * var(--k) + var(--p) * 110deg)) rotateX(calc(var(--ty) * -10deg * var(--k))); will-change: transform; }
  .hero-top-ornament, .hero-stage > .hero-subline { translate: calc(var(--tx) * -6px * var(--k)) calc(var(--p) * -70px) 30px; }
  .hero-names { translate: calc(var(--tx) * -10px * var(--k)) calc(var(--p) * -45px + var(--ty) * -5px * var(--k)) 60px;
    text-shadow: calc(var(--tx) * -1px) 1px 0 #f0e3b9, calc(var(--tx) * -2px) 2px 0 #ead9a6, calc(var(--tx) * -3px) 3px 0 #e4d095, calc(var(--tx) * -4px) 4px 0 #ddc786, calc(var(--tx) * -5px) 5px 0 #d6bd78, calc(var(--tx) * -8px) 16px 24px rgba(138, 96, 16, 0.22); }
  .hero-names .amp { text-shadow: 0 8px 18px rgba(184, 137, 31, 0.3); translate: 0 0 40px; }
  .hero-date-line { translate: calc(var(--tx) * -6px * var(--k)) calc(var(--p) * -25px) 35px; }
  .seal-wrap { translate: calc(var(--tx) * -22px * var(--k)) calc(var(--p) * 45px) 130px; }

  /* floating 3D scene pieces */
  .s-item { position: absolute; left: var(--x); top: var(--y); width: var(--s); height: var(--s); margin: calc(var(--s) / -2) 0 0 calc(var(--s) / -2);
    translate: calc(var(--tx) * var(--d) * -70px * var(--k)) calc(var(--ty) * var(--d) * -45px * var(--k) + var(--p) * var(--d) * -480px) var(--z);
    filter: blur(var(--b, 0px)); opacity: var(--o, 0.85); transform-style: preserve-3d; }
  .s-item > i { display: block; width: 100%; height: 100%; animation: var(--anim) var(--dur) linear infinite; animation-delay: var(--delay); }
  .s-diamond > i { background: linear-gradient(135deg, rgba(240, 225, 180, 0.95), rgba(201, 168, 76, 0.55)); border: 1px solid rgba(184, 137, 31, 0.6); box-shadow: 0 6px 18px rgba(184, 137, 31, 0.2); }
  .s-petal > i { background: linear-gradient(160deg, rgba(232, 207, 192, 0.95), rgba(201, 168, 76, 0.45)); border-radius: 0 100% 0 100%; border: 1px solid rgba(201, 168, 76, 0.45); }
  .s-ring > i { border: 1.5px solid rgba(201, 168, 76, 0.75); border-radius: 50%; box-shadow: inset 0 0 10px rgba(201, 168, 76, 0.25); }
  .s-dot > i { border-radius: 50%; background: radial-gradient(circle at 35% 30%, rgba(255, 244, 205, 0.95), rgba(201, 168, 76, 0.5) 60%, rgba(201, 168, 76, 0)); }
  .s-orb { border-radius: 50%; }
  .s-orb > i { border-radius: 50%; animation: orbPulse 9s ease-in-out infinite alternate; }
  .s-mandala { position: absolute; left: 50%; top: 46%; width: min(150vw, 1300px); aspect-ratio: 1; margin: calc(min(150vw, 1300px) / -2) 0 0 calc(min(150vw, 1300px) / -2);
    translate: calc(var(--tx) * -26px * var(--k)) calc(var(--ty) * -18px * var(--k) + var(--p) * -140px) -520px; transform: rotate(calc(var(--p) * 160deg)); opacity: 0.55; }
  .s-mandala svg { width: 100%; height: 100%; animation: spinSlow 160s linear infinite; }
  @keyframes tumbleA { to { transform: rotateX(360deg) rotateY(360deg) rotateZ(180deg); } }
  @keyframes tumbleB { from { transform: rotateY(0) rotateZ(25deg); } to { transform: rotateY(360deg) rotateZ(25deg); } }
  @keyframes tumbleC { from { transform: rotateX(70deg) rotateZ(0); } to { transform: rotateX(70deg) rotateZ(360deg); } }
  @keyframes bob3d { 0%, 100% { transform: translateY(0) rotateZ(-6deg); } 50% { transform: translateY(-22px) rotateZ(6deg); } }
  @keyframes orbPulse { from { transform: scale(0.9); opacity: 0.7; } to { transform: scale(1.1); opacity: 1; } }
  @keyframes spinSlow { to { transform: rotate(360deg); } }

  /* scroll-linked sections */
  .modal-box { transform: perspective(900px) rotateX(-22deg) scale(0.9) translateY(20px); }
  .modal-overlay.open .modal-box { transform: perspective(900px) rotateX(0) scale(1) translateY(0); }
  @media (max-width: 640px) { .countdown-item { transform: rotateX(calc(var(--sp, 0) * 40deg)); } .hero-names { text-shadow: 0 1px 0 #ead9a6, 0 2px 0 #e0cb8e, 0 3px 0 #d6bd78, 0 10px 18px rgba(138, 96, 16, 0.22); } }
  @media (min-width: 700px) and (max-height: 900px) { .hero { padding-top: 1.5rem; padding-bottom: 3rem; } .hero-subline { margin-bottom: 1rem; } .hero-names .amp { line-height: 1.1; } .hero-names { font-size: clamp(2.8rem, 11vh, 5.6rem); } .hero-logo { width: clamp(70px, 11vh, 110px); } .hero-date-line { margin: 1.4rem auto; } .hero-top-ornament { margin-bottom: 1rem !important; } }
  @media (prefers-reduced-motion: reduce) { .s-item > i, .s-mandala svg, .s-orb > i { animation: none !important; } .hero-stage, .hero-logo-wrap, .s-item, .s-mandala { transition: none; } }

/* ============ STORY BACKDROP (faint scroll-scrubbed story behind every section after the hero) ============ */

/* phones: timeline puts the dot in the narrow column and the card in the wide one */
@media (max-width: 640px) { .event-row .event-node { order: -1; } }

/* ============ HERO ART — layered 3D scene ============ */
.hero { padding: 0; background: #2A2218; }
.hero-noise, .hero-lines, .scroll-cue { display: none; }
.hero-ambient { position: absolute; inset: 0; z-index: 0; background: url(../assets/hero/ambient.webp) center / cover; filter: blur(34px) brightness(0.55) saturate(1.25); transform: scale(1.3); }
.hero-art { position: absolute; top: 0; height: 100%; aspect-ratio: 941 / 1672; left: 50%; translate: -50% 0; z-index: 1; overflow: hidden; perspective: 1100px; perspective-origin: 50% 42%; pointer-events: none; box-shadow: 0 0 90px rgba(0, 0, 0, 0.55); }
.hero-rig { position: absolute; inset: 0; transform-style: preserve-3d; transform: rotateX(calc(var(--ty) * -2.5deg * var(--k) + var(--p) * 5deg)) rotateY(calc(var(--tx) * 4deg * var(--k))); }
.hero-rig .layer { position: absolute; left: 0; top: 0; width: 100%; height: 100%; max-width: none; object-fit: fill; display: block; will-change: transform;
  translate: calc(var(--tx) * var(--d) * -11px * var(--k)) calc(var(--ty) * var(--d) * -8px * var(--k) + var(--p) * var(--ry) * 1px);
  transform: translateZ(calc(var(--z) + var(--p) * var(--dz))) scale(calc(var(--s) * 1.08)); }
.hero-scrim { position: absolute; inset: 0; z-index: 1; pointer-events: none; background: linear-gradient(180deg, rgba(30, 16, 12, 0.6) 0%, rgba(30, 16, 12, 0.22) 30%, transparent 46%, transparent 76%, rgba(20, 12, 9, 0.55) 100%); }
.hero-fade { background: #2A2218; }

.hero-stage { flex: 1 1 auto; width: min(100%, calc(100svh * 0.5628)); margin: 0 auto; justify-content: space-between; padding: clamp(1.1rem, 4svh, 2.4rem) 1.25rem clamp(0.9rem, 3svh, 1.8rem); }
.hero-top, .hero-bottom { display: flex; flex-direction: column; align-items: center; transform-style: preserve-3d; width: 100%; }
.hero .hero-logo { width: clamp(56px, 8.5svh, 92px); margin-bottom: 0.5rem; filter: drop-shadow(0 2px 10px rgba(30, 14, 8, 0.65)); animation: fadeUp 1.2s ease 0.1s forwards; }
.hero .hero-top-ornament { color: var(--gold-light); font-size: clamp(0.5rem, 1.5svh, 0.7rem); letter-spacing: 0.28em; margin-bottom: 0.5rem !important; text-shadow: 0 1px 8px rgba(30, 14, 8, 0.7); }
.hero .hero-subline, .hero .hero-stage > .hero-top > .hero-subline { color: rgba(255, 246, 232, 0.92); font-size: clamp(0.5rem, 1.45svh, 0.68rem); margin-bottom: 0.6rem; text-shadow: 0 1px 8px rgba(30, 14, 8, 0.7); }
.hero .hero-names { color: #fff7ea; font-size: clamp(2.1rem, 6.2svh, 4.6rem); line-height: 1; text-shadow: calc(var(--tx) * -2px) 2px 22px rgba(35, 18, 10, 0.65), 0 1px 3px rgba(35, 18, 10, 0.55); }
.hero .hero-names .amp { color: #f2d58a; font-size: 0.55em; line-height: 1.15; text-shadow: 0 2px 14px rgba(35, 18, 10, 0.7); }
.hero .hero-date-line { margin: 0.7rem auto 0.45rem; gap: 0.9rem; }
.hero .hero-date-line .line { width: 38px; background: rgba(242, 213, 138, 0.75); }
.hero .hero-date-line span { color: rgba(255, 246, 232, 0.96); font-size: clamp(0.55rem, 1.6svh, 0.72rem); text-shadow: 0 1px 8px rgba(30, 14, 8, 0.75); }
.hero .hero-top > .hero-subline:last-child { margin-bottom: 0 !important; }
.hero .seal-hint { color: rgba(255, 246, 232, 0.88); text-shadow: 0 1px 8px rgba(30, 14, 8, 0.8); margin-top: 0.5rem; }
.hero .seal { width: 76px; height: 76px; }
.hero .seal-inner { width: 58px; height: 58px; }

/* floating bougainvillea petals + gold sparks between the layers */
.s-petal > i { background: linear-gradient(160deg, rgba(232, 74, 140, 0.92), rgba(255, 178, 196, 0.78)); border: none; box-shadow: 0 2px 8px rgba(120, 20, 60, 0.25); }

/* keep text close to the screen plane so perspective never pushes it off the edges */
.hero .hero-logo-wrap { translate: calc(var(--tx) * -8px * var(--k)) calc(var(--p) * -110px + var(--ty) * -4px * var(--k)) 30px; }
.hero .hero-top-ornament, .hero .hero-stage > .hero-top > .hero-subline { translate: calc(var(--tx) * -4px * var(--k)) calc(var(--p) * -70px) 12px; }
.hero .hero-names { translate: calc(var(--tx) * -6px * var(--k)) calc(var(--p) * -45px + var(--ty) * -3px * var(--k)) 24px; }
.hero .hero-date-line { translate: calc(var(--tx) * -4px * var(--k)) calc(var(--p) * -25px) 14px; }
.hero .seal-wrap { translate: calc(var(--tx) * -10px * var(--k)) calc(var(--p) * 45px) 40px; }

/* text rises with scroll at rates that decrease down the page, so lines never collide */
.hero .hero-logo-wrap { translate: calc(var(--tx) * -8px * var(--k)) calc(var(--p) * -110px + var(--ty) * -4px * var(--k)) 30px; }
.hero .hero-top-ornament { translate: calc(var(--tx) * -4px * var(--k)) calc(var(--p) * -96px) 12px; }
.hero .hero-stage > .hero-top > .hero-subline { translate: calc(var(--tx) * -4px * var(--k)) calc(var(--p) * -84px) 12px; }
.hero .hero-names { translate: calc(var(--tx) * -6px * var(--k)) calc(var(--p) * -68px + var(--ty) * -3px * var(--k)) 24px; }
.hero .hero-date-line { translate: calc(var(--tx) * -4px * var(--k)) calc(var(--p) * -52px) 14px; }
.hero .hero-stage > .hero-top > .hero-subline:last-child { translate: calc(var(--tx) * -4px * var(--k)) calc(var(--p) * -40px) 14px; }
.hero .hero-logo { filter: drop-shadow(0 2px 10px rgba(30, 14, 8, 0.7)) brightness(1.25) saturate(1.1); }

/* ===== hero text: larger + heavier ===== */
.hero .hero-names { font-size: clamp(2.5rem, 7.4svh, 5.4rem); font-weight: 600; letter-spacing: -0.01em; line-height: 0.98; }
.hero .hero-names .amp { font-weight: 500; font-size: 0.5em; line-height: 1.05; }
.hero .hero-top-ornament { font-size: clamp(0.6rem, 1.8svh, 0.82rem); font-weight: 600; letter-spacing: 0.24em; }
.hero .hero-subline, .hero .hero-stage > .hero-top > .hero-subline { font-size: clamp(0.62rem, 1.75svh, 0.8rem); font-weight: 400; letter-spacing: 0.26em; }
.hero .hero-date-line span { font-size: clamp(0.68rem, 1.95svh, 0.88rem); font-weight: 400; letter-spacing: 0.26em; }
.hero .hero-date-line { margin: 0.55rem auto 0.35rem; }
.hero .seal-hint { font-size: 0.66rem; font-weight: 400; }

.hero .hero-top-ornament { letter-spacing: 0.15em; }

/* ============ PAGES — full-screen layered scenes that continue the landing page ============ */
.page { position: relative; min-height: 100svh; display: flex; align-items: center; justify-content: center; overflow: hidden; padding: 0; z-index: 2; perspective: 1100px; }
.page-art { position: absolute; inset: 0; z-index: 0; transform-style: preserve-3d; pointer-events: none; }
.page-art .layer { position: absolute; left: 0; top: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; display: block; will-change: transform;
  translate: calc(var(--tx) * var(--d) * -12px * var(--k)) calc(var(--ty) * var(--d) * -8px * var(--k) + var(--sp, 0) * var(--d) * -70px + var(--oy, 0px));
  transform: translateZ(var(--z)) scale(calc(var(--s) * 1.1)); }
.page-scrim { position: absolute; inset: 0; z-index: 1; pointer-events: none; }
.page-stage { position: relative; z-index: 2; width: min(100%, calc(100svh * 0.5628)); margin: 0 auto; padding: clamp(2.2rem, 7svh, 4rem) 1.4rem clamp(2rem, 6svh, 3.5rem); display: flex; flex-direction: column; align-items: center; text-align: center; transform-style: preserve-3d; }

/* fallback skies — shown until the page art files exist in assets/pages/<page>/ */
.page-families { background: linear-gradient(180deg, #d9c2b4 0%, #c5d0dc 28%, #dfe6ea 60%, #efe6da 100%); color: #3a2a22; }
.page-events   { background: linear-gradient(180deg, #efe6da 0%, #f0c995 20%, #d57c5a 55%, #6b3a3a 100%); color: #fff6ea; }
.page-location { background: linear-gradient(180deg, #6b3a3a 0%, #2a2440 30%, #121a2e 70%, #0b1020 100%); color: #fff6ea; }
.page-families .page-scrim { background: radial-gradient(ellipse at 50% 45%, rgba(255, 255, 255, 0.45), rgba(255, 255, 255, 0) 65%); }
.page-events .page-scrim   { background: linear-gradient(180deg, rgba(40, 20, 15, 0.35), transparent 30%, transparent 70%, rgba(40, 20, 15, 0.5)); }
.page-location .page-scrim { background: linear-gradient(180deg, rgba(5, 8, 20, 0.5), transparent 35%, transparent 60%, rgba(5, 8, 20, 0.65)); }


/* shared type */
.pg-eyebrow { font-family: 'Jost', sans-serif; font-size: clamp(0.58rem, 1.7svh, 0.74rem); letter-spacing: 0.32em; text-transform: uppercase; opacity: 0.85; }
.pg-script { font-family: 'Petit Formal Script', cursive; font-weight: 400; font-size: clamp(2rem, 6.5svh, 3.4rem); line-height: 1.1; margin: 0.35rem 0 0.2rem; color: #6a3b3a; }
.pg-script.light { color: #ffe9c4; text-shadow: 0 2px 16px rgba(30, 14, 8, 0.55); }
.pg-script.sm { font-size: clamp(1.25rem, 3.6svh, 1.9rem); margin-top: 1.6rem; }
.pg-eyebrow.light, .pg-note.light { color: rgba(255, 246, 232, 0.9); text-shadow: 0 1px 8px rgba(30, 14, 8, 0.6); }
.pg-flower { color: #9a4a4a; font-size: 1rem; margin: 0.2rem 0 1.2rem; opacity: 0.85; }
.pg-flower.sm { font-size: 0.8rem; margin: 0.9rem 0 0; }
.pg-note { font-family: 'Cormorant Garamond', serif; font-style: italic; font-size: clamp(0.95rem, 2.6svh, 1.2rem); line-height: 1.5; margin-top: 2rem; opacity: 0.9; }

/* families */
.fam-cols { display: grid; grid-template-columns: 1fr 1px 1fr; gap: clamp(0.8rem, 3vw, 2rem); align-items: start; width: 100%; max-width: 560px; }
.fam-col { display: flex; flex-direction: column; align-items: center; }
.fam-rule { width: 1px; align-self: stretch; background: linear-gradient(180deg, transparent, rgba(106, 59, 58, 0.45) 20%, rgba(106, 59, 58, 0.45) 80%, transparent); }
.fam-side { font-family: 'Jost', sans-serif; font-size: clamp(0.55rem, 1.5svh, 0.66rem); letter-spacing: 0.3em; text-transform: uppercase; opacity: 0.75; margin-bottom: 0.9rem; }
.fam-names { font-family: 'Cormorant Garamond', serif; font-weight: 500; font-size: clamp(1.2rem, 3.4svh, 1.7rem); line-height: 1.2; }
.fam-rel { font-family: 'Jost', sans-serif; font-size: clamp(0.52rem, 1.4svh, 0.62rem); letter-spacing: 0.28em; text-transform: uppercase; opacity: 0.7; margin-top: 0.7rem; line-height: 1.8; }
.fam-rel span { font-family: 'Cormorant Garamond', serif; font-size: 1.5em; letter-spacing: 0.08em; text-transform: none; opacity: 1; }

/* events: parchment cards */
.cd-chip { font-family: 'Jost', sans-serif; font-size: 0.66rem; letter-spacing: 0.22em; text-transform: uppercase; color: #fff1d6; background: rgba(60, 30, 20, 0.45); border: 1px solid rgba(255, 225, 170, 0.45); border-radius: 999px; padding: 0.45rem 1rem; margin: 0.6rem 0 1.4rem; backdrop-filter: blur(6px); }
.cd-chip span { font-family: 'Cormorant Garamond', serif; font-size: 1.15rem; font-weight: 600; color: #ffe2a8; letter-spacing: 0; }
.cd-chip i { opacity: 0.5; margin: 0 0.2rem; font-style: normal; }
.cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); justify-content: center; gap: clamp(0.8rem, 2.5vw, 1.4rem); width: 100%; }
.cards { max-width: 560px; }
.parch { position: relative; text-align: left; padding: 1.4rem 1.3rem 1.2rem; color: #4a3328; background: #f6ead6 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence baseFrequency='.8' numOctaves='2'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23n)' opacity='.08'/%3E%3C/svg%3E");
  border: 1px solid rgba(154, 110, 60, 0.35); outline: 1px solid rgba(154, 110, 60, 0.25); outline-offset: -6px; box-shadow: 0 24px 50px -22px rgba(0, 0, 0, 0.55), inset 0 0 40px rgba(154, 110, 60, 0.12);
  transform: perspective(900px) rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg)); transition: transform 0.15s ease-out, opacity 0.9s ease, translate 0.9s ease; }
.parch-crest { text-align: center; color: #9a4a4a; font-size: 1rem; margin-bottom: 0.2rem; }
.parch-title { font-family: 'Cormorant Garamond', serif; font-weight: 600; font-size: 1.7rem; text-align: center; margin-bottom: 1rem; color: #5a3a2e; }
.parch-title span { display: block; font-weight: 400; font-size: 0.6em; letter-spacing: 0.12em; text-transform: uppercase; opacity: 0.8; margin-top: 0.1rem; }
.parch-row { display: grid; grid-template-columns: 1.6rem 1fr; gap: 0.6rem; align-items: start; font-family: 'Cormorant Garamond', serif; font-size: 1.02rem; line-height: 1.35; padding: 0.55rem 0; border-top: 1px dashed rgba(154, 110, 60, 0.35); }
.parch-row b { display: block; font-family: 'Jost', sans-serif; font-weight: 500; font-size: 0.55rem; letter-spacing: 0.3em; text-transform: uppercase; opacity: 0.65; margin-bottom: 0.1rem; }
.pi { font-size: 1rem; line-height: 1.3; filter: sepia(1) saturate(0.6) brightness(0.6); }
.parch-link { display: inline-block; margin-top: 0.8rem; font-family: 'Jost', sans-serif; font-size: 0.6rem; letter-spacing: 0.26em; text-transform: uppercase; color: #7a3b36; border-bottom: 1px solid currentColor; padding-bottom: 2px; }

/* location: torn paper cards */
.torn-row { display: grid; grid-template-columns: minmax(0, 300px); justify-content: center; gap: clamp(0.8rem, 3vw, 1.6rem); width: 100%; max-width: 520px; margin-top: 1.4rem; }
.torn { position: relative; display: flex; flex-direction: column; align-items: center; text-align: center; padding: 1.5rem 1rem 1.3rem; color: #4a3328; text-decoration: none; background: #f3e6d0;
  clip-path: polygon(0 3%, 6% 0, 15% 2%, 28% 0, 40% 3%, 55% 0, 68% 2%, 80% 0, 92% 3%, 100% 1%, 99% 20%, 100% 40%, 98% 60%, 100% 80%, 99% 97%, 92% 100%, 80% 98%, 66% 100%, 52% 97%, 38% 100%, 24% 98%, 10% 100%, 0 97%, 1% 80%, 0 60%, 2% 40%, 0 20%);
  box-shadow: 0 24px 50px -20px rgba(0, 0, 0, 0.8); transform: perspective(900px) rotate(var(--rot, 0deg)) rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg)); transition: transform 0.15s ease-out, opacity 0.9s ease, translate 0.9s ease; }
.torn:only-child { --rot: -1.5deg; padding: 1.8rem 1.4rem 1.5rem; } .torn-map { height: 90px; }
.torn-ic { font-size: 1.4rem; color: #7a3b36; margin-bottom: 0.3rem; }
.torn-title { font-family: 'Jost', sans-serif; font-weight: 500; font-size: 0.78rem; letter-spacing: 0.34em; text-transform: uppercase; }
.torn-sub { font-family: 'Cormorant Garamond', serif; font-style: italic; font-size: 0.95rem; line-height: 1.4; margin-top: 0.5rem; opacity: 0.85; }
.torn-map { display: block; width: 100%; height: 70px; margin-top: 0.9rem; border-radius: 3px; background: linear-gradient(135deg, #e8e0cf, #d9d3c0); position: relative; overflow: hidden; }
.torn-map::before { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, transparent 48%, #c9bfa6 48%, #c9bfa6 52%, transparent 52%), linear-gradient(0deg, transparent 58%, #c9bfa6 58%, #c9bfa6 62%, transparent 62%); }
.torn-map i { position: absolute; left: 50%; top: 42%; width: 12px; height: 12px; margin: -6px; border-radius: 50% 50% 50% 0; background: #c0392b; transform: rotate(-45deg); box-shadow: 0 2px 6px rgba(0, 0, 0, 0.4); }
.end-names { font-family: 'Cormorant Garamond', serif; font-weight: 600; font-size: clamp(1.6rem, 4.6svh, 2.4rem); color: #fff3df; margin-top: 2.2rem; text-shadow: 0 2px 14px rgba(0, 0, 0, 0.5); }
.end-date { font-family: 'Jost', sans-serif; font-size: 0.6rem; letter-spacing: 0.32em; text-transform: uppercase; color: rgba(255, 246, 232, 0.75); margin-top: 0.4rem; }

/* reveal (re-declared for the new pages) */
.reveal { opacity: 0; translate: 0 26px; transition: opacity 0.9s ease, translate 0.9s cubic-bezier(0.2, 0.7, 0.2, 1); }
.reveal.visible { opacity: 1; translate: 0 0; }
.reveal:nth-child(2) { transition-delay: 0.1s; } .reveal:nth-child(3) { transition-delay: 0.18s; } .reveal:nth-child(4) { transition-delay: 0.26s; } .reveal:nth-child(5) { transition-delay: 0.34s; }
@media (prefers-reduced-motion: reduce) { .reveal { opacity: 1; translate: none; transition: none; } .page-art .layer { translate: none; } }

/* pages share the landing page's portrait column; outside it, a dimmed blurred copy of the same sky */
.page { background: #2A2218; }
.page::before { content: ''; position: absolute; inset: -4%; z-index: 0; background: var(--page-bg); filter: blur(30px) brightness(0.45) saturate(1.1); }
.page-art { position: absolute; inset: auto; top: 0; height: 100%; aspect-ratio: 941 / 1672; left: 50%; translate: -50% 0; overflow: hidden; background: var(--page-bg); box-shadow: 0 0 90px rgba(0, 0, 0, 0.55); }
.page-scrim { position: absolute; inset: auto; top: 0; height: 100%; aspect-ratio: 941 / 1672; left: 50%; translate: -50% 0; }
.page-families { --page-bg: linear-gradient(180deg, #d9c2b4 0%, #c5d0dc 28%, #dfe6ea 60%, #efe6da 100%); background: #2A2218; }
.page-events   { --page-bg: linear-gradient(180deg, #efe6da 0%, #f0c995 20%, #d57c5a 55%, #6b3a3a 100%); background: #2A2218; }
.page-location { --page-bg: linear-gradient(180deg, #6b3a3a 0%, #2a2440 30%, #121a2e 70%, #0b1020 100%); background: #0b1020; }

/* keep headings clear of the fixed flower frame that hangs over the top of every page */
.page-stage { padding-top: max(18svh, 4rem); padding-bottom: 6svh; }
.page-families .page-stage { justify-content: center; }
.page-events .page-stage, .page-location .page-stage { padding-top: max(25svh, 5rem); }

/* events: compact side-by-side cards in the upper half so the mandap scene stays visible below */
.page-events .page-stage { justify-content: flex-start; padding-top: max(21svh, 5rem); }
.cards { grid-template-columns: 1fr 1fr; gap: clamp(0.6rem, 2.5vw, 1.2rem); max-width: 560px; }
.parch { padding: 0.9rem 0.8rem 0.8rem; outline-offset: -5px; }
.parch-crest { font-size: 0.8rem; margin-bottom: 0; }
.parch-title { font-size: clamp(1.15rem, 3.6svh, 1.5rem); margin-bottom: 0.5rem; }
.parch-title span { font-size: 0.52em; letter-spacing: 0.1em; }
.parch-row { grid-template-columns: 1.1rem 1fr; gap: 0.4rem; font-size: clamp(0.78rem, 2.2svh, 0.95rem); line-height: 1.3; padding: 0.4rem 0; }
.parch-row b { font-size: 0.48rem; letter-spacing: 0.26em; margin-bottom: 0.05rem; }
.pi { font-size: 0.8rem; }
.page-events .pg-note { margin-top: 1.2rem; font-size: clamp(0.85rem, 2.3svh, 1.05rem); }
.cd-chip { margin: 0.5rem 0 1rem; }

/* headings no longer need to clear a flower frame */
.page-stage { padding-top: clamp(2.2rem, 7svh, 4rem); }
.page-events .page-stage, .page-location .page-stage { padding-top: clamp(3rem, 10svh, 5rem); }
.page-events .page-stage { justify-content: center; }
.page-location .page-stage { justify-content: flex-start; padding-top: clamp(2.5rem, 8svh, 4.5rem); }
.page-location .end-names { margin-top: 1.4rem; }
.page-location { align-items: flex-start; }
.page-location .torn-map { height: 64px; }
.page-location .pg-script.sm { margin-top: 1.1rem; }
.page-location .torn-row { margin-top: 1rem; }

/* ===== events page: dark glass cards in the landing-page palette, content lifted so the mandap stays in view ===== */
.page-events { align-items: flex-start; }
.page-events .page-stage { justify-content: flex-start; padding-top: clamp(2.6rem, 9svh, 4.5rem); }
.page-events .cd-chip { margin: 0.4rem 0 0.9rem; }
.parch { background: linear-gradient(160deg, rgba(48, 26, 18, 0.62), rgba(30, 16, 12, 0.72)); backdrop-filter: blur(10px) saturate(1.2); -webkit-backdrop-filter: blur(10px) saturate(1.2);
  color: #f6e7cf; border: 1px solid rgba(232, 196, 120, 0.55); outline: 1px solid rgba(232, 196, 120, 0.25); outline-offset: -5px; border-radius: 4px;
  box-shadow: 0 24px 50px -24px rgba(0, 0, 0, 0.75), inset 0 0 40px rgba(232, 196, 120, 0.06); padding: 0.85rem 0.8rem 0.75rem; }
.parch-crest { color: #e8c478; }
.parch-title { color: #ffe9c4; }
.parch-title span { color: #e8c478; opacity: 0.9; }
.parch-row { border-top: 1px dashed rgba(232, 196, 120, 0.3); color: #f6e7cf; }
.parch-row b { color: #e8c478; opacity: 0.85; }
.pi { filter: sepia(1) saturate(1.4) brightness(1.15) hue-rotate(-8deg); }
.page-events .pg-note { margin-top: 1rem; }

/* events back plate: minimal zoom and nudged up so the mandap at the foot of the artwork shows */

/* ===== families: bigger type, new wording ===== */
.page-families .pg-eyebrow { font-size: clamp(0.66rem, 1.9svh, 0.84rem); font-weight: 500; }
.page-families .pg-script { font-size: clamp(2.3rem, 7.2svh, 3.8rem); }
.fam-cols { max-width: 620px; gap: clamp(0.7rem, 3vw, 1.6rem); }
.fam-side { font-size: clamp(0.62rem, 1.7svh, 0.74rem); font-weight: 500; letter-spacing: 0.32em; color: #7a3b36; opacity: 0.9; margin-bottom: 0.7rem; }
.fam-names { font-size: clamp(1.45rem, 4.2svh, 2.1rem); font-weight: 600; line-height: 1.12; color: #3a2a22; }
.fam-of { font-family: 'Cormorant Garamond', serif; font-style: italic; font-size: clamp(0.95rem, 2.5svh, 1.15rem); margin: 0.55rem 0 0.35rem; opacity: 0.8; }
.fam-parents { font-family: 'Cormorant Garamond', serif; font-weight: 500; font-size: clamp(1rem, 2.8svh, 1.3rem); line-height: 1.4; color: #3a2a22; }
.page-families .pg-note { font-size: clamp(1.05rem, 2.9svh, 1.35rem); margin-top: 1.8rem; }
@media (max-width: 360px) { .fam-names { font-size: 1.3rem; } .fam-parents { font-size: 0.95rem; } }

/* ===== families: stacked in one column so every name sits on one line at a larger size ===== */
.fam-cols { grid-template-columns: 1fr; gap: 0; max-width: 520px; }
.fam-rule { width: 64px; height: 1px; align-self: center; justify-self: center; margin: 1.1rem 0 1.2rem; background: linear-gradient(90deg, transparent, rgba(106, 59, 58, 0.6), transparent); }
.fam-names br { display: none; }
.fam-names { font-size: clamp(1.7rem, 4.7svh, 2.5rem); font-weight: 600; line-height: 1.1; color: #3a2a22; }
.fam-side { font-size: clamp(0.66rem, 1.9svh, 0.82rem); letter-spacing: 0.36em; margin-bottom: 0.45rem; }
.fam-of { font-size: clamp(1rem, 2.7svh, 1.3rem); margin: 0.4rem 0 0.2rem; }
.fam-parents { font-size: clamp(1.15rem, 3.2svh, 1.6rem); line-height: 1.35; }
.page-families .pg-flower { margin-bottom: 0.9rem; }
.page-families .pg-note { margin-top: 1.5rem; }
@media (max-width: 360px) { .fam-names { font-size: 1.7rem; } .fam-parents { font-size: 1.1rem; } }

/* events: bring the mandap up into the lower-middle of the screen */
.page-events .l-back { --z: -40px; --s: 1.0; --oy: -1%; transform-origin: 50% 100%; }
.page-events .l-mid { --oy: -2%; }
.page-events .page-art { background: linear-gradient(180deg, #efe6da 0%, #d57c5a 50%, #4a2a1e 88%, #2b1810 100%); }

.cd-chip { white-space: nowrap; font-size: 0.6rem; padding: 0.42rem 0.9rem; }
.cd-chip span { font-size: 1.05rem; font-variant-numeric: tabular-nums; min-width: 1.4em; display: inline-block; text-align: center; }
.venue-a { color: inherit; text-decoration: none; border-bottom: 1px solid rgba(232, 196, 120, 0.55); }
.venue-a:hover { color: #ffe9c4; border-color: #ffe9c4; }

/* venue lines in the Haldi card */
.venue-line { display: block; }
.venue-line + .venue-line { margin-top: 0.45rem; padding-top: 0.4rem; border-top: 1px dotted rgba(232, 196, 120, 0.3); }
/* location page: one card per venue */
.torn-row.two { grid-template-columns: 1fr 1fr; gap: clamp(0.7rem, 3vw, 1.4rem); max-width: 560px; }
.torn-row.two .torn { padding: 1.3rem 0.8rem 1.1rem; }
.torn-row.two .torn:first-child { --rot: -1.5deg; } .torn-row.two .torn:last-child { --rot: 1.5deg; margin-top: 0.9rem; }
.torn-venue { font-family: 'Cormorant Garamond', serif; font-weight: 600; font-size: clamp(1.2rem, 3.4svh, 1.6rem); color: #5a3a2e; margin-top: 0.35rem; line-height: 1.1; }
.torn-row.two .torn-sub { font-size: 0.82rem; margin-top: 0.35rem; }
.torn-row.two .torn-map { height: 56px; margin-top: 0.7rem; }
.torn-row.two .torn-venue { margin-top: 0.15rem; }

/* ============ ambient motion: falling petals (families) and rising lanterns (location) ============ */
.fx { position: absolute; inset: 0; overflow: hidden; pointer-events: none; transform: translateZ(-60px) scale(1.06); }
.fx img { position: absolute; left: var(--x); top: -12%; width: var(--w); height: auto; opacity: 0; will-change: transform, opacity; animation-play-state: paused; }
.fx.on img { animation-play-state: running; }
.fx-petals img { animation: petalFall var(--dur) linear var(--delay) infinite; }
.fx-petals img i, .fx-petals .spin { animation: petalSpin var(--spin) ease-in-out infinite alternate; }
@keyframes petalFall {
  0%   { transform: translate3d(0, 0, 0) rotate(var(--r0)); opacity: 0; }
  6%   { opacity: var(--o); }
  25%  { transform: translate3d(calc(var(--sw) * -1), 28vh, 0) rotate(calc(var(--r0) + 40deg)); }
  50%  { transform: translate3d(var(--sw), 56vh, 0) rotate(calc(var(--r0) + 110deg)); }
  75%  { transform: translate3d(calc(var(--sw) * -0.6), 84vh, 0) rotate(calc(var(--r0) + 160deg)); opacity: var(--o); }
  100% { transform: translate3d(calc(var(--sw) * 0.4), 118vh, 0) rotate(calc(var(--r0) + 220deg)); opacity: 0; }
}
.fx-lanterns img { top: auto; bottom: -14%; filter: drop-shadow(0 0 10px rgba(255, 170, 60, 0.55)); animation: lanternRise var(--dur) linear var(--delay) infinite, lanternGlow 2.8s ease-in-out infinite alternate; }
@keyframes lanternRise {
  0%   { transform: translate3d(0, 0, 0) rotate(0deg) scale(1); opacity: 0; }
  8%   { opacity: var(--o); }
  30%  { transform: translate3d(var(--sw), -32vh, 0) rotate(3deg) scale(0.92); }
  60%  { transform: translate3d(calc(var(--sw) * -0.7), -66vh, 0) rotate(-3deg) scale(0.8); opacity: var(--o); }
  100% { transform: translate3d(calc(var(--sw) * 0.5), -118vh, 0) rotate(2deg) scale(0.62); opacity: 0; }
}
@keyframes lanternGlow { from { filter: drop-shadow(0 0 8px rgba(255, 170, 60, 0.4)) brightness(0.95); } to { filter: drop-shadow(0 0 16px rgba(255, 190, 90, 0.8)) brightness(1.12); } }
@media (prefers-reduced-motion: reduce) { .fx { display: none; } }

/* ============ shooting stars on the night page ============ */
.fx-stars { position: absolute; inset: 0; overflow: hidden; pointer-events: none; transform: translateZ(-120px) scale(1.11); }
.shoot { position: absolute; left: var(--x); top: var(--y); width: var(--len); height: 2px; border-radius: 2px; opacity: 0; transform-origin: 100% 50%; transform: rotate(var(--ang)) translateX(0);
  background: linear-gradient(90deg, rgba(255, 255, 255, 0) 0%, rgba(255, 240, 210, 0.35) 55%, #fff8e6 100%); filter: drop-shadow(0 0 4px rgba(255, 240, 200, 0.9)); }
.shoot::after { content: ''; position: absolute; right: -2px; top: -2px; width: 6px; height: 6px; border-radius: 50%; background: #fff; box-shadow: 0 0 10px 3px rgba(255, 245, 220, 0.9); }
.fx-stars.on .shoot { animation: shoot var(--dur) cubic-bezier(0.2, 0.6, 0.4, 1) var(--delay) infinite; }
@keyframes shoot {
  0%   { opacity: 0; transform: rotate(var(--ang)) translateX(0) scaleX(0.3); }
  3%   { opacity: 1; }
  12%  { opacity: 1; transform: rotate(var(--ang)) translateX(var(--dist)) scaleX(1); }
  16%  { opacity: 0; transform: rotate(var(--ang)) translateX(calc(var(--dist) * 1.15)) scaleX(0.6); }
  100% { opacity: 0; transform: rotate(var(--ang)) translateX(calc(var(--dist) * 1.15)) scaleX(0.6); }
}
