@import "https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;1,400;1,500&family=DM+Sans:wght@400;500;600&display=swap";:root{--wine:#591e2c;--wine-dark:#38141e;--gold:#a5864e;--paper:#faf7f0;--ink:#342e2c;--muted:#79706b;--line:#ded5c6;--serif:"Cormorant Garamond",Georgia,serif;--sans:"DM Sans",Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:85px}body{background:var(--paper);color:var(--ink);font-family:var(--sans);margin:0;font-size:14px;line-height:1.7}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}button,a,input,textarea{touch-action:manipulation}button{cursor:pointer}button:disabled{opacity:.6;cursor:wait}:is(a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible){outline:2px solid var(--gold);outline-offset:5px}h1,h2,h3,p{margin:0}h2{font:400 48px/1.12 var(--serif);letter-spacing:-1.3px}h2 em{color:var(--wine);font-weight:400}h3{font:500 29px/1.15 var(--serif)}.eyebrow{letter-spacing:2.3px;font-size:10px;font-weight:500;line-height:1.8}.nav{border-bottom:1px solid var(--line);background:var(--paper);z-index:2;justify-content:space-between;align-items:center;height:88px;padding:0 6%;display:flex;position:relative}.monogram{font:400 33px var(--serif);color:var(--wine);letter-spacing:-2px}.monogram span{color:var(--gold);margin:0 3px;font-size:23px;font-style:italic}.nav nav{gap:36px;font-size:12px;display:flex}.nav nav a:hover{color:var(--wine)}.nav-rsvp{border-bottom:1px solid var(--wine);color:var(--wine);align-items:center;gap:15px;padding:9px 0;font-size:11px;display:flex}.hero{text-align:center;background:radial-gradient(#fffcf5 0%,#f4eee3 95%);padding:40px 24px 0;position:relative;overflow:hidden}.hero-top{letter-spacing:2.6px;color:var(--muted);justify-content:center;align-items:center;gap:18px;font-size:9px;display:flex}.tiny-line{background:#b7a587;width:30px;height:1px}.hero-main{width:510px;max-width:100%;margin:24px auto 23px;position:relative}.arch{background:linear-gradient(115deg,#f7eee0,#fffcf7 50%,#f2e9d8);border:1px solid #b59b69;border-radius:240px 240px 0 0;padding:12px;box-shadow:0 15px 60px #7f583510}.arch-inner{border:1px solid #d6c6aa;border-radius:230px 230px 0 0;flex-direction:column;align-items:center;min-height:484px;padding:65px 25px 27px;display:flex}.arch .eyebrow{color:var(--gold);font-size:9px}h1{font:400 83px/.92 var(--serif);letter-spacing:-3px;color:var(--wine);margin:30px 0 25px}h1 em{font-weight:400}h1 .ampersand{font:italic 48px/.9 var(--serif);color:var(--gold);margin:8px 0 4px;display:block}.date-rule{border-top:1px solid var(--line);border-bottom:1px solid var(--line);color:var(--wine);justify-content:center;align-items:center;gap:18px;padding:9px 22px;display:flex}.date-rule>span{font:400 40px var(--serif)}.date-rule div{letter-spacing:2px;text-align:left;font-size:9px;line-height:1.9}.date-rule b{font-weight:400}.hero-city{letter-spacing:2.6px;color:var(--muted);margin-top:18px;font-size:8px}.hero-side{writing-mode:vertical-rl;letter-spacing:3px;color:var(--gold);font-size:8px;position:absolute;top:145px;right:-38px}.seal{color:#ead8ac;background:var(--wine);outline-offset:-6px;border-radius:50%;outline:1px solid #9e7a45;flex-direction:column;justify-content:center;align-items:center;gap:3px;width:79px;height:79px;display:flex;position:absolute;bottom:30px;right:-25px;transform:rotate(12deg);box-shadow:0 4px 13px #591e2c25}.seal small{font:14px var(--serif);letter-spacing:1px}.botanical{color:#b09768;opacity:.6;pointer-events:none;width:340px;position:absolute}.botanical-left{top:120px;left:calc(50% - 660px);transform:rotate(-18deg)}.botanical-right{top:100px;right:calc(50% - 660px);transform:scaleX(-1)rotate(-18deg)}.hero-note{font:italic 23px var(--serif);margin-bottom:20px}.button{border:1px solid var(--wine);background:var(--wine);color:#fff8ec;letter-spacing:.3px;justify-content:center;align-items:center;gap:28px;min-height:51px;padding:16px 25px;font-size:11px;transition:background .2s,transform .2s;display:inline-flex}.button:hover{background:#742a3e;transform:translateY(-1px)}.button.secondary{color:var(--wine);background:0 0}.button.secondary:hover{background:#efe7db}.discover{letter-spacing:2px;color:var(--muted);justify-content:center;align-items:center;gap:16px;margin:28px auto 36px;font-size:8px;display:flex}.hero-bottom{letter-spacing:2px;color:#8c795b;border-top:1px solid #d5c8b3;justify-content:space-between;max-width:1100px;margin:auto;padding:18px 0;font-size:8px;display:flex}.section{padding:90px max(7%,50% - 550px)}.intro{text-align:center;max-width:100%;padding-top:74px;padding-bottom:78px}.intro h2{margin:22px auto}.intro>p:not(.eyebrow){max-width:540px;color:var(--muted);margin:auto;font-size:13px;line-height:2}.ornament{font:36px var(--serif);color:var(--gold);margin-bottom:18px}.signature{font:italic 30px var(--serif);color:var(--wine);margin:30px 0;display:block}.countdown{color:var(--muted);border-top:1px solid var(--line);align-items:center;gap:14px;padding-top:18px;font-size:10px;display:inline-flex}.countdown span{font:32px var(--serif);color:var(--wine)}.program{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#efe9df}.section-heading{justify-content:space-between;align-items:end;gap:30px;display:flex}.section-heading h2{margin-top:15px}.section-heading>p{color:var(--muted);padding-bottom:6px;font-size:12px;line-height:1.8}.program-grid{grid-template-columns:repeat(3,1fr);margin-top:50px;display:grid}.program-item{border-right:1px solid #d6cbbd;padding:0 32px}.program-item:first-child{padding-left:0}.program-item:last-child{border:0;padding-right:0}.program-number{color:var(--gold);font:italic 25px var(--serif);justify-content:space-between;align-items:center;margin-bottom:27px;display:flex}.program-time{letter-spacing:2px;color:var(--wine);margin-bottom:12px;font-size:11px}.program-item h3{margin-bottom:16px;font-size:28px}.program-place{font-size:12px;font-weight:500}.muted{color:var(--muted);margin-top:6px;font-size:11px;line-height:1.9}.text-link{color:var(--wine);border-bottom:1px solid #b3a58f;align-items:center;gap:18px;margin-top:26px;padding-bottom:4px;font-size:10px;display:inline-flex}.rsvp{grid-template-columns:1fr 1fr;gap:90px;display:grid}.rsvp-copy{padding-top:30px}.rsvp-copy h2{margin:22px 0;font-size:60px}.rsvp-copy>p:not(.eyebrow){max-width:280px;color:var(--muted);font-size:13px}.rsvp-benefit{align-items:start;gap:18px;max-width:330px;margin-top:35px;display:flex}.rsvp-benefit>svg{color:var(--gold);flex-shrink:0;margin-top:3px}.rsvp-benefit b{font-size:12px;font-weight:500}.rsvp-benefit p{color:var(--muted);margin-top:6px;font-size:11px;line-height:1.8}.rsvp-form{border:1px solid var(--line);background:#fffdf9;padding:36px}.form-title{font:32px var(--serif);color:var(--wine);margin-bottom:22px}fieldset{border:0;margin:0 0 22px;padding:0}legend{margin-bottom:9px;font-size:11px;font-weight:500}.attendance{flex-wrap:wrap;gap:8px;display:flex}.choice{border:1px solid var(--line);cursor:pointer;background:var(--paper);align-items:center;gap:7px;padding:11px 12px;font-size:10px;display:flex}.choice.active{border-color:var(--wine);color:var(--wine);background:#f3e9e8}.choice input{accent-color:var(--wine);margin:0 3px 0 0}.field{margin-bottom:20px;font-size:11px;font-weight:500;display:block}.field input,.field textarea,.admin-input{border:1px solid var(--line);width:100%;color:var(--ink);background:#fffdf9;border-radius:0;margin-top:7px;padding:12px 13px;font-size:12px;display:block}.field small{color:var(--muted);margin-top:5px;font-size:9px;font-weight:400;display:block}.optional{color:var(--muted);font-weight:400}textarea{resize:vertical}.consent{color:var(--muted);align-items:start;gap:9px;margin:2px 0 22px;font-size:9px;line-height:1.8;display:flex}.consent input{accent-color:var(--wine);flex-shrink:0;margin:3px 0 0}.full{gap:12px;width:100%}.form-note{color:var(--muted);text-align:center;margin-top:14px;font-size:9px}.error{color:#9e2639;background:#f9e9e8;margin:12px 0;padding:12px;font-size:12px}.success{text-align:center;padding:45px 0}.success-icon{color:#3d603f;background:#e8ede2;border-radius:50%;justify-content:center;align-items:center;width:65px;height:65px;margin-bottom:25px;display:inline-flex}.success h3{margin:15px 0;font-size:37px}.success>p:not(.eyebrow):not(.form-note){color:var(--muted);margin-bottom:25px;font-size:13px}.practical{border-top:1px solid var(--line);padding-top:70px}.practical h2{margin-top:15px}.practical-grid{grid-template-columns:repeat(3,1fr);gap:55px;margin-top:40px;display:grid}.practical-grid svg{color:var(--gold);stroke-width:1px}.practical-grid h3{margin:16px 0 12px;font-size:24px}.practical-grid p{color:var(--muted);font-size:12px;line-height:1.9}.closing{text-align:center;background:var(--wine);color:#f3e5d1;padding:70px 24px;position:relative;overflow:hidden}.closing .eyebrow{color:#c9aa76}.closing h2{margin:24px 0;font-size:49px}.closing h2 em{color:#e6c995}.closing>p:last-child{letter-spacing:2px;font-size:10px}.closing-botanical{color:#d6b57b;opacity:.25;width:250px;position:absolute;bottom:-170px;right:-20px;transform:rotate(15deg)}footer{justify-content:space-between;align-items:center;padding:24px 6%;display:flex}footer span{letter-spacing:2px;color:var(--muted);font-size:8px}footer>a:last-child{color:var(--muted);font-size:10px}.simple-header{justify-content:space-between;align-items:center;max-width:1050px;margin:auto;padding:25px;display:flex}.simple-header>a:last-child{font-size:11px}.card-page{text-align:center;max-width:680px;margin:0 auto;padding:30px 24px 80px}.card-page h2{margin:15px 0}.entry-card{border:1px solid var(--gold);background:#fffcf5;max-width:510px;margin:30px auto;padding:12px;position:relative;box-shadow:0 20px 80px #591e2c0c}.entry-inner{border:1px solid #cbb88e;padding:40px 24px;position:relative;overflow:hidden}.entry-monogram{font:45px var(--serif);color:var(--wine)}.entry-card h1{letter-spacing:-1px;margin:18px 0;font-size:48px}.entry-card h1 span{color:var(--gold);font-style:italic}.entry-card h3{margin:15px 0;font-size:30px}.entry-line{background:var(--gold);width:80px;height:1px;margin:24px auto}.entry-date{letter-spacing:1px;color:var(--wine);font-size:11px}.entry-places{color:var(--muted);margin:16px 0;font-size:11px}.entry-qr{width:150px;height:150px;margin:16px auto;display:block}.entry-guests{color:var(--muted);font-size:11px}.entry-count{background:var(--wine);color:#fff;margin-top:10px;padding:6px 16px;font-size:10px;display:inline-block}.entry-code{color:var(--muted);font-family:monospace;font-size:10px}.card-actions{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.card-disclaimer{color:var(--muted);max-width:430px;margin:20px auto;font-size:11px}.admin-page{max-width:1100px;margin:auto;padding:35px 25px 90px}.admin-page h2{margin:10px 0 25px}.admin-login{border:1px solid var(--line);background:#fff;max-width:480px;margin:60px auto;padding:35px}.admin-login h2{font-size:34px}.admin-login .button{margin-top:20px}.admin-stats{grid-template-columns:repeat(4,1fr);gap:16px;margin:30px 0;display:grid}.admin-stat{border:1px solid var(--line);background:#f0e9df;padding:22px}.admin-stat b{font:39px var(--serif);color:var(--wine);display:block}.admin-stat span{font-size:11px}.admin-tools{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.admin-tools input{flex:1;min-width:180px;margin:0}.table-wrap{margin-top:25px;overflow:auto}table{border-collapse:collapse;text-align:left;width:100%;font-size:12px}th{letter-spacing:1px;white-space:nowrap;background:#efe9df;padding:13px 15px;font-size:10px;font-weight:500}td{border-bottom:1px solid var(--line);vertical-align:top;padding:16px 15px}td small{color:var(--muted);display:block}.status{white-space:nowrap;background:#e4ebdf;border-radius:20px;padding:3px 10px;font-size:10px;display:inline-flex}.status.no{background:#eee6e2}.admin-check{border-top:1px solid var(--line);margin-top:40px;padding-top:30px}.admin-check .field{max-width:600px}.check-result{border:1px solid var(--line);background:#f0e9df;max-width:600px;padding:22px}.check-result h3{margin:12px 0}.check-result .button{margin-top:20px}.admin-row-btn{border:0;border-bottom:1px solid var(--wine);color:var(--wine);background:0 0;padding:3px 0;font-size:10px}.admin-notice{color:var(--muted);margin:15px 0;font-size:12px}.admin-welcome{justify-content:space-between;align-items:center;gap:20px;display:flex}.empty{text-align:center;color:var(--muted);padding:40px}@media (min-width:1500px){.hero{padding-top:50px}.hero-main{margin-top:35px}.arch-inner{min-height:520px;padding-top:75px}.botanical-left{left:calc(50% - 700px)}.botanical-right{right:calc(50% - 700px)}}@media (max-width:800px){.nav{height:75px;padding:0 6%}.nav nav{gap:20px;font-size:10px}.nav-rsvp{gap:7px;font-size:10px}.hero{padding-top:32px}.botanical-left{width:270px;top:180px;left:-150px}.botanical-right{width:270px;top:180px;right:-150px}.hero-main{width:430px}.arch-inner{min-height:450px;padding-top:60px}h1{font-size:72px}.hero-side{right:-25px}.seal{width:68px;height:68px;right:-8px}.section{padding:65px 7%}.section-heading h2{font-size:39px}.program-item{padding:0 20px}.program-item h3{font-size:25px}.rsvp{gap:35px}.rsvp-copy h2{font-size:49px}.rsvp-form{padding:25px}.practical-grid{gap:26px}.admin-stats{grid-template-columns:repeat(2,1fr)}}@media (max-width:580px){h2{font-size:37px}.nav nav{display:none}.nav-rsvp{font-size:10px}.monogram{font-size:29px}.hero{padding:29px 22px 0}.hero-top{letter-spacing:1.7px;gap:10px;font-size:7px}.tiny-line{width:20px}.hero-main{width:310px;margin-top:25px;margin-bottom:24px}.arch{padding:9px}.arch-inner{min-height:395px;padding:48px 14px 24px}h1{letter-spacing:-2px;margin-top:25px;margin-bottom:22px;font-size:58px}h1 .ampersand{font-size:38px}.arch .eyebrow{letter-spacing:1.6px;font-size:7px}.hero-side{display:none}.seal{width:62px;height:62px;bottom:20px;right:-11px}.seal small{font-size:12px}.seal svg{width:16px}.botanical-left{opacity:.4;width:190px;top:150px;left:-122px}.botanical-right{opacity:.4;width:190px;top:150px;right:-122px}.hero-note{font-size:20px}.hero .button{padding:14px 21px;font-size:10px}.hero-bottom{letter-spacing:1px;gap:15px;padding:17px 0;font-size:6px}.discover{margin:23px auto 30px;font-size:7px}.intro h2 br{display:none}.intro>p:not(.eyebrow){font-size:12px}.signature{font-size:27px}.section-heading{display:block}.section-heading>p{margin-top:20px}.program-grid{grid-template-columns:1fr;gap:30px;margin-top:30px}.program-item,.program-item:first-child,.program-item:last-child{border-right:0;border-bottom:1px solid var(--line);padding:0 0 30px 65px;position:relative}.program-item:last-child{border-bottom:0;padding-bottom:0}.program-number{flex-direction:column;gap:22px;font-size:20px;display:flex;position:absolute;top:0;left:0}.program-number svg{width:25px}.program-time{margin-bottom:9px}.program-item h3{margin-bottom:12px;font-size:28px}.text-link{margin-top:17px}.rsvp{grid-template-columns:1fr;gap:30px}.rsvp-copy{padding-top:0}.rsvp-copy h2{font-size:50px}.rsvp-copy>p:not(.eyebrow){max-width:100%}.rsvp-benefit{max-width:100%;margin-top:22px}.rsvp-form{padding:26px 20px}.choice{font-size:10px}.practical-grid{grid-template-columns:1fr;gap:30px;margin-top:30px}.practical-grid>div{padding-left:40px;position:relative}.practical-grid svg{position:absolute;top:3px;left:0}.practical-grid h3{margin-top:0}.closing h2{font-size:39px}.closing{padding:60px 22px}footer{flex-wrap:wrap;gap:15px;padding:22px 6%}footer span{letter-spacing:1px;font-size:6px}footer>a:last-child{font-size:8px}.entry-inner{padding:30px 14px}.entry-card h1{font-size:39px}.entry-card h3{font-size:27px}.entry-date{font-size:10px}.admin-welcome{display:block}.admin-stat{padding:15px}.admin-stat span{font-size:10px}.admin-stat b{font-size:32px}.admin-login{margin:25px 0;padding:25px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}@media print{body{background:#fff}.simple-header,.card-page>h2,.card-page>.eyebrow,.card-page>.card-disclaimer,.card-actions,.card-page>.admin-check{display:none!important}.card-page{max-width:100%;padding:0}.entry-card{box-shadow:none;break-inside:avoid;-webkit-print-color-adjust:exact;print-color-adjust:exact;max-width:510px;margin:30px auto}.entry-card *{-webkit-print-color-adjust:exact;print-color-adjust:exact}@page{size:A5;margin:10mm}}.hero-with-photo{grid-template-columns:1fr 1fr;align-items:stretch;gap:42px;width:960px;margin-top:32px;display:grid}.hero-with-photo .arch{min-width:0;display:flex}.hero-with-photo .arch-inner{justify-content:center;width:100%;min-height:560px;padding-top:55px}.hero-with-photo h1{font-size:74px}.couple-portrait{border:1px solid var(--gold);background:#f5ecdd;border-radius:240px 240px 0 0;min-width:0;margin:0;padding:10px;position:relative;overflow:hidden}.couple-portrait img{object-fit:cover;object-position:center center;border-radius:230px 230px 0 0;width:100%;height:100%;min-height:540px;max-height:620px;display:block}.couple-portrait figcaption{color:#fff8ec;text-shadow:0 1px 8px #000;letter-spacing:2.6px;font-size:8px;position:absolute;bottom:26px;left:10px;right:10px}.hero-with-photo .hero-side{top:160px;right:-29px}.hero-with-photo .seal{right:-20px}.hero:has(.hero-with-photo) .botanical-left{opacity:.4;left:calc(50% - 765px)}.hero:has(.hero-with-photo) .botanical-right{opacity:.4;right:calc(50% - 765px)}@media (max-width:1100px){.hero-with-photo{gap:28px;width:850px}.hero-with-photo .hero-side{display:none}.hero-with-photo h1{font-size:66px}.hero-with-photo .arch-inner{padding-left:15px;padding-right:15px}}@media (max-width:700px){.hero-with-photo{flex-direction:column;gap:24px;width:480px;display:flex}.couple-portrait{aspect-ratio:3/4;width:100%;max-height:none}.couple-portrait img{height:100%;min-height:0;max-height:none}.hero-with-photo .arch-inner{min-height:430px;padding-top:38px;padding-bottom:28px}.hero-with-photo h1{font-size:70px}.hero-with-photo .seal{bottom:22px;right:-8px}.hero:has(.hero-with-photo) .botanical-left{top:580px;left:-160px}.hero:has(.hero-with-photo) .botanical-right{top:580px;right:-160px}}@media (max-width:580px){.hero-with-photo{gap:20px;width:310px;margin-top:25px}.couple-portrait{padding:8px}.couple-portrait figcaption{letter-spacing:2px;font-size:6px;bottom:22px}.hero-with-photo .arch-inner{min-height:370px;padding-top:38px}.hero-with-photo h1{font-size:58px}.hero-with-photo .seal{bottom:15px;right:-9px}}.countdown-timer{border-top:1px solid var(--line);margin-top:10px;padding:23px 16px 0;display:inline-block}.countdown-timer>p{letter-spacing:2px;color:var(--muted);margin-bottom:15px;font-size:9px}.countdown-values{justify-content:center;gap:0;display:flex}.countdown-values>div{border-right:1px solid var(--line);min-width:86px;padding:0 14px}.countdown-values>div:last-child{border:0}.countdown-values span{font:400 42px/1 var(--serif);color:var(--wine);font-variant-numeric:tabular-nums;display:block}.countdown-values small{color:var(--muted);margin-top:6px;font-size:10px;display:block}.countdown-finished{font:italic 24px var(--serif);color:var(--wine);margin-top:20px}@media (max-width:580px){.countdown-values>div{min-width:60px;padding:0 8px}.countdown-values span{font-size:32px}.countdown-values small{font-size:9px}.countdown-timer>p{letter-spacing:1.5px;font-size:8px}}.dress-section{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#f4ede5;grid-template-columns:1fr .85fr;align-items:center;gap:65px;display:grid}.dress-copy h2{margin:15px 0 23px}.dress-copy>p:not(.eyebrow){max-width:420px;color:var(--muted);font-size:13px;line-height:1.9}.dress-copy .dress-note{margin-top:24px;font-weight:500;color:var(--wine)!important}.palette{gap:14px;margin:25px 0 16px;display:flex}.palette span{border:3px solid #fffaf4;border-radius:50%;width:48px;height:48px;display:block;box-shadow:0 0 0 1px #d3c3b3}.dress-copy .dress-hint{font-size:11px!important}.dress-image{background:#fffaf5;border:1px solid #c3a779;justify-self:end;max-width:440px;margin:0;padding:9px}.dress-image img{object-fit:cover;width:100%;max-height:420px;display:block}.dress-section .dress-image img{object-position:center 40%}@media (max-width:700px){.dress-section{grid-template-columns:1fr;gap:30px}.dress-image{justify-self:start;width:100%;max-width:100%}.dress-image img{max-height:340px}.palette span{width:43px;height:43px}.palette{gap:10px}}.dress-section{text-align:center;display:block}.dress-copy{max-width:650px;margin:auto}.dress-copy>p:not(.eyebrow){margin-left:auto;margin-right:auto}.palette{justify-content:center}
