:root{--ink: #0a0604;--ink-2: #16100a;--sand: #e9d7b8;--sand-dim: #c7b08a;--gold: #e7b96a;--gold-bright: #ffd98a;--gold-deep: #b8862f;--maroon: #5c1a16;--cream: #f6ecd8;--font-display: "Cinzel", serif;--font-serif: "Cormorant Garamond", serif;--font-accent: "Marcellus", serif;--maxw: 1080px;--ease: cubic-bezier(.22, 1, .36, 1)}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--ink);color:var(--sand);font-family:var(--font-serif);-webkit-font-smoothing:antialiased;overflow-x:hidden}.temple-app{position:relative}.temple-canvas,.canvas-fallback{position:fixed;top:0;right:0;bottom:0;left:0;width:100vw;height:100vh;z-index:0}.canvas-fallback{background:radial-gradient(circle at 50% 30%,#1b1109,#0a0604 70%)}.canvas-fallback--static{background-size:cover;background-position:center;filter:brightness(.5) saturate(1.1)}.vignette-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:none;background:radial-gradient(120% 90% at 50% 40%,transparent 40%,rgba(10,6,4,.55) 100%),linear-gradient(180deg,rgba(10,6,4,.35),transparent 30%,transparent 70%,rgba(10,6,4,.5))}.chapters{position:relative;z-index:2}.chapter{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:14vh 6vw;position:relative}.chapter__inner{width:100%;max-width:var(--maxw);text-align:center;background:radial-gradient(120% 120% at 50% 50%,rgba(10,6,4,.72) 30%,rgba(10,6,4,.35) 70%,transparent 100%);padding:clamp(2rem,5vw,4.5rem);border-radius:8px;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.chapter__eyebrow{display:block;font-family:var(--font-accent);letter-spacing:.42em;text-transform:uppercase;font-size:.78rem;color:var(--gold);margin-bottom:1rem}.chapter__title{font-family:var(--font-display);font-weight:600;font-size:clamp(2rem,5vw,3.4rem);line-height:1.1;color:var(--cream);margin-bottom:1.6rem;text-shadow:0 0 30px rgba(231,185,106,.25)}.subhead{font-family:var(--font-display);color:var(--gold-bright);font-size:clamp(1.3rem,3vw,1.9rem);margin:2.5rem 0 1.4rem}.prose{font-size:clamp(1.05rem,2.2vw,1.35rem);line-height:1.8;color:var(--sand);max-width:64ch;margin:0 auto;font-style:italic}.reveal{opacity:0;transform:translateY(26px);filter:blur(6px);transition:opacity 1s var(--ease),transform 1s var(--ease),filter 1s var(--ease)}.reveal--in{opacity:1;transform:none;filter:blur(0)}.kolam-divider{display:flex;align-items:center;justify-content:center;gap:1rem;width:min(420px,70%);margin:2.2rem auto}.kolam-divider__rule{height:1px;flex:1;background:linear-gradient(to var(--dir, right),transparent,var(--gold))}.kolam-divider__rule:last-child{background:linear-gradient(to left,transparent,var(--gold))}.kolam-divider__mark{color:var(--gold-bright);font-size:.8rem;text-shadow:0 0 12px rgba(231,185,106,.7)}.chapter--hero{flex-direction:column;text-align:center}.hero__inner{position:relative;z-index:2;max-width:760px}.hero__om{font-size:clamp(3rem,9vw,6rem);color:var(--gold-bright);text-shadow:0 0 40px rgba(255,217,138,.6);margin-bottom:1rem;animation:glow-pulse 4s ease-in-out infinite}@keyframes glow-pulse{0%,to{text-shadow:0 0 30px rgba(255,217,138,.4)}50%{text-shadow:0 0 60px rgba(255,217,138,.8)}}.hero__invite{font-family:var(--font-accent);letter-spacing:.3em;text-transform:uppercase;font-size:.9rem;color:var(--sand-dim);margin-bottom:1.4rem}.hero__names{font-family:var(--font-display);font-weight:700;font-size:clamp(3rem,11vw,7rem);line-height:1;color:var(--cream);letter-spacing:.02em;text-shadow:0 0 50px rgba(231,185,106,.4)}.hero__tagline{font-style:italic;font-size:clamp(1.05rem,2.6vw,1.5rem);line-height:1.7;color:var(--gold);max-width:40ch;margin:0 auto 1.6rem}.hero__date{font-family:var(--font-accent);letter-spacing:.22em;font-size:1.05rem;color:var(--sand)}.scroll-cue{position:absolute;bottom:5vh;left:50%;transform:translate(-50%);z-index:2;display:flex;flex-direction:column;align-items:center;gap:.6rem;font-family:var(--font-accent);letter-spacing:.3em;text-transform:uppercase;font-size:.7rem;color:var(--gold);animation:cue-bob 2.4s ease-in-out infinite}.scroll-cue__arrow{width:1px;height:42px;background:linear-gradient(var(--gold),transparent)}@keyframes cue-bob{0%,to{transform:translate(-50%);opacity:.7}50%{transform:translate(-50%,10px);opacity:1}}.family-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem;margin-top:1rem}.family-card{border:1px solid rgba(231,185,106,.3);padding:1.8rem 1.4rem;border-radius:6px;background:#16100a80}.family-card__side{display:block;font-family:var(--font-accent);letter-spacing:.18em;text-transform:uppercase;font-size:.72rem;color:var(--gold);margin-bottom:.6rem}.family-card__names{font-family:var(--font-display);font-size:1.2rem;color:var(--cream)}.pair-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(1.5rem,4vw,3rem)}.pair-card{text-align:center}.pair-card__frame{width:clamp(160px,22vw,240px);height:clamp(200px,28vw,300px);margin:0 auto 1.4rem;border-radius:140px 140px 8px 8px;overflow:hidden;border:2px solid var(--gold);box-shadow:0 0 40px #e7b96a4d}.pair-card__frame img{width:100%;height:100%;object-fit:cover}.pair-card__name{font-family:var(--font-display);font-size:1.5rem;color:var(--cream)}.pair-card__parents{font-style:italic;color:var(--sand-dim);margin:.3rem 0 1rem;font-size:.95rem}.pair-card__blurb{font-size:1.05rem;line-height:1.7;margin-bottom:1.2rem}.pair-card__details{list-style:none;display:grid;gap:.5rem;text-align:left;max-width:280px;margin:0 auto}.pair-card__details li{display:flex;justify-content:space-between;gap:1rem;border-bottom:1px dotted rgba(231,185,106,.25);padding-bottom:.35rem;font-size:.92rem}.pair-card__details span{color:var(--gold);font-family:var(--font-accent);letter-spacing:.05em}.pair-card__details em{color:var(--sand);font-style:normal;text-align:right}.timeline{position:relative;display:grid;gap:2rem;max-width:760px;margin:0 auto;text-align:left}.timeline:before{content:"";position:absolute;left:64px;top:0;bottom:0;width:1px;background:linear-gradient(transparent,var(--gold),transparent)}.mural{display:grid;grid-template-columns:110px 1fr;gap:1.4rem;align-items:start}.mural__year{font-family:var(--font-display);font-size:1.4rem;color:var(--gold-bright);position:relative}.mural__year:after{content:"";position:absolute;right:-22px;top:50%;width:12px;height:12px;border-radius:50%;background:var(--gold-bright);box-shadow:0 0 16px var(--gold-bright);transform:translateY(-50%)}.mural__body h3{font-family:var(--font-display);color:var(--cream);font-size:1.3rem;margin-bottom:.4rem}.mural__body p{line-height:1.7;color:var(--sand)}.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}.gallery__item{text-align:center}.gallery__frame{aspect-ratio:4 / 3;overflow:hidden;border-radius:6px;border:1px solid rgba(231,185,106,.4);box-shadow:0 10px 30px #00000080}.gallery__frame img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease),filter .9s var(--ease);filter:sepia(.2) saturate(1.05)}.gallery__item:hover .gallery__frame img{transform:scale(1.08);filter:sepia(0) saturate(1.15)}.gallery__caption{display:block;margin-top:.7rem;font-style:italic;color:var(--sand-dim);font-size:.95rem}.ceremonies{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem}.ceremony{border:1px solid rgba(231,185,106,.3);border-radius:6px;padding:1.8rem 1.2rem;background:#16100a8c}.ceremony h3{font-family:var(--font-display);color:var(--gold-bright);font-size:1.2rem;margin-bottom:.8rem}.ceremony__date{color:var(--cream);margin-bottom:.2rem}.ceremony__time{color:var(--gold);font-style:italic;margin-bottom:.2rem}.ceremony__place{color:var(--sand-dim);font-size:.95rem}.venue{margin-top:1rem}.venue__name{font-family:var(--font-display);color:var(--cream);font-size:1.5rem}.venue__address{color:var(--sand-dim);margin:.4rem 0 1.2rem}.venue__travel{list-style:none;display:grid;gap:.6rem;max-width:460px;margin:1.6rem auto 0;text-align:left}.venue__travel li{display:flex;justify-content:space-between;gap:1rem;border-bottom:1px dotted rgba(231,185,106,.25);padding-bottom:.4rem}.venue__travel span{color:var(--gold);font-family:var(--font-accent)}.venue__travel em{color:var(--sand);font-style:normal;text-align:right}.blessings{display:grid;gap:1.4rem;max-width:760px;margin:0 auto}.blessing{border-left:2px solid var(--gold);padding:.4rem 0 .4rem 1.6rem;text-align:left}.blessing__text{font-style:italic;font-size:1.2rem;line-height:1.7;color:var(--cream)}.blessing__from{display:block;margin-top:.6rem;font-family:var(--font-accent);letter-spacing:.1em;color:var(--gold)}.traditions{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem}.tradition{background:#16100a80;border:1px solid rgba(231,185,106,.25);border-radius:6px;padding:1.4rem;text-align:left}.tradition h4{font-family:var(--font-display);color:var(--gold-bright);margin-bottom:.5rem}.tradition p{line-height:1.6;font-size:.96rem;color:var(--sand)}.rsvp{max-width:620px;margin:2rem auto 0;display:grid;gap:1.1rem;text-align:left}.rsvp__row{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem}.rsvp label{display:grid;gap:.4rem;font-family:var(--font-accent);letter-spacing:.08em;color:var(--gold);font-size:.85rem}.rsvp input,.rsvp select,.rsvp textarea{font-family:var(--font-serif);font-size:1rem;color:var(--cream);background:#0a0604b3;border:1px solid rgba(231,185,106,.35);border-radius:5px;padding:.75rem .9rem;outline:none;transition:border-color .3s,box-shadow .3s}.rsvp input:focus,.rsvp select:focus,.rsvp textarea:focus{border-color:var(--gold-bright);box-shadow:0 0 0 3px #e7b96a26}.rsvp--done{text-align:center;font-size:1.2rem;font-style:italic;color:var(--cream);line-height:1.7;max-width:540px;margin:2rem auto 0}.rsvp__lamp{font-size:3rem;margin-bottom:1rem;animation:glow-pulse 3s ease-in-out infinite}.closing{margin-top:2.4rem;font-family:var(--font-accent);font-size:1.2rem;color:var(--gold);line-height:1.8}.btn-gold{display:inline-block;font-family:var(--font-accent);letter-spacing:.12em;text-transform:uppercase;font-size:.85rem;color:var(--ink);background:linear-gradient(135deg,var(--gold-bright),var(--gold-deep));padding:.85rem 1.8rem;border:none;border-radius:4px;cursor:pointer;text-decoration:none;transition:transform .3s var(--ease),box-shadow .3s;box-shadow:0 6px 20px #b8862f66}.btn-gold:hover{transform:translateY(-2px);box-shadow:0 10px 30px #e7b96a8c}.btn-gold--lg{justify-self:center;margin-top:.6rem;padding:1rem 2.6rem;font-size:.95rem}.audio-toggle{position:fixed;top:1.4rem;right:1.4rem;z-index:20;width:46px;height:46px;border-radius:50%;border:1px solid rgba(231,185,106,.5);background:#0a060499;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);cursor:pointer;display:grid;place-items:center}.audio-toggle__bars{display:flex;align-items:center;gap:3px;height:18px}.audio-toggle__bars i{width:3px;background:var(--gold-bright);border-radius:2px;animation:eq 1s ease-in-out infinite}.audio-toggle__bars i:nth-child(1){height:8px;animation-delay:0s}.audio-toggle__bars i:nth-child(2){height:16px;animation-delay:.2s}.audio-toggle__bars i:nth-child(3){height:11px;animation-delay:.4s}.audio-toggle__bars i:nth-child(4){height:18px;animation-delay:.1s}@keyframes eq{0%,to{transform:scaleY(.4)}50%{transform:scaleY(1)}}.audio-toggle.is-muted .audio-toggle__bars i{animation:none;height:4px;opacity:.5}.journey-bar{position:fixed;top:0;left:0;width:3px;height:100vh;z-index:15;background:#e7b96a1f}.journey-bar span{display:block;width:100%;height:100%;transform-origin:top;background:linear-gradient(var(--gold-bright),var(--gold-deep));box-shadow:0 0 12px #e7b96a99}.chapter-nav{position:fixed;right:1.5rem;top:50%;transform:translateY(-50%);z-index:15;display:flex;flex-direction:column;gap:1rem}.chapter-nav__dot{position:relative;width:11px;height:11px;border-radius:50%;border:1px solid var(--gold);background:transparent;cursor:pointer;transition:all .3s}.chapter-nav__dot.is-active{background:var(--gold-bright);box-shadow:0 0 14px var(--gold-bright);transform:scale(1.3)}.chapter-nav__label{position:absolute;right:22px;top:50%;transform:translateY(-50%);white-space:nowrap;font-family:var(--font-accent);font-size:.72rem;letter-spacing:.1em;color:var(--gold);opacity:0;pointer-events:none;transition:opacity .3s}.chapter-nav__dot:hover .chapter-nav__label{opacity:1}@media (max-width: 768px){.pair-grid,.ceremonies,.traditions,.gallery{grid-template-columns:1fr}.gallery{grid-template-columns:1fr 1fr}.family-grid,.rsvp__row{grid-template-columns:1fr}.mural{grid-template-columns:70px 1fr}.timeline:before{left:36px}.chapter-nav{right:.6rem;gap:.7rem}.chapter__inner{padding:1.6rem}}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;filter:none;transition:none}.hero__om,.rsvp__lamp,.scroll-cue,.audio-toggle__bars i{animation:none}}
