@import url('https://fonts.googleapis.com/css2?family=DM+Mono&family=Manrope:wght@400;500;600&family=Playfair+Display:ital,wght@0,500;0,600;1,500&display=swap');
:root{--ink:#102a46;--blue:#1e4b7a;--pale:#e9eff4;--silver:#c9d0d5;--paper:#f8fafb;--muted:#5d6c79;--curve:cubic-bezier(.22,1,.36,1)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.65 Manrope,sans-serif}main{overflow:hidden}h1,h2,h3,p{margin-top:0;text-wrap:pretty}h1,h2{font-family:'Playfair Display',Georgia,serif;font-weight:500;line-height:.96;letter-spacing:-.035em}h2{font-size:clamp(2.6rem,8vw,5rem);max-width:12ch}h3{font:600 1rem/1.3 Manrope,sans-serif}.hero{min-height:100dvh;position:relative;color:white;display:grid;align-items:end}.hero img,.hero-shade{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.hero-shade{background:linear-gradient(180deg,rgba(7,25,43,.12),rgba(7,25,43,.82))}.hero-copy{position:relative;padding:34px clamp(24px,7vw,112px) 52px;max-width:760px}.seal{height:82px;width:82px;border-radius:50%;border:1px solid rgba(255,255,255,.75);background:rgba(188,199,209,.35);color:white;font:500 1.1rem 'Playfair Display',serif;letter-spacing:.08em;cursor:pointer;box-shadow:inset 0 0 0 5px rgba(255,255,255,.15);transition:transform .7s var(--curve)}.seal:hover{transform:rotate(10deg) scale(1.06)}.kicker{font:600 .68rem/1.3 'DM Mono',monospace;letter-spacing:.16em;text-transform:uppercase}.blue{color:var(--blue)}h1{font-size:clamp(4.2rem,13vw,8.5rem);margin:.3rem 0 1.1rem}.date{font:600 .72rem/1.4 'DM Mono',monospace;letter-spacing:.1em}.button{display:inline-flex;align-items:center;gap:20px;border:0;border-radius:999px;background:var(--blue);color:#fff;padding:15px 21px 15px 25px;font:600 .78rem Manrope,sans-serif;text-decoration:none;cursor:pointer;transition:transform .5s var(--curve),background .5s var(--curve)}.button:hover{transform:translateY(-2px);background:#123959}.button:active{transform:scale(.98)}.button span{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:rgba(255,255,255,.17)}.light{background:#f7f9fb;color:var(--ink)}section{padding:clamp(70px,12vw,160px) clamp(24px,10vw,180px)}.invitation{text-align:center;margin:auto;max-width:870px}.invitation h2{margin-inline:auto}.invitation>p:not(.kicker):not(.micro){max-width:520px;margin-inline:auto;color:var(--muted)}.micro{font-size:.72rem;color:var(--muted)}.countdown{display:grid;grid-template-columns:repeat(4,1fr);max-width:680px;margin:52px auto 16px;border-block:1px solid #d3dde4}.countdown div{padding:18px 4px}.countdown div+div{border-left:1px solid #d3dde4}.countdown b{display:block;font:500 clamp(1.8rem,6vw,4.2rem)/1 'Playfair Display',serif}.countdown small{font:.64rem 'DM Mono',monospace;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}.panel{background:var(--ink);color:#f8fafb;display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,9vw,150px);align-items:end}.panel h2{max-width:9ch}.panel p:last-child{max-width:37ch;color:#d8e1e7}.schedule{max-width:1300px;margin:auto}.timeline{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-top:55px}.timeline article{padding:26px 22px 26px 0;border-top:1px solid #bcc9d1}.timeline article+article{padding-left:22px;border-left:1px solid #bcc9d1}.timeline time{font:.65rem 'DM Mono',monospace;letter-spacing:.1em;color:var(--blue)}.timeline p{color:var(--muted);font-size:.88rem}.photo-block{min-height:520px;background:linear-gradient(90deg,rgba(16,42,70,.93),rgba(16,42,70,.48)),url('assets/lake-como-blue-floral-hero.png') center/cover;color:#fff;display:flex;align-items:center}.photo-block>div{max-width:460px}.text-link{color:white;text-underline-offset:5px}.faq{max-width:960px;margin:auto}.faq h2{margin-bottom:45px}.faq details{border-top:1px solid #cfd9df;padding:21px 0}.faq summary{cursor:pointer;font:500 1.05rem 'Playfair Display',serif}.faq details p{max-width:530px;margin:14px 0 0;color:var(--muted);font-size:.9rem}.party{display:block}.party-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:30px}.party-grid p{color:#d8e1e7;font-size:.8rem}.rsvp{max-width:710px;margin:auto}.rsvp form{margin-top:45px}.rsvp label,.rsvp legend{display:block;font-size:.75rem;font-weight:600;letter-spacing:.04em;margin:20px 0 8px}.rsvp input:not([type=radio]),textarea{display:block;width:100%;margin-top:8px;padding:13px;border:1px solid #aebdc8;border-radius:10px;background:#fff;color:var(--ink);font:inherit}.rsvp input:focus,textarea:focus{outline:3px solid #bad1e2;border-color:var(--blue)}fieldset{padding:0;border:0}fieldset label{font-weight:400}#form-status{min-height:25px;color:var(--blue);font-size:.86rem}footer{display:flex;justify-content:space-between;gap:20px;padding:28px clamp(24px,7vw,112px);background:#dfe7ec;color:var(--ink);font:.65rem 'DM Mono',monospace;letter-spacing:.08em}.reveal{opacity:0;transform:translateY(22px);transition:opacity .9s var(--curve),transform .9s var(--curve)}.reveal.visible{opacity:1;transform:none}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}.seal,.button{transition:none}}@media(max-width:700px){section{padding:82px 24px}.panel{grid-template-columns:1fr;gap:30px}.timeline{grid-template-columns:1fr}.timeline article+article{padding-left:0;border-left:0}.party-grid{grid-template-columns:1fr 1fr}.hero-copy{padding-bottom:38px}footer{display:block}footer span{display:block;margin:6px 0}}
