:root{--ink:#201432;--surface:#2C1D3D;--surface-raised:#362647;--gold:#D4AF37;--gold-light:#F4E5B2;--gold-dim:#8A6D2A;--ruby:#7A1F3D;--ruby-light:#C25C7C;--teal:#0D4F4A;--teal-light:#4FA89E;--rose:#E8C4D8;--cream:#F3EAD8;--line:rgba(212,175,55,0.25);--thazin:#F6F0E4;--blush:#F2D8DC;--lavender:#C9B6DC;--rose-gold:#E5C1A9;--font-cinzel:"Times New Roman",Times,serif;--font-marcellus:"Times New Roman",Times,serif;--font-karla:"Times New Roman",Times,serif;--font-script-hand:"Times New Roman",Times,serif}*{margin:0;padding:0;box-sizing:border-box}body,html{background:var(--ink)}body{color:var(--cream);font-family:var(--font-karla),sans-serif;overflow-x:hidden;position:relative}body:before{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;background:radial-gradient(ellipse 80% 60% at 15% 8%,rgba(201,182,220,.1),transparent 60%),radial-gradient(ellipse 70% 55% at 88% 92%,rgba(122,31,61,.13),transparent 60%)}html.lenis,html.lenis body{height:auto}.lenis.lenis-smooth{scroll-behavior:auto!important}.lenis.lenis-stopped{overflow:hidden}@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.display{font-family:var(--font-cinzel),serif;text-transform:uppercase;letter-spacing:.05em}.script{font-family:var(--font-marcellus),serif}.grain{pointer-events:none;z-index:1;opacity:.05;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}.grain,.opening-veil{position:fixed;inset:0}.opening-veil{z-index:300;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:0 24px;overflow:hidden;will-change:transform;background:radial-gradient(ellipse 75% 45% at 50% 66%,rgba(122,31,61,.34),transparent 66%),radial-gradient(ellipse 85% 60% at 50% 18%,rgba(54,38,71,.85),transparent 72%),linear-gradient(180deg,#2A1B3E 0,var(--ink) 55%,#180E28 100%)}.opening-veil:after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.05;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}.veil-inner{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;text-align:center;max-width:100%}.veil-ornament{font-size:26px;letter-spacing:.3em;color:var(--gold);opacity:0}.veil-monogram{margin-top:16px;font-family:var(--font-cinzel),serif;font-size:clamp(2rem,9vw,3.2rem);line-height:1.15;opacity:0;background:linear-gradient(100deg,var(--gold) 0,var(--gold-light) 25%,#fff8e0 50%,var(--gold-light) 75%,var(--gold) 100%);background-size:250% 100%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:var(--gold-light);filter:drop-shadow(0 0 26px rgba(212,175,55,.35));animation:kineticShimmer 5s linear infinite}.veil-thread{position:relative;width:2px;height:92px;margin-top:30px;opacity:0}.veil-thread-line{position:absolute;inset:0;background:linear-gradient(to bottom,transparent,var(--gold-dim) 18%,var(--gold-dim) 100%);opacity:.4}.veil-thread-fill{position:absolute;top:0;left:0;width:100%;height:100%;transform:scaleY(0);transform-origin:top center;background:linear-gradient(to bottom,var(--gold-light),var(--gold));box-shadow:0 0 8px 1px rgba(212,175,55,.6)}.veil-spark{position:absolute;left:50%;top:0;margin-left:-3.5px;margin-top:-3.5px;width:7px;height:7px;border-radius:50%;opacity:0;background:var(--gold-light);box-shadow:0 0 10px 4px rgba(244,229,178,.9),0 0 22px 8px rgba(212,175,55,.4);animation:headFlicker 1.6s ease-in-out infinite}.veil-diya-wrap{position:relative;margin-top:22px;display:flex;align-items:center;justify-content:center}.veil-diya{position:relative;z-index:1;font-size:44px;line-height:1;filter:grayscale(.9) brightness(.5);transition:filter .8s ease}.veil-diya.lit{filter:none;text-shadow:0 0 26px rgba(244,229,178,.9);animation:veilFlicker 2.2s ease-in-out infinite}@keyframes veilFlicker{0%,to{transform:scale(1) rotate(-2deg);opacity:1}50%{transform:scale(1.08) rotate(2deg);opacity:.9}}.veil-glow{position:absolute;left:50%;top:50%;width:min(320px,76vw);height:min(320px,76vw);margin-left:calc(min(320px, 76vw) / -2);margin-top:calc(min(320px, 76vw) / -2);border-radius:50%;pointer-events:none;opacity:0;transform:scale(.3);background:radial-gradient(circle,rgba(244,229,178,.5) 0,rgba(212,175,55,.24) 34%,transparent 68%)}.veil-glow.bloom{animation:glowBloom 1.2s ease-out forwards}@keyframes glowBloom{0%{opacity:0;transform:scale(.3)}55%{opacity:1;transform:scale(1.12)}to{opacity:.78;transform:scale(1)}}.veil-skip{position:absolute;left:50%;bottom:max(28px,env(safe-area-inset-bottom));transform:translateX(-50%);z-index:2;background:none;border:1px solid var(--line);border-radius:999px;padding:8px 20px;cursor:pointer;font-family:inherit;font-size:12px;letter-spacing:.24em;text-transform:uppercase;color:var(--gold-dim);transition:color .3s ease,border-color .3s ease}.veil-skip:focus-visible,.veil-skip:hover{color:var(--gold);border-color:var(--gold-dim)}body.veil-sealed{overflow:hidden}html:has(body.veil-sealed){overflow:hidden}body.veil-sealed #hero *{animation-play-state:paused}@media (prefers-reduced-motion:no-preference){body:has(.opening-veil:not(.veil-lifting)) #hero *{animation-play-state:paused}}@media (prefers-reduced-motion:reduce){.opening-veil{display:none!important}}.thread-rail{position:fixed;left:18px;top:0;bottom:0;width:2px;z-index:30;display:flex;flex-direction:column;align-items:center}.thread-line{height:100%;background:linear-gradient(to bottom,transparent,var(--gold-dim) 6%,var(--gold-dim) 100%);opacity:.35}.thread-fill,.thread-line{position:absolute;top:0;left:50%;transform:translateX(-50%);width:2px}.thread-fill{height:0;background:linear-gradient(to bottom,var(--gold-light),var(--gold));box-shadow:0 0 8px 1px rgba(212,175,55,.6);transition:height .1s linear}.thread-head{position:absolute;left:50%;top:0;transform:translate(-50%,-50%);width:7px;height:7px;border-radius:50%;background:var(--gold-light);box-shadow:0 0 10px 4px rgba(244,229,178,.9),0 0 22px 8px rgba(212,175,55,.4);opacity:0;transition:opacity .4s ease;animation:headFlicker 1.6s ease-in-out infinite;z-index:3;pointer-events:none}@keyframes headFlicker{0%,to{box-shadow:0 0 10px 4px rgba(244,229,178,.9),0 0 22px 8px rgba(212,175,55,.4)}50%{box-shadow:0 0 14px 6px rgba(244,229,178,1),0 0 30px 12px rgba(212,175,55,.55)}}.thread-fill.kindled{animation:threadKindle 1.4s ease}@keyframes threadKindle{0%{box-shadow:0 0 8px 1px rgba(212,175,55,.6)}30%{box-shadow:0 0 22px 6px rgba(244,229,178,.95)}to{box-shadow:0 0 8px 1px rgba(212,175,55,.6)}}.diya-marker{position:absolute;left:50%;transform:translate(-50%,-50%);width:9px;height:9px;border-radius:50%;background:var(--surface-raised);border:1.5px solid var(--gold-dim);transition:all .4s ease;z-index:2}.diya-marker.lit{background:var(--gold-light);border-color:var(--gold);box-shadow:0 0 12px 4px rgba(244,229,178,.7)}.diya-marker.tone-ivory.lit{background:var(--thazin);border-color:var(--blush);box-shadow:0 0 12px 4px rgba(242,216,220,.85)}.diya-marker .flame{position:absolute;left:50%;top:-13px;transform:translateX(-50%) scale(.4);font-size:11px;opacity:0;transition:all .4s ease}.diya-marker.lit .flame{opacity:1;transform:translateX(-50%) scale(1);animation:flicker 2s ease-in-out infinite}@keyframes flicker{0%,to{transform:translateX(-50%) scale(1) rotate(-2deg);opacity:1}50%{transform:translateX(-50%) scale(1.08) rotate(2deg);opacity:.85}}@media (max-width:480px){.thread-rail{left:12px}}section{min-height:100svh;width:100%;padding:0 24px;display:flex;flex-direction:column;justify-content:center;z-index:2}#hero,section{position:relative;overflow:hidden}#hero{align-items:center;text-align:center;background:transparent}.hero-aurora{position:absolute;inset:-20%;background:radial-gradient(ellipse 60% 45% at 30% 15%,rgba(122,31,61,.62),transparent 60%),radial-gradient(ellipse 55% 40% at 75% 25%,rgba(13,79,74,.52),transparent 60%),radial-gradient(ellipse 70% 55% at 50% 45%,rgba(201,182,220,.1),transparent 70%),radial-gradient(ellipse 65% 50% at 50% 90%,rgba(212,175,55,.34),transparent 65%);animation:auroraDrift 7s ease-in-out infinite;z-index:0}@keyframes auroraDrift{0%,to{transform:translate(0) scale(1);filter:hue-rotate(0deg)}33%{transform:translate(-3%,3%) scale(1.12);filter:hue-rotate(10deg)}66%{transform:translate(3%,-3%) scale(1.08);filter:hue-rotate(-10deg)}}.hero-glow-orb{position:absolute;top:38%;left:50%;width:min(70vw,420px);height:min(70vw,420px);transform:translate(-50%,-50%);background:radial-gradient(circle,rgba(244,229,178,.22),transparent 70%);animation:heroBreathe 3.2s ease-in-out infinite;z-index:0}@keyframes heroBreathe{0%,to{opacity:.6;transform:translate(-50%,-50%) scale(1)}50%{opacity:1;transform:translate(-50%,-50%) scale(1.22)}}.hero-spark{position:absolute;width:6px;height:6px;border-radius:50%;background:var(--gold-light);box-shadow:0 0 12px 4px rgba(244,229,178,.9);opacity:0;animation:heroSparkPulse ease-in-out infinite;z-index:1}@keyframes heroSparkPulse{0%,to{opacity:.15;transform:scale(.6)}50%{opacity:1;transform:scale(1.4)}}#hero>*{position:relative;z-index:2}#hero>.hero-aurora,#hero>.hero-glow-orb{position:absolute;z-index:0}#hero>.hero-spark{position:absolute;z-index:1}#hero>.petal{position:absolute}#hero>.petal.petal-far{z-index:0}#hero>.petal.petal-near{z-index:1}.hero-greeting-slot{min-height:40px;display:flex;align-items:flex-end;justify-content:center}.hero-greeting{font-family:var(--font-script-hand),serif;font-style:italic;font-size:clamp(1.6rem,7vw,2.1rem);color:var(--blush);opacity:0;animation:fadeUp 1.2s ease .4s forwards;text-shadow:0 0 18px rgba(242,216,220,.35)}.hero-ornament{font-size:28px;color:var(--gold);opacity:0;letter-spacing:.3em;animation:fadeUp 1s ease .2s forwards}.hero-parents{font-size:clamp(1.15rem,5vw,1.5rem);font-weight:700;letter-spacing:.04em;color:var(--cream);opacity:0;margin-top:18px;animation:fadeUp 1s ease .5s forwards}.hero-invite-line{font-style:italic;font-size:clamp(1rem,4.4vw,1.2rem);line-height:1.55;color:var(--rose);max-width:32ch;opacity:0;margin-top:12px;animation:fadeUp 1s ease .7s forwards}.hero-names{margin-top:18px;font-size:clamp(2.1rem,10.5vw,3.6rem);line-height:1.1;opacity:0;background:linear-gradient(100deg,var(--gold) 0,var(--gold-light) 25%,#fff8e0 50%,var(--gold-light) 75%,var(--gold) 100%);background-size:250% 100%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:var(--gold-light);animation:fadeUp 1.2s ease .9s forwards,kineticShimmer 5s linear 2.1s infinite;filter:drop-shadow(0 0 30px rgba(212,175,55,.35))}@keyframes kineticShimmer{0%{background-position:0 0}to{background-position:250% 0}}.hero-names .amp{display:block;font-size:.42em;color:var(--ruby-light);-webkit-text-fill-color:var(--ruby-light);margin:4px 0;font-family:var(--font-marcellus),serif;font-style:italic;letter-spacing:.06em}.hero-bride-parents{margin-top:14px;font-style:italic;font-size:clamp(.95rem,4vw,1.1rem);letter-spacing:.02em;color:var(--rose);opacity:0;animation:fadeUp 1s ease 1.4s forwards}.hero-date{margin-top:36px;padding-top:20px;border-top:1px solid var(--line);display:inline-block;font-size:16px;letter-spacing:.25em;text-transform:uppercase;color:var(--gold);opacity:0;animation:fadeUp 1s ease 1.7s forwards}.hero-diya-wrap{margin-top:22px;display:flex;flex-direction:column;align-items:center;gap:4px;z-index:3}.hero-diya{background:none;border:none;cursor:pointer;font-size:30px;line-height:1;padding:8px;filter:grayscale(.9) brightness(.5);opacity:0;transition:filter .8s ease,transform .4s ease;animation:fadeUp 1s ease 1.9s forwards}.hero-diya:active{transform:scale(.92)}.hero-diya.lit{filter:none;animation:fadeUp 1s ease forwards,flicker 2.2s ease-in-out infinite;text-shadow:0 0 24px rgba(244,229,178,.9)}.hero-diya-label{font-size:13px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-dim);opacity:0;animation:fadeUp 1s ease 2.1s forwards;transition:opacity .6s ease}.hero-diya-label.away{opacity:0!important}.scroll-cue{margin-top:20px;font-size:14px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-dim);opacity:0;animation:fadeUp 1s ease 2.1s forwards,bobY 2.2s ease-in-out 2.1s infinite;z-index:2}@keyframes bobY{0%,to{transform:translateY(0)}50%{transform:translateY(6px)}}@keyframes fadeUp{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes bob{0%,to{transform:translate(-50%)}50%{transform:translate(-50%,6px)}}.petal{position:absolute;width:10px;height:10px;border-radius:60% 0;background:var(--gold);opacity:.5;animation:drift linear infinite;z-index:1}.petal.petal-far{filter:blur(1.5px);z-index:0}.petal.petal-near{filter:blur(0);z-index:1}.petal.petal-ruby{background:var(--ruby-light)}.petal.petal-teal{background:var(--teal-light)}.petal.petal-thazin{background:var(--thazin);border-radius:0 60%;box-shadow:0 0 6px rgba(246,240,228,.45)}@keyframes drift{0%{transform:translateY(-5vh) translateX(0) rotate(0deg);opacity:0}10%{opacity:.6}90%{opacity:.4}to{transform:translateY(110vh) translateX(20px) rotate(300deg);opacity:0}}@keyframes driftSway{0%{transform:translateY(-5vh) translateX(0) rotate(0deg);opacity:0}10%{opacity:.7}30%{transform:translateY(25vh) translateX(-18px) rotate(90deg)}60%{transform:translateY(65vh) translateX(16px) rotate(200deg)}90%{opacity:.4}to{transform:translateY(110vh) translateX(-10px) rotate(320deg);opacity:0}}#story{background:linear-gradient(180deg,var(--ink),#281A3C 50%,var(--ink));align-items:flex-start;padding-left:48px;position:relative;overflow:hidden;min-height:auto;padding-top:110px;padding-bottom:110px}.story-backdrop{position:absolute;inset:0;background:radial-gradient(ellipse 50% 40% at 80% 30%,rgba(122,31,61,.3),transparent 65%),radial-gradient(ellipse 45% 35% at 10% 80%,rgba(13,79,74,.26),transparent 65%),radial-gradient(ellipse 40% 30% at 25% 15%,rgba(201,182,220,.18),transparent 65%);animation:storyBackdropDrift 6s ease-in-out infinite;z-index:0}@keyframes storyBackdropDrift{0%,to{opacity:.7;transform:scale(1)}50%{opacity:1;transform:scale(1.08)}}#story>*{position:relative;z-index:1}#story>.story-backdrop{position:absolute;z-index:0}.scene-label{font-size:15px;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);display:flex;align-items:center;gap:12px;opacity:0;transform:translateY(20px);transition:all .8s ease}.scene-label.in-view{opacity:1;transform:translateY(0)}.scene-label:before{content:"";width:28px;height:1px;background:var(--gold-dim)}.story-title{font-size:clamp(2.5rem,9.5vw,3.8rem);margin-top:20px;color:var(--gold-light);line-height:1.15;opacity:0;transform:translateY(24px);transition:all .9s ease .15s}.story-title.in-view{opacity:1;transform:translateY(0)}.story-title .word{display:inline-block;opacity:0;transform:translateY(30px) rotate(2deg);filter:blur(4px);transition:all .7s cubic-bezier(.2,.7,.3,1)}.story-title.in-view .word{opacity:1;transform:translateY(0) rotate(0deg);filter:blur(0)}.story-title.word-split{opacity:1;transform:none}.story-underline{margin-top:14px;width:0;height:2px;background:linear-gradient(90deg,var(--gold),var(--gold-light));transition:width 1.1s cubic-bezier(.2,.7,.3,1) .5s;box-shadow:0 0 8px rgba(212,175,55,.5)}.story-underline.in-view{width:120px}.story-text{margin-top:22px;max-width:38ch;font-size:19px;line-height:1.75;color:var(--rose);font-weight:300;opacity:0;transform:translateY(24px);transition:all .9s ease .3s}.story-text.in-view{opacity:1;transform:translateY(0)}.story-meta{margin-top:28px;display:flex;gap:28px;opacity:0;transform:translateY(24px);transition:all .9s ease .45s}.story-meta.in-view{opacity:1;transform:translateY(0)}.story-meta div{font-size:14px;letter-spacing:.1em;color:var(--gold-dim);text-transform:uppercase;position:relative;padding-left:16px}.story-meta div:before{content:"✦";position:absolute;left:0;top:0;color:var(--gold);font-size:10px;animation:metaTwinkle 2.4s ease-in-out infinite}.story-meta div:nth-child(2):before{animation-delay:1.2s;color:var(--blush)}@keyframes metaTwinkle{0%,to{opacity:.4}50%{opacity:1}}.story-meta strong{display:block;font-family:var(--font-marcellus),serif;font-style:italic;font-size:21px;color:var(--cream);text-transform:none;letter-spacing:0;margin-top:4px}.journey-header{text-align:center;padding:80px 24px 20px;position:relative;z-index:2}.journey-header .scene-label{justify-content:center;padding-left:0}.journey-header .scene-label:before{display:none}.journey-header h2{font-size:clamp(2.2rem,8.5vw,3.3rem);color:var(--gold-light);margin-top:16px;opacity:0;transform:translateY(20px);transition:all .9s ease .15s}.journey-header h2.in-view{opacity:1;transform:translateY(0)}.ceremony{min-height:auto;padding:56px 24px;display:block;justify-content:unset}.ceremony-card{border-radius:2px;padding:36px 26px;position:relative;overflow:hidden;opacity:0;transform:translateY(40px) scale(.98);transition:all .9s cubic-bezier(.2,.7,.3,1);border:1px solid var(--line)}.ceremony-card.in-view{opacity:1;transform:translateY(0) scale(1)}.ceremony-icon{font-size:30px;margin-bottom:14px;display:inline-block}.ceremony-name{font-size:clamp(1.8rem,7vw,2.4rem);color:var(--gold-light)}.ceremony-tagline{font-family:var(--font-marcellus),serif;font-style:italic;color:var(--rose);font-size:18px;margin-top:6px;opacity:.9}.ceremony-details{margin-top:20px;display:flex;flex-wrap:wrap;gap:10px}.pill{font-size:14px;letter-spacing:.08em;text-transform:uppercase;padding:7px 12px;border-radius:20px;border:1px solid var(--line);color:var(--gold);background:rgba(212,175,55,.06)}.ceremony-desc{margin-top:18px;font-size:18px;line-height:1.7;color:var(--cream);opacity:.85;font-weight:300;max-width:48ch}.photo-scene{padding:0!important}.photo-card{position:relative;width:100%;border-radius:2px;overflow:hidden;opacity:0;transform:translateY(40px) scale(.98);transition:all 1s cubic-bezier(.2,.7,.3,1);border:1px solid var(--line)}.photo-card.in-view{opacity:1;transform:translateY(0) scale(1)}.photo-frame{position:relative;aspect-ratio:3/2;overflow:hidden}.photo-base-artless{background:radial-gradient(ellipse 70% 60% at 25% 18%,rgba(122,31,61,.55),transparent 65%),radial-gradient(ellipse 60% 50% at 80% 28%,rgba(13,79,74,.45),transparent 65%),radial-gradient(ellipse 50% 40% at 60% 55%,rgba(201,182,220,.2),transparent 70%),radial-gradient(ellipse 85% 65% at 50% 100%,rgba(212,175,55,.35),transparent 72%),linear-gradient(180deg,#281A3C,var(--surface))}.photo-base-artless:after{content:"🥂";position:absolute;top:38%;left:50%;transform:translate(-50%,-50%);font-size:64px;opacity:.9;filter:drop-shadow(0 0 26px rgba(244,229,178,.6))}.photo-base{overflow:hidden}.photo-base,.photo-zoom-layer{position:absolute;inset:0;width:100%;height:100%}.photo-zoom-layer{transform:scale(1.12);transition:transform 4s cubic-bezier(.2,.7,.3,1)}.photo-card.in-view .photo-zoom-layer{transform:scale(1)}.photo-base{--parallax-y:0px}.photo-base img{position:absolute;inset:-8% 0;width:100%;height:116%;object-fit:cover;object-position:center 30%;transform:translateY(var(--parallax-y,0));filter:saturate(1.15) contrast(1.06) brightness(1.03);will-change:transform;background-size:cover;background-position:center 30%}.photo-fx{position:absolute;inset:0;pointer-events:none}.fx-moon-glow{position:absolute;top:14%;right:20%;width:110px;height:110px;border-radius:50%;background:radial-gradient(circle,rgba(244,229,178,.75),rgba(244,229,178,.15) 55%,transparent 75%);animation:moonPulse 3.4s ease-in-out infinite;mix-blend-mode:screen}@keyframes moonPulse{0%,to{opacity:.55;transform:scale(1)}50%{opacity:1;transform:scale(1.3)}}.fx-sparkle{position:absolute;width:7px;height:7px;border-radius:50%;background:var(--gold-light);box-shadow:0 0 14px 5px rgba(244,229,178,.95);animation:sparkleTwinkle ease-in-out infinite}@keyframes sparkleTwinkle{0%,to{opacity:.1;transform:scale(.5)}50%{opacity:1;transform:scale(1.6)}}.fx-flicker{position:absolute;inset:0;background:radial-gradient(ellipse 60% 50% at 50% 78%,rgba(255,183,94,.16),transparent 70%);mix-blend-mode:screen;animation:flickerWash 2.6s ease-in-out infinite}@keyframes flickerWash{0%,to{opacity:.6}30%{opacity:1}45%{opacity:.7}60%{opacity:.95}80%{opacity:.65}}.fx-smoke{position:absolute;bottom:20%;left:10%;width:20px;height:110px;background:linear-gradient(0deg,rgba(230,220,210,.4),transparent);filter:blur(4px);transform-origin:bottom center;animation:smokeDrift 4.5s ease-in-out infinite}@keyframes smokeDrift{0%{transform:translateX(0) scaleY(1) rotate(0deg);opacity:.6}50%{transform:translateX(14px) scaleY(1.3) rotate(4deg);opacity:.85}to{transform:translateX(-10px) scaleY(1.6) rotate(-3deg);opacity:0}}.fx-ember{position:absolute;width:5px;height:5px;border-radius:50%;background:var(--gold-light);box-shadow:0 0 8px 2px rgba(244,229,178,.9);opacity:0;animation:emberRise linear infinite}@keyframes emberRise{0%{opacity:0;transform:translateY(0) translateX(0) scale(.6)}12%{opacity:1}50%{transform:translateY(-90px) translateX(8px) scale(1)}88%{opacity:.5}to{opacity:0;transform:translateY(-200px) translateX(20px) scale(.4)}}.fx-garland-shimmer{position:absolute;top:0;left:0;right:0;height:22%;background:linear-gradient(100deg,transparent 20%,rgba(244,229,178,.35) 45%,rgba(244,229,178,.55) 50%,rgba(244,229,178,.35) 55%,transparent 80%);background-size:250% 100%;mix-blend-mode:screen;animation:garlandSweep 5s ease-in-out infinite}@keyframes garlandSweep{0%{background-position:120% 0}50%{background-position:-20% 0}to{background-position:120% 0}}.fx-silk-drape{position:absolute;bottom:8%;left:0;right:0;height:30%;background:linear-gradient(75deg,transparent 28%,rgba(246,240,228,.22) 46%,rgba(242,216,220,.34) 52%,transparent 72%);background-size:220% 100%;mix-blend-mode:screen;animation:silkSweep 7s ease-in-out infinite}@keyframes silkSweep{0%{background-position:135% 0}50%{background-position:-35% 0}to{background-position:135% 0}}.fx-blessing-glow{position:absolute;top:52%;left:50%;width:150px;height:150px;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle,rgba(246,240,228,.5),rgba(242,216,220,.18) 55%,transparent 75%);mix-blend-mode:screen;animation:blessingPulse 4.2s ease-in-out infinite}@keyframes blessingPulse{0%,to{opacity:.45;transform:translate(-50%,-50%) scale(1)}50%{opacity:.9;transform:translate(-50%,-50%) scale(1.18)}}.fx-sparkle.fx-sparkle-thazin{background:var(--thazin);box-shadow:0 0 14px 5px rgba(242,216,220,.9)}.fx-firework-flash{position:absolute;inset:0;background:radial-gradient(circle at 30% 18%,rgba(255,255,255,.5),transparent 12%),radial-gradient(circle at 78% 12%,rgba(255,220,180,.4),transparent 10%);opacity:0;mix-blend-mode:screen;animation:fireworkFlash 3.4s ease-in-out infinite}@keyframes fireworkFlash{0%,to{opacity:0}4%{opacity:1}9%{opacity:.2}12%{opacity:.9}18%{opacity:0}55%{opacity:0}58%{opacity:.7}64%{opacity:.1}}.fx-petal-fall{position:absolute;width:8px;height:8px;border-radius:50% 0;background:var(--gold);opacity:0;animation:petalFall linear infinite}@keyframes petalFall{0%{opacity:0;transform:translateY(0) translateX(0) rotate(0deg)}8%{opacity:.9}92%{opacity:.7}to{opacity:0;transform:translateY(220px) translateX(24px) rotate(200deg)}}.fx-petal-fall.fx-petal-thazin{background:var(--thazin);border-radius:0 50%;box-shadow:0 0 5px rgba(246,240,228,.5)}.fx-torch-glow{position:absolute;width:60px;height:60px;border-radius:50%;background:radial-gradient(circle,rgba(255,183,94,.5),transparent 70%);mix-blend-mode:screen;animation:torchFlicker 1.8s ease-in-out infinite}@keyframes torchFlicker{0%,to{opacity:.5;transform:scale(1)}35%{opacity:.9;transform:scale(1.15)}60%{opacity:.6;transform:scale(.95)}}.fx-confetti{position:absolute;width:6px;height:10px;opacity:0;animation:confettiFall linear infinite}@keyframes confettiFall{0%{opacity:0;transform:translateY(0) rotate(0deg)}10%{opacity:1}90%{opacity:.8}to{opacity:0;transform:translateY(240px) rotate(340deg)}}.fx-spotlight{position:absolute;top:-10%;width:120px;height:140%;background:linear-gradient(180deg,rgba(255,240,200,.28),transparent 70%);transform-origin:top center;mix-blend-mode:screen;animation:spotlightSweep ease-in-out infinite}@keyframes spotlightSweep{0%,to{transform:rotate(-18deg);opacity:.5}50%{transform:rotate(18deg);opacity:.85}}.fx-bokeh{position:absolute;border-radius:50%;background:radial-gradient(circle,rgba(244,229,178,.9),transparent 70%);animation:bokehPulse ease-in-out infinite}@keyframes bokehPulse{0%,to{opacity:.3;transform:scale(.85)}50%{opacity:.9;transform:scale(1.2)}}.fx-sunray{position:absolute;top:-15%;width:90px;height:130%;background:linear-gradient(180deg,rgba(255,220,140,.22),transparent 75%);transform-origin:top center;mix-blend-mode:screen;animation:sunrayDrift ease-in-out infinite}@keyframes sunrayDrift{0%,to{opacity:.4;transform:rotate(-6deg)}50%{opacity:.75;transform:rotate(3deg)}}.fx-dust-mote{position:absolute;width:4px;height:4px;border-radius:50%;background:rgba(255,200,80,.85);box-shadow:0 0 6px 2px rgba(255,200,80,.5);opacity:0;animation:moteFloat ease-in-out infinite}@keyframes moteFloat{0%{opacity:0;transform:translate(0)}20%{opacity:.9}50%{transform:translate(14px,-30px)}80%{opacity:.6}to{opacity:0;transform:translate(-8px,-60px)}}.fx-henna-shimmer{position:absolute;bottom:10%;left:0;right:0;height:35%;background:linear-gradient(70deg,transparent 30%,rgba(79,168,158,.28) 48%,rgba(79,168,158,.4) 52%,transparent 70%);background-size:220% 100%;mix-blend-mode:screen;animation:hennaSweep 6s ease-in-out infinite}@keyframes hennaSweep{0%{background-position:130% 0}50%{background-position:-30% 0}to{background-position:130% 0}}.fx-firefly{position:absolute;width:5px;height:5px;border-radius:50%;background:var(--gold-light);box-shadow:0 0 10px 3px rgba(244,229,178,.9);opacity:0;animation:fireflyDrift ease-in-out infinite}@keyframes fireflyDrift{0%{opacity:0;transform:translate(0)}25%{opacity:1}50%{transform:translate(16px,-18px)}75%{opacity:.5}to{opacity:0;transform:translate(-10px,-36px)}}.photo-scrim{position:absolute;inset:0;background:linear-gradient(0deg,rgba(24,15,36,.85) 0,rgba(24,15,36,.38) 24%,transparent 50%)}.photo-overlay{position:absolute;left:22px;right:22px;bottom:18px;z-index:3;display:flex;flex-direction:column;align-items:flex-end;text-align:right}.photo-overlay .ceremony-icon{font-size:26px;margin-bottom:4px}.photo-overlay .ceremony-name{font-size:clamp(2rem,8vw,2.8rem);text-shadow:0 2px 20px rgba(24,15,36,.85)}.photo-overlay .ceremony-tagline{margin-top:4px;text-shadow:0 1px 14px rgba(24,15,36,.9)}.ceremony-panel{position:relative;padding:22px 22px 26px;background:linear-gradient(180deg,rgba(36,23,41,.9),var(--surface));border-top:1px solid var(--line)}.ceremony-panel:before{content:"";position:absolute;top:-1px;right:22px;width:64px;height:2px;background:linear-gradient(90deg,var(--gold),var(--gold-light));box-shadow:0 0 10px rgba(212,175,55,.65)}.ceremony-panel .ceremony-details{margin-top:0}.ceremony-panel .ceremony-desc{margin-top:16px;max-width:none}.ceremony-schedule{margin-top:16px;padding:12px 16px;border-left:2px solid var(--gold-dim);background:rgba(212,175,55,.05);display:flex;flex-wrap:wrap;gap:6px 22px}.schedule-item{font-size:16px;letter-spacing:.04em;color:var(--gold-light);white-space:nowrap}.thread-connector{width:1px;height:40px;margin:0 auto;background:linear-gradient(to bottom,var(--gold-dim),transparent)}#practical{background:linear-gradient(180deg,var(--ink),#2A1C42);align-items:center;text-align:center;padding-top:60px;padding-bottom:60px}.practical-grid{margin-top:36px;display:grid;grid-template-columns:1fr;grid-gap:16px;gap:16px;width:100%;max-width:420px}.detail-card{background:var(--surface);border:1px solid var(--line);border-left:2px solid var(--gold-dim);padding:24px 20px;text-align:left;opacity:0;transform:translateY(28px) scale(.97);transition:transform .8s cubic-bezier(.2,.7,.3,1),opacity .8s ease,border-color .4s ease,background .4s ease;position:relative;overflow:hidden}.detail-card:first-child{transition-delay:0s}.detail-card:nth-child(2){transition-delay:.15s}.detail-card:nth-child(3){transition-delay:.3s}.detail-card.in-view{opacity:1;transform:translateY(0) scale(1)}.detail-card:after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 30%,rgba(244,229,178,.18) 48%,rgba(244,229,178,.28) 50%,rgba(244,229,178,.18) 52%,transparent 70%);background-size:250% 100%;background-position:130% 0;opacity:0;pointer-events:none}.detail-card.in-view:after{animation:cardShimmer 1.4s ease forwards}.detail-card:nth-child(2).in-view:after{animation-delay:.15s}.detail-card:nth-child(3).in-view:after{animation-delay:.3s}@keyframes cardShimmer{0%{opacity:0;background-position:130% 0}15%{opacity:1}70%{opacity:1}to{opacity:0;background-position:-30% 0}}.detail-card:active,.detail-card:hover{border-left-color:var(--gold);background:var(--surface-raised)}.detail-card-icon{position:absolute;top:18px;right:18px;font-size:22px;opacity:.35;transition:transform .4s ease,opacity .4s ease}.detail-card:active .detail-card-icon,.detail-card:hover .detail-card-icon{opacity:.6;transform:scale(1.1) rotate(-4deg)}.detail-card h3{font-size:15px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-bottom:10px}.detail-card p{font-family:var(--font-marcellus),serif;font-size:21px;color:var(--cream);line-height:1.5;max-width:85%}.detail-card span{display:block;margin-top:6px;font-family:var(--font-karla),sans-serif;font-size:16px;color:var(--rose);opacity:.75}.action-row{margin-top:26px;display:flex;flex-wrap:wrap;justify-content:center;gap:12px;opacity:0;transform:translateY(20px);transition:all .9s ease .45s}.action-row.in-view{opacity:1;transform:translateY(0)}.action-pill{font-family:var(--font-karla),sans-serif;cursor:pointer;font-size:15px;letter-spacing:.12em;text-transform:uppercase;padding:12px 18px;border-radius:24px;border:1px solid var(--line);color:var(--gold);background:rgba(212,175,55,.06);text-decoration:none;transition:background .3s ease,border-color .3s ease}.action-pill:active,.action-pill:hover{background:rgba(212,175,55,.14);border-color:var(--gold)}#countdown{align-items:center;text-align:center;background:linear-gradient(180deg,#2A1C42,var(--ink) 40%,var(--ink))}.count-ornament{font-size:34px;margin-bottom:22px;filter:drop-shadow(0 0 16px rgba(244,229,178,.55));animation:flicker 2.4s ease-in-out infinite}.count-grid{margin-top:34px;display:flex;align-items:flex-start;justify-content:center;gap:clamp(8px,2.5vw,22px);opacity:0;transform:translateY(24px);transition:all 1s ease .2s}.count-grid.in-view{opacity:1;transform:translateY(0)}.count-cell{display:flex;flex-direction:column;align-items:center;gap:12px}.count-num{font-family:var(--font-cinzel),serif;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-size:clamp(2.4rem,12vw,5.2rem);line-height:1;background:linear-gradient(100deg,var(--gold) 0,var(--gold-light) 25%,#fff8e0 50%,var(--gold-light) 75%,var(--gold) 100%);background-size:250% 100%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:var(--gold-light);animation:kineticShimmer 7s linear infinite;filter:drop-shadow(0 0 24px rgba(212,175,55,.3))}.count-label{font-size:13px;letter-spacing:.28em;text-transform:uppercase;color:var(--gold-dim)}.count-past{margin-top:34px;font-family:var(--font-script-hand),cursive;font-size:clamp(2rem,9vw,3rem);color:var(--gold-light);line-height:1.4;opacity:0;transform:translateY(24px);transition:all 1s ease .2s}.count-past.in-view{opacity:1;transform:translateY(0)}.count-date{margin-top:38px;font-size:15px;letter-spacing:.25em;text-transform:uppercase;color:var(--rose);opacity:0;transform:translateY(20px);transition:all 1s ease .4s}.count-date.in-view{opacity:1;transform:translateY(0)}.sound-toggle{position:fixed;bottom:14px;right:14px;z-index:40;font-family:var(--font-karla),sans-serif;font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--gold-dim);background:rgba(32,20,50,.85);border:1px solid var(--line);padding:8px 12px;border-radius:20px;cursor:pointer;transition:color .3s ease,border-color .3s ease}.sound-toggle:hover,.sound-toggle[aria-pressed=true]{color:var(--gold);border-color:var(--gold-dim)}#closing{align-items:center;text-align:center;position:relative;overflow:hidden;background:var(--ink);padding-bottom:96px}.closing-photo-frame{position:absolute;inset:0;z-index:0}.closing-photo-frame img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.4;filter:saturate(1.1) brightness(.75);transform:scale(1.08)}.closing-photo-frame:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,var(--ink) 0,rgba(32,20,50,.55) 35%,rgba(32,20,50,.75) 70%,var(--ink) 100%)}.closing-glow{position:absolute;inset:0;background:radial-gradient(ellipse 100% 80% at 50% 105%,rgba(212,175,55,.3),transparent 68%),radial-gradient(ellipse 60% 45% at 50% 60%,rgba(122,31,61,.2),transparent 70%),radial-gradient(ellipse 55% 42% at 50% 38%,rgba(242,216,220,.16),transparent 70%);animation:closingBreathe 3.4s ease-in-out infinite;mix-blend-mode:screen;z-index:0}@keyframes closingBreathe{0%,to{opacity:.7;transform:scale(1)}50%{opacity:1;transform:scale(1.1)}}#closing>*{position:relative;z-index:1}#closing>.closing-glow,#closing>.closing-photo-frame,#closing>.diya-ring{position:absolute;z-index:0}.closing-flame-wrap{position:relative;display:flex;justify-content:center}.diya-ring{position:absolute;top:50%;left:50%;width:0;height:0;z-index:0;pointer-events:none}.diya-ring span{position:absolute;font-size:15px;opacity:0;animation:ringFadeIn 1.5s ease forwards,ringFlicker 1.8s ease-in-out infinite}.diya-ring span:nth-child(2n){filter:drop-shadow(0 0 6px rgba(246,240,228,.9))}@keyframes ringFadeIn{to{opacity:.6}}@keyframes ringFlicker{0%,to{opacity:.35;transform:scale(1)}50%{opacity:.8;transform:scale(1.25)}}.closing-flame{font-size:44px;opacity:0;animation:fadeUp 1.2s ease forwards,flicker 2.4s ease-in-out 1.2s infinite;filter:drop-shadow(0 0 18px rgba(244,229,178,.6))}.closing-text{margin-top:26px;font-size:clamp(2rem,8.5vw,2.9rem);color:var(--gold-light);line-height:1.3;opacity:0;transform:translateY(24px);filter:blur(3px);transition:all 1.6s cubic-bezier(.2,.7,.3,1) .3s}.closing-text.in-view{opacity:1;transform:translateY(0);filter:blur(0)}.closing-sub{margin-top:20px;font-size:17px;color:var(--rose);letter-spacing:.05em;max-width:34ch;opacity:0;transform:translateY(20px);transition:all 1.4s ease .7s}.closing-sub.in-view{opacity:1;transform:translateY(0)}.closing-divider{margin-top:32px;width:0;height:1px;background:linear-gradient(90deg,transparent,var(--gold) 35%,var(--gold-light) 48%,var(--thazin) 52%,var(--blush) 65%,transparent);transition:width 1.2s ease 1s}.closing-divider.in-view{width:180px}.closing-names{margin-top:24px;font-size:16px;letter-spacing:.3em;text-transform:uppercase;color:var(--gold-dim);opacity:0;transition:opacity 1.2s ease 1.3s}.closing-names.in-view{opacity:1}.closing-actions{margin-top:34px;display:flex;flex-direction:column;align-items:center;gap:14px;width:100%;max-width:320px;opacity:0;transform:translateY(22px);transition:all 1.2s ease .5s}.closing-actions.in-view{opacity:1;transform:translateY(0)}.rsvp-cta{display:block;width:100%;padding:16px 24px;border-radius:30px;background:linear-gradient(100deg,var(--gold) 0,var(--gold-light) 50%,var(--gold) 100%);background-size:200% 100%;color:var(--ink);font-size:16px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;text-decoration:none;text-align:center;box-shadow:0 0 28px rgba(212,175,55,.35);transition:background-position .6s ease,transform .2s ease}.rsvp-cta:hover{background-position:100% 0}.rsvp-cta:active{transform:scale(.97)}.rsvp-contacts{display:flex;flex-direction:column;gap:6px;font-size:16px;letter-spacing:.04em;color:var(--rose);text-align:center}.keepsake-btn{margin-top:8px;background:none;border:1px solid var(--line);border-radius:24px;padding:12px 22px;color:var(--gold);font-family:var(--font-karla),sans-serif;font-size:14px;letter-spacing:.15em;text-transform:uppercase;cursor:pointer;transition:background .3s ease,border-color .3s ease}.keepsake-btn:active,.keepsake-btn:hover{background:rgba(212,175,55,.1);border-color:var(--gold-dim)}