:root{--ink:#282821;--muted:#77776c;--cream:#fff;--paper:#fff;--gold:#c6a34a;--gold-light:#e6ca65;--blue:#fff;--serif:"Cormorant Garamond",Georgia,serif;--sans:"DM Sans",Arial,sans-serif;--shadow:0 18px 50px rgba(71,65,35,.1)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#fff;color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased}.page-grain{position:fixed;inset:0;pointer-events:none;opacity:.035;z-index:10;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.8'/%3E%3C/svg%3E")}.gate{min-height:100svh;height:100svh;overflow:hidden;position:relative;padding:25px 24px 22px;display:flex;flex-direction:column;justify-content:space-between;background:#fff;transition:opacity .8s ease,transform .9s cubic-bezier(.76,0,.24,1)}.gate.is-opening{opacity:0;transform:translate3d(0,-8%,0);pointer-events:none;position:absolute;inset:0;width:100%;height:100%;min-height:0;z-index:-1}.gate__topline,.gate__footer{display:flex;align-items:center;justify-content:space-between;gap:12px}.gate__topline{justify-content:center;text-align:center}.eyebrow,.overline,.gate__hint,.tap-note,.gate__footer,.music-toggle,.open-button,.dress-code,.text-link,.rsvp-form label,.success-message{font-size:10px;letter-spacing:.2em;text-transform:uppercase}.eyebrow{color:var(--muted)}.music-toggle{border:0;background:transparent;color:var(--ink);padding:6px 0;display:flex;align-items:center;gap:8px;cursor:pointer}.music-toggle__dot{width:7px;height:7px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 4px rgba(198,163,74,.14)}.music-toggle.is-off .music-toggle__dot{background:#a9b1ad;box-shadow:none}.gate__center{text-align:center;margin-top:-24px}.monogram{width:76px;height:76px;border:1px solid var(--gold);border-radius:50%;margin:0 auto 33px;display:grid;place-items:center;font:500 47px/1 var(--serif);font-style:italic;color:var(--gold);position:relative}.monogram:before,.monogram:after{content:"✦";position:absolute;font:10px var(--serif);color:var(--gold);background:var(--cream);padding:0 4px}.monogram:before{top:-5px}.monogram:after{bottom:-5px}.overline{margin:0 0 16px;color:var(--muted)}.gate__title{font:500 clamp(48px,15vw,74px)/.82 var(--serif);letter-spacing:-.04em;margin:0;color:var(--ink)}h1 em,h2 em,h3 em{font-weight:400}.ribbon{height:84px;position:relative;margin:36px auto 14px;max-width:400px;display:flex;align-items:center;justify-content:center}.ribbon__band{height:29px;width:100%;background:linear-gradient(100deg,#ddc675,#f9ebac 47%,#c49e3e 100%);box-shadow:0 6px 10px rgba(111,87,26,.12)}.ribbon__knot{width:40px;height:40px;background:linear-gradient(135deg,#f4dfa0,#c39d3f);position:absolute;transform:rotate(45deg);z-index:2;box-shadow:2px 4px 8px rgba(111,87,26,.16)}.ribbon__knot i{display:block;position:absolute;width:27px;height:24px;border:3px solid rgba(255,249,207,.62);border-radius:50%;top:-13px;left:-10px;transform:rotate(-45deg)}.ribbon__knot i+ i{top:28px;left:25px}.ribbon__tail{position:absolute;width:46%;height:34px;background:linear-gradient(100deg,#c19b3d,#e8d17f);top:49px;z-index:1}.ribbon__tail--left{left:3px;transform:skewY(28deg);clip-path:polygon(0 0,100% 0,74% 100%,0 80%)}.ribbon__tail--right{right:3px;transform:skewY(-28deg);clip-path:polygon(0 0,100% 0,100% 80%,26% 100%)}.ribbon.is-untied .ribbon__band{transform:translate3d(-105%,0,0);transition:transform .65s cubic-bezier(.76,0,.24,1)}.ribbon.is-untied .ribbon__knot{transform:translate3d(0,55px,0) rotate(45deg);opacity:0;transition:transform .55s ease,opacity .4s ease}.ribbon.is-untied .ribbon__tail--left{transform:translate3d(-120%,30px,0) skewY(28deg);transition:transform .7s ease}.ribbon.is-untied .ribbon__tail--right{transform:translate3d(120%,30px,0) skewY(-28deg);transition:transform .7s ease}.gate__hint{color:var(--muted);margin:0}.open-button{margin:32px auto 0;background:var(--ink);color:#fffdf8;border:0;border-radius:50px;padding:16px 20px 16px 25px;display:flex;align-items:center;gap:22px;cursor:pointer;transition:transform .25s,background .25s}.open-button:hover{transform:translate3d(0,-3px,0);background:#3c4c45}.open-button__arrow{font-size:18px;letter-spacing:0}.tap-note{font-size:9px;letter-spacing:.14em;color:#9b9f99;margin:18px 0 0}.gate__footer{font-size:8px;color:#9b9f99}.fine-rule{height:1px;background:#d7d2c5;flex:1}.story{opacity:0;visibility:hidden;transition:opacity 1.1s ease .25s}.story.is-open{opacity:1;visibility:visible}.section{min-height:100svh;padding:90px 24px;position:relative;overflow:hidden}.hero{display:grid;place-items:center;text-align:center;background:#fff}.stars{position:absolute;inset:0;opacity:.4;background-image:radial-gradient(circle,#d2b760 1px,transparent 1.5px),radial-gradient(circle,#fff 1px,transparent 1.5px);background-size:94px 94px,137px 137px;background-position:20px 30px,70px 80px}.halo{position:absolute;border:1px solid rgba(198,163,74,.25);border-radius:50%;width:90vw;height:90vw;max-width:550px;max-height:550px}.halo--one{transform:rotate(24deg) scaleX(.55)}.halo--two{transform:rotate(-30deg) scaleX(.55)}.hero__content{z-index:1}.eyebrow--gold{color:#a4873c}.hero__cross{font-size:28px;color:var(--gold);margin:22px 0}.hero h2,.journey h2,.rsvp h2{font:500 clamp(44px,12vw,72px)/.8 var(--serif);letter-spacing:-.045em;margin:0}.hero h2 em,.journey h2 em,.rsvp h2 em{display:inline-block;margin-top:12px}.baptism-name{display:inline-block;margin:28px 0 12px;border-top:1px solid rgba(198,163,74,.6);border-bottom:1px solid rgba(198,163,74,.6);padding:8px 17px;font:italic 17px var(--serif);color:#876e2e}.baptism-name strong{font-weight:500}.hero__invite{font:italic 19px var(--serif);margin:0;color:var(--muted)}.countdown{display:flex;justify-content:center;align-items:center;gap:10px;margin:42px 0}.countdown div{display:grid;gap:5px;min-width:49px}.countdown strong{font:500 28px/1 var(--serif);color:var(--ink)}.countdown span{font-size:7px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.countdown i{width:3px;height:3px;border-radius:50%;background:var(--gold)}.scroll-cue{color:var(--ink);display:grid;gap:8px;justify-items:center;text-decoration:none;font-size:9px;letter-spacing:.2em;text-transform:uppercase}.scroll-cue b{font-size:20px;font-weight:400;animation:float 2s ease-in-out infinite}@keyframes float{50%{transform:translateY(5px)}}.section--cream{background:var(--cream)}.section__intro{text-align:center;max-width:440px;margin:0 auto 55px}.scripture{font:italic 28px/1.05 var(--serif);margin:23px 0 9px}.scripture__ref{font-size:10px;letter-spacing:.18em;color:var(--gold);text-transform:uppercase}.detail-cards{display:grid;gap:17px;max-width:540px;margin:auto}.detail-card{background:var(--paper);padding:25px 24px 28px;min-height:300px;position:relative;box-shadow:var(--shadow)}.detail-card--blue{background:var(--blue)}.detail-card__number{position:absolute;right:22px;top:20px;font:italic 17px var(--serif);color:var(--gold)}.detail-card__icon{font-size:25px;color:var(--gold);margin-bottom:28px}.detail-card h3{font:500 36px/.86 var(--serif);margin:16px 0 20px;letter-spacing:-.03em}.detail-card h3 em{font-style:italic}.detail-card__meta{font-size:12px;line-height:1.8;color:var(--muted);margin:0}.text-link{display:inline-flex;gap:12px;align-items:center;color:var(--ink);text-decoration:none;margin-top:26px;font-weight:600;font-size:9px}.text-link span{font-size:16px;color:var(--gold)}.dress-code{display:flex;align-items:center;gap:13px;justify-content:center;color:var(--muted);margin-top:53px;font-size:9px}.dress-code p{white-space:nowrap}.dress-code p span{display:block;color:var(--gold);font-size:8px;margin-bottom:7px}.dress-code__line{height:1px;background:#d7d2c5;flex:1}.journey{background:#fffff0;color:var(--ink);display:grid;place-items:center;text-align:center}.journey:after{content:"";position:absolute;inset:20px;border:1px solid rgba(198,163,74,.35);pointer-events:none}.journey__content{max-width:470px}.journey__content .eyebrow{margin-bottom:34px}.journey h2{color:var(--ink)}.journey__copy{font:italic 19px/1.3 var(--serif);max-width:310px;margin:35px auto 50px;color:var(--muted)}.journey__locations{display:grid;grid-template-columns:1fr 30px 1fr;align-items:center;text-align:left}.journey__locations>div{display:flex;gap:10px;align-items:start}.location-pin{font-size:21px;color:var(--gold)}.journey__locations p{margin:0;font:18px/1 var(--serif)}.journey__locations small{display:block;text-transform:uppercase;font:8px var(--sans);letter-spacing:.15em;color:var(--gold);margin-bottom:9px}.location-line{height:1px;background:rgba(198,163,74,.5)}.rsvp__intro{text-align:center;margin-bottom:43px}.rsvp-form{max-width:450px;margin:auto;background:rgba(255,255,255,.55);padding:25px 21px;box-shadow:var(--shadow);border:1px solid rgba(255,255,255,.8)}.rsvp-form label{display:block;color:var(--muted);margin-bottom:21px;font-size:8px;letter-spacing:.15em}.rsvp-form input,.rsvp-form select,.rsvp-form textarea{font:16px var(--serif);color:var(--ink);display:block;width:100%;margin-top:8px;padding:10px 0;border:0;border-bottom:1px solid #d5d3ca;background:transparent;outline:0;border-radius:0}.rsvp-form textarea{resize:vertical}.rsvp-form input:focus,.rsvp-form select:focus,.rsvp-form textarea:focus{border-color:var(--gold)}.optional{font-size:8px;letter-spacing:0;text-transform:none;color:#a5aaa5}.submit-button{background:var(--ink);border:0;color:#fff;padding:16px 20px;width:100%;font:600 10px var(--sans);letter-spacing:.2em;text-transform:uppercase;cursor:pointer;margin-top:4px;transition:background .2s}.submit-button span{font-size:15px;margin-left:9px}.submit-button:hover{background:#3c4c45}.success-message{max-width:450px;text-align:center;margin:25px auto 0;background:#dfece5;padding:25px;color:var(--ink);letter-spacing:.1em}.success-message span{display:block;font-size:22px;color:var(--gold);margin-bottom:10px}.success-message strong{font:italic 27px var(--serif);letter-spacing:0;text-transform:none}.success-message p{font-size:9px;line-height:1.6;margin:8px 0 0}.rsvp__footer{text-align:center;margin-top:75px;color:var(--muted);font:italic 17px var(--serif)}.monogram--small{width:44px;height:44px;font-size:27px;margin:0 auto 17px}.rsvp__footer p{margin:0}.rsvp__footer p span{font:8px var(--sans);letter-spacing:.2em;line-height:3;text-transform:uppercase}.reveal{opacity:0;transform:translate3d(0,24px,0);transition:opacity .8s ease,transform .8s ease}.reveal.is-visible{opacity:1;transform:translate3d(0,0,0)}@media(min-width:700px){.gate{padding:30px 50px 28px}.detail-cards{grid-template-columns:1fr 1fr;max-width:920px}.detail-card{min-height:360px;padding:35px}.section__intro{margin-bottom:70px}.section{padding-left:8%;padding-right:8%}.gate__center{margin-top:-40px}}
.image-intro{min-height:100svh;padding:0 24px 36px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:28px;background:var(--cream);position:relative;overflow:hidden}.image-intro__frame{width:min(100%,430px);position:relative;overflow:hidden;background:#fff;box-shadow:0 22px 70px rgba(56,49,23,.2)}.image-intro__frame:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,31,24,.03) 45%,rgba(20,31,24,.12) 100%);pointer-events:none}.image-intro img{width:100%;height:auto;display:block;object-fit:initial;object-position:initial;transform:none;animation:none}.image-intro__caption{position:relative;z-index:1;color:var(--ink);text-align:center;max-width:430px}.image-intro__caption h2{font:500 clamp(42px,12vw,64px)/.8 var(--serif);letter-spacing:-.045em;margin:16px 0 28px}.image-intro__caption h2 em{font-weight:400}.image-intro__button{margin:0 auto;background:var(--ink);color:#fff}.image-intro__button:hover{background:#3c4c45}.image-intro.is-complete{opacity:0;transform:translate3d(0,-8%,0);pointer-events:none;transition:opacity .7s ease,transform .8s ease;position:absolute;inset:0;width:100%;min-height:0;height:100%;z-index:-1}.image-intro.is-complete+.hero{margin-top:0}.section{min-height:100svh;padding:90px 24px;position:relative;overflow:hidden}.hero{display:grid;place-items:center;text-align:center;background:radial-gradient(circle at 50% 34%,rgba(225,224,193,.6),transparent 34%),linear-gradient(150deg,#fffff0,#f8f7e8 100%)}.stars{position:absolute;inset:0;opacity:.4;background-image:radial-gradient(circle,#d2b760 1px,transparent 1.5px),radial-gradient(circle,#fff 1px,transparent 1.5px);background-size:94px 94px,137px 137px;background-position:20px 30px,70px 80px}.halo{position:absolute;border:1px solid rgba(198,163,74,.25);border-radius:50%;width:90vw;height:90vw;max-width:550px;max-height:550px}.halo--one{transform:rotate(24deg) scaleX(.55)}.halo--two{transform:rotate(-30deg) scaleX(.55)}.hero__content{z-index:1}.eyebrow--gold{color:#a4873c}.hero__cross{font-size:28px;color:var(--gold);margin:22px 0}.hero h2,.journey h2,.rsvp h2{font:500 clamp(44px,12vw,72px)/.8 var(--serif);letter-spacing:-.045em;margin:0}.hero h2 em,.journey h2 em,.rsvp h2 em{display:inline-block;margin-top:12px}.baptism-name{display:inline-block;margin:28px 0 12px;border-top:1px solid rgba(198,163,74,.6);border-bottom:1px solid rgba(198,163,74,.6);padding:8px 17px;font:italic 17px var(--serif);color:#876e2e}.baptism-name strong{font-weight:500}.hero__invite{font:italic 19px var(--serif);margin:0;color:var(--muted)}.countdown{display:flex;justify-content:center;align-items:center;gap:10px;margin:42px 0}.countdown div{display:grid;gap:5px;min-width:49px}.countdown strong{font:500 28px/1 var(--serif);color:var(--ink)}.countdown span{font-size:7px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.countdown i{width:3px;height:3px;border-radius:50%;background:var(--gold)}.scroll-cue{color:var(--ink);display:grid;gap:8px;justify-items:center;text-decoration:none;font-size:9px;letter-spacing:.2em;text-transform:uppercase}.scroll-cue b{font-size:20px;font-weight:400;animation:float 2s ease-in-out infinite}@keyframes float{50%{transform:translateY(5px)}}.section--cream{background:var(--cream)}.section__intro{text-align:center;max-width:440px;margin:0 auto 55px}.scripture{font:italic 28px/1.05 var(--serif);margin:23px 0 9px}.scripture__ref{font-size:10px;letter-spacing:.18em;color:var(--gold);text-transform:uppercase}.detail-cards{display:grid;gap:17px;max-width:540px;margin:auto}.detail-card{background:var(--paper);padding:25px 24px 28px;min-height:300px;position:relative;box-shadow:var(--shadow)}.detail-card--blue{background:var(--blue)}.detail-card__number{position:absolute;right:22px;top:20px;font:italic 17px var(--serif);color:var(--gold)}.detail-card__icon{font-size:25px;color:var(--gold);margin-bottom:28px}.detail-card h3{font:500 36px/.86 var(--serif);margin:16px 0 20px;letter-spacing:-.03em}.detail-card h3 em{font-style:italic}.detail-card__meta{font-size:12px;line-height:1.8;color:var(--muted);margin:0}.text-link{display:inline-flex;gap:12px;align-items:center;color:var(--ink);text-decoration:none;margin-top:26px;font-weight:600;font-size:9px}.text-link span{font-size:16px;color:var(--gold)}.dress-code{display:flex;align-items:center;gap:13px;justify-content:center;color:var(--muted);margin-top:53px;font-size:9px}.dress-code p{white-space:nowrap}.dress-code p span{display:block;color:var(--gold);font-size:8px;margin-bottom:7px}.dress-code__line{height:1px;background:#d7d2c5;flex:1}.journey{background:#fff;color:var(--ink);display:grid;place-items:center;text-align:center}.journey:after{content:"";position:absolute;inset:20px;border:1px solid rgba(198,163,74,.35);pointer-events:none}.journey__content{max-width:470px}.journey__content .eyebrow{margin-bottom:34px}.journey h2{color:var(--ink)}.journey__copy{font:italic 19px/1.3 var(--serif);max-width:310px;margin:35px auto 50px;color:var(--muted)}.journey__locations{display:grid;grid-template-columns:1fr 30px 1fr;align-items:center;text-align:left}.journey__locations>div{display:flex;gap:10px;align-items:start}.location-pin{font-size:21px;color:var(--gold)}.journey__locations p{margin:0;font:18px/1 var(--serif)}.journey__locations small{display:block;text-transform:uppercase;font:8px var(--sans);letter-spacing:.15em;color:var(--gold);margin-bottom:9px}.location-line{height:1px;background:rgba(198,163,74,.5)}.rsvp__intro{text-align:center;margin-bottom:43px}.rsvp-form{max-width:450px;margin:auto;background:rgba(255,255,255,.55);padding:25px 21px;box-shadow:var(--shadow);border:1px solid rgba(255,255,255,.8)}.rsvp-form label{display:block;color:var(--muted);margin-bottom:21px;font-size:8px;letter-spacing:.15em}.rsvp-form input,.rsvp-form select,.rsvp-form textarea{font:16px var(--serif);color:var(--ink);display:block;width:100%;margin-top:8px;padding:10px 0;border:0;border-bottom:1px solid #d5d3ca;background:transparent;outline:0;border-radius:0}.rsvp-form textarea{resize:vertical}.rsvp-form input:focus,.rsvp-form select:focus,.rsvp-form textarea:focus{border-color:var(--gold)}.optional{font-size:8px;letter-spacing:0;text-transform:none;color:#a5aaa5}.submit-button{background:var(--ink);border:0;color:#fff;padding:16px 20px;width:100%;font:600 10px var(--sans);letter-spacing:.2em;text-transform:uppercase;cursor:pointer;margin-top:4px;transition:background .2s}.submit-button span{font-size:15px;margin-left:9px}.submit-button:hover{background:#3c4c45}.success-message{max-width:450px;text-align:center;margin:25px auto 0;background:#dfece5;padding:25px;color:var(--ink);letter-spacing:.1em}.success-message span{display:block;font-size:22px;color:var(--gold);margin-bottom:10px}.success-message strong{font:italic 27px var(--serif);letter-spacing:0;text-transform:none}.success-message p{font-size:9px;line-height:1.6;margin:8px 0 0}.rsvp__footer{text-align:center;margin-top:75px;color:var(--muted);font:italic 17px var(--serif)}.monogram--small{width:44px;height:44px;font-size:27px;margin:0 auto 17px}.rsvp__footer p{margin:0}.rsvp__footer p span{font:8px var(--sans);letter-spacing:.2em;line-height:3;text-transform:uppercase}.reveal{opacity:0;transform:translate3d(0,24px,0);transition:opacity .8s ease,transform .8s ease}.reveal.is-visible{opacity:1;transform:translate3d(0,0,0)}@media(min-width:700px){.gate{padding:30px 50px 28px}.detail-cards{grid-template-columns:1fr 1fr;max-width:920px}.detail-card{min-height:360px;padding:35px}.section__intro{margin-bottom:70px}.section{padding-left:8%;padding-right:8%}.gate__center{margin-top:-40px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}

.image-intro__message{max-width:540px;margin:0 auto 30px;font-size:clamp(16px,4.5vw,23px);line-height:1.35;letter-spacing:.1em}
.detail-card{min-height:0}
.invitation-closing{margin:48px auto 0;text-align:center;color:#876e2e;font:italic 20px var(--serif);letter-spacing:.08em;text-transform:uppercase}
.invitation-closing p{margin:0}

.gift-box{position:relative;display:block;width:min(184px,70vw);height:94px;margin:30px auto 14px;padding:0;border:0;background:transparent;cursor:pointer;perspective:700px;appearance:none;-webkit-appearance:none}
.gift-box:focus-visible{outline:2px solid var(--gold);outline-offset:5px;border-radius:8px}
.gift-box__glow{position:absolute;left:50%;top:3px;width:150px;height:82px;transform:translateX(-50%);background:radial-gradient(ellipse,rgba(255,231,168,.85),rgba(255,231,168,0) 70%);opacity:.22;pointer-events:none}
.gift-box__base{position:absolute;left:50%;bottom:8px;width:128px;height:49px;transform:translateX(-50%);background:linear-gradient(110deg,#a98339 0%,#dec990 12%,#fff8e7 42%,#f6edd9 72%,#b39048 100%);box-shadow:0 11px 18px rgba(75,57,21,.2),inset 0 -4px 0 rgba(104,78,31,.1)}
.gift-box__base:before{content:"";position:absolute;left:0;top:13px;width:100%;height:13px;background:linear-gradient(180deg,#9aaeb5,#627d89 48%,#506b78)}
.gift-box__base:after{content:"";position:absolute;left:50px;top:0;width:28px;height:100%;background:linear-gradient(90deg,#526b79,#9aafb6 50%,#526b79);box-shadow:inset 2px 0 rgba(255,255,255,.2),inset -2px 0 rgba(39,58,66,.14)}
.gift-box__lid{position:absolute;z-index:2;left:50%;top:23px;width:142px;height:20px;transform:translateX(-50%);transform-origin:50% 100%;background:linear-gradient(100deg,#9c7833,#d4bc7c 14%,#fff5d9 48%,#e6d39e 82%,#94702e);box-shadow:0 5px 8px rgba(75,57,21,.2);transition:transform .48s cubic-bezier(.2,.75,.2,1)}
.gift-box__lid:after{content:"";position:absolute;left:57px;top:0;width:28px;height:100%;background:linear-gradient(90deg,#526b79,#9aafb6 50%,#526b79)}
.gift-box__bow{position:absolute;z-index:3;left:50%;top:0;width:72px;height:32px;transform:translateX(-50%);transform-origin:50% 100%}
.gift-box__bow:after{content:"";position:absolute;left:50%;top:12px;width:14px;height:16px;transform:translateX(-50%);border-radius:40%;background:linear-gradient(90deg,#526b79,#a5b9bf 50%,#526b79);box-shadow:0 2px 4px rgba(43,64,72,.2)}
.gift-box__bow i{position:absolute;left:3px;top:1px;width:33px;height:22px;border:1px solid #526b79;border-radius:80% 25% 70% 35%;transform:rotate(22deg);background:linear-gradient(145deg,#d4dfe0,#8299a4 65%,#edf0e8);box-shadow:0 3px 7px rgba(75,57,21,.14)}
.gift-box__bow i+i{left:auto;right:3px;transform:scaleX(-1) rotate(22deg)}
.gift-box:not(.is-opening){animation:gift-box-invite 2.8s ease-in-out infinite}
.gift-box:not(.is-opening) .gift-box__bow{animation:gift-box-bow 2.8s ease-in-out infinite}
.gift-box:not(.is-opening) .gift-box__glow{animation:gift-box-glow 2.8s ease-in-out infinite}
.gift-box:hover:not(.is-opening) .gift-box__base{filter:brightness(1.04)}
.gift-box.is-opening .gift-box__lid{transform:translateX(-50%) rotateX(125deg)}
.gift-box.is-opening .gift-box__bow{transform:translate(-50%,-35px) rotate(-12deg);opacity:0;transition:transform .4s ease,opacity .3s ease}
.gift-box.is-opening .gift-box__glow{opacity:.9}
@keyframes gift-box-invite{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
@keyframes gift-box-bow{0%,100%{rotate:-3deg}50%{rotate:3deg}}
@keyframes gift-box-glow{0%,100%{opacity:.12;scale:.86}50%{opacity:.48;scale:1.08}}
@media(prefers-reduced-motion:reduce){.gift-box:not(.is-opening),.gift-box__bow,.gift-box__glow{animation:none!important}}

.gate{background:#faf7f1}
.gate__art{display:block;width:min(440px,82vw);height:auto;margin:0 auto 22px;mix-blend-mode:multiply;-webkit-mask-image:radial-gradient(ellipse 88% 94% at center,#000 45%,transparent 100%);mask-image:radial-gradient(ellipse 88% 94% at center,#000 45%,transparent 100%)}

body,.story,.image-intro,.hero,.section--cream,.journey{background:#fff}
.detail-card,.detail-card--blue{background:#fff}
.gate__celestial{width:min(240px,70vw);height:72px;margin:-21px auto 7px;opacity:.8}.gate__celestial svg{width:100%;height:100%;overflow:visible}.celestial-wing,.celestial-dove{fill:none;stroke:var(--gold);stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round}.celestial-dove{fill:rgba(230,202,101,.12)}.celestial-star{fill:var(--gold);animation:celestial-pulse 2.8s ease-in-out infinite alternate}@keyframes celestial-pulse{to{opacity:.25;transform:scale(.65);transform-origin:center}}
.eyebrow,.overline,.gate__hint,.music-toggle,.open-button,.dress-code,.text-link,.rsvp-form label,.success-message{font-size:11px}.tap-note{font-size:10px}.gate__footer{font-size:9px}.baptism-name{font-size:18px}.hero__invite{font-size:20px}.scripture{font-size:29px}.countdown strong{font-size:29px}.countdown span{font-size:8px}.scroll-cue{font-size:10px}.detail-card__meta{font-size:13px}.text-link{font-size:10px}.dress-code{font-size:10px}
.text-link{padding:13px 17px;border-radius:999px;background:var(--ink);color:#fffdf8;transition:transform .25s,background .25s}.text-link:hover{transform:translateY(-2px);background:#3c4c45}.text-link:focus-visible{outline:2px solid var(--gold);outline-offset:3px}.text-link span{color:var(--gold-light)}
.image-intro__frame{width:min(100%,520px);height:clamp(400px,65svh,650px)}.image-intro img{width:100%;height:100%;object-fit:cover;object-position:center}
.hero--invitation{display:block;min-height:0;padding:clamp(36px,6vh,64px) 24px 42px}.hero--invitation .section__intro{margin:0 auto 32px}.hero--invitation .scripture{font-size:clamp(24px,6vw,29px);margin:14px 0 8px}.hero--invitation .hero__cross{margin:14px 0}.hero--invitation .baptism-name{margin:18px 0 8px}.hero--invitation .detail-cards{margin-top:46px}.hero--invitation .detail-card{min-height:0}.hero--invitation .detail-card__icon{margin-bottom:18px}.hero--invitation .dress-code{margin-top:36px}
.event-info{margin:6px auto 0;color:var(--muted);font:700 clamp(14px,3.8vw,19px)/1.5 var(--sans);font-style:normal;letter-spacing:.1em;text-transform:uppercase}
@media(max-width:699px){.hero--invitation{padding:26px 18px 24px}.hero--invitation .section__intro{margin-bottom:18px}.hero--invitation .scripture{font-size:23px;line-height:1;margin:10px 0 6px}.hero--invitation .hero__cross{margin:8px 0}.hero--invitation .hero__content h2{font-size:clamp(38px,10vw,48px)}.hero--invitation .baptism-name{margin:12px 0 6px}.hero--invitation .detail-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:22px}.hero--invitation .detail-card{padding:16px 12px 18px}.hero--invitation .detail-card__icon{font-size:21px;margin-bottom:12px}.hero--invitation .detail-card .eyebrow{font-size:9px;letter-spacing:.12em}.hero--invitation .detail-card h3{font-size:26px;line-height:.9;margin:12px 0}.hero--invitation .detail-card__meta{font-size:11px;line-height:1.5}.hero--invitation .detail-card .text-link{font-size:8px;letter-spacing:.1em;padding:10px 8px;margin-top:14px;gap:6px}.hero--invitation .detail-card .text-link span{font-size:13px}.hero--invitation .dress-code{display:block;margin:22px auto 0}.hero--invitation .dress-code__line{display:none}.hero--invitation .dress-code p{max-width:300px;margin:0 auto;white-space:normal;line-height:1.4;font-size:12px;letter-spacing:.03em;text-transform:none}}
.hero--invitation .baptism-name{font-size:21px;font-weight:600}.hero--invitation .baptism-name strong{font-weight:600}
