.preloader{position:fixed;top:0;left:0;width:100%;height:var(--vh);z-index:9999;background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2rem;transition:opacity .8s cubic-bezier(.4,0,.2,1)}.preloader.fade-out{opacity:0;pointer-events:none}.preloader.preloader-hidden{opacity:0;pointer-events:none;visibility:hidden}.preloader-label{font-family:Montserrat,sans-serif;font-weight:200;font-size:.7rem;letter-spacing:.5em;text-transform:uppercase;color:#00000059}.preloader-pct{font-family:Playfair Display,serif;font-weight:400;font-size:clamp(5rem,18vw,11rem);color:#111;line-height:1;letter-spacing:-.03em;font-variant-numeric:tabular-nums}.preloader-bar-track{width:min(320px,60vw);height:1px;background:#00000014;border-radius:1px;overflow:hidden}.preloader-bar-fill{height:100%;background:#111;border-radius:1px;transform-origin:left;transition:width .25s linear}.intro{position:fixed;top:0;left:0;width:100%;height:var(--vh);z-index:900;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2.8rem;background:transparent}.intro-heading{position:relative;z-index:2;font-family:playfair display,serif;font-weight:800;font-style:italic;font-size:clamp(2rem,5vw,5rem);color:#fff;text-align:center;line-height:1.2;letter-spacing:.01em;text-shadow:0 5px 40px rgba(0,0,0,.25),0 5px 50px rgba(0,0,0,.25);transform-origin:center center;will-change:transform,opacity;padding:0 1.5rem}.intro-subheading{display:block;font-family:Poppins,sans-serif;font-style:normal;font-weight:500;font-size:clamp(1.25rem,2.5vw,1.75rem);color:#fff;max-width:80%;text-align:center;margin:12px auto}.go-btn{position:relative;z-index:2;width:92px;height:92px;border-radius:50%;border:1.5px solid rgba(255,255,255,.15);background:#fffd;backdrop-filter:blur(16px) saturate(160%);-webkit-backdrop-filter:blur(16px) saturate(160%);color:#222;font-family:Poppins,serif;font-weight:500;font-size:1.15rem;line-height:1.2;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:inset 0 1px #ffffff80,inset 0 -1px #00000014,0 8px 32px #00000038,0 2px 8px #0000001f;transform-origin:center center;will-change:transform,opacity;animation:glowPulse 3s ease-in-out infinite;transition:border-color .3s,box-shadow .3s}.go-btn:hover{animation:none;border-color:#fff6;box-shadow:inset 0 1px #ffffffa6,0 12px 40px #00000047,0 0 0 1px #ffffff40;transform:scale(1.07);transition:transform .25s cubic-bezier(.34,1.56,.64,1),border-color .3s,box-shadow .3s}.go-ring{position:absolute;top:-2px;right:-2px;bottom:-2px;left:-2px;width:calc(100% + 4px);height:calc(100% + 4px);pointer-events:none;overflow:visible}.go-arc{fill:none;stroke:#ff0505e6;stroke-width:2;stroke-linecap:round;stroke-dasharray:0 276;transform-box:fill-box;transform-origin:center}.go-arc-r{transform:rotate(90deg);animation:arcPulse 2.6s cubic-bezier(.37,0,.63,1) infinite}.go-arc-l{transform:scaleX(-1) rotate(90deg);animation:arcPulse 2.6s cubic-bezier(.37,0,.63,1) infinite}@keyframes arcPulse{0%{stroke-dasharray:0 276;opacity:0}6%{opacity:1}42%{stroke-dasharray:138 276;opacity:1}58%{stroke-dasharray:138 276;opacity:1}82%{stroke-dasharray:138 276;opacity:0}83%{stroke-dasharray:0 276;opacity:0}to{stroke-dasharray:0 276;opacity:0}}@keyframes glowPulse{0%,to{box-shadow:inset 0 1px #ffffff80,0 8px 32px #00000038,0 0 #fff0}50%{box-shadow:inset 0 1px #fff9,0 10px 40px #00000047,0 0 0 6px #ffffff1a}}.scroll-arrow{position:absolute;bottom:32px;left:50%;display:flex;flex-direction:column;align-items:center;gap:10px;pointer-events:none;will-change:transform,opacity}.scroll-arrow-label{font-family:Inter,system-ui,sans-serif;font-weight:300;font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:#ffffffbf;white-space:nowrap}.scroll-overlay{position:fixed;top:0;left:0;width:100%;height:var(--vh);z-index:200;pointer-events:none}.scroll-text{position:absolute;top:50%;left:50%;width:100%;max-width:860px;text-align:center;opacity:0;will-change:transform,opacity,filter;padding:0 2.5rem}.save-the-date{display:flex;flex-direction:column;align-items:center;gap:1.2rem}.save-the-date .eyebrow{display:inline-block;font-family:Poppins,sans-serif;font-weight:400;font-size:clamp(.55rem,1.3vw,.78rem);letter-spacing:.55em;text-transform:uppercase;color:#fff}.save-the-date h2{font-family:Playfair Display,serif;font-weight:700;font-style:italic;font-size:clamp(3.8rem,13vw,10rem);color:#fff;line-height:.95;letter-spacing:-.02em;text-shadow:0 2px 40px rgba(0,0,0,.3),0 1px 6px rgba(0,0,0,.2)}.names-text{display:flex;flex-direction:column;align-items:center;gap:1.4rem}.names-text .names-amp-row{font-family:Playfair Display,serif;font-style:italic;font-weight:700;font-size:clamp(3rem,7vw,5.5rem);color:#fff;line-height:1.25;letter-spacing:-.015em;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.15em .4em;text-shadow:0 5px 50px rgba(0,0,0,.25),0 5px 50px rgba(0,0,0,.25)}.names-text .name{display:inline-block;font-family:Whispering Signature,serif!important;font-weight:800}.names-text .amp{font-weight:300;font-style:italic;color:#fff;font-size:.65em}.event-date-wrapper{will-change:transform,opacity;display:flex;align-items:center;justify-content:center;width:auto!important;padding:0!important;min-width:min(480px,85vw);max-width:min(580px,90vw);backdrop-filter:blur(20px) saturate(1.2);-webkit-backdrop-filter:blur(20px) saturate(1.2);background:#ffffff14;border:1px solid rgba(255,255,255,.14);border-radius:32px}.event-date-slide{position:relative;display:flex;flex-direction:column;align-items:center;gap:0;overflow:hidden;pointer-events:auto;border-radius:32px;padding:3.5rem 4rem 3rem;width:100%}.event-date-slide:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;pointer-events:none;background:radial-gradient(circle at var(--mx, 50%) var(--my, 50%),rgba(255,255,255,.22) 0%,transparent 65%);opacity:var(--shine, 0);transition:opacity .25s ease}.event-pre{font-family:Poppins,sans-serif;font-weight:300;font-size:clamp(.55rem,1.2vw,.72rem);letter-spacing:.5em;text-transform:uppercase;color:#fff;margin-bottom:1.6rem}.event-date-row{display:flex;align-items:center;gap:1.2rem;margin-bottom:2rem}.event-day{font-family:poppins,sans-serif;font-weight:700;font-size:clamp(5rem,14vw,9rem);color:#fff;line-height:1;letter-spacing:-.04em;font-variant-numeric:tabular-nums}.event-month-year{display:flex;flex-direction:column;align-items:flex-start;gap:.1em;border-left:1px solid rgba(255,255,255,.703);padding-left:1.2rem}.event-month{font-family:Playfair Display,serif;font-style:italic;font-weight:700;font-size:clamp(1.75rem,4vw,3rem);color:#fff;line-height:1;letter-spacing:.02em}.event-year{font-family:poppins,sans-serif;font-weight:700;font-size:clamp(1.25rem,2vw,1.15rem);color:#ffffffdc;letter-spacing:.25em;font-variant-numeric:tabular-nums}.event-rule{width:40px;height:1px;background:#ffffff9f;margin-bottom:1.4rem}.event-venue{font-family:Playfair Display,serif;font-style:italic;font-weight:700;font-size:clamp(1rem,2.4vw,1.35rem);color:#fff;letter-spacing:.01em;margin-bottom:.5rem}.event-location{font-family:Poppins,sans-serif;font-weight:300;font-size:clamp(.75rem,1.1vw,.65rem);letter-spacing:.38em;text-transform:uppercase;color:#fff}.photo-slide{position:absolute;top:calc(var(--vh) * .5);left:50%;display:flex;align-items:center;justify-content:center;will-change:transform,opacity,filter;perspective:900px}.photo-frame{position:relative;overflow:hidden;pointer-events:auto;background:#f8f4ef;padding:12px 12px 64px;box-shadow:0 2px 4px #0000001f,0 8px 24px #00000059,0 20px 60px #00000040,inset 0 0 0 1px #0000000d;transition:transform .2s ease-out;will-change:transform}.photo-frame:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:3;box-shadow:inset 0 0 18px #00000014}.photo-frame:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:4;background:radial-gradient(circle at var(--mx, 50%) var(--my, 50%),rgba(255,255,255,.38) 0%,transparent 62%);opacity:var(--shine, 0);transition:opacity .25s ease}.photo-frame img{display:block;width:clamp(220px,40vw,460px);height:clamp(220px,40vw,460px);object-fit:cover;border-radius:1px}.photo-invite-text{position:absolute;left:calc(100% + clamp(1.5rem,3vw,2.5rem));top:50%;transform:translateY(-50%);width:clamp(140px,16vw,220px);display:flex;flex-direction:column;gap:.7rem;pointer-events:none;-webkit-user-select:none;user-select:none}.photo-invite-eyebrow{font-family:Poppins,sans-serif;font-weight:300;font-size:clamp(.45rem,.9vw,.58rem);letter-spacing:.42em;text-transform:uppercase;color:#fff;text-shadow:0 4px 24px rgba(0,0,0,.35)}.photo-invite-heading{font-family:Playfair Display,serif;font-style:italic;font-weight:700;font-size:clamp(1.6rem,3.4vw,2.6rem);color:#fff;line-height:1.08;letter-spacing:-.01em;text-shadow:0 4px 24px rgba(0,0,0,.35);margin:0}.photo-invite-rule{display:block;width:32px;height:1px;background:#fff;text-shadow:0 4px 24px rgba(0,0,0,.35)}.photo-invite-body{font-family:Poppins,sans-serif;font-weight:300;font-size:clamp(.6rem,1.1vw,.72rem);line-height:1.75;color:#fff;text-shadow:0 4px 24px rgba(0,0,0,.35);letter-spacing:.03em;margin:0}.photo-invite-sign{font-family:Playfair Display,serif;font-style:italic;font-weight:400;font-size:clamp(.85rem,1.5vw,1rem);color:#fff;text-shadow:0 4px 24px rgba(0,0,0,.35);letter-spacing:.06em;margin-top:.2rem}@media (max-width: 540px){.photo-invite-text{display:none}}.photo-caption{position:absolute;bottom:0;left:12px;right:12px;height:64px;display:flex;align-items:center;justify-content:center;font-family:Playfair Display,serif;font-style:italic;font-weight:400;font-size:clamp(.85rem,1.8vw,1.05rem);color:#3a3028;letter-spacing:.04em;-webkit-user-select:none;user-select:none}.end-screen{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:var(--vh);z-index:300;background:#f9f6f1;overflow-y:auto;overflow-x:hidden;opacity:0;pointer-events:none;-webkit-overflow-scrolling:touch}.end-screen.visible{pointer-events:auto}.end-grain{position:fixed;top:0;right:0;bottom:0;left:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E");pointer-events:none;z-index:1;opacity:.6}.end-bg{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0}.end-orb{position:absolute;border-radius:50%;filter:blur(90px);opacity:.4;animation:orbFloat 14s ease-in-out infinite alternate}.end-orb-1{width:60vw;height:60vw;top:-20%;left:-15%;background:radial-gradient(circle,#EBD9C8 0%,#D4B896 60%,transparent 100%);animation-duration:16s;animation-delay:0s}.end-orb-2{width:50vw;height:50vw;bottom:-15%;right:-12%;background:radial-gradient(circle,#C8D8E8 0%,#A8BED4 60%,transparent 100%);animation-duration:20s;animation-delay:-5s}.end-orb-3{width:40vw;height:40vw;top:40%;left:55%;background:radial-gradient(circle,#E2D4E8 0%,#C4B0D0 60%,transparent 100%);animation-duration:18s;animation-delay:-9s}@keyframes orbFloat{0%{transform:translate(0) scale(1)}to{transform:translate(24px,36px) scale(1.07)}}.end-content{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;text-align:center;width:100%;max-width:860px;margin:0 auto;padding:10vh 2.5rem 12vh;gap:0}.end-el{opacity:0;transform:translateY(28px)}.end-top-rule{width:1px;height:72px;background:linear-gradient(to bottom,transparent,rgba(0,0,0,.2),transparent);margin-bottom:3rem;flex-shrink:0}.end-label{font-family:Playfair Display,serif;font-style:italic;font-weight:400;font-size:clamp(1rem,2.2vw,1.4rem);color:#00000061;letter-spacing:.05em;margin-bottom:2rem}.end-names{font-family:Whispering Signature,cursive;font-style:italic;font-weight:700;font-size:clamp(2.75rem,10vw,8.5rem);color:#1a1714;line-height:.95;letter-spacing:-.025em;margin-bottom:6rem;display:flex;flex-direction:column;align-items:center;gap:.12em}.end-name-line{display:block}.end-amp{font-weight:300;font-style:italic;font-size:.38em;color:#78480098;letter-spacing:.12em;display:block;line-height:1.8}.end-date-feature{display:flex;align-items:center;justify-content:center;gap:2.5rem;margin-bottom:6rem;width:100%}.end-date-big{font-family:poppins,sans-serif;font-weight:700;font-size:clamp(2.5rem,18vw,14rem);color:#1a1714;line-height:1;letter-spacing:-.05em;font-variant-numeric:tabular-nums}.end-date-right{display:flex;flex-direction:column;align-items:flex-start;gap:.2em;border-left:1px solid rgba(0,0,0,.12);padding-left:2rem}.end-date-month-big{font-family:Playfair Display,serif;font-style:italic;font-weight:400;font-size:clamp(2rem,5vw,4rem);color:#1a1714;line-height:1;letter-spacing:.01em}.end-date-year{font-family:poppins,sans-serif;font-weight:500;font-size:clamp(1.5rem,2.2vw,1.6rem);color:#412b0b80;letter-spacing:.3em;font-variant-numeric:tabular-nums}.end-hairline{width:min(480px,80vw);height:1px;background:#0000001a;margin-bottom:5rem;flex-shrink:0}.end-venue{font-family:Playfair Display,serif;font-style:italic;font-weight:400;font-size:clamp(1.6rem,4vw,2.8rem);color:#2a2420;letter-spacing:.01em;margin-bottom:1.6rem}.end-address{font-family:Poppins,sans-serif;font-weight:300;font-size:clamp(.75rem,1.6vw,1rem);letter-spacing:.22em;text-transform:uppercase;color:#00000061;line-height:2.2;margin-bottom:6rem}.end-note{font-family:Playfair Display,serif;font-style:italic;font-weight:400;font-size:clamp(1.1rem,2.5vw,1.6rem);color:#00000052;letter-spacing:.03em;margin-bottom:5rem}.end-restart{display:flex;align-items:center;justify-content:center;gap:1em;margin:0 auto;background:transparent;border:1px solid rgba(0,0,0,.2);border-radius:100px;padding:1em 2.8em;cursor:pointer;transition:border-color .3s,background .3s,color .3s;font-family:Poppins,sans-serif;font-weight:400;font-size:clamp(.7rem,1.4vw,.85rem);letter-spacing:.28em;text-transform:uppercase;color:#00000080}.end-restart:hover{background:#0000000d;border-color:#0006;color:#000c}.end-restart:hover .end-restart-arrow{transform:translateY(-3px)}.end-restart-arrow{display:inline-block;transition:transform .3s ease;font-size:1.15em;opacity:.55}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{background:#fff;height:var(--vh);scrollbar-width:none;-ms-overflow-style:none;overscroll-behavior:none}html::-webkit-scrollbar{display:none}.stage{position:sticky;top:0;width:100%;max-width:800px;height:var(--vh);margin:0 auto;z-index:0}.stage canvas{display:block;width:100%;height:var(--vh);image-rendering:auto;-webkit-image-rendering:auto;will-change:contents}.driver{pointer-events:none}
