:root{--ink: #0a0a0a;--paper: #ffffff;--stamp: #c1121f;--line: #d9d9d9;--muted: #6b6b6b;--display: "Archivo Black", "Arial Black", sans-serif;--body: "Inter", system-ui, sans-serif;--mono: "IBM Plex Mono", "Courier New", monospace;--edge: clamp(20px, 6vw, 72px)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--body);-webkit-font-smoothing:antialiased}a{color:inherit}.section{padding:88px var(--edge);border-top:1px solid var(--line)}.eyebrow{font-family:var(--mono);font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin:0 0 18px}.section-title{font-family:var(--display);font-size:clamp(28px,4.2vw,46px);line-height:1.05;margin:0 0 40px;letter-spacing:-.01em}.hero{min-height:100svh;background:var(--ink);color:var(--paper);display:flex;flex-direction:column;justify-content:space-between;padding:var(--edge);position:relative;overflow:hidden}.hero-photo{position:absolute;top:0;right:0;bottom:0;left:0;background-image:url(/images/foto_1.jpg);background-size:cover;background-position:center;filter:grayscale(1) contrast(1.05);z-index:0}.hero-scrim{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,#0a0a0a8c,#0a0a0a59 45%,#0a0a0ad9);z-index:1}.hero-top,.hero-names,.hero-bottom{position:relative;z-index:2}.hero-top{display:flex;justify-content:space-between;align-items:flex-start;font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:#c9c9c9}.hero-names{font-family:var(--display);font-size:clamp(56px,14vw,168px);line-height:.9;letter-spacing:-.02em;margin:40px 0;text-transform:uppercase}.hero-names .amp{color:var(--stamp);display:block;font-size:.55em;margin:.05em 0}.hero-bottom{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:24px}.hero-date{font-family:var(--mono);font-size:clamp(16px,2.4vw,22px);color:var(--paper)}.seal{width:108px;height:108px;border:1.5px solid var(--stamp);border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;transform:rotate(-8deg);position:relative}.seal:before{content:"";position:absolute;top:6px;right:6px;bottom:6px;left:6px;border:1px solid var(--stamp);border-radius:50%;opacity:.5}.seal-text{font-family:var(--mono);color:var(--stamp);font-size:13px;letter-spacing:.05em;text-align:center;line-height:1.5}.countdown{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}.countdown-cell{background:var(--paper);padding:28px 12px;text-align:center}.countdown-num{font-family:var(--mono);font-size:clamp(32px,5vw,56px);font-weight:500;font-variant-numeric:tabular-nums}.countdown-label{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-top:6px}.timeline-item{display:grid;grid-template-columns:72px 1fr auto;gap:24px;align-items:baseline;padding:24px 0;border-top:1px solid var(--line)}.timeline-item:last-child{border-bottom:1px solid var(--line)}.timeline-num{font-family:var(--mono);color:var(--stamp);font-size:14px}.timeline-name{font-family:var(--display);font-size:clamp(18px,2.2vw,26px);text-transform:uppercase}.timeline-desc{font-family:var(--body);color:var(--muted);font-size:14px;margin-top:4px}.timeline-time{font-family:var(--mono);font-size:14px;color:var(--muted);white-space:nowrap}.gallery-grid{display:grid;grid-template-columns:repeat(6,1fr);grid-auto-rows:140px;gap:8px}.gallery-item{position:relative;overflow:hidden;background:var(--ink)}.gallery-item img{width:100%;height:100%;object-fit:cover;display:block;filter:grayscale(1) contrast(1.05);transition:filter .4s ease,transform .4s ease}.gallery-item:hover img{filter:grayscale(0) contrast(1.05);transform:scale(1.03)}.gallery-item--a{grid-column:span 3;grid-row:span 3}.gallery-item--b{grid-column:span 3;grid-row:span 2}.gallery-item--c{grid-column:span 2;grid-row:span 2}.gallery-item--d{grid-column:span 2;grid-row:span 3}.gallery-item--e{grid-column:span 2;grid-row:span 2}.gallery-item--f{grid-column:span 3;grid-row:span 2}@media (max-width: 640px){.gallery-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:160px}.gallery-item--a,.gallery-item--b,.gallery-item--c,.gallery-item--d,.gallery-item--e,.gallery-item--f{grid-column:span 1;grid-row:span 2}}.gift-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}.gift-card{background:var(--paper);padding:28px 24px;display:flex;flex-direction:column;gap:14px;min-height:200px}.gift-card.taken{opacity:.4}.gift-name{font-family:var(--display);font-size:17px;text-transform:uppercase;line-height:1.2}.gift-price{font-family:var(--mono);font-size:13px;color:var(--muted)}.gift-btn{margin-top:auto;font-family:var(--mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;background:var(--ink);color:var(--paper);border:none;padding:12px 16px;cursor:pointer;transition:background .15s ease}.gift-btn:hover{background:var(--stamp)}.gift-btn:disabled{background:var(--line);color:var(--muted);cursor:not-allowed}.gift-status{font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--stamp)}.rsvp-form{display:flex;flex-direction:column;gap:28px;max-width:480px}.field label{display:block;font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:10px}.field input,.field select{width:100%;border:none;border-bottom:1.5px solid var(--ink);background:transparent;font-family:var(--body);font-size:17px;padding:8px 0;outline:none}.field input:focus,.field select:focus{border-bottom-color:var(--stamp)}.rsvp-submit{align-self:flex-start;font-family:var(--mono);font-size:13px;letter-spacing:.1em;text-transform:uppercase;background:var(--ink);color:var(--paper);border:none;padding:16px 32px;cursor:pointer;transition:background .15s ease}.rsvp-submit:hover{background:var(--stamp)}.rsvp-submit:focus-visible,.gift-btn:focus-visible{outline:2px solid var(--stamp);outline-offset:2px}.form-msg{font-family:var(--mono);font-size:13px;color:var(--stamp)}.footer{padding:48px var(--edge);border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;font-family:var(--mono);font-size:12px;color:var(--muted);flex-wrap:wrap;gap:12px}@media (max-width: 640px){.section{padding:56px var(--edge)}.timeline-item{grid-template-columns:40px 1fr}.timeline-time{grid-column:2}.countdown{grid-template-columns:repeat(2,1fr)}}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}.music-toggle{position:fixed;bottom:24px;right:24px;z-index:50;width:52px;height:52px;border-radius:50%;border:1.5px solid var(--stamp);background:#0a0a0ad9;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:var(--paper);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .15s ease,background .15s ease}.music-toggle:hover{background:var(--stamp);transform:scale(1.06)}.music-toggle:focus-visible{outline:2px solid var(--stamp);outline-offset:3px}@media (max-width: 640px){.music-toggle{bottom:16px;right:16px;width:46px;height:46px}}.intro-gate{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:var(--ink);color:var(--paper);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;cursor:pointer;text-align:center;padding:var(--edge);opacity:1;transition:opacity .7s ease}.intro-gate--closing{opacity:0;pointer-events:none}.intro-content{opacity:0}.intro-content--visible{opacity:1;animation:fadeIn .8s ease forwards}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.intro-seal{width:96px;height:96px;border:1.5px solid var(--stamp);border-radius:50%;display:flex;align-items:center;justify-content:center}.intro-seal .seal-text{font-family:var(--mono);color:var(--stamp);font-size:14px}.intro-title{font-family:var(--display);font-size:clamp(28px,5vw,42px);text-transform:uppercase;margin:0}.intro-cta{font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.5}50%{opacity:1}}@media (prefers-reduced-motion: reduce){.intro-cta{animation:none}.intro-gate{transition:none}.intro-content--visible{animation:none;opacity:1}}.dresscode-desc{font-family:var(--body);font-size:16px;color:var(--muted);max-width:520px;margin:0 0 36px;line-height:1.6}.dresscode-note{font-family:var(--mono);font-size:12px;font-style:italic;color:var(--muted);margin:20px 0 0}.color-swatches{display:flex;flex-wrap:wrap;gap:32px}.swatch{display:flex;flex-direction:column;align-items:center;gap:10px}.swatch-circle{width:56px;height:56px;border-radius:50%;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;color:var(--stamp)}.swatch-x{filter:drop-shadow(0 0 1px rgba(255,255,255,.6))}.swatch-label{font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.guest-greeting{padding:32px var(--edge);border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#fafafa}.guest-greeting-name{font-family:var(--display);font-size:clamp(20px,2.6vw,28px);text-transform:uppercase;margin:0 0 6px}.guest-greeting-tickets{font-family:var(--mono);font-size:13px;color:var(--muted);margin:0}.guest-greeting-tickets strong{color:var(--stamp)}.location-info{margin-bottom:28px}.location-venue{font-family:var(--display);font-size:clamp(18px,2.4vw,26px);text-transform:uppercase;margin:0 0 6px}.location-address{font-family:var(--body);font-size:15px;color:var(--muted);margin:0}.map-frame{width:100%;height:360px;border:1px solid var(--line);filter:grayscale(1) contrast(1.05);transition:filter .4s ease}.map-frame:hover{filter:grayscale(0) contrast(1.05)}.location-directions{display:inline-block;margin-top:24px;font-family:var(--mono);font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink);text-decoration:none;border-bottom:1.5px solid var(--stamp);padding-bottom:2px;transition:color .15s ease}.location-directions:hover{color:var(--stamp)}@media (max-width: 640px){.map-frame{height:280px}}
