/* Through the Aisle — a scroll-driven 2.5D wedding film with WebGL rose petals. */
.film-ready{scroll-behavior:auto}.film-ready body{overflow-x:clip}.film-ready .page{overflow:visible}.film-stage{position:relative;height:100svh;overflow:hidden;isolation:isolate;perspective:1400px;background:#071b12;transform-style:preserve-3d}
.film-ready .film-stage>.hero,.film-ready .film-stage>.story,.film-ready .film-stage>.invitation{position:absolute;inset:0;height:100%;min-height:0;padding:0;overflow:hidden;transform-style:preserve-3d;background:#071b12}
.film-ready .film-stage>.story{background:#f3e6cf}.film-ready .film-stage>.story,.film-ready .film-stage>.invitation{opacity:0;visibility:hidden}
.film-ready .header{position:fixed;inset:0 0 auto;z-index:30;padding-top:24px;padding-bottom:18px;transition:color .3s;isolation:isolate}.film-ready .header:before{content:'';position:absolute;inset:0 0 -50%;z-index:-1;background:linear-gradient(#03100988,transparent);pointer-events:none}.film-ready .header.on-light{color:#302a1c}.film-ready .header.on-light:before{background:linear-gradient(#f3e6cfeb,#f3e6cf00)}.film-ready .header.on-light .music-button{border-color:#806b4380;background:#f5ead499}.film-ready .header.on-light .monogram{color:#76603c}.film-ready .header.on-light nav a.active{color:#8b6935}.film-ready .header nav a,.film-ready .header nav button{font-size:clamp(12px,1.08vw,17px)}
.film-ready .scene{will-change:transform}.film-ready .hero .scene{background-size:auto 307.2%;background-position:58% top;animation:none;filter:none}.film-ready .hero-shade{inset:0;background:linear-gradient(90deg,#03100966,transparent 80%),linear-gradient(0deg,#071b1240,transparent 28%)}.film-ready .hero-content{top:20%;left:14.15%;width:74%;transform-style:preserve-3d;will-change:transform,opacity}.film-ready .hero-kicker{font-size:11px;line-height:1.55}.film-ready .couple-names{font-size:clamp(60px,6.65vw,112px)}.film-ready .hero-tagline{font-size:clamp(12px,1.03vw,17px);margin:26px 0 24px}.film-ready .time-box{width:clamp(82px,8.2vw,128px);height:clamp(76px,7.1vw,108px)}.film-ready .time-value{font-size:clamp(35px,3.5vw,56px)}.film-ready .time-label{font-size:clamp(14px,1.22vw,19px)}.film-ready .hero-date{font-size:clamp(15px,1.4vw,23px);margin-top:20px}.film-ready .hero-note{top:auto;bottom:15%;right:6%;font-size:clamp(38px,4vw,66px)}.film-ready .intro-arrival{animation:none}.film-ready .scroll-prompt{bottom:30px;color:#f3e6cf;font-size:11px}.film-ready .mouse{border-color:#f3e6cf}.film-ready .mouse:after{background:#f3e6cf;animation:mouse-cue 2.2s ease-in-out infinite}.film-ready .transition-caption{display:none}
.film-ready .story .scene{background-size:auto 386.0%;background-position:26% 43.94%;opacity:1;mask-image:none}.film-ready .story:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent 35%,#f3e6cf33 55%,#f3e6cf66 85%);pointer-events:none}.film-ready .story-copy{z-index:2;left:53%;top:29%;width:34%;max-width:520px;will-change:transform,opacity}.film-ready .eyebrow{font-size:clamp(12px,1vw,16px)}.film-ready .story h2{font-size:clamp(48px,5vw,80px);margin:13px 0 42px}.film-ready .story h2 .script{margin-top:10px}.film-ready .story-copy>p:not(.eyebrow){font-size:clamp(17px,1.4vw,23px);line-height:1.45;margin-bottom:28px;max-width:380px}.film-ready .button{font-size:12px;min-height:44px;padding:12px 24px}.film-ready .story-verse{z-index:2;right:3%;bottom:13%;font-size:12px;display:block}.film-ready .story-verse p{font-size:12px}.film-ready .story-verse>span{font-size:12px}
.film-ready .invitation-stage{inset:0;width:100%;height:100%;top:0;left:0;transform-style:preserve-3d}.film-ready .invitation-stage .scene{background-size:auto 492.308%;background-position:70% 73.366%}.film-ready .printed-card,.film-ready .seal-mark{display:none}.film-ready .invitation-copy{z-index:4;left:7%;top:30%;width:36%;max-width:580px;will-change:transform,opacity}.film-ready .invitation h2{font-size:clamp(49px,5.5vw,86px);margin:13px 0 31px}.film-ready .invitation h2 .script{font-size:.81em;margin-top:13px}.film-ready .invitation-copy>p:not(.eyebrow){font-size:clamp(17px,1.4vw,23px);line-height:1.45;max-width:350px;margin-bottom:29px}.film-ready .invitation-values{z-index:3;bottom:13%;right:5%;font-size:12px}.invitation-object{position:absolute;z-index:3;right:18%;top:24%;width:clamp(260px,23vw,350px);aspect-ratio:.69;transform-style:preserve-3d;transform-origin:center;will-change:transform,opacity;filter:drop-shadow(20px 30px 22px #0008)}.paper-face{position:absolute;inset:0;background:radial-gradient(ellipse at 25% 15%,#fff6e6,#eddec4 90%);border:1px solid #e6d5b6;box-shadow:3px 4px 0 #ddcbaa,5px 7px 0 #c3b18f,inset 0 0 0 10px #faf0df,inset 0 0 0 11px #b69c6766;color:#473725;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:24px 15px;backface-visibility:hidden}.paper-cross{font-size:36px;color:#ba985f;margin-bottom:20px}.paper-kicker,.paper-foot{font:10px/1.5 Nimbus,sans-serif;letter-spacing:.18em;text-transform:uppercase}.paper-names{font-size:clamp(27px,2.6vw,39px);line-height:1.15;margin:23px 0 20px}.paper-names span{display:block;font:1.5em/.7 Italianno,cursive;margin:5px 0}.paper-rule{width:32px;height:1px;background:#b69966;margin-bottom:21px}.paper-date{font-size:15px;line-height:1.6;letter-spacing:.08em}.paper-foot{margin-top:24px;color:#8a734c}
.film-foreground{position:absolute;inset:0;z-index:6;pointer-events:none;perspective:1100px;transform-style:preserve-3d}.foreground-flower{position:absolute;top:-7%;height:114%;width:32%;object-fit:contain;will-change:transform;filter:drop-shadow(0 14px 22px #0004)}.foreground-flower.left{left:-6%}.foreground-flower.right{right:-6%;scale:-1 1}.chapter-readout{position:absolute;left:6%;right:6%;bottom:28px;z-index:8;display:flex;align-items:center;gap:17px;font:11px/1.3 Nimbus,sans-serif;letter-spacing:.18em;text-transform:uppercase;pointer-events:none;color:#f3e6cf;text-shadow:0 1px 6px #0005}.chapter-title{flex:1}.chapter-track{display:block;width:100px;height:1px;background:#d6b48155}.chapter-track i{display:block;transform-origin:left;transform:scaleX(0);height:1px;background:#d6b481}.rose-overlay{position:fixed;inset:0;z-index:20;pointer-events:none;perspective:900px;overflow:hidden}.rose-overlay canvas{display:block;width:100%;height:100%}.rose-petal{position:absolute;left:var(--x);top:-110px;width:var(--size);height:auto;opacity:.92;animation:rose-fall var(--duration) var(--delay) linear infinite;transform-style:preserve-3d}.film-ready .wedding-details{height: min(92svh,850px);min-height:560px;perspective:1400px;background:#f3e6cf;overflow:hidden}.film-ready .wedding-details .scene{background-size:auto 862.921%;background-position:12% 89.102%;opacity:.6}.film-ready .details-content{top:30%;left:40%;width:55%;will-change:transform,opacity}.film-ready .details-content h2{font-size:clamp(49px,5.4vw,85px);margin:14px 0 42px}.film-ready .details-grid{grid-template-columns:1fr 1fr;gap:28px 22px}.film-ready .detail{border:0;padding:0;gap:16px;align-items:flex-start}.film-ready .detail p{font-size:18px;line-height:1.45}.film-ready .detail svg{width:32px;height:32px}.film-ready .blessing{height:75svh;min-height:420px;overflow:hidden}.film-ready .blessing .scene{background-size:auto 1037.838%;background-position:72% bottom}.film-ready .blessing-content{padding-top:25svh;width:80%;will-change:transform,opacity}.film-ready .blessing blockquote{font-size:clamp(30px,3.2vw,49px);line-height:1.35;margin-bottom:24px}.film-ready .blessing p{font-size:13px}
.lenis.lenis-smooth{scroll-behavior:auto!important}.lenis.lenis-stopped{overflow:hidden}.lenis:not(.lenis-autoToggle).lenis-stopped{overflow:clip}.lenis.lenis-smooth iframe{pointer-events:none}
@keyframes mouse-cue{0%,100%{translate:0 0;opacity:.4}50%{translate:0 5px;opacity:1}}@keyframes rose-fall{0%{transform:translate3d(0,-80px,-80px) rotateX(20deg) rotateY(0deg) rotateZ(-25deg)}50%{transform:translate3d(55px,55svh,45px) rotateX(150deg) rotateY(130deg) rotateZ(45deg)}100%{transform:translate3d(-25px,115svh,90px) rotateX(300deg) rotateY(275deg) rotateZ(115deg)}}
@media(max-width:1023px) and (min-width:768px){.film-ready .header{padding-left:5%}.film-ready .hero-content{left:10%;top:18%}.film-ready .couple-names{font-size:7vw}.film-ready .hero-tagline{max-width:430px;line-height:1.6}.film-ready .story-copy{left:49%;width:44%;top:25%}.film-ready .story-verse{display:none}.film-ready .invitation-copy{left:6%;width:42%;top:28%}.film-ready .invitation h2{font-size:45px}.invitation-object{right:10%;top:31%;width:250px}.film-ready .invitation-values{display:none}.film-ready .details-content{left:34%;width:61%}}
@media(max-width:767px){.film-ready .header{padding:17px 20px}.film-ready .header.on-light nav{color:#f3e6cf}.film-ready .header.on-light .menu-toggle span{background:#302a1c}.film-ready .hero-content{left:25px;right:20px;top:17%;width:auto}.film-ready .hero-kicker{font-size:10px;line-height:1.5}.film-ready .couple-names{font-size:clamp(41px,10.4vw,76px)}.film-ready .hero-tagline{font-size:11px;line-height:1.7;margin:22px 0 18px}.film-ready .countdown{max-width:345px}.film-ready .time-box{height:72px;min-width:0;width:calc((100% - 24px)/4)}.film-ready .time-value{font-size:34px}.film-ready .time-label{font-size:14px}.film-ready .hero-date{font-size:13px;letter-spacing:.055em;margin-top:17px}.film-ready .hero-note{font-size:33px;right:24px;bottom:13%}.film-ready .hero .scene{background-size:auto 307.2%;background-position:57% top}.film-ready .scroll-prompt{bottom:70px;font-size:10px}.foreground-flower{height:100%;top:0;width:53%}.foreground-flower.left{left:-23%}.foreground-flower.right{right:-23%}.film-ready .story .scene{background-position:12% 43.94%;opacity:.88}.film-ready .story:after{background:linear-gradient(0deg,#f3e6cf 15%,#f3e6cfe6 45%,#f3e6cf00)}.film-ready .story-copy{left:28px;right:26px;top:auto;bottom:16%;width:auto}.film-ready .story h2{font-size:44px;margin-bottom:30px}.film-ready .story-copy>p:not(.eyebrow){font-size:18px;line-height:1.45;max-width:335px}.film-ready .story-verse{display:none}.film-ready .eyebrow{font-size:11px}.film-ready .invitation-stage .scene{background-position:70% 73.366%;opacity:.60}.film-ready .invitation-copy{left:27px;right:23px;top:15%;width:auto}.film-ready .invitation h2{font-size:43px;margin:13px 0 25px}.film-ready .invitation h2 .script{font-size:.84em}.film-ready .invitation-copy>p:not(.eyebrow){font-size:16px;line-height:1.35;max-width:320px;margin-bottom:21px}.film-ready .invitation-values{display:none}.invitation-object{width:185px;right:calc(50% - 110px);top:auto;bottom:8%;aspect-ratio:.75}.paper-face{padding:17px 12px}.paper-cross{font-size:25px;margin-bottom:11px}.paper-kicker,.paper-foot{font-size:8px;letter-spacing:.13em}.paper-names{font-size:25px;margin:14px 0 12px}.paper-rule{margin-bottom:10px}.paper-date{font-size:12px}.paper-foot{margin-top:13px}.chapter-readout{left:24px;right:24px;bottom:22px;font-size:9px;gap:11px}.chapter-track{width:52px}.film-ready .wedding-details{height:auto;min-height:660px;padding:75px 27px 65px}.film-ready .wedding-details .scene{opacity:.28;background-position:8% 89.102%}.film-ready .details-content{position:relative;left:auto;top:auto;width:100%;padding-top:130px}.film-ready .details-content h2{font-size:44px;margin:13px 0 35px}.film-ready .details-grid{gap:28px 16px}.film-ready .detail{gap:11px}.film-ready .detail p{font-size:16px}.film-ready .detail svg{width:27px;height:27px}.film-ready .blessing{height:70svh;min-height:420px;padding:0}.film-ready .blessing-content{width:90%;padding-top:23svh}.film-ready .blessing blockquote{font-size:28px}.film-ready .button{font-size:11px;min-height:43px;padding:11px 20px}}
@media(max-height:700px){.film-ready .hero-content{top:16%}.film-ready .hero-kicker{line-height:1.25}.film-ready .hero-content>.small-rule{margin:8px 0 10px}.film-ready .hero-tagline{margin:16px 0}.film-ready .time-box{height:64px;min-height:64px}.film-ready .hero-note{display:none}.film-ready .story-copy{top:25%;bottom:auto}.film-ready .story h2{font-size:40px;margin-bottom:26px}.film-ready .invitation-copy{top:17%}.invitation-object{width:170px;right:8%;top:34%;bottom:auto}.film-ready .invitation-copy>p:not(.eyebrow){max-width:53%}}
@media(prefers-reduced-motion:reduce){.rose-overlay,.film-foreground{display:none}.film-ready .scene,.film-ready .invitation-object{transform:none!important}.film-ready .reveal{opacity:1!important;translate:none!important}}
@media(min-width:768px){.film-ready .invitation-stage .scene{background-position:44% 73.366%;mask-image:radial-gradient(ellipse 40% 56% at 69% 48%,transparent 75%,#000 100%)}}
.foreground-flower{object-fit:cover}.foreground-flower.left{left:-17%}.foreground-flower.right{right:-17%}
@media(max-width:767px){.foreground-flower.left{left:-48%}.foreground-flower.right{right:-48%}}
@media(min-width:768px) and (max-width:1023px){.film-ready .header nav{margin-left:4vw;gap:1.3vw}.film-ready .header nav a,.film-ready .header nav button{font-size:12px}.film-ready .header .monogram{width:36px}}
@media(max-width:767px) and (max-height:700px){.film-ready .invitation-copy{top:12%}.film-ready .invitation h2{font-size:36px;margin:7px 0 18px}.film-ready .invitation-copy>p:not(.eyebrow){font-size:14px;line-height:1.3;max-width:85%;margin-bottom:17px}.film-ready .invitation-copy .button{min-height:38px;font-size:10px}.invitation-object{width:130px;right:10%;top:auto;bottom:8%}.paper-face{padding:11px 7px}.paper-cross{font-size:18px;margin-bottom:6px}.paper-kicker,.paper-foot{font-size:6px}.paper-names{font-size:18px;margin:8px 0}.paper-date{font-size:9px}.paper-rule{margin-bottom:6px}.paper-foot{margin-top:7px}}
@media(max-height:550px){.film-ready .hero-kicker,.film-ready .hero-content>.small-rule{display:none}.film-ready .hero-content{top:24%}.film-ready .couple-names{font-size:clamp(38px,5.8vw,58px)}.film-ready .hero-tagline{font-size:11px;line-height:1.4;margin:13px 0}.film-ready .time-box{height:54px;min-height:54px}.film-ready .time-value{font-size:28px}.film-ready .hero-date{font-size:12px;margin-top:12px}.film-ready .chapter-readout{bottom:15px}.film-ready .scroll-prompt{display:none}}
