*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:#697258;background:#faf7ee;font-family:Georgia,serif}button,input,select{font:inherit}button,a,input,select{outline-offset:5px}button{cursor:pointer}main{min-height:100vh;background-image:linear-gradient(90deg,#dce7d429 50%,transparent 50%),linear-gradient(#f1dcd429 50%,transparent 50%);background-size:72px 72px}.topline{text-align:center;font:10px Arial,sans-serif;letter-spacing:3px;padding:24px}.opening{max-width:760px;margin:auto;text-align:center;padding:12px 20px 45px;animation:appear .7s}.tinyflower{width:58px;margin:0 auto 16px}.eyebrow{font:10px Arial,sans-serif;letter-spacing:2.5px}h1{font-weight:normal;font-size:clamp(34px,5vw,56px);line-height:1.15;margin:23px 0}em{font-weight:normal;color:#bb8583}.intro{font-size:16px;line-height:1.7;color:#8c8575}.envelope{position:relative;width:min(440px,90vw);height:270px;border:1px solid #d6caba;border-radius:5px;background:#ede5d5;margin:30px 0 8px;box-shadow:0 22px 50px #6e674526;transition:transform .4s;overflow:hidden}.envelope:hover{transform:translateY(-6px) rotate(-1deg)}.inside{position:absolute;inset:10px;background:#fffdf5}.flap{position:absolute;inset:0;background:#f5efdf;clip-path:polygon(0 0,100% 0,50% 59%);filter:drop-shadow(0 2px 2px #0003);z-index:2}.fold{position:absolute;inset:0;background:#eee6d8}.fold.left{clip-path:polygon(0 0,55% 62%,100% 100%,0 100%)}.fold.right{clip-path:polygon(100% 0,45% 62%,0 100%,100% 100%);background:#f3ebdc}.envelope-label{position:absolute;bottom:27px;left:0;right:0;font-size:14px;letter-spacing:1px;z-index:3}.envelope-label b{display:block;font-size:35px;font-style:italic;font-weight:normal;color:#ba8785}.seal{position:absolute;width:65px;top:115px;left:calc(50% - 32px);z-index:4;filter:drop-shadow(0 2px 4px #b7a687)}.tap{font:12px Arial,sans-serif;letter-spacing:1px;color:#958b7a}.littleheart{display:block;color:#c58c8a;font-size:28px;margin-top:22px}.revealed{animation:appear 1s}header{display:flex;align-items:center;justify-content:space-between;max-width:1100px;margin:auto;padding:22px 28px;border-bottom:1px solid #d6d8c4}header span{font-style:italic;font-size:21px}header button{background:none;border:0;color:#8b8f79;font-size:12px}.invite-section{max-width:1050px;margin:auto;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:70px;padding:55px 35px 70px}.invitation{transform:rotate(-1deg);box-shadow:0 16px 42px #6e674521}.invitation img{display:block;width:100%;height:auto}.welcome p{line-height:1.8}.welcome h1{font-size:46px}.primary{display:inline-block;background:#727e60;color:white;border:0;border-radius:5px;padding:16px 26px;text-decoration:none;font:14px Arial,sans-serif;transition:background .2s}.primary:hover{background:#596549}.primary:disabled{opacity:.6;cursor:wait}.event-details{border-top:1px solid #d4d9c8;margin-top:35px;display:grid;gap:12px;padding-top:24px}.event-details span{font:10px Arial;letter-spacing:2px}.event-details p{margin:7px 0}.note{font:12px/1.6 Arial,sans-serif!important;color:#918b7b}.rsvp{padding:55px 24px 65px;background:#fffdf8e8;text-align:center;border-top:1px solid #e8e3d8}.rsvp h2{font-size:33px;font-weight:normal;margin:20px 0}.rsvp>p{color:#938b7a}.rsvp form{max-width:480px;margin:35px auto 0;text-align:left}fieldset{border:0;padding:0;margin:0 0 24px}legend,form>label{font:13px Arial,sans-serif}form>label{display:block;margin:20px 0;color:#626e50}input:not([type=radio]):not([type=checkbox]),select{display:block;width:100%;margin-top:9px;border:1px solid #d6d8c6;border-radius:5px;padding:14px;background:#fffefb;color:#59654a;font:15px Arial,sans-serif}.choices{display:flex;gap:14px;flex-wrap:wrap;margin-top:13px;font:13px Arial}.choices label{border:1px solid #d8dbcb;padding:14px;border-radius:5px}input[type=radio],input[type=checkbox]{accent-color:#778367}.check{display:flex;gap:10px;align-items:flex-start;line-height:1.6}.check input{margin-top:3px}.rsvp .primary{width:100%;margin-top:12px}.message{font:13px Arial;color:#9a6060}.thankyou{padding:30px;max-width:480px;margin:auto;background:#eef1e8;border-radius:10px;line-height:1.6}.thankyou button{border:0;background:transparent;text-decoration:underline;color:#687756}footer{text-align:center;padding:35px;font-size:14px}footer span{color:#ba8582}footer a{display:block;margin-top:20px;font:11px Arial;color:#92937e}@keyframes appear{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@media(max-width:700px){.envelope{height:230px}.seal{top:92px}.invite-section{grid-template-columns:1fr;gap:35px;padding:35px 24px}.invitation{max-width:410px;margin:auto}.welcome{max-width:410px;margin:auto;text-align:center}.welcome h1{font-size:36px}.rsvp h2{font-size:28px}header{padding:20px}.opening{padding-top:8px}.intro{font-size:14px}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.envelope{overflow:visible;perspective:1000px}.inside,.fold{border-radius:5px}.flap{transform-origin:top;transition:transform .7s,opacity .7s;backface-visibility:hidden}.is-opening .flap{transform:rotateX(180deg);opacity:0}.is-opening .seal,.is-opening .ribbon{opacity:0;transition:opacity .3s}.is-opening .inside{transform:translateY(-80px);transition:transform .8s}.is-opening{pointer-events:none}.ribbon{position:absolute;top:105px;left:calc(50% - 75px);width:150px;height:70px;z-index:4}.ribbon i{position:absolute;width:70px;height:40px;border:3px solid #ce9c98;border-radius:70% 30% 60% 40%;background:linear-gradient(140deg,#efcfca,#d9aaa7);transform:rotate(15deg);left:3px;top:12px;box-shadow:inset 0 0 10px #fff7}.ribbon i:nth-child(2){left:auto;right:3px;transform:scaleX(-1) rotate(15deg)}.ribbon b{position:absolute;left:63px;top:19px;width:24px;height:28px;background:#d4a19d;border-radius:8px}.seal{width:43px;top:119px;left:calc(50% - 21px);z-index:5}@media(max-width:700px){.ribbon{top:80px}.seal{top:94px}}

/* Refined stationery entrance */
.topline{display:none}.opening{min-height:100svh;max-width:900px;padding:65px 24px 40px;display:flex;flex-direction:column;align-items:center;justify-content:center}.opening .eyebrow{font-size:9px;letter-spacing:2.8px;color:#8b927b;margin:0 0 25px}.garden-title{margin:0!important;line-height:1!important;font-weight:normal}.garden-title span{display:block;font-size:clamp(24px,4vw,34px);letter-spacing:1px}.garden-title em{display:block;font-family:Georgia,serif;font-style:italic;font-weight:normal;font-size:clamp(75px,12vw,106px);line-height:1.2;color:#b57f7d;letter-spacing:-4px}.age-line{display:flex;align-items:center;justify-content:center;gap:15px;font-size:14px;font-style:italic;margin:12px 0 0}.age-line span{width:32px;height:1px;background:#babd9f}.opening .intro{font-size:15px;line-height:1.7;margin:22px 0 5px;color:#8b8170}.envelope-scene{position:relative;width:min(600px,100%);margin:12px 0 0;isolation:isolate}.envelope{width:100%;height:auto;aspect-ratio:1.5;border:0;background:none;border-radius:0;box-shadow:none;overflow:visible;margin:0;padding:0;display:block;transition:transform .5s,opacity .5s;z-index:2}.envelope-art{display:block;width:100%;height:auto;border-radius:9px;filter:drop-shadow(0 17px 20px #8e795b24)}.envelope:hover{transform:translateY(-4px) rotate(-.5deg)}.peek-card{position:absolute;left:28%;width:44%;top:12%;height:70%;z-index:-1;overflow:hidden;border-radius:6px;transform:translateY(0);opacity:0;transition:transform 1.2s,opacity .5s}.peek-card img{width:100%;display:block}.peek-card.rising{transform:translateY(-40%);opacity:1;z-index:1}.is-opening{transform:translateY(45px) scale(.97)!important;opacity:0;transition:transform 1.1s,opacity .8s}.open-invitation{font:12px Arial,sans-serif;letter-spacing:1px;background:#7a8568;border:0;border-radius:40px;color:#fffdf5;padding:16px 28px;margin:19px 0 0;box-shadow:0 6px 15px #747e6020}.open-invitation:hover{background:#626f51}.open-invitation:disabled{cursor:wait;opacity:.7}.opening .tap{font:10px/1.6 Arial,sans-serif;color:#9c9585;letter-spacing:.3px;margin-top:14px}main{background-image:linear-gradient(90deg,#deead522 50%,transparent 50%),linear-gradient(#efd3cd16 50%,transparent 50%);background-size:48px 48px}.revealed header{background:#faf7eea8}.welcome .eyebrow{font-size:9px}.invitation{transform:none;border:6px solid #fffdf6;border-radius:4px}.rsvp{background:#fffdf7}.opening button{-webkit-tap-highlight-color:transparent;color:#fffdf5}@media(max-width:700px){.opening{padding:45px 20px 30px;justify-content:center;min-height:calc(100svh - 20px)}.opening .eyebrow{font-size:8px;letter-spacing:2px;margin-bottom:22px}.envelope-scene{width:calc(100% + 12px);margin-top:12px}.garden-title em{font-size:85px}.opening .intro{font-size:14px}.open-invitation{margin-top:16px}.opening .tap{font-size:9px}}

@font-face{font-family:LauraScript;src:url('assets/fonts/laura-script.otf') format('opentype');font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:GardenSerif;src:url('assets/fonts/garden-serif.otf') format('opentype');font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:GardenSans;src:url('assets/fonts/garden-sans.otf') format('opentype');font-weight:400;font-style:normal;font-display:swap}body{font-family:GardenSerif,Georgia,serif}.garden-title span{font-family:GardenSerif,Georgia,serif;font-size:27px;letter-spacing:.5px}.garden-title em{font-family:LauraScript,cursive;font-style:normal;letter-spacing:0;font-size:clamp(94px,14vw,125px);line-height:1.05;font-weight:400;margin-top:14px}.opening .eyebrow,.opening .tap,.open-invitation{font-family:GardenSans,Arial,sans-serif}.opening .intro{font-family:GardenSerif,Georgia,serif;font-size:16px}.age-line{font-family:GardenSerif,Georgia,serif;font-style:normal;font-size:15px}.welcome h1,.rsvp h2{font-family:GardenSerif,Georgia,serif;font-weight:400}.open-invitation{letter-spacing:.6px}@media(max-width:700px){.garden-title span{font-size:25px}.garden-title em{font-size:105px}.opening .intro{font-size:15px}}

/* Shared invitation lettering and cohesive interior */
.brand-mark{position:relative;width:min(340px,85vw);aspect-ratio:795/480;overflow:hidden;margin:4px auto 0!important;mix-blend-mode:multiply}.brand-mark img{position:absolute;width:128.805%;max-width:none;height:auto;left:-16.352%;top:-56.25%;display:block}.opening .eyebrow{margin-bottom:12px}.opening .age-line{margin-top:3px}.inside-header{border:0;max-width:850px;font-size:12px;padding-top:28px}.inside-header span{font:11px GardenSans,Arial,sans-serif;color:#909580;letter-spacing:.4px}.inside-header button{font:11px GardenSans,Arial,sans-serif;text-decoration:underline;text-underline-offset:4px}.digital-invite{padding:25px 24px 50px;max-width:850px;margin:auto}.paper-frame{position:relative;background:#fffdf5;border:1px solid #c7cdb7;outline:1px solid #c7cdb7;outline-offset:7px;border-radius:160px 160px 10px 10px;padding:75px 60px 38px;text-align:center;box-shadow:0 15px 40px #6e674511}.paper-frame .eyebrow{font:9px GardenSans,Arial,sans-serif;letter-spacing:1.5px;margin:15px auto 6px;max-width:260px;line-height:1.7}.inside-mark{width:min(420px,100%);margin-top:0!important}.paper-frame .age-line{margin-top:0}.invitation-message{font:28px/1.4 GardenSerif,Georgia,serif;margin:30px auto 12px;color:#7e8569}.invitation-subtitle{font:19px GardenSerif,Georgia,serif;color:#b58280;margin:0 0 32px}.event-grid{display:grid;grid-template-columns:1fr 1fr 1fr;border-top:1px solid #dde0cf;border-bottom:1px solid #dde0cf;padding:22px 0;gap:12px;max-width:480px;margin:auto}.event-grid>div+div{border-left:1px solid #dde0cf}.event-grid span{font:9px GardenSans,Arial,sans-serif;letter-spacing:1.8px}.event-grid p{font:17px GardenSerif,Georgia,serif;margin:10px 0 0}.paper-frame .note{margin:15px auto 26px}.paper-frame .primary{border-radius:30px;font-family:GardenSans,Arial,sans-serif}.presence-gift{font:13px GardenSerif,Georgia,serif;color:#aa9586;margin:22px auto 0}.flower-corner{position:absolute;pointer-events:none;width:90px}.flower-corner svg{width:60px;filter:drop-shadow(1px 2px 2px #bdac8a22)}.corner-left{left:-20px;top:80px;transform:rotate(-15deg)}.corner-right{right:-20px;bottom:110px;transform:rotate(15deg)}.flower-corner svg:nth-child(2){width:45px;margin-left:30px;margin-top:-10px}.flower-corner svg:nth-child(3){width:38px;margin-left:0;margin-top:-4px}.rsvp{max-width:790px;margin:25px auto 0;border:1px solid #e6e5d8;border-radius:12px;padding-top:40px;background:#fffdf5}.rsvp h2{font-size:31px;margin:12px 0}.rsvp .tinyflower{width:40px}.rsvp>p:not(.eyebrow){font-size:15px}.rsvp .eyebrow{font:9px GardenSans,Arial,sans-serif;letter-spacing:1.8px}.choices label{background:#faf9f1}.rsvp form .primary{border-radius:30px}footer{padding-bottom:35px}footer a{font-size:10px}@media(max-width:700px){.brand-mark{width:min(325px,88vw)}.opening{padding-top:32px}.opening .eyebrow{margin-bottom:6px}.opening .intro{margin-top:18px}.inside-header{padding:22px 24px 8px}.inside-header span{font-size:9px;max-width:180px}.digital-invite{padding:25px 24px 35px}.paper-frame{border-radius:120px 120px 8px 8px;padding:58px 22px 30px}.paper-frame .eyebrow{font-size:8px;max-width:180px}.inside-mark{width:100%}.invitation-message{font-size:24px;margin-top:24px}.invitation-subtitle{font-size:17px}.event-grid{gap:4px;padding:20px 0}.event-grid span{font-size:8px}.event-grid p{font-size:15px}.flower-corner{width:62px}.flower-corner svg{width:46px}.flower-corner svg:nth-child(2){width:33px;margin-left:20px}.flower-corner svg:nth-child(3){width:28px}.corner-left{left:-14px;top:83px}.corner-right{right:-18px;bottom:120px}.paper-frame .primary{padding:15px 21px;font-size:12px}.rsvp{margin:20px 17px 0;padding:32px 23px}.rsvp h2{font-size:27px}.presence-gift{font-size:12px}}

.opening .garden-title{margin:6px auto 0!important}.garden-title span{font-size:26px}.garden-title em{font-size:110px;margin-top:7px;line-height:1;letter-spacing:0}.opening .age-line{margin-top:9px}.opening .intro{margin-top:20px}.inside-title{margin:14px auto 0!important}.inside-title span{font-size:29px}.inside-title em{font-size:120px}.paper-frame .age-line{margin-top:16px}@media(max-width:700px){.opening .garden-title span{font-size:24px}.opening .garden-title em{font-size:96px}.inside-title span{font-size:25px}.inside-title em{font-size:98px}.opening{padding-top:30px}.envelope-scene{margin-top:8px}}

.title-art{position:relative;overflow:hidden;width:245px;max-width:75vw;aspect-ratio:1247/850;margin:14px auto 4px!important}.title-art img{display:block;position:absolute;width:100%;height:auto;top:-31.765%;left:0}.opening .age-line{margin-top:4px}.inside-title-art{width:270px;margin:18px auto 6px!important}.paper-frame .age-line{margin-top:6px}@media(max-width:700px){.title-art{width:225px;margin:12px auto 4px!important}.inside-title-art{width:245px;max-width:100%}.opening .intro{margin-top:19px}.opening .eyebrow{margin-bottom:0}}

.butterfly{position:absolute;display:block;width:57px;pointer-events:none}.butterfly svg{display:block;width:100%;height:auto}.butterfly-one{top:55px;right:54px;transform:rotate(22deg)}.butterfly-two{left:45px;bottom:265px;width:43px;transform:rotate(-20deg)}.tiny-bloom{position:absolute;right:34px;bottom:310px;width:35px;transform:rotate(12deg);pointer-events:none}.tiny-bloom svg{width:100%;display:block}.rsvp{position:relative}.butterfly-form{right:26px;top:28px;width:39px;transform:rotate(15deg)}@media(max-width:700px){.butterfly-one{top:42px;right:24px;width:40px}.butterfly-two{left:14px;bottom:265px;width:30px}.tiny-bloom{right:14px;bottom:310px;width:24px}.butterfly-form{width:29px;right:16px;top:22px}}

.event-grid{grid-template-columns:1fr 1fr 1fr}.event-grid p{overflow-wrap:anywhere}.venue-address{font:15px/1.6 GardenSerif,Georgia,serif;margin:22px auto;max-width:420px}.venue-address a{display:inline-block;color:#6c7859;font:12px GardenSans,Arial,sans-serif;text-underline-offset:4px}.event-message{white-space:pre-wrap;overflow-wrap:anywhere;font:15px/1.7 GardenSerif,Georgia,serif;max-width:430px;margin:22px auto;color:#87836f}.admin-shell{max-width:740px;margin:auto;min-height:100vh;padding:38px 30px 65px}.admin-shell nav{display:flex;justify-content:space-between;margin-bottom:40px}.admin-shell a{color:#707b61;font:13px GardenSans,Arial,sans-serif}.admin-shell h1{font-size:36px;margin:14px 0}.admin-shell>p{line-height:1.7}.admin-form{background:#fffdf6;padding:24px 30px;margin-top:26px;border:1px solid #dedfce;border-radius:12px}.admin-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.admin-row label{font:13px Arial,sans-serif;margin:20px 0 0}.admin-form textarea{width:100%;resize:vertical;background:#fffefb;border:1px solid #d6d8c6;border-radius:5px;padding:14px;font:15px/1.6 Arial,sans-serif;color:#59654a;margin-top:9px}.admin-form .primary:disabled{opacity:.5}.admin-status{font:14px/1.6 GardenSans,Arial,sans-serif}.admin-form input[type=date],.admin-form input[type=time]{min-width:0}@media(max-width:700px){.admin-shell{padding:28px 18px 50px}.admin-shell h1{font-size:29px}.admin-form{padding:18px}.admin-row{grid-template-columns:1fr}.event-grid{grid-template-columns:1fr 1fr}.event-grid>div:last-child{grid-column:1/-1;border:0;border-top:1px solid #dde0cf;padding-top:15px;margin-top:10px}.event-grid p{line-height:1.4}}

.is-opening{transform:translateY(14px) scale(.985)!important;transition:transform .85s,opacity .75s}.paper-frame .eyebrow{margin-top:4px}.rsvp .eyebrow{margin-top:2px}

[hidden]{display:none!important}.admin-login{max-width:470px;margin:40px auto}.admin-shell table{width:100%;text-align:left;font:13px/1.5 Arial}.admin-shell td,.admin-shell th{padding:12px;border-bottom:1px solid #ddd}.table-scroll{overflow:auto}.admin-shell .toolbar{display:flex;gap:16px;flex-wrap:wrap;margin:20px 0}.admin-error{color:#a75050}.admin-success{color:#537044}


/* Family fields only: preserve the original invitation layout. */
.family-counts{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin:23px 0}.family-counts>label{font:12px GardenSans,Arial,sans-serif;color:#818674}.rsvp textarea{width:100%;margin-top:9px;border:1px solid #d6d8c6;border-radius:5px;padding:14px;font:15px/1.6 GardenSans,Arial,sans-serif;background:#fffefb;color:#59654a;resize:vertical}.return-invitation{display:block;margin:18px auto 0;background:none;border:0;color:#8c8e7a;font:12px GardenSans,Arial,sans-serif;padding:8px}.privacy-note{text-align:center;margin-top:24px}.confirmation-page{min-height:100svh;padding-top:10px}.confirmation-page .inside-header{max-width:680px}.confirmation-page .inside-header a{font:11px GardenSans,Arial,sans-serif;color:#859174;text-underline-offset:4px}.confirmation-page .rsvp{max-width:600px;margin-top:15px}.confirmation-page .rsvp h2{font-size:28px}.confirmation-page form{margin-top:26px}.admin-shell td:last-child{min-width:150px;max-width:280px;overflow-wrap:anywhere}@media(max-width:700px){.family-counts{gap:12px}.family-counts>label{font-size:11px}.confirmation-page .rsvp{margin:15px 17px 0}.confirmation-page .rsvp h2{font-size:26px}}
