:root{--bg:#faf6f0;--bg-alt:#f1e9df;--ink:#3b3530;--ink-soft:#6b615a;--accent:#8a9a6b;--accent-dark:#5f6e46;--line:#ddd1c2;--white:#fffdfa;--radius:14px;--maxw:960px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:Jost,system-ui,-apple-system,Segoe UI,sans-serif;font-weight:300;line-height:1.65;-webkit-font-smoothing:antialiased}h1,h2,h3{font-family:Cormorant Garamond,Georgia,serif;font-weight:500;line-height:1.15;margin:0 0 .4em;letter-spacing:.01em}h2{font-size:clamp(1.9rem,4vw,2.8rem);text-align:center}h3{font-size:1.4rem}p{margin:0 0 1rem}a{color:var(--accent-dark)}.eyebrow{letter-spacing:.28em;font-size:.72rem;color:var(--ink-soft);text-align:center;margin-bottom:.6rem}.eyebrow,nav{text-transform:uppercase}nav{position:-webkit-sticky;position:sticky;top:0;z-index:20;display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem clamp(.8rem,3vw,2.2rem);padding:.9rem 1rem;background:rgba(250,246,240,.9);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);font-size:.8rem;letter-spacing:.16em}nav a{color:var(--ink-soft);text-decoration:none;white-space:nowrap}nav a:hover{color:var(--accent-dark)}.hero{min-height:88vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:3rem 1.5rem;background:linear-gradient(rgba(250,246,240,.55),rgba(250,246,240,.85)),radial-gradient(circle at 50% 0,#efe4d5,var(--bg) 70%)}.hero .names{font-size:clamp(3rem,12vw,7rem);margin:.2em 0 .1em}.hero .amp{color:var(--accent);font-style:italic;display:block;font-size:.5em;margin:.1em 0}.hero .date{text-transform:uppercase;letter-spacing:.3em;font-size:clamp(.8rem,2.5vw,1rem);color:var(--ink-soft);margin-top:1rem}.hero .place{color:var(--ink-soft);letter-spacing:.12em;font-size:.9rem}.countdown{display:flex;justify-content:center;gap:clamp(.8rem,4vw,2.4rem);margin-top:2.4rem}.countdown div{text-align:center;min-width:3.4rem}.countdown .num{font-family:Cormorant Garamond,serif;font-size:clamp(1.8rem,6vw,3rem);color:var(--accent-dark);display:block}.countdown .lbl{text-transform:uppercase;letter-spacing:.16em;font-size:.62rem;color:var(--ink-soft)}section{padding:clamp(3.5rem,8vw,6rem) 1.5rem}section:nth-of-type(2n){background:var(--bg-alt)}.wrap{max-width:var(--maxw);margin:0 auto}.lead{text-align:center;max-width:44ch;margin:0 auto 2.5rem;color:var(--ink-soft)}.cards{display:grid;grid-gap:1.5rem;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:1.8rem;text-align:center}.card h3{margin-bottom:.2rem}.card .sub{color:var(--ink-soft);font-size:.9rem}.card .note{font-size:.82rem;color:var(--ink-soft);margin-top:.8rem}.btn{display:inline-block;margin-top:1rem;padding:.6rem 1.4rem;border:1px solid var(--accent-dark);border-radius:999px;color:var(--accent-dark);background:transparent;text-decoration:none;font-size:.78rem;text-transform:uppercase;letter-spacing:.16em;cursor:pointer;transition:background .2s,color .2s}.btn:hover{background:var(--accent-dark);color:var(--white)}.btn[disabled]{opacity:.5;cursor:default}.btn-solid{background:var(--accent-dark);color:var(--white)}.btn-solid:hover{background:var(--accent)}.timeline{max-width:520px;margin:0 auto}.timeline .row{display:grid;grid-template-columns:5rem 1fr;grid-gap:1.2rem;gap:1.2rem;padding:1.1rem 0;border-bottom:1px solid var(--line)}.timeline .row:last-child{border-bottom:0}.timeline .t{font-family:Cormorant Garamond,serif;font-size:1.4rem;color:var(--accent-dark)}.timeline .row p{margin:0}.timeline .row .d{color:var(--ink-soft);font-size:.9rem}.iban-box{background:var(--white);border:1px dashed var(--accent);border-radius:var(--radius);padding:1.6rem;max-width:480px;margin:0 auto;text-align:center}.iban-box .iban{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:1.05rem;letter-spacing:.06em;margin:.4rem 0;word-break:break-all}.iban-box .small{font-size:.82rem;color:var(--ink-soft)}.copied{color:var(--accent-dark);font-size:.8rem;min-height:1.1em;display:block;margin-top:.4rem}.rsvp-card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:clamp(1.5rem,5vw,2.6rem);max-width:640px;margin:0 auto}label{display:block;font-size:.78rem;text-transform:uppercase;letter-spacing:.14em;color:var(--ink-soft);margin-bottom:.35rem}input[type=text],select,textarea{width:100%;padding:.7rem .9rem;border:1px solid var(--line);border-radius:8px;background:var(--bg);font:inherit;color:var(--ink)}input[type=text]:focus,select:focus,textarea:focus{outline:2px solid var(--accent);border-color:transparent}textarea{min-height:3.2rem;resize:vertical}.code-row{display:flex;gap:.8rem;flex-wrap:wrap}.code-row input{flex:1 1;min-width:160px;letter-spacing:.3em;text-transform:uppercase}.guest{border:1px solid var(--line);border-radius:10px;padding:1.2rem;margin-bottom:1.1rem;background:var(--bg)}.guest .grid{display:grid;grid-gap:.9rem 1.1rem;gap:.9rem 1.1rem;grid-template-columns:1fr 1fr}.guest .full{grid-column:1/-1}.check{display:flex;align-items:center;gap:.5rem;text-transform:none;letter-spacing:0;font-size:.95rem;color:var(--ink)}.check input{width:auto}.msg{text-align:center;padding:.9rem;border-radius:8px;margin-top:1rem;font-size:.92rem}.msg.err{background:#f7e4e0;color:#8a3b2c}.msg.ok{background:#e6efe0;color:var(--accent-dark)}.hint{font-size:.8rem;color:var(--ink-soft);text-align:center;margin-top:.8rem}.faq{max-width:640px;margin:0 auto}.faq details{border-bottom:1px solid var(--line);padding:1rem 0}.faq summary{cursor:pointer;font-family:Cormorant Garamond,serif;font-size:1.25rem;color:var(--ink);list-style:none}.faq summary::-webkit-details-marker{display:none}.faq summary:after{content:"+";float:right;color:var(--accent)}.faq details[open] summary:after{content:"–"}.faq details p{margin:.7rem 0 0;color:var(--ink-soft)}footer{text-align:center;padding:3rem 1.5rem 4rem;background:var(--bg-alt);border-top:1px solid var(--line)}footer .hearts{color:var(--accent);font-size:1.4rem}footer p{color:var(--ink-soft);font-size:.85rem;margin:.4rem 0 0}@media (max-width:520px){.guest .grid{grid-template-columns:1fr}}