:root{--pink:#d95768;--pink-soft:#f9d7dc;--green:#789b61;--green-soft:#c8d8ae;--cream:#fff7e8;--paper:#fffcf7;--ink:#4b382f;--shadow:0 18px 50px rgba(77,55,45,.14);font-family:Georgia,'Times New Roman',serif;color:var(--ink);background:var(--page,var(--cream));scroll-behavior:smooth}*{box-sizing:border-box}body{margin:0;background:var(--page,var(--cream));line-height:1.65}button,input,select,textarea{font:inherit}button,a{touch-action:manipulation}.opening{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:24px;background:linear-gradient(160deg,var(--page),var(--green-soft));transition:opacity .5s}.envelope{position:relative;width:min(92vw,420px);min-height:520px;padding:74px 28px 38px;text-align:center;border-radius:220px 220px 26px 26px;background:var(--paper);border:1px solid color-mix(in srgb,var(--green) 25%,white);box-shadow:var(--shadow);overflow:hidden}.envelope:before,.hero-arch:before{content:'';position:absolute;inset:16px;border:1px solid var(--pink-soft);border-radius:inherit;pointer-events:none}.eyebrow,.section-kicker{margin:0 0 8px;text-transform:uppercase;letter-spacing:.22em;font:600 .72rem/1.4 system-ui,sans-serif;color:var(--green)}h1,h2,h3{line-height:1.15}h1{margin:.2em 0;font-size:clamp(2.35rem,10vw,4.5rem);font-weight:500}h1 span{color:var(--pink)}.guest-label{margin-top:60px;margin-bottom:0;font-size:.9rem}.guest-name{min-height:3.3em;margin:.35rem auto 1.5rem;display:grid;place-items:center;font-size:1.2rem;font-weight:700}.seal{width:86px;height:86px;border:0;border-radius:50%;background:var(--pink);color:white;box-shadow:0 8px 20px rgba(217,87,104,.28);cursor:pointer;transition:transform .25s}.seal:hover,.seal:focus-visible{transform:scale(1.06)}.seal span{font-weight:700}.open-hint{font:600 .75rem system-ui,sans-serif;letter-spacing:.14em;text-transform:uppercase}.opening.is-opening .envelope{animation:envelope-open .9s both}.journey{position:fixed;inset:0;z-index:90;display:none;place-items:center;background:var(--page);text-align:center}.journey.is-active{display:grid}.journey img{width:min(86vw,620px);animation:journey 1.5s ease-in-out both}.hero{min-height:100svh;display:grid;place-items:center;padding:32px 20px;background:var(--hero-bg)}.hero-arch{position:relative;width:min(94vw,680px);min-height:78svh;display:grid;place-content:center;text-align:center;padding:58px 28px;border-radius:48% 48% 28px 28px;background:color-mix(in srgb,var(--paper) 92%,transparent);box-shadow:var(--shadow);overflow:hidden}.wedding-date{font-size:1.1rem}.button{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:.75rem 1.1rem;border:1px solid var(--green);border-radius:999px;background:var(--green);color:white;text-decoration:none;cursor:pointer}.button-secondary{background:transparent;color:var(--green)}.section-nav{position:sticky;top:0;z-index:30;display:flex;gap:12px;justify-content:center;overflow:auto;padding:10px 14px;background:color-mix(in srgb,var(--paper) 90%,transparent);backdrop-filter:blur(14px);font:600 .75rem system-ui,sans-serif}.section-nav a{color:var(--ink);text-decoration:none;white-space:nowrap}.section{width:min(100% - 28px,920px);margin:0 auto;padding:90px 24px;text-align:center}.section h2{font-size:clamp(2rem,8vw,3.5rem);margin:.2em 0 .8em}.floral-rule{width:110px;height:18px;margin:0 auto 18px;background:radial-gradient(circle at 50% 50%,var(--pink) 0 7px,transparent 8px),linear-gradient(90deg,transparent,var(--green),transparent);opacity:.75}.couple-grid,.event-grid,.gift-grid{display:grid;gap:22px}.couple-grid article,.event-card,.gift-grid article,.demo-form{padding:28px;border:1px solid color-mix(in srgb,var(--green) 25%,white);border-radius:28px;background:color-mix(in srgb,var(--paper) 94%,transparent);box-shadow:var(--shadow)}.portrait{width:148px;aspect-ratio:1;margin:auto;border-radius:50%;display:grid;place-items:center;background:linear-gradient(145deg,var(--pink-soft),var(--green-soft));font-size:3rem}.event-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px}.gallery-grid figure,.placeholders div{margin:0;min-height:180px;border-radius:22px;overflow:hidden;background:linear-gradient(145deg,var(--pink-soft),var(--green-soft));display:grid;place-items:center}.gallery-grid img{width:100%;height:220px;object-fit:cover}.gallery-grid figcaption{padding:10px}.demo-form{display:grid;gap:16px;max-width:520px;margin:auto;text-align:left}.demo-form label{display:grid;gap:6px}.demo-form input,.demo-form select,.demo-form textarea{width:100%;padding:.75rem;border:1px solid var(--green-soft);border-radius:12px;background:white}.demo-form textarea{min-height:120px}.countdown{display:flex;flex-wrap:wrap;justify-content:center;gap:12px}.countdown span{min-width:76px;padding:14px;border-radius:18px;background:var(--paper)}.countdown strong{display:block;font-size:1.8rem}.signature{font-size:2.25rem;color:var(--pink)}.outro-bicycle{display:block;width:min(75vw,380px);margin:24px auto}.music-control{position:fixed;right:18px;bottom:22px;z-index:40;width:52px;height:52px;border:0;border-radius:50%;background:var(--pink);color:#fff;box-shadow:var(--shadow)}.music-control.is-playing{animation:pulse 1.6s infinite}.progress-bicycle{position:fixed;left:0;bottom:4px;z-index:35;width:100%;pointer-events:none;transform:translateX(calc(var(--progress,0%) - 42px))}.progress-bicycle img{width:82px;display:block}.data-note{margin:0;padding:12px;text-align:center;font:500 .7rem system-ui,sans-serif;opacity:.6}.reveal{opacity:0;transform:translateY(20px);transition:.65s ease}.reveal.is-visible{opacity:1;transform:none}.theme-picker,.error-state{min-height:100svh;display:grid;place-items:center;padding:24px}.picker-card,.error-state{width:min(100%,620px);padding:50px;text-align:center;border-radius:28px;background:var(--paper);box-shadow:var(--shadow)}.picker-actions{display:grid;gap:12px;margin-top:24px}@keyframes envelope-open{50%{transform:scale(.97)}100%{transform:translateY(-8px)}}@keyframes journey{0%{transform:translateX(-80vw);opacity:0}15%{opacity:1}100%{transform:translateX(80vw);opacity:1}}@keyframes pulse{50%{transform:scale(1.08)}}@media(min-width:680px){.couple-grid{grid-template-columns:1fr 1fr}.section{padding-block:120px}}@media(prefers-reduced-motion:reduce){:root{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.reveal{opacity:1;transform:none}.progress-bicycle{display:none}}

.opening{overflow:hidden}.opening[hidden]{display:none}.envelope{width:min(100%,420px)}.opening::after{content:"";position:absolute;left:-40px;bottom:-24px;width:min(78vw,360px);height:min(58vh,440px);background-image:var(--corner-image);background-repeat:no-repeat;background-size:var(--corner-size,360px auto);background-position:var(--corner-position,left center);opacity:.8;pointer-events:none}.opening .envelope{z-index:1}.hero-arch{width:min(100%,680px);background-color:color-mix(in srgb,var(--paper) 92%,transparent);background-image:var(--hero-ornament);background-repeat:no-repeat;background-position:center;background-size:contain}.hero-arch>*{position:relative;z-index:1}.hero-couple{display:block;width:min(76vw,310px);max-height:42svh;margin:10px auto 18px;object-fit:contain;filter:drop-shadow(0 12px 18px rgba(75,56,47,.12))}.hero-actions,.closing-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}.floral-rule{width:min(70vw,300px);height:42px;background-image:var(--divider-image);background-repeat:no-repeat;background-position:center;background-size:contain;opacity:.9}.portrait{display:block;width:min(100%,260px);height:340px;aspect-ratio:auto;margin:auto;object-fit:contain;border-radius:48% 48% 24px 24px;font-size:0}.location-card{max-width:680px;margin:auto;padding:36px 24px;border:1px solid color-mix(in srgb,var(--green) 28%,white);border-radius:32px;background:color-mix(in srgb,var(--paper) 94%,transparent);box-shadow:var(--shadow)}.location-card strong{font-size:1.35rem}.dress-palette{display:flex;flex-wrap:wrap;justify-content:center;gap:18px;margin-top:28px}.dress-palette div{display:grid;gap:8px;justify-items:center}.dress-palette span{width:64px;height:64px;border:5px solid var(--paper);border-radius:50%;background:var(--swatch);box-shadow:0 5px 18px rgba(75,56,47,.15)}.gallery-grid img{height:300px;object-fit:contain;background:linear-gradient(145deg,var(--pink-soft),var(--green-soft))}.wish-list{display:grid;gap:14px;max-width:680px;margin:0 auto 28px}.wish-list article{padding:20px;border:1px solid color-mix(in srgb,var(--green) 22%,white);border-radius:20px;background:color-mix(in srgb,var(--paper) 94%,transparent);text-align:left}.wish-list article p{margin:.35rem 0}.wish-list small,.test-notice{color:#8c4d58;font:600 .75rem/1.5 system-ui,sans-serif}.test-notice{max-width:680px;margin:18px auto;padding:12px;border-radius:14px;background:color-mix(in srgb,var(--pink-soft) 55%,white)}.section-closing{position:relative;overflow:hidden;padding-bottom:180px}.section-closing::after{content:"";position:absolute;left:50%;bottom:0;width:min(100%,920px);height:190px;transform:translateX(-50%);background-image:var(--closing-border-image);background-repeat:no-repeat;background-position:center bottom;background-size:contain;opacity:.9;pointer-events:none}.section-closing>*{position:relative;z-index:1}.basmalah{font-size:1.2rem;color:var(--green)}blockquote{max-width:680px;margin:36px auto 12px;padding:24px;border-left:3px solid var(--pink);background:color-mix(in srgb,var(--paper) 78%,transparent);font-style:italic}.form-status{min-height:1.6em}.music-control{cursor:pointer}.music-control:focus-visible,.button:focus-visible,.seal:focus-visible,.section-nav a:focus-visible{outline:3px solid color-mix(in srgb,var(--pink) 68%,white);outline-offset:3px}

@media(max-width:430px){.section-nav{justify-content:flex-start}.hero-arch{min-height:86svh;padding-inline:20px}.hero-couple{width:min(74vw,280px)}.portrait{height:300px}.gallery-grid{grid-template-columns:1fr}.opening::after{opacity:.55}}

/* Full-motion experience v2 */
body{overflow-x:hidden}body.lightbox-open{overflow:hidden}.section-nav{scrollbar-width:none}.section-nav::-webkit-scrollbar{display:none}
.opening{overflow:hidden;transition:opacity .25s ease}.opening::after{animation:corner-breathe 5s ease-in-out infinite}
.envelope-scene{position:relative;z-index:2;width:min(94vw,480px);text-align:center}.opening-title{margin:0 0 8px;color:var(--green);font:600 .72rem/1.4 system-ui,sans-serif;letter-spacing:.22em;text-transform:uppercase}.opening-names{margin:0 0 18px;font-size:clamp(2rem,9vw,3.4rem);line-height:1.1}.opening-names span{color:var(--pink)}
.opening .envelope{position:relative;width:min(86vw,390px);height:270px;min-height:0;margin:0 auto;padding:0;overflow:visible;border:0;border-radius:0;background:none;box-shadow:none;perspective:1000px;animation:none}.opening .envelope::before{content:none}.opening.is-opening .envelope{animation:none}
.envelope-back,.envelope-pocket,.envelope-flap{position:absolute;inset:0;border:1px solid color-mix(in srgb,var(--green) 25%,white);background:var(--paper);box-shadow:var(--shadow)}.envelope-back{border-radius:18px}.envelope-pocket{z-index:4;clip-path:polygon(0 18%,50% 68%,100% 18%,100% 100%,0 100%);border-radius:0 0 18px 18px;background:linear-gradient(145deg,color-mix(in srgb,var(--paper) 80%,var(--pink-soft)),var(--paper) 58%,color-mix(in srgb,var(--paper) 78%,var(--green-soft)))}.envelope-flap{z-index:5;height:58%;transform-origin:50% 0;clip-path:polygon(0 0,100% 0,50% 100%);border-radius:18px 18px 0 0;transition:transform .7s cubic-bezier(.4,0,.2,1) .25s,z-index 0s .55s}
.invitation-card{position:absolute;z-index:3;left:8%;right:8%;bottom:18px;min-height:220px;display:grid;align-content:center;gap:10px;padding:24px;border:1px solid var(--pink-soft);border-radius:14px;background:var(--paper);box-shadow:0 10px 30px rgba(75,56,47,.12);transition:transform .75s cubic-bezier(.2,.8,.25,1) .55s}.invitation-card small{color:var(--green);letter-spacing:.16em;text-transform:uppercase}.invitation-card strong{color:var(--pink);font-size:1.8rem}
.opening .seal{position:absolute;z-index:6;left:50%;top:39%;width:82px;height:82px;transform:translate(-50%,-50%);border:4px double color-mix(in srgb,white 65%,transparent);animation:seal-pulse 2.4s ease-in-out 1s infinite}.opening .seal:hover,.opening .seal:focus-visible{transform:translate(-50%,-50%) scale(1.07)}.guest-panel{display:grid;gap:3px;margin:20px auto 0}.guest-panel span{font-size:.82rem}.guest-panel strong{min-height:1.8em;font-size:1.18rem}.open-hint{margin:8px 0 0}
.opening.is-opening .seal{opacity:0;transform:translate(-50%,-50%) scale(.7);animation:none}.opening.is-opening .envelope-flap{z-index:2;transform:rotateX(180deg)}.opening.is-opening .invitation-card{transform:translateY(-150px)}.opening.is-opening .guest-panel,.opening.is-opening .open-hint,.opening.is-opening .opening-title,.opening.is-opening .opening-names{animation:fade-away .35s both}
.opening-fx i{position:absolute;z-index:1;width:24px;height:24px;background:url('../assets/animation/loading-pink-petal-v1.svg') center/contain no-repeat;opacity:.65;animation:petal-float 6s linear infinite}.opening-fx i:nth-child(1){left:8%;top:8%;animation-delay:-1s}.opening-fx i:nth-child(2){left:22%;top:75%;animation-delay:-4s}.opening-fx i:nth-child(3){right:12%;top:14%;animation-delay:-2s}.opening-fx i:nth-child(4){right:22%;top:70%;animation-delay:-5s}.opening-fx i:nth-child(5),.opening-fx i:nth-child(6){background-image:url('../assets/animation/loading-green-leaf-v1.svg')}.opening-fx i:nth-child(5){left:4%;top:45%;animation-delay:-3s}.opening-fx i:nth-child(6){right:5%;top:48%;animation-delay:-6s}
.journey{z-index:105;display:none;overflow:hidden;padding:20px;opacity:0;visibility:hidden;transition:opacity .3s ease}.journey.is-active{display:grid;opacity:1;visibility:visible}.journey.is-leaving{opacity:0}.journey-copy{position:relative;z-index:2;margin-bottom:12px}.journey-copy span{display:inline-grid;place-items:center;width:54px;height:54px;border-radius:50%;background:var(--pink);color:white;font-weight:700}.journey-copy p{margin:10px 0 0;font-size:clamp(1rem,4vw,1.25rem)}.journey-track{position:relative;width:min(96vw,760px);height:min(48vw,360px);border-bottom:3px solid color-mix(in srgb,var(--green) 65%,transparent)}.journey-track::after{content:'';position:absolute;left:10%;right:10%;bottom:-8px;height:14px;background:radial-gradient(circle,var(--pink) 0 3px,transparent 4px) 0 0/34px 14px repeat-x;opacity:.65}.journey .journey-track img{position:absolute;left:0;bottom:3px;width:min(78vw,600px);transform:translateX(-105%);animation:bicycle-cross 2.25s cubic-bezier(.25,.68,.35,1) .05s both}.trail-petal,.trail-leaf{position:absolute;left:28%;bottom:20%;width:28px;height:28px;background:url('../assets/animation/loading-pink-petal-v1.svg') center/contain no-repeat;animation:trail-drift 1.4s ease-out .7s both}.trail-leaf{left:43%;bottom:12%;background-image:url('../assets/animation/loading-green-leaf-v1.svg');animation-delay:1.05s}.trail-petal-second{left:60%;bottom:18%;animation-delay:1.35s}
.hero-arch{min-height:82svh;padding:48px 28px 36px}.hero-couple{width:min(68vw,300px);max-height:40svh;margin:8px auto 12px}.hero-step{opacity:0;transform:translateY(22px)}body.is-open .hero-step{animation:hero-rise .72s ease-out both}body.is-open .hero-step-1{animation-delay:.1s}body.is-open .hero-step-2{animation-delay:.25s}body.is-open .hero-step-3{animation-delay:.4s}body.is-open .hero-step-4{animation-delay:.52s}body.is-open .hero-step-5{animation-delay:.7s}
.reveal{transform:translateY(28px);transition:opacity .7s ease,transform .7s ease}.reveal .floral-rule{opacity:0;transform:scaleX(.2);transform-origin:center;transition:opacity .6s .12s,transform .8s .12s}.reveal.is-visible .floral-rule{opacity:.9;transform:scaleX(1)}
.islamic-frame{position:relative;max-width:720px;margin:auto;padding:42px 28px;border:1px solid color-mix(in srgb,var(--green) 38%,transparent);border-radius:48% 48% 26px 26px;background:color-mix(in srgb,var(--paper) 88%,transparent)}.islamic-frame::before,.islamic-frame::after{content:'❧';position:absolute;top:8px;color:var(--pink);font-size:1.6rem;opacity:0;transition:opacity .6s .5s,transform .6s .5s}.islamic-frame::before{left:24px;transform:translateX(-12px)}.islamic-frame::after{right:24px;transform:scaleX(-1) translateX(-12px)}.section-intro.is-visible .islamic-frame::before,.section-intro.is-visible .islamic-frame::after{opacity:1;transform:none}
.profile-card{display:grid;align-items:center;gap:24px;padding:28px;border:1px solid color-mix(in srgb,var(--green) 25%,white);border-radius:42px;background:color-mix(in srgb,var(--paper) 94%,transparent);box-shadow:var(--shadow);overflow:hidden;transition:opacity .7s .18s,transform .75s .18s}.profile-art{position:relative;min-height:360px;display:grid;place-items:end center;border-radius:48% 48% 28px 28px;background:linear-gradient(145deg,var(--pink-soft),var(--green-soft))}.profile-art .portrait{display:block;width:min(100%,310px);height:390px;margin:auto;object-fit:contain;filter:drop-shadow(0 10px 16px rgba(75,56,47,.12))}.profile-copy small{color:var(--pink);font:700 .72rem system-ui,sans-serif;letter-spacing:.18em;text-transform:uppercase}.profile-copy h3{font-size:clamp(1.5rem,5vw,2.2rem)}.profile-spark{position:absolute;top:16%;right:12%;color:white;font-size:1.8rem;animation:sparkle 2.4s ease-in-out infinite}.section-couple:not(.is-visible) .profile-bride{transform:translateX(-38px);opacity:0}.section-couple:not(.is-visible) .profile-groom{transform:translateX(38px);opacity:0}
.countdown-shell{position:relative;max-width:760px;margin:auto;padding:34px 20px 40px;border-radius:48px;background:linear-gradient(145deg,color-mix(in srgb,var(--pink-soft) 72%,white),color-mix(in srgb,var(--green-soft) 76%,white));box-shadow:var(--shadow)}.countdown-shell::before,.countdown-shell::after{content:'✿';position:absolute;top:14px;color:var(--pink);font-size:2rem;animation:flower-sway 3s ease-in-out infinite}.countdown-shell::before{left:24px}.countdown-shell::after{right:24px;animation-delay:-1.5s}.countdown-shell>p{margin:0 0 18px;color:var(--green);font:700 .75rem system-ui,sans-serif;letter-spacing:.2em;text-transform:uppercase}.countdown{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.countdown span{min-width:0;padding:18px 8px;border:1px solid color-mix(in srgb,var(--green) 22%,white);border-radius:22px;background:color-mix(in srgb,var(--paper) 92%,transparent);box-shadow:0 10px 24px rgba(75,56,47,.1);font-size:.78rem}.countdown strong{display:block;color:var(--pink);font-size:clamp(2rem,8vw,3.8rem);line-height:1;font-variant-numeric:tabular-nums}.countdown strong.is-ticking{animation:number-tick .28s ease-out}
.event-card{transition:opacity .6s,transform .65s;transition-delay:calc(.16s + var(--card-delay)),calc(.16s + var(--card-delay))}.section-events:not(.is-visible) .event-card{opacity:0;transform:translateY(30px) rotate(-1deg)}.event-icon{display:inline-grid;place-items:center;width:52px;height:52px;border-radius:50%;background:var(--pink-soft);color:var(--pink);font-size:1.5rem}.section-events.is-visible .event-icon{animation:icon-open .65s .45s both}
.location-pin{display:inline-grid;place-items:center;width:62px;height:62px;margin-bottom:12px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:var(--pink);color:white;font-size:2rem}.section-location.is-visible .location-pin{animation:pin-bounce .75s .25s both}.dress-palette div{transition:opacity .5s,transform .55s}.dress-palette div:nth-child(2){transition-delay:.12s}.dress-palette div:nth-child(3){transition-delay:.24s}.dress-palette div:nth-child(4){transition-delay:.36s}.section-dress-code:not(.is-visible) .dress-palette div{opacity:0;transform:translateY(20px) scale(.8)}
.gallery-grid{grid-template-columns:repeat(2,1fr)}.gallery-item{position:relative;min-height:220px;margin:0;overflow:hidden;padding:0;border:0;border-radius:22px;background:linear-gradient(145deg,var(--pink-soft),var(--green-soft));box-shadow:var(--shadow);cursor:zoom-in;transition:opacity .55s,transform .55s,box-shadow .25s}.gallery-item:first-child{grid-column:1/-1;min-height:380px}.gallery-grid .gallery-item img{width:100%;height:100%;min-height:inherit;display:block;object-fit:cover;background:none;transition:transform .5s ease,filter .5s ease}.gallery-item span{position:absolute;inset:auto 0 0;padding:30px 12px 12px;background:linear-gradient(transparent,rgba(38,28,23,.72));color:white;text-align:left;font-size:.82rem;opacity:0;transition:opacity .3s}.gallery-item:hover img,.gallery-item:focus-visible img{transform:scale(1.055);filter:saturate(1.05)}.gallery-item:hover span,.gallery-item:focus-visible span{opacity:1}.section-gallery:not(.is-visible) .gallery-item{opacity:0;transform:translateY(28px) scale(.96)}.gallery-item:nth-child(2){transition-delay:.08s}.gallery-item:nth-child(3){transition-delay:.16s}.gallery-item:nth-child(4){transition-delay:.24s}.gallery-item:nth-child(5){transition-delay:.32s}.gallery-item:nth-child(n+6){transition-delay:.4s}
.gallery-lightbox{position:fixed;inset:0;z-index:200;display:grid;grid-template-columns:58px minmax(0,920px) 58px;align-items:center;justify-content:center;gap:12px;padding:24px;background:rgba(30,24,20,.91);backdrop-filter:blur(12px)}.gallery-lightbox[hidden]{display:none}.gallery-lightbox figure{margin:0;text-align:center}.gallery-lightbox img{max-width:100%;max-height:80vh;border-radius:18px;object-fit:contain;box-shadow:0 18px 60px rgba(0,0,0,.35)}.gallery-lightbox figcaption,.lightbox-position{color:white}.lightbox-close,.lightbox-prev,.lightbox-next{width:48px;height:48px;border:1px solid rgba(255,255,255,.45);border-radius:50%;background:rgba(255,255,255,.12);color:white;font-size:2rem;cursor:pointer}.lightbox-close{position:absolute;top:18px;right:18px}.lightbox-position{position:absolute;bottom:10px;left:50%;transform:translateX(-50%)}
.gift-card{overflow:hidden;padding:0!important}.gift-toggle{width:100%;min-height:190px;display:grid;place-items:center;align-content:center;gap:8px;padding:26px;border:0;background:linear-gradient(145deg,color-mix(in srgb,var(--pink-soft) 62%,white),color-mix(in srgb,var(--green-soft) 55%,white));cursor:pointer}.gift-toggle strong{font-size:1.25rem}.gift-toggle small{font-family:system-ui,sans-serif}.gift-icon{font-size:2.4rem;transition:transform .45s}.gift-toggle[aria-expanded='true'] .gift-icon{transform:rotateX(180deg) translateY(-4px)}.gift-detail{padding:24px;animation:card-unfold .45s ease both}.gift-detail[hidden]{display:none}
.outro-track{width:100%;overflow:hidden;margin:20px 0}.outro-track .outro-bicycle{display:block;width:min(68vw,390px);margin:0;transform:translateX(-120%)}.section-closing.is-visible .outro-bicycle{animation:outro-ride 1.7s .55s ease-in-out both}.progress-bicycle{left:8px;right:88px;width:auto;bottom:5px;transition:transform .12s linear}
body[data-animation-intensity='none'] .reveal,body[data-animation-intensity='none'] .hero-step{opacity:1;transform:none;animation:none;transition:none}body[data-animation-intensity='none'] .opening-fx,body[data-animation-intensity='none'] .profile-spark{display:none}body[data-animation-intensity='limited'] .opening-fx i:nth-child(n+4){display:none}
@keyframes seal-pulse{0%,70%,100%{transform:translate(-50%,-50%) scale(1)}82%{transform:translate(-50%,-50%) scale(1.08)}}@keyframes fade-away{to{opacity:0;transform:translateY(-8px)}}@keyframes corner-breathe{50%{transform:translateY(-8px) rotate(-1deg)}}@keyframes petal-float{0%{transform:translateY(-12vh) rotate(0);opacity:0}15%{opacity:.65}100%{transform:translateY(100vh) rotate(280deg);opacity:0}}@keyframes bicycle-cross{0%{transform:translateX(-105%);opacity:0}12%{opacity:1}88%{opacity:1}100%{transform:translateX(125%);opacity:0}}@keyframes trail-drift{from{opacity:0;transform:translate(0,0) rotate(0)}30%{opacity:.8}to{opacity:0;transform:translate(-45px,-55px) rotate(160deg)}}@keyframes hero-rise{to{opacity:1;transform:none}}@keyframes sparkle{50%{opacity:.4;transform:scale(.72) rotate(20deg)}}@keyframes number-tick{50%{transform:translateY(-4px) scale(1.05)}}@keyframes flower-sway{50%{transform:rotate(10deg) translateY(-3px)}}@keyframes icon-open{from{opacity:0;transform:scale(.5) rotate(-35deg)}to{opacity:1;transform:none}}@keyframes pin-bounce{0%{opacity:0;transform:rotate(-45deg) translate(22px,-22px)}55%{opacity:1;transform:rotate(-45deg) translate(-5px,5px)}100%{transform:rotate(-45deg)}}@keyframes card-unfold{from{opacity:0;transform:translateY(-14px)}}@keyframes outro-ride{0%{transform:translateX(-120%)}72%{transform:translateX(68%)}100%{transform:translateX(55%) scale(.86)}}
@media(min-width:680px){.profile-card{grid-template-columns:minmax(280px,1fr) 1fr;text-align:left}.profile-groom .profile-art{order:2}.profile-groom .profile-copy{text-align:right}.gift-grid{grid-template-columns:repeat(2,1fr)}.gallery-grid{grid-template-columns:repeat(3,1fr)}.gallery-item:first-child{grid-column:span 2;grid-row:span 2}}
@media(max-width:430px){.hero-arch{min-height:88svh;padding:42px 18px 30px}.hero-couple{width:min(62vw,250px)}.opening .envelope{height:242px}.invitation-card{min-height:198px}.opening.is-opening .invitation-card{transform:translateY(-128px)}.profile-art{min-height:320px}.profile-art .portrait{height:340px}.countdown{gap:7px}.countdown span{padding:14px 4px;border-radius:16px;font-size:.68rem}.countdown strong{font-size:clamp(1.9rem,10vw,2.8rem)}.gallery-grid{grid-template-columns:repeat(2,1fr)}.gallery-item{min-height:190px}.gallery-item:first-child{min-height:310px}.gallery-lightbox{grid-template-columns:44px minmax(0,1fr) 44px;gap:5px;padding:14px 6px}.lightbox-prev,.lightbox-next{width:42px;height:42px}}
@media(prefers-reduced-motion:reduce){.hero-step{opacity:1;transform:none}.opening-fx{display:none}}
.section-couple.is-visible .profile-art .portrait{animation:profile-settle 1.2s .45s ease-out both}.profile-spark{animation-iteration-count:3}@keyframes profile-settle{0%{transform:translateY(18px);opacity:.75}55%{transform:translateY(-3px)}100%{transform:none;opacity:1}}

/* Approved opening, gallery, closing, and safe-area refinements */
.opening:not(.is-opening) .invitation-card{opacity:0;transform:translateY(90px)}.invitation-card{transition:transform .75s ease,opacity .25s .4s}.opening.is-opening .invitation-card{opacity:1;transform:translateY(-150px)}
.journey{grid-template-rows:auto auto auto;align-content:center;gap:12px;padding:24px}.journey-stage{position:relative;width:min(92vw,720px);height:clamp(230px,48vw,360px);display:grid;place-items:center}.journey-bicycle{position:relative!important;left:auto!important;bottom:auto!important;width:min(78vw,560px)!important;opacity:0;transform:translateX(-120vw);animation:none!important}.journey.is-loading .journey-bicycle{animation:bicycle-arrive-center .85s ease-out forwards!important}.journey.is-complete .journey-bicycle{filter:drop-shadow(0 12px 20px rgba(75,56,47,.18))}.journey-progress{position:relative;width:min(76vw,480px);height:18px;margin:auto;border:2px solid color-mix(in srgb,var(--green) 74%,white);border-radius:999px;background:color-mix(in srgb,var(--paper) 86%,white);box-shadow:inset 0 2px 7px rgba(75,56,47,.1);overflow:visible}.journey-progress::before,.journey-progress::after{content:'✿';position:absolute;z-index:2;top:50%;transform:translateY(-53%);color:var(--pink);font-size:1.8rem;text-shadow:0 2px 4px var(--paper)}.journey-progress::before{left:-17px}.journey-progress::after{right:-17px}.journey-progress span{display:block;width:var(--journey-progress,0%);height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--green),color-mix(in srgb,var(--green) 70%,var(--pink)));transition:width .12s linear}.journey.is-complete .journey-progress{box-shadow:0 0 0 5px color-mix(in srgb,var(--green-soft) 38%,transparent),inset 0 2px 7px rgba(75,56,47,.1)}
.hero-content{position:relative;z-index:3;width:min(82%,500px);margin:auto;padding:26px 20px 30px;border-radius:44px;background:color-mix(in srgb,var(--paper) 82%,transparent);box-shadow:0 14px 36px rgba(75,56,47,.1);backdrop-filter:blur(2px)}.hero-content h1{font-size:clamp(2.4rem,8vw,4.4rem)}.hero-content .hero-couple{max-height:36svh;object-fit:contain}.hero-content .hero-actions{position:relative;z-index:4}
.gallery-carousel{position:relative;width:min(100%,720px);margin:auto;padding:0 58px 48px}.gallery-viewport{overflow:hidden;border-radius:28px;box-shadow:var(--shadow);background:linear-gradient(145deg,var(--pink-soft),var(--green-soft));touch-action:pan-y}.gallery-track{display:flex;transition:transform .55s cubic-bezier(.22,.72,.2,1);will-change:transform}.gallery-carousel .gallery-item{flex:0 0 100%;width:100%;min-height:0!important;aspect-ratio:4/5;margin:0;border-radius:0;opacity:1!important;transform:none!important;transition:none}.gallery-carousel.gallery-landscape .gallery-item{aspect-ratio:16/9}.gallery-carousel .gallery-item img{display:block;width:100%;height:100%;min-height:0;object-fit:cover;background:var(--paper);transition:transform .5s ease,filter .5s ease}.gallery-carousel .gallery-item.is-active span,.gallery-carousel .gallery-item:focus-visible span{opacity:1}.gallery-carousel-prev,.gallery-carousel-next{position:absolute;top:50%;width:46px;height:46px;border:1px solid color-mix(in srgb,var(--green) 50%,white);border-radius:50%;background:var(--paper);color:var(--green);box-shadow:0 8px 20px rgba(75,56,47,.14);font-size:2rem;line-height:1;cursor:pointer;transform:translateY(-95%)}.gallery-carousel-prev{left:0}.gallery-carousel-next{right:0}.gallery-carousel-position{position:absolute;left:50%;bottom:0;margin:0;color:var(--green);font:700 .78rem system-ui,sans-serif;letter-spacing:.12em;transform:translateX(-50%)}.gallery-placeholder{min-height:280px;display:grid;place-items:center;border-radius:28px;background:linear-gradient(145deg,var(--pink-soft),var(--green-soft))}
.closing-couple{display:block;width:min(72vw,380px);max-height:480px;margin:28px auto;object-fit:contain;opacity:0;transform:translateY(24px) scale(.96)}.section-closing.is-visible .closing-couple{animation:closing-couple-rise 1s .35s ease-out forwards}
.progress-bicycle{left:14px;right:86px;bottom:10px;width:auto;height:34px;opacity:0;transform:none!important;transition:opacity .2s ease}.progress-bicycle::before{content:'';position:absolute;left:0;right:0;bottom:2px;height:2px;border-radius:999px;background:color-mix(in srgb,var(--green) 42%,transparent)}.progress-bicycle img{position:absolute;left:var(--progress,0%);bottom:0;width:58px;display:block;transform:translateX(-50%);filter:drop-shadow(0 3px 4px rgba(75,56,47,.16))}.progress-bicycle.is-active{opacity:.92}
@keyframes bicycle-arrive-center{0%{opacity:0;transform:translateX(-120vw)}18%{opacity:1}100%{opacity:1;transform:translateX(0)}}@keyframes closing-couple-rise{to{opacity:1;transform:none}}
@media(max-width:430px){.opening.is-opening .invitation-card{transform:translateY(-128px)}.hero-content{width:94%;padding:22px 14px 26px}.gallery-carousel{padding-inline:42px}.gallery-carousel-prev,.gallery-carousel-next{width:40px;height:40px}.progress-bicycle{left:10px;right:78px}.journey-stage{height:250px}}
@media(prefers-reduced-motion:reduce){.journey-bicycle{opacity:1;transform:none}.closing-couple{opacity:1;transform:none}.gallery-track{transition:none}}

/* Main-page motion and visual refinement batch */
.hero-content{width:min(88%,540px);padding:20px 12px 26px;background:transparent;box-shadow:none;backdrop-filter:none}.hero-content .eyebrow,.hero-content h1,.hero-content .wedding-date{text-shadow:0 2px 8px color-mix(in srgb,var(--paper) 92%,transparent),0 0 18px var(--paper)}.hero-content .hero-couple{filter:drop-shadow(0 12px 18px rgba(75,56,47,.16))}
.section-hashtag{display:flex;align-items:baseline;justify-content:center;gap:0;margin-bottom:10px;text-transform:none;letter-spacing:0;font-size:clamp(.76rem,2.5vw,.92rem)}.hashtag-maya,.hashtag-fariz{font-weight:900;letter-spacing:.08em}.hashtag-maya{color:var(--pink)}.hashtag-always{color:var(--ink);font-family:Georgia,'Times New Roman',serif;font-style:italic;letter-spacing:.01em}.hashtag-fariz{color:var(--green)}
.page-ambient{position:fixed;inset:0;z-index:4;overflow:hidden;pointer-events:none;opacity:0;transition:opacity .8s}.is-open .page-ambient{opacity:1}.page-ambient i{position:absolute;top:-12vh;width:22px;height:22px;background:url('../assets/animation/loading-green-leaf-v1.svg') center/contain no-repeat;opacity:.2;animation:page-leaf-drift 11s linear infinite;animation-play-state:paused}.is-open:not(.ambient-paused) .page-ambient i{animation-play-state:running}.page-ambient i:nth-child(1){left:3%;animation-delay:-2s}.page-ambient i:nth-child(2){left:10%;width:16px;height:16px;animation-delay:-7s;animation-duration:13s}.page-ambient i:nth-child(3){left:17%;width:18px;height:18px;animation-delay:-10s;animation-duration:15s}.page-ambient i:nth-child(4){left:83%;animation-delay:-5s;animation-duration:14s}.page-ambient i:nth-child(5){left:91%;width:17px;height:17px;animation-delay:-9s;animation-duration:12s}.page-ambient i:nth-child(6){left:97%;width:15px;height:15px;animation-delay:-1s;animation-duration:16s}
.floral-rule{transform-origin:center;transition:opacity .65s ease,transform .8s ease}.section:not(.is-visible) .floral-rule{opacity:0;transform:scaleX(.18)}.section.is-visible .floral-rule{opacity:.9;transform:scaleX(1)}
.section-couple.is-visible .profile-art .portrait{animation:none}.section-couple.is-in-view .profile-bride .portrait{animation:profile-settle 1.2s .15s ease-out both,profile-idle 4.8s 1.55s ease-in-out infinite}.section-couple.is-in-view .profile-groom .portrait{animation:profile-settle 1.2s .3s ease-out both,profile-idle 5.2s 1.7s ease-in-out infinite}.profile-spark{opacity:.55;animation:none}.section-couple.is-in-view .profile-bride .profile-spark{animation:profile-spark-repeat 4.8s .9s ease-in-out infinite}.section-couple.is-in-view .profile-groom .profile-spark{animation:profile-spark-repeat 5.2s 1.6s ease-in-out infinite}
.location-card{position:relative;display:grid;grid-template-columns:minmax(150px,190px) 1fr;align-items:center;gap:32px;max-width:760px;padding:32px;overflow:hidden;text-align:left;border-color:color-mix(in srgb,var(--green) 36%,white);background:radial-gradient(circle at 10% 12%,color-mix(in srgb,var(--pink-soft) 66%,transparent),transparent 32%),linear-gradient(145deg,color-mix(in srgb,var(--paper) 96%,white),color-mix(in srgb,var(--green-soft) 32%,var(--paper)));box-shadow:0 20px 55px rgba(75,56,47,.13)}.location-card::after{content:'';position:absolute;right:-26px;bottom:-22px;width:180px;height:90px;background-image:var(--divider-image);background-repeat:no-repeat;background-position:center;background-size:contain;opacity:.23;transform:rotate(-7deg);pointer-events:none}.location-visual{position:relative;min-height:190px;display:grid;place-items:center;border-radius:28px;background:linear-gradient(155deg,color-mix(in srgb,var(--pink-soft) 68%,white),color-mix(in srgb,var(--green-soft) 62%,white));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--paper) 72%,transparent)}.location-pin{position:relative;z-index:2;display:grid;place-items:center;width:82px;height:82px;margin:0;border:7px solid color-mix(in srgb,var(--paper) 82%,white);border-radius:50%;transform:none;background:var(--pink);color:white;box-shadow:0 12px 24px rgba(217,87,104,.25);font-size:2rem}.location-route{position:absolute;left:17px;right:17px;bottom:29px;height:18px;border-bottom:3px dashed color-mix(in srgb,var(--green) 58%,transparent);transform-origin:left}.location-route i{position:absolute;bottom:-7px;width:11px;height:11px;border:3px solid var(--paper);border-radius:50%;background:var(--green)}.location-route i:nth-child(1){left:0}.location-route i:nth-child(2){left:48%}.location-route i:nth-child(3){right:0}.location-copy{position:relative;z-index:1}.location-copy small{display:block;margin-bottom:7px;color:var(--pink);font:800 .72rem system-ui,sans-serif;letter-spacing:.18em;text-transform:uppercase}.location-copy strong{display:block;margin-bottom:12px;font-size:clamp(1.5rem,4vw,2.15rem)}.location-copy p{max-width:470px;margin:0 0 22px}.location-copy .actions{justify-content:flex-start}.section-location.is-visible .location-pin{animation:none}.section-location.is-in-view .location-pin{animation:location-medallion-pop .8s .18s ease-out both}.section-location:not(.is-in-view) .location-route{transform:scaleX(.15);opacity:.25}.section-location.is-in-view .location-route{animation:route-draw 1s .55s ease-out both}
.section-closing.is-visible .closing-couple{width:min(82vw,500px);max-height:390px;margin:28px auto;opacity:1;transform:none;animation:none;filter:drop-shadow(0 12px 18px rgba(75,56,47,.14))}
@keyframes page-leaf-drift{0%{transform:translate3d(0,-8vh,0) rotate(0);opacity:0}12%{opacity:.2}55%{transform:translate3d(22px,54vh,0) rotate(160deg);opacity:.2}100%{transform:translate3d(-12px,118vh,0) rotate(330deg);opacity:0}}@keyframes profile-idle{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-7px) rotate(.35deg)}}@keyframes profile-spark-repeat{0%,72%,100%{opacity:.25;transform:scale(.72) rotate(0)}82%{opacity:1;transform:scale(1.08) rotate(16deg)}90%{opacity:.55;transform:scale(.9) rotate(-8deg)}}@keyframes location-medallion-pop{0%{opacity:0;transform:translateY(18px) scale(.72)}60%{opacity:1;transform:translateY(-4px) scale(1.04)}100%{transform:none}}@keyframes route-draw{from{opacity:.2;transform:scaleX(.15)}to{opacity:1;transform:scaleX(1)}}
@media(max-width:620px){.location-card{grid-template-columns:1fr;gap:22px;padding:24px;text-align:center}.location-visual{min-height:160px}.location-copy .actions{justify-content:center}.location-copy p{margin-inline:auto}.hero-content{width:94%;padding-inline:4px}}
@media(prefers-reduced-motion:reduce){.page-ambient{display:none}.section-couple.is-in-view .profile-art .portrait,.section-couple.is-in-view .profile-spark,.section-location.is-in-view .location-pin,.section-location.is-in-view .location-route{animation:none;transform:none;opacity:1}.floral-rule{transform:none;opacity:.9}}
body[data-animation-intensity='none'] .page-ambient{display:none}body[data-animation-intensity='none'] .section-couple.is-in-view .profile-art .portrait,body[data-animation-intensity='none'] .section-couple.is-in-view .profile-spark,body[data-animation-intensity='none'] .section-location.is-in-view .location-pin,body[data-animation-intensity='none'] .section-location.is-in-view .location-route{animation:none;transform:none;opacity:1}

/* Concept 1 character, icon, and garden-motion integration */
.ui-icon{display:inline-block;width:1.15em;height:1.15em;object-fit:contain;vertical-align:-.18em;pointer-events:none}.button .ui-icon{margin-right:.38em}.event-icon .ui-icon,.location-pin .ui-icon,.gift-icon .ui-icon{width:1.35em;height:1.35em}.music-control .ui-icon,.gallery-carousel button .ui-icon,.gallery-lightbox button .ui-icon{width:1.25em;height:1.25em}.music-control .music-pause{display:none}.music-control.is-playing .music-play{display:none}.music-control.is-playing .music-pause{display:inline-flex}
html[data-theme='concept-1'] .opening{width:100%;min-width:0;display:flex;align-items:center;justify-content:center;padding:max(18px,env(safe-area-inset-top)) max(14px,env(safe-area-inset-right)) max(18px,env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left));overflow:hidden}html[data-theme='concept-1'] .opening[hidden]{display:none!important}html[data-theme='concept-1'] .envelope-scene{position:relative;left:auto;right:auto;width:min(100%,480px);margin:auto;transform:none}html[data-theme='concept-1'] .opening-sprig{position:absolute;z-index:0;right:-38px;top:38%;width:min(38vw,190px);max-height:300px;object-fit:contain;opacity:.9;transform:translateY(-50%) rotate(3deg);pointer-events:none;filter:drop-shadow(0 8px 15px rgba(75,56,47,.08))}html[data-theme='concept-1'] .envelope-scene>.opening-title,html[data-theme='concept-1'] .envelope-scene>.opening-names,html[data-theme='concept-1'] .envelope-scene>.envelope,html[data-theme='concept-1'] .envelope-scene>.guest-panel,html[data-theme='concept-1'] .envelope-scene>.open-hint{position:relative;z-index:1}
html[data-theme='concept-1'] .hero-content{display:flex;flex-direction:column;align-items:center;width:min(94%,560px)}html[data-theme='concept-1'] .hero-content .hero-couple{width:min(72vw,390px);max-height:46svh;margin:8px auto 0;object-fit:contain}html[data-theme='concept-1'] .hero-content .hero-actions{gap:8px;margin-top:22px}html[data-theme='concept-1'] .hero-actions .button{min-height:36px;padding:.48rem .82rem;font-size:.78rem;box-shadow:0 6px 14px rgba(75,56,47,.1)}
html[data-theme='concept-1'] .section{position:relative}html[data-theme='concept-1'] body.vine-growth-enabled .floral-rule{width:132px;height:30px;background:url('../assets/ambient/vine-growth-sprig-v1.svg') center/contain no-repeat;clip-path:inset(0 50% 0 50%);opacity:0;transform:none}html[data-theme='concept-1'] body.vine-growth-enabled .section.is-in-view .floral-rule{animation:vine-grow 1.15s .08s cubic-bezier(.2,.72,.2,1) forwards}
html[data-theme='concept-1'] .vine-butterfly{position:absolute;z-index:3;top:78px;left:calc(50% + 58px);width:52px;height:42px;display:grid;place-items:center;pointer-events:none;opacity:0}html[data-theme='concept-1'] .vine-butterfly img{width:100%;height:100%;object-fit:contain;transform-origin:50% 78%}html[data-theme='concept-1'] .section-couple.is-in-view .vine-butterfly{animation:butterfly-settle .8s 1.05s ease-out forwards}html[data-theme='concept-1'] .section-couple.is-in-view .vine-butterfly img{animation:butterfly-perched-flap 2.8s 1.7s ease-in-out infinite}
html[data-theme='concept-1'] .profile-art{position:relative;isolation:isolate}html[data-theme='concept-1'] body.profile-transition-enabled .profile-art .portrait{position:absolute;inset:0;width:100%;height:100%;margin:auto;object-fit:contain;animation:none!important;will-change:opacity,transform}html[data-theme='concept-1'] body.profile-transition-enabled .profile-art .profile-intro{z-index:1;opacity:1;transform:translateY(0) scale(1)}html[data-theme='concept-1'] body.profile-transition-enabled .profile-art .profile-final{z-index:2;opacity:0;transform:translateY(12px) scale(.98)}html[data-theme='concept-1'] body.profile-transition-enabled .profile-sequence-running .profile-bride .profile-intro{animation:profile-intro-exit 3.8s .18s ease-in-out forwards!important}html[data-theme='concept-1'] body.profile-transition-enabled .profile-sequence-running .profile-bride .profile-final{animation:profile-final-enter 3.8s .18s ease-in-out forwards!important}html[data-theme='concept-1'] body.profile-transition-enabled .profile-sequence-running .profile-groom .profile-intro{animation:profile-intro-exit 3.8s .42s ease-in-out forwards!important}html[data-theme='concept-1'] body.profile-transition-enabled .profile-sequence-running .profile-groom .profile-final{animation:profile-final-enter 3.8s .42s ease-in-out forwards!important}html[data-theme='concept-1'] .profile-spark{width:34px;height:34px;background:url('../assets/ambient/pollen-sparkle-cluster-v1.svg') center/contain no-repeat;color:transparent}
html[data-theme='concept-1'] .garden-breeze{z-index:4}html[data-theme='concept-1'] .garden-breeze .ambient-particle{position:absolute;top:-10vh;width:18px;height:18px;background:url('../assets/ambient/pollen-sparkle-cluster-v1.svg') center/contain no-repeat;opacity:0;animation:garden-pollen-drift var(--drift-duration,15s) linear infinite;animation-delay:var(--drift-delay,0s);animation-play-state:paused}html[data-theme='concept-1'] .is-open:not(.ambient-paused) .garden-breeze .ambient-particle{animation-play-state:running}html[data-theme='concept-1'] .ambient-particle-1{left:5%;--drift-delay:-3s;--drift-duration:16s}html[data-theme='concept-1'] .ambient-particle-2{left:13%;--drift-delay:-11s;--drift-duration:19s}html[data-theme='concept-1'] .ambient-particle-3{left:22%;--drift-delay:-7s;--drift-duration:17s}html[data-theme='concept-1'] .ambient-particle-4{left:31%;--drift-delay:-15s;--drift-duration:21s}html[data-theme='concept-1'] .ambient-particle-5{left:42%;--drift-delay:-5s;--drift-duration:18s}html[data-theme='concept-1'] .ambient-particle-6{left:52%;--drift-delay:-13s;--drift-duration:20s}html[data-theme='concept-1'] .ambient-particle-7{left:61%;--drift-delay:-2s;--drift-duration:17s}html[data-theme='concept-1'] .ambient-particle-8{left:70%;--drift-delay:-9s;--drift-duration:22s}html[data-theme='concept-1'] .ambient-particle-9{left:79%;--drift-delay:-16s;--drift-duration:20s}html[data-theme='concept-1'] .ambient-particle-10{left:87%;--drift-delay:-6s;--drift-duration:18s}html[data-theme='concept-1'] .ambient-particle-11{left:94%;--drift-delay:-12s;--drift-duration:21s}html[data-theme='concept-1'] .ambient-particle-12{left:48%;--drift-delay:-18s;--drift-duration:24s}html[data-theme='concept-1'] .ambient-flower{position:absolute;bottom:6%;width:min(24vw,150px);opacity:.2;animation:garden-flower-breathe 7s ease-in-out infinite;animation-play-state:paused}html[data-theme='concept-1'] .is-open:not(.ambient-paused) .ambient-flower{animation-play-state:running}html[data-theme='concept-1'] .ambient-flower-left{left:-45px}html[data-theme='concept-1'] .ambient-flower-right{right:-58px;bottom:23%;transform:scaleX(-1)}
html[data-theme='concept-1'] .page-butterfly{position:fixed;z-index:5;left:-90px;top:20vh;width:54px;height:42px;pointer-events:none;opacity:0;animation:butterfly-garden-route 24s linear infinite;animation-play-state:paused}html[data-theme='concept-1'] .page-butterfly img,html[data-theme='concept-1'] .journey-butterfly img,html[data-theme='concept-1'] .closing-butterfly img{width:100%;height:100%;object-fit:contain;animation:butterfly-side-flap .9s ease-in-out infinite}html[data-theme='concept-1'] .is-open:not(.ambient-paused) .page-butterfly{animation-play-state:running}html[data-theme='concept-1'] .journey-butterfly{position:absolute;z-index:4;left:7%;top:54%;width:58px;height:45px;opacity:0;pointer-events:none}html[data-theme='concept-1'] .journey.is-loading .journey-butterfly{animation:journey-butterfly-pass 3.2s .45s ease-in-out forwards}html[data-theme='concept-1'] .closing-illustration{position:relative;width:min(82vw,500px);margin:28px auto}html[data-theme='concept-1'] .closing-illustration .closing-couple{width:100%;margin:0 auto}html[data-theme='concept-1'] .closing-butterfly{position:absolute;z-index:2;left:-8%;top:48%;width:54px;height:42px;opacity:0;pointer-events:none}html[data-theme='concept-1'] .section-closing.is-in-view .closing-butterfly{animation:closing-butterfly-pass 7s 1s ease-in-out forwards}
html[data-theme='concept-1'] .event-icon,html[data-theme='concept-1'] .location-pin{font-size:1rem}html[data-theme='concept-1'] .location-pin .ui-icon{transform:rotate(0)}html[data-theme='concept-1'] .gallery-carousel-prev,html[data-theme='concept-1'] .gallery-carousel-next,html[data-theme='concept-1'] .lightbox-close,html[data-theme='concept-1'] .lightbox-prev,html[data-theme='concept-1'] .lightbox-next{display:grid;place-items:center;font-size:1rem}html[data-theme='concept-1'] .gift-icon{display:grid;place-items:center}html[data-theme='concept-1'] .journey-progress::before,html[data-theme='concept-1'] .journey-progress::after{content:'';width:28px;height:28px;background:url('../assets/ambient/strawberry-blossom-mini-v1.webp') center/contain no-repeat}
@keyframes vine-grow{0%{clip-path:inset(0 50% 0 50%);opacity:0}100%{clip-path:inset(0);opacity:.92}}@keyframes butterfly-settle{from{opacity:0;transform:translate(24px,-20px) rotate(12deg)}to{opacity:1;transform:none}}@keyframes butterfly-perched-flap{0%,100%{transform:scaleX(1) rotate(-3deg)}50%{transform:scaleX(.56) rotate(3deg)}}@keyframes profile-intro-exit{0%,38%{opacity:1;transform:translateY(0) scale(1)}62%,100%{opacity:0;transform:translateY(-10px) scale(.985)}}@keyframes profile-final-enter{0%,42%{opacity:0;transform:translateY(14px) scale(.98)}72%,100%{opacity:1;transform:translateY(0) scale(1)}}@keyframes garden-pollen-drift{0%{opacity:0;transform:translate3d(0,-10vh,0) rotate(0) scale(.65)}14%{opacity:.28}52%{transform:translate3d(30px,50vh,0) rotate(170deg) scale(1)}100%{opacity:0;transform:translate3d(-22px,116vh,0) rotate(350deg) scale(.7)}}@keyframes garden-flower-breathe{0%,100%{opacity:.16;filter:saturate(.85);transform:translateY(0) rotate(-1deg)}50%{opacity:.25;filter:saturate(1);transform:translateY(-7px) rotate(1deg)}}@keyframes butterfly-side-flap{0%,100%{transform:scaleY(1) rotate(-2deg)}50%{transform:scaleY(.62) rotate(3deg)}}@keyframes butterfly-garden-route{0%,8%{opacity:0;transform:translate3d(-10vw,5vh,0) rotate(-8deg)}12%{opacity:.82}38%{transform:translate3d(48vw,28vh,0) rotate(7deg)}65%{transform:translate3d(78vw,8vh,0) rotate(-5deg)}88%{opacity:.75;transform:translate3d(112vw,48vh,0) rotate(8deg)}100%{opacity:0;transform:translate3d(125vw,52vh,0)}}@keyframes journey-butterfly-pass{0%{opacity:0;transform:translate(-25vw,30px) rotate(-10deg)}18%{opacity:.9}55%{transform:translate(38vw,-50px) rotate(8deg)}100%{opacity:0;transform:translate(76vw,-12px) rotate(-4deg)}}@keyframes closing-butterfly-pass{0%{opacity:0;transform:translate(-20px,28px) rotate(-10deg)}15%{opacity:.9}48%{transform:translate(38vw,-60px) rotate(8deg)}82%{opacity:.8;transform:translate(70vw,-12px) rotate(-5deg)}100%{opacity:0;transform:translate(86vw,-48px) rotate(4deg)}}
@media(max-width:430px){html[data-theme='concept-1'] .opening-sprig{right:-58px;top:43%;width:158px;opacity:.74}html[data-theme='concept-1'] .hero-content .hero-couple{width:min(78vw,310px);max-height:44svh}html[data-theme='concept-1'] .hero-content .hero-actions{margin-top:26px}html[data-theme='concept-1'] .vine-butterfly{top:72px;left:calc(50% + 48px);width:46px}}
@media(prefers-reduced-motion:reduce){html[data-theme='concept-1'] .garden-breeze,html[data-theme='concept-1'] .page-butterfly,html[data-theme='concept-1'] .journey-butterfly,html[data-theme='concept-1'] .closing-butterfly{display:none}html[data-theme='concept-1'] body.vine-growth-enabled .floral-rule{clip-path:none;opacity:.92;animation:none}html[data-theme='concept-1'] .vine-butterfly{opacity:1;animation:none}html[data-theme='concept-1'] .vine-butterfly img{animation:none}html[data-theme='concept-1'] body.profile-transition-enabled .profile-art .profile-intro{display:none}html[data-theme='concept-1'] body.profile-transition-enabled .profile-art .profile-final{opacity:1;transform:none;animation:none!important}}
body[data-animation-intensity='none'] .garden-breeze,body[data-animation-intensity='none'] .page-butterfly,body[data-animation-intensity='none'] .journey-butterfly,body[data-animation-intensity='none'] .closing-butterfly{display:none}
body.ambient-paused .page-butterfly,body.ambient-paused .garden-breeze *,body.ambient-paused .journey-butterfly,body.ambient-paused .journey-butterfly img,body.ambient-paused .closing-butterfly,body.ambient-paused .closing-butterfly img,body.ambient-paused .profile-art .portrait{animation-play-state:paused!important}html[data-theme='concept-1'] .section-couple:not(.is-in-view) .profile-art .portrait,html[data-theme='concept-1'] .section-closing:not(.is-in-view) .closing-butterfly,html[data-theme='concept-1'] .section-closing:not(.is-in-view) .closing-butterfly img{animation-play-state:paused!important}
html[data-theme='concept-1'] .gallery-lightbox button .ui-icon{max-width:none;max-height:none;border-radius:0;box-shadow:none;object-fit:contain}
