:root{--bg:#f8f5f1;--ink:#66524f;--rose:#a88b86;--light:#e5d9d2;--white:#fffdfa}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:Manrope,Arial,sans-serif}main{max-width:850px;margin:auto;overflow:hidden;background:var(--white);box-shadow:0 0 80px #6a554011}.hero{min-height:100svh;position:relative;background:linear-gradient(125deg,#f0eae6,#fffdfb 55%,#eee7e2);overflow:hidden;display:flex;justify-content:flex-start;align-items:flex-start;padding:clamp(90px,15vh,155px) 9% 60px}.hero:before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 70% 62%,#fff 0%,transparent 54%);opacity:.8}.ornament{position:absolute;z-index:4;top:0;bottom:0;width:24px;opacity:.55;background:repeating-linear-gradient(180deg,transparent 0 5px,#9f8985 5px 8px,transparent 8px 18px);mask-image:linear-gradient(#000,#000);border-inline:2px solid #b7a5a1}.ornament:after{content:'◇\A ❧\A ◇\A ❧\A ◇\A ❧\A ◇\A ❧\A ◇\A ❧\A ◇';white-space:pre;position:absolute;inset:0;line-height:75px;font-size:20px;text-align:center;background:var(--bg)}.ornament-left{left:10px}.ornament-right{right:10px;transform:scaleX(-1)}.hero-copy{position:relative;z-index:5;text-align:center;width:62%;animation:rise 1.1s ease both}.eyebrow{font-size:clamp(13px,2vw,17px);font-weight:600;letter-spacing:.25em;color:#9d827f}.hero h1{font-family:'Cormorant Garamond',Georgia,serif;font-size:clamp(82px,15vw,145px);font-style:italic;font-weight:400;line-height:.9;margin:22px 0 4px;letter-spacing:-.07em;color:#896f6b}.flourish{font-size:32px;color:#b9a29b}.hero-date{font-family:'Cormorant Garamond',serif;font-size:clamp(28px,4vw,42px);letter-spacing:.12em;margin:16px 0}.hero-sub{font-size:14px;letter-spacing:.4em}.scroll-note{position:absolute;bottom:24px;left:50%;transform:translateX(-50%);font-size:10px;letter-spacing:.2em;z-index:7;white-space:nowrap}.bride{position:absolute;right:-12%;bottom:-8%;width:78%;height:88%;pointer-events:none;filter:drop-shadow(-18px 0 40px #a68e821f);animation:bride-in 1.8s ease both}.bride-head{position:absolute;z-index:4;top:5%;left:47%;width:15%;height:16%;border-radius:45% 45% 49% 49%;background:linear-gradient(100deg,#c7a49a,#efd5c6 62%,#d9b3a7);transform:rotate(-6deg)}.bride-hair{position:absolute;z-index:3;top:2%;left:44%;width:19%;height:26%;border-radius:48% 48% 40% 40%;background:linear-gradient(90deg,#54413d,#8d7068)}.bride-veil{position:absolute;z-index:2;top:0;left:25%;width:66%;height:86%;border-radius:50% 50% 35% 40%;background:linear-gradient(90deg,#ffffff35,#ffffffbd 60%,#f3eee9a8);transform:rotate(-9deg);box-shadow:inset 20px 0 45px #d4c9c24d}.bride-body{position:absolute;z-index:5;top:18%;left:37%;width:35%;height:37%;background:linear-gradient(90deg,#e7ded5,#fff 42%,#eae3dd);clip-path:polygon(32% 0,70% 0,100% 100%,0 100%);border-radius:30% 30% 5% 5%}.bride-arm{position:absolute;z-index:6;top:28%;left:23%;width:16%;height:35%;border-radius:50%;background:linear-gradient(90deg,#e7ddd6,#fff);transform:rotate(17deg)}.bride-dress{position:absolute;z-index:6;bottom:-10%;left:-5%;width:110%;height:65%;border-radius:52% 46% 0 0;background:repeating-linear-gradient(105deg,#fdfcfb 0 25px,#eee9e4 30px,#fff 55px);box-shadow:inset -30px 0 90px #d9cec64d}.section{position:relative;padding:110px clamp(30px,8vw,95px);text-align:center}.section h2{font-family:'Cormorant Garamond',Georgia,serif;font-size:clamp(49px,8vw,79px);font-weight:500;line-height:1.06;margin:20px 0 28px}.section h2 em{font-weight:400;color:#a58782}.section p{font-size:clamp(17px,2.5vw,20px);line-height:1.95;max-width:590px;margin:16px auto}.intro{background:#fffdfb}.section-symbol,.divider{font-family:Georgia,serif;font-size:34px;color:#c3aca5;margin:0 auto 28px}.divider{margin-top:36px}.details{background:#f3eeea}.time{font-size:26px!important}.calendar{display:grid;grid-template-columns:repeat(7,1fr);max-width:480px;margin:38px auto 45px;gap:9px}.calendar>div{font-size:11px;color:#a78f89}.calendar span{font-family:'Cormorant Garamond',serif;font-size:29px;padding:6px}.calendar .marked{border:1px solid #b8948e;border-radius:50%;color:#9c756f}.details h3{font-size:17px;font-weight:500;letter-spacing:.08em;margin-top:30px}.countdown{display:flex;justify-content:center;gap:clamp(14px,4vw,35px);margin-top:28px}.countdown>div{min-width:55px}.countdown b{display:block;font-family:'Cormorant Garamond',serif;font-size:clamp(44px,8vw,70px);font-weight:500;line-height:1}.countdown span{display:block;font-size:13px;margin-top:10px}.location{background:#fffdfb}.location-hall{font-family:'Cormorant Garamond',serif;font-size:32px!important}.button{display:inline-block;border:1px solid #a88b86;background:#9d807b;color:white;text-decoration:none;letter-spacing:.13em;font:600 13px Manrope,sans-serif;padding:20px 28px;margin-top:28px;cursor:pointer;transition:.2s}.button:hover{background:#846863;transform:translateY(-2px)}.fineprint{font-size:12px!important;color:#9d8982;line-height:1.7!important;margin-top:20px!important}.rsvp{background:#f5f0ed}.rsvp form{max-width:470px;margin:35px auto 0;text-align:left}.rsvp form>label,.rsvp legend{display:block;font-size:14px;font-weight:600;margin:22px 0 9px}.rsvp input:not([type=radio]),.rsvp select,.rsvp textarea{display:block;width:100%;padding:16px;background:#fffdfa;border:1px solid #ddcdc6;border-radius:0;color:#5b4845;font:16px Manrope,sans-serif}.rsvp fieldset{border:0;padding:0;margin:22px 0}.rsvp legend{margin-bottom:13px}.choice{display:inline-flex;align-items:center;margin:0 9px 9px 0;cursor:pointer}.choice input{accent-color:#a88b86}.choice span{padding:10px;font-size:15px}.rsvp form .button{width:100%}.form-error{color:#a23333;font-size:14px!important}.success{border:1px solid #ddcdc6;padding:30px;margin-top:32px}.success h3{font-family:'Cormorant Garamond',serif;font-size:44px;margin:0}.footer{background:#ece3de;padding-bottom:75px}.footer>span{display:block;margin-top:35px;font-size:16px}.footer h2{font-size:clamp(39px,6vw,64px)}.footer-mark{font-size:12px;letter-spacing:.2em;margin-top:60px}.reveal{opacity:0;transform:translateY(25px);transition:opacity .85s ease,transform .85s ease}.reveal.visible{opacity:1;transform:none}@keyframes rise{from{opacity:0;transform:translateY(25px)}to{opacity:1;transform:none}}@keyframes bride-in{from{opacity:0;transform:translateX(30px)}to{opacity:1;transform:none}}@media(max-width:600px){.hero{padding:110px 32px 70px}.hero-copy{width:100%}.hero h1{font-size:clamp(76px,20vw,115px)}.bride{width:105%;height:65%;right:-33%;bottom:-9%;opacity:.9}.hero-copy{margin-top:3vh}.hero-date{margin-top:10px}.ornament{width:16px}.ornament-left{left:3px}.ornament-right{right:3px}.ornament:after{font-size:14px}.section{padding:82px 27px}.section p{line-height:1.8}.calendar{gap:2px}.calendar span{font-size:25px}.countdown{gap:11px}.countdown>div{min-width:50px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.reveal{opacity:1;transform:none}}
