@font-face{font-family:Invitation;src:url('assets/serif.woff') format('woff');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:Invitation;src:url('assets/serif-italic.woff') format('woff');font-style:italic;font-weight:400;font-display:swap}
@font-face{font-family:LoveScript;src:url('assets/script.woff') format('woff');font-style:normal;font-weight:400;font-display:swap}
:root{--paper:#fbf8f0;--ink:#344c5b;--muted:#6a7a80;--blue:#8da8bb;--blue-dark:#4f7086;--gold:#a78c55;--line:#d7d2c4;--serif:Invitation,Georgia,serif;--script:LoveScript,'Palatino Linotype',cursive}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;color:var(--ink);font-family:var(--serif);font-size:16px;line-height:1.6;background-color:#e7edef;background-image:radial-gradient(ellipse at 20% 35%,#fcfaf28c,transparent 60%),repeating-linear-gradient(0deg,#9daeb708 0,#9daeb708 1px,transparent 1px,transparent 4px);-webkit-font-smoothing:antialiased}body.is-closed{overflow:hidden}button,input,textarea{font:inherit}button,a,input,summary,textarea{-webkit-tap-highlight-color:transparent}button{color:inherit}button,a,summary{touch-action:manipulation}a{color:inherit}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible{outline:2px solid var(--blue-dark);outline-offset:5px}button:disabled{cursor:wait}button svg,a svg{width:22px;height:22px;flex-shrink:0}.svg-library{position:absolute;width:0;height:0;overflow:hidden}.eyebrow,.fine-print{font-family:var(--serif);font-size:10px;font-weight:400;letter-spacing:2px;line-height:1.8}.eyebrow{display:block;color:var(--gold)}.fine-print{font-size:9px;letter-spacing:1.7px;color:var(--muted)}h1,h2,h3,p{margin:0}h2{font-size:34px;line-height:1.2;letter-spacing:-.7px;font-weight:400;margin:14px 0 20px}h2 em{font-weight:400}h3{font-size:22px;font-weight:400;line-height:1.35}.section-pad{padding:67px 44px;text-align:center;scroll-margin-top:10px}.section-subtitle{font-style:italic;color:var(--muted);font-size:15px;margin-top:-10px}.small-note{display:block;font-size:11px;color:var(--muted);line-height:1.7}.small-sprig{width:90px;height:36px;color:var(--gold);display:block;margin:0 auto 22px}.reveal{opacity:0;transform:translateY(24px);transition:opacity .9s,transform .9s}.reveal.is-visible{opacity:1;transform:none}[hidden]{display:none!important}
/* The closed envelope is a real layered paper object, rather than a flat screenshot. */
.envelope-screen{position:fixed;inset:0;z-index:30;display:flex;align-items:center;justify-content:center;flex-direction:column;background:radial-gradient(ellipse at 50% 42%,#f5f4ed 0%,#eaf0f1 62%,#dce5e9 100%);overflow:hidden;transition:opacity .8s,visibility .8s;perspective:1400px}.envelope-screen::before{content:'';position:absolute;inset:0;background-image:url('assets/watercolor-garden.png');background-size:cover;background-position:center;opacity:.10;pointer-events:none}.opening-topline{position:absolute;top:42px;font-size:9px;letter-spacing:2.1px;display:flex;align-items:center;gap:20px;color:#768997}.tiny-star{font-size:21px;color:var(--gold)}.envelope-intro{text-align:center;position:relative;margin:14px 0 45px;transition:opacity .6s,transform .6s}.envelope-intro .eyebrow{font-size:9px;color:var(--blue-dark)}.opening-title{font-family:var(--script);font-size:58px;line-height:1.3;color:var(--blue-dark);margin-top:10px}.envelope{display:block;position:relative;width:min(78vw,440px);aspect-ratio:1.5;height:auto;border:0;padding:0;background:transparent;perspective:1000px;isolation:isolate;filter:drop-shadow(0 28px 22px #53697924);transition:transform .45s;flex-shrink:0}.envelope:hover{transform:translateY(-5px)}.envelope-back{position:absolute;inset:0;border-radius:4px;background:#cad9e2;box-shadow:0 0 0 1px #a6bac5;z-index:0}.envelope-liner{position:absolute;inset:3px;border-radius:3px;background:#f9f6ef url('assets/watercolor-garden.png') center 46%/100% auto;z-index:1}.envelope-letter{position:absolute;inset:10% 7% 4%;background:var(--paper);padding:12px;z-index:2;box-shadow:0 2px 8px #4a66751a}.letter-border{border:1px solid #b29b675e;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding-top:22px}.letter-border .eyebrow{font-size:6px;letter-spacing:1.2px}.letter-names{font-family:var(--script);font-size:38px;margin-top:5px}.letter-sprig{width:65px;height:26px;color:var(--gold);margin-top:2px}.envelope-fold,.envelope-front,.envelope-flap{position:absolute;inset:0;pointer-events:none}.envelope-fold{z-index:4}.fold-left{clip-path:polygon(0 0,54% 53%,0 100%);background:linear-gradient(115deg,#c3d4df,#e0e9ed)}.fold-right{clip-path:polygon(100% 0,46% 53%,100% 100%);background:linear-gradient(245deg,#bdceda,#d7e2e8)}.envelope-front{z-index:5;clip-path:polygon(0 100%,0 99%,50% 41%,100% 99%,100% 100%);background:#d5e0e7}.envelope-front::after{content:'';position:absolute;inset:0;background:linear-gradient(160deg,#d1dfe7,#e0e8ed);clip-path:polygon(0 100%,50% 41.5%,100% 100%);filter:drop-shadow(0 -1px 1px #6c8b9b)}.envelope-flap{height:60%;clip-path:polygon(0 0,100% 0,50% 100%);background:linear-gradient(180deg,#deE8ed,#bfD1dd);z-index:7;transform-origin:50% 0;backface-visibility:visible;filter:drop-shadow(0 2px 1px #7b919f44);transition:transform 1s cubic-bezier(.45,0,.2,1);border-top:1px solid #edf2f4}.wax-seal{position:absolute;z-index:8;width:78px;height:78px;left:50%;top:49%;transform:translate(-50%,-50%) rotate(-9deg);display:grid;place-items:center;border-radius:46% 51% 48% 50%;background:radial-gradient(ellipse at 32% 20%,#e8d5a8,#c8a766 45%,#a58345 76%,#ddc490);box-shadow:1px 4px 5px #5c54313b,inset 1px 1px 2px #fff2ce,inset -2px -1px 2px #94723e;transition:transform .4s,opacity .3s}.envelope:hover .wax-seal{transform:translate(-50%,-50%) rotate(-3deg) scale(1.05)}.seal-rim{width:64px;height:64px;border:1px solid #a17f43;border-radius:50%;box-shadow:0 0 0 2px #dfc58e,inset 1px 1px 2px #8c6b3270;display:flex;align-items:center;justify-content:center;position:relative}.seal-monogram{color:#866a37;text-shadow:0 1px 1px #f2dfb8;font-family:var(--script);font-size:27px;line-height:1;padding-bottom:6px;padding-top:4px}.seal-monogram span{font-size:16px;padding:0 1px}.seal-rim svg{position:absolute;bottom:5px;width:43px;height:17px;color:#94713d}.opening-bottom{text-align:center;margin-top:42px;position:relative;transition:opacity .5s}.opening-bottom p{font-style:italic;font-size:18px;letter-spacing:.1px}.opening-bottom .fine-print{display:block;font-size:8px;margin-top:12px;letter-spacing:2.6px}.sample-label{position:absolute;bottom:24px;left:0;right:0;text-align:center;font-size:8px;letter-spacing:2px;color:#7f8b90}.envelope-screen.opening .envelope-intro{opacity:0;transform:translateY(-16px)}.envelope-screen.opening .opening-bottom{opacity:0}.envelope-screen.opening .wax-seal{opacity:0;transform:translate(-50%,-40%) scale(1.15)}.envelope-screen.opening .envelope-flap{transform:rotateX(180deg);z-index:3}.envelope-screen.opening .envelope-letter{animation:letter-out 1.6s .45s both}.envelope-screen.opening .envelope{animation:envelope-away 1.2s .95s both}.envelope-screen.is-gone{opacity:0;visibility:hidden;pointer-events:none}@keyframes letter-out{0%{transform:translateY(0)}70%{transform:translateY(-48%)}100%{transform:translateY(-65%);opacity:0}}@keyframes envelope-away{0%{transform:translateY(0)}100%{transform:translateY(100px) scale(1.04);opacity:0}}
/* A continuous sheet of illustrated wedding stationery. */
.invitation{position:relative;max-width:540px;margin:32px auto 50px;background:var(--paper);box-shadow:0 5px 50px #3d596410;opacity:0;transition:opacity 1.1s}.is-open .invitation{opacity:1}.hero{height:840px;position:relative;background:url('assets/watercolor-garden.png') center center/cover no-repeat;text-align:center;overflow:hidden}.hero-demo{position:absolute;top:18px;left:0;right:0;font-size:7px;letter-spacing:2px;color:#758389}.hero-oval{position:absolute;top:115px;left:22%;right:22%;height:490px;border:1px solid #b49b6250;border-radius:50%;transform:rotate(-1deg);pointer-events:none}.hero-oval::after{content:'';position:absolute;inset:6px -6px;border:1px solid #a88d541f;border-radius:50%;transform:rotate(3deg)}.hero-copy{padding-top:105px;position:relative;z-index:1}.hero-sprig{width:81px;height:34px;color:var(--gold);display:block;margin:0 auto 14px}.hero-copy>.eyebrow{font-size:8px;letter-spacing:1.6px;color:#758795}.hero h1{display:flex;flex-direction:column;align-items:center;font-family:var(--script);font-size:83px;line-height:.96;font-weight:400;color:#55758b;margin-top:24px;outline:none}.hero h1 i{font-family:var(--serif);font-style:italic;font-size:35px;line-height:1.1;color:var(--gold);margin:-2px 0 4px}.hero-invite{font-size:14px;line-height:1.65;margin:25px 0 20px;color:#586871}.wedding-date{display:flex;flex-direction:column;align-items:center}.date-month{font-size:11px;letter-spacing:3px}.date-center{display:grid;grid-template-columns:95px 65px 95px;align-items:center;margin:2px 0 0}.date-center>span{border-top:1px solid #c0b695;border-bottom:1px solid #c0b695;font-size:8px;letter-spacing:1.2px;padding:5px 0}.date-center strong{font-size:46px;font-weight:400;line-height:1.3}.date-year{font-size:10px;letter-spacing:3px;margin-top:-2px}.hero-place{font-size:14px;margin:19px auto 0;display:table;padding:0 8px;background:#fbf8f0dc}.hero-copy>.fine-print{font-size:8px;display:table;padding:1px 7px;background:#fbf8f0d9;margin:5px auto 0;letter-spacing:1px}.scroll-prompt{position:absolute;bottom:28px;left:50%;transform:translateX(-50%);color:#4d687a;display:flex;align-items:center;flex-direction:column;gap:8px;text-decoration:none;font-size:7px;letter-spacing:2px}.scroll-prompt svg{height:27px;width:20px;animation:drift 2.5s infinite}@keyframes drift{50%{transform:translateY(5px)}}.section-nav{display:flex;justify-content:center;align-items:center;gap:24px;padding:22px 12px;font-size:12px;border-bottom:1px solid #dfd9c84d;background:#fdfaf3}.section-nav a{text-decoration:none}.section-nav a:hover{color:var(--gold)}.section-nav>span{color:var(--gold);font-size:12px}.countdown-section{background:#fdfaf3;padding-top:57px;padding-bottom:48px}.countdown-section h2{font-family:var(--script);font-size:48px;margin-bottom:28px}.countdown{display:flex;align-items:flex-start;justify-content:center;gap:12px;margin-bottom:24px}.countdown>div{display:flex;flex-direction:column;min-width:47px}.countdown strong{font-size:37px;line-height:1.2;font-weight:400;font-variant-numeric:tabular-nums}.countdown div>span{font-size:8px;letter-spacing:1.5px;margin-top:10px;color:var(--muted)}.countdown-dot{color:#bba26b;font-size:26px;line-height:1.5}.text-button{display:inline-flex;align-items:center;justify-content:center;gap:9px;border:0;background:none;padding:10px 2px;font-size:12px;color:var(--blue-dark);text-decoration:none}.text-button .arrow{width:17px;transition:transform .25s}.text-button:hover .arrow{transform:translateX(4px)}.text-button>svg:first-child{width:16px;height:16px}.love-note{position:relative;padding-top:63px;padding-bottom:67px;background:#e9eff1}.love-note::before,.love-note::after{content:'✧';color:#b3a06f;position:absolute;left:50%;font-size:20px;transform:translateX(-50%)}.love-note::before{top:-16px}.love-note::after{bottom:-16px}.love-note h2{font-size:34px;line-height:1.3}.love-note p:first-of-type{font-size:17px;font-style:italic;margin:18px 0 20px}.love-note p:last-of-type{font-size:14px;line-height:1.95;color:#5d707a;max-width:334px;margin:auto}.note-signature{display:block;font-family:var(--script);font-size:30px;margin-top:28px;color:#5e7a8e}.celebration{padding-top:74px;padding-bottom:55px}.venue-block{display:flex;gap:22px;text-align:left;margin-top:35px;padding-top:28px;border-top:1px solid var(--line)}.venue-number{font-size:29px;font-style:italic;color:#baa778;line-height:1.25}.venue-block .eyebrow{font-size:8px;letter-spacing:1.7px;margin:1px 0 10px}.venue-block h3{font-size:23px;max-width:270px}.venue-time{font-style:italic;font-size:15px;margin-top:12px}.venue-name{font-size:12px;color:var(--muted);margin-top:6px}.celebration .small-note{margin-top:27px;font-size:10px}.timeline-section{padding-top:30px;padding-bottom:50px}.timeline-section>div{border:1px solid #c1ad7b78;border-radius:46% 46% 3px 3px / 25% 25% 3px 3px;padding:54px 25px 28px}.timeline-section .eyebrow{font-size:8px;letter-spacing:1.6px}.timeline-section h2{font-family:var(--script);font-size:44px;white-space:nowrap}.timeline{list-style:none;margin:32px 0 25px;padding:0;text-align:left}.timeline li{display:grid;grid-template-columns:63px 23px 1fr;gap:10px;position:relative;align-items:start;padding-bottom:32px}.timeline li:last-child{padding-bottom:0}.timeline li:not(:last-child)::after{content:'';position:absolute;top:22px;bottom:0;left:84px;border-left:1px solid #b7a27070}.timeline-time{font-size:10px;padding-top:4px;letter-spacing:.5px}.timeline-marker{font-size:21px;color:var(--gold);line-height:1.2;text-align:center;background:var(--paper);position:relative;z-index:1}.timeline h3{font-size:18px;letter-spacing:-.4px}.timeline p{font-size:11px;line-height:1.5;color:var(--muted);margin-top:4px}.timeline-section .small-note{font-size:9px}.dress-section{background:#edf1f1;padding-top:55px;padding-bottom:54px}.dress-section h2{font-family:var(--script);font-size:48px}.dress-section .reveal>p:not(.section-subtitle):not(.small-note){font-size:18px;font-style:italic;line-height:1.6}.dress-section .small-note{font-size:10px}.good-to-know{padding-top:67px;padding-bottom:58px}.good-to-know h2{margin-bottom:30px}.good-to-know details{border-bottom:1px solid var(--line);text-align:left}.good-to-know summary{list-style:none;cursor:pointer;padding:19px 0;display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:14px}.good-to-know summary::-webkit-details-marker{display:none}.good-to-know summary>span{font-family:Arial,sans-serif;color:var(--gold);font-size:18px;line-height:1;transition:transform .25s}.good-to-know details[open] summary>span{transform:rotate(45deg)}.good-to-know details p{font-size:13px;line-height:1.8;color:var(--muted);padding:0 14px 20px 0}.rsvp-section{padding-top:49px;padding-bottom:63px;background:#e7eef1;position:relative}.rsvp-section h2{font-family:var(--script);font-size:53px;margin-bottom:15px}.rsvp-section p{font-size:14px;line-height:1.85;color:#627784}.primary-button{display:inline-flex;align-items:center;justify-content:center;gap:40px;padding:15px 26px;background:#57788f;color:#fffdf8;border:1px solid #57788f;min-height:50px;min-width:215px;font-size:13px;letter-spacing:.6px;transition:background .25s,box-shadow .25s}.primary-button:hover{background:#42657c;box-shadow:0 3px 12px #42657c22}.primary-button svg{width:19px;height:19px}.rsvp-section .primary-button{margin:28px 0 16px}.rsvp-section .small-note{font-size:10px}.closing{height:420px;position:relative;display:flex;justify-content:center;text-align:center;background:linear-gradient(#fbf8f0 0%,#fbf8f033 35%,transparent 70%),url('assets/watercolor-garden.png') center bottom/100% auto no-repeat}.closing-copy{padding-top:42px;position:relative}.closing-copy .eyebrow{font-size:8px;letter-spacing:1.9px}.closing-copy p{font-family:var(--script);font-size:47px;line-height:1.1;margin:17px 0 15px;color:#55758b}.closing-copy p span{font-size:30px;color:var(--gold)}.closing-copy>svg{width:21px;height:21px;color:var(--gold);display:block;margin:auto}.closing-copy .fine-print{display:block;font-size:7px;letter-spacing:1.8px;margin-top:16px}.preview-footer{position:absolute;bottom:0;left:0;right:0;background:#f8f6efec;padding:10px 8px;font-size:9px;letter-spacing:.4px;color:#6f7c82}
/* Quiet desktop surroundings and accessible controls. */
.desktop-note{position:fixed;left:max(32px,calc(50% - 570px));top:50%;transform:translateY(-50%);width:210px;text-align:center;opacity:0;transition:opacity 1.5s 1s}.is-open .desktop-note{opacity:1}.side-monogram{display:block;font-size:35px;letter-spacing:4px;color:#667f90}.side-monogram i{font-size:23px;font-weight:400;color:var(--gold);letter-spacing:0}.side-rule{display:block;width:28px;height:1px;margin:24px auto;background:#ab985e}.desktop-note p{font-size:18px;line-height:1.6;font-style:italic;color:#788790;margin-bottom:28px}.desktop-note .fine-print{font-size:7px;letter-spacing:1.6px}.page-tools{position:fixed;right:28px;top:26px;z-index:12;display:flex;gap:10px;opacity:0;transform:translateY(-5px);transition:opacity .6s,transform .6s}.is-open .page-tools{opacity:1;transform:none}.tool-button{display:flex;gap:7px;align-items:center;padding:10px 14px;border:1px solid #b5c2c872;border-radius:30px;background:#f9fbf6de;backdrop-filter:blur(12px);font-size:11px;color:#667e8d;box-shadow:0 2px 10px #45606c05}.tool-button svg{width:15px;height:15px}.tool-button:hover{background:#fffdf6}.sound-waves{display:none;align-items:center;gap:2px;height:12px;margin-left:1px}.sound-waves i{display:block;width:2px;height:8px;background:var(--blue-dark);animation:sound 1.1s infinite}.sound-waves i:nth-child(2){animation-delay:.2s}.sound-waves i:nth-child(3){animation-delay:.4s}.music-button[aria-pressed=true] .sound-waves{display:flex}@keyframes sound{0%,100%{height:3px}50%{height:12px}}
.rsvp-dialog{border:1px solid #b6a06d5c;padding:48px 36px 34px;max-width:min(440px,calc(100vw - 32px));width:440px;background:var(--paper);color:var(--ink);box-shadow:0 25px 90px #29435433;max-height:calc(100dvh - 40px);overflow-y:auto}.rsvp-dialog::backdrop{background:#2a435c5e;backdrop-filter:blur(5px)}.close-dialog{position:absolute;right:15px;top:12px;border:0;background:none;font-family:Arial,sans-serif;font-size:25px;font-weight:300;width:32px;height:32px;color:#78909e}.rsvp-dialog .eyebrow{text-align:center;font-size:8px}.rsvp-dialog h2{text-align:center;font-family:var(--script);font-size:47px;margin:13px 0 8px}.dialog-subtitle{text-align:center;font-size:13px;color:var(--muted);margin-bottom:25px}.rsvp-dialog form>label{display:block;font-size:13px;margin-bottom:7px}.rsvp-dialog label>span{color:var(--muted);font-size:11px}.rsvp-dialog input:not([type=radio]),.rsvp-dialog textarea{display:block;resize:vertical;width:100%;border:1px solid #c6cdc9;background:#fffdf7;color:var(--ink);padding:11px 12px;border-radius:0;font-size:15px;line-height:1.5}.rsvp-dialog input::placeholder,.rsvp-dialog textarea::placeholder{color:#929c9c;font-size:12px}.rsvp-dialog fieldset{padding:0;border:0;margin:23px 0}.rsvp-dialog legend{font-size:13px;margin-bottom:10px}.radio-label{display:flex;align-items:center;gap:10px;min-height:38px;cursor:pointer}.radio-label span{font-size:14px!important;color:var(--ink)!important}.radio-label input{width:16px;height:16px;accent-color:var(--blue-dark)}.sample-warning{font-size:11px;line-height:1.7;color:#8c774d;text-align:center;margin:17px 0}.rsvp-dialog .primary-button{width:100%;margin-top:4px}.rsvp-dialog #rsvp-confirmation{text-align:center;padding:24px 0}.confirmation-heart{width:50px;height:50px;color:var(--gold);display:block;margin:0 auto 25px}.rsvp-dialog #rsvp-confirmation>p{font-size:15px}.rsvp-dialog #rsvp-confirmation>.sample-warning{font-size:11px}.toast{position:fixed;bottom:28px;left:50%;transform:translate(-50%,15px);max-width:calc(100vw - 30px);width:max-content;background:#3d5969;color:#fffdf5;padding:13px 22px;box-shadow:0 5px 30px #2e465c25;font-size:12px;z-index:50;opacity:0;visibility:hidden;transition:opacity .3s,transform .3s}.toast.show{opacity:1;visibility:visible;transform:translate(-50%,0)}.noscript-note{text-align:center;padding:20px;font-size:14px}
@media(min-width:1500px){.desktop-note{left:calc(50% - 600px)}.page-tools{right:calc(50% - 590px)}}
@media(max-width:1120px){.desktop-note{left:25px;width:165px}.desktop-note p{font-size:16px}.page-tools{right:18px;flex-direction:column;align-items:flex-end;gap:8px}.tool-button{font-size:10px;padding:9px 12px}}
@media(max-width:950px){.desktop-note{display:none}.page-tools{right:14px;top:14px;flex-direction:row}.tool-button>span:not(.sound-waves){display:none}.tool-button{padding:11px}.tool-button svg{height:17px;width:17px}.music-button[aria-pressed=true] .sound-waves{display:none}.music-button[aria-pressed=true]{background:#55788f;color:white}.invitation{margin-top:0;margin-bottom:0}}
@media(max-width:540px){body{background:var(--paper)}.invitation{width:100%;box-shadow:none}.hero{height:calc(100svh - 16px);min-height:740px;max-height:875px;background-size:100% 100%;background-position:center top}.hero-copy{padding-top:103px}.hero-oval{top:103px;height:480px;left:17%;right:17%}.hero h1{font-size:79px}.hero-demo{top:19px;left:14px;right:auto;font-size:6px;letter-spacing:1.4px}.hero .hero-copy>.eyebrow{font-size:7.5px;letter-spacing:1.3px}.hero-invite{font-size:13px;margin-top:23px}.hero-sprig{width:72px;margin-bottom:14px}.hero-place{font-size:13px;margin-top:17px}.hero-copy>.fine-print{font-size:7px}.section-pad{padding-left:30px;padding-right:30px}.opening-topline{top:32px;font-size:7px;letter-spacing:1.2px;gap:12px}.tiny-star{font-size:16px}.envelope-intro{margin-bottom:50px}.opening-title{font-size:53px}.envelope-intro .eyebrow{font-size:8px;letter-spacing:1.5px}.envelope{width:min(83vw,400px)}.wax-seal{width:65px;height:65px}.seal-rim{width:54px;height:54px}.seal-monogram{font-size:24px}.seal-rim svg{width:36px;bottom:3px}.letter-border{padding-top:15px}.letter-border .eyebrow{font-size:5px}.letter-names{font-size:32px}.opening-bottom{margin-top:40px}.opening-bottom p{font-size:16px}.opening-bottom .fine-print{font-size:7px}.sample-label{bottom:22px;font-size:7px}.countdown-section .eyebrow{font-size:8px;letter-spacing:1.5px}.countdown-section h2{font-size:44px}.countdown{gap:10px}.countdown strong{font-size:33px}.countdown>div{min-width:43px}.love-note h2{font-size:31px}.love-note p:last-of-type{font-size:13px}.celebration h2{font-size:33px}.celebration .eyebrow{font-size:8px;letter-spacing:1.5px}.venue-block{gap:19px}.venue-block h3{font-size:21px}.timeline-section{padding-left:27px;padding-right:27px}.timeline-section>div{padding-left:19px;padding-right:19px}.timeline-section h2{font-size:40px}.timeline li{grid-template-columns:59px 21px 1fr;gap:8px}.timeline li:not(:last-child)::after{left:77px}.timeline-time{font-size:9px}.timeline h3{font-size:17px}.timeline p{font-size:10px}.timeline-section .eyebrow{font-size:7px;letter-spacing:1.2px}.dress-section h2{font-size:45px}.dress-section>.reveal>.eyebrow{font-size:8px}.good-to-know h2{font-size:31px}.good-to-know summary{font-size:13px}.section-nav{gap:19px;font-size:11px}.closing{height:380px}.closing-copy p{font-size:43px}.closing-copy{padding-top:35px}.preview-footer{font-size:8px}.rsvp-dialog{padding:45px 25px 27px}.rsvp-dialog h2{font-size:43px}}
@media(max-width:360px){.section-pad{padding-left:23px;padding-right:23px}.hero h1{font-size:74px}.hero-oval{left:15%;right:15%}.opening-title{font-size:49px}.opening-topline{font-size:6px}.timeline-section>div{padding-left:15px;padding-right:15px}.timeline-section h2{font-size:35px}.timeline li{grid-template-columns:52px 18px 1fr;gap:7px}.timeline li:not(:last-child)::after{left:68px}.timeline-time{font-size:8px}.timeline h3{font-size:15px}.timeline p{font-size:9px}.countdown{gap:7px}.countdown>div{min-width:41px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.reveal{transform:none;opacity:1}}
@media print{body{background:white}.envelope-screen,.desktop-note,.page-tools,.section-nav,.scroll-prompt,.toast,.rsvp-dialog{display:none!important}.invitation{opacity:1;margin:0 auto;box-shadow:none}.invitation[inert]{pointer-events:auto}.reveal{opacity:1;transform:none}.section-pad{break-inside:avoid}.hero{height:800px}.preview-footer{position:static}.closing{break-inside:avoid}.primary-button,.text-button{display:none}}

/* Personal ceremony details fit inside the illustrated invitation. */
.hero-church{display:block;font-size:12px;line-height:1.55;padding:3px 0 0;max-width:265px;margin:auto}.venue-map{font-size:11px;margin-top:7px;padding-bottom:0}.venue-map .arrow{width:16px;height:16px}@media(max-width:540px){.hero-church{font-size:11px;max-width:235px}.hero-demo{font-size:6px}}

/* The full bride name stays readable on small screens. */
.letter-names{font-size:clamp(23px,6.2vw,32px)}
.hero h1 .bride-name{font-size:clamp(48px,13vw,70px);max-width:calc(100vw - 48px)}
.nuptials-label{font-size:10px;letter-spacing:3.5px;color:var(--gold);margin:14px 0 -8px}
.closing-copy p{font-size:clamp(31px,8vw,44px)}
.attire-sprig{display:block;margin:25px auto 16px;width:75px;height:30px;color:var(--gold)}
.dress-message{max-width:335px;margin:0 auto}
.timeline-time{line-height:1.5}
