@import "https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@300;400;500;600&family=Italiana&family=Montserrat:wght@300;400;500&family=Parisienne&display=swap";:root{--ivory:#f8f2ed;--paper:#fffaf7;--rose:#c98f94;--rose-dark:#9b6067;--gold:#b8914f;--gold-light:#dec391;--ink:#57464a}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--ivory);color:var(--ink);margin:0;font-family:Montserrat,sans-serif;font-weight:300}button,a{font:inherit}.site{background:radial-gradient(circle at 20% 10%,#fff 0,#0000 35%),linear-gradient(145deg,#f4e8e4,#fbf7f2 48%,#edddd9);min-height:100vh;overflow:hidden}.envelope-stage{place-items:center;height:100svh;min-height:650px;padding:30px 18px 70px;display:grid;position:relative}.ambient{filter:blur(4px);opacity:.45;border-radius:50%;position:absolute}.ambient-one{background:#e7c7c7;width:260px;height:260px;top:12%;left:-140px}.ambient-two{border:1px solid #d9ba84;width:330px;height:330px;bottom:-80px;right:-170px}.envelope{aspect-ratio:1.6;filter:drop-shadow(0 28px 30px #5b383933);perspective:1200px;width:min(90vw,640px);position:relative}.envelope:before,.envelope:after{content:"";z-index:3;pointer-events:none;position:absolute;inset:0}.envelope:before{clip-path:polygon(0 0,52% 68%,0 100%);background:linear-gradient(120deg,#eacfd0 0%,#dcb8bc 76%,#cfa7ab 100%);box-shadow:inset 1px 0 #f6e7e3}.envelope:after{clip-path:polygon(100% 0,48% 68%,100% 100%);background:linear-gradient(240deg,#e9cdcf 0%,#d8b3b7 76%,#cda3a8 100%)}.envelope-back,.envelope-front{border:1px solid #b58e4ea6;position:absolute;inset:0}.envelope-back{z-index:0;background:linear-gradient(145deg,#efd9d9,#d9b6ba);border-radius:7px;box-shadow:inset 0 1px #fff8f2aa,inset 0 -15px 40px #a66f7614}.real-envelope{z-index:10;clip-path:inset(11.5% 12% 13%);pointer-events:none;width:132%;height:auto;transition:opacity .7s,transform 1s;position:absolute;top:-16%;left:-16%}.open-envelope{z-index:0;clip-path:polygon(50% 4.5%,79.5% 37%,79.5% 93.5%,20.5% 93.5%,20.5% 37%);opacity:0;pointer-events:none;width:139%;height:auto;transition:opacity .7s .35s,transform 1s .35s;position:absolute;top:-43%;left:-19.5%;transform:scale(.98)}.envelope-front{z-index:4;clip-path:polygon(0 42%,50% 72%,100% 42%,100% 100%,0 100%);background:linear-gradient(155deg,#e5c4c6 0%,#d5afb3 72%,#c99fa5 100%);box-shadow:inset 0 -18px 30px #9e697015}.envelope-flap{z-index:5;transform-origin:top;clip-path:polygon(0 0,100% 0,50% 68%);filter:drop-shadow(0 4px 3px #6742471a);background:linear-gradient(155deg,#f0d9da 0%,#e4c4c7 55%,#d4adb2 100%);border-top:1px solid #c8a177;transition:transform 1s cubic-bezier(.65,.05,.36,1);position:absolute;inset:0}.letter-preview{z-index:2;height:82%;color:var(--rose-dark);background:linear-gradient(145deg,#fffdfa,#faf4ef);border:1px solid #d6bc8d;flex-direction:column;align-items:center;padding:30px 36px 22px;transition:transform 1s .45s;display:flex;position:absolute;top:15%;left:11%;right:11%;box-shadow:0 5px 15px #6b484b20}.letter-preview strong{margin:12px 0;font:500 clamp(28px,6vw,48px)/1.2 Italiana,serif}.letter-preview small{letter-spacing:.22em;color:var(--gold)}.preview-ornament{color:var(--gold);margin:17px 0 10px;font-size:11px}.preview-prayer{text-align:center;color:#6f5a5d;max-width:430px;margin:0;font:400 clamp(12px,2.2vw,16px)/1.55 Cormorant Garamond,serif}.continue-button{border:0;border-bottom:1px solid var(--gold);color:#9a713a;text-transform:uppercase;letter-spacing:.18em;cursor:pointer;background:0 0;margin-top:18px;padding:8px 4px;font-size:8px}.seal{z-index:12;cursor:pointer;filter:drop-shadow(0 8px 8px #70472b55);background:0 0;border:0;width:102px;height:102px;padding:0;transition:all .4s;position:absolute;top:64%;left:50%;transform:translate(-50%,-50%)rotate(-2deg)}.seal .wax-base{object-fit:contain;opacity:1;filter:none;mix-blend-mode:normal;width:100%;height:100%;position:absolute;inset:0}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.seal:hover{transform:translate(-50%,-50%)scale(1.08)}.recipient-intro{z-index:11;text-align:center;text-transform:uppercase;letter-spacing:.28em;color:#956f70;margin:0;font-size:10px;transition:opacity .35s;position:absolute;top:-13%;left:0;right:0}.recipient{z-index:11;text-align:center;color:#744e55;transition:opacity .35s;position:absolute;top:81%;left:10%;right:10%}.recipient small,.recipient p{text-transform:uppercase;letter-spacing:.18em;font-size:9px}.recipient h1{margin:6px 0;font:400 clamp(20px,4.5vw,34px) Cormorant Garamond,serif}.recipient p{color:#916c53;margin:0}.open-hint{text-transform:uppercase;letter-spacing:.24em;color:#8e6d6d;font-size:10px;animation:1.8s infinite pulse;position:absolute;bottom:8%}.is-open .envelope-flap{z-index:1;transform:rotateX(180deg)}.is-open .letter-preview{z-index:6;transform:translateY(-24%)}.is-open .real-envelope{opacity:0;transform:scale(.98)}.is-open .open-envelope{opacity:1;transform:scale(1)}.is-open:before,.is-open:after,.is-open .envelope-back,.is-open .envelope-front,.is-open .envelope-flap{opacity:0}.is-open .seal,.is-open .recipient,.is-open .recipient-intro{opacity:0;pointer-events:none}.invitation{opacity:0;max-height:0;transition:opacity .8s 1s;overflow:hidden}.opened .invitation{opacity:1;max-height:none;overflow:visible}.music-button{z-index:20;color:#9b733b;cursor:pointer;letter-spacing:.08em;background:#fffaf5dd;border:1px solid #d5b476;border-radius:30px;padding:10px 16px;font-size:11px;position:fixed;top:18px;right:18px;box-shadow:0 6px 20px #7b5d4b22}.section-card,.date-section,.farewell,.passes-card{text-align:center;width:min(92%,720px);margin:38px auto;padding:80px clamp(25px,8vw,80px);position:relative}.section-card{background:linear-gradient(155deg,#fffdfb,#f7eeea);border:1px solid #d6bb87;box-shadow:0 20px 60px #74565312}.hero{margin-top:80px}.eyebrow{color:var(--gold);text-transform:uppercase;letter-spacing:.3em;font-size:10px;font-weight:500}.official-monogram{object-fit:contain;width:min(250px,70%);height:200px;margin:25px auto 5px;display:block}.intro{color:#8b6c70;font:italic 22px Cormorant Garamond,serif}.hero h2{color:var(--rose-dark);margin:25px 0 0;font:400 clamp(42px,9vw,78px)/.95 Italiana,serif}.script{color:var(--gold);margin:4px 0 30px;font:400 clamp(32px,7vw,55px) Parisienne,cursive}.ornament{height:30px;color:var(--gold);justify-content:center;align-items:center;gap:14px;display:flex}.ornament:before,.ornament:after{content:"";background:linear-gradient(90deg,transparent,var(--gold));width:70px;height:1px}.ornament:after{transform:rotate(180deg)}.welcome-copy,.gift-card>p,.rsvp-card>p{font:400 19px Cormorant Garamond,serif}.parents-label{letter-spacing:.15em;text-transform:uppercase;color:#9a7d65;margin-top:35px;font-size:10px}.parents{color:var(--rose-dark);font:500 20px Cormorant Garamond,serif}.date-section{padding-top:100px;padding-bottom:100px}.date-line{justify-content:center;align-items:center;gap:24px;margin:25px 0 10px;display:flex}.date-line span{letter-spacing:.16em;color:#8a6b61;width:100px;font-size:11px;line-height:1.7}.date-line strong{color:var(--rose-dark);border-left:1px solid #d0b580;border-right:1px solid #d0b580;padding:0 25px;font:400 90px Italiana,serif}.time{letter-spacing:.3em;color:var(--gold);font-weight:500}.countdown{grid-template-columns:repeat(4,1fr);gap:8px;margin-top:50px;display:grid}.countdown div{border-top:1px solid #d5b77e;border-bottom:1px solid #d5b77e;padding:18px 4px}.countdown strong{color:#9f6770;font:400 clamp(24px,6vw,38px) Italiana,serif;display:block}.countdown span{text-transform:uppercase;letter-spacing:.12em;font-size:8px}.icon-circle{width:58px;height:58px;color:var(--gold);border:1px solid #cba665;border-radius:50%;place-items:center;margin:0 auto 28px;font-size:22px;display:grid}.info-card h3,.gift-card h3,.rsvp-card h3,.passes-card h3{color:var(--rose-dark);margin:15px 0;font:400 clamp(34px,7vw,54px) Italiana,serif}.detail{color:#8e746a;font:400 17px Cormorant Garamond,serif!important}.gold-button{border:1px solid var(--gold);color:#fff;text-transform:uppercase;letter-spacing:.18em;background:linear-gradient(135deg,#c7a25d,#a77c38);margin-top:24px;padding:15px 28px;font-size:10px;text-decoration:none;display:inline-block;box-shadow:0 10px 20px #a97c4133}.rsvp-form{text-align:left;gap:20px;max-width:480px;margin:35px auto 0;display:grid}.rsvp-form>label,.rsvp-form legend{text-transform:uppercase;letter-spacing:.13em;color:#8f6b68;gap:8px;font-size:10px;display:grid}.rsvp-form fieldset{border:1px solid #d8bf96;gap:12px;padding:18px;display:grid}.rsvp-form fieldset label{text-transform:none;letter-spacing:0;color:var(--ink);font:400 17px Cormorant Garamond,serif}.rsvp-form textarea,.rsvp-form select{width:100%;color:var(--ink);background:#fffaf7;border:0;border-bottom:1px solid #c7a56f;outline:none;padding:12px;font:400 17px Cormorant Garamond,serif}.rsvp-form .gold-button{cursor:pointer;justify-self:center}.rsvp-form .gold-button:disabled{opacity:.6}.form-error{color:#a24343;text-align:center!important}.confirmation-success{border:1px solid #d6bb87;margin:35px auto 0;padding:30px}.confirmation-success>span{color:#fff;background:#b8914f;border-radius:50%;place-items:center;width:52px;height:52px;margin:0 auto 15px;font-size:25px;display:grid}.confirmation-success strong{color:var(--rose-dark);font:500 26px Cormorant Garamond,serif;display:block}.passes-card{color:#fff7f1;background:linear-gradient(145deg,#b8757f,#93606a);border:1px solid #dabf8d}.passes-card .eyebrow{color:#f0d8a7}.passes-card>strong{color:#f4d89b;margin:25px 0 0;font:400 110px/1 Italiana,serif;display:block}.passes-card h3{color:#fff;margin-top:0}.passes-card p:last-child{font:400 18px Cormorant Garamond,serif}.farewell{background:radial-gradient(circle,#fff9f5,#eddbd8);flex-direction:column;justify-content:center;width:100%;max-width:none;min-height:70vh;margin-bottom:0;display:flex}.farewell>p{text-transform:uppercase;letter-spacing:.18em;color:#9a7751;margin-top:35px;font-size:10px}.farewell h3{color:#885a64;margin:20px 0;font:400 clamp(36px,8vw,70px) Cormorant Garamond,serif}.signature{color:var(--gold);font:400 clamp(42px,9vw,72px) Parisienne,cursive}.farewell small{text-transform:uppercase;letter-spacing:.25em;margin-top:20px}@keyframes pulse{50%{opacity:.45}}@media (max-width:600px){.envelope-stage{min-height:600px}.envelope{margin-top:-10px}.seal{width:78px;height:78px;top:64%}.recipient-intro{font-size:8px;top:-12%}.recipient{top:81%}.recipient small,.recipient p{font-size:7px}.recipient h1{margin:2px 0;font-size:19px}.letter-preview{height:82%;padding:16px 16px 12px;top:16%;left:9%;right:9%}.letter-preview strong{margin:4px 0}.preview-ornament{margin:6px 0 3px}.preview-prayer{font-size:9px;line-height:1.25}.continue-button{margin-top:6px;font-size:6px}.open-envelope{top:-38%}.is-open .letter-preview{transform:translateY(-18%)}.section-card{padding-top:65px;padding-bottom:65px}.date-line{gap:8px}.date-line strong{padding:0 12px;font-size:64px}.date-line span{width:72px;font-size:8px}.hero h2{font-size:46px}.countdown span{font-size:6px}.gift-card>p,.welcome-copy,.rsvp-card>p{font-size:18px}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition-duration:.01ms!important;animation:none!important}}.admin-shell{background:#f7f1ed;min-height:100vh;padding:clamp(24px,5vw,70px)}.admin-header{justify-content:space-between;align-items:flex-end;gap:30px;max-width:1200px;margin:auto;display:flex}.admin-header h1{color:var(--rose-dark);margin:10px 0;font:400 clamp(42px,7vw,72px) Italiana,serif}.admin-header p{margin:0}.admin-actions{flex-wrap:wrap;gap:12px;display:flex}.admin-actions a{border:1px solid var(--gold);color:#8b6534;text-transform:uppercase;letter-spacing:.1em;background:#fff;padding:12px 18px;font-size:11px;text-decoration:none}.admin-stats{grid-template-columns:repeat(3,1fr);gap:16px;max-width:1200px;margin:45px auto 25px;display:grid}.admin-stats div{background:#fff;border:1px solid #e1d2c3;gap:8px;padding:28px;display:grid}.admin-stats strong{color:var(--rose-dark);font:400 42px Italiana,serif}.admin-stats span{text-transform:uppercase;letter-spacing:.15em;color:#8b756b;font-size:10px}.admin-table-wrap{background:#fff;border:1px solid #e1d2c3;max-width:1200px;margin:auto;overflow:auto}.admin-table-wrap table{border-collapse:collapse;width:100%;min-width:900px}.admin-table-wrap th{text-align:left;color:#fff;text-transform:uppercase;letter-spacing:.14em;background:#9a6870;padding:16px;font-size:9px}.admin-table-wrap td{vertical-align:top;border-bottom:1px solid #eee3dc;padding:17px 16px;font:400 16px Cormorant Garamond,serif}.admin-table-wrap td strong,.admin-table-wrap td small{display:block}.admin-table-wrap td small{color:#9a847b;margin-top:4px}.status{border-radius:20px;padding:5px 10px;font-size:12px;display:inline-block}.status.yes{color:#3b6e45;background:#e5f0e5}.status.no{color:#8b4444;background:#f4e3e3}.admin-empty,.admin-login{text-align:center;padding:80px 25px}.admin-empty h2,.admin-login h1{color:var(--rose-dark);font:400 35px Italiana,serif}@media (max-width:700px){.admin-header{flex-direction:column;align-items:flex-start}.admin-stats{grid-template-columns:1fr}.admin-actions a{text-align:center;width:100%}}
