@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@300;400;500;600&family=DM+Sans:wght@300;400;500&family=Italiana&display=swap');

:root{--ivory:#f8f5ef;--paper:#eee7dc;--champagne:#c7ac91;--taupe:#927b68;--brown:#57483c;--deep:#312923;--line:rgba(87,72,60,.18);--white:#fff;--danger:#8f4f48}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--deep);background:var(--ivory);font-family:"DM Sans",sans-serif;font-weight:300}a{color:inherit}button,input,textarea{font:inherit}.topbar{position:fixed;z-index:50;top:0;left:0;width:100%;height:82px;padding:0 clamp(24px,5vw,72px);display:flex;align-items:center;justify-content:space-between;background:rgba(248,245,239,.86);backdrop-filter:blur(18px);border-bottom:1px solid rgba(87,72,60,.06)}.brand{text-decoration:none;font-family:"Cormorant Garamond",serif;font-size:28px;letter-spacing:.08em}.brand span{color:var(--champagne);font-style:italic}nav{display:flex;gap:34px}nav a{text-decoration:none;text-transform:uppercase;letter-spacing:.17em;font-size:10px;font-weight:500}.menu-button{display:none}.hero{min-height:100svh;padding:120px 24px 60px;display:grid;place-items:center;position:relative;overflow:hidden;text-align:center;background:radial-gradient(circle at 15% 20%,rgba(199,172,145,.15),transparent 26%),radial-gradient(circle at 85% 80%,rgba(199,172,145,.14),transparent 28%),var(--ivory)}.hero:before{content:"";position:absolute;width:min(76vw,850px);aspect-ratio:1;border:1px solid rgba(146,123,104,.13);border-radius:50%}.hero-content{position:relative;z-index:2}.eyebrow{margin:0 0 18px;text-transform:uppercase;letter-spacing:.33em;font-size:10px;font-weight:500;color:var(--taupe)}h1,h2,h3,p{margin-top:0}.hero h1{margin:0;font-family:"Cormorant Garamond",serif;font-weight:300;font-size:clamp(64px,11vw,145px);line-height:.76;letter-spacing:-.045em}.hero h1 .ampersand{display:block;margin:7px 0;font-size:.5em;font-style:italic;color:var(--champagne)}.ornament{width:min(320px,70vw);margin:38px auto 27px;display:flex;align-items:center;gap:15px;color:var(--champagne)}.ornament span{height:1px;background:var(--line);flex:1}.renew{margin-bottom:9px;font-family:"Cormorant Garamond",serif;font-size:clamp(24px,3vw,34px);font-style:italic}.date{margin-bottom:32px;font-size:12px;text-transform:uppercase;letter-spacing:.24em;font-weight:500}.countdown{display:grid;grid-template-columns:repeat(4,1fr);width:min(520px,90vw);margin:0 auto 38px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.countdown div{padding:18px 7px;position:relative}.countdown div:not(:last-child):after{content:"";position:absolute;right:0;top:30%;height:40%;width:1px;background:var(--line)}.countdown strong{display:block;font-family:"Cormorant Garamond",serif;font-size:28px;font-weight:400}.countdown span{display:block;margin-top:2px;font-size:8px;text-transform:uppercase;letter-spacing:.18em;color:var(--taupe)}.primary-button,.secondary-button{border:0;display:inline-block;padding:17px 28px;text-decoration:none;text-transform:uppercase;letter-spacing:.19em;font-size:9px;font-weight:500;cursor:pointer}.primary-button{color:#fff;background:var(--deep)}.secondary-button{color:var(--deep);background:transparent;border:1px solid rgba(49,41,35,.35)}.section{padding:clamp(100px,14vw,180px) clamp(25px,8vw,130px)}.intro{text-align:center;max-width:1100px;margin:auto}.intro h2,.section-heading h2{font-family:"Cormorant Garamond",serif;font-weight:300;font-size:clamp(48px,7vw,90px);line-height:.93;letter-spacing:-.035em}.intro-copy{max-width:620px;margin:40px auto 65px;line-height:1.9;color:var(--taupe);font-size:14px}.big-number{display:inline-flex;align-items:center;gap:25px;text-align:left}.big-number span{font-family:"Italiana",serif;font-size:clamp(100px,15vw,190px);line-height:1;color:var(--champagne)}.big-number p{margin:0;text-transform:uppercase;letter-spacing:.18em;font-size:9px;line-height:1.8}.program{background:var(--paper)}.section-heading{margin-bottom:80px}.timeline{max-width:880px;margin:auto}.timeline-item{display:grid;grid-template-columns:110px 50px 1fr;min-height:240px}.time{padding-top:5px;font-family:"Cormorant Garamond",serif;font-size:23px}.timeline-line{position:relative;display:flex;justify-content:center}.timeline-line:before{content:"";height:100%;width:1px;background:rgba(87,72,60,.22)}.timeline-line i{position:absolute;top:6px;width:9px;height:9px;background:var(--champagne);border-radius:50%;box-shadow:0 0 0 8px var(--paper),0 0 0 9px rgba(87,72,60,.18)}.event{padding:0 0 65px 35px}.event-number{color:var(--champagne);font-size:9px;letter-spacing:.2em}.event h3{margin-bottom:17px;font-family:"Cormorant Garamond",serif;font-size:clamp(31px,4vw,43px);font-weight:400}.event>p:not(.event-number){line-height:1.8;color:var(--taupe);font-size:13px}.event a{display:inline-block;margin-top:8px;font-size:10px;text-transform:uppercase;letter-spacing:.15em;text-decoration:none;border-bottom:1px solid var(--taupe);padding-bottom:4px}.dresscode{max-width:650px;margin:45px auto 0;text-align:center;padding:45px 30px;border:1px solid rgba(87,72,60,.18)}.dresscode small{display:block;text-transform:uppercase;font-size:9px;letter-spacing:.2em;color:var(--taupe)}.dresscode strong{display:block;margin:13px 0 8px;font-family:"Cormorant Garamond",serif;font-size:39px;font-weight:400}.dresscode p{margin:0;font-size:12px;color:var(--taupe)}.photo-section{background:var(--deep);color:var(--ivory)}.photo-card{max-width:920px;margin:auto;text-align:center}.photo-section .eyebrow{color:var(--champagne)}.photo-card h2{font-family:"Cormorant Garamond",serif;font-weight:300;font-size:clamp(50px,8vw,92px);line-height:.9}.photo-card>p:not(.eyebrow):not(.status){max-width:600px;margin:30px auto 55px;line-height:1.8;font-size:13px;color:rgba(248,245,239,.65)}.camera-preview{width:min(420px,100%);margin:auto;padding:14px;border:1px solid rgba(255,255,255,.18);border-radius:34px;background:#171310;box-shadow:0 40px 90px rgba(0,0,0,.28)}.camera-top{padding:7px 5px 17px;display:flex;justify-content:space-between;color:rgba(255,255,255,.55);font-size:9px;text-transform:uppercase;letter-spacing:.12em}.camera-screen{aspect-ratio:.85;border-radius:24px;overflow:hidden;display:grid;place-content:center;position:relative;background:radial-gradient(circle at 30% 30%,rgba(255,255,255,.12),transparent 18%),linear-gradient(145deg,#8b7762,#3b3027)}.camera-screen:after{content:"";position:absolute;inset:0;background:linear-gradient(transparent,rgba(0,0,0,.38));pointer-events:none}.camera-screen p{position:relative;z-index:2;margin:0;font-family:"Cormorant Garamond",serif;font-size:34px;line-height:1}.camera-screen small{position:relative;z-index:2;display:block;margin:14px 35px 0;color:rgba(255,255,255,.65);font-size:10px;line-height:1.5}.camera-flower{position:absolute;z-index:1;inset:0;display:grid;place-content:center;font-size:170px;color:rgba(255,255,255,.06)}#lastPreview{display:none;position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:2}.camera-bottom{padding:17px 7px 3px;display:flex;align-items:center;justify-content:space-between;text-align:left}.camera-bottom strong{display:block;font-family:"Cormorant Garamond",serif;font-size:37px}.camera-bottom span{display:block;margin-top:-3px;font-size:8px;text-transform:uppercase;letter-spacing:.12em;color:rgba(255,255,255,.48)}.shutter{width:61px;height:61px;padding:0;border:5px solid #fff;border-radius:50%;background:rgba(255,255,255,.12);display:grid;place-content:center;cursor:pointer}.shutter span{width:35px;height:35px;border-radius:50%;background:#fff}.shutter input{display:none}.camera-login{display:flex;gap:10px;justify-content:center;max-width:520px;margin:36px auto 0}.camera-login input{min-width:0;flex:1;padding:16px;border:1px solid rgba(255,255,255,.25);background:transparent;color:#fff;outline:none}.camera-login input::placeholder{color:rgba(255,255,255,.45)}.photo-section .secondary-button{color:var(--ivory);border-color:rgba(255,255,255,.3)}.status{min-height:18px;margin:18px 0 0;font-size:11px;color:var(--taupe)}.photo-section .status{color:var(--champagne)}.album-section{background:#f3eee6}.album-lock{max-width:650px;margin:auto;text-align:center;padding:70px 30px;border:1px solid var(--line)}.lock-icon{font-size:34px;color:var(--champagne);margin-bottom:22px}.album-lock h3{font-family:"Cormorant Garamond",serif;font-size:38px;font-weight:400;margin-bottom:14px}.album-lock p{color:var(--taupe);line-height:1.8;font-size:13px}.album-lock strong{display:block;margin-top:30px;font-size:10px;text-transform:uppercase;letter-spacing:.15em}.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;max-width:1100px;margin:auto}.gallery figure{margin:0;position:relative;overflow:hidden;background:#ddd;aspect-ratio:1}.gallery img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease}.gallery figure:hover img{transform:scale(1.03)}.gallery figcaption{position:absolute;left:0;right:0;bottom:0;padding:30px 12px 12px;background:linear-gradient(transparent,rgba(0,0,0,.6));color:#fff;font-size:10px}.guestbook{max-width:1000px;margin:auto}.guestbook-intro{max-width:540px;margin-bottom:55px;color:var(--taupe);line-height:1.8;font-size:13px}.guestbook-form{display:grid;max-width:700px;gap:28px}.guestbook-form label{font-size:9px;text-transform:uppercase;letter-spacing:.18em}.guestbook-form input,.guestbook-form textarea{width:100%;display:block;margin-top:10px;padding:18px 0;border:0;border-bottom:1px solid var(--line);outline:none;color:var(--deep);background:transparent;text-transform:none;letter-spacing:normal;font-size:14px}.guestbook-form textarea{min-height:130px;resize:vertical}.guestbook-form .primary-button{justify-self:start}.guest-messages{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;margin-top:80px}.guest-message{padding:28px;border:1px solid var(--line);background:rgba(255,255,255,.35)}.guest-message p{white-space:pre-wrap;line-height:1.7;font-family:"Cormorant Garamond",serif;font-size:23px}.guest-message footer{padding:0;border:0;display:block;text-align:left;color:var(--taupe);font-size:9px;letter-spacing:.12em}.final-section{min-height:70svh;padding:100px 30px;display:grid;place-content:center;text-align:center;background:var(--paper)}.final-section h2{margin-bottom:22px;font-family:"Italiana",serif;font-size:clamp(48px,8vw,90px);font-weight:400}.final-section p:not(.eyebrow){line-height:1.8;color:var(--taupe)}.signature{margin-top:45px;font-family:"Cormorant Garamond",serif;font-size:clamp(35px,5vw,60px);font-style:italic}.signature span{color:var(--champagne)}body>footer{padding:30px;display:flex;justify-content:space-between;gap:15px;border-top:1px solid var(--line);text-transform:uppercase;letter-spacing:.15em;font-size:8px}body>footer p{margin:0}body>footer a{text-decoration:none;color:var(--taupe)}.reveal{opacity:0;transform:translateY(24px);transition:opacity .9s ease,transform .9s cubic-bezier(.2,.7,.2,1)}.reveal.visible{opacity:1;transform:translateY(0)}
@media(max-width:700px){.topbar{height:68px}nav{position:fixed;inset:68px 0 auto;padding:30px;display:none;flex-direction:column;gap:25px;background:var(--ivory);border-bottom:1px solid var(--line)}nav.open{display:flex}.menu-button{display:block;border:0;padding:8px;background:transparent}.menu-button span{width:24px;height:1px;display:block;margin:6px 0;background:var(--deep)}.hero{padding-top:100px}.timeline-item{grid-template-columns:70px 30px 1fr}.event{padding-left:20px}.time{font-size:19px}.section-heading{margin-bottom:55px}.camera-login{flex-direction:column}.gallery{grid-template-columns:repeat(2,1fr)}.guest-messages{grid-template-columns:1fr}body>footer{flex-direction:column;text-align:center}}
