:root{--cream:#fff4df;--gold:#d9b66b;--gold2:#f1d493;--burg:#6d1b2c;--navy:#152b58;--ink:#190b10;--line:rgba(225,190,105,.55)}
*{box-sizing:border-box}html{scroll-behavior:smooth;background:#090709}body{margin:0;background:#090709;color:var(--cream);font-family:'Cormorant Garamond',Georgia,serif;overflow-x:hidden}button,a{font:inherit}button{border:0;background:none;color:inherit}
.section{position:relative;width:100%;overflow:hidden}.invite{opacity:0;transition:opacity .45s ease}.invite.visible{opacity:1}.music-toggle{position:fixed;right:18px;bottom:16px;z-index:100;display:flex;align-items:center;gap:9px;padding:9px 14px 9px 10px;border:1px solid rgba(221,185,102,.7);border-radius:999px;background:rgba(19,8,12,.88);color:#efd493;font-family:'Montserrat',sans-serif;font-size:.58rem;letter-spacing:.12em;box-shadow:0 8px 26px rgba(0,0,0,.28);cursor:pointer;opacity:0;visibility:hidden;transform:translateY(15px);transition:.45s}.music-toggle.visible{opacity:1;visibility:visible;transform:none}.music-toggle.off{color:#b8ac99}.music-note{display:grid;place-items:center;width:28px;height:28px;border:1px solid currentColor;border-radius:50%;font-size:1rem;font-family:Georgia,serif}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
/* Premium falling accents */
.falling-layer{position:absolute;inset:0;z-index:8;pointer-events:none;overflow:hidden;contain:layout paint style}.falling-layer span{position:absolute;top:-12%;left:var(--left);font-size:var(--size);color:var(--pc);opacity:var(--op);text-shadow:0 0 14px rgba(30,8,12,.62),0 0 6px rgba(255,202,86,.58);animation:floatFall var(--dur) linear var(--delay) infinite;transform:translate3d(0,0,0) rotate(0deg);will-change:transform,opacity}.falling-opening{z-index:3}.falling-opening span{color:#6f261f;text-shadow:0 0 15px rgba(12,3,5,.72),0 0 6px rgba(245,197,86,.72)}.falling-layer[data-particles="section1"] span{color:#7c2f1f}.falling-layer[data-particles="section2"] span{color:#6d2c1b}.falling-layer[data-particles="section3"] span{color:#642a20}.falling-layer[data-particles="section4"] span{color:#6e2634}.falling-layer[data-particles="section5"] span{color:#6c243b}.falling-layer[data-particles="section6"] span{color:#681f38}@keyframes floatFall{0%{transform:translate3d(0,-8vh,0) rotate(0deg);opacity:0}10%{opacity:var(--op)}50%{transform:translate3d(var(--drift),52vh,0) rotate(150deg)}100%{transform:translate3d(calc(var(--drift) * -1),112vh,0) rotate(330deg);opacity:0}}
/* Opening */
.opening{position:fixed;inset:0;z-index:200;transition:opacity 1s ease;display:grid;place-items:center;overflow:hidden;background:#08080a}.opening-backdrop{position:absolute;inset:0;background-image:url('../assets/opening-bg.jpg');background-size:cover;background-position:center 43%;transform:scale(1.015);will-change:transform,opacity;transition:opacity .9s ease,transform .9s ease}.opening-vignette{position:absolute;inset:0;background:radial-gradient(circle at 50% 45%,rgba(255,226,151,.07),transparent 30%),linear-gradient(180deg,rgba(8,9,11,.2),rgba(8,7,9,.56));z-index:1;transition:opacity .8s ease}.opening-split,.opening-split-top,.opening-split-bottom{display:none!important}.opening-transition{position:absolute;inset:0;z-index:7;pointer-events:none;background:radial-gradient(circle at 50% 48%,rgba(213,174,92,.06),transparent 26%),#060507;opacity:0;transition:opacity .75s ease}.opening-frame{position:absolute;inset:15px;z-index:4;border:1px solid rgba(236,204,135,.42);border-radius:20px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.04),0 0 40px rgba(0,0,0,.12)}.opening-frame:before,.opening-frame:after{content:'';position:absolute;width:56px;height:56px;border-color:rgba(236,204,135,.55);border-style:solid}.opening-frame:before{left:-1px;top:-1px;border-width:2px 0 0 2px;border-radius:18px 0 0 0}.opening-frame:after{right:-1px;bottom:-1px;border-width:0 2px 2px 0;border-radius:0 0 18px 0}.opening-copy{position:relative;z-index:6;width:min(82vw,430px);padding:36px 24px 30px;text-align:center;border:1px solid rgba(237,210,150,.72);border-radius:18px;background:linear-gradient(180deg,rgba(24,13,15,.48),rgba(19,10,13,.6));box-shadow:0 22px 70px rgba(0,0,0,.38),inset 0 0 45px rgba(255,239,192,.05);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);transition:transform .55s ease,opacity .55s ease}.opening-copy:before{content:'';position:absolute;inset:7px;border:1px solid rgba(232,202,133,.18);border-radius:12px;pointer-events:none}.opening-kicker{font-family:'Montserrat',sans-serif;letter-spacing:.34em;font-size:.62rem;color:#f0d89d;margin-bottom:20px}.opening-name{font-family:'Great Vibes',cursive;font-size:clamp(3.45rem,13vw,5.2rem);line-height:.92;color:#f9df9d;text-shadow:0 4px 18px rgba(0,0,0,.32)}.opening-amp{font-size:1.7rem;color:#d6ad59;margin:10px 0 6px}.opening-rule{height:1px;width:54%;margin:20px auto 20px;background:linear-gradient(90deg,transparent,var(--gold),transparent);position:relative}.opening-rule span{position:absolute;left:50%;top:50%;transform:translate(-50%,-58%);padding:0 7px;background:rgba(25,12,15,.74);color:#e6c879;font-size:.7rem}.primary-pill{display:inline-flex;align-items:center;justify-content:center;min-width:210px;padding:13px 24px;border:1px solid rgba(240,209,140,.75);border-radius:999px;background:linear-gradient(135deg,#701c30,#4e1020);color:#fff0cf;font-family:'Montserrat',sans-serif;font-size:.62rem;letter-spacing:.18em;cursor:pointer;box-shadow:0 7px 25px rgba(0,0,0,.22)}.opening-bottom-ornament{position:absolute;bottom:24px;left:50%;transform:translateX(-50%);z-index:6;color:#e8c56e;font-size:.75rem;opacity:.9}.opening.exit{opacity:0;pointer-events:none}.opening.exit .opening-copy{opacity:0;transform:translateY(-10px) scale(.988)}.opening.exit .opening-backdrop{opacity:0;transform:scale(1.025)}.opening.exit .opening-transition{opacity:0}.opening.exit .opening-vignette{opacity:0}.opening.exit .falling-opening{opacity:1}
/* Section 1 */
.section-image{min-height:100svh;background:#f7ead7}.section-image img{width:100%;height:100svh;object-fit:cover;object-position:center top;display:block}.section-image .falling-layer{z-index:2}.section-image:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(255,248,232,.02),rgba(99,44,20,.08));z-index:1}
/* Section 2 - clean full arch reference + real scratch card */
.date-model{min-height:max(100svh,calc(100vw * 1.9667));background:#fffaf2 url('../assets/section2-clean.jpg') center top/100% 100% no-repeat;color:#7a1c2f;isolation:isolate;position:relative}.date-arch-art{display:none}.date-content{position:absolute;inset:0;z-index:4}.scratch-board{position:absolute;left:8.6%;top:46.1%;width:82.8%;height:25.8%;border:2px solid #b88427;border-radius:32px;background:linear-gradient(145deg,#f3dc91,#d69f3d 56%,#c48b2a);box-shadow:0 18px 48px rgba(123,83,26,.18),inset 0 0 42px rgba(255,255,255,.13);overflow:hidden}.scratch-content{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#72162b;padding:30px}.scratch-day{font-family:'Cormorant Garamond',Georgia,serif;font-weight:700;font-size:clamp(1.55rem,6vw,2.45rem);letter-spacing:.14em}.scratch-date{font-family:'Cormorant Garamond',Georgia,serif;font-size:clamp(2rem,8vw,3.35rem);font-weight:700;color:#194c79;margin:6px 0 5px}.scratch-time{font-size:clamp(1.08rem,4.2vw,1.42rem);font-weight:800;color:#5b4528}.scratch-canvas{position:absolute;inset:0;width:100%;height:100%;touch-action:none;cursor:crosshair}.scratch-hint{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none;font-family:'Montserrat',sans-serif;font-weight:600;font-size:clamp(1.28rem,5vw,1.75rem);letter-spacing:.14em;color:rgba(255,244,204,.95);text-shadow:0 2px 8px rgba(80,45,10,.25);transition:opacity .25s ease}.scratch-board.scratched .scratch-hint{opacity:0}.date-model .falling-layer{z-index:5}.rice-shower{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:20}.rice{position:absolute;top:-28px;width:9px;height:18px;border-radius:50%;background:#f6d56a;box-shadow:0 0 7px rgba(255,230,154,.7);animation:riceFall var(--dur) ease-in var(--delay) forwards}.rice:nth-child(3n){width:10px;height:20px}.rice:nth-child(5n){width:12px;height:23px}@keyframes riceFall{0%{transform:translate3d(0,0,0) rotate(0);opacity:0}10%{opacity:1}100%{transform:translate3d(var(--x),110svh,0) rotate(var(--r));opacity:0}}
/* Section 3 */
.wedding-model{min-height:100svh;padding:58px 17px 74px;background:#16356c;isolation:isolate;display:block}.wedding-model:before{content:"";position:absolute;inset:0;background-image:url('../assets/section3-final-bg.jpg?v=20260930');background-size:cover;background-position:center;z-index:-2;transform:scale(1.01)}.wedding-bg-glow{position:absolute;inset:0;background:linear-gradient(180deg,rgba(9,24,57,.34),rgba(8,17,43,.68)),radial-gradient(circle at 50% 18%,rgba(236,211,150,.13),transparent 35%);pointer-events:none;z-index:-1}.timeline-head{position:relative;z-index:5;text-align:center}.timeline-title{font-family:'Cormorant Garamond',Georgia,serif;color:#ffe0a3;font-size:clamp(2.7rem,11vw,4.7rem);font-weight:600;line-height:.95;letter-spacing:.08em;text-shadow:0 7px 22px rgba(0,0,0,.3)}.timeline-quote{margin-top:16px;color:#e9f0ff;font-size:clamp(1.05rem,4.3vw,1.35rem);font-style:italic;line-height:1.35;text-shadow:0 3px 16px rgba(0,0,0,.35)}.wedding-video-wrap{position:relative;z-index:5;width:min(92vw,650px);margin:36px auto 0;display:flex;justify-content:center}.wedding-video{display:block;width:100%;height:auto;object-fit:contain;border-radius:28px;background:#0a1227;box-shadow:0 20px 52px rgba(0,0,0,.35),0 0 0 1px rgba(241,215,161,.38);border:1px solid rgba(241,215,161,.42)}.wedding-card{position:relative;z-index:5;width:min(92vw,700px);margin:18px auto 0;padding:29px 22px 27px;text-align:center;border:1px solid rgba(241,215,161,.78);border-radius:28px;background:linear-gradient(180deg,rgba(25,55,101,.92),rgba(14,28,57,.96));box-shadow:0 22px 58px rgba(0,0,0,.3)}.wedding-card:before{content:"";position:absolute;inset:7px;border:1px solid rgba(240,214,161,.22);border-radius:21px;pointer-events:none}.wedding-card-title{position:relative;font-family:'Great Vibes',cursive;font-size:clamp(3rem,12vw,5rem);line-height:1;color:#f6d68e;margin-bottom:12px}.event-date{position:relative;font-family:'Montserrat',sans-serif;font-size:clamp(.72rem,3vw,.95rem);font-weight:800;letter-spacing:.14em;color:#f0dba3}.event-time{position:relative;font-size:clamp(1.55rem,5vw,2rem);color:#ffe4a2;margin:8px 0 10px}.event-venue{position:relative;font-size:clamp(1.08rem,4.3vw,1.34rem);line-height:1.46;color:#f7eddc}.event-actions{position:relative;display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin-top:22px}.gold-pill{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-width:190px;padding:12px 16px;border:1px solid rgba(233,204,139,.86);border-radius:999px;background:rgba(104,119,141,.36);color:#f8e7b9;text-decoration:none;font-family:'Montserrat',sans-serif;font-size:.56rem;letter-spacing:.08em;box-shadow:inset 0 0 20px rgba(255,235,195,.04)}.wedding-model .falling-layer{z-index:3}
/* Section 4 */
.timer-model{min-height:100svh;padding:72px 18px 72px;display:grid;place-items:center;background:#552730;isolation:isolate}.timer-bg{position:absolute;inset:0;background-image:url('../assets/timer-bg-new.jpg');background-size:cover;background-position:center;z-index:-2}.timer-model:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(58,16,25,.22),rgba(53,16,23,.58)),radial-gradient(circle at 50% 30%,rgba(244,205,138,.11),transparent 38%);z-index:-1}.timer-card{position:relative;z-index:5;width:min(92vw,700px);padding:34px 22px 30px;border:1px solid rgba(242,213,150,.76);border-radius:28px;background:linear-gradient(180deg,rgba(88,43,52,.76),rgba(57,24,31,.84));box-shadow:0 24px 70px rgba(0,0,0,.28),inset 0 0 50px rgba(255,239,205,.05);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);text-align:center}.timer-eyebrow{font-family:'Montserrat',sans-serif;font-size:.58rem;letter-spacing:.28em;color:#c5d1ea;margin-bottom:12px}.timer-card h2{font-size:clamp(2.9rem,12vw,5.2rem);line-height:.92;font-weight:500;color:#ffe8b9;margin:0 0 18px}.timer-lead{max-width:560px;margin:0 auto 26px;font-size:clamp(1.08rem,4.2vw,1.35rem);line-height:1.42;color:#f5e9d2}.timer-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;max-width:590px;margin:0 auto}.timer-grid>div{padding:20px 12px 15px;border:1px solid rgba(238,203,133,.76);border-radius:18px;background:rgba(101,59,69,.6)}.timer-grid strong{display:block;font-size:clamp(2.6rem,11vw,4.2rem);font-weight:500;color:#ffe4a3;line-height:1}.timer-grid span{display:block;font-family:'Montserrat',sans-serif;font-size:.5rem;letter-spacing:.22em;margin-top:8px;color:#f0dcc1}.timer-date{margin-top:24px;font-size:clamp(1.16rem,4.6vw,1.5rem);font-weight:800;color:#ffe6ba;letter-spacing:.05em;text-shadow:0 2px 10px rgba(0,0,0,.24);display:grid;gap:8px}.timer-date span{display:block}.timer-model .falling-layer{z-index:3}
/* Section 5 */
.moments-model{min-height:100svh;padding:75px 14px 72px;background:linear-gradient(180deg,#f7e5ea 0%,#eed0dc 52%,#dec0d0 100%);isolation:isolate}.moments-model:before{content:'';position:absolute;inset:0;background:radial-gradient(circle at 50% 12%,rgba(255,255,255,.44),transparent 27%),linear-gradient(180deg,rgba(255,246,247,.06),rgba(126,66,88,.16));pointer-events:none}.moments-header{position:relative;z-index:5;text-align:center}.moments-eyebrow{font-family:'Montserrat',sans-serif;font-size:.58rem;letter-spacing:.25em;color:#8d5670;margin-bottom:5px}.moments-header h2{margin:0;color:#6d1b2c;font-weight:500;font-size:clamp(2.6rem,10vw,4.7rem)}.moments-header p{max-width:600px;margin:16px auto 26px;color:#6c5260;font-size:clamp(1rem,4vw,1.25rem);line-height:1.45}.moment-stage{position:relative;z-index:5;width:min(92vw,620px);margin:0 auto;overflow:hidden;border:1px solid rgba(153,110,125,.56);border-radius:28px;background:rgba(255,247,249,.34);box-shadow:0 20px 60px rgba(91,44,61,.2);touch-action:pan-y}.moment-track{display:flex;width:500%;transition:transform .52s cubic-bezier(.2,.7,.2,1)}.moment-slide{width:20%;flex:0 0 20%;text-align:center}.moment-slide img{display:block;width:100%;height:auto;max-height:none;object-fit:contain;background:#f5e7eb}.moment-quote{padding:15px 18px 18px;color:#6f4255;font-size:clamp(1rem,4vw,1.18rem);line-height:1.42;font-style:italic;min-height:72px}.moment-nav{position:absolute;top:45%;transform:translateY(-50%);z-index:6;width:46px;height:46px;border:1px solid rgba(142,91,111,.75);border-radius:50%;background:rgba(80,38,52,.84);color:#ffe9ef;font-size:1.45rem;display:grid;place-items:center;cursor:pointer;box-shadow:0 8px 20px rgba(76,37,53,.22)}.moment-nav.left{left:12px}.moment-nav.right{right:12px}.moment-nav:disabled{opacity:.35;cursor:default}.moment-index{position:relative;z-index:5;text-align:center;margin-top:14px;font-family:'Montserrat',sans-serif;font-size:.57rem;letter-spacing:.12em;color:#85586e}.moments-model .falling-layer{z-index:3}
/* Section 6 */
.closing-model{min-height:100svh;padding:68px 18px 26px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#d5b8c8;isolation:isolate}.closing-bg{position:absolute;inset:0;background-image:linear-gradient(180deg,rgba(27,27,55,.12),rgba(30,25,38,.4)),url('../assets/closing-bg-clean.jpg');background-size:cover;background-position:center;filter:none}.closing-card{position:relative;z-index:5;width:min(92vw,700px);padding:38px 23px 48px;text-align:center;border:1px solid rgba(235,214,164,.72);border-radius:28px;background:linear-gradient(180deg,rgba(247,239,224,.22),rgba(57,46,54,.3));box-shadow:0 24px 75px rgba(0,0,0,.24);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);overflow:hidden;contain:paint}.closing-om-wrap{position:relative;z-index:5;display:flex;align-items:center;justify-content:center;gap:18px;margin-bottom:30px}.closing-om{font-size:clamp(3rem,14vw,5.5rem);line-height:1;color:#e0b35e;margin-bottom:0;text-shadow:0 3px 16px rgba(59,30,45,.22)}.vel-image{width:clamp(24px,8vw,38px);height:clamp(88px,21vw,132px);object-fit:contain;object-position:center;transform:rotate(15deg);transform-origin:50% 50%;filter:drop-shadow(0 3px 9px rgba(59,30,45,.26));mix-blend-mode:normal}.closing-copy{font-size:clamp(1.12rem,4.5vw,1.42rem);line-height:1.56;color:#fff4e4;text-shadow:0 2px 12px rgba(0,0,0,.32)}.closing-copy p{margin:0 0 28px}.closing-names{font-family:'Great Vibes',cursive;font-size:clamp(2.35rem,8.5vw,4.5rem);color:#f9d77f;line-height:1.02;margin-top:8px;display:flex;flex-direction:column;align-items:center;gap:2px}.closing-names .closing-amp{font-family:'Cormorant Garamond',serif;font-size:.62em;line-height:1;color:#f0d28a;margin:0}.closing-model .falling-layer{z-index:3}.footer{position:relative;z-index:6;width:100%;background:linear-gradient(180deg,rgba(127,50,83,.04),rgba(127,50,83,.28));padding:22px 18px 4px;text-align:center;border-top:1px solid rgba(239,198,214,.14)}.footer-love{font-family:'Montserrat',sans-serif;font-size:.56rem;letter-spacing:.23em;color:#f1d4df;margin-bottom:12px}.insta-pill{display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:10px 16px;border:1px solid rgba(244,208,168,.78);border-radius:999px;color:#ffe0ba;text-decoration:none;font-family:'Montserrat',sans-serif;font-size:.58rem;letter-spacing:.08em;background:rgba(99,40,63,.24);box-shadow:0 8px 24px rgba(60,20,35,.18)}.insta-icon{width:20px;height:20px;display:block;flex:0 0 auto}
@media(min-width:760px){.section1 img{height:auto;min-height:100svh;object-fit:contain;background:#f7ead7}.timer-grid{grid-template-columns:repeat(4,1fr)}.timer-card{padding:42px 36px 34px}.scratch-board{min-height:340px}.moment-stage{max-width:680px}}
@media(max-width:420px){.opening-copy{width:86vw;padding:31px 17px 26px}.opening-name{font-size:3.25rem}.primary-pill{min-width:195px}.music-toggle{right:12px;bottom:13px}.closing-card{padding-left:18px;padding-right:18px}.scratch-day{font-size:1.35rem}.scratch-date{font-size:1.9rem}.scratch-time{font-size:.92rem}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}.falling-layer{display:none!important}}
/* Final client fixes: prevent closing-card blur bleed and keep Vel fully visible */
.closing-card{backdrop-filter:none!important;-webkit-backdrop-filter:none!important;overflow:hidden!important;contain:paint!important;background:linear-gradient(180deg,rgba(247,239,224,.24),rgba(53,36,46,.48))!important;clip-path:inset(0 round 28px)}
.closing-card:after{content:"";position:absolute;inset:0;border-radius:28px;background:linear-gradient(180deg,rgba(255,240,225,.06),rgba(28,17,26,.10));pointer-events:none;z-index:0}
.closing-card>*{position:relative;z-index:2}
.closing-om-wrap{overflow:visible!important;gap:10px!important;padding:4px 0!important}
.vel-image{width:34px!important;height:94px!important;max-width:none!important;object-fit:contain!important;object-position:center!important;transform:rotate(12deg)!important;transform-origin:50% 48%!important;display:block!important;overflow:visible!important}
/* Make the opening music control available immediately as a practical fallback when browsers block audible autoplay. */
.music-toggle.opening-visible{opacity:1;visibility:visible;transform:none}

.section1 .invitation-overlay{position:absolute;z-index:3;top:42%;left:50%;transform:translate(-50%,-50%);width:min(76%,620px);padding:28px 20px;text-align:center;color:#6c1425;background:rgba(255,247,232,.84);border:1px solid rgba(178,117,46,.65);border-radius:24px;box-shadow:0 18px 50px rgba(55,18,15,.15)}
.section1 .invitation-overlay p{font-family:"Cormorant Garamond",serif;font-size:clamp(16px,2.6vw,23px);line-height:1.3;margin:8px 0}.section1 .invitation-overlay h2{font-family:"Great Vibes",cursive;font-size:clamp(42px,8vw,78px);font-weight:400;line-height:1.05;margin:14px 0}.section1 .invitation-overlay h2 span{color:#b88732}
@media(max-width:600px){.section1 .invitation-overlay{top:41%;width:80%;padding:18px 13px}.section1 .invitation-overlay h2{font-size:clamp(36px,9vw,58px)}}
