:root{--green:#173b33;--green2:#0d2a24;--cream:#fcf9f1;--gold:#b28b52;--ink:#263b32;--muted:#75827a}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:'DM Sans',sans-serif}h1,h2,h3,p{margin-top:0}h1,h2,h3,.logo,.footer-mark{font-family:'Cormorant Garamond',serif}h2{font-size:clamp(3rem,6vw,5rem);line-height:1.05;font-weight:500;margin:12px 0 25px}h2 em,h1 em{font-weight:400;color:var(--gold)}h3{font-size:2rem;font-weight:600;margin:12px 0}.nav{height:82px;padding:0 clamp(22px,5vw,100px);display:flex;align-items:center;justify-content:space-between;background:#fdfaf3;position:relative;z-index:5}.logo{text-decoration:none;font-size:2.1rem;color:var(--green);font-weight:700}.logo span{color:var(--gold)}nav{display:flex;gap:30px;align-items:center}nav a{font-size:.78rem;letter-spacing:.05em;color:var(--green);text-decoration:none}nav a:hover,.text-link:hover{text-decoration:underline}.nav-rsvp{border:1px solid var(--green);padding:11px 22px}.hero{position:relative;background:linear-gradient(145deg,#234c40,#0a2922 70%);min-height:730px;display:grid;place-items:center;text-align:center;color:white;overflow:hidden}.hero:before,.hero:after{content:'❧';position:absolute;color:#bad2b2;opacity:.12;font-family:serif;font-size:370px;transform:rotate(-40deg);top:20px;left:-105px}.hero:after{left:auto;right:-90px;top:auto;bottom:-70px;transform:rotate(145deg)}.hero-inner{z-index:1;padding:60px 20px}.eyebrow,.smallcap,.hero-intro{font-size:.72rem;font-weight:600;letter-spacing:.26em;color:var(--gold)}.eyebrow.light{color:#efdab3;letter-spacing:.12em;font-size:1.1rem}.ornament{font-size:1.2rem;color:var(--gold);margin:20px}.hero-intro{color:#e0caa4;margin:17px 0}.hero h1{font-size:clamp(4.5rem,10vw,8.5rem);font-weight:500;line-height:.85;margin:0 0 28px}.hero h1 em{color:#e5c994}.hero-sub{font-family:'Cormorant Garamond',serif;font-size:1.6rem;font-style:italic;color:#e0e6de}.hero-date{font-size:.75rem;letter-spacing:.18em;margin:30px 0;color:#e7e5d8}.hero-date span{padding:0 9px;color:var(--gold)}.btn{border:0;padding:16px 30px;font-size:.77rem;font-weight:700;letter-spacing:.08em;text-decoration:none;display:inline-flex;justify-content:center;gap:24px;cursor:pointer;align-items:center;transition:transform .2s}.btn:hover{transform:translateY(-2px)}.btn.ivory{background:#f6edda;color:var(--green)}.btn.dark{background:var(--green);color:white}.hero-bottom{position:absolute;bottom:22px;font-size:.6rem;letter-spacing:.19em;color:#bbcabd}.hero-bottom span{padding-left:10px}.envelope{width:156px;height:94px;background:#e8d8b8;margin:0 auto 34px;position:relative;box-shadow:0 8px 20px #0002;border-radius:3px;transition:transform .65s}.envelope-flap{position:absolute;top:0;left:0;width:100%;height:100%;background:#f5e5c6;clip-path:polygon(0 0,50% 67%,100% 0);z-index:2;transform-origin:top;transition:transform .7s}.envelope-letter{position:absolute;inset:8px;background:#fffaf0;padding:8px 3px;font-size:.35rem;letter-spacing:.1em;color:var(--green);transition:transform .65s}.envelope-letter strong{font-family:'Cormorant Garamond',serif;font-size:1.1rem;display:block;letter-spacing:0;margin-top:4px}.seal{width:48px;height:48px;border-radius:50%;background:#8c413d;border:3px double #b97a6f;color:#ffe8cf;position:absolute;left:50%;top:37%;transform:translateX(-50%);z-index:3;font-family:serif;cursor:pointer;font-size:.85rem;box-shadow:0 3px 10px #0004}.envelope.open .envelope-flap{transform:rotateX(155deg)}.envelope.open .envelope-letter{transform:translateY(-52px)}.envelope.open .seal{opacity:0;pointer-events:none}.section{padding:105px 20px;text-align:center}.section-shell{max-width:1100px;margin:auto}.section-shell.narrow{max-width:650px}.leaf{color:var(--gold);font-size:2.2rem}.lead{font-family:'Cormorant Garamond',serif;font-size:1.65rem;line-height:1.45;max-width:750px;margin:0 auto 44px;color:#58665b}.family-grid{display:grid;grid-template-columns:1fr 100px 1fr;align-items:center;gap:20px;margin-top:70px}.family-grid>div:not(.family-heart){border:1px solid #dacdb6;padding:30px 20px;min-height:220px}.family-grid p{line-height:1.8;font-size:.85rem;color:#69766c}.family-grid strong{color:var(--green)}.family-heart{font-size:2.1rem;line-height:1.5;color:var(--gold)}.quote-strip{background:#e9eee5;text-align:center;padding:65px 20px}.quote-strip .arabic{font-size:2rem}.quote-strip p:not(.arabic){font-family:'Cormorant Garamond',serif;font-size:1.45rem}.quote-strip span{font-size:.67rem;letter-spacing:.14em;color:var(--gold)}.events{background:#fffdf8}.event-panel{max-width:800px;margin:45px auto;display:grid;grid-template-columns:200px 1fr;text-align:left;border:1px solid #dfd3bf}.event-date{background:var(--green);color:white;display:flex;align-items:center;justify-content:center;flex-direction:column;padding:25px}.event-date span{font-size:.85rem;letter-spacing:.25em}.event-date strong{font-family:'Cormorant Garamond',serif;font-size:6rem;line-height:1.1}.event-info{padding:43px}.event-info p{color:#6a766e;font-size:.9rem}.dot{color:var(--gold);padding:0 8px}.text-link{font-size:.85rem;color:var(--green);font-weight:700}.note{color:#8b948d;font-size:.75rem}.location{background:#f1f3ec}.venue-text{margin-bottom:25px}.map-frame{border:8px solid white;box-shadow:0 12px 35px #122d2515;max-width:900px;margin:25px auto 35px;height:365px}.map-frame iframe{width:100%;height:100%;border:0}.rsvp{background:#fbf8f1}.rsvp-card{background:white;padding:40px;max-width:620px;margin:0 auto;text-align:left;border:1px solid #e0d9ca;box-shadow:0 13px 35px #173b3310}.rsvp-card label,.login-card label{font-size:.78rem;font-weight:700;display:block;margin:18px 0 9px}.rsvp-card label>span,.login-card label>span{color:#b98172}input:not([type=radio]):not([type=checkbox]),select{width:100%;padding:15px;border:1px solid #deded5;background:#fdfdf9;font:inherit;color:var(--ink);border-radius:0;outline-offset:2px}input:focus,select:focus{outline:2px solid #b69b70}.choices{display:grid;grid-template-columns:1fr 1fr;gap:12px}.choices label{margin:0;cursor:pointer}.choices input{position:absolute;opacity:0}.choices span{display:block;border:1px solid #deded5;padding:18px 10px;text-align:center;font-size:.8rem;color:var(--green)}.choices input:checked+span{background:#e9f0e9;border-color:var(--green)}.choices input:focus-visible+span{outline:2px solid var(--gold)}.consent{display:flex!important;gap:10px;align-items:flex-start;line-height:1.7;font-weight:400!important}.consent input{margin-top:5px}.consent span{color:var(--ink)!important}.muted{color:#879087!important}.submit{width:100%;margin-top:14px}.form-message{font-size:.85rem;line-height:1.6;margin:15px 0 0}.form-message.error{color:#a03d38}.form-message.success{color:#27754c}footer{padding:55px 20px 35px;background:var(--green2);text-align:center;color:#d6e1d6}footer .footer-mark,.footer-mark{font-size:2.5rem;font-family:'Cormorant Garamond',serif;color:var(--gold)}footer p{font-family:'Cormorant Garamond',serif;font-size:1.3rem}footer a{color:#dce4d9;display:block;margin:20px auto;font-size:.8rem}footer small{color:#91aaa0;font-size:.68rem}.hidden{display:none!important}.admin-screen{min-height:100vh;background:#f6f8f4}.admin-header{height:76px;padding:0 5%;display:flex;align-items:center;justify-content:space-between;background:white;border-bottom:1px solid #e2e9e2}.admin-header a{color:var(--green);font-size:.85rem;text-decoration:none}.admin-header strong{font-family:'Cormorant Garamond',serif;font-size:1.6rem}.admin-header strong span{font:400 .8rem 'DM Sans',sans-serif;color:#909c91}.login-shell{min-height:calc(100vh - 76px);display:grid;place-items:center;padding:30px}.login-card{background:white;border:1px solid #e1e5df;padding:45px;width:min(100%,430px);box-shadow:0 15px 40px #162f2412}.login-card h2{font-size:2.7rem;margin:12px 0}.login-card p{font-size:.87rem;color:#68776b}.demo-link{margin-top:24px;width:100%;background:transparent;border:0;text-decoration:underline;color:var(--green);cursor:pointer;font-size:.82rem}.dashboard-shell{max-width:1200px;padding:55px 20px;margin:auto}.dashboard-title{display:flex;align-items:center;justify-content:space-between;gap:15px}.dashboard-title h2{font-size:3rem;margin:10px 0}.dashboard-title p{color:#758278}.btn-outline{background:white;color:var(--green);border:1px solid #c6d5c9;padding:13px 17px;cursor:pointer}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:17px;margin:32px 0}.stat-grid article{background:white;padding:28px;border:1px solid #e1e5df}.stat-grid span{display:block;color:#74837a;font-size:.8rem}.stat-grid strong{font-family:'Cormorant Garamond',serif;font-size:3.1rem}.table-bar{display:flex;gap:14px;margin:24px 0}.table-bar input{flex:1}.table-bar select{width:200px}.table-wrap{overflow-x:auto;background:white;border:1px solid #e1e5df}table{border-collapse:collapse;width:100%;min-width:700px}th,td{text-align:left;border-bottom:1px solid #e9eee7;padding:18px 20px;font-size:.84rem}th{background:#edf2ec;font-size:.74rem;letter-spacing:.05em;color:#51685a}.tag{display:inline-block;border-radius:25px;padding:6px 10px;background:#e7f2e5;color:#286e41;font-size:.73rem}.tag.no{background:#f9eae5;color:#9c5446}@media(max-width:700px){.nav{height:68px}nav{gap:12px}nav a:not(.nav-rsvp){display:none}.hero{min-height:720px}.hero h1{font-size:clamp(4.1rem,16vw,6.4rem)}.hero-date{font-size:.61rem;line-height:2}.hero:before,.hero:after{font-size:220px}.section{padding:75px 18px}.family-grid{grid-template-columns:1fr;gap:12px;margin-top:35px}.family-heart{line-height:1}.event-panel{grid-template-columns:1fr}.event-date{padding:16px;flex-direction:row;gap:12px}.event-date strong{font-size:3rem}.event-info{padding:27px}.rsvp-card{padding:24px}.choices{grid-template-columns:1fr}.stat-grid{grid-template-columns:repeat(2,1fr)}.table-bar,.dashboard-title{flex-wrap:wrap}.table-bar input,.table-bar select{width:100%;flex:auto}.map-frame{height:300px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important}}
.demo-banner{background:#e7d2a4;color:#264139;text-align:center;padding:10px 18px;font-size:.72rem;font-weight:700;letter-spacing:.07em}.botanical{position:absolute;pointer-events:none;color:#e6cca0;opacity:.27;font-size:clamp(4rem,10vw,9rem);line-height:1.2;top:11%;font-family:serif}.botanical-left{left:max(0px,calc(50% - 580px));transform:rotate(-20deg)}.botanical-right{right:max(0px,calc(50% - 580px));transform:rotate(20deg)}.reveal-scene{position:relative;max-width:610px;margin:0 auto;min-height:169px;transition:min-height 1s}.open-prompt{color:#e6d4aa;font-size:.73rem;letter-spacing:.08em}.envelope{width:190px;height:113px;perspective:550px;box-shadow:0 14px 45px #0003}.envelope.open{transform:translateY(45px) scale(1.12);opacity:0;transition:transform 1.35s,opacity 1.1s .5s}.envelope.open .envelope-letter{transform:translateY(-110px)}.envelope.open .envelope-flap{transform:rotateX(177deg)}.reveal-scene.revealed{min-height:380px}.reveal-scene.revealed .envelope,.reveal-scene.revealed .open-prompt{display:none}.invitation-reveal{position:absolute;inset:0;background:#faf5e7;color:var(--green);border:1px solid #b5955b;outline:5px solid #faf5e7;box-shadow:0 20px 50px #0003;padding:25px 22px;opacity:0;transform:translateY(20px) scale(.94);pointer-events:none;transition:opacity 1s,transform 1s}.invitation-reveal:before{content:'';position:absolute;inset:10px;border:1px solid #dcc79e;pointer-events:none}.reveal-scene.revealed .invitation-reveal{opacity:1;transform:translateY(0) scale(1);pointer-events:auto}.invitation-reveal h2{font-size:clamp(2.6rem,5vw,4rem);margin:14px auto}.invitation-reveal p{font:1.3rem 'Cormorant Garamond',serif;margin:9px 0}.invitation-reveal strong{display:block;font-size:.7rem;letter-spacing:.1em;margin:15px auto}.invitation-reveal .btn{position:relative;padding:12px 18px}.reveal-leaves{color:var(--gold);font-size:2rem}.hero-inner{width:100%}.preview-note{border:1px dashed #ceb88d;color:#775f37;background:#fbefd7;padding:13px 18px;font-size:.8rem;line-height:1.6}.hp-wrap{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}.rsvp-card{position:relative}@media(max-width:700px){.botanical{font-size:4rem;opacity:.16}.reveal-scene.revealed{min-height:395px}.invitation-reveal{padding:25px 15px}.invitation-reveal h2{font-size:2.8rem}}@media(prefers-reduced-motion:reduce){.invitation-reveal,.envelope,.reveal-scene{transition:none!important}}