:root{--motion-ease:cubic-bezier(.45,0,.18,1);--cream:#F1E8D8;--espresso:#43291D;--forest:#2F5D3A;--blue:#64809E;--gold:#C4A15C;--serif:'Cormorant Garamond',Georgia,serif;--sans:'Jost',Arial,sans-serif;color-scheme:light;--gutter:clamp(24px,5vw,88px)}
*{box-sizing:border-box}html{background:var(--cream);scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;background:var(--cream);color:var(--espresso);font:300 1.125rem/1.6 var(--sans);-webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums}html[lang=de] .en,html[lang=en] .de,[hidden]{display:none!important}h1,h2,h3,p,figure{margin:0}h1,h2,h3,.display-copy{font-weight:300}h1,h3,.display-copy{font-family:var(--serif);color:var(--forest)}em{font-weight:inherit}a{color:inherit;text-decoration-thickness:1px;text-underline-offset:5px}a,button,input,textarea{touch-action:manipulation}button,input,textarea{font:inherit;color:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}img{display:block;max-width:100%}button{border-radius:0}::selection{background:var(--forest);color:var(--cream)}:focus-visible{outline:2px solid var(--forest);outline-offset:6px}.shell{width:calc(100% - var(--gutter)*2);max-width:1460px;margin-inline:auto}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;top:-100px;left:24px;background:var(--cream);padding:12px 20px;z-index:100}.skip-link:focus{top:12px}.reading-line{position:fixed;top:0;left:0;width:100%;height:2px;background:var(--gold);transform:scaleX(0);transform-origin:left;z-index:60}.eyebrow{font:300 .8125rem/1.5 var(--sans);letter-spacing:.17em;text-transform:uppercase}.heart{width:13px;height:13px;fill:currentColor}.monogram{display:inline-flex;align-items:center;gap:8px;font:300 1.75rem/1 var(--serif);letter-spacing:.025em;color:var(--gold);text-decoration:none;min-height:44px;flex-shrink:0}.site-header{position:sticky;top:0;z-index:40;background:rgba(241,232,216,.94);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}.header-inner{display:flex;align-items:center;justify-content:space-between;min-height:94px;gap:35px;border-bottom:1px solid var(--gold)}#navigation{display:flex;align-items:center;justify-content:center;gap:clamp(18px,2.6vw,44px);margin-inline:auto}#navigation a{font-size:.875rem;text-decoration:none;min-height:44px;display:flex;align-items:center;position:relative}#navigation a:after{content:'';position:absolute;bottom:7px;left:0;width:100%;height:1px;background:var(--forest);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--motion-ease)}#navigation a:hover:after,#navigation a[aria-current=true]:after{transform:scaleX(1)}.language-switch{display:flex;align-items:center;font-size:.8125rem;gap:0;flex-shrink:0}.language-switch button,.text-control{border:0;background:transparent;min-height:44px;padding:8px 10px;font-size:.875rem}.language-switch button{width:44px}.language-switch [aria-pressed=true]{color:var(--forest);text-decoration:underline;text-underline-offset:7px;text-decoration-thickness:1px}.menu-toggle{display:none}
/* A large, asymmetrical invitation. The silk and type move on separate planes. */
.hero{position:relative;overflow:hidden}.hero-top{display:flex;justify-content:space-between;align-items:center;padding-top:34px;color:var(--forest)}.hero-stage{position:relative;height:clamp(530px,47vw,760px);isolation:isolate}h1{position:relative;width:100%;height:100%;font-size:clamp(8rem,20vw,21.5rem);line-height:.77;letter-spacing:-.065em;z-index:2;pointer-events:none}.name-first{position:absolute;left:3.5%;top:7%;padding-right:.05em}.name-second{position:absolute;right:7%;bottom:9%;padding-right:.055em}.name-join{position:absolute;left:12%;bottom:10%;font-size:.48em;color:var(--gold);letter-spacing:-.05em;font-style:italic;line-height:1}.silk-art{position:absolute;width:69%;height:68%;right:-14%;top:-1%;z-index:0;will-change:transform;mask-image:linear-gradient(to right,transparent,black 16%,black 92%,transparent),linear-gradient(to bottom,transparent,black 8%,black 90%,transparent);mask-composite:intersect;-webkit-mask-image:linear-gradient(to right,transparent,black 16%,black 92%,transparent);opacity:.96}.silk-art img{width:100%;height:100%;object-fit:cover;object-position:center;transform:scale(1.06)}.hero-aside{position:absolute;left:43%;top:12%;font-size:.9375rem;line-height:1.6;z-index:3}.hero-bottom{border-top:1px solid var(--gold);padding-block:27px 36px;display:grid;grid-template-columns:1fr 1fr auto;align-items:center;gap:30px}.hero-date .eyebrow{font-size:.75rem;margin-bottom:5px}.date-line{font-family:var(--serif);font-size:2.2rem;line-height:1.2;color:var(--forest)}.hero-address{font-size:1rem}.hero-address span{font-size:.875rem}.circle-link{display:flex;align-items:center;gap:24px;font-size:.875rem;text-decoration:none}.circle-icon{border:1px solid var(--forest);width:66px;height:66px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:background .4s var(--motion-ease),color .4s var(--motion-ease),transform .4s var(--motion-ease)}.circle-icon svg{width:26px;height:26px;stroke:currentColor;fill:none;stroke-width:1;transform:rotate(90deg)}.circle-link:hover .circle-icon{background:var(--forest);color:var(--cream);transform:rotate(45deg)}.hero-portrait{margin-top:30px;max-width:850px}.hero-portrait img{width:100%;max-height:640px;object-fit:contain;}
.section{padding-block:clamp(75px,8.5vw,135px)}.chapter-heading{display:flex;align-items:center;gap:17px;padding-bottom:23px;border-bottom:1px solid var(--gold);margin-bottom:64px}.chapter-heading h2{font-family:var(--sans);font-size:.8125rem;letter-spacing:.13em;text-transform:uppercase;color:var(--forest);line-height:1.6}.section-number{font-size:.75rem;color:var(--blue);letter-spacing:.08em}.chapter-note{font-size:.8125rem;margin-left:auto;letter-spacing:.04em}.intro-layout{display:grid;grid-template-columns:1.45fr 1fr;gap:9%;align-items:center}.display-copy{font-size:clamp(3.4rem,7.2vw,7.2rem);letter-spacing:-.035em;line-height:.99}.display-copy em{font-style:italic}.intro-copy{padding-top:15px;max-width:370px;font-size:1.125rem}.intro-copy p+p{margin-top:22px}.text-link{display:inline-flex;align-items:center;gap:25px;padding-block:12px;border-bottom:1px solid var(--forest);color:var(--forest);font-size:.9375rem;text-decoration:none}.text-link svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1;transition:transform .35s var(--motion-ease)}.text-link:hover svg{transform:translate(3px,-3px)}.intro-copy .text-link{margin-top:20px}
.memories{padding-block:10px 90px;display:grid;grid-template-columns:1.45fr 1fr;gap:9%;align-items:center;border-bottom:1px solid var(--gold)}.memory-intro{position:relative;display:grid;grid-template-columns:auto 1fr;gap:0 34px;align-items:center}.memory-intro>.eyebrow{grid-column:1/-1;color:var(--forest)}.memory-number{font:300 clamp(8rem,15vw,15rem)/1 var(--serif);color:var(--forest);letter-spacing:-.075em;padding-right:.04em}.memory-note p:first-child{font:300 clamp(2rem,3vw,3.3rem)/1 var(--serif);color:var(--forest)}.memory-note p:last-child{font-size:.9375rem;margin-top:12px}.gallery-empty{font-size:1rem;max-width:285px;border-top:1px solid var(--gold);padding-top:20px}.slide-frame:focus{outline-offset:10px}.slideshow{display:flex;align-items:center;gap:14px}.slide-arrow{background:transparent;border:1px solid var(--forest);width:44px;height:44px;border-radius:50%;flex-shrink:0;display:grid;place-items:center}.slide-arrow svg{width:20px;height:20px;stroke:var(--forest);stroke-width:1;fill:none;transform:rotate(45deg)}.slide-arrow.previous svg{transform:rotate(225deg)}.slide-arrow:disabled{display:none}.gallery-caption-row{display:flex;gap:18px;font-size:.8125rem;margin-top:15px}.no-photos .gallery-caption-row{display:none}.no-photos .slide-frame{outline:none}.has-photos .slide-frame{width:100%;aspect-ratio:3/4;position:relative;overflow:hidden;touch-action:pan-y}.slide-frame img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;opacity:0;transition:opacity .7s var(--motion-ease)}.slide-frame img.active{opacity:1}.interlude{padding-block:65px 15px;overflow:hidden;color:var(--forest)}.interlude-track{display:flex;align-items:center;gap:45px;white-space:nowrap;width:max-content;font:300 clamp(3.75rem,8vw,9rem)/1.2 var(--serif);letter-spacing:-.025em;will-change:transform}.interlude-star{font-size:.43em;color:var(--blue);padding-inline:15px;line-height:1}
.day-layout{display:grid;grid-template-columns:.82fr 1fr;gap:10%;align-items:start}.day-date{background:var(--forest);color:var(--cream);padding:40px 30px 24px;min-height:580px;text-align:center;border-radius:220px 220px 0 0;display:flex;align-items:center;flex-direction:column;justify-content:center;position:sticky;top:130px;max-width:510px}.day-date .eyebrow{margin-top:28px;letter-spacing:.1em}.date-numeral{font:300 clamp(12rem,24vw,24rem)/.97 var(--serif);letter-spacing:-.06em;margin-left:-.06em}.date-numeral{font-variant-numeric:tabular-nums;font-feature-settings:"lnum";line-height:1.04;margin-bottom:8px}.date-month{font-family:var(--serif);font-size:2.35rem;line-height:1.1}.countdown{font-size:.8125rem;margin-top:20px;line-height:1.7;max-width:100%;min-height:2em}.date-footer{font:300 1.3rem/1.4 var(--serif);border-top:1px solid var(--gold);width:100%;padding-top:18px;margin-top:30px}.day-declaration{font:300 clamp(2.9rem,4.7vw,4.9rem)/1.02 var(--serif);color:var(--forest);letter-spacing:-.03em;margin:12px 0 35px}.schedule-item{display:grid;grid-template-columns:28px 1fr;gap:20px;padding-block:23px;border-top:1px solid var(--gold)}.schedule-number{font-size:.75rem;color:var(--blue);padding-top:9px}.schedule-item h3{font-size:2.1rem;line-height:1.1;margin-bottom:10px}.schedule-item p{font-size:1rem;max-width:380px;line-height:1.6}.schedule-note{font-size:.875rem;margin-top:17px}.dress-note{display:flex;justify-content:space-between;gap:30px;border-top:1px solid var(--gold);margin-top:65px;padding-top:23px;font-size:.9375rem}.dress-note .eyebrow{color:var(--forest)}
.venue-section{padding-top:20px}.venue-layout{display:grid;grid-template-columns:.75fr 1.3fr;gap:8%;align-items:center}.venue-heading>.eyebrow{color:var(--blue);margin-bottom:22px}.venue-heading h3{font-size:clamp(3.2rem,5.1vw,5.5rem);letter-spacing:-.03em;line-height:.98}.venue-name{font-size:1.125rem;margin-top:27px}address{font-style:normal;margin-top:15px;font-size:1rem;line-height:1.65}.venue-heading .text-link{margin-top:15px}.venue-figure{align-self:stretch;display:flex;flex-direction:column;justify-content:center}.venue-image{aspect-ratio:1.3/1;overflow:hidden;border-radius:47% 47% 0 0;isolation:isolate;position:relative}.venue-image>img{width:100%;height:120%;object-fit:cover;object-position:51% center;position:absolute;top:-10%;left:0;will-change:transform}.venue-figure figcaption{display:flex;justify-content:space-between;gap:15px;font-size:.75rem;margin-top:17px}.travel-details{display:grid;grid-template-columns:1fr 1fr;gap:8%;margin-top:65px;border-top:1px solid var(--gold);padding-top:30px}.travel-details h3{font-size:1.8rem;margin-bottom:12px}.travel-details p{font-size:.9375rem}
.rsvp-section{padding-top:20px}.reply-layout{display:grid;grid-template-columns:1fr 1fr;gap:12%}.reply-heading .display-copy{font-size:clamp(4rem,8.4vw,8rem)}#rsvp-intro{max-width:300px;margin-top:30px;font-size:1.0625rem}.deadline{margin-top:18px;font-size:.875rem}.reply-heading .monogram{margin-top:40px}.rsvp-content{padding:25px 0 0;align-self:center}form{margin:0}.field{display:flex;flex-direction:column;gap:10px;margin-bottom:29px}.field label{font-size:1rem}.field input,.field textarea{background:var(--cream);border:0;border-bottom:1px solid var(--forest);border-radius:0;min-height:48px;padding:8px 0;width:100%;box-shadow:none;appearance:none;font-size:1.0625rem}.field textarea{resize:vertical;border:1px solid rgba(47,93,58,.6);padding:12px;min-height:90px}.field input[type=number]{width:90px}.attendance{border:0;padding:0;margin:0 0 28px;display:flex;gap:14px 28px;flex-wrap:wrap}.attendance label{display:flex;align-items:center;gap:10px;min-height:44px;cursor:pointer;font-size:.9375rem}input[type=radio]{appearance:none;width:19px;height:19px;border:1px solid var(--forest);border-radius:50%;background:var(--cream);margin:0;flex-shrink:0}input[type=radio]:checked{background:var(--forest);box-shadow:inset 0 0 0 4px var(--cream)}.mail-note{font-size:.875rem;max-width:360px;margin-bottom:24px}.button{background:var(--forest);color:var(--cream);border:1px solid var(--forest);border-radius:0;min-height:54px;padding:12px 26px;display:inline-flex;align-items:center;justify-content:center;gap:28px;text-decoration:none;font-size:1rem;cursor:pointer;transition:background .35s var(--motion-ease),color .35s var(--motion-ease)}.button svg{width:20px;height:20px;stroke:currentColor;stroke-width:1;fill:none}.button:hover{background:var(--cream);color:var(--forest)}.button:focus-visible{outline-offset:4px}.button[aria-disabled=true]{background:transparent;color:var(--forest);border-color:rgba(47,93,58,.45);cursor:default}.button[aria-disabled=true] svg{display:none}form .button{min-width:200px}.form-error{border-left:2px solid var(--forest);padding-left:12px;margin-bottom:22px;font-size:1rem}#mail-confirmation .button{margin-block:23px}#mail-confirmation p{font-size:1.0625rem}#rsvp-success{font:300 2.5rem/1.25 var(--serif);color:var(--forest);padding-block:50px}
.guest-photos{padding-top:20px}.photo-invitation{display:grid;grid-template-columns:1.4fr 1fr;gap:8%;align-items:center}.photo-invitation>.display-copy{font-size:clamp(2.75rem,5.6vw,5.5rem);line-height:1.05}.photo-invitation>div{max-width:350px;font-size:1rem}.photo-invitation .button{margin-top:25px}.album-placeholder{font-size:.8125rem;margin-top:15px}.site-footer{border-top:1px solid var(--gold);padding-top:30px}.footer-top{display:flex;align-items:center;justify-content:space-between;gap:30px;font-size:.8125rem}.footer-top .eyebrow{color:var(--forest);font-size:.75rem}.footer-names{font:300 clamp(4.5rem,15vw,16rem)/1.3 var(--serif);letter-spacing:-.055em;white-space:nowrap;text-align:center;color:var(--forest);padding-block:25px 10px}.footer-names>span{font-style:italic;font-size:.65em;color:var(--blue);padding-inline:.12em}.footer-bottom{border-top:1px solid var(--gold);display:flex;justify-content:space-between;align-items:center;gap:25px;padding-block:15px 20px;font-size:.8125rem}.footer-bottom>.text-link{font-size:.8125rem;border-bottom:0;gap:12px}.footer-bottom>.text-link svg{width:17px;height:17px;transform:rotate(-45deg)}.motion-toggle{font-size:.8125rem;display:flex;align-items:center;gap:8px}.motion-symbol{font-size:.75rem}.reveal{opacity:1;transform:none}.js-reveal .reveal{opacity:0;transform:translateY(35px);transition:opacity 1s var(--motion-ease),transform 1.15s var(--motion-ease)}.js-reveal .reveal.is-visible{opacity:1;transform:translateY(0)}.motion-off *,.motion-off *:before,.motion-off *:after{animation:none!important;transition:none!important var(--motion-ease);scroll-behavior:auto!important}.motion-off .reveal{opacity:1!important;transform:none!important}.motion-off [data-parallax],.motion-off .interlude-track{transform:none!important}
@media(prefers-reduced-motion:no-preference){.name-first{animation:name-arrive 1.5s cubic-bezier(.45,0,.18,1) both}.name-second{animation:name-arrive 1.7s .15s cubic-bezier(.45,0,.18,1) both}.name-join{animation:join-arrive 2s .25s ease both}.hero-aside{animation:join-arrive 1.6s .4s ease both}.silk-art img{animation:silk-arrive 2s cubic-bezier(.45,0,.18,1) both}}@keyframes name-arrive{from{opacity:0;translate:0 65px}to{opacity:1;translate:0 0}}@keyframes join-arrive{from{opacity:0}to{opacity:1}}@keyframes silk-arrive{from{opacity:0;transform:scale(1.16)}to{opacity:1;transform:scale(1.06)}}
@media(min-width:1600px){.hero-stage{height:740px}.hero-aside{top:11%}.silk-art{width:64%;right:-10%}.name-first{top:9%}.name-second{bottom:9%}}
@media(max-width:1000px){.header-inner{gap:20px;min-height:82px}#navigation{gap:20px}#navigation a{font-size:.8125rem}.hero-stage{height:550px}h1{font-size:22vw}.name-first{left:0;top:10%}.name-second{right:0;bottom:14%}.name-join{left:9%;bottom:14%}.hero-aside{top:15%;left:48%}.silk-art{width:79%;right:-16%;height:59%;top:0}.hero-bottom{grid-template-columns:1fr 1fr auto;gap:20px}.hero-address{font-size:.875rem}.circle-link{gap:10px}.circle-link>span:first-child{display:none}.circle-icon{width:55px;height:55px}.intro-layout,.memories{gap:7%;grid-template-columns:1.3fr 1fr}.memory-intro{gap:0 25px}.day-layout{gap:7%;grid-template-columns:.85fr 1fr}.day-date{min-height:500px;padding:30px 20px 20px;top:110px}.day-date .eyebrow{font-size:.75rem}.countdown{font-size:.75rem}.day-declaration{font-size:3rem}.schedule-item{gap:12px}.venue-layout{gap:6%;grid-template-columns:.85fr 1fr}.venue-heading h3{font-size:3.4rem}.venue-figure figcaption{flex-direction:column;gap:0}.venue-image{aspect-ratio:.9}.reply-layout{gap:8%}.attendance{gap:5px;display:grid}.photo-invitation{grid-template-columns:1.2fr 1fr;gap:7%}}
@media(max-width:700px){:root{--gutter:24px}html{scroll-padding-top:92px}.header-inner{min-height:76px;gap:8px;flex-wrap:wrap}.site-header .monogram{margin-right:auto}.monogram{font-size:1.55rem}.menu-toggle{display:block}.language-switch button{width:40px}.language-switch{font-size:.75rem}#navigation{display:none;order:4;width:100%;margin:0;padding-bottom:20px}#navigation.open{display:grid;grid-template-columns:1fr 1fr;gap:0 25px}#navigation a{font-size:1rem;min-height:48px}.hero-top{padding-top:24px}.hero-top .eyebrow{font-size:.75rem;letter-spacing:.1em}.hero-stage{height:530px;max-height:none}h1{font-size:clamp(7.5rem,27vw,13rem);letter-spacing:-.07em}.name-first{top:10%;left:0}.name-second{right:-1%;bottom:21%}.name-join{font-size:.6em;left:5%;bottom:46%}.hero-aside{display:none}.silk-art{width:108%;height:55%;top:10%;right:-31%;opacity:1;mask-image:radial-gradient(ellipse at 62% 43%,black 26%,transparent 72%);-webkit-mask-image:radial-gradient(ellipse at 62% 43%,black 26%,transparent 72%)}.silk-art img{object-position:center}.hero-bottom{grid-template-columns:1fr auto;padding-block:20px 24px;gap:15px;margin-top:-48px}.hero-date .eyebrow{font-size:.7rem}.date-line{font-size:1.9rem}.hero-address{grid-column:1;grid-row:2;font-size:.875rem}.hero-address span{font-size:.8125rem}.circle-link{grid-column:2;grid-row:1/3}.circle-icon{width:56px;height:56px}.section{padding-block:70px}.chapter-heading{margin-bottom:35px;padding-bottom:20px;gap:12px;flex-wrap:wrap}.chapter-heading h2{font-size:.75rem;letter-spacing:.1em}.section-number{font-size:.75rem}.chapter-note{font-size:.75rem}.intro-layout{grid-template-columns:1fr;gap:32px}.display-copy{font-size:clamp(3.5rem,13vw,5.5rem)}.intro-copy{max-width:100%;font-size:1.0625rem;padding-top:0}.intro-copy p+p{margin-top:18px}.intro-copy .text-link{margin-top:15px}.memories{grid-template-columns:1fr;gap:20px;padding:10px 0 60px}.memory-intro{grid-template-columns:auto 1fr;gap:0 30px}.memory-number{font-size:10rem}.memory-note p:first-child{font-size:2.5rem}.memory-note p:last-child{font-size:.9375rem}.gallery-empty{border:0;padding-top:0;max-width:100%;font-size:.9375rem}.no-photos .gallery-layout{margin-top:-8px}.has-photos .memories{gap:32px}.interlude{padding-block:45px 0}.interlude-track{font-size:4.1rem;gap:25px}.interlude-star{padding:0}.day-layout{display:flex;flex-direction:column;gap:38px}.day-date{position:relative;top:auto;width:100%;max-width:450px;min-height:490px;margin-inline:auto;padding:40px 27px 24px;border-radius:200px 200px 0 0}.day-date .eyebrow{margin-top:16px;font-size:.75rem}.date-numeral{font-size:18rem;line-height:.93}.date-month{font-size:2.2rem}.countdown{font-size:.8125rem}.date-footer{font-size:1.3rem;margin-top:24px;padding-top:17px}.day-program{width:100%}.day-declaration{font-size:clamp(3rem,11.8vw,4.5rem);margin:0 0 30px}.schedule-item{gap:18px;padding-block:22px}.schedule-item h3{font-size:2rem}.schedule-item p{font-size:1rem}.schedule-note{font-size:.875rem}.dress-note{display:block;margin-top:34px;padding-top:22px}.dress-note p+p{margin-top:10px}.venue-section{padding-top:10px}.venue-layout{display:flex;flex-direction:column;gap:35px;align-items:stretch}.venue-heading h3{font-size:clamp(3.5rem,14vw,5.5rem);line-height:.98}.venue-heading>.eyebrow{margin-bottom:20px}.venue-name{margin-top:22px}.venue-image{aspect-ratio:1.12/1;border-radius:45% 45% 0 0}.venue-figure figcaption{flex-direction:row;gap:10px;font-size:.7rem}.travel-details{margin-top:35px;gap:25px;grid-template-columns:1fr}.travel-details h3{font-size:1.7rem}.travel-details p{font-size:.9375rem}.rsvp-section{padding-top:10px}.reply-layout{grid-template-columns:1fr;gap:20px}.reply-heading .display-copy{font-size:clamp(4rem,16vw,6rem)}#rsvp-intro{margin-top:25px;max-width:100%;font-size:1rem}.reply-heading .monogram{display:none}.rsvp-content{padding-top:20px}.attendance{gap:5px}.field{margin-bottom:24px}form .button{width:100%}.guest-photos{padding-top:10px}.photo-invitation{grid-template-columns:1fr;gap:28px}.photo-invitation>.display-copy{font-size:clamp(2.8rem,10.7vw,4.4rem)}.photo-invitation>div{max-width:100%}.site-footer{padding-top:22px}.footer-top{gap:10px;align-items:flex-start}.footer-top .eyebrow{font-size:.7rem;max-width:190px}.footer-top>span{font-size:.75rem;white-space:nowrap}.footer-names{font-size:15vw;line-height:1.4;padding-block:25px;letter-spacing:-.055em}.footer-bottom{gap:8px;font-size:.75rem;flex-wrap:wrap}.footer-bottom>.text-link{font-size:.75rem;gap:6px}.motion-toggle{font-size:.75rem;padding-inline:0}.motion-symbol{font-size:.65rem}.footer-bottom>.text-link svg{width:15px;height:15px}}
@media(max-width:360px){:root{--gutter:20px}.hero-stage{height:470px}.hero-aside{right:1%;top:35%}.hero-top .eyebrow{font-size:.75rem;letter-spacing:.04em}.name-first{top:13%}.name-second{bottom:22%}.date-line{font-size:1.7rem}.day-date{min-height:460px}.date-numeral{font-size:15rem}.day-date .eyebrow{font-size:.69rem}.countdown{font-size:.75rem}.footer-bottom{justify-content:center}.footer-bottom>span{margin-right:auto}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important var(--motion-ease);scroll-behavior:auto!important}.js-reveal .reveal{opacity:1;transform:none}[data-parallax],.interlude-track{transform:none!important}}
@media print{.site-header,.reading-line,.motion-toggle{display:none}.reveal{opacity:1!important;transform:none!important}.section{padding-block:35px}.day-date{position:static}.hero-stage{height:450px}a{color:var(--espresso)}}
/* Feather the artwork into the exact cream page surface. */
.silk-art{mask-image:linear-gradient(to bottom,transparent 0%,#000 23%,#000 63%,transparent 100%),linear-gradient(to right,transparent 0%,#000 25%,#000 100%);mask-composite:intersect;-webkit-mask-image:linear-gradient(to bottom,transparent 0%,#000 23%,#000 63%,transparent 100%),linear-gradient(to right,transparent 0%,#000 25%,#000 100%);-webkit-mask-composite:source-in}
.motion-toggle:disabled{cursor:default}
/* The invitation gains depth without changing its palette or its reading order. */
.header-motion{width:40px;height:44px;display:grid;place-items:center;padding:0;border:0;background:transparent;color:var(--forest);margin-right:-22px;flex-shrink:0}.header-motion .motion-symbol{font-size:.875rem;transition:transform .4s var(--motion-ease)}.header-motion:hover .motion-symbol{transform:scale(1.2)}.header-motion:disabled{cursor:default}.name-ink{display:block;will-change:transform}.name-join{will-change:transform}.silk-art{opacity:1}.silk-canvas{position:absolute;inset:0;width:100%;height:100%;opacity:0;transition:opacity 1.2s var(--motion-ease);pointer-events:none}.silk-art img{transition:opacity 1.2s var(--motion-ease)}.canvas-ready .silk-canvas{opacity:1}.canvas-ready img{opacity:0;animation:none}.hero-top,.hero-bottom{position:relative;z-index:3}.hero-stage{perspective:1200px}.hero .circle-icon{position:relative}.hero .circle-icon:after{content:'';position:absolute;inset:5px;border-radius:50%;border:1px solid var(--forest);opacity:0;transform:scale(.85);transition:opacity .4s var(--motion-ease),transform .6s var(--motion-ease)}.circle-link:hover .circle-icon:after{opacity:.4;transform:scale(1.35)}
.chapter-heading{position:relative}.experience-ready .chapter-heading{border-bottom-color:transparent}.experience-ready .chapter-heading:after{content:'';position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform 1.4s var(--motion-ease)}.experience-ready .chapter-heading.chapter-entered:after{transform:scaleX(1)}.intro-layout .display-copy em{position:relative;display:inline-block;padding-bottom:.09em}.intro-layout .display-copy em:after{content:'';position:absolute;bottom:0;left:2%;width:96%;height:1px;background:var(--gold);transform:scaleX(var(--line-reveal,1));transform-origin:left}.memory-number{position:relative;font-variant-numeric:tabular-nums}.memory-note{position:relative;padding-left:22px}.memory-note:before{content:'';position:absolute;left:0;top:4px;bottom:2px;width:1px;background:var(--gold)}
.day-layout{perspective:1500px}.day-date{box-shadow:12px 18px 0 -1px var(--cream),12px 18px 0 0 var(--gold),0 30px 70px -45px rgba(47,93,58,.35);transform:rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg));transition:transform .5s var(--motion-ease);transform-style:preserve-3d}.day-date .date-numeral{transform:translateZ(22px)}.day-date .eyebrow{transform:translateZ(8px)}.date-footer{position:relative}.date-footer:after{content:'';position:absolute;left:0;right:66.666%;top:-1px;height:2px;background:var(--cream);transition:translate .65s var(--motion-ease)}.day-date[data-chapter="2"] .date-footer:after{translate:100% 0}.day-date[data-chapter="3"] .date-footer:after{translate:200% 0}.schedule-item{grid-template-columns:34px 1fr;gap:22px;padding-block:29px}.schedule-number{width:30px;height:30px;display:grid;place-items:center;padding:0;margin-top:5px;border-radius:50%;border:1px solid transparent;transition:color .5s var(--motion-ease),background .5s var(--motion-ease),border-color .5s var(--motion-ease)}.schedule-item.is-current .schedule-number{color:var(--cream);background:var(--forest);border-color:var(--forest)}.schedule-item h3{transition:translate .6s var(--motion-ease)}.schedule-item.is-current h3{translate:5px 0}
.venue-layout{display:grid;grid-template-columns:1fr;gap:48px}.venue-figure{grid-column:1;grid-row:1;display:block;min-width:0}.venue-image{--venue-inset:0%;--venue-radius:0%;aspect-ratio:2.1/1;border-radius:0;clip-path:inset(0 var(--venue-inset) 0 var(--venue-inset) round var(--venue-radius) var(--venue-radius) 0 0);will-change:clip-path;max-height:660px}.venue-image>img{height:120%;top:-10%;object-position:center 47%;filter:saturate(.83)}.venue-figure figcaption{flex-direction:row;padding-top:6px;font-size:.8125rem}.venue-heading{display:grid;grid-template-columns:1.4fr .65fr;gap:10%;align-items:end;grid-row:2;grid-column:1}.venue-title-block>.eyebrow{font-size:.8125rem;letter-spacing:.13em;color:var(--blue);margin-bottom:20px}.venue-heading h3{font-size:clamp(3.5rem,6.7vw,7.4rem);line-height:.97;letter-spacing:-.04em}.venue-details{padding-bottom:4px}.venue-name{margin-top:0;font-size:1.3rem}.venue-details address{font-size:1.0625rem;margin-top:16px}.venue-heading .text-link{margin-top:21px}.travel-details{margin-top:60px}
.reply-layout{gap:9%;align-items:center}.rsvp-content{padding:34px 36px 38px;border:1px solid var(--forest);background:var(--cream);box-shadow:13px 13px 0 -1px var(--cream),13px 13px 0 0 var(--gold);position:relative;isolation:isolate}.reply-card-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid var(--gold);padding-bottom:24px;margin-bottom:30px;color:var(--forest)}.reply-card-heading .eyebrow{font-size:.75rem;letter-spacing:.13em}.reply-card-date{font-size:.75rem;letter-spacing:.025em;white-space:nowrap}.field input{transition:border-color .3s var(--motion-ease),box-shadow .3s var(--motion-ease)}.field input:focus{box-shadow:0 2px 0 var(--forest);outline:none}.field:focus-within label{color:var(--forest)}.field textarea{transition:border-color .3s var(--motion-ease)}.attendance{display:grid;grid-template-columns:1fr 1fr;gap:12px}.attendance label{padding:12px;border:1px solid rgba(47,93,58,.4);align-items:start;line-height:1.45;transition:background .35s var(--motion-ease),color .35s var(--motion-ease)}.attendance label:has(:checked){background:var(--forest);color:var(--cream)}.attendance input[type=radio]{margin-top:2px}.attendance label:has(:checked) input{border-color:var(--cream);background:var(--cream);box-shadow:inset 0 0 0 4px var(--forest)}.attendance label:focus-within{outline:2px solid var(--forest);outline-offset:4px}.attendance input:focus-visible{outline:none}.rsvp-content form>.button{width:100%;position:relative;overflow:hidden}.rsvp-content form>.button:after{content:'↗';position:absolute;right:23px;transition:translate .3s var(--motion-ease)}.rsvp-content form>.button:hover:after{translate:2px -2px}.field input[aria-invalid=true],.field textarea[aria-invalid=true]{border-bottom-width:2px}.form-error{font-size:.9375rem}.photo-invitation{padding-block:10px}.footer-names{perspective:900px}.site-footer{position:relative}
@media(min-width:1001px){.hero-top{padding-top:30px}.header-inner{gap:28px}.hero-aside{font-size:1rem}.introduction{padding-top:150px}.schedule-item{min-height:142px}.day-date{top:120px}.reply-heading .display-copy{font-size:clamp(4rem,8vw,8rem)}}
@media(min-width:701px) and (max-width:1000px){.header-inner{gap:16px}.header-motion{margin-right:-10px;width:32px}#navigation{gap:15px}.venue-heading{grid-template-columns:1.3fr .8fr;gap:7%}.venue-heading h3{font-size:4.1rem}.rsvp-content{padding:25px 23px 28px}.reply-layout{gap:7%}.attendance{grid-template-columns:1fr}.reply-card-heading{gap:10px}.reply-card-date{font-size:.75rem}.reply-card-heading .eyebrow{letter-spacing:.07em}.day-date{box-shadow:8px 12px 0 -1px var(--cream),8px 12px 0 0 var(--gold)}}
@media(max-width:700px){.header-inner{gap:6px}.header-motion{width:32px;margin:0}.header-motion .motion-symbol{font-size:.8125rem}.language-switch button{width:36px}.menu-toggle{padding-inline:7px}.hero-stage{height:510px}.name-second{right:1%;bottom:20%}.hero-bottom{margin-top:-30px}.chapter-heading{margin-bottom:36px}.day-date{width:calc(100% - 10px);margin-left:0;box-shadow:10px 12px 0 -1px var(--cream),10px 12px 0 0 var(--gold);transform:none}.day-layout{gap:54px}.schedule-item{padding-block:24px;gap:14px}.schedule-number{margin-top:3px}.venue-layout{display:flex;flex-direction:column;gap:30px}.venue-figure{order:0}.venue-heading{order:1;display:flex;flex-direction:column;align-items:flex-start;gap:24px}.venue-image{aspect-ratio:1.35/1;max-height:none}.venue-image>img{object-position:50% center}.venue-heading h3{font-size:clamp(3rem,10.8vw,4.8rem);line-height:1}.venue-title-block>.eyebrow{font-size:.75rem;margin-bottom:16px}.venue-name{font-size:1.25rem}.venue-details address{font-size:1rem}.venue-figure figcaption{font-size:.75rem;gap:12px;line-height:1.4}.travel-details{margin-top:35px}.reply-layout{gap:30px}.rsvp-content{width:calc(100% - 8px);padding:26px 22px 30px;box-shadow:8px 10px 0 -1px var(--cream),8px 10px 0 0 var(--gold)}.reply-card-heading{gap:12px;padding-bottom:20px;margin-bottom:27px}.reply-card-heading .eyebrow{font-size:.75rem;letter-spacing:.04em}.reply-card-date{font-size:.75rem}.attendance{grid-template-columns:1fr;gap:10px}.attendance label{padding:12px}.memory-note{padding-left:18px}.guest-photos{padding-top:22px}.footer-top .eyebrow{font-size:.75rem}}
@media(max-width:360px){.header-inner{gap:2px}.language-switch button{width:32px}.hero-stage{height:470px}.reply-card-heading{flex-wrap:wrap;gap:8px}.rsvp-content{padding:24px 18px}.venue-heading h3{font-size:2.8rem}}
.motion-off .silk-canvas{display:none}.motion-off .silk-art img{opacity:1!important}.motion-off .name-ink,.motion-off .name-join,.motion-off .day-date{transform:none!important}.motion-off .venue-image{clip-path:none!important}.motion-off .chapter-heading:after{transform:scaleX(1)!important}.motion-off .intro-layout .display-copy em:after{transform:scaleX(1)!important}
@media(prefers-reduced-motion:reduce){.silk-canvas{display:none!important}.silk-art img{opacity:1!important}.name-ink,.name-join,.day-date{transform:none!important}.venue-image{clip-path:none!important}.chapter-heading:after,.intro-layout .display-copy em:after{transform:scaleX(1)!important}.schedule-item h3{translate:none!important}}
@media print{.header-motion,.silk-canvas{display:none}.silk-art img{opacity:1!important}.venue-image{clip-path:none!important}.rsvp-content,.day-date{box-shadow:none}.chapter-heading:after{transform:scaleX(1)!important}}
@media(min-width:701px) and (prefers-reduced-motion:no-preference){.js-reveal:not(.motion-off) .day-date.is-visible{transform:rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg))}}

/* Keep the date readable and controls comfortable on small screens. */
.hero-date .countdown{font-size:clamp(.75rem,1vw,.9375rem);margin-top:8px;color:var(--forest);min-height:0}.language-switch button,.header-motion{min-width:44px;min-height:44px}.footer-bottom .text-link{min-height:44px}.hero-date{min-width:0}@media(max-width:700px){:root{--gutter:24px}.hero-date .countdown{font-size:12px;max-width:100%;line-height:1.5}.hero-date{grid-column:1/-1}.hero-bottom{grid-template-columns:1fr auto}.circle-link{grid-row:2;grid-column:2}.hero-address{grid-row:2}.header-inner{gap:4px}}

/* Each chapter is a complete document, connected by a shared editorial index. */
#navigation a[aria-current=page]:after{transform:scaleX(1)}
body:not([data-page=home]) main>.section:first-child{padding-top:64px}
.chapter-heading .page-heading{position:static;pointer-events:auto;width:auto;height:auto;font:300 clamp(1.65rem,3vw,3rem)/1.16 var(--serif);letter-spacing:-.025em;color:var(--forest)}
body:not([data-page=home]) .chapter-heading{margin-bottom:54px}
.chapter-index{padding-block:90px 110px}
.chapter-links{border-bottom:1px solid var(--gold)}
.chapter-link{display:grid;grid-template-columns:48px 1fr 52px;gap:24px;align-items:center;padding:28px 0;border-top:1px solid var(--gold);text-decoration:none;transition:padding .45s var(--motion-ease),color .45s var(--motion-ease)}
.chapter-link h2{font:300 clamp(2.5rem,4.6vw,5rem)/1.15 var(--serif);letter-spacing:-.035em;color:var(--forest)}
.chapter-link p{font-size:1rem;margin-top:6px}
.chapter-arrow{font:300 2.8rem/1 var(--serif);color:var(--forest);transition:transform .45s var(--motion-ease)}
.chapter-link:hover,.chapter-link:focus-visible{padding-left:14px}
.chapter-link:hover .chapter-arrow{transform:translate(5px,-5px)}
.page-next{padding-block:32px 86px}
.next-chapter{display:block;border-top:1px solid var(--gold);padding-top:26px;text-decoration:none}
.next-chapter>.eyebrow{color:var(--blue);font-size:.875rem}
.next-title{display:flex;justify-content:space-between;align-items:center;gap:30px;margin-top:12px;font:300 clamp(2.3rem,5vw,5.5rem)/1.2 var(--serif);color:var(--forest);letter-spacing:-.035em}
body:not([data-page=home]) .footer-names{font-size:clamp(3rem,9vw,10rem);padding-block:22px}
@view-transition{navigation:auto}
::view-transition-old(root){animation:chapter-out .18s ease both}
::view-transition-new(root){animation:chapter-in .4s ease both}
@keyframes chapter-out{to{opacity:0}}
@keyframes chapter-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.motion-off::view-transition-old(root),.motion-off::view-transition-new(root){animation:none}
@media(prefers-reduced-motion:reduce){::view-transition-old(root),::view-transition-new(root){animation:none}}
@media(min-width:701px) and (max-width:1100px){#navigation{gap:12px}.header-inner{gap:12px}#navigation a{font-size:.8125rem}}
@media(max-width:700px){
 body:not([data-page=home]) main>.section:first-child{padding-top:38px}
 body:not([data-page=home]) .chapter-heading{margin-bottom:34px}
 .chapter-index{padding-block:58px 70px}.chapter-link{grid-template-columns:28px 1fr 28px;gap:12px;padding-block:24px}.chapter-link h2{font-size:2.4rem}.chapter-link p{font-size:.9375rem}.chapter-arrow{font-size:2rem}.page-next{padding-block:20px 56px}.next-title{font-size:2.5rem}
}
@media(prefers-reduced-motion:no-preference){.js-reveal:not(.motion-off) .day-date.is-visible{transform:rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg))}}

/* Consistent champagne-gold separators in the couple’s names. */
.name-ampersand,.footer-names>span,#entry-title em,.invitation-heading em{color:var(--gold)}
