
@font-face{font-family:Arm;src:url('assets/sans.ttf');font-display:swap}@font-face{font-family:Arm;src:url('assets/sans-light.ttf');font-weight:300;font-display:swap}@font-face{font-family:Book;src:url('assets/serif.ttf');font-display:swap}
:root{--green:#3e492d;--deep:#2d3620;--paper:#f8f4ec;--ink:#333a29;--gold:#ac9365;--line:#c7bea9;--muted:#727460}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:25px}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.85 Arm,sans-serif}body.locked{overflow:hidden}a{color:inherit;text-underline-offset:5px}button,input{font:inherit}button{cursor:pointer}button,a,input{touch-action:manipulation}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid var(--gold);outline-offset:5px}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:Book,serif;font-weight:400}h2{font-size:clamp(1.8rem,3.3vw,3rem);line-height:1.55}p{font-weight:300}.eyebrow{font-size:12px;font-weight:400;letter-spacing:.16em;line-height:1.8}.button{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:13px 26px;border:1px solid var(--green);background:var(--green);color:var(--paper);text-decoration:none;font-size:14px;transition:background .2s,transform .2s}.button:hover{background:var(--deep);transform:translateY(-2px)}.button.outline{background:transparent;color:var(--green)}.button.outline:hover{background:#eae6d9}.text-button{border:0;background:none;padding:12px;color:inherit;font-size:13px;text-decoration:underline;text-underline-offset:5px}.header{width:calc(100% - 100px);max-width:1320px;margin:auto;height:100px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:18px}.monogram{font-family:Book;font-size:24px;text-decoration:none;white-space:nowrap}.monogram i{font-size:16px;padding:0 5px;font-weight:400}.header-title{font-size:12px;letter-spacing:.2em}.header-link{font-size:14px}.hero{max-width:1220px;margin:auto;padding:70px 35px 85px;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:75px;min-height:760px}.hero-text{text-align:center}.hero-text h1{font-size:clamp(3rem,6.3vw,6.4rem);line-height:1.35;margin:25px 0 22px;font-weight:400;overflow-wrap:anywhere}.hero-text h1>span{display:block}.hero-text h1 .ampersand{font-size:.35em;font-style:italic;color:var(--gold);line-height:1.1;margin:7px 0}.fine-rule{width:65px;height:1px;background:var(--gold);margin:26px auto}.hero-note{font:22px/1.8 Book}.hero-date{font-size:16px;margin:25px 0}.hero-visual{position:relative;padding:15px 20px 15px 0;min-width:0}.photo-frame{position:relative;border:1px solid var(--gold);padding:10px}.photo-frame:before{content:'';position:absolute;inset:22px -12px -18px 24px;border:1px solid var(--line);z-index:-1}.photo-frame img{display:block;width:100%;height:auto;aspect-ratio:3/4;object-fit:cover}.photo-caption{position:absolute;bottom:25px;left:0;right:0;text-align:center;color:#fff8e8;font-size:13px;letter-spacing:.06em;text-shadow:0 2px 6px #000}.vertical-note{position:absolute;right:-20px;top:50%;writing-mode:vertical-rl;transform:translateY(-50%);font-size:10px;letter-spacing:.25em;color:var(--muted)}.section{padding:105px 24px}.invitation{border-top:1px solid var(--line);text-align:center;max-width:1080px;margin:auto}.letter-mark{font:40px Book;display:inline-block;border:1px solid var(--line);border-radius:50%;width:110px;height:135px;line-height:130px;margin-bottom:38px}.letter-mark span{font-size:20px;font-style:italic;padding:0 4px}.invitation h2{margin:22px 0}.invitation-copy{max-width:620px;margin:auto;line-height:2.2;font-size:17px}.signature{font:25px Book;margin-top:30px;color:var(--green)}.date-section{background:var(--green);color:var(--paper);position:relative}.date-inner{max-width:1080px;margin:auto;display:grid;grid-template-columns:1fr 1fr;gap:100px;padding:85px 32px;align-items:center;text-align:center}.date-copy .eyebrow{color:#d5c5a0}.date-copy h2{font-size:clamp(3.2rem,6vw,5.5rem);letter-spacing:.04em;line-height:1.4;margin:22px 0 8px}.date-copy h3{font-family:Arm;font-size:14px;margin-top:35px}.countdown{display:flex;justify-content:center;align-items:flex-start;gap:16px;margin-top:18px}.countdown>div{min-width:0;flex:0 1 68px}.countdown strong{display:block;font:34px/1.4 Book}.countdown span{font-size:12px;color:#ddd8c8}.countdown b{font-weight:300;padding-top:5px;color:#b8b799}.calendar{border-left:1px solid #f8f4ec40;padding-left:65px;min-width:0}.calendar>p{font:23px Book;margin-bottom:25px}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.weekday{font-size:12px;color:#d5d1be}.date-cell{display:grid;place-items:center;position:relative;aspect-ratio:1;min-width:0}.date-cell strong{font-weight:300;font-size:17px;position:relative;z-index:1}.date-cell svg{position:absolute;inset:1px;width:100%;height:100%;stroke:#d1bd8b;stroke-width:1.2;fill:none;overflow:visible}.date-cell.selected strong{color:#fff}.light-outline{border-color:#b1b397;background:transparent;margin-top:30px}.light-outline:hover{background:#fff1}.details{max-width:1150px;margin:auto}.section-heading{text-align:center}.section-heading h2{margin-top:20px}.venues{display:grid;grid-template-columns:1fr 1fr;gap:70px;margin-top:60px}.venue{border-top:1px solid var(--line);padding:30px 0}.venue-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.number{font:46px Book;color:#bcb096}.venue time{font:28px Book}.venue h3{font-size:24px;margin-bottom:13px}.venue p{font-size:15px;color:#626653}.venue .button{margin-top:20px}.program{margin-top:35px;display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:30px;gap:25px}.event{flex:1;text-align:center;position:relative}.event:before{content:'';width:7px;height:7px;border-radius:50%;background:var(--gold);position:absolute;top:-34px;left:50%}.event time{display:block;font:23px Book}.event span{font-size:13px;display:block;margin-top:9px}.rsvp-section{background:#eeeadd;display:grid;grid-template-columns:1fr 1fr;gap:100px;padding-inline:max(calc((100% - 1080px)/2),32px)}.rsvp-aside h2{margin:20px 0}.rsvp-aside p:not(.eyebrow){max-width:350px;font-size:16px}.rsvp-initials{font:60px Book;color:#989b7d;margin-top:35px}.rsvp-initials i{font-size:30px;padding:0 15px}.form-panel{min-width:0}form label,legend{font-size:14px}input[type=text]{display:block;width:100%;margin-top:12px;padding:15px 0;border:0;border-bottom:1px solid #8c9474;background:transparent;border-radius:0;color:var(--ink)}input::placeholder{color:#7a7d6b}fieldset{border:0;padding:0;margin:30px 0}legend{margin-bottom:12px}.choice{display:flex;align-items:center;gap:14px;padding:15px 12px;border:1px solid #c1c5af;margin:10px 0;cursor:pointer}.choice:has(input:checked){border-color:var(--green);background:#e2e5d4}.choice input{width:18px;height:18px;accent-color:var(--green);flex-shrink:0}.submit{width:100%}.result{border:1px solid var(--line);padding:30px}.result h3{font-size:27px;margin:12px 0}.result p{margin:15px 0}.result .button{margin-top:10px}.result .text-button{display:block}.footer{text-align:center;padding:85px 24px 110px}.footer-names{font:clamp(2rem,5vw,4rem)/1.6 Book;margin:20px 0}.footer-names i{font-size:.6em;color:var(--gold);padding:0 18px}.footer .text-button{margin-top:24px}.sound{position:fixed;right:20px;bottom:20px;z-index:40;display:flex;align-items:center;gap:10px;min-height:46px;background:var(--paper);color:var(--green);border:1px solid #b5b79e;border-radius:30px;padding:12px 17px;box-shadow:0 4px 18px #18230f15;font-size:12px}.sound-bars{display:flex;gap:3px;align-items:center;height:16px}.sound-bars i{width:2px;height:4px;background:currentColor}.sound-bars i:nth-child(2){height:13px}.sound-bars i:nth-child(3){height:8px}.sound-bars i:nth-child(4){height:16px}.sound[aria-pressed=true] .sound-bars i{animation:wave 1s ease-in-out infinite alternate}.sound-bars i:nth-child(2){animation-delay:-.5s!important}.sound-bars i:nth-child(3){animation-delay:-.25s!important}.music-status{position:fixed;bottom:75px;right:20px;max-width:260px;font-size:12px;z-index:41;background:var(--paper)}[hidden]{display:none!important}.motion .reveal{opacity:0;transform:translateY(24px);transition:opacity .8s,transform .8s}.motion .reveal.visible{opacity:1;transform:none}.gate{position:fixed;inset:0;background:#e8e3d6;z-index:50;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:auto;padding:28px 24px;transition:opacity .55s .75s,visibility 0s 1.3s}.envelope-stage{position:relative;width:min(100%,440px);height:min(75svh,690px);min-height:430px;perspective:1600px;isolation:isolate;box-shadow:0 25px 60px #1f2b2335}.envelope-face{position:absolute;inset:0;background:#3c482c url('assets/envelope.webp') center/100% 100%;transform-origin:center top;transition:transform 1.1s cubic-bezier(.5,0,.2,1),opacity .8s .3s}.gate-copy{position:absolute;inset:9% 18px auto;color:#f6e8c8;text-align:center;transition:opacity .35s,transform .8s}.gate-copy .eyebrow{font-size:12px;letter-spacing:.17em}.gate-names{font:clamp(2.4rem,4vw,3.2rem)/1.4 Book;margin:25px 0 20px}.gate-names>span{display:block}.gate-names .gate-and{font-size:20px;font-style:italic;color:#c7bb8d}.gate-date{font-size:13px;letter-spacing:.08em}.open-invitation{position:absolute;left:50%;top:72%;transform:translate(-50%,-50%);border:0;background:none;color:#eee5cb;display:flex;flex-direction:column;align-items:center;gap:22px;width:100%;padding:15px;transition:opacity .3s}.seal-monogram{display:flex;align-items:center;justify-content:center;width:70px;height:70px;border-radius:50%;border:1px solid #c1b780;outline:1px solid #a79e6855;outline-offset:5px;background:#4c5734;font:24px Book;box-shadow:0 3px 13px #1116}.seal-slash{font:18px Book;opacity:.6;margin:0 2px}.open-label{font-size:14px;letter-spacing:.03em}.gate-hint{font-size:13px;margin-top:24px;text-align:center;color:#69705a}.gate.opening{opacity:0;pointer-events:none}.gate.opening .envelope-face{transform:rotateX(100deg);opacity:0}.gate.opening .gate-copy{opacity:0;transform:translateY(-25px)}.gate.opening .open-invitation{opacity:0}.gate.is-open{display:none}@keyframes wave{to{transform:scaleY(.35)}}
@media(min-width:1450px){.hero{min-height:900px}.photo-frame img{max-height:680px}}@media(max-width:850px){.hero{gap:35px;padding-inline:35px}.header{width:calc(100% - 60px)}.date-inner{gap:45px}.calendar{padding-left:35px}.rsvp-section{gap:50px}.venues{gap:40px}.hero-text h1{font-size:4rem}}@media(max-width:600px){.header{width:calc(100% - 40px);height:76px;gap:12px}.monogram{font-size:20px}.header-title{font-size:9px;letter-spacing:.1em}.header-link{font-size:12px}.hero{display:flex;flex-direction:column;gap:42px;padding:48px 28px 65px;min-height:0}.hero-text{width:100%}.hero-text .eyebrow{font-size:11px;letter-spacing:.08em}.hero-text h1{font-size:3.4rem;line-height:1.28;margin:22px 0}.hero-text h1>span{display:inline}.hero-text h1 .ampersand{display:block;font-size:25px;line-height:1.2;margin:0}.hero-note{font-size:20px}.hero-note br{display:none}.hero-date{margin:21px 0}.fine-rule{margin:23px auto}.hero-visual{width:min(100%,400px);padding:0 10px 10px 0}.vertical-note{right:-9px;font-size:9px}.photo-frame{padding:7px}.photo-caption{font-size:12px}.section{padding:68px 24px}.invitation-copy{font-size:16px}.letter-mark{width:85px;height:105px;line-height:100px;font-size:32px;margin-bottom:30px}.letter-mark span{font-size:16px}.invitation h2{font-size:1.75rem}.eyebrow{font-size:11px;letter-spacing:.08em}.date-inner{grid-template-columns:1fr;gap:45px;padding:65px 26px}.date-copy h2{font-size:3.8rem}.calendar{padding:35px 0 0;border-left:0;border-top:1px solid #fff4;width:100%;max-width:330px;margin:auto}.calendar-grid{gap:8px}.countdown{gap:10px}.countdown strong{font-size:31px}.countdown b{font-size:15px}.venues{grid-template-columns:1fr;gap:15px;margin-top:36px}.venue h3{font-size:22px}.number{font-size:37px}.venue time{font-size:24px}.program{flex-direction:column;gap:25px;border-top:0;border-left:1px solid var(--line);margin:24px 0 0 7px;padding:0 0 0 25px}.event{text-align:left;display:flex;gap:25px;align-items:center}.event:before{left:-29px;top:13px}.event time{min-width:63px;font-size:21px}.event span{margin:0;max-width:200px}.rsvp-section{grid-template-columns:1fr;gap:35px}.rsvp-aside{text-align:center}.rsvp-aside p:not(.eyebrow){margin:auto}.rsvp-initials{display:none}.result{padding:24px}.footer{padding:65px 24px 95px}.footer-names{font-size:2.2rem}.footer-names i{padding:0 10px}.sound{right:12px;bottom:12px;font-size:11px;padding:10px 13px}.gate{padding:24px 22px}.envelope-stage{height:min(76svh,670px);min-height:430px}.gate-hint{font-size:12px;max-width:280px}.gate-copy .eyebrow{font-size:11px;letter-spacing:.06em}.gate-names{font-size:2.55rem;margin:20px 0}.gate-date{font-size:12px}.open-invitation{top:76%;gap:17px}.seal-monogram{width:60px;height:60px}.open-label{font-size:12px}}@media(max-width:360px){.header-title{max-width:100px;text-align:center}.hero-text h1{font-size:3rem}.hero-text .eyebrow{font-size:10px}.button{padding-inline:20px}.countdown{gap:7px}.countdown strong{font-size:27px}.event{gap:14px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.motion .reveal{opacity:1;transform:none}}

.letter-mark b{font-weight:400}
