:root{--background:#f6f3eb;--foreground:#29362d;--card:#faf8f2;--card-foreground:#29362d;--popover:#faf8f2;--popover-foreground:#29362d;--primary:#354b3b;--primary-foreground:#fffdf8;--secondary:#e8e9de;--secondary-foreground:#29362d;--muted:#e8e9de;--muted-foreground:#56645a;--accent:#944f49;--accent-foreground:#fffdf8;--destructive:#a6443e;--border:#b7bdb0;--input:#b7bdb0;--ring:#596e5e;--radius:0}
@theme inline{--color-background:var(--background);--color-foreground:var(--foreground);--color-primary:var(--primary);--color-primary-foreground:var(--primary-foreground);--color-border:var(--border);--font-sans:Georgia,'Noto Serif Georgian',serif}
*{box-sizing:border-box}body{margin:0;background:#e6e8df;color:#29362d;font-family:Georgia,'Noto Serif Georgian',serif}.site{min-height:100vh;padding:clamp(0px,4vw,52px);display:grid;place-items:center;background:#dfe4d9}.invitation{display:grid;grid-template-columns:minmax(0,47%) minmax(0,53%);width:min(100%,1080px);min-height:720px;background:#faf8f2;box-shadow:0 24px 80px #26362b24}.floral{min-height:720px;background:#344338 url('/floral-natural.png') center/cover no-repeat;position:relative}.floral::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 70%,#17251b77)}.floral-caption{position:absolute;z-index:1;bottom:32px;left:37px;color:#fffdf4;font:14px Arial,sans-serif;letter-spacing:.22em}.content{padding:clamp(40px,5vw,70px) clamp(30px,5vw,74px) 34px;display:flex;flex-direction:column;justify-content:center;text-align:center}.eyebrow,.rsvp-kicker{font:600 12px Arial,sans-serif;letter-spacing:.15em;text-transform:uppercase;color:#8b5750}.intro h1{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:14px;font-size:clamp(39px,4.4vw,56px);font-weight:400;line-height:1.4;margin:26px 0 26px;color:#354b3b;letter-spacing:0}.intro h1 em{font-style:italic;font-size:.56em;color:#a46e5d}.lead{font-size:19px;line-height:1.8;margin:0 auto 16px;max-width:440px}.copy{font-size:16px;line-height:1.85;color:#56645a;margin:0 auto 28px;max-width:440px}.date{display:flex;justify-content:center;align-items:center;gap:15px;padding:19px 0;border-top:1px solid #b6bfb3;border-bottom:1px solid #b6bfb3}.date span{font:14px Arial,sans-serif;color:#6a766e}.date strong{font-size:22px;font-weight:400;color:#354b3b}.venue{font-size:15px;margin:18px 0 31px;color:#59695d}.rsvp{padding:27px 24px 29px;background:#eef0e8;border:1px solid #d9ded4}.rsvp h2{font-size:22px;font-weight:400;line-height:1.45;margin:11px 0 21px}.rsvp form{text-align:left}.choice-group{display:flex;gap:8px;margin-bottom:20px}.choice-group button{flex:1;min-height:47px;padding:8px;border:1px solid #9da99e;background:#fafbf7;color:#354b3b;font:14px Arial,sans-serif;cursor:pointer;transition:background .2s}.choice-group button:hover,.choice-group button.chosen{background:#354b3b;color:white;border-color:#354b3b}.rsvp label{display:block;margin:0 0 8px;font:14px Arial,sans-serif}.rsvp input{width:100%;padding:13px;border:1px solid #9da99e;background:#fff;font:16px Arial,sans-serif;outline-offset:3px}.submit{display:flex;width:100%;justify-content:space-between;align-items:center;background:#354b3b;color:white;border:0;padding:14px 17px;margin-top:12px;font:15px Arial,sans-serif;cursor:pointer}.submit:disabled{opacity:.5;cursor:not-allowed}.submit:not(:disabled):hover{background:#273c2e}.submit span{font-size:20px}.form-error{color:#a6443e;font:14px Arial,sans-serif}.thankyou{padding:10px}.thankyou span{color:#944f49;font-size:24px}.thankyou h3{font-size:22px;font-weight:400;margin:10px}.thankyou p{font-size:16px;line-height:1.6}.footnote{margin:24px 0 0;color:#647166;font-size:14px;font-style:italic;line-height:1.5}
.opening{position:fixed;inset:0;z-index:20;pointer-events:none;animation:vanish .1s linear 1.8s forwards}.opening-panel{position:absolute;top:0;bottom:0;width:50.1%;background:#f5f1e9;box-shadow:inset 0 0 0 1px #b1b8aa}.opening-panel::after{content:'';position:absolute;top:50%;width:2px;height:58px;background:#a5aea1;transform:translateY(-50%)}.opening-left{left:0;animation:part-left 1.55s cubic-bezier(.7,.02,.2,1) .18s forwards}.opening-left::after{right:15px}.opening-right{right:0;animation:part-right 1.55s cubic-bezier(.7,.02,.2,1) .18s forwards}.opening-right::after{left:15px}@keyframes part-left{to{transform:translateX(-102%)}}@keyframes part-right{to{transform:translateX(102%)}}@keyframes vanish{to{visibility:hidden}} 
.admin{min-height:100vh;background:#f6f3eb;padding:40px 20px;font-family:Arial,sans-serif}.admin-wrap{max-width:760px;margin:auto}.admin a{color:#354b3b}.admin h1{font:normal 34px Georgia,serif;margin:35px 0}.admin form label{display:block;margin-bottom:8px}.admin form div{display:flex;gap:10px}.admin input{font-size:16px;padding:12px;flex:1;min-width:0}.admin button{background:#354b3b;color:#fff;border:0;padding:12px 22px;cursor:pointer}.admin p{line-height:1.5}.response-list{margin-top:20px}.response-list>div{display:flex;gap:15px;align-items:center;border-bottom:1px solid #b7bdb0;padding:15px 0}.response-list strong{flex:1}.response-list small{color:#56645a}
@media(max-width:750px){.site{padding:0}.invitation{display:block;box-shadow:none}.floral{min-height:280px;height:38vh;max-height:470px;background-position:center 45%}.floral-caption{bottom:20px;left:25px}.content{padding:44px 25px 37px}.intro h1{margin:22px 0}.lead{font-size:18px}.date{gap:12px}.date strong{font-size:20px}}@media(max-width:430px){.floral{height:33vh;min-height:230px}.content{padding:39px 20px 32px}.date{gap:8px}.date span{font-size:12px}.date strong{font-size:18px}.rsvp{padding:24px 16px}.choice-group{flex-direction:column}.response-list>div{flex-wrap:wrap}.response-list small{width:100%}}@media(prefers-reduced-motion:reduce){.opening{display:none}.choice-group button{transition:none}}
.monogram{display:flex;align-items:baseline;justify-content:center;gap:5px;margin:0 auto 19px;color:#354b3b;font-family:Didot,'Bodoni MT','Times New Roman',serif;font-size:52px;font-weight:400;line-height:1;letter-spacing:-.08em}.monogram::before,.monogram::after{content:'';align-self:center;width:31px;height:1px;background:#a9b4a8;margin:0 14px}.monogram i{font-size:27px;font-weight:400;color:#9a6e66;letter-spacing:0;margin:0 3px}.monogram span:last-child{margin-left:2px}@media(max-width:430px){.monogram{font-size:46px}.monogram::before,.monogram::after{width:24px;margin:0 10px}}

/* A tap opens the floral cover, bringing the invitation forward. */
.site:not(.site-entered) .invitation{transform:scale(.84);filter:blur(5px);opacity:.7}.site-opening .invitation{animation:enter-room 1.55s cubic-bezier(.2,.7,.18,1) forwards}.site-entered .invitation{transform:none;filter:none;opacity:1}.cover{position:fixed;inset:0;z-index:30;display:grid;place-items:center;overflow:hidden;background:linear-gradient(#1f3324a0,#1f3324a0),url('/floral-natural.png') center/cover no-repeat}.cover-panel{position:absolute;top:0;bottom:0;width:50%;background:#26392fd9;box-shadow:inset 0 0 0 1px #dfd8c0a0}.cover-panel::after{content:'';position:absolute;inset:20px;border:1px solid #d9d4c280}.cover-left{left:0}.cover-right{right:0}.cover-center{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:min(420px,85vw);min-height:310px;padding:35px;text-align:center;color:#fffdf5}.cover-center::before{content:'';position:absolute;inset:0;border:1px solid #f5f0ddaa;pointer-events:none}.cover-monogram{font-family:'Snell Roundhand','Apple Chancery','URW Chancery L',cursive;font-size:clamp(76px,13vw,126px);font-style:italic;font-weight:400;letter-spacing:-.12em;line-height:1;text-shadow:0 4px 15px #14221ca0}.cover-monogram span{font-family:Georgia,serif;font-size:.36em;font-style:italic;margin:0 13px 0 2px;color:#e5c9ad;vertical-align:middle}.cover-center p{font:14px Arial,sans-serif;letter-spacing:.2em;margin:15px 0 29px}.cover-center button{border:1px solid #f6f2e8;background:#f7f3e9;color:#26392f;padding:15px 23px;font:15px Arial,sans-serif;cursor:pointer;min-height:50px}.cover-center button:hover{background:#e3e8dd}.cover-center button span{font-size:19px;margin-left:18px}.cover-center button:disabled{opacity:.5}.cover-opening .cover-left{animation:slide-left 1.3s cubic-bezier(.7,.02,.2,1) .12s forwards}.cover-opening .cover-right{animation:slide-right 1.3s cubic-bezier(.7,.02,.2,1) .12s forwards}.cover-opening .cover-center{animation:cover-disappear .65s ease forwards}.cover-opening{animation:cover-out .45s ease 1.15s forwards}@keyframes slide-left{to{transform:translateX(-104%)}}@keyframes slide-right{to{transform:translateX(104%)}}@keyframes cover-disappear{to{opacity:0;transform:scale(1.15)}}@keyframes cover-out{to{opacity:0;visibility:hidden}}@keyframes enter-room{0%{transform:scale(.84);filter:blur(5px);opacity:.7}70%{filter:blur(0)}100%{transform:scale(1);filter:none;opacity:1}}
.monogram{font-family:'Snell Roundhand','Apple Chancery','URW Chancery L',cursive;font-size:64px;font-style:italic;letter-spacing:-.12em;gap:4px}.monogram i{font-family:Georgia,serif;font-size:23px;font-style:italic;vertical-align:middle;margin:0 11px;letter-spacing:0}.monogram span:last-child{margin-left:0}@media(max-width:430px){.monogram{font-size:58px}.cover-center{min-height:290px}}@media(prefers-reduced-motion:reduce){.site:not(.site-entered) .invitation{transform:none;filter:none;opacity:1}.cover-opening,.cover-opening *{animation:none!important}}
.cover{width:100%;padding:0;border:0;font:inherit;cursor:pointer}.cover:focus-visible{outline:3px solid #e5c9ad;outline-offset:-8px}.cover:disabled{cursor:default}.cover-date{font:14px Arial,sans-serif;letter-spacing:.2em;margin:15px 0 0}
.map-line{margin:-18px 0 31px}.map-line a{color:#354b3b;text-underline-offset:4px;font-size:14px}.map-line a:hover{color:#944f49}
