:root{--font-display:"Cormorant Garamond", "Times New Roman", serif;--font-body:"Jost", "Helvetica Neue", sans-serif;--weight-display:300;--weight-body:300;--tracking-display:.08em;--tracking-caps:.28em;--size-hero:clamp(3rem, 9vw, 7rem);--size-h2:clamp(2rem, 5vw, 3.25rem);--size-h3:1.5rem;--size-body:1.05rem;--size-small:.8rem;--leading:1.7;--color-bg:#f5efe6;--color-bg-alt:#ede4d6;--color-surface:#fbf8f2;--color-ink:#4a3f36;--color-ink-soft:#7c6f63;--color-line:#d9cdbc;--color-accent:#9b8bc4;--color-accent-deep:#7a68a8;--color-accent-soft:#e6e0f0;--color-success:#6f8f6a;--color-error:#b0655a;--radius:2px;--radius-photo:2px;--border:1px solid var(--color-line);--shadow:0 10px 30px #4a3f3614;--section-pad:clamp(4rem, 10vw, 8rem);--content-width:68rem;--narrow-width:40rem;--gap:1.5rem;--ease:.2s ease}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--color-bg);color:var(--color-ink);font-family:var(--font-body);font-weight:var(--weight-body);font-size:var(--size-body);line-height:var(--leading);-webkit-font-smoothing:antialiased;margin:0}img{max-width:100%;display:block}a{color:var(--color-accent-deep);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3{font-family:var(--font-display);font-weight:var(--weight-display);letter-spacing:var(--tracking-display);margin:0;line-height:1.1}h1{font-size:var(--size-hero)}h2{font-size:var(--size-h2);text-align:center}h3{font-size:var(--size-h3)}p{margin:0 0 1em}.eyebrow{text-align:center;font-size:var(--size-small);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--color-accent-deep);margin-bottom:.75rem;display:block}.rule{background:var(--color-accent);width:3rem;height:1px;margin:1.25rem auto 2rem}.muted{color:var(--color-ink-soft)}.center{text-align:center}.section{padding:var(--section-pad) 1.25rem}.section.alt{background:var(--color-bg-alt)}.section.tint{background:var(--color-accent-soft)}.container{max-width:var(--content-width);margin:0 auto}.narrow{max-width:var(--narrow-width);margin:0 auto}.grid{gap:var(--gap);display:grid}.grid-2{grid-template-columns:repeat(auto-fit,minmax(16rem,1fr))}.grid-3{grid-template-columns:repeat(auto-fit,minmax(14rem,1fr))}.card{background:var(--color-surface);border:var(--border);border-radius:var(--radius);padding:1.75rem}.topbar{z-index:10;pointer-events:none;justify-content:flex-end;padding:1rem 1.25rem;display:flex;position:fixed;inset:0 0 auto}.lang-switch{pointer-events:auto;background:var(--color-surface);border:var(--border);border-radius:var(--radius);gap:.25rem;padding:.25rem;display:inline-flex}.lang-switch button{font:inherit;font-size:var(--size-small);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--color-ink-soft);border-radius:var(--radius);cursor:pointer;transition:background var(--ease), color var(--ease);background:0 0;border:0;padding:.35rem .75rem}.lang-switch button.active{background:var(--color-accent);color:#fff}.hero{text-align:center;min-height:100svh;padding:var(--section-pad) 1.25rem;place-items:center;display:grid;position:relative;overflow:hidden}.hero-bg{z-index:0;background:linear-gradient(180deg, var(--color-bg-alt), var(--color-bg));position:absolute;inset:0}.hero-bg .photo{opacity:.5;border-radius:0;position:absolute;inset:0}.hero-content{z-index:1;position:relative}.hero .names{margin:1rem 0}.hero .amp{color:var(--color-accent-deep);font-size:.5em;font-style:italic;display:block}.hero .date{letter-spacing:var(--tracking-caps);text-transform:uppercase;font-size:1.25rem}.countdown{justify-content:center;gap:clamp(1rem,5vw,3rem);margin-top:2.5rem;display:flex}.countdown .unit{text-align:center;min-width:4rem}.countdown .value{font-family:var(--font-display);font-size:clamp(2.5rem,7vw,4.5rem);line-height:1}.countdown .label{font-size:var(--size-small);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--color-ink-soft)}.photo{aspect-ratio:var(--ratio,4 / 3);border-radius:var(--radius-photo);background:linear-gradient(135deg, var(--color-bg-alt), var(--color-accent-soft));color:var(--color-ink-soft);font-size:var(--size-small);letter-spacing:var(--tracking-caps);text-transform:uppercase;place-items:center;display:grid;overflow:hidden}.photo img{object-fit:cover;width:100%;height:100%}.photo-strip{gap:.75rem;display:flex}.photo-strip .photo{flex:var(--ratio) 1 0;min-width:0}@media (width<=40rem){.photo-strip{flex-direction:column}.photo-strip .photo{flex:none;width:100%}}.map{aspect-ratio:16/9;border-radius:var(--radius);filter:sepia(.25)saturate(.8);border:0;width:100%}.btn{font:inherit;font-size:var(--size-small);letter-spacing:var(--tracking-caps);text-transform:uppercase;border-radius:var(--radius);border:1px solid var(--color-accent);color:var(--color-accent-deep);cursor:pointer;transition:background var(--ease), color var(--ease);background:0 0;padding:.9rem 1.75rem;display:inline-block}.btn:hover{background:var(--color-accent);color:#fff;text-decoration:none}.btn.primary{background:var(--color-accent);color:#fff}.btn.primary:hover{background:var(--color-accent-deep)}.btn:disabled{opacity:.5;cursor:default}.timeline{--marker:3rem;margin:0;padding:0;list-style:none;position:relative}.timeline:before{content:"";background:var(--color-line);width:1px;top:0;bottom:0;left:calc(4.5rem + 1.25rem + var(--marker) / 2);position:absolute}.timeline li{grid-template-columns:4.5rem var(--marker) 1fr;align-items:start;gap:1.25rem;padding:1rem 0;display:grid}.timeline .time{font-family:var(--font-display);text-align:right;font-size:1.4rem;line-height:var(--marker)}.timeline .marker{width:var(--marker);height:var(--marker);border:var(--border);background:var(--color-bg);color:var(--color-accent-deep);border-radius:50%;place-items:center;display:grid;position:relative}.timeline .marker svg{width:1.5rem;height:1.5rem}.timeline h3{margin-top:calc((var(--marker) - 1.5em) / 2)}.form{gap:1.25rem;display:grid}.field{gap:.4rem;display:grid}.field label,.fieldset legend{font-size:var(--size-small);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--color-ink-soft)}.field input,.field select,.field textarea{font:inherit;color:var(--color-ink);background:var(--color-surface);border:var(--border);border-radius:var(--radius);width:100%;transition:border-color var(--ease);padding:.75rem .9rem}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--color-accent);outline:0}.fieldset{border:0;gap:.6rem;margin:0;padding:0;display:grid}.choice{cursor:pointer;align-items:center;gap:.6rem;display:flex}.choice input{accent-color:var(--color-accent-deep)}.guest-row{grid-template-columns:1fr auto auto;align-items:end;gap:.75rem 1.25rem;display:grid}.guest-row .choice{padding:calc(.75rem + 1px) 0}@media (width<=40rem){.guest-row{grid-template-columns:1fr}}.link-btn{font:inherit;color:var(--color-accent-deep);cursor:pointer;letter-spacing:.05em;background:0 0;border:0;padding:.5rem 0}.link-btn:hover{text-decoration:underline}.notice{border-radius:var(--radius);border:1px solid;padding:1rem 1.25rem}.notice.success{border-color:var(--color-success);color:var(--color-success)}.notice.error{border-color:var(--color-error);color:var(--color-error)}.footer{text-align:center;font-size:var(--size-small);color:var(--color-ink-soft);letter-spacing:.1em;padding:3rem 1.25rem}
