@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Great+Vibes&family=Playfair+Display:wght@400;500;600;700&display=swap');
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:'DM Sans',sans-serif;background:var(--bg);color:var(--ink);min-height:100vh}a{color:inherit}button,input,select,textarea{font:inherit}button{cursor:pointer}.lux-header{position:absolute;z-index:9;top:0;left:0;right:0;display:flex;justify-content:space-between;align-items:center;padding:24px clamp(20px,5vw,85px);color:var(--cream)}.lux-header a{text-decoration:none}.brand{font-family:'Playfair Display',serif;letter-spacing:.1em;font-size:1.05rem}.nav-link{border:1px solid currentColor;border-radius:99px;padding:11px 18px;font-size:.75rem;letter-spacing:.08em;text-transform:uppercase}.hero{position:relative;min-height:100svh;display:grid;place-items:center;isolation:isolate;overflow:hidden;text-align:center;background:#111}.hero:before{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.55),rgba(0,0,0,.24) 40%,rgba(0,0,0,.7)),var(--photo) center/cover;z-index:-2;animation:zoom 22s ease-in-out infinite alternate}.hero:after{content:'';position:absolute;inset:15px;border:1px solid rgba(255,255,255,.22);pointer-events:none;z-index:-1}.hero-content{padding:125px 24px 90px;color:var(--cream);max-width:900px;animation:rise 1.3s ease both}.eyebrow{letter-spacing:.34em;text-transform:uppercase;font-size:.7rem;font-weight:700}.ornament{font-family:'Great Vibes',cursive;font-size:3.4rem;color:var(--accent);margin:8px 0}.hero h1{font-family:'Playfair Display',serif;font-size:clamp(3.5rem,10vw,8.7rem);font-weight:400;line-height:1.05;margin:15px 0 22px;letter-spacing:-.055em}.hero .tagline{font-family:'Playfair Display',serif;font-style:italic;font-size:clamp(1.15rem,2.5vw,1.75rem);margin:0 0 35px}.date-line{letter-spacing:.2em;font-size:.9rem;text-transform:uppercase}.pill{display:inline-block;text-decoration:none;background:var(--accent);color:var(--button-ink);border:0;border-radius:99px;padding:16px 29px;font-weight:700;font-size:.85rem;margin:18px 5px;transition:transform .25s,filter .25s}.pill:hover{transform:translateY(-3px);filter:brightness(1.12)}.pill.outline{background:transparent;border:1px solid var(--accent);color:var(--accent)}.scroll-cue{position:absolute;bottom:29px;left:0;right:0;font-size:.7rem;letter-spacing:.25em;color:var(--cream);text-transform:uppercase}.section{padding:100px 22px;text-align:center}.section-inner{max-width:960px;margin:auto}.section .eyebrow{color:var(--accent)}.section h2{font:400 clamp(2.5rem,5vw,4.6rem)/1.13 'Playfair Display',serif;letter-spacing:-.035em;margin:18px 0 25px}.section p{line-height:1.9;max-width:620px;margin:16px auto;color:var(--muted)}.intro{background:var(--paper)}.large-script{font:clamp(2.6rem,6vw,5rem) 'Great Vibes',cursive;color:var(--accent)}.details{background:var(--bg)}.event-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;margin:44px auto}.event-card{border:1px solid var(--line);padding:43px 25px;background:var(--paper);box-shadow:0 16px 50px #0000000a}.event-icon{font-size:2.2rem}.event-card h3{font:400 2rem 'Playfair Display',serif}.event-card p{font-size:.95rem}.event-card a{display:inline-block;margin-top:16px;color:var(--accent);font-weight:700}.countdown{background:var(--accent);color:var(--button-ink)}.countdown .eyebrow,.countdown p{color:inherit}.timer{display:flex;justify-content:center;gap:clamp(10px,5vw,55px);margin-top:40px}.timer b{display:block;font:400 clamp(2rem,6vw,5rem) 'Playfair Display',serif}.timer span{font-size:.7rem;letter-spacing:.15em;text-transform:uppercase}.rsvp-section{background:var(--paper)}.rsvp-form{display:grid;gap:14px;max-width:520px;margin:30px auto;text-align:left}.rsvp-form label{font-size:.82rem;font-weight:700}.rsvp-form input,.rsvp-form select,.rsvp-form textarea{width:100%;margin-top:7px;padding:15px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--ink)}.rsvp-form .pill{width:100%;margin:6px 0}.footer{padding:45px 20px;text-align:center;background:var(--bg);font-size:.85rem}.footer a{font-weight:700}.particles{position:absolute;inset:0;pointer-events:none;overflow:hidden}.particles i{position:absolute;left:var(--x);top:105%;width:var(--s);height:var(--s);border-radius:50%;background:var(--accent);opacity:.5;animation:float var(--t) linear infinite;animation-delay:var(--d)}.theme-ivory .hero:before{filter:sepia(.35)}.theme-baby .hero:before,.theme-bloom .hero:before,.theme-teddy .hero:before{filter:saturate(.65)}.catalog{background:#111318;color:#f6f1e8}.catalog-header{text-align:center;padding:130px 20px 60px;background:radial-gradient(circle at top,#3a3029,#111318 70%)}.catalog-header h1{font:400 clamp(3rem,8vw,6rem) 'Playfair Display',serif;margin:20px 0}.catalog-header p{color:#c8bcb0}.catalog-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:26px;max-width:1360px;margin:0 auto;padding:30px 25px 100px}.catalog-card{display:block;position:relative;min-height:420px;overflow:hidden;border-radius:8px;text-decoration:none;background:#252020}.catalog-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .6s}.catalog-card:hover img{transform:scale(1.08)}.catalog-card:after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 30%,#000b)}.catalog-card .info{position:absolute;bottom:0;z-index:2;padding:28px;color:white}.catalog-card h2{font:400 2.15rem 'Playfair Display',serif;margin:0 0 10px}.catalog-card span{font-size:.78rem;letter-spacing:.12em;text-transform:uppercase}.catalog-switch{display:flex;justify-content:center;gap:12px;margin-top:25px}.catalog-switch a{border:1px solid #9e8e7e;border-radius:50px;padding:12px 22px;text-decoration:none}.catalog-switch a[aria-current]{background:#d6b988;color:#211b19}.toast{font-size:.85rem;min-height:25px}@keyframes zoom{from{transform:scale(1)}to{transform:scale(1.1)}}@keyframes rise{from{opacity:0;transform:translateY(25px)}to{opacity:1;transform:none}}@keyframes float{to{transform:translateY(-120vh) rotate(180deg)}}@media(max-width:680px){.lux-header{padding:22px}.event-grid{grid-template-columns:1fr}.section{padding:75px 20px}.hero h1{font-size:clamp(3.2rem,14vw,5.6rem)}.timer{gap:20px}.hero:after{inset:9px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;scroll-behavior:auto!important}}
