/* Shared design from the supplied wedding reference. */
@import url('https://fonts.googleapis.com/css2?family=Castoro+Titling&family=Karla:ital,wght@0,400;0,500;0,700;0,800;1,400&family=Kapakana:wght@300..400&display=swap');
*,::before,::after { box-sizing:border-box; border:0 solid; margin:0; padding:0; }
html { -webkit-text-size-adjust:100%; line-height:1.5; -webkit-tap-highlight-color:transparent; }
h1,h2,h3,h4,h5,h6 { font-size:inherit; font-weight:inherit; }
a { color:inherit; text-decoration:inherit; }
b,strong { font-weight:bolder; }
button,input,select,textarea { font:inherit; color:inherit; letter-spacing:inherit; background:transparent; border-radius:0; }
button { appearance:button; }
img,svg,video { display:block; vertical-align:middle; }
img,video { max-width:100%; height:auto; }
[hidden] { display:none!important; }
:root{--cream:#fffcef;--wine:#270601;--blue:#5199ff;--black:#010101;--ochre:#a19838;--cx:-200px;--cy:-200px}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--ochre);color:var(--cream);margin:0;font-family:Karla,Arial,sans-serif;font-size:16px}
button,input,textarea,select{font:inherit}
.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}
@media (pointer:fine){html,body,a,button,input,textarea,select,summary,label{cursor:none!important}
.glass-cursor{display:block}
}
.glass-cursor{z-index:9999;left:var(--cx);top:var(--cy);pointer-events:none;-webkit-backdrop-filter:blur(5px)saturate(1.8)contrast(1.08);background:radial-gradient(circle at 28% 22%,#ffffffbf,#ffffff21 25%,#a4dbf01f 58%,#ffffff52);border:1px solid #ffffffc7;border-radius:50%;width:78px;height:78px;display:none;position:fixed;transform:translate(-50%,-50%);box-shadow:inset 0 1px 2px #fff,inset 8px 10px 18px #fff3,inset -8px -10px 18px #1d4a602e,0 8px 24px #00000038}
.glass-cursor:before{content:"";background:linear-gradient(145deg,#ffffff38,#0000 46%,#81ceed2e);border:1px solid #ffffff47;border-radius:50%;position:absolute;inset:7px}
.glass-cursor:after{content:"";filter:blur(2px);background:#ffffffc7;border-radius:50%;width:18px;height:9px;position:absolute;top:10px;left:14px;transform:rotate(-30deg)}
.cursor-heart{z-index:10000;pointer-events:none;color:#fff1d4;text-shadow:0 0 6px #fff,0 0 12px #ff8dad;animation:heart-sparkle .78s var(--delay) cubic-bezier(.15,.75,.25,1) forwards;font-family:Karla,sans-serif;font-size:16px;line-height:1;position:fixed;transform:translate(-50%,-50%)}
@keyframes heart-sparkle{0%{opacity:0;transform:translate(-50%,-50%) rotate(var(--angle)) translateX(0) scale(.25)}
30%{opacity:1}
70%{opacity:1}
to{opacity:0;transform:translate(-50%,-50%) rotate(var(--angle)) translateX(var(--distance)) scale(1.15)}
}
.gate{background:url(/assets/wedding/entry.jpg) 50%/cover no-repeat;place-items:center;min-height:100svh;display:grid;position:relative}
.gate-form{-webkit-backdrop-filter:blur(34px)saturate(1.8);background:#00000075;border:1px solid #ffffff94;border-radius:1000px;align-items:center;gap:8px;width:min(585px,90vw);padding:12px 12px 12px 32px;display:flex;overflow:hidden;box-shadow:inset 0 1px #ffffffd9,inset 0 -1px #73b1cca6,0 20px 60px #00000047}
.gate-form input{color:#fff;letter-spacing:.03em;background:0 0;border:0;outline:0;flex:1;min-width:0;height:56px;font-size:28px}
.gate-form button,.rsvp-form button{color:#fff;text-transform:uppercase;cursor:pointer;background:#240100;border:0;border-radius:1000px;justify-content:center;align-items:center;gap:8px;display:flex}
.gate-form button{padding:16px 20px 16px 32px;font-size:28px;line-height:24px}
.arrow-icon{object-fit:contain;flex:0 0 27px;width:27px;height:27px;transition:transform .35s cubic-bezier(.2,.8,.2,1);display:block}
button:hover .arrow-icon,a:hover .arrow-icon{transform:translate(16px)}
.transition-screen{color:#fff1d4;text-align:center;isolation:isolate;background:#173d50;border:0;place-items:center;width:100vw;height:100svh;padding:0;display:grid;position:fixed;inset:0;overflow:hidden}
.transition-flower{z-index:-2;will-change:transform;background:url(/assets/wedding/entry.jpg) 50%/cover no-repeat;animation:9s cubic-bezier(.2,.65,.3,1) forwards opening-flower;position:absolute;inset:-18%}
@keyframes opening-flower{0%{transform:scale(.96)rotate(-3deg)}
to{transform:scale(1.38)rotate(4deg)}
}
.transition-card{background:url(/assets/wedding/transition-glass.jpg) 50%/cover no-repeat;border:1px solid #ffffffa6;border-radius:40px;flex-direction:column;justify-content:center;align-items:center;gap:24px;width:min(1080px,84vw);height:min(632px,76vh);padding:48px 80px;animation:1.15s cubic-bezier(.2,.8,.2,1) .2s both card-arrive;display:flex;overflow:hidden;box-shadow:0 30px 90px #000a0f47}
@keyframes card-arrive{0%{opacity:0;filter:blur(8px);transform:translateY(28px)}
to{opacity:1;filter:none;transform:none}
}
.transition-heading{flex-direction:column;gap:10px;font-size:20px;line-height:1.2;display:flex}
.transition-heading b{letter-spacing:.18em;font-size:28px}
.transition-card>strong{letter-spacing:-.02em;font-family:Kapakana,cursive;font-size:clamp(58px,7.8vw,100px);font-weight:400;line-height:.98}
.transition-card>img{object-fit:contain;width:214px;height:173px}
.transition-info{flex-direction:column;gap:12px;font-size:20px;line-height:1.2;display:flex}
.transition-info>b{font-size:28px;font-weight:400}
.enter-hint{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);letter-spacing:.24em;opacity:.82;background:#1134446b;border:1px solid #ffffff5c;border-radius:999px;padding:10px 17px;font-size:11px;position:absolute;bottom:20px}
.site-shell{background:var(--ochre);position:relative;overflow:visible}
.site-shell nav{z-index:100;align-items:center;gap:0;display:flex;position:fixed;top:40px;left:50%;transform:translate(-50%)}
.site-shell nav a{color:#fff;-webkit-backdrop-filter:blur(16px)saturate(1.5);background:#24010042;border:1px solid #ffffff1f;border-radius:1000px;padding:10px 14px;font-size:16px;line-height:24px;text-decoration:none;transition:background .25s,transform .25s;box-shadow:inset 0 1px #ffffff1f}
.site-shell nav a:hover{background:#24010085;transform:translateY(-2px)}
.site-shell>section{z-index:1;position:sticky;top:0;box-shadow:0 -20px 55px #00000038}
.site-shell>section:nth-of-type(2){z-index:2}
.site-shell>section:nth-of-type(3){z-index:3}
.site-shell>section:nth-of-type(4){z-index:4}
.split{display:grid}
.program-section{background:var(--wine);grid-template-columns:500fr 780fr;min-height:1460px}
.info-section{background:var(--black);grid-template-columns:895fr 385fr;min-height:1344px}
.faq-section{background:var(--ochre);grid-template-columns:395fr 885fr;min-height:829px}
.photo-panel{will-change:background-position,background-size;background-position:50%;background-size:cover;animation:16s ease-in-out infinite alternate living-photo;position:relative;overflow:hidden}
.photo-panel:after{content:"";pointer-events:none;background:linear-gradient(#00000014,#0000 34%);position:absolute;inset:0}
.photo-panel h2{z-index:1;letter-spacing:4px;color:#fff;text-transform:uppercase;mix-blend-mode:luminosity;margin:0;padding:140px 80px;font-family:Castoro Titling,serif;font-size:60px;font-weight:400;line-height:1.2;position:relative}
.program-photo{background-image:url(/assets/wedding/program.jpg);background-position:top;background-repeat:repeat-y;background-size:100%}
.info-photo{background-image:url(/assets/wedding/info.jpg);animation-delay:-4s}
.faq-photo{background-image:url(/assets/wedding/faq.jpg);animation-delay:-8s}
.faq-photo h2,.info-photo h2{padding:48px 80px}
.rsvp-section{background:url(/assets/wedding/rsvp.jpg) 50%/cover no-repeat;place-items:center;min-height:1423px;padding:80px;animation:18s ease-in-out infinite alternate living-rsvp;display:grid}
@keyframes living-photo{0%{background-position:48%;background-size:103%}
to{background-position:52% 48%;background-size:108%}
}
@keyframes living-rsvp{0%{background-position:50%;background-size:cover}
to{background-position:52% 48%;background-size:auto 106%}
}
.content-panel{color:var(--cream)}
.wine{background:var(--wine)}
.black{background:var(--black)}
.ochre{background:var(--ochre)}
.program-content{padding:100px 80px 40px}
.schedule-card{border:0;padding:40px 0}
.schedule-card header h3,.info-content header h3,.rsvp-form header h3{letter-spacing:1px;margin:0;font-family:Kapakana,cursive;font-size:40px;font-weight:400;line-height:1.2}
.schedule-card header>p,.info-content header>a,.rsvp-form header>p{color:var(--blue);letter-spacing:2.5px;text-transform:uppercase;margin:0;font-size:12px;font-weight:700;line-height:1.2}
.schedule-card header{margin-bottom:24px}
.schedule-row{grid-template-columns:112px 1fr;gap:40px;padding:9px 0;display:grid}
.schedule-row time{letter-spacing:1px;font-size:16px;line-height:1.4}
.schedule-row strong,.info-row strong{letter-spacing:1.68px;text-transform:uppercase;font-size:14px;font-weight:400;line-height:22.68px;display:block}
.schedule-row p,.info-row p{opacity:.78;max-width:348px;margin:3px 0 0;font-size:16px;line-height:23.49px}
.info-content{padding:0 80px}
.info-content article{padding:52px 0}
.info-content header{margin-bottom:24px}
.info-content header h3{font-size:50px}
.info-content header>a{align-items:center;gap:8px;width:max-content;text-decoration:none;display:flex}
.info-content article>p{opacity:.9;max-width:735px;margin:0;font-size:16px;line-height:1.48}
.info-row{grid-template-columns:112px 1fr;gap:40px;padding:10px 0;display:grid}
.info-row b{letter-spacing:2.5px;text-transform:uppercase;font-size:12px;font-weight:700}
.copy-block{padding-top:24px}
.copy-block>a,.copy-block h4{color:#9ac4ff;letter-spacing:2.5px;text-transform:uppercase;font-size:12px;font-weight:700}
.copy-block>a{margin-bottom:34px;display:inline-block}
.copy-block h4{margin:35px 0 12px}
.copy-block p{opacity:.9;max-width:735px;margin:0;font-size:16px;line-height:1.48}
.faq-content{padding:60px 80px}
.faq-list details{border-bottom:1px solid #ffffff47;padding:17px 0}
.faq-list summary{cursor:pointer;letter-spacing:1.68px;text-transform:uppercase;justify-content:space-between;gap:20px;font-size:14px;font-weight:700;line-height:1.3;list-style:none;display:flex}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list details p{opacity:.78;max-width:720px;margin:7px 50px 0 0;font-size:16px;line-height:1.35}
.faq-list summary span{font-size:20px;font-weight:400;transition:transform .2s}
.faq-list details[open] summary span{transform:rotate(45deg)}
.rsvp-glass{-webkit-backdrop-filter:blur(25px)saturate(1.4);background:linear-gradient(125deg,#210000b8,#1012167a 55%,#57788166);border:1px solid #ffffff8c;border-radius:40px;width:min(1120px,100vw - 160px);padding:50px 80px;box-shadow:inset 0 1px #ffffff73,0 24px 80px #00000040}
.rsvp-form{flex-direction:column;gap:24px;display:flex}
.rsvp-form header h3{font-size:50px}
.rsvp-form header>p{margin-top:3px}
.rsvp-form>label,.rsvp-form legend{font-size:16px;display:block}
.rsvp-form select,.rsvp-form input[type=text],.rsvp-form textarea{width:100%;height:56px;color:var(--cream);background:#23000057;border:1px solid #ffffff47;border-radius:1000px;outline:0;margin-top:8px;padding:0 22px;display:block;box-shadow:inset 0 1px #ffffff1a}
.rsvp-form textarea{resize:none;height:62px;padding-top:18px}
.rsvp-form ::placeholder{color:#fffcef94}
.rsvp-form fieldset{border:0;margin:0;padding:0}
.night-options{align-items:center;margin-top:8px;display:flex}
.night-options label{position:relative}
.night-options input{opacity:0;position:absolute}
.night-options span{background:#3700004d;border:1px solid #ffffff38;border-radius:1000px;flex-direction:column;justify-content:center;align-items:center;width:102px;height:70px;font-size:13px;display:flex}
.night-options span b{font-size:19px}
.night-options input:checked+span{background:#520500;border-color:#ffffffa6;transform:translateY(-2px)}
.rsvp-form button{letter-spacing:.04em;background:#3600009e;border:1px solid #ffffff29;width:100%;height:52px;font-size:21px}
@media (width<=760px){.glass-cursor{display:none!important}
.gate-form{padding:8px 8px 8px 18px}
.gate-form input{height:44px;font-size:18px}
.gate-form button{padding:13px 13px 13px 18px;font-size:18px}
.arrow-icon{flex-basis:22px;width:22px;height:22px}
.transition-card{border-radius:28px;gap:17px;width:90vw;height:76vh;padding:28px 20px}
.transition-card>strong{font-size:clamp(48px,14vw,72px)}
.transition-card>img{width:145px;height:110px}
.transition-heading,.transition-info{font-size:15px}
.transition-info>b{font-size:21px}
.site-shell nav{justify-content:center;width:calc(100% - 16px);top:auto;bottom:14px}
.site-shell nav a{padding:9px 7px;font-size:10px}
.site-shell>section{position:relative;top:auto}
.split{grid-template-columns:1fr}
.program-section,.info-section,.faq-section{min-height:0}
.photo-panel{min-height:62vh;animation-duration:13s}
.photo-panel h2,.faq-photo h2,.info-photo h2{padding:72px 24px;font-size:42px}
.program-photo{background-repeat:no-repeat;background-size:cover}
.program-content,.info-content,.faq-content{padding:55px 24px}
.info-section .info-photo{order:-1}
.schedule-row,.info-row{grid-template-columns:62px 1fr;gap:18px}
.schedule-row p,.info-row p{font-size:14px;line-height:1.45}
.rsvp-section{min-height:100svh;padding:24px}
.rsvp-glass{border-radius:28px;width:100%;padding:34px 22px}
.night-options span{width:82px}
.rsvp-form header h3,.info-content header h3{font-size:42px}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}
*{transition:none!important;animation:none!important}
}
@media (pointer:fine){.glass-cursor{display:grid!important}
}
.glass-cursor{width:44px;height:52px;box-shadow:none;-webkit-backdrop-filter:none;isolation:isolate;background:0 0;border:0;place-items:center;overflow:visible;transform:translate(-50%,-50%)}
.glass-cursor:before,.glass-cursor:after{content:none}
.glass-cursor img{z-index:2;object-fit:contain;filter:drop-shadow(0 2px 2px #00000047)drop-shadow(0 0 1px #ffffffb3);width:33px;height:41px;transition:transform .18s cubic-bezier(.2,.8,.2,1);position:relative;transform:rotate(-4deg)}
.cursor-lens{z-index:1;-webkit-backdrop-filter:blur(1.5px)saturate(1.9)contrast(1.12);background:radial-gradient(circle at 27% 22%,#ffffffb8 0 5%,#ffffff26 19%,#0000 39%),radial-gradient(circle at 72% 76%,#5cbee240,#0000 38%),#ffffff0e;border:1px solid #ffffffb8;border-radius:55% 45% 52% 48%/47% 56% 44% 53%;width:46px;height:46px;animation:3.6s ease-in-out infinite alternate cursor-lens-flow;position:absolute;box-shadow:inset 1px 1px 2px #ffffffd1,inset -5px -6px 10px #154d652e,0 4px 12px #0000002e}
.cursor-lens:after{content:"";filter:blur(1px);background:#fffc;border-radius:50%;width:12px;height:5px;position:absolute;top:7px;left:8px;transform:rotate(-28deg)}
.glass-cursor:active img{transform:rotate(-4deg)scale(.9)}
@keyframes cursor-lens-flow{0%{border-radius:55% 45% 52% 48%/47% 56% 44% 53%;transform:rotate(-2deg)scale(.98)}
to{border-radius:46% 54% 44% 56%/57% 43% 58% 42%;transform:rotate(3deg)scale(1.04)}
}
.glass-cursor{width:34px;height:42px;box-shadow:none;-webkit-backdrop-filter:none;background:0 0;border:0;border-radius:0;display:none;overflow:visible}
.glass-cursor img{filter:drop-shadow(0 2px 2px #0000004d);width:34px;height:42px;transform:rotate(-4deg)}
.cursor-lens{display:none}
.arrow-icon{fill:currentColor;object-fit:initial}
.info-content header>a .arrow-icon{width:18px;height:18px;color:var(--blue);flex-basis:18px}
.info-content header>a:hover .arrow-icon{transform:translate(10px)}
.transition-card{justify-content:space-between;gap:12px;padding:42px 80px}
.transition-brooch{mix-blend-mode:screen}
.program-section{min-height:max(1460px,100svh);position:relative!important;top:auto!important}
.program-photo{align-self:start;height:100svh;position:sticky;top:0}
.faq-item{border-bottom:1px solid #ffffff47;padding:17px 0}
.faq-item>button{width:100%;color:inherit;text-align:left;letter-spacing:1.68px;text-transform:uppercase;background:0 0;border:0;justify-content:space-between;gap:20px;padding:0;font-size:14px;font-weight:700;line-height:1.3;display:flex}
.faq-item>button span{font-size:20px;font-weight:400;transition:transform .2s}
.faq-item.open>button span{transform:rotate(45deg)}
.faq-item p{opacity:.78;max-width:720px;margin:7px 50px 0 0;font-size:16px;line-height:1.35}
.rsvp-section{width:100%;max-width:none;animation:18s ease-in-out infinite alternate living-rsvp-position;background-position:50%!important;background-size:cover!important}
@keyframes living-rsvp-position{0%{background-position:48%}
to{background-position:52% 48%}
}
.select-field{font-size:16px;display:block;position:relative}
.select-trigger{width:100%;height:56px;color:var(--cream);text-align:left;background:#23000057;border:1px solid #ffffff47;border-radius:1000px;justify-content:space-between;align-items:center;gap:24px;margin-top:8px;padding:0 24px;display:flex;box-shadow:inset 0 1px #ffffff1a}
.select-trigger .placeholder{color:#fffcef94}
.select-chevron{flex:none;font-size:22px;line-height:1;transform:translateY(-2px)}
.liquid-options{z-index:20;-webkit-backdrop-filter:blur(24px)saturate(1.65);background:linear-gradient(135deg,#370000c2,#1c252a8a);border:1px solid #ffffff7a;border-radius:24px;width:100%;padding:8px;position:absolute;top:calc(100% + 8px);left:0;overflow:hidden;box-shadow:inset 0 1px #ffffff59,0 18px 42px #00000047}
.liquid-options button{width:100%;color:var(--cream);text-align:left;background:0 0;border:0;border-radius:16px;padding:12px 16px;display:block}
.liquid-options button:hover,.liquid-options button[aria-selected=true]{background:#ffffff24}
@media (width<=760px){.transition-card{padding:28px 20px}
.program-photo{height:auto;position:relative}
.rsvp-section{width:100%;background-size:cover!important}
.select-trigger{padding-inline:24px}
}
.gate-filter{pointer-events:none;width:0;height:0;position:absolute}
.gate-form{isolation:isolate;-webkit-backdrop-filter:none;background:#5f71742e;border:1px solid #ddefef59;border-radius:999px;gap:18px;width:min(720px,90vw);height:102px;padding:14px 14px 14px 38px;position:relative;overflow:hidden;box-shadow:inset 1px 1px 1px #e6fcff80,inset -1px -1px 1px #d1e7e74d,0 8px 28px #0000001f}
.gate-refraction{z-index:-2;pointer-events:none;filter:url(#entry-refraction);background:url(/assets/wedding/entry.jpg) 50%/auto 100svh no-repeat;position:absolute;inset:-45px;transform:scale(1.08,1.25)}
.gate-glass-tint{z-index:-1;border-radius:inherit;pointer-events:none;background:linear-gradient(100deg,#0e262e5e,#0a0f105c 52%,#89a0a257);position:absolute;inset:0;box-shadow:inset 8px 0 12px -10px #b7e6fb,inset -8px 0 12px -10px #dff5f5}
.gate-form input{letter-spacing:.055em;color:#fff;min-width:0;height:100%;padding:0;font-size:32px;font-weight:400;line-height:1.2;position:relative}
.gate-form input::placeholder{color:#b5b9b9;opacity:1}
.gate-form button{background:#240100;flex:0 0 30.5%;gap:12px;height:100%;padding:0 24px;font-size:30px;font-weight:400;line-height:1;position:relative}
.gate-form button:hover{background:#390603}
.gate-form button:hover .arrow-icon{transform:translate(2px,-2px)}
.gate-form:focus-within{border-color:#eefeffcc;box-shadow:inset 1px 1px 1px #e6fcffa6,0 0 0 3px #e2f7fd29,0 8px 28px #0000001f}
.gate-form button:focus-visible{outline-offset:-5px;outline:2px solid #fff}
@media (width<=760px){.gate-form{padding:clamp(8px,1.8vw,12px);gap:10px;width:90vw;height:clamp(60px,13vw,86px);padding-left:clamp(18px,4.8vw,30px)}
.gate-form input{letter-spacing:.035em;font-size:clamp(16px,4.2vw,28px)}
.gate-form button{flex-basis:31%;gap:6px;padding:0 12px;font-size:clamp(16px,3.9vw,25px)}
.gate-form .arrow-icon{flex-basis:clamp(21px,4.3vw,29px);width:clamp(21px,4.3vw,29px);height:clamp(21px,4.3vw,29px)}
}
.gate{isolation:isolate;background:#173d50;overflow:hidden}
.gate-background{z-index:-1;will-change:transform;pointer-events:none;background:url(/assets/wedding/entry.jpg) 50%/cover no-repeat;animation:16s ease-in-out infinite alternate arrival-breathe;position:absolute;inset:-5%}
@keyframes arrival-breathe{0%{transform:scale(1)translate(-.5%,.4%)rotate(-.35deg)}
to{transform:scale(1.07)translate(.6%,-.5%)rotate(.35deg)}
}
.gate-refraction{animation:16s ease-in-out infinite alternate arrival-lens-breathe}
@keyframes arrival-lens-breathe{0%{transform:scale(1.08,1.25)translate(-.5%)}
to{transform:scale(1.15,1.33)translate(.6%)}
}
.gate-form .arrow-icon{transition:transform .7s cubic-bezier(.22,.61,.36,1)}
.gate-form button:hover .arrow-icon,.gate-form button:focus-visible .arrow-icon{transform:translate(1.5px,-1.5px)}
.gate-form button:active .arrow-icon{transform:translate(2px,-2px)}
.transition-card{color:#fff1d4;flex-shrink:0;justify-content:center;gap:24px;width:min(1080px,100vw - 64px);height:632px;max-height:none;padding:42px 80px}
.transition-header{flex-direction:column;flex-shrink:0;align-items:center;gap:24px;width:100%;display:flex}
.transition-heading{letter-spacing:-.4px;flex-direction:column;align-items:center;gap:8px;height:80px;font-size:20px;font-weight:400;line-height:24px;display:flex}
.transition-heading b{letter-spacing:2px;height:24px;font-size:24px;font-weight:400;line-height:24px;display:block}
.transition-header>strong{letter-spacing:-2px;white-space:nowrap;width:100%;height:98px;font-family:Kapakana,cursive;font-size:100px;font-weight:400;line-height:1;display:block}
.transition-card>.transition-brooch{object-fit:contain;mix-blend-mode:normal;flex-shrink:0;width:214px;height:173px}
.transition-info{letter-spacing:-.4px;flex-shrink:0;gap:12px;width:100%;height:125px;font-size:20px;line-height:24px}
.transition-info>b{letter-spacing:-.56px;justify-content:center;align-items:center;height:41px;font-size:28px;font-weight:400;line-height:33.6px;display:flex}
@media (width<=760px){.transition-screen{padding:32px 0 64px;overflow-y:auto}
.transition-card{border-radius:28px;gap:24px;width:90vw;height:auto;min-height:0;padding:32px 20px}
.transition-heading{font-size:18px}
.transition-header>strong{letter-spacing:-1px;white-space:normal;height:auto;min-height:58px;font-size:clamp(40px,8.4vw,64px);line-height:1.1}
.transition-card>.transition-brooch{width:180px;height:146px}
.transition-info{height:125px;font-size:18px}
.transition-info>b{font-size:26px}
.enter-hint{bottom:14px}
}
@media (prefers-reduced-motion:reduce){.gate-background,.gate-refraction,.transition-flower,.transition-card{will-change:auto;animation:none}
.gate-form .arrow-icon{transition:none}
.gate-form button:hover .arrow-icon,.gate-form button:active .arrow-icon{transform:none}
}
.transition-heading .invitation-stars{flex-shrink:0;width:88px;height:24px;display:block}
.site-shell>.info-section{align-items:stretch;height:auto;min-height:1344px;position:relative;top:auto}
.info-content{min-width:0;overflow:visible}
.info-content article+article{padding-top:52px}
.info-content article>p{color:#f4ecd6;opacity:1;font-size:18px;line-height:27.54px}
.info-content article+article header h3{font-size:35.136px;line-height:42.163px}
.info-row{grid-template-columns:112px minmax(0,1fr)}
.info-row>div{min-width:0}
.info-content p{overflow-wrap:break-word}
.info-photo{align-self:start;height:100svh;position:sticky;top:0}
#stay{scroll-margin-top:110px}
.photo-panel{will-change:auto;background-image:none;animation:none}
.photo-panel:before{content:"";background:var(--panel-image) center/cover no-repeat;will-change:transform;pointer-events:none;animation:16s ease-in-out infinite alternate site-image-breathe;position:absolute;inset:-4%}
.program-photo{--panel-image:url(/assets/wedding/program.jpg)}
.info-photo{--panel-image:url(/assets/wedding/info.jpg)}
.faq-photo{--panel-image:url(/assets/wedding/faq.jpg)}
.info-photo:before{animation-delay:-4s}
.faq-photo:before{animation-delay:-8s}
@keyframes site-image-breathe{0%{transform:scale(1)translate(-.4%,.3%)}
to{transform:scale(1.065)translate(.5%,-.4%)}
}
.rsvp-section{isolation:isolate;background-image:none;animation:none}
.rsvp-background{z-index:-1;pointer-events:none;position:absolute;inset:0;overflow:hidden}
.rsvp-background:before{content:"";will-change:transform;background:url(/assets/wedding/rsvp.jpg) 50%/cover no-repeat;animation:18s ease-in-out -6s infinite alternate site-image-breathe;position:absolute;inset:-4%}
.transition-flower{animation:16s ease-in-out infinite alternate site-image-breathe}
.transition-card{isolation:isolate;background-color:#0003;background-image:none;position:relative}
.transition-card:before{content:"";z-index:-1;will-change:transform;pointer-events:none;background:url(/assets/wedding/transition-glass.jpg) 50%/cover no-repeat;animation:16s ease-in-out infinite alternate site-image-breathe;position:absolute;inset:-4%}
@media (width<=760px){.site-shell>.info-section{min-height:0}
.info-photo{height:62vh;position:relative;top:auto}
.info-row{grid-template-columns:62px minmax(0,1fr)}
.info-content article>p{font-size:16px;line-height:1.53}
#stay{scroll-margin-top:24px}
}
@media (prefers-reduced-motion:reduce){.photo-panel:before,.rsvp-background:before,.transition-card:before,.transition-flower{will-change:auto;animation:none!important}
}
.rsvp-page{isolation:isolate;background:#1b1a0b;justify-content:center;align-items:center;min-height:100svh;padding:140px 80px 80px;display:flex}
.rsvp-page-background{z-index:-1;pointer-events:none;position:fixed;inset:0;overflow:hidden}
.rsvp-page-background:before{content:"";background:url(/assets/wedding/rsvp-flower.png) 50%/cover no-repeat;animation:18s ease-in-out infinite alternate site-image-breathe;position:absolute;inset:-4%}
.site-shell>.rsvp-wizard{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);width:100%;max-width:1120px;box-shadow:none;color:#f4ecd6;background:#000000b3;border-radius:40px;align-items:flex-start;gap:60px;padding:80px 60px;display:flex;position:relative;top:auto}
.wizard-arrows{flex-direction:column;flex:0 0 80px;gap:32px;display:flex}
.wizard-arrow{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:#dbdbdb;text-shadow:0 1px 1px #fff,0 3px 2px #222;background:#8c928b40;border:1.75px solid #a0b086a6;border-radius:50%;place-items:center;width:80px;height:80px;font-size:38px;transition:transform .7s,opacity .3s;display:grid;box-shadow:inset 0 -4px #ffffff59,inset 0 10px 6px #ffffff40,inset 0 4px #ffffff80,0 18px 21px -6px #6267624d}
.wizard-arrow:hover:not(:disabled){transform:translateY(2px)}
.wizard-arrow:disabled{opacity:.32}
.wizard-question{flex:1;min-width:0}
.wizard-question header{justify-content:space-between;align-items:center;gap:24px;display:flex}
.wizard-question h1,.rsvp-complete h1{letter-spacing:1px;outline:none;margin:0;font-family:Kapakana,cursive;font-size:50px;font-weight:400;line-height:1.2}
.wizard-progress{flex-shrink:0;display:flex}
.wizard-progress img{object-fit:contain;width:20px;height:20px}
.wizard-options{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;min-height:278px;margin-top:24px;display:flex}
.chrome-option{color:#fff;background:0 0;border:1px solid #0000;border-radius:24px;flex:1;min-width:0;padding:0 8px;transition:background .3s,border-color .3s,transform .5s;position:relative}
.chrome-option:hover{background:#ffffff09;transform:translateY(-3px)}
.chrome-option.selected{background:#d2e2e90e;border-color:#ecf3f573}
.chrome-option img{object-fit:contain;max-width:100%;height:auto;margin:auto;display:block}
.option-selection{color:#f4ecd6;height:22px;font:16px Karla,sans-serif;display:block}
.chrome-type{letter-spacing:-1px;color:#0000;-webkit-text-stroke:.65px #dae4e9cc;filter:drop-shadow(1px 2px #171c22)drop-shadow(-1px -1px #ffffffa6)drop-shadow(2px 5px 3px #000);background:linear-gradient(165deg,#fbffff 2%,#eef3f5 12%,#747d84 18%,#161b20 23%,#f8ffff 28%,#fff 32%,#657078 36%,#080d12 41%,#dce7ec 45%,#fff 49%,#75848b 54%,#171c20 59%,#fff 63%,#d0d9dc 68%,#303b43 73%,#f7ffff 79%,#9ba5ad 86%,#fff 95%);-webkit-background-clip:text;background-clip:text;font-family:Kapakana,cursive;font-size:clamp(70px,8vw,132px);font-weight:400;line-height:1.25}
.options-guests .chrome-type,.options-castle .chrome-type{font-size:clamp(55px,6.5vw,100px)}
.options-diet{justify-content:flex-start;gap:12px 20px}
.options-diet .chrome-option{flex:0 calc(50% - 10px)}
.options-diet .chrome-type{font-size:clamp(50px,5.3vw,78px)}
.wizard-hint{color:#d0ccbf;margin:16px 0 0;font-size:16px;line-height:1.5}
.wizard-written{min-height:278px;margin-top:24px}
.wizard-written textarea{resize:vertical;caret-color:#fff;border:0;border-bottom:1px solid #ffffff40;border-radius:0;outline:none;width:100%;min-height:210px;padding:20px 0;font-size:clamp(36px,4.5vw,64px);display:block}
.wizard-written textarea::placeholder{color:#b5b9bc;-webkit-text-stroke:0;opacity:.55}
.wizard-written textarea:focus{border-bottom-color:#fff}
.wizard-question footer{color:#c8c7c1;justify-content:space-between;align-items:center;gap:20px;margin-top:24px;font-size:14px;display:flex}
.wizard-continue,.rsvp-complete a{color:#fff;background:#ffffff14;border:1px solid #ffffff4d;border-radius:999px;justify-content:center;align-items:center;min-height:44px;padding:10px 24px;font-size:16px;text-decoration:none;display:inline-flex}
.wizard-continue:disabled{opacity:.35}
.wizard-error{color:#ffd9cf;font-size:16px}
.rsvp-complete{text-align:center;width:100%;padding:40px 0}
.rsvp-complete p{margin:24px 0;font-size:20px}
.rsvp-page button:focus-visible,.rsvp-page a:focus-visible{outline-offset:5px;outline:2px solid #fff}
@media (width<=1000px){.rsvp-page{padding:120px 32px 80px}
.site-shell>.rsvp-wizard{gap:32px;padding:48px 32px}
.wizard-question header{flex-direction:column;align-items:flex-start}
.wizard-arrows{flex-basis:64px}
.wizard-arrow{width:64px;height:64px}
}
@media (width<=760px){.rsvp-page{align-items:center;padding:32px 16px 100px}
.site-shell>.rsvp-wizard{border-radius:28px;flex-direction:column;gap:20px;padding:28px 20px}
.wizard-arrows{flex-direction:row;flex-basis:auto;gap:16px}
.wizard-arrow{width:48px;height:48px;font-size:25px}
.wizard-question{width:100%}
.wizard-question h1,.rsvp-complete h1{font-size:40px}
.wizard-question header{gap:12px}
.wizard-progress img{width:16px;height:16px}
.wizard-options{gap:8px;min-height:180px}
.chrome-option{border-radius:16px;padding:0 4px}
.chrome-type{font-size:80px}
.options-guests .chrome-type,.options-castle .chrome-type{font-size:48px}
.options-diet .chrome-type{font-size:45px}
.wizard-written{min-height:210px}
.wizard-written textarea{min-height:180px;font-size:42px}
.wizard-question footer{margin-top:16px}
}
@media (prefers-reduced-motion:reduce){.rsvp-page-background:before{animation:none}
}
.wedding-nav{z-index:9000;pointer-events:auto;isolation:isolate;justify-content:center;align-items:center;width:max-content;max-width:calc(100vw - 24px);display:flex;position:fixed;top:40px;left:50%;transform:translate(-50%)}
.wedding-nav a{-webkit-backdrop-filter:blur(18px)saturate(1.5);letter-spacing:.28px;color:#dbdbdb;white-space:nowrap;pointer-events:auto;background:#2401004d;border:1px solid #ffffff26;border-radius:1000px;justify-content:center;align-items:center;min-height:56px;padding:16px 20px;font:400 28px/24px Karla,sans-serif;text-decoration:none;transition:background .3s;display:flex}
.wedding-nav a:hover,.wedding-nav a[aria-current]{color:#fff;background:#24010099}
.wedding-nav a:focus-visible{outline-offset:3px;outline:2px solid #fff}
#program,#info,#faq,#stay{scroll-margin-top:120px}
.rsvp-page{padding:136px 80px 80px}
.site-shell>.rsvp-wizard{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);min-height:352px}
.wizard-options{justify-content:flex-start;align-items:flex-start;gap:12px;min-height:0;margin-top:24px}
.wizard-options .chrome-option{-webkit-backdrop-filter:blur(2px)saturate(1.3);backdrop-filter:blur(2px)saturate(1.3);background:#8c928b6b;border:1.759px solid #dee8dcb3;border-radius:84px;flex:0 auto;justify-content:center;align-items:center;gap:8px;min-height:96px;padding:32px 40px;display:flex;box-shadow:inset 0 -4.397px #ffffff59,inset 0 9.673px 6.244px #ffffff40,inset 0 4.397px #e2dbdb80,0 17.587px 21.105px #6267624d}
.answer-type,.wizard-written .answer-input{letter-spacing:2.5px;text-transform:uppercase;color:#fffc;text-shadow:0 3.517px 11.872px #00000040,0 .879px #0000001a,0 1.759px 3.517px #00000026;filter:none;-webkit-text-stroke:0;background-clip:initial;font-family:Karla,sans-serif;font-size:20px;font-weight:800;line-height:1.4}
.chrome-option .answer-check{flex-shrink:0;width:24px;max-width:none;height:24px;margin:0}
.wizard-written{min-height:0}
.wizard-written .answer-input{resize:vertical;background:#8c928b6b;border:1.759px solid #dee8dcb3;border-radius:48px;height:96px;min-height:96px;margin-top:16px;padding:32px 40px;box-shadow:inset 0 -4px #ffffff59,inset 0 10px 6px #ffffff40,inset 0 4px #ffffff80}
.wizard-written .answer-input::placeholder{color:#ffffffa6;opacity:1}
.wizard-progress{gap:6px}
.progress-dot{background:#ffffff40;border-radius:50%;width:14px;height:14px;display:block}
.progress-dot.current{background:#dbdbdb}
.wizard-arrow{isolation:isolate;-webkit-backdrop-filter:blur(3px)saturate(1.7);background:radial-gradient(at 50% 0,#ffffff6b,#0000 60%),#8c928b33;border-color:#a0b192cc;position:relative;overflow:hidden;box-shadow:inset 0 -4.397px #ffffff59,inset 0 9.673px 6.244px #ffffff40,inset 0 4.397px #ffffff80,0 17.587px 21.105px -6.156px #6267624d}
.wizard-arrow:before{content:"";z-index:-1;border-radius:inherit;pointer-events:none;background:radial-gradient(at 50% 7%,#0000 15%,#ffffff40 95%);position:absolute;inset:5%}
.wizard-arrow:after{content:"";border-radius:inherit;pointer-events:none;border:1px solid #ffffff45;position:absolute;inset:1px}
.step-arrow-art{pointer-events:none;max-width:none;display:block}
.previous-art{transform:rotate(180deg)}
@media (width<=760px){.wedding-nav{top:max(12px,env(safe-area-inset-top));width:calc(100vw - 16px);max-width:calc(100vw - 16px);bottom:auto}
.wedding-nav a{letter-spacing:0;flex:1;min-height:44px;padding:10px clamp(5px,1.4vw,12px);font-size:clamp(10px,2.7vw,16px);line-height:20px}
.rsvp-page{padding:88px 16px 32px}
.wizard-options .chrome-option{min-height:68px;padding:20px 24px}
.answer-type,.wizard-written .answer-input{letter-spacing:2px;font-size:16px}
.wizard-written .answer-input{border-radius:32px;height:112px;min-height:80px;padding:24px}
.progress-dot{width:10px;height:10px}
.wizard-progress{gap:5px}
#program,#info,#faq,#stay{scroll-margin-top:80px}
}
body:has(.gate,.photo-stack-transition,.transition-screen) .wedding-nav{display:none}
.gate-form{gap:8px;width:min(585px,90vw);height:83px;padding:12px 12px 12px 32px}
.gate-form input{letter-spacing:.84px;height:56px;font:400 28px/24px Karla,sans-serif}
.gate-form input::placeholder{color:#d2d2d2cc}
.gate-form button{letter-spacing:.28px;flex:none;gap:8px;height:59px;padding:16px 20px 16px 32px;font:400 28px/24px Karla,sans-serif}
.gate-form .arrow-icon{flex-basis:27px;width:27px;height:27px}
.wizard-written .answer-input{letter-spacing:.84px;text-transform:none;text-shadow:none;color:#fff;-webkit-backdrop-filter:blur(3px)saturate(1.7);background:linear-gradient(120deg,#b6ced133,#00000080 48%,#a3b8b840);border:1px solid #ddefef59;border-radius:48px;height:112px;min-height:96px;padding:28px 32px;font:400 28px/1.3 Karla,sans-serif;box-shadow:inset 1px 1px 1px #e6fcff80,inset -1px -1px 1px #d1e7e74d,0 8px 28px #0000001f}
.wizard-written .answer-input:focus-visible{outline-offset:3px;outline:2px solid #eefeffcc}
.playlist-helper a{color:#fff;text-underline-offset:4px;text-decoration:underline}
.photo-stack-transition{isolation:isolate;background:#173d50;position:fixed;inset:0;overflow:hidden}
.entrance-photo-reel{place-items:center;display:grid;position:absolute;inset:0}
.entrance-photo{aspect-ratio:497/581;opacity:0;width:min(497px,76vw,60svh);transform:translate(var(--photo-x),var(--photo-y)) rotate(var(--photo-angle));will-change:transform,opacity;background:linear-gradient(139.456deg,#fff,#e9e9e9);animation:.58s cubic-bezier(.16,1,.3,1) both polaroid-land;position:absolute;box-shadow:0 4px 20px #0004}
.polaroid-picture{z-index:1;background-position:50%;background-repeat:no-repeat;background-size:cover;display:block;position:absolute;inset:4.13081% 4.62777% 18.4165%}
@keyframes polaroid-land{0%{opacity:0;transform:translate(calc(var(--photo-x) + 8px),calc(var(--photo-y) - 24px)) rotate(calc(var(--photo-angle) - 4deg)) scale(1.07)}
30%{opacity:1}
to{opacity:1;transform:translate(var(--photo-x),var(--photo-y)) rotate(var(--photo-angle)) scale(1)}
}
.skip-photo-transition{z-index:30;color:#fff;background:#240100aa;border:1px solid #fff6;border-radius:999px;padding:12px 20px;font:16px Karla,sans-serif;position:absolute;bottom:24px;right:24px}
@media (width<=760px){.gate-form{height:68px;padding:8px 8px 8px 20px}
.gate-form input{height:50px;font-size:clamp(16px,4.2vw,24px)}
.gate-form button{height:50px;padding:12px 14px;font-size:18px}
.gate-form .arrow-icon{flex-basis:23px;width:23px;height:23px}
.wizard-written .answer-input{border-radius:36px;padding:24px;font-size:20px}
}
@media (prefers-reduced-motion:reduce){.entrance-photo{opacity:1;animation:none}
.photo-stack-transition .gate-background{animation:none}
}
.rsvp-page{--input-glass:linear-gradient(145deg,#ffffff12 0%,#ffffff03 38%,#00000016 66%,#ffffff0a 100%);--input-edge:inset 0 1px 0 #ffffff75,inset 1px 0 0 #ffffff30,inset 0 -1px 0 #ffffff25,inset -1px 0 0 #0002,0 5px 16px #00000018}
.wizard-options .chrome-option,.wizard-written .answer-input,.wizard-arrow,.wizard-continue{isolation:isolate;background:var(--input-glass);box-shadow:var(--input-edge);-webkit-backdrop-filter:blur(8px)saturate(1.65);border:1px solid #ffffff20;transition:background .4s,box-shadow .4s,transform .4s cubic-bezier(.2,.8,.2,1);position:relative}
.wizard-options .chrome-option{border-radius:83.541px;min-height:92px;padding:32px 40px;overflow:hidden}
.wizard-options .chrome-option:before{content:"";z-index:-2;border-radius:inherit;filter:blur(6px);opacity:.18;pointer-events:none;background:url(/assets/wedding/rsvp-flower.png) 48% 47%/850px;position:absolute;inset:-18%;transform:scale(1.12,1.3)}
.wizard-options .chrome-option:after{content:"";z-index:-1;border-radius:inherit;pointer-events:none;background:linear-gradient(125deg,#ffffff0d,#0000 35%,#0002 70%,#ffffff12);position:absolute;inset:0;box-shadow:inset 0 1px 1px #fff5,inset 0 -1px 1px #ffffff20}
.wizard-options .chrome-option.selected{background:#00000080;border-color:#ffffff10;box-shadow:inset 0 1px #fff2,inset 0 -1px #ffffff10,0 5px 16px #00000020}
.wizard-options .chrome-option.selected:before{opacity:.05}
.wizard-options .chrome-option:hover{box-shadow:var(--input-edge),0 0 16px #ffffff08;transform:translateY(-1px)}
.wizard-options .chrome-option:active,.wizard-arrow:active:not(:disabled){transform:scale(.98)}
.answer-type{letter-spacing:2.5px;color:#fffc;text-transform:uppercase;font:800 20px/1.4 Karla,sans-serif}
.wizard-written .answer-input{letter-spacing:2.5px;text-transform:uppercase;color:#fffc;caret-color:#fff;text-shadow:0 3.517px 11.872px #00000040;border-radius:48px;height:112px;min-height:96px;padding:32px 40px;font:800 20px/1.4 Karla,sans-serif}
.wizard-written .answer-input::placeholder{color:#fff9}
.wizard-arrow:before{background:radial-gradient(at 20% 0,#ffffff18,#0000 65%);inset:0}
.wizard-arrow:after{border:0;box-shadow:inset 0 1px #ffffff40}
.wizard-options .chrome-option:focus-visible,.wizard-written .answer-input:focus-visible{outline-offset:4px;outline:2px solid #fff1d4}
@media (width<=760px){.wizard-options .chrome-option{min-height:68px;padding:20px 24px}
.answer-type,.wizard-written .answer-input{letter-spacing:2px;font-size:16px}
.wizard-written .answer-input{border-radius:36px;padding:24px}
}
@media (prefers-reduced-motion:reduce){.wizard-options .chrome-option,.wizard-written .answer-input,.wizard-arrow,.wizard-continue{transition:none}
}
.wizard-arrow{flex-shrink:0;justify-content:center;align-items:center;padding:0;display:flex}
.wizard-arrow .step-arrow-art{flex:none;margin:0;transition:transform .65s cubic-bezier(.22,.61,.36,1),filter .4s;transform:translateY(4px)}
.wizard-arrow .previous-art{transform:rotate(180deg)translateY(4px)}
@media (hover:hover){.wizard-arrow:hover:not(:disabled){box-shadow:var(--input-edge),0 4px 22px #ffffff10;background-color:#ffffff12;transform:translateY(-2px)}
.wizard-arrow.next:hover:not(:disabled) .step-arrow-art{filter:brightness(1.4);transform:translate(1.5px,5.5px)}
.wizard-arrow.previous:hover:not(:disabled) .step-arrow-art{filter:brightness(1.4);transform:translate(-1.5px,-1.5px)rotate(180deg)translateY(4px)}
.wizard-options .chrome-option:hover{background-color:#ffffff12;transform:translateY(-2px)}
.wizard-written .answer-input:hover{box-shadow:var(--input-edge),0 0 18px #ffffff0d;border-color:#fff5}
}
.photo-panel:before{animation:13s ease-in-out infinite alternate homepage-flower-breathe;inset:-7%}
.info-photo:before{animation-duration:16s;animation-delay:-4s}
.faq-photo:before{animation-duration:15s;animation-delay:-8s}
@keyframes homepage-flower-breathe{0%{transform:scale(1)translate(-1%,.7%)rotate(-.5deg)}
to{transform:scale(1.1)translate(1.2%,-.8%)rotate(.5deg)}
}
.motion-reveal{opacity:0;transition:opacity .85s,transform .85s cubic-bezier(.2,.7,.2,1);transform:translateY(22px)}
.motion-reveal.motion-visible{opacity:1;transform:translateY(0)}
.faq-item p{animation:.4s both faq-copy-arrive}
@keyframes faq-copy-arrive{0%{opacity:0;transform:translateY(6px)}
to{opacity:1;transform:translateY(0)}
}
@media (prefers-reduced-motion:reduce){.motion-reveal{opacity:1;transition:none;transform:none}
.photo-panel:before,.faq-item p{animation:none}
.wizard-arrow .step-arrow-art{transition:none}
}
.entrance-photo{aspect-ratio:auto;height:min(581px,88.8451vw,70.1408svh)}
.section-title span{transform-origin:50% 55%;will-change:transform;display:inline-block}
@media (hover:hover) and (prefers-reduced-motion:no-preference){.section-title:hover span{animation:.7s cubic-bezier(.22,.61,.36,1) both title-letter-turn;animation-delay:calc(var(--letter-index) * 65ms)}
}
@keyframes title-letter-turn{0%{transform:rotateY(0)}
to{transform:rotateY(360deg)}
}
body:has(.theatre-scroll) .wedding-nav{display:none}
.theatre-scroll{color:#111;cursor:auto;background:#e4e4e4;height:260svh}
.theatre-stage{isolation:isolate;height:100svh;position:sticky;top:0;overflow:hidden}
.theatre-scene{transform:scale(calc(1 + var(--journey)*3));transform-origin:50% 42%;opacity:calc(1 - max(0,var(--journey) - .75)*4);will-change:transform;position:absolute;inset:0}
.theatre-arch{object-fit:cover;width:100%;height:100%;position:absolute}
.theatre-person{object-fit:contain;filter:drop-shadow(0 12px 9px #0003);width:36%;height:66%;position:absolute;bottom:5%}
.theatre-left{transform:translateX(calc(var(--journey)*-18vw));left:10%}
.theatre-right{transform:translateX(calc(var(--journey)*18vw));right:10%}
.theatre-bowl{width:20%;transform:translateY(calc(var(--journey)*15vh));position:absolute;bottom:28%;left:40%}
.theatre-copy{text-align:center;pointer-events:none;width:100%;opacity:calc(1 - var(--journey)*2);color:#faf7ee;text-shadow:0 2px 12px #000;position:absolute;top:12%;left:0}
.theatre-copy p{letter-spacing:3px;font-size:13px}
.theatre-copy h1{margin:12px;font:400 clamp(45px,6vw,90px)/.95 Kapakana,cursive}
.theatre-scroll-hint{color:#111;letter-spacing:2px;background:#e4e4e4;border:1px solid #111;border-radius:999px;padding:14px 24px;font-size:12px;text-decoration:none;position:absolute;bottom:22px;left:50%;transform:translate(-50%);cursor:pointer!important}
.entrance-photo{background:linear-gradient(125deg,#fffef8,#eeeae1 75%,#fffdf7);border:1px solid #d5d1c8;border-radius:2px;width:min(310px,40vw,42svh);height:min(362px,46.76vw,49.1svh);box-shadow:1px 2px 2px #0004,3px 8px 14px #0004,12px 22px 35px #0003}
.entrance-photo:after{content:"";pointer-events:none;background:linear-gradient(120deg,#ffffff18,#0000 40%,#00000009);position:absolute;inset:0;box-shadow:inset 0 0 2px #877d6350}
.polaroid-picture{filter:saturate(.9)contrast(.97);box-shadow:inset 0 1px 3px #0008}
@media (width<=760px){.theatre-person{width:48%;height:52%;bottom:12%}
.theatre-left{left:-3%}
.theatre-right{right:-3%}
.theatre-copy{top:17%}
.theatre-bowl{width:26%;bottom:35%;left:37%}
}
@media (prefers-reduced-motion:reduce){.theatre-scene,.theatre-left,.theatre-right,.theatre-bowl{transform:none}
.theatre-scene{opacity:1}
}

/* Liquid-glass invitation surface. */
.transition-card{
  isolation:isolate;
  overflow:hidden;
  background:
    radial-gradient(ellipse at 15% 12%,#ffffff3d 0 10%,#ffffff0c 32%,transparent 54%),
    radial-gradient(ellipse at 88% 82%,#72d4e438 0 12%,transparent 48%),
    linear-gradient(135deg,#dff9ff29,#315c6a1f 45%,#061d2752);
  border:1px solid #eafffff0;
  -webkit-backdrop-filter:blur(22px) saturate(1.55) contrast(1.06);
  backdrop-filter:blur(22px) saturate(1.55) contrast(1.06);
  box-shadow:
    inset 2px 2px 2px #ffffffb8,
    inset -2px -2px 3px #103d5060,
    inset 0 20px 38px #ffffff16,
    0 30px 90px #000a0f47,
    0 0 45px #b8efff20;
}
.transition-card:before{
  z-index:0;
  inset:-12%;
  opacity:.72;
  filter:blur(7px) saturate(1.35) contrast(.96);
  background:
    radial-gradient(circle at 25% 38%,#d9f8ff66 0 8%,transparent 26%),
    radial-gradient(circle at 76% 62%,#4ca6bd4d 0 12%,transparent 32%),
    url(/assets/wedding/transition-glass.jpg) 50%/cover no-repeat;
  animation:liquid-refraction 12s cubic-bezier(.45,.05,.55,.95) infinite alternate;
}
.transition-card:after{
  content:"";
  z-index:1;
  pointer-events:none;
  position:absolute;
  inset:-38%;
  opacity:.8;
  mix-blend-mode:screen;
  background:
    radial-gradient(ellipse at 32% 42%,#ffffff6b 0 4%,#c7f5ff25 14%,transparent 34%),
    radial-gradient(ellipse at 69% 58%,#ffffff30 0 5%,transparent 27%),
    conic-gradient(from 215deg at 54% 48%,transparent 0 28%,#d9fbff29 35%,transparent 44% 100%);
  filter:blur(18px);
  animation:liquid-sheen 9s ease-in-out infinite alternate;
}
.transition-card>*{z-index:2;position:relative}
@keyframes liquid-refraction{
  0%{transform:scale(1.04) translate(-1.8%,-1%) rotate(-.5deg);border-radius:44% 56% 48% 52%/53% 43% 57% 47%}
  45%{transform:scale(1.1,1.05) translate(1.4%,-.2%) rotate(.35deg);border-radius:53% 47% 56% 44%/44% 56% 46% 54%}
  100%{transform:scale(1.07,1.12) translate(-.3%,1.5%) rotate(-.15deg);border-radius:47% 53% 43% 57%/58% 45% 55% 42%}
}
@keyframes liquid-sheen{
  0%{transform:translate(-9%,-5%) rotate(-7deg) scale(.92)}
  48%{transform:translate(7%,2%) rotate(3deg) scale(1.08)}
  100%{transform:translate(-1%,8%) rotate(9deg) scale(1.02)}
}
@media (prefers-reduced-motion:reduce){
  .transition-card:before,.transition-card:after{animation:none}
}

/* Figma node 246:40 — floating appearance and accessibility controls. */
.preference-controls{
  z-index:11000;
  position:fixed;
  top:auto;
  right:18px;
  bottom:18px;
  width:218px;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:8px;
  transform:scale(.5);
  transform-origin:right bottom;
  color:#fff;
  font-family:Karla,Arial,sans-serif;
}
.preference-row{
  width:218px;
  min-height:66px;
  padding:5px;
  display:flex;
  align-items:center;
  border:1px solid rgba(255,255,255,.28);
  border-radius:100px;
  background:rgba(27,27,27,.82);
  -webkit-backdrop-filter:blur(18px) saturate(1.35);
  backdrop-filter:blur(18px) saturate(1.35);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 8px 24px rgba(0,0,0,.2);
}
.preference-palette{width:180px}
.preference-option{
  flex:1 1 0;
  align-self:stretch;
  min-width:0;
  margin:0;
  padding:0 12px;
  color:rgba(255,255,255,.6);
  text-transform:uppercase;
  white-space:nowrap;
  background:rgba(255,255,255,.01);
  border:1px solid transparent;
  border-radius:83.541px;
  font:800 12px/1.4 Karla,Arial,sans-serif;
  letter-spacing:1.5px;
  text-shadow:0 2px 7px rgba(0,0,0,.25),0 1px 2px rgba(0,0,0,.15);
  opacity:.8;
  transition:color .22s,background .22s,border-color .22s,box-shadow .22s,transform .22s;
}
.preference-language .preference-option:first-child{flex-grow:1.13}
.preference-language .preference-option:last-child{flex-grow:.87}
.preference-option.selected{
  color:#fff;
  background:rgba(255,255,255,.05);
  border-color:rgba(255,255,255,.46);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 2px 10px rgba(0,0,0,.12);
}
.preference-option:hover{color:#fff;background:rgba(255,255,255,.035)}
.preference-option:active{transform:scale(.97)}
.preference-option:focus-visible{outline:2px solid #fff1d4;outline-offset:2px}
@media (min-width:761px){
  .wedding-nav{transform:translateX(-50%) scale(.7);transform-origin:top center}
}
@media (max-width:760px){
  .preference-controls{right:10px;bottom:10px}
}
@media (prefers-reduced-motion:reduce){.preference-option{transition:none}}

/* Cursor-driven liquid refraction over the photographic panels. */
.liquid-filter-defs{position:fixed;width:0;height:0;pointer-events:none}
.photo-panel h2{z-index:3}
.photo-panel:before{transition:filter .5s ease,transform .7s ease}
.photo-liquid-field{
  z-index:2;
  position:absolute;
  inset:0;
  overflow:hidden;
  pointer-events:none;
  opacity:0;
  transition:opacity .35s ease;
}
.photo-liquid-field:before{
  content:"";
  position:absolute;
  left:var(--liquid-x,-200px);
  top:var(--liquid-y,-200px);
  width:270px;
  height:190px;
  border-radius:63% 37% 68% 32% / 44% 62% 38% 56%;
  transform:translate(-50%,-50%) rotate(var(--liquid-angle,0deg)) scaleX(var(--liquid-stretch,1)) scale(.76);
  background:
    radial-gradient(ellipse at 22% 28%,rgba(255,255,255,.42),transparent 25%),
    radial-gradient(ellipse at 67% 42%,rgba(112,224,255,.18),transparent 38%),
    radial-gradient(ellipse at 46% 74%,rgba(223,126,255,.16),transparent 44%),
    linear-gradient(116deg,transparent 5%,rgba(255,255,255,.13) 38%,rgba(56,196,211,.12) 61%,transparent 91%);
  -webkit-backdrop-filter:blur(3.2px) saturate(2.45) contrast(1.15) hue-rotate(8deg);
  backdrop-filter:blur(3.2px) saturate(2.45) contrast(1.15) hue-rotate(8deg);
  box-shadow:
    inset 18px 12px 32px rgba(255,255,255,.11),
    inset -22px -18px 35px rgba(22,79,113,.14),
    0 0 30px rgba(177,235,255,.1);
  mix-blend-mode:screen;
  filter:blur(.2px);
  opacity:0;
  transition:transform .38s cubic-bezier(.16,.84,.3,1),opacity .25s ease;
  animation:organic-refraction 2.7s ease-in-out infinite alternate;
  will-change:left,top,transform;
}
.photo-liquid-field:after{
  content:"";
  position:absolute;
  left:var(--liquid-x,-200px);
  top:var(--liquid-y,-200px);
  width:150px;
  height:230px;
  border-radius:38% 62% 31% 69% / 67% 34% 66% 33%;
  background:linear-gradient(147deg,rgba(255,255,255,.18),rgba(105,224,255,.1) 38%,rgba(255,120,222,.09) 66%,transparent 86%);
  filter:blur(12px) saturate(1.8);
  mix-blend-mode:color-dodge;
  transform:translate(-30%,-54%) rotate(calc(var(--liquid-angle,0deg) + 34deg)) scaleY(var(--liquid-stretch,1));
  opacity:0;
  transition:opacity .25s;
  animation:organic-caustic 3.4s ease-in-out infinite alternate;
}
.photo-panel.is-liquid:before{
  filter:url(#photo-liquid-distortion) saturate(1.12) brightness(1.035);
  animation-play-state:paused;
}
.photo-panel.is-liquid .photo-liquid-field{opacity:1}
/* Keep the distortion and organic wake, but remove the bright pointer-centred halo. */
.photo-liquid-field:before,
.photo-liquid-field:after{display:none}
.photo-liquid-wake{
  position:absolute;
  width:76px;
  height:44px;
  border:0;
  border-radius:68% 32% 61% 39% / 43% 67% 33% 57%;
  background:linear-gradient(100deg,rgba(255,255,255,.22),rgba(83,222,244,.14) 44%,rgba(224,111,255,.1),transparent 86%);
  filter:blur(8px) saturate(2.1);
  mix-blend-mode:screen;
  transform:translate(-50%,-50%) rotate(var(--wake-angle,0deg)) scaleX(var(--wake-stretch,1)) scale(.45);
  opacity:0;
  animation:organic-wake 1.05s cubic-bezier(.12,.55,.22,1) forwards;
}
@keyframes organic-refraction{
  0%{border-radius:63% 37% 68% 32%/44% 62% 38% 56%;filter:blur(.2px) hue-rotate(-8deg)}
  52%{border-radius:37% 63% 42% 58%/61% 35% 65% 39%;filter:blur(1px) hue-rotate(18deg)}
  100%{border-radius:55% 45% 31% 69%/36% 67% 33% 64%;filter:blur(.4px) hue-rotate(34deg)}
}
@keyframes organic-caustic{
  0%{border-radius:38% 62% 31% 69%/67% 34% 66% 33%;margin:-10px 0 0 -18px}
  100%{border-radius:66% 34% 72% 28%/35% 62% 38% 65%;margin:18px 0 0 24px}
}
@keyframes organic-wake{
  0%{opacity:.7;transform:translate(-50%,-50%) rotate(var(--wake-angle,0deg)) scaleX(var(--wake-stretch,1)) scale(.45)}
  55%{opacity:.32;border-radius:34% 66% 28% 72%/61% 37% 63% 39%}
  100%{opacity:0;transform:translate(-50%,-50%) rotate(calc(var(--wake-angle,0deg) + 22deg)) scaleX(var(--wake-stretch,1)) scale(2.8,2.2)}
}
@media (hover:none),(pointer:coarse){.photo-liquid-field{display:none}}
@media (prefers-reduced-motion:reduce){
  .photo-panel:before{transition:none}
  .photo-panel.is-liquid:before{filter:none}
  .photo-liquid-field{display:none}
}

/* Dress-code visual aside, revealed by pointer hover or keyboard focus. */
.dress-code-reveal{
  position:relative;
  cursor:help;
  text-underline-offset:.14em;
  outline:none;
}
.dress-code-preview{
  z-index:30;
  position:absolute;
  left:50%;
  bottom:calc(100% + 16px);
  width:clamp(190px,20vw,270px);
  padding:7px;
  border:1px solid rgba(255,255,255,.64);
  border-radius:20px;
  background:rgba(18,18,18,.54);
  -webkit-backdrop-filter:blur(14px) saturate(1.25);
  backdrop-filter:blur(14px) saturate(1.25);
  box-shadow:0 18px 42px rgba(0,0,0,.42),inset 0 1px rgba(255,255,255,.3);
  opacity:0;
  pointer-events:none;
  transform:translate(-50%,12px) rotate(-2deg) scale(.9);
  transform-origin:50% 100%;
  transition:opacity .2s ease,transform .36s cubic-bezier(.18,.84,.25,1);
}
.dress-code-preview img{
  display:block;
  width:100%;
  height:auto;
  border-radius:14px;
}
.dress-code-reveal:hover .dress-code-preview,
.dress-code-reveal:focus-visible .dress-code-preview{
  opacity:1;
  transform:translate(-50%,0) rotate(-2deg) scale(1);
}
.dress-code-reveal:focus-visible{outline:2px solid var(--blue);outline-offset:4px;border-radius:2px}
@media (max-width:760px){
  .dress-code-preview{left:0;width:min(230px,76vw);transform:translate(0,12px) rotate(-2deg) scale(.9)}
  .dress-code-reveal:hover .dress-code-preview,
  .dress-code-reveal:focus-visible .dress-code-preview{transform:translate(0,0) rotate(-2deg) scale(1)}
}

/* Compact RSVP layout using the site's primary non-cursive face. */
.rsvp-page{
  align-items:flex-start;
  padding:140px 56px 40px;
}
.site-shell>.rsvp-wizard{
  max-width:820px;
  min-height:0;
  gap:22px;
  padding:26px 32px;
  border-radius:32px;
}
.rsvp-page .wizard-arrows{flex-basis:52px;gap:12px}
.rsvp-page .wizard-arrow{width:52px;height:52px}
.rsvp-page .step-arrow-art{width:26px;height:26px}
.wizard-question h1,.rsvp-complete h1{
  font-family:Karla,Arial,sans-serif;
  font-size:clamp(22px,2.4vw,30px);
  font-weight:400;
  line-height:1.15;
  letter-spacing:.02em;
}
.wizard-options,.wizard-written{margin-top:24px}
.rsvp-page .wizard-options .chrome-option{min-height:56px;padding:16px 22px}
.rsvp-page .answer-type{font-size:14px;letter-spacing:1.8px}
.rsvp-page .wizard-written .answer-input{height:68px;min-height:68px;padding:16px 22px;font-size:16px}
.rsvp-page .wizard-hint,.rsvp-page .wizard-error{font-size:13px}
.rsvp-page .wizard-continue{min-height:36px;padding:8px 18px;font-size:14px}
.rsvp-page .progress-dot{width:7px;height:7px}
.rsvp-page .wizard-progress{gap:4px}
@media (max-width:1000px){
  .rsvp-page{padding:124px 32px 32px}
  .site-shell>.rsvp-wizard{gap:20px;padding:24px 26px}
}
@media (max-width:760px){
  .rsvp-page{padding:92px 16px 24px}
  .site-shell>.rsvp-wizard{gap:14px;padding:20px 18px}
  .rsvp-page .wizard-arrows{gap:10px}
  .rsvp-page .wizard-arrow{width:44px;height:44px}
  .rsvp-page .step-arrow-art{width:22px;height:22px}
  .wizard-question h1,.rsvp-complete h1{font-size:24px}
  .wizard-options,.wizard-written{margin-top:18px}
  .rsvp-page .wizard-options .chrome-option{min-height:50px;padding:13px 18px}
  .rsvp-page .answer-type{font-size:13px}
  .rsvp-page .progress-dot{width:5px;height:5px}
  .rsvp-page .wizard-progress{gap:3px}
}

/* The bespoke cursor must stay above every visual and interactive layer. */
.glass-cursor{z-index:2147483647!important}
.cursor-heart{z-index:2147483646!important}

/* Persisted website palettes. Palette 2 is the original design. */
html[data-palette="1"]{
  --cream:#eef5ff;
  --wine:#29264f;
  --black:#17323a;
  --ochre:#55745e;
  --blue:#94c8ff;
}
html[data-palette="1"] body{background:#55745e}
html[data-palette="1"] .rsvp-page{background:#202b48}
html[data-palette="1"] .site-shell>.rsvp-wizard{background:rgba(22,24,49,.76)}
html[data-palette="1"] .photo-panel:before,
html[data-palette="1"] .rsvp-page-background:before{filter:hue-rotate(24deg) saturate(1.18) brightness(.94)}
html[data-palette="1"] .photo-panel.is-liquid:before{filter:url(#photo-liquid-distortion) hue-rotate(24deg) saturate(1.24) brightness(.98)}

html[data-palette="3"]{
  --cream:#393130;
  --wine:#eadfe3;
  --black:#dce7e2;
  --ochre:#eee8ce;
  --blue:#536a84;
}
html[data-palette="3"] body{background:#eee8ce;color:#393130}
html[data-palette="3"] .schedule-card,
html[data-palette="3"] .schedule-row p,
html[data-palette="3"] .schedule-row strong,
html[data-palette="3"] .schedule-row time,
html[data-palette="3"] .info-content,
html[data-palette="3"] .info-content article>p,
html[data-palette="3"] .info-row,
html[data-palette="3"] .faq-content,
html[data-palette="3"] .faq-item,
html[data-palette="3"] .faq-item>button,
html[data-palette="3"] .faq-item p{color:#393130}
html[data-palette="3"] .wedding-nav a{color:#393130;background:rgba(249,244,237,.66);border-color:rgba(57,49,48,.2)}
html[data-palette="3"] .wedding-nav a:hover,
html[data-palette="3"] .wedding-nav a[aria-current]{color:#211b1b;background:rgba(255,255,255,.88)}
html[data-palette="3"] .rsvp-page{background:#e8e1d7}
html[data-palette="3"] .site-shell>.rsvp-wizard{color:#302a29;background:rgba(250,247,240,.8);border:1px solid rgba(62,50,47,.12)}
html[data-palette="3"] .wizard-question h1,
html[data-palette="3"] .rsvp-complete h1,
html[data-palette="3"] .answer-type,
html[data-palette="3"] .wizard-hint,
html[data-palette="3"] .wizard-error{color:#302a29;text-shadow:none}
html[data-palette="3"] .wizard-options .chrome-option,
html[data-palette="3"] .wizard-written .answer-input,
html[data-palette="3"] .wizard-arrow,
html[data-palette="3"] .wizard-continue{color:#302a29;background:rgba(255,255,255,.34);border-color:rgba(48,42,41,.18);box-shadow:inset 0 1px rgba(255,255,255,.8),0 5px 14px rgba(72,58,54,.1)}
html[data-palette="3"] .step-arrow-art{filter:invert(1) brightness(.3)}
html[data-palette="3"] .progress-dot{background:rgba(48,42,41,.25)}
html[data-palette="3"] .progress-dot.current{background:#302a29}
html[data-palette="3"] .photo-panel:before,
html[data-palette="3"] .rsvp-page-background:before{filter:brightness(1.13) saturate(.5) contrast(.88)}
html[data-palette="3"] .photo-panel.is-liquid:before{filter:url(#photo-liquid-distortion) brightness(1.16) saturate(.55) contrast(.9)}

/* The accessibility size preference scales the complete experience consistently. */
html[data-text-size="big"]{overflow-x:hidden}
html[data-text-size="big"] body{zoom:1.16}
html[data-text-size="big"] .preference-controls{zoom:.86207}

/* Small is the intentionally compact RSVP baseline; Big scales it globally. */
.site-shell>.rsvp-wizard{max-width:740px;gap:18px;padding:20px 24px}
.rsvp-page .wizard-arrows{flex-basis:44px;gap:10px}
.rsvp-page .wizard-arrow{width:44px;height:44px}
.rsvp-page .step-arrow-art{width:22px;height:22px}
.wizard-question h1,.rsvp-complete h1{font-size:clamp(20px,2vw,26px)}
.rsvp-page .wizard-options .chrome-option{min-height:46px;padding:12px 18px}
.rsvp-page .answer-type{font-size:12px;letter-spacing:1.5px}
.rsvp-page .wizard-written .answer-input{height:60px;min-height:60px;padding:13px 18px;font-size:14px}
@media (max-width:760px){
  .site-shell>.rsvp-wizard{padding:18px 16px}
  .rsvp-page .wizard-arrow{width:40px;height:40px}
  .wizard-question h1,.rsvp-complete h1{font-size:21px}
  .rsvp-page .wizard-options .chrome-option{min-height:44px;padding:11px 15px}
}
