@import"https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;1,500&family=Montserrat:wght@400;500;600&family=Parisienne&display=swap";:root{font-family:Montserrat,sans-serif;color:#314436;background:#fffdf8;font-synthesis:none;--green:#314436;--sage:#71806d;--champagne:#d2ae6d;--cream:#f6efe3;--blush:#e5c8ba;--white:#fffdf8}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--white)}button,input,select{font:inherit}a{color:inherit}h2,h3,h4,p{margin-top:0}.hero{min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:60px 24px;position:relative;overflow:hidden;background:radial-gradient(circle at 50% 25%,rgba(255,255,255,.85),transparent 35%),linear-gradient(145deg,#f8f2e8,#efe3d0)}.hero:before,.hero:after{content:"";position:absolute;width:340px;height:340px;border:1px solid rgba(113,128,109,.25);border-radius:50%;transform:rotate(35deg)}.hero:before{left:-190px;top:-80px}.hero:after{right:-190px;bottom:-80px}.floral{position:absolute;color:var(--sage);font-size:170px;opacity:.13}.floral-left{left:-15px;bottom:10%}.floral-right{right:-15px;top:8%;transform:rotate(180deg)}.eyebrow{text-transform:uppercase;letter-spacing:.35em;font-size:.7rem;font-weight:600;color:var(--sage)}.ceremony{text-transform:uppercase;letter-spacing:.22em;font-family:Cormorant Garamond,serif;font-size:1.1rem;margin:18px 0}.hero h1{margin:8px 0 22px;display:flex;flex-direction:column;font-family:Parisienne,cursive;font-size:clamp(4.8rem,16vw,9rem);font-weight:400;line-height:.62;color:var(--green)}.hero h1 b{font-family:Cormorant Garamond,serif;font-size:.4em;color:var(--champagne);font-weight:400;line-height:1.3}.rule{display:flex;align-items:center;gap:16px;text-transform:uppercase;letter-spacing:.22em;font-family:Cormorant Garamond,serif;font-size:1rem}.rule i{width:45px;height:1px;background:var(--champagne)}.date{font-family:Cormorant Garamond,serif;text-transform:uppercase;letter-spacing:.15em;font-size:1.2rem;margin:28px 0 6px}.place{text-transform:uppercase;letter-spacing:.3em;font-size:.72rem}.countdown{margin:28px 0;display:flex;flex-direction:column;color:var(--champagne)}.countdown strong{font:500 2rem Cormorant Garamond,serif}.countdown span{font-size:.65rem;text-transform:uppercase;letter-spacing:.18em}.scroll-link{font-size:.68rem;text-transform:uppercase;letter-spacing:.2em;text-decoration:none;border-bottom:1px solid var(--green);padding-bottom:6px}.section{padding:90px max(24px,calc((100% - 940px)/2))}.intro{text-align:center;max-width:760px;margin:auto}.section h2{font:500 clamp(2.5rem,7vw,4.8rem)/.95 "Cormorant Garamond",serif;color:var(--green)}.intro>p:last-child{line-height:1.9;color:#657065;max-width:620px;margin:32px auto 0}.private-card{background:var(--green);color:var(--cream);position:relative}.private-card h2{color:var(--cream)}.private-card>.ticket-type{display:inline-block;border:1px solid rgba(255,255,255,.35);border-radius:99px;padding:8px 14px;font-size:.72rem;text-transform:uppercase;letter-spacing:.12em}.rsvp{margin-top:45px}.rsvp h3{font:500 2.2rem Cormorant Garamond,serif}.event-card{display:grid;grid-template-columns:1fr auto;gap:20px;border-top:1px solid rgba(255,255,255,.22);padding:28px 0}.event-card h4{font:500 1.65rem Cormorant Garamond,serif;margin-bottom:7px}.event-card p{font-size:.85rem;color:#dfe5db}.event-date{text-transform:uppercase;letter-spacing:.15em;font-size:.65rem!important;color:var(--champagne)!important}.event-card a{font-size:.72rem;color:var(--champagne)}.choices{display:flex;gap:18px;align-items:center}.choices label{cursor:pointer}.field{display:flex;flex-direction:column;gap:9px;margin:18px 0;font-size:.75rem;text-transform:uppercase;letter-spacing:.1em}.field input,.field select{border:1px solid rgba(255,255,255,.3);background:#ffffff14;color:#fff;padding:13px;border-radius:3px}.field select option{color:#222}.field.small{min-width:160px;grid-column:2}.primary{border:0;background:var(--champagne);color:#27352b;padding:16px 25px;text-transform:uppercase;letter-spacing:.13em;font-size:.72rem;font-weight:600;cursor:pointer}.primary:disabled{opacity:.55}.success{color:#cfe5ca;margin-top:15px}.form-error{color:#ffd0c8}.ticket{margin:60px auto 0;max-width:380px;background:var(--cream);color:var(--green);padding:38px;text-align:center;border-radius:160px 160px 10px 10px;display:flex;flex-direction:column;align-items:center;gap:8px}.ticket img{width:210px;margin:8px}.ticket strong{font:600 1.6rem Cormorant Garamond,serif}.ticket small{margin-top:8px}.program{text-align:center}.program article{padding:26px 0;border-bottom:1px solid #ddd2bf}.program article span{font-size:.68rem;text-transform:uppercase;letter-spacing:.13em;color:var(--champagne)}.program h3{font:500 2rem Cormorant Garamond,serif;margin:8px 0}.program article p{font-size:.85rem;color:#6d776c}.notice{text-align:center;padding:45px}.notice h2{font-size:2rem}footer{text-align:center;background:#26372c;color:var(--cream);padding:65px 20px;font:400 2.5rem Parisienne,cursive}footer b{color:var(--champagne);font:400 1.5rem Cormorant Garamond,serif;margin:0 12px}footer p{font:500 .65rem Montserrat,sans-serif;text-transform:uppercase;letter-spacing:.2em;margin-top:18px}.invitation-cover{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;min-height:100svh;overflow:hidden;background:linear-gradient(145deg,#eef0e5,#dce3d2);color:var(--green);text-align:center;cursor:pointer;perspective:1200px}.cover-pattern{position:absolute;inset:-40px;background-color:#e7ebdf;background-image:radial-gradient(circle at 20% 25%,transparent 0 24px,rgba(83,107,79,.12) 25px 26px,transparent 27px),radial-gradient(circle at 80% 70%,transparent 0 38px,rgba(210,174,109,.16) 39px 40px,transparent 41px),repeating-linear-gradient(35deg,transparent 0 38px,rgba(113,128,109,.055) 39px 40px);transform:rotate(-2deg)}.cover-pattern:before,.cover-pattern:after{content:"❦";position:absolute;font-size:clamp(12rem,35vw,30rem);color:#71806d14}.cover-pattern:before{left:-5%;top:-14%;transform:rotate(25deg)}.cover-pattern:after{right:-3%;bottom:-18%;transform:rotate(205deg)}.cover-botanicals{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.botanical path{fill:none;stroke:#71806d;stroke-width:3;stroke-linecap:round}.botanical ellipse{fill:#8e9b86;opacity:.75}.flower circle{fill:#fffaf0;stroke:#d8c69f;stroke-width:1}.flower .flower-heart{fill:#d2ae6d;stroke:none}.flower.small{opacity:.9}.champagne-emblem{position:absolute;top:5.5%;left:50%;width:110px;height:92px;transform:translate(-50%);opacity:.72}.champagne-emblem .glass{position:absolute;top:11px;width:31px;height:48px;border:2px solid #bd9550;border-top:1px solid #bd9550;border-radius:4px 4px 15px 15px}.champagne-emblem .glass:before{content:"";position:absolute;left:50%;top:46px;width:2px;height:24px;background:#bd9550}.champagne-emblem .glass:after{content:"";position:absolute;left:50%;top:69px;width:28px;height:2px;background:#bd9550;transform:translate(-50%)}.champagne-emblem .glass.left{left:25px;transform:rotate(-13deg)}.champagne-emblem .glass.right{right:25px;transform:rotate(13deg)}.champagne-emblem .bubble{position:absolute;border:1px solid #d2ae6d;border-radius:50%}.champagne-emblem .bubble.one{left:18px;top:1px;width:8px;height:8px}.champagne-emblem .bubble.two{right:12px;top:20px;width:6px;height:6px}.champagne-emblem .bubble.three{right:24px;top:-5px;width:11px;height:11px}.envelope-stage{position:relative;z-index:1;width:min(92vw,560px)}.cover-date{margin-bottom:35px;text-transform:uppercase;letter-spacing:.38em;font-size:.7rem}.envelope{position:relative;width:min(82vw,440px);height:min(51vw,275px);min-height:210px;max-height:275px;margin:auto;filter:drop-shadow(0 25px 30px rgba(49,68,54,.2));transform-style:preserve-3d}.envelope-back{position:absolute;inset:0;border-radius:4px;background:#d4dbc9;border:1px solid rgba(49,68,54,.13)}.invitation-letter{position:absolute;z-index:2;left:5%;bottom:8%;display:flex;width:90%;height:92%;flex-direction:column;align-items:center;justify-content:center;padding:22px;background:#fffdf8;border:1px solid #e5ddcb;box-shadow:0 4px 15px #3144361f}.invitation-letter:before{content:"";position:absolute;inset:9px;border:1px solid rgba(210,174,109,.55);pointer-events:none}.letter-kicker{margin-bottom:12px;text-transform:uppercase;letter-spacing:.22em;font-size:.55rem;color:var(--sage)}.invitation-letter strong{position:relative;font:400 clamp(2rem,7vw,3.1rem) Parisienne,cursive;line-height:1;color:var(--green)}.invitation-letter strong i{font-family:Cormorant Garamond,serif;color:var(--champagne);font-style:normal}.invitation-letter>span{position:relative;margin-top:12px;font:500 clamp(.85rem,2.8vw,1.05rem) "Cormorant Garamond",serif}.invitation-letter small{position:relative;margin-top:14px;text-transform:uppercase;letter-spacing:.12em;font-size:.52rem}.envelope-pocket{position:absolute;z-index:4;inset:0;border-radius:4px;background:linear-gradient(145deg,#e6eadf,#cbd4c0);clip-path:polygon(0 0,50% 57%,100% 0,100% 100%,0 100%)}.envelope-pocket:after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(35deg,transparent 0 25px,rgba(83,107,79,.06) 26px 27px)}.envelope-flap{position:absolute;z-index:5;inset:0;background:linear-gradient(160deg,#edf0e7,#c9d3bf);clip-path:polygon(0 0,100% 0,50% 62%);transform-origin:top;backface-visibility:hidden}.wax-seal{position:absolute;z-index:6;left:50%;top:52%;display:flex;width:76px;height:76px;align-items:center;justify-content:center;gap:2px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#cf826d,#9d493b 68%,#783227);border:4px double rgba(255,224,201,.48);box-shadow:0 5px 12px #391c1459;color:#f3d2bb;transform:translate(-50%,-50%);font:600 1rem Cormorant Garamond,serif}.wax-seal i{font-style:normal;font-size:.8rem}.open-hint{margin:34px 0 0;font:500 1rem Cormorant Garamond,serif;letter-spacing:.08em}.cover-cta{display:inline-block;margin-top:20px;border:1px solid var(--green);background:#fffdf8e6;color:var(--green);padding:13px 28px;text-transform:uppercase;letter-spacing:.18em;font-size:.65rem;text-decoration:none}.opening .envelope-flap{animation:open-flap .65s cubic-bezier(.4,0,.2,1) forwards}.opening .wax-seal{animation:break-seal .35s ease forwards}.opening .invitation-letter{animation:raise-letter 1.05s .5s cubic-bezier(.2,.75,.25,1) forwards}.opening .open-hint,.opening .cover-date{animation:fade-away .3s forwards}.opening{animation:reveal-page .45s 1.45s ease forwards}@keyframes open-flap{0%{transform:rotateX(0);z-index:5}to{transform:rotateX(180deg);z-index:1}}@keyframes break-seal{to{opacity:0;transform:translate(-50%,-50%) scale(.65) rotate(18deg)}}@keyframes raise-letter{0%{transform:translateY(0)}55%{transform:translateY(-72%);z-index:3}to{transform:translateY(-22%) scale(1.08);z-index:7}}@keyframes fade-away{to{opacity:0}}@keyframes reveal-page{to{opacity:0;transform:scale(1.035)}}.music-toggle{position:fixed;right:16px;bottom:16px;z-index:20;border:1px solid rgba(49,68,54,.22);border-radius:999px;background:#fffdf8eb;color:var(--green);padding:10px 15px;box-shadow:0 7px 24px #31443624;font-size:.7rem;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}@media(max-width:600px){.cover-botanicals{width:130%;height:110%;left:-15%;top:-5%;opacity:.8}.champagne-emblem{top:3%;transform:translate(-50%) scale(.82)}.envelope-stage{transform:translateY(2vh)}.cover-date{margin-bottom:26px}.envelope{width:88vw;height:56vw;min-height:205px}.invitation-letter{padding:15px}.wax-seal{width:68px;height:68px}.open-hint{padding:0 20px}.music-toggle{right:10px;bottom:10px}}@media(prefers-reduced-motion:reduce){.opening .envelope-flap,.opening .wax-seal,.opening .invitation-letter,.opening .open-hint,.opening .cover-date,.opening{animation-duration:.01ms;animation-delay:0s}}.couple-photo{position:relative;max-width:980px;margin:80px auto 0;padding:0 24px}.couple-photo img{display:block;width:100%;height:auto;max-height:720px;object-fit:cover;object-position:center;border-radius:2px;box-shadow:0 24px 70px #31443629}.couple-photo figcaption{position:absolute;left:50%;bottom:-27px;transform:translate(-50%);white-space:nowrap;background:var(--white);padding:12px 28px;font:400 2.2rem Parisienne,cursive;color:var(--green)}.couple-photo figcaption span{font-family:Cormorant Garamond,serif;color:var(--champagne);padding:0 7px}@media(max-width:600px){.couple-photo{margin-top:42px;padding:0 16px}.couple-photo img{height:440px;object-fit:cover;object-position:52% center}.couple-photo figcaption{font-size:1.8rem;padding:10px 20px}}.detailed-rsvp{max-width:760px;margin:35px auto 0}.detailed-rsvp>p{color:#687169}.response-block,.event-response fieldset{border:0;padding:0;margin:28px 0}.response-block legend,.event-response legend{font-weight:600;margin-bottom:14px}.answer-buttons{display:grid;grid-template-columns:1fr 1fr;gap:14px}.answer-buttons label{border:1px solid #bfc3bc;padding:16px;text-align:center;text-transform:uppercase;letter-spacing:.16em;cursor:pointer;transition:.2s}.answer-buttons label.selected{background:var(--green);border-color:var(--green);color:#fff}.answer-buttons input{position:absolute;opacity:0;pointer-events:none}.single-event-confirmation{margin:34px 0;padding:24px;border-left:2px solid var(--champagne);background:var(--cream)}.single-event-confirmation h4{font:600 1.6rem Cormorant Garamond,serif;margin-bottom:8px}.single-event-confirmation p:last-child{margin-bottom:0}.event-responses{border-left:1px solid #d7d9d3;padding-left:24px;margin:38px 0}.event-response{padding:22px 0;border-bottom:1px solid #e6e3da}.event-response:last-child{border-bottom:0}.event-details h4{font:600 1.45rem Cormorant Garamond,serif;margin-bottom:6px}.event-response fieldset{margin:20px 0 0}.detailed-rsvp .field{display:block;margin:26px 0;font-weight:600}.detailed-rsvp .field input,.detailed-rsvp .field textarea{display:block;width:100%;margin-top:10px;padding:14px;border:1px solid #bfc3bc;background:#fff;color:var(--green);font:inherit}.detailed-rsvp .field textarea{min-height:130px;resize:vertical}.submit-rsvp{width:100%;margin-top:12px;text-transform:uppercase;letter-spacing:.14em}.admin-shell{min-height:100vh;background:#f3f1eb;color:#26372c}.admin-header{background:#26372c;color:#fff;padding:18px max(20px,calc((100% - 1100px)/2));display:flex;justify-content:space-between;align-items:center}.admin-header h1{font:500 1.6rem Cormorant Garamond,serif;margin:0}.admin-header nav{display:flex;gap:18px;align-items:center}.text-button{background:none;border:0;color:inherit;cursor:pointer}.text-button.danger{color:#a33}.secondary{border:1px solid #71806d;background:#fff;color:#314436;padding:11px 18px;cursor:pointer}.actions{white-space:nowrap}.admin-error{display:flex;justify-content:space-between;background:#f8e5e2;color:#8a2f24;padding:14px 18px}.admin-form textarea{min-height:84px;resize:vertical}.compact-form{grid-template-columns:2fr 1fr auto auto;align-items:end}.admin-main{max-width:1100px;margin:auto;padding:35px 20px}.login{max-width:420px;margin:12vh auto;background:#fff;padding:38px;box-shadow:0 15px 50px #26372c17}.login h1{font:500 2.5rem Cormorant Garamond,serif}.login .field input,.admin-form input,.admin-form select,.admin-form textarea{color:#26372c;background:#fff;border:1px solid #d5d1c7;padding:12px;width:100%}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.stat{background:#fff;padding:22px}.stat strong{display:block;font:600 2.2rem Cormorant Garamond,serif}.stat span{font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;color:#788078}.panel{background:#fff;padding:24px;margin-top:24px;overflow:auto}.panel-header{display:flex;justify-content:space-between;align-items:center;gap:16px}.panel h2{font:500 2rem Cormorant Garamond,serif;margin:0}.admin-form{display:grid;grid-template-columns:repeat(2,1fr);gap:15px;margin:20px 0;padding:20px;background:#f6f4ef}.admin-form label{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em}.admin-form .events-select{grid-column:1/-1;display:flex;gap:15px;flex-wrap:wrap}.admin-form button{width:max-content}table{width:100%;border-collapse:collapse;margin-top:18px;font-size:.82rem}th,td{text-align:left;padding:12px 10px;border-bottom:1px solid #ece8de}th{text-transform:uppercase;letter-spacing:.08em;font-size:.62rem;color:#7b817a}.code{font-family:monospace;background:#ebe7da;padding:5px 8px}.scanner-box{max-width:650px;margin:30px auto;background:#fff;padding:25px}.scanner-result{padding:20px;background:#edf3ea;margin-top:18px}.scanner-result.error{background:#f8e5e1;color:#9e3027}@media(max-width:700px){.event-card{grid-template-columns:1fr}.field.small{grid-column:1}.choices{justify-content:flex-start}.stats{grid-template-columns:repeat(2,1fr)}.admin-form{grid-template-columns:1fr}.admin-header{align-items:flex-start}.admin-header nav{font-size:.72rem}.section{padding-top:70px;padding-bottom:70px}.hero h1{font-size:5rem}}
