:root{--color-accent:#c1592c;--color-dark:#22301f;--color-accent-2:#6e2331;--color-bg:#f6efe4;--color-silver:#c9c9c9;--font-display:"Cormorant Garamond", serif;--font-body:"PT Serif", serif}body{background:var(--color-bg);color:var(--color-dark);font-family:var(--font-body);margin:0}.divider{opacity:0;justify-content:center;align-items:center;gap:12px;padding:32px 16px;transition:opacity .7s,transform .7s;display:flex;transform:scale(.6)rotate(-45deg)}.divider--visible{opacity:1;transform:scale(1)rotate(0)}.divider__line{background:var(--color-silver);width:56px;height:1px}.divider__ornament{color:var(--color-accent);flex-shrink:0}.hero{background-position:50%;background-size:cover;align-items:flex-end;min-height:100svh;padding-bottom:56px;display:flex;position:relative}.hero:before{content:"";background:linear-gradient(#22301f1a 0%,#22301fb3 100%);position:absolute;inset:0}.hero__overlay{z-index:1;text-align:center;width:100%;color:var(--color-bg);padding:0 24px;position:relative}.hero__eyebrow{font-family:var(--font-display);letter-spacing:.35em;text-transform:uppercase;opacity:.9;margin:0 0 16px;font-size:.8rem}.hero__names{font-family:"Alex Brush", var(--font-display);margin:0 0 8px;font-size:clamp(3rem,12vw,6rem);font-weight:400}.hero__greeting{letter-spacing:.15em;text-transform:uppercase;opacity:.85;margin:0;font-size:.9rem}.invitation{text-align:center;max-width:640px;margin:0 auto;padding:56px 24px}.invitation__text{letter-spacing:.02em;margin:0 0 40px;font-size:1.05rem;line-height:1.7}.countdown{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.countdown--past{font-family:var(--font-display);color:var(--color-accent-2);font-size:1.5rem}.countdown__unit{border:1px solid var(--color-silver);background:#fff;border-radius:8px;min-width:64px;padding:14px 12px}.countdown__value{font-family:var(--font-display);color:var(--color-accent);font-variant-numeric:tabular-nums;font-size:1.8rem;font-weight:600;display:block}.countdown__label{text-transform:uppercase;letter-spacing:.1em;color:var(--color-dark);margin-top:4px;font-size:.65rem;display:block}.photo-caption{background-position:50%;background-size:cover;justify-content:center;align-items:center;min-height:60vh;display:flex;position:relative}.photo-caption:before{content:"";background:#22301f1f;position:absolute;inset:0}.photo-caption__text{z-index:1;color:var(--color-bg);text-align:center;letter-spacing:.03em;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#22301f99;border-radius:14px;max-width:480px;margin:0 24px;padding:20px 28px;font-size:1.05rem;position:relative}.location{text-align:center;max-width:560px;margin:0 auto;padding:56px 24px}.location h2{font-family:var(--font-display);color:var(--color-accent-2);margin:0 0 8px;font-size:2rem}.location__venue{margin:0 0 4px;font-size:1.1rem;font-weight:700}.location__address{color:var(--color-dark);margin:0 0 24px}.location__map{border:1px solid var(--color-silver);border-radius:12px;margin-bottom:24px;overflow:hidden}.location__map iframe{display:block}.location__route{background:var(--color-accent);color:var(--color-bg);letter-spacing:.05em;border-radius:999px;padding:12px 28px;font-size:.9rem;text-decoration:none;display:inline-block}.gallery{max-width:1100px;margin:0 auto;padding:56px 24px}.gallery__grid{grid-template-columns:1fr;gap:16px;display:grid}.gallery__item{opacity:0;aspect-ratio:3/4;border-radius:12px;transition:opacity .7s,transform .7s;overflow:hidden;transform:translateY(24px)}.gallery__item--visible{opacity:1;transform:translateY(0)}.gallery__item img{object-fit:cover;width:100%;height:100%;display:block}.rsvp{text-align:center;max-width:480px;margin:0 auto;padding:56px 24px 96px}.rsvp h2{font-family:var(--font-display);color:var(--color-accent-2);margin:0 0 32px;font-size:2rem}.rsvp form{text-align:left;flex-direction:column;gap:14px;display:flex}.rsvp label{text-transform:uppercase;letter-spacing:.05em;color:var(--color-dark);font-size:.8rem}.rsvp input,.rsvp select{font:inherit;border:1px solid var(--color-silver);box-sizing:border-box;background:#fff;border-radius:8px;width:100%;padding:12px 14px}.rsvp button{background:var(--color-accent);color:var(--color-bg);letter-spacing:.05em;cursor:pointer;border:none;border-radius:999px;margin-top:8px;padding:14px;font-size:1rem}.rsvp button:disabled{opacity:.6;cursor:not-allowed}.rsvp__error{color:var(--color-accent-2);margin:0;font-size:.85rem}.rsvp__success{font-family:var(--font-display);text-align:center;color:var(--color-accent-2);padding:96px 24px;font-size:1.5rem}.music-toggle{z-index:10;align-items:center;gap:8px;display:flex;position:fixed;bottom:20px;right:20px}.music-toggle__hint{background:var(--color-dark);color:var(--color-bg);white-space:nowrap;border-radius:999px;padding:6px 12px;font-size:.8rem;animation:4s forwards music-toggle-hint-fade;box-shadow:0 2px 10px #0003}@keyframes music-toggle-hint-fade{0%,70%{opacity:1}to{opacity:0}}.music-toggle__button{background:var(--color-dark);width:48px;height:48px;color:var(--color-bg);cursor:pointer;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:1.3rem;line-height:1;display:flex;box-shadow:0 2px 10px #00000040}.music-toggle__button--playing{animation:4s linear infinite music-toggle-spin}.music-toggle__button--pulse{animation:1.6s ease-in-out infinite music-toggle-pulse}@keyframes music-toggle-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes music-toggle-pulse{0%,to{box-shadow:0 0 #c1592c8c}50%{box-shadow:0 0 0 10px #c1592c00}}.language-toggle{z-index:10;background:#ffffffd9;border-radius:999px;gap:4px;padding:4px;display:flex;position:fixed;top:16px;right:16px;box-shadow:0 2px 10px #00000026}.language-toggle__btn{letter-spacing:.05em;cursor:pointer;color:var(--color-dark);background:0 0;border:none;border-radius:999px;padding:6px 12px;font-size:.75rem}.language-toggle__btn--active{background:var(--color-accent);color:var(--color-bg)}@media (width>=768px){.gallery__grid{grid-template-columns:repeat(3,1fr)}.invitation__text{font-size:1.2rem}.countdown{gap:16px}.countdown__unit{min-width:88px;padding:20px 18px}.countdown__value{font-size:2.4rem}}
