:root{--choc:#4b3b31;--deep:#2f2722;--stone:#d7cbbb;--sand:#eee8df;--cream:#faf7f2;--white:#fff;--green:#66715c;--line:rgba(75,59,49,.18);--serif:'Cormorant Garamond',serif;--sans:'Inter',sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:var(--sans);color:var(--deep);background:var(--cream);line-height:1.65}.grain{position:fixed;inset:0;pointer-events:none;opacity:.04;z-index:20;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.55'/%3E%3C/svg%3E")}.shell{width:min(1120px,calc(100% - 36px));margin:auto}.narrow{max-width:760px}.centered{text-align:center}.hero{min-height:100svh;position:relative;color:white;background:linear-gradient(rgba(47,39,34,.18),rgba(47,39,34,.55)),radial-gradient(circle at 25% 35%,#8d9278 0,#59604f 28%,#38382f 70%);display:flex;align-items:center;overflow:hidden}.hero:before{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 0 55%,rgba(255,255,255,.08) 55% 56%,transparent 56%)}.hero-overlay{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(0,0,0,.18),transparent 25%,transparent 70%,rgba(0,0,0,.25))}.nav{position:absolute;top:0;left:50%;transform:translateX(-50%);height:86px;display:flex;align-items:center;justify-content:space-between;z-index:5;border-bottom:1px solid rgba(255,255,255,.25)}.brand{font:600 25px var(--serif);color:white;text-decoration:none;letter-spacing:.12em}.brand span,h1 span,footer h2 span{font-style:italic;font-weight:400}.nav-links{display:flex;gap:28px;align-items:center}.nav a{color:white;text-decoration:none;font-size:.9rem}.pill{border:1px solid rgba(255,255,255,.7);border-radius:999px;padding:9px 17px}.nav-toggle{display:none;background:none;border:0;color:white;font-size:24px}.hero-content{position:relative;z-index:2;text-align:center;padding:130px 0 70px}.eyebrow{text-transform:uppercase;letter-spacing:.25em;font-size:.72rem;font-weight:600;margin-bottom:15px}.eyebrow.dark{color:var(--green)}h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:1.05;margin:0 0 18px}h1{font-size:clamp(4rem,9vw,8.6rem);letter-spacing:-.04em}h2{font-size:clamp(2.5rem,5vw,4.8rem)}h3{font-size:1.8rem}.hero-date{letter-spacing:.12em;text-transform:uppercase;font-size:.78rem}.countdown{display:flex;justify-content:center;gap:clamp(18px,5vw,60px);margin:42px 0}.countdown div{display:grid}.countdown strong{font:500 clamp(1.7rem,4vw,3rem) var(--serif)}.countdown span{text-transform:uppercase;letter-spacing:.18em;font-size:.62rem}.scroll-cue{color:white;text-decoration:none;font-size:.8rem;opacity:.8}.section{padding:110px 0}.welcome{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}.photo-card,.venue-image{min-height:560px;border-radius:220px 220px 18px 18px;background:linear-gradient(145deg,#c8b8a4,#8a7867);display:grid;place-items:center;color:white;text-transform:uppercase;letter-spacing:.16em;font-size:.72rem;box-shadow:0 24px 60px rgba(47,39,34,.18)}.welcome-copy p{font-size:1.08rem}.signoff{margin-top:35px}.stone-section{background:var(--sand)}.timeline{display:grid;grid-template-columns:repeat(4,1fr);margin-top:60px;border-top:1px solid var(--line)}.timeline article{padding:40px 26px;border-right:1px solid var(--line)}.timeline article:last-child{border-right:0}.timeline span{display:block;color:var(--green);font-weight:600;letter-spacing:.12em;font-size:.76rem;margin-bottom:14px}.venue{display:grid;grid-template-columns:1.15fr .85fr;gap:75px;align-items:center}.venue-image{border-radius:18px;min-height:620px;background:linear-gradient(140deg,#768064,#4c5346)}.clean-list{list-style:none;padding:0;margin:28px 0}.clean-list li{padding:10px 0;border-bottom:1px solid var(--line)}.button-row{display:flex;gap:12px;flex-wrap:wrap}.btn{display:inline-flex;justify-content:center;align-items:center;border:1px solid var(--choc);background:var(--choc);color:white;text-decoration:none;padding:14px 22px;border-radius:999px;font-weight:600;font-size:.88rem;cursor:pointer}.btn-ghost{background:transparent;color:var(--choc)}.lead{font:400 1.5rem/1.5 var(--serif)}.swatches{display:flex;justify-content:center;gap:12px;margin-top:34px}.swatches span{width:54px;height:54px;border-radius:50%;border:5px solid rgba(255,255,255,.65);box-shadow:0 5px 18px rgba(0,0,0,.08)}.swatches span:nth-child(1){background:#4b3429}.swatches span:nth-child(2){background:#b9aa98}.swatches span:nth-child(3){background:#d9c8ae}.swatches span:nth-child(4){background:#f4f0e9}.swatches span:nth-child(5){background:#68705c}.intro{max-width:680px;margin:0 auto 45px}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.stay-card{background:white;border-radius:16px;overflow:hidden;box-shadow:0 16px 42px rgba(47,39,34,.08)}.hotel-img{height:190px;display:grid;place-items:center;background:linear-gradient(140deg,#a89a88,#736657);color:white;text-transform:uppercase;letter-spacing:.12em;font-size:.7rem}.stay-card div:last-child{padding:26px}.stay-card a{color:var(--green);font-weight:600;text-decoration:none}.transport{display:grid;grid-template-columns:1fr 280px;gap:80px;align-items:center}.transport-badge{width:260px;height:260px;border-radius:50%;background:var(--choc);color:white;display:flex;flex-direction:column;justify-content:center;align-items:center;box-shadow:0 22px 48px rgba(47,39,34,.2)}.transport-badge span,.transport-badge small{text-transform:uppercase;letter-spacing:.18em;font-size:.68rem}.transport-badge strong{font:500 4rem var(--serif);line-height:1}.gifts{background:var(--stone)}.accordion details{border-bottom:1px solid var(--line);padding:20px 0}.accordion summary{cursor:pointer;font:500 1.35rem var(--serif);list-style:none}.accordion summary::-webkit-details-marker{display:none}.accordion summary:after{content:"+";float:right}.accordion details[open] summary:after{content:"–"}.rsvp-section{background:var(--deep);color:white}.rsvp-card{margin-top:40px;background:var(--cream);color:var(--deep);border-radius:20px;padding:32px;box-shadow:0 30px 70px rgba(0,0,0,.25)}.invite-greeting{opacity:.8}.invitee-panel{background:var(--sand);padding:22px;border-radius:14px;margin-bottom:28px}.invitee-panel span,.invitee-panel small{display:block}.invitee-panel strong{display:block;font:600 2rem var(--serif)}fieldset{border:0;padding:0;margin:0 0 24px}legend,label{font-weight:600;font-size:.92rem}.choice{display:flex;align-items:center;gap:12px;background:white;border:1px solid var(--line);border-radius:12px;padding:15px;margin-top:10px}textarea,select{width:100%;margin:9px 0 20px;padding:14px;border:1px solid var(--line);border-radius:10px;background:white;font:inherit}.full{width:100%;border-radius:10px}.deadline{text-align:center;font-size:.78rem;margin-bottom:0}.confirmation{text-align:center;background:white;color:var(--deep);border-radius:20px;padding:45px;margin-top:40px}.ring{font-size:2.4rem}.hidden{display:none}footer{background:#1f1b18;color:#ddd;text-align:center;padding:70px 0}footer h2{color:white;font-size:2.8rem}.small{font-size:.8rem;opacity:.75}footer a{color:#d7cbbb;font-size:.78rem}.reveal{opacity:0;transform:translateY(26px);transition:.8s ease}.reveal.visible{opacity:1;transform:none}@media(max-width:850px){.nav-links{display:none;position:absolute;top:72px;right:0;flex-direction:column;background:rgba(47,39,34,.96);padding:22px;border-radius:12px}.nav-links.open{display:flex}.nav-toggle{display:block}.welcome,.venue,.transport{grid-template-columns:1fr;gap:45px}.timeline,.cards{grid-template-columns:1fr 1fr}.transport-badge{margin:auto}.section{padding:80px 0}.photo-card,.venue-image{min-height:440px}}@media(max-width:560px){.timeline,.cards{grid-template-columns:1fr}.timeline article{border-right:0;border-bottom:1px solid var(--line)}.hero-date{font-size:.68rem}.countdown{gap:15px}.countdown strong{font-size:1.8rem}.rsvp-card{padding:22px}.section{padding:68px 0}.welcome{gap:38px}.photo-card{min-height:390px}.venue-image{min-height:420px}.transport-badge{width:220px;height:220px}}
