:root{--paper:#f8f2e6;--paper-deep:#eee3cf;--wine:#542a36;--ink:#493d36;--muted:#786b5c;--gold:#a98750;--line:#cebaa0;--serif:Baskerville,'Palatino Linotype','Book Antiqua',Georgia,serif;--sans:'Avenir Next',Avenir,'Helvetica Neue',Arial,sans-serif;--ease:cubic-bezier(.2,.75,.2,1)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:80px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--serif);-webkit-font-smoothing:antialiased}body:before{content:'';position:fixed;inset:0;pointer-events:none;z-index:15;opacity:.035;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23000' filter='url(%23n)' opacity='.8' d='M0 0h160v160H0z'/%3E%3C/svg%3E")}button,input,textarea,select{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:default;opacity:.45}button,a{touch-action:manipulation}a{color:inherit}button:focus-visible,a:focus-visible{outline:2px solid var(--gold);outline-offset:6px}input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--gold);outline-offset:3px}[hidden]{display:none!important}.svg-defs{position:absolute;width:0;height:0;overflow:hidden}.eyebrow,label,.text-button,.button,.chapter-dock,.date-block,.venue,.gate-footer,.gate-year{font-family:var(--sans)}.eyebrow{font-size:10px;letter-spacing:.23em;text-transform:uppercase;line-height:1.8}.monogram{font-size:26px;color:var(--wine);text-decoration:none;white-space:nowrap}.monogram span{font-size:17px;font-style:italic;padding:0 5px}.skip-link{position:fixed;left:10px;top:-100px;padding:12px;background:var(--paper);z-index:100}.skip-link:focus{top:10px}.text-button{background:none;border:0;color:inherit;font-size:11px;padding:14px 0;letter-spacing:.08em}.text-button span{margin-left:8px}.ornament{display:block;width:132px;height:28px;color:var(--gold);margin:22px auto}.sprig{width:60px;height:96px;color:var(--gold)}
.gate{min-height:100svh;display:flex;flex-direction:column;align-items:center;overflow:hidden;background:radial-gradient(ellipse at 50% 43%,#fffaf0 0%,#f3eadb 70%,#e9dcc8 100%);position:relative;padding:0 24px}.gate:before,.gate:after{content:'';position:absolute;inset:13px;border:1px solid #b99e7150;pointer-events:none}.gate:after{inset:19px;border-color:#b99e7120}.gate-header{width:min(1100px,100%);height:85px;display:flex;align-items:center;justify-content:space-between;gap:15px;z-index:1}.gate-header .eyebrow{font-size:9px}.gate-year{font-size:11px;letter-spacing:.2em;color:var(--muted)}.gate-intro{text-align:center;margin:clamp(10px,3vh,40px) 0 17px;z-index:1;animation:arrive 1.3s var(--ease) both}.gate-intro h1{font-weight:400;font-size:clamp(32px,5vw,54px);letter-spacing:-.025em;margin:12px 0;color:var(--wine)}.gate-intro h1 i{font-size:.7em;color:var(--gold);padding:0 8px}.gate-intro>p:last-child{font-style:italic;font-size:17px;color:var(--muted);margin:10px 0}.unlock-form{width:min(490px,100%);z-index:2}.envelope-stage{padding:36px 0 15px;perspective:1500px}.envelope{width:100%;aspect-ratio:1.56;position:relative;isolation:isolate;filter:drop-shadow(0 20px 18px #43232220);animation:arrive 1.4s .15s var(--ease) both}.envelope-back{position:absolute;inset:0;background:#542a36;border-radius:4px;z-index:0}.letter{position:absolute;inset:10px 13px;background:var(--paper);overflow:hidden;z-index:1;text-align:center;border:1px solid #c5a771;transition:transform 1.2s .5s var(--ease)}.letter img{width:100%;height:100%;object-fit:cover;object-position:50% 64%;opacity:.6}.letter span{position:absolute;left:0;right:0;top:22px;font-size:24px;color:var(--wine)}.envelope-front{position:absolute;inset:0;z-index:3;border-radius:3px;background:linear-gradient(31deg,transparent 49.6%,#c39a6740 50%,transparent 50.4%),linear-gradient(-31deg,transparent 49.6%,#c39a6740 50%,transparent 50.4%),linear-gradient(120deg,#653844,#48232e);clip-path:polygon(0 0,50% 50%,100% 0,100% 100%,0 100%)}.envelope-flap{position:absolute;inset:0 0 46%;background:linear-gradient(160deg,#774752,#542a36);clip-path:polygon(0 0,100% 0,50% 100%);z-index:4;transform-origin:50% 0;transition:transform 1s .3s var(--ease);backface-visibility:hidden}.envelope-caption{position:absolute;bottom:24px;left:0;right:0;text-align:center;color:#d1b894;z-index:5;font:8px var(--sans);letter-spacing:.25em}.envelope-flower{position:absolute;z-index:4;color:#c8aa7750;width:60px;height:95px;bottom:32px;pointer-events:none}.flower-left{left:16px;transform:rotate(-27deg)}.flower-right{right:16px;transform:scaleX(-1) rotate(-27deg)}.wax-seal{position:absolute;left:50%;top:49%;transform:translate(-50%,-50%);width:91px;height:91px;border:0;border-radius:47% 53% 49% 51% / 52% 46% 54% 48%;background:radial-gradient(ellipse at 33% 20%,#f4db99 0%,#c9a560 35%,#a1763c 65%,#e4c68c 89%);box-shadow:0 4px 5px #24100f50,inset 0 0 0 2px #d1ad6b,inset 0 0 0 5px #a57c43;z-index:6;color:#725023;transition:box-shadow .3s,filter .3s,transform .6s,opacity .6s}.wax-seal:hover{filter:brightness(1.08);box-shadow:0 7px 16px #24100f60,inset 0 0 0 2px #d1ad6b,inset 0 0 0 5px #a57c43}.wax-seal:active{transform:translate(-50%,-48%) scale(.96)}.seal-ring{width:73px;height:73px;border:1px solid #80603275;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;margin:auto;box-shadow:inset 0 1px 1px #fce6b6}.seal-monogram{font:28px var(--serif);text-shadow:0 1px 0 #f3d69a}.seal-monogram i{font-size:17px;padding:0 2px}.seal-label{font:5px var(--sans);letter-spacing:.13em;margin-top:5px}.code-block{text-align:center;margin:22px auto 0;max-width:305px;transition:opacity .4s}.code-block label{font-size:9px;letter-spacing:.2em;display:block;margin-bottom:10px}.code-block input{width:100%;height:48px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:#fffcf350;color:var(--wine);text-align:center;font:16px var(--sans);padding:10px}.code-block input::placeholder{font:13px var(--serif);font-style:italic;color:#8e7c6d}.code-block p{font-size:13px;color:var(--muted);margin:13px 0 0}.code-block .form-error{font:12px/1.5 var(--sans);color:#8e3447;min-height:20px;margin:8px 0 0}.gate-footer{display:flex;align-items:center;justify-content:center;gap:10px;font-size:8px;letter-spacing:.23em;color:var(--muted);margin:auto 0 26px;padding-top:20px}.gate-footer svg{width:80px;height:22px;color:var(--gold)}.gate.is-opening .wax-seal{transform:translate(-50%,-105%) rotate(-18deg) scale(1.12);opacity:0}.gate.is-opening .envelope-flap{transform:rotateX(180deg)}.gate.is-opening .letter{transform:translateY(-34%)}.gate.is-opening .code-block{opacity:0}.gate.is-opening .envelope-stage{animation:envelope-away 1s 1.1s var(--ease) both}.gate.is-opening{animation:gate-away .65s 1.75s ease both}.gate.invalid .envelope{animation:shake .35s linear}.gate.is-busy .wax-seal{filter:saturate(.6)}
.site-header{height:72px;position:sticky;top:0;z-index:20;background:#f8f2e6f5;border-bottom:1px solid #cebaa050;padding:0 5%;display:flex;justify-content:space-between;align-items:center;gap:15px}.site-header .eyebrow{font-size:9px;color:var(--muted)}.site-header .text-button{color:var(--wine)}.chapter-menu{position:fixed;z-index:30;right:4%;top:74px;background:var(--paper);width:min(320px,92%);padding:14px 22px;border:1px solid var(--line);box-shadow:0 15px 40px #2a0d2520;max-height:calc(100svh - 95px);overflow:auto}.chapter-menu a{display:flex;gap:18px;align-items:center;text-decoration:none;border-bottom:1px solid #cebaa050;padding:12px 0;font-size:20px}.chapter-menu a:last-child{border:0}.chapter-menu a span{font:9px var(--sans);color:var(--gold)}.chapter-menu a[aria-current=true]{color:var(--wine);font-style:italic}main{overflow:clip}.chapter{scroll-margin-top:72px;position:relative;padding:80px 6%;isolation:isolate}.chapter-inner{max-width:1080px;margin:auto;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:clamp(40px,6vw,90px)}.art-wrap{position:relative;width:100%;max-width:460px;margin:auto}.art-frame{position:relative;padding:9px;border:1px solid #bda57685;background:#f4ead8;box-shadow:0 18px 35px #402f1612}.art-frame:after{content:'';position:absolute;inset:4px;border:1px solid #bda57665;pointer-events:none}.art-frame img{display:block;width:100%;height:auto;aspect-ratio:2/3;object-fit:contain}.art-caption{font:8px var(--sans);letter-spacing:.2em;text-transform:uppercase;text-align:center;color:var(--muted);margin:17px 0 0}.chapter-copy{text-align:center;position:relative}.chapter-copy h2{font-weight:400;font-size:clamp(44px,5.2vw,72px);line-height:1.04;letter-spacing:-.03em;margin:12px 0 18px;color:var(--wine)}.chapter-copy .intro{max-width:340px;margin:18px auto;font-size:19px;line-height:1.55;color:var(--muted)}.chapter-number{font:10px var(--sans);letter-spacing:.15em;display:flex;align-items:center;justify-content:center;gap:14px;color:var(--gold);margin:0 0 32px}.chapter-number:before,.chapter-number:after{content:'';width:44px;height:1px;background:var(--line)}.welcome{padding-top:45px;padding-bottom:75px}.welcome .art-frame{border-radius:230px 230px 0 0;padding:8px;overflow:hidden}.welcome .art-frame:after{border-radius:inherit}.welcome .art-frame img{border-radius:220px 220px 0 0}.welcome h1{font-size:clamp(46px,6.5vw,78px);font-weight:400;color:var(--wine);line-height:1.07;letter-spacing:-.025em;margin:20px 0}.welcome h1 span{display:block;font-size:inherit;font-weight:inherit}.welcome h1 i{display:block;font-weight:400;color:var(--gold);font-size:30px;margin:7px 0 9px}.welcome .wedding-date{font:11px var(--sans);letter-spacing:.19em;margin-top:26px;line-height:1.8}.welcome .invitation-note{font-style:italic;font-size:21px;line-height:1.45;max-width:330px;margin:22px auto;color:var(--muted)}.link-arrow{display:inline-flex;align-items:center;gap:20px;font:10px var(--sans);letter-spacing:.16em;text-transform:uppercase;text-decoration:none;padding:15px 0;border-bottom:1px solid var(--gold);margin-top:18px}.link-arrow span{font-size:20px;transition:transform .3s}.link-arrow:hover span{transform:translateY(4px)}.journey{background:var(--wine);color:var(--paper);padding:70px 6%}.journey .chapter-inner{display:block;max-width:800px}.journey .eyebrow{color:#d9bd93}.journey blockquote{font-size:clamp(23px,3vw,33px);font-style:italic;font-weight:400;text-align:center;line-height:1.6;margin:0 auto 14px;max-width:750px}.journey cite{font:9px var(--sans);letter-spacing:.18em;display:block;text-align:center;color:#ddc89f;font-style:normal}.journey .cities{display:grid;grid-template-columns:1fr 36px 1fr;gap:10px;align-items:center;text-align:center;margin:48px auto 30px;max-width:620px}.city p{font-size:15px;color:#e0cdbd;margin:0 0 8px}.city h2{font-weight:400;font-size:clamp(30px,5vw,56px);margin:0;white-space:nowrap;letter-spacing:-.025em;color:#fff3df}.city-amp{font-size:28px;font-style:italic;color:#d5b67d}.journey-line{display:block;max-width:380px;width:90%;height:58px;margin:0 auto;color:#cba773}.journey-line path{stroke-dasharray:400;stroke-dashoffset:400;transition:stroke-dashoffset 2s .2s ease}.journey.in-view .journey-line path{stroke-dashoffset:0}.journey .closing-line{text-align:center;font-size:29px;line-height:1.25;font-style:italic;margin:12px 0}.journey .canada{text-align:center;font:8px var(--sans);letter-spacing:.18em;line-height:2;color:#ddc89f}.event:nth-of-type(2n){background:#f0e7d8}.event.theme-evening{background:#2d3631;color:#eee6d6}.theme-evening .chapter-copy h2{color:#f0dfc2}.theme-evening .eyebrow,.theme-evening .venue,.theme-evening .event-note,.theme-evening .art-caption{color:#d5c4ac}.theme-evening .date-block{color:#eee2ce}.theme-evening .button{color:#eee2ce;border-color:#9f8760}.theme-evening .art-frame{background:#3e473a}.event.theme-haldi,.event.theme-vivah{background:#f3e5de}.event .chapter-number{margin-bottom:24px}.event .chapter-copy .eyebrow{font-size:9px}.date-block{margin:27px 0 22px;display:flex;align-items:center;justify-content:center;gap:18px;color:var(--ink)}.date-day{font-family:var(--serif);font-size:65px;font-weight:400;line-height:1}.date-meta{text-align:left;border-left:1px solid var(--line);padding:3px 0 3px 18px;font-size:10px;line-height:1.8;letter-spacing:.13em}.date-meta span{display:block}.event-time{font-size:19px;margin:0 0 24px;font-style:italic}.venue{font-size:10px;letter-spacing:.15em;line-height:1.9}.venue strong{font-weight:500;display:block}.venue .address{font-size:9px;letter-spacing:.06em;max-width:295px;margin:5px auto 0;line-height:1.7}.event-note{font-style:italic;font-size:18px;line-height:1.55;max-width:315px;color:var(--muted);margin:26px auto 0}.event-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:10px;margin:23px 0 0}.button{font-size:9px;letter-spacing:.13em;text-transform:uppercase;text-decoration:none;padding:15px 17px;min-height:44px;border:1px solid var(--line);color:var(--wine);background:transparent;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:background .2s,transform .2s}.button:hover{background:#b9985e16;transform:translateY(-2px)}.button.primary{background:var(--wine);border-color:var(--wine);color:var(--paper)}.button.primary:hover{background:#6c3b48}.petals{position:absolute;inset:10px;overflow:hidden;pointer-events:none}.petal{position:absolute;left:var(--x);top:-15px;width:7px;height:12px;border-radius:80% 0 80% 0;background:#d6a88d80;opacity:0;animation:petal-fall var(--duration) var(--delay) linear infinite;animation-play-state:paused}.in-view .petal{animation-play-state:running}.theme-haldi .petal{background:#dbaa4490}.theme-evening .petal{width:3px;height:3px;border-radius:50%;background:#f1d399;animation-name:firefly}.art-glimmer{position:absolute;inset:9px;pointer-events:none;background:linear-gradient(110deg,transparent 30%,#fff2cc17 46%,transparent 63%);background-size:300% 100%;animation:glimmer 10s ease infinite;animation-play-state:paused}.in-view .art-glimmer{animation-play-state:running}.ribbon{height:1px;max-width:calc(100% - 60px);background:var(--line);margin:auto}.join{background:#f8f2e6;text-align:center;padding:90px 24px}.join .chapter-copy{max-width:650px;margin:auto}.join h2{font-size:clamp(43px,5vw,62px);line-height:1.12}.countdown{margin:35px auto 28px;max-width:370px;display:grid;grid-template-columns:repeat(3,1fr)}.countdown>div+div{border-left:1px solid var(--line)}.countdown strong{font-size:46px;font-weight:400;color:var(--wine);font-variant-numeric:tabular-nums;display:block}.countdown span{font:8px var(--sans);text-transform:uppercase;letter-spacing:.15em;display:block;margin-top:8px}.countdown-label{font:9px var(--sans);text-transform:uppercase;letter-spacing:.16em;color:var(--muted);margin-top:36px}.join-locations{font-style:italic;font-size:20px;margin:27px 0}.rsvp{background:#eae1d2;padding:75px 24px}.rsvp-inner{max-width:590px;margin:auto}.rsvp .chapter-copy h2{font-size:clamp(41px,5vw,59px)}.rsvp .intro{font-size:17px;line-height:1.55}.rsvp-form{margin:33px auto 0}.rsvp-form fieldset{border:0;margin:0 0 24px;padding:0}.rsvp-form legend,.rsvp-form label{display:block;font:9px var(--sans);letter-spacing:.13em;text-transform:uppercase;margin-bottom:11px;line-height:1.7}.attendance-options{display:grid;grid-template-columns:1fr 1fr;gap:12px}.attendance-option{position:relative}.attendance-option input{position:absolute;opacity:0;left:14px;top:20px}.attendance-option label{cursor:pointer;background:#f8f2e666;border:1px solid #c5b299;min-height:76px;padding:15px 12px;margin:0;letter-spacing:0;text-transform:none;text-align:center;font:17px var(--serif);transition:background .2s,border-color .2s}.attendance-option small{display:block;font:10px var(--sans);color:var(--muted);margin-top:7px}.attendance-option input:checked+label{background:var(--paper);border-color:var(--wine);box-shadow:inset 0 -3px var(--wine)}.attendance-option input:focus-visible+label{outline:2px solid var(--wine);outline-offset:3px}.form-row{display:grid;grid-template-columns:1fr 130px;gap:17px}.rsvp-form input[type=text],.rsvp-form input[type=number],.rsvp-form textarea{background:#fbf6edaa;border:1px solid #c8b69f;color:var(--ink);border-radius:0;padding:13px;width:100%;font:16px var(--sans);line-height:1.5}.rsvp-form textarea{resize:vertical;min-height:95px}.field{margin-bottom:24px}.rsvp-form .primary{width:100%;min-height:51px}.local-note{font:10px/1.7 var(--sans);color:var(--muted);text-align:center;margin:14px 0}.rsvp-error{color:#8e3447;font:12px/1.6 var(--sans)}.rsvp-success{text-align:center;border:1px solid var(--line);padding:30px 22px;margin-top:30px;background:var(--paper)}.rsvp-success h3{font-size:31px;font-weight:400;color:var(--wine);margin:0 0 15px}.rsvp-success p{font-size:17px;line-height:1.5}.site-footer{padding:48px 24px 120px;text-align:center;background:var(--wine);color:#ecdcca}.site-footer .sprig{color:#c5a774;width:40px;height:70px}.site-footer p{margin:8px 0;font-style:italic;font-size:18px}.site-footer .footer-names{font-size:29px;font-style:normal;margin:15px 0 24px}.site-footer .eyebrow{font-size:8px;color:#ccb18e}.site-footer .text-button{display:block;margin:15px auto 0;font-size:9px;color:#dfc9ad;border-bottom:1px solid #b89b6b50;padding-bottom:9px}.chapter-dock{position:fixed;bottom:max(15px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);display:flex;align-items:center;justify-content:space-between;gap:15px;width:min(310px,calc(100% - 48px));height:58px;padding:4px 8px;background:#faf5e9;border:1px solid #c6ab83;box-shadow:0 4px 22px #2c151b20;z-index:25;border-radius:3px}.chapter-dock button{border:0;background:transparent;color:var(--wine);min-width:44px;min-height:44px;font-size:23px}.chapter-dock #chapter-indicator{display:flex;flex-direction:column;gap:6px;font:9px var(--sans);letter-spacing:.1em;flex:1}.chapter-dock #chapter-counter{font-size:7px;letter-spacing:.2em;color:var(--muted)}.chapter-dock #chapter-name{white-space:nowrap}.reveal-item{opacity:0;transform:translateY(25px);transition:opacity 1s var(--ease),transform 1.2s var(--ease)}.in-view .reveal-item{opacity:1;transform:translateY(0)}.chapter-copy.reveal-item{transition-delay:.14s}.art-wrap.reveal-item{transform:translateY(22px) scale(.975);transition-duration:1.3s}.in-view .art-wrap.reveal-item{transform:translateY(0) scale(1)}.motion-paused *{animation-play-state:paused!important}.noscript{padding:25px;text-align:center}.review-page{padding:40px 5%}.review-page h1{font-size:38px;font-weight:400;color:var(--wine)}.review-page table{width:100%;border-collapse:collapse;margin:25px 0;font:13px/1.5 var(--sans)}.review-page td,.review-page th{text-align:left;border-bottom:1px solid var(--line);padding:12px;vertical-align:top}.review-page .table-wrap{overflow-x:auto}
@keyframes arrive{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes envelope-away{to{transform:translateY(80vh) rotate(3deg);opacity:0}}@keyframes gate-away{to{opacity:0}}@keyframes shake{25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}@keyframes petal-fall{0%{opacity:0;transform:translate3d(0,-15px,0) rotate(0)}10%{opacity:.65}90%{opacity:.5}100%{opacity:0;transform:translate3d(35px,640px,0) rotate(240deg)}}@keyframes firefly{0%,100%{opacity:0;transform:translateY(120px)}45%{opacity:.8}70%{transform:translateY(260px)}}@keyframes glimmer{0%,20%{background-position:100% 0}80%,100%{background-position:0 0}}
@media(min-width:850px){.event:nth-of-type(2n) .art-wrap{order:2}.event:nth-of-type(2n) .chapter-copy{order:1}.gate-footer{padding-top:30px}.welcome .chapter-copy{order:2}.welcome .art-wrap{order:1}}
@media(max-width:849px){.site-header{height:62px;padding:0 21px}.site-header .eyebrow{font-size:7px;letter-spacing:.14em}.site-header .monogram{font-size:24px}.site-header .text-button{font-size:9px}.chapter-menu{top:64px}.chapter{padding:47px 22px 55px;scroll-margin-top:62px}.chapter-inner{grid-template-columns:1fr;gap:32px;max-width:480px}.chapter-copy h2{font-size:52px}.welcome{padding-top:27px;padding-bottom:47px}.welcome .chapter-inner{gap:24px}.welcome .chapter-copy{order:0}.welcome .art-wrap{order:1;max-width:365px}.welcome .eyebrow{font-size:8px}.welcome h1{font-size:48px;margin:17px 0 13px;line-height:1}.welcome h1 span{display:inline-block}.welcome h1 i{display:inline-block;font-size:25px;margin:0 8px}.welcome .invitation-note{font-size:17px;margin:15px auto 0;max-width:290px}.welcome .ornament{margin:17px auto 10px;width:100px;height:20px}.welcome .wedding-date{font-size:9px;letter-spacing:.14em;margin:13px 0 0}.welcome .link-arrow{margin-top:6px;padding:10px 0;font-size:8px}.welcome .chapter-number{display:none}.art-wrap{max-width:420px}.art-frame{padding:6px;box-shadow:0 10px 23px #402f1612}.art-frame:after{inset:3px}.art-caption{font-size:7px;margin-top:12px;line-height:1.6}.event .chapter-copy{padding:2px 4px 0}.event .chapter-number{margin-bottom:18px}.event .chapter-copy h2{font-size:51px;margin:8px 0 10px}.event .ornament{margin:16px auto}.event .date-block{margin:16px 0}.date-day{font-size:53px}.event-time{font-size:18px;margin:0 0 19px}.event-note{margin-top:20px;font-size:17px}.journey{padding:51px 22px}.journey blockquote{font-size:22px;line-height:1.6}.journey cite{font-size:8px}.journey .cities{margin:32px auto 20px;gap:4px;grid-template-columns:1fr 23px 1fr}.city p{font-size:13px}.city h2{font-size:34px}.city-amp{font-size:22px}.journey .closing-line{font-size:28px}.journey .canada{font-size:7px}.join{padding:57px 26px}.join h2{font-size:44px}.join .sprig{width:42px;height:67px}.countdown{margin:27px auto}.countdown strong{font-size:43px}.rsvp{padding:50px 25px}.rsvp .chapter-copy h2{font-size:43px}.rsvp .intro{font-size:16px}.rsvp-form{margin-top:27px}.form-row{grid-template-columns:1fr 106px;gap:12px}.attendance-option label{font-size:16px}.gate-intro{margin-top:8px}.gate-intro h1{font-size:35px}.gate-intro .eyebrow{font-size:8px}.gate-intro>p:last-child{font-size:16px}.gate-header{height:74px}.envelope-stage{padding-top:26px}.wax-seal{width:81px;height:81px}.seal-ring{width:64px;height:64px}.seal-monogram{font-size:25px}.seal-label{font-size:4.5px}.code-block{margin-top:19px}.envelope-caption{font-size:6px;bottom:19px}.envelope-flower{width:47px;height:75px;bottom:23px}.gate-footer{margin-bottom:25px}.gate .letter span{font-size:19px}}
@media(max-width:380px){.gate{padding:0 22px}.gate-intro h1{font-size:30px}.gate-header .eyebrow{font-size:7px}.gate-intro{margin:4px 0 8px}.envelope-stage{padding-top:20px}.gate-footer{padding-top:12px}.welcome h1{font-size:40px}.welcome h1 i{font-size:23px;margin:0 5px}.chapter{padding-left:17px;padding-right:17px}.city h2{font-size:30px}.journey blockquote{font-size:20px}.site-header .eyebrow{display:none}.attendance-options{grid-template-columns:1fr}.form-row{grid-template-columns:1fr}.rsvp .chapter-copy h2{font-size:37px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.reveal-item,.art-wrap.reveal-item{opacity:1;transform:none}.journey-line path{stroke-dashoffset:0}.petals,.art-glimmer{display:none}.gate.is-opening{opacity:0}}

/* Readable stationery typography, including small-screen metadata. */
html{scroll-padding-top:0}
.typing .chapter-dock{display:none}
.eyebrow,.gate-header .eyebrow,.gate-year,.gate-footer,.site-header .eyebrow,.event .chapter-copy .eyebrow,.welcome .eyebrow,.site-footer .eyebrow{font-size:.75rem;letter-spacing:.13em}
.code-block label,.rsvp-form legend,.rsvp-form label{font-size:.875rem;letter-spacing:.08em}
.code-block p,.code-block .form-error,.local-note,.rsvp-error{font-size:.8125rem}
.text-button,.site-header .text-button,.site-footer .text-button{font-size:.75rem}
.button,.welcome .link-arrow,.link-arrow{font-size:.8125rem;letter-spacing:.09em}
.date-meta,.venue{font-size:.875rem;letter-spacing:.08em}
.venue .address{font-size:.8125rem;letter-spacing:.02em}
.chapter-number,.art-caption,.journey cite,.journey .canada,.countdown-label,.countdown span,.chapter-menu a span{font-size:.75rem;letter-spacing:.1em}
.welcome .wedding-date{font-size:.875rem;letter-spacing:.1em}
.chapter-dock #chapter-indicator,.chapter-dock #chapter-counter{font-size:.75rem;letter-spacing:.04em}
.chapter-dock{height:65px;width:min(340px,calc(100% - 36px))}
.chapter-menu a{min-height:48px}
.attendance-option label{font:1.0625rem var(--serif);letter-spacing:0}
.attendance-option small{font-size:.75rem}
.timezone{font: .75rem var(--sans);letter-spacing:.04em;margin-left:3px}
.optional{font-size:.75rem;letter-spacing:0;text-transform:none}
.form-row label{min-height:44px;margin-bottom:8px}
.welcome .art-frame,.welcome .art-frame img,.welcome .art-frame:after{border-radius:0}
.has-entered .reveal-item{opacity:1;transform:translateY(0)}
.has-entered .art-wrap.reveal-item{transform:translateY(0) scale(1)}
.journey.has-entered .journey-line path{stroke-dashoffset:0}
@media(max-width:849px){.site-header .eyebrow{display:none}.gate-header .eyebrow{font-size:.6875rem}.welcome h1 span{display:block}.welcome h1{font-size:3.25rem}.welcome h1 i{display:block;font-size:1.5rem;margin:7px 0}.art-caption{font-size:.75rem;line-height:1.7}.event .chapter-copy h2{font-size:3rem}.event .chapter-number{font-size:.6875rem}.journey .canada{font-size:.75rem;letter-spacing:.07em}.city h2{font-size:2.05rem}.rsvp .form-row{grid-template-columns:1fr}.form-row label{min-height:0}.chapter-dock #chapter-counter{font-size:.6875rem}}
@media(max-width:380px){.gate-header .gate-year{display:none}.gate-header{gap:8px}.gate-header .eyebrow{font-size:.6875rem}.gate-intro h1{font-size:1.875rem}.gate-footer{font-size:.6875rem;letter-spacing:.1em}.city h2{font-size:1.8rem}.city p{font-size:.875rem}.journey .cities{grid-template-columns:minmax(0,1fr) 20px minmax(0,1fr)}.chapter-number{letter-spacing:.04em}.chapter-dock{gap:3px}}

/* Shared invitation lettering and evening celebration palette. */
.welcome .family-intro,.gate-intro .family-intro{ text-transform:none; letter-spacing:.06em; }
.journey .closing-line{font-family:var(--serif);font-style:normal;font-weight:400;}
#join-heading,#rsvp-heading{font-family:var(--serif);font-style:normal;font-weight:400;}

/* Consistent opening stationery and invitation lettering. */
.gate,.welcome{background:#f3e5de;}
.welcome .family-intro,.gate-intro .family-intro{font-family:var(--serif);font-size:21px;font-style:italic;font-weight:400;line-height:1.45;letter-spacing:0;text-transform:none;color:var(--muted);}
.rsvp-form .attendance-option label{font-family:var(--serif);font-size:19px;font-style:normal;font-weight:400;line-height:1.45;letter-spacing:0;text-transform:none;}
.rsvp-form .attendance-option small{font-family:var(--serif);font-size:14px;font-style:italic;letter-spacing:0;text-transform:none;}
@media(max-width:849px){.welcome .family-intro,.gate-intro .family-intro{font-size:17px;}.rsvp-form .attendance-option label{font-size:17px;}}

/* One paper colour across every light invitation page. */
.gate,.welcome,.event.theme-haldi,.event.theme-vivah,.join,.rsvp{background:var(--paper);}
