@font-face{font-family:InvitationSerif;src:url('assets/cormorant-garamond.woff2') format('woff2');font-style:normal;font-weight:300 700;font-display:swap}
@font-face{font-family:InvitationScript;src:url('assets/pinyon-script.woff2') format('woff2');font-style:normal;font-weight:400;font-display:swap}
:root{--paper:#eee7ed;--ink:#5c4a60;--muted:#86748a;--lilac:#b5a4bc;--deep:#79667f;--line:#c7b8ca;--script:InvitationScript,'Brush Script MT','Segoe Script',cursive;--serif:InvitationSerif,'Palatino Linotype',Georgia,serif;--sans:'Segoe UI',Arial,sans-serif;--column:600px}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:25px}body{margin:0;background:#ddd2df;color:var(--ink);font-family:var(--serif);font-size:17px;-webkit-font-smoothing:antialiased}body:before{content:'';position:fixed;inset:0;z-index:-1;background:radial-gradient(ellipse at 20% 15%,#f0e9ed88,transparent 58%),radial-gradient(ellipse at 85% 80%,#b8a6bf55,transparent 60%),repeating-linear-gradient(93deg,#ffffff08 0 1px,#00000002 1px 3px)}body[data-stage=sealed],body[data-stage=opening]{overflow:hidden}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit}button{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid #78607f;outline-offset:6px}button:disabled{cursor:default}svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.35;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}[hidden]{display:none!important}.symbol-library{position:absolute;width:0;height:0;overflow:hidden}.script{font-family:var(--script);font-weight:400}.eyebrow,.section-kicker{font-family:var(--sans);font-size:10px;line-height:1.8;letter-spacing:2.4px;font-weight:400}.section-kicker{font-size:9px;letter-spacing:2.6px;margin:0 0 18px}.section-title{font-size:43px;font-weight:400;line-height:1.15;margin:0}.section-space{padding:80px 45px;text-align:center}.body-copy{font-size:18px;line-height:1.8;font-weight:400}.flourish{display:block;font-size:35px;color:#9d87a4;font-family:Georgia,serif}.small-star{font-size:23px;color:#a68eac}.desktop-note{position:fixed;left:44px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;align-items:center;gap:24px;writing-mode:vertical-rl;font:9px var(--sans);letter-spacing:3px;color:#8e7896}.desktop-note i{height:70px;width:1px;background:#b9a6c0}.page-controls{position:fixed;z-index:30;right:max(24px,calc((100vw - var(--column))/2 - 72px));top:24px;display:flex;flex-direction:column;gap:10px}.icon-button{width:42px;height:42px;display:grid;place-items:center;border:1px solid #a78fac65;border-radius:50%;background:#f0e8f08c;backdrop-filter:blur(12px);transition:background .2s,transform .2s}.icon-button:hover{background:#fff8;transform:translateY(-2px)}
/* The envelope is constructed from individually animated paper layers. */
.opening{position:fixed;inset:0;z-index:20;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;padding:28px 22px;background:radial-gradient(ellipse at 50% 30%,#f0e6ee70,transparent 70%),#ddd2df;transition:opacity .85s ease,visibility .85s}.opening-heading{display:flex;gap:22px;align-items:center;color:#78627f;flex-shrink:0}.opening-heading p{font:9px var(--sans);letter-spacing:3.5px}.tiny-star{font-size:18px}.envelope-scene{width:min(390px,100%);height:min(65svh,630px);perspective:1600px;position:relative}.envelope{width:100%;height:100%;position:relative;isolation:isolate;filter:drop-shadow(0 20px 35px #70557635);transition:transform 1.6s cubic-bezier(.22,1,.36,1)}.envelope-back,.envelope-side,.envelope-bottom,.envelope-flap{position:absolute;inset:0;background-color:#c9bbcb;background-image:linear-gradient(125deg,#f8f0f526,#66537118),url('assets/botanical-paper.webp');background-size:cover;border-radius:3px}.envelope-back{z-index:0;background-image:linear-gradient(135deg,#9b879f,#c6b4ca);box-shadow:inset 0 0 50px #67506d30}.envelope-side{z-index:3;transition:transform 1.4s ease,opacity .9s ease}.envelope-left{clip-path:polygon(0 0,54% 52%,0 100%);background-position:0 0;filter:brightness(.96)}.envelope-right{clip-path:polygon(100% 0,46% 52%,100% 100%);background-position:100% 0;filter:brightness(.98)}.envelope-bottom{z-index:4;clip-path:polygon(0 100%,0 54%,50% 38%,100% 54%,100% 100%);background-image:linear-gradient(0deg,#a998af20,#f9eff84d),url('assets/botanical-paper.webp');background-position:center bottom;transition:transform 1.7s ease,opacity 1.1s ease}.envelope-bottom:before{content:'';position:absolute;inset:38% 0 0;background:linear-gradient(158deg,transparent 30.3%,#f9eff970 30.5%,transparent 31%),linear-gradient(-158deg,transparent 30.3%,#f9eff970 30.5%,transparent 31%)}.envelope-flap{z-index:5;clip-path:polygon(0 0,100% 0,100% 39%,50% 56%,0 39%);transform-origin:50% 0;backface-visibility:hidden;background-image:linear-gradient(165deg,#eee4ed15,#8a739328),url('assets/botanical-paper.webp');filter:drop-shadow(0 3px 3px #66506c66);transition:transform 1.6s cubic-bezier(.4,0,.25,1)}.envelope-flap:after{content:'';position:absolute;left:0;right:0;top:38%;height:20%;background:linear-gradient(19deg,transparent 49%,#faeff575 49.4%,transparent 50%),linear-gradient(-19deg,transparent 49%,#faeff575 49.4%,transparent 50%)}.wax-seal{position:absolute;z-index:6;top:48%;left:50%;transform:translate(-50%,-50%) rotate(-8deg);width:91px;height:94px;padding:7px;border:0;border-radius:47% 50% 45% 48%/48% 43% 51% 47%;background:linear-gradient(130deg,#e7dce5 0%,#b6a2ba 30%,#938096 62%,#d0bfd2 100%);box-shadow:2px 5px 7px #3f2b4d60,inset 1px 1px 2px #fff9,inset -1px -2px 3px #71607990;transition:transform .65s ease,opacity .6s ease;animation:seal-appear 1.3s ease both}.wax-seal:hover{transform:translate(-50%,-50%) rotate(-8deg) scale(1.055)}.seal-ring{width:100%;height:100%;border:1px solid #78627d;outline:1px solid #e1d3e2;outline-offset:-5px;border-radius:50%;display:grid;place-content:center;position:relative;box-shadow:inset 1px 2px 3px #77617b60}.seal-monogram{font-family:var(--script);font-size:47px;line-height:1;color:#79637e;text-shadow:1px 1px 0 #ecdfeb,-.5px -.5px 0 #705d75;position:relative;padding:0 10px 7px 0}.seal-monogram span{position:absolute;font-size:43px;left:26px;top:7px}.seal-leaf{font-family:Georgia,serif;font-size:18px;position:absolute;bottom:2px;left:25px;color:#8f7694;text-shadow:0 1px #e9dce8}.invitation-letter{position:absolute;inset:15px;z-index:2;background:#e9dfe9;overflow:hidden;display:grid;place-items:center;box-shadow:0 1px 10px #6d527344;transition:transform 1.8s cubic-bezier(.22,1,.36,1)}.letter-frame{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;opacity:.8}.letter-message{text-align:center;width:100%;padding:10%;opacity:0;transition:opacity 1.5s .2s}.letter-message .eyebrow{font-size:9px}.letter-names{font-size:72px;line-height:.94;margin:35px 0}.letter-names span{display:block;font-size:27px;line-height:1.4}.letter-date{font:9px var(--sans);letter-spacing:3px}.little-flourish{font-size:25px;color:#aa92b0}.ribbon{position:absolute;inset:0;z-index:3;transition:opacity 1.3s}.ribbon-band{position:absolute;top:46%;height:30px;width:55%;background:linear-gradient(0deg,#b29bb7,#e1d0e0 15%,#c4adc7 29%,#e7d7e4 55%,#c0a7c3 77%,#9d83a4);box-shadow:0 4px 4px #6b4c6b30;transition:transform 1.5s ease,opacity 1s}.ribbon-band-left{left:0;transform:rotate(5deg)}.ribbon-band-right{right:0;transform:rotate(-5deg)}.bow-loop{position:absolute;top:43%;height:42px;width:99px;border:15px solid #cab3cf;border-top-color:#e2cfdf;border-bottom-color:#ad8fb5;box-shadow:0 4px 5px #6f527153,inset 0 3px 7px #75557766;border-radius:55% 55% 52% 55%;transition:transform 1.4s ease,opacity 1s}.bow-loop-left{left:calc(50% - 94px);transform:rotate(20deg);transform-origin:right center}.bow-loop-right{right:calc(50% - 94px);transform:rotate(-20deg);transform-origin:left center}.bow-knot{position:absolute;left:calc(50% - 15px);top:calc(46% - 8px);width:30px;height:34px;background:linear-gradient(85deg,#bca0c0,#e8d6e3 38%,#bea2c4 72%,#ab8fb2);border-radius:44% 35% 40% 40%;box-shadow:0 4px 4px #624c6755;transition:transform 1s,opacity 1s}.bow-tail{position:absolute;width:30px;height:100px;top:48%;background:linear-gradient(90deg,#b49bbd,#e2cedd 32%,#c3a7c8 72%,#b197b8);clip-path:polygon(0 0,100% 0,100% 100%,50% 87%,0 100%);filter:drop-shadow(2px 3px 2px #61486844);transition:transform 1.5s ease,opacity 1.3s}.bow-tail-left{left:calc(50% - 27px);transform:rotate(20deg);transform-origin:top}.bow-tail-right{right:calc(50% - 27px);transform:rotate(-20deg);transform-origin:top}.opening-caption{text-align:center;min-height:53px;transition:opacity .6s}.opening-caption p{font-size:19px;font-style:italic;margin:0 0 11px}.opening-caption>span{font:8px var(--sans);letter-spacing:2.8px;color:#8b7492}.skip-intro{border:0;background:none;font:10px var(--sans);letter-spacing:.4px;display:flex;align-items:center;gap:9px;opacity:.65;padding:5px}.skip-intro svg{width:15px;height:15px}.opening.is-opening .wax-seal{opacity:0;transform:translate(-50%,-60%) rotate(-20deg) scale(1.35);pointer-events:none}.opening.is-opening .envelope-flap{transform:rotateX(180deg)}.opening.is-unfolded .envelope-left{transform:translate(-74%,0) rotate(-18deg);opacity:0}.opening.is-unfolded .envelope-right{transform:translate(74%,0) rotate(18deg);opacity:0}.opening.is-unfolded .envelope-bottom{transform:translateY(80%);opacity:0}.opening.is-unfolded .envelope-back{opacity:0;transition:opacity 1s}.opening.is-unfolded .invitation-letter{transform:scale(1.04)}.opening.is-untying .ribbon-band-left{transform:translateX(-115%) rotate(-12deg);opacity:0}.opening.is-untying .ribbon-band-right{transform:translateX(115%) rotate(12deg);opacity:0}.opening.is-untying .bow-loop-left{transform:translateX(-110px) rotate(-20deg) scaleX(.2);opacity:0}.opening.is-untying .bow-loop-right{transform:translateX(110px) rotate(20deg) scaleX(.2);opacity:0}.opening.is-untying .bow-tail-left{transform:translateX(-130px) rotate(65deg);opacity:0}.opening.is-untying .bow-tail-right{transform:translateX(130px) rotate(-65deg);opacity:0}.opening.is-untying .bow-knot{transform:scale(.4);opacity:0}.opening.is-untying .letter-message{opacity:1}.opening.is-complete{opacity:0;visibility:hidden;pointer-events:none}.opening.is-unfolded .opening-caption{opacity:.65}
/* The invitation is a continuous, vertically scrolling piece of stationery. */
.invitation{max-width:var(--column);margin:auto;background:var(--paper);box-shadow:0 0 70px #73557f13;opacity:0;visibility:hidden;transition:opacity 1.2s}.invitation.is-visible{opacity:1;visibility:visible}.paper-section{background-image:linear-gradient(#eee7ed99,#eee7ed99),url('assets/botanical-paper.webp');background-size:cover;background-position:center}.hero{min-height:900px;height:100svh;max-height:1100px;padding:26px;position:relative;display:flex;align-items:stretch}.hero:before{content:'';position:absolute;inset:19px;background:url('assets/frame.svg') center/100% 100% no-repeat;pointer-events:none}.hero-inner{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;position:relative;width:100%;padding:70px 20px}.hero .eyebrow{font-size:9px;letter-spacing:2.1px}.couple-names{font-size:109px;line-height:1.04;margin:35px 0 25px;letter-spacing:-2px;font-weight:400}.ampersand{display:block;font-size:37px;line-height:1.3;letter-spacing:0;margin:3px 0}.hero-message{font-size:18px;line-height:1.6;margin:0 0 32px;font-style:italic}.wedding-date{display:flex;flex-direction:column;gap:12px}.wedding-date>span{font:8px var(--sans);letter-spacing:2.1px}.wedding-date strong{font-size:26px;font-weight:400;letter-spacing:4px}.wedding-date i{font-weight:400;font-style:normal;opacity:.5}.hero .flourish{margin-top:35px}.scroll-cue{display:flex;flex-direction:column;align-items:center;gap:14px;text-decoration:none;position:absolute;bottom:40px;font:7px var(--sans);letter-spacing:2.3px}.scroll-cue i{height:30px;width:1px;background:linear-gradient(var(--deep),transparent);animation:scroll-hint 2.8s ease infinite}.countdown-section{padding:47px 35px 43px;text-align:center;color:#f2eaf3;background:#8c7895;background-image:radial-gradient(ellipse at top,#a691ae,transparent 85%)}.countdown-section .section-kicker{font-size:8px;color:#eaddeb;margin-bottom:6px}.countdown-section h2{font-size:44px;margin:0 0 25px}.countdown{display:flex;align-items:center;justify-content:center;gap:17px;padding:23px 28px;background:#eee5ec;color:#6e5476;box-shadow:0 5px 14px #51365b17;position:relative;clip-path:polygon(0 8%,3% 8%,3% 0,97% 0,97% 8%,100% 8%,100% 92%,97% 92%,97% 100%,3% 100%,3% 92%,0 92%)}.countdown div{display:flex;flex:1;flex-direction:column;align-items:center;gap:5px}.countdown strong{font-weight:400;font-size:35px;line-height:1;font-variant-numeric:tabular-nums}.countdown span{font:7px var(--sans);letter-spacing:1.4px}.countdown i{font-size:22px;font-style:normal;opacity:.45;align-self:flex-start}.text-button{border:0;background:none;display:inline-flex;align-items:center;justify-content:center;gap:10px;font-size:15px;padding:12px 0;text-decoration:none}.text-button svg{width:17px;height:17px}.text-button.light{color:#f0e4f1;font-size:14px;font-style:italic;padding-bottom:0;margin-top:13px}.text-button:hover{opacity:.7}.our-story{padding:50px 38px 44px;text-align:center;position:relative;background:linear-gradient(0deg,#bba6c340,#d3c0d460),url('assets/botanical-paper.webp') center/cover}.story-ornament{font-size:31px;color:#f1e4ef;text-shadow:0 1px #8a7192;margin-bottom:27px}.portrait-wrap{position:relative;width:235px;margin:0 auto 27px}.portrait-mat{padding:10px;background:linear-gradient(115deg,#e8dce7,#b8a1bf 35%,#f1e4ed 70%,#ad96b4);box-shadow:0 7px 18px #70507930;border-radius:49.5%;outline:1px solid #baa3c0;outline-offset:4px}.portrait-mat img{display:block;width:100%;height:285px;object-fit:cover;object-position:50% 40%;border-radius:49%;filter:saturate(.62)}.portrait-sprig{position:absolute;font-size:75px;bottom:0;right:-25px;color:#ece0eb;text-shadow:0 2px 1px #9e82a6;transform:rotate(-25deg)}.story-quote{font-size:39px;margin:25px 0 16px}.story-copy{font-size:17px;line-height:1.8}.our-story .small-star{display:block;margin-top:24px}.location{background:#f4eef2}.location-name{font-size:45px;margin:12px 0 4px}.location>.eyebrow{font-size:9px;margin:0 0 28px}.location .body-copy{margin-bottom:0}.manor-illustration{display:block;width:100%;height:auto;max-height:265px;margin:15px auto 0;object-fit:contain}.address{font-size:15px;line-height:1.7;margin:10px 0 25px;color:#816b87}.outline-button,.filled-button{display:inline-flex;align-items:center;justify-content:center;gap:14px;min-height:47px;border:1px solid #b29ab9;padding:15px 27px;background:transparent;font:9px var(--sans);letter-spacing:1.8px;text-decoration:none;transition:background .2s,color .2s,transform .2s}.outline-button svg,.filled-button svg{width:16px;height:16px}.outline-button:hover{background:#e1d3e54d;transform:translateY(-2px)}.filled-button{background:#8c7197;border-color:#8c7197;color:#fff6ff}.filled-button:hover{background:#765982;transform:translateY(-2px)}.schedule{background:#e2d5e2;position:relative;padding-top:100px;padding-bottom:64px}.schedule:before{content:'';position:absolute;inset:0;background:url('assets/curtains.svg') center top/100% 100% no-repeat;pointer-events:none}.schedule-content{position:relative}.schedule .section-kicker{font-size:8px}.schedule h2{font-size:60px;margin:0 0 10px}.schedule>.body-copy,.schedule-content>.body-copy{font-size:16px;margin-bottom:36px}.timeline{padding:0;list-style:none;margin:25px auto 0;max-width:320px;text-align:left}.timeline li{padding:0 0 34px 40px;position:relative;min-height:100px}.timeline li:before{content:'';position:absolute;left:13px;top:9px;height:100%;width:1px;background:#ad95b65c}.timeline li:last-child:before{display:none}.timeline li:last-child{padding-bottom:15px}.timeline-dot{position:absolute;left:9px;top:8px;width:9px;height:9px;border:1px solid #94749f;transform:rotate(45deg);background:#decfde}.timeline time{font-size:17px;letter-spacing:1.4px}.timeline h3{font-size:19px;font-weight:400;margin:3px 0 5px}.timeline p{font-size:14px;line-height:1.6;margin:0;color:#82698b}.schedule .flourish{margin-top:10px}.dress-section{background:#ede5ed;padding:62px 32px}.dress-card{position:relative;padding:64px 30px 65px;background:url('assets/frame.svg') center/100% 100% no-repeat}.dress-card .section-kicker{font-size:7px;letter-spacing:1.8px}.dress-subtitle{font-size:34px;margin:10px 0}.attire-illustration{width:190px;height:170px;object-fit:contain;margin:18px auto 6px;display:block}.dress-card .body-copy{font-size:16px;line-height:1.8}.color-palette{display:flex;justify-content:center;gap:13px;margin:25px 0}.color-palette span{width:24px;height:24px;border-radius:50%;background:var(--swatch);box-shadow:0 0 0 4px #f2eaf0,0 0 0 5px #c7b5c8}.dress-note{font-size:13px;line-height:1.7;color:#8d7594}.mini-seal{position:absolute;bottom:20px;right:18px;width:58px;height:58px;border-radius:48% 45% 49% 46%;background:linear-gradient(130deg,#d9c7d9,#bca3c2 50%,#dfcddf);border:3px double #ad92b5;box-shadow:1px 3px 5px #87658d33;display:flex;align-items:center;justify-content:center;gap:2px;font-family:var(--script);font-size:26px;color:#9d7da5;text-shadow:0 1px #ecdfeb;transform:rotate(-15deg)}.mini-seal span{font-size:15px}.satin-divider{height:145px;position:relative;overflow:hidden;background:linear-gradient(155deg,#cab6cc,#ecdeea 22%,#af94b6 32%,#dbc7db 42%,#f5e9f0 55%,#ac8fb2 65%,#e5d6e5 76%,#c3a9c8);box-shadow:inset 0 0 25px #785c7e25;display:grid;place-items:center}.satin-divider:before,.satin-divider:after{content:'';position:absolute;width:130%;height:80px;left:-15%;border-radius:50%;background:linear-gradient(#8d6e9833,#e9d6e8,#b797bf);transform:rotate(-18deg);box-shadow:0 8px 13px #60436b27}.satin-divider:before{top:-8px}.satin-divider:after{bottom:-45px;transform:rotate(13deg)}.satin-divider>span{z-index:1;color:#f5ebf2;font:43px var(--script);transform:rotate(-8deg);text-shadow:0 1px 5px #7e5785}.rsvp-section{background:#eee5ed;padding-top:60px;padding-bottom:75px}.stamp-illustration{width:160px;height:130px;object-fit:contain;display:block;margin:0 auto 20px;opacity:.8}.rsvp-section h2{font-size:70px;line-height:1.2;margin:4px 0 18px}.rsvp-section .section-kicker{font-size:8px;letter-spacing:2px}.rsvp-section .body-copy strong{font-weight:600}.rsvp-section .filled-button{margin-top:15px;min-width:236px}.rsvp-note{font-size:12px;font-style:italic;margin-top:18px;color:#967d9c}.stay-section{background:#f6f0f3;border-top:1px solid #d7c7db}.stay-section h2{font-size:57px;margin:0 0 22px}.stay-section .section-kicker{font-size:8px}.stay-card{padding:28px 20px 14px;margin:30px 5px 26px;border:1px solid #cdbbd1;outline:1px solid #e1d5e4;outline-offset:5px;position:relative}.stay-card .small-star{background:#f6f0f3;position:absolute;top:-16px;left:calc(50% - 20px);width:40px}.stay-card h3{font-weight:400;font-size:25px;margin:7px 0 13px}.stay-card p{font-size:15px;line-height:1.7}.stay-badge{display:block;font:7px var(--sans);letter-spacing:1.3px;color:#9c82a3;margin:20px 0 2px}.stay-card .text-button{font-size:14px}.stay-footnote{font-style:italic;font-size:16px;line-height:1.8;margin-top:38px}.footer{text-align:center;padding:60px 30px 25px;background-position:center bottom}.footer>.flourish{margin-bottom:20px}.footer>p:not([class]){font-size:17px;margin-bottom:5px}.footer-script{font-size:38px;margin:0 0 40px}.footer-monogram{font-family:var(--script);font-size:63px;line-height:1;display:flex;justify-content:center;align-items:center;gap:7px;margin-bottom:20px}.footer-monogram span{font-size:29px}.footer .eyebrow{font-size:8px}.footer>.text-button{margin-top:20px;font-size:13px;color:#9b83a2}.demo-note{font:8px var(--sans);letter-spacing:.5px;color:#a08ca5;margin:35px 0 0}.reveal{opacity:0;transform:translateY(19px);transition:opacity .95s ease,transform 1.1s cubic-bezier(.22,1,.36,1)}.reveal.is-revealed{opacity:1;transform:none}
/* Dialogs remain light, readable and usable on small screens. */
.modal{width:min(480px,calc(100% - 30px));max-height:calc(100svh - 40px);border:1px solid #baa3c2;background:#f4edf3;color:var(--ink);padding:48px 35px 35px;text-align:center;box-shadow:0 20px 90px #35213c55;overflow-y:auto;overscroll-behavior:contain}.modal::backdrop{background:#42304975;backdrop-filter:blur(8px)}.modal[open]{animation:modal-enter .35s ease}.modal-close{position:absolute;right:12px;top:12px;width:32px;height:32px;border-color:#bca6c555;background:transparent}.modal-close svg{width:17px;height:17px}.modal .section-kicker{font-size:8px;letter-spacing:1.7px}.modal-title{font-size:45px;line-height:1.2;margin:0 0 18px}.modal-intro{font-size:16px;line-height:1.65;margin:10px 0 24px}.modal .filled-button{width:100%}.modal form{text-align:left}.attendance{border:0;padding:0;margin:24px 0 20px;display:flex;gap:8px}.attendance legend{font-size:15px;margin-bottom:10px}.attendance label{display:flex;align-items:center;flex:1;cursor:pointer}.attendance input{position:absolute;opacity:0;width:1px;height:1px}.attendance span{border:1px solid #c9b6ce;padding:12px 6px;width:100%;text-align:center;font-size:14px;transition:background .2s}.attendance input:checked+span{background:#d8c7df;border-color:#a78ab3}.attendance input:focus-visible+span{outline:2px solid var(--deep);outline-offset:3px}.field{display:flex;flex-direction:column;gap:8px;font-size:15px;margin:15px 0}.field>span{display:contents;color:#a18aa7}.field input,.field select,.field textarea{width:100%;background:#fffbfd88;color:var(--ink);border:1px solid #ccb9d0;border-radius:0;padding:12px 13px;font:14px var(--sans);line-height:1.5}.field input::placeholder,.field textarea::placeholder{color:#af9bb5}.field textarea{resize:vertical;min-height:85px}.form-demo-note{font:10px/1.7 var(--sans);color:#9a839f;margin:20px 0}.form-error{font:12px/1.5 var(--sans);color:#9b3e67;text-align:center}.success-check{display:grid;place-items:center;width:65px;height:65px;margin:0 auto 28px;border:1px solid #ac91b6;border-radius:50%;background:#e4d6e9}.success-check svg{width:30px;height:30px}.modal #rsvp-success .text-button{display:flex;margin:18px auto 0;font-size:14px}.illustrated-map{height:230px;position:relative;overflow:hidden;background:radial-gradient(ellipse at 20% 20%,#d5d7c3 0 12%,transparent 13%),radial-gradient(ellipse at 90% 80%,#d8d5c3 0 26%,transparent 27%),repeating-linear-gradient(112deg,#e1d5df 0px,#e1d5df 7px,#d8c9d5 8px,#e1d5df 10px);border:1px solid #d1bfd5;margin:22px 0}.map-road{position:absolute;height:400px;width:10px;background:#f7f0e8;box-shadow:0 0 0 1px #d2c1c8;top:-100px;transform:rotate(50deg);left:65px}.road-two{left:240px;transform:rotate(-30deg);width:7px}.map-label{position:absolute;top:26px;left:20px;font:8px var(--sans);letter-spacing:2px;color:#a48b9b}.illustrated-map>img{position:absolute;bottom:42px;left:25%;width:50%;height:120px;object-fit:contain;background:radial-gradient(#eee5e6bb,transparent 70%)}.map-pin{position:absolute;left:calc(50% - 14px);top:52px;color:#876090}.map-pin svg{width:28px;height:28px}.map-caption{position:absolute;bottom:29px;left:0;width:100%;font:26px var(--script)}.room-option{text-align:left;padding:20px 0;border-top:1px solid #dbcddd}.room-option h3{font-weight:400;font-size:25px;margin:0 0 10px}.room-option p{font-size:16px;line-height:1.6;margin:0 0 12px}.room-option>span{font:10px var(--sans);letter-spacing:.3px;color:#9b7da4}.toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);padding:14px 22px;background:#71587b;color:#fbf3fa;z-index:100;font:12px/1.6 var(--sans);max-width:calc(100% - 30px);width:max-content;box-shadow:0 5px 20px #62466d40}.noscript-message{position:fixed;bottom:0;left:0;right:0;background:var(--paper);z-index:50;padding:15px;font:13px var(--sans);text-align:center}
.opening.is-opening .wax-seal{animation:none}
body.modal-open{overflow:hidden}
@keyframes seal-appear{from{opacity:0;transform:translate(-50%,-40%) rotate(5deg)}to{opacity:1;transform:translate(-50%,-50%) rotate(-8deg)}}@keyframes scroll-hint{0%,100%{opacity:.5;transform:translateY(0)}50%{opacity:1;transform:translateY(5px)}}@keyframes modal-enter{from{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:1000px){.opening{gap:22px}.opening-heading{margin-bottom:4px}.envelope-scene{height:min(66svh,630px);width:min(390px,calc(66svh * .65))}.invitation:after{content:'';position:fixed;right:43px;bottom:45px;height:78px;width:1px;background:#ac93b4}.hero{min-height:890px}}
@media(max-width:760px){.desktop-note{display:none}.page-controls{right:17px;top:max(17px,env(safe-area-inset-top));gap:8px}.page-controls .icon-button{width:35px;height:35px;background:#eee4edba}.page-controls svg{width:17px;height:17px}.opening{gap:19px;padding-top:max(20px,env(safe-area-inset-top));padding-bottom:max(18px,env(safe-area-inset-bottom))}.envelope-scene{width:min(390px,calc(100vw - 36px));height:min(67svh,650px)}.opening-heading p{font-size:8px;letter-spacing:3px}.opening-caption p{font-size:18px}.opening-caption>span{font-size:7px;letter-spacing:2.5px}.skip-intro{font-size:9px}.hero{min-height:760px;max-height:1000px;padding:20px}.hero:before{inset:13px}.hero-inner{padding:80px 16px 115px}.couple-names{font-size:98px}.hero .eyebrow{font-size:8px}.hero-message{font-size:17px}.wedding-date strong{font-size:23px;letter-spacing:3px}.wedding-date>span{font-size:7px;letter-spacing:1.7px}.scroll-cue{bottom:37px}.hero .flourish{margin-top:30px}.section-space{padding:68px 30px}.section-kicker{font-size:8px;letter-spacing:1.9px}.section-title{font-size:38px}.body-copy{font-size:17px}.countdown-section{padding:38px 25px 33px}.countdown-section h2{font-size:41px}.countdown{gap:9px;padding:22px 16px}.countdown strong{font-size:32px}.countdown span{font-size:6px;letter-spacing:1.2px}.countdown i{font-size:19px}.our-story{padding:42px 25px 32px}.portrait-wrap{width:210px}.portrait-mat img{height:262px}.story-quote{font-size:35px}.story-copy{font-size:16px}.location-name{font-size:42px}.location .body-copy{font-size:16px}.location>.eyebrow{font-size:8px}.manor-illustration{margin-top:20px}.schedule{padding:96px 37px 50px}.schedule h2{font-size:57px}.timeline{max-width:270px}.timeline li{padding-left:34px}.timeline p{font-size:13px}.dress-section{padding:42px 18px}.dress-card{padding:60px 22px 64px}.dress-card .body-copy{font-size:15px}.dress-card .section-kicker{font-size:6px}.dress-subtitle{font-size:31px}.mini-seal{right:18px;bottom:15px}.satin-divider{height:120px}.rsvp-section h2{font-size:62px}.rsvp-note{font-size:11px}.stay-section h2{font-size:50px}.stay-card{margin-left:4px;margin-right:4px;padding-left:12px;padding-right:12px}.stay-card p{font-size:14px}.stay-footnote{font-size:15px}.footer-script{font-size:33px}.footer{padding-left:25px;padding-right:25px}.modal{padding:48px 24px 28px}.modal-title{font-size:40px}.modal-intro{font-size:15px}}
@media(max-height:720px){.opening{gap:12px;padding-top:15px;padding-bottom:12px}.envelope-scene{height:64svh;max-width:calc(64svh * .67)}.opening-heading p{margin:0}.opening-caption p{font-size:16px;margin-bottom:8px}.opening-caption{min-height:42px}.skip-intro{padding:2px}.wax-seal{width:77px;height:79px}.seal-monogram{font-size:39px}.seal-monogram span{font-size:36px;left:24px}.seal-leaf{bottom:0;left:20px;font-size:15px}.letter-names{font-size:55px;margin:20px 0}.letter-date{font-size:7px}}
@media(max-width:360px){.section-space{padding-left:21px;padding-right:21px}.section-kicker{letter-spacing:1.5px}.couple-names{font-size:85px}.countdown{gap:6px}.countdown strong{font-size:28px}.countdown span{font-size:5.5px}.dress-section{padding-left:12px;padding-right:12px}.dress-card .body-copy{font-size:14px}.rsvp-section h2{font-size:57px}.modal{padding-left:19px;padding-right:19px}.modal-title{font-size:36px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition-duration:.01ms!important}.reveal{opacity:1;transform:none}}
