@font-face{font-family:Bassy;src:url(/Bassy.ttf) format("truetype");font-display:swap}@keyframes fadeUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(6px)}}@keyframes grain{0%,to{transform:translate(0)}10%{transform:translate(-5%,-10%)}30%{transform:translate(3%,-15%)}50%{transform:translate(12%,9%)}70%{transform:translate(9%,4%)}90%{transform:translate(-1%,7%)}}*{margin:0;padding:0;box-sizing:border-box}:root,[data-theme=cream]{--bg:#FFFDF6;--bg-alt:#F7F3EA;--accent:#A10501;--accent-hover:#6B1A1A;--accent-subtle:rgba(161,5,1,.06);--accent-border:rgba(161,5,1,.1);--accent-border-hover:rgba(161,5,1,.25);--olive:#6B7A45;--olive-subtle:rgba(107,122,69,.06);--olive-border:#A5B07D;--brand:#4F6B38;--hero-text:#A10501;--text:#3D2C24;--text-mid:#7A6A5E;--text-light:#8A7D70;--nav-bg:rgba(255,253,246,.92);--nav-border:rgba(161,5,1,.08);--box-bg:#A10501;--box-text:#FFFDF6;--box-text-mid:rgba(255,253,246,.75);--box-text-dim:rgba(255,253,246,.72);--box-border:rgba(255,253,246,.15);--grain-opacity:.025;--scroll-stroke:#B8A99A;--cta-text:#FFFDF6}[data-theme=terracotta]{--bg:#32030F;--bg-alt:#280209;--accent:#FFFDF6;--accent-hover:#E8DCC8;--accent-subtle:rgba(255,253,246,.06);--accent-border:rgba(255,253,246,.12);--accent-border-hover:rgba(255,253,246,.3);--olive:#C9D4A0;--olive-subtle:rgba(201,212,160,.08);--olive-border:rgba(201,212,160,.3);--brand:#C9D4A0;--hero-text:#FFFDF6;--text:#FFFDF6;--text-mid:rgba(255,253,246,.75);--text-light:rgba(255,253,246,.6);--nav-bg:rgba(50,3,15,.92);--nav-border:rgba(255,253,246,.08);--box-bg:rgba(255,253,246,.08);--box-text:#FFFDF6;--box-text-mid:rgba(255,253,246,.78);--box-text-dim:rgba(255,253,246,.65);--box-border:rgba(255,253,246,.1);--grain-opacity:.03;--scroll-stroke:rgba(255,253,246,.3);--cta-text:#32030F}:root{--serif:"Bodoni Moda","Times New Roman",serif;--display:"Bodoni Moda",Georgia,serif;--sans:"Bodoni Moda",-apple-system,sans-serif}html{scroll-behavior:smooth}main,section{scroll-margin-top:80px}body{background:var(--bg);color:var(--text);font-family:var(--sans);font-weight:300;font-size:18px;line-height:1.7;overflow-x:hidden;transition:background .5s ease,color .3s ease}.skip-link{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden;z-index:200}.skip-link:focus{left:16px;top:16px;width:auto;height:auto;padding:12px 20px;background:var(--accent);color:var(--cta-text);text-decoration:none;font-size:13px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;outline:2px solid var(--accent);outline-offset:2px}body:after{content:"";position:fixed;top:-50%;right:-50%;bottom:-50%;left:-50%;width:200%;height:200%;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");opacity:var(--grain-opacity);pointer-events:none;z-index:9999;animation:grain 4s steps(10) infinite}nav{position:fixed;top:0;left:0;right:0;z-index:100;background:var(--nav-bg);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--nav-border);transition:transform .3s ease,background .5s ease}.nav-inner{max-width:1200px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;height:68px;padding:0 40px}.nav-brand{font-family:var(--display);font-style:italic;font-size:22px;color:var(--brand);letter-spacing:-.02em;text-decoration:none}.nav-links{display:flex;gap:30px;list-style:none;align-items:center}.nav-links a{font-family:var(--sans);font-size:13px;font-weight:400;text-transform:uppercase;letter-spacing:.1em;color:var(--text-mid);text-decoration:none;transition:color .2s}.nav-links a:hover,.nav-links a:focus-visible{color:var(--accent)}.nav-links a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.theme-toggle{width:44px;height:24px;border-radius:12px;cursor:pointer;background:var(--accent-subtle);border:1px solid var(--accent-border);position:relative;transition:background .3s,border-color .3s;flex-shrink:0}.theme-toggle:before{content:"";position:absolute;top:-10px;right:-10px;bottom:-10px;left:-10px}.theme-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.theme-toggle:after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:var(--accent);transition:transform .25s cubic-bezier(.34,1.56,.64,1)}[data-theme=terracotta] .theme-toggle:after{transform:translate(20px)}.nav-toggle{display:none;background:none;border:none;cursor:pointer;width:44px;height:44px;padding:0;position:relative;z-index:2;overflow:visible}.nav-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.nav-toggle span{display:block;position:absolute;left:50%;top:50%;width:20px;height:1.5px;margin-left:-10px;background:var(--accent);transform-origin:center;transition:transform .25s ease,opacity .2s ease,top .25s ease}.nav-toggle span:nth-child(1){top:calc(50% - 6px)}.nav-toggle span:nth-child(2){top:50%}.nav-toggle span:nth-child(3){top:calc(50% + 6px)}nav.open .nav-toggle span:nth-child(1){top:50%;transform:rotate(45deg)}nav.open .nav-toggle span:nth-child(2){opacity:0}nav.open .nav-toggle span:nth-child(3){top:50%;transform:rotate(-45deg)}.nav-backdrop{display:none;background:none;border:none;padding:0}section{padding:120px 40px;max-width:860px;margin:0 auto}.section-label{font-family:var(--sans);font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.15em;color:var(--olive);margin-bottom:16px}h2{font-family:var(--serif);font-weight:300;font-size:clamp(32px,5vw,48px);line-height:1.15;color:var(--text);margin-bottom:32px;letter-spacing:-.02em}h2 em{font-style:italic;color:var(--accent)}h3{font-family:var(--serif);font-weight:400;font-size:28px;color:var(--text);margin-bottom:14px;letter-spacing:-.01em}p{color:var(--text-mid);max-width:620px;margin-bottom:20px;font-weight:300;font-size:17px}p strong{color:var(--text);font-weight:500}.divider{width:60px;height:1px;background:var(--accent);opacity:.2;margin:48px 0}.hero{min-height:100vh;min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:120px 40px 80px;position:relative;overflow:hidden}.hero-date{font-family:var(--sans);font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.2em;color:var(--hero-text);margin-bottom:40px;opacity:0;animation:fadeUp .8s ease forwards .3s}.hero h1{font-family:"Bassy",var(--display);font-style:normal;font-weight:400;font-size:clamp(54px,13vw,146px);line-height:.95;color:var(--hero-text);letter-spacing:-.03em;margin-bottom:40px;opacity:0;animation:fadeUp .8s ease forwards .5s}.hero h1 .amp{font-family:"Bassy",var(--serif);font-style:normal;font-weight:300;display:inline-block;margin:0 .05em;opacity:.5}.hero-location{font-family:var(--serif);font-size:clamp(16px,2.5vw,18px);font-weight:300;color:var(--text-mid);letter-spacing:.02em;opacity:0;animation:fadeUp .8s ease forwards .7s}.hero-cta{margin-top:48px;opacity:0;animation:fadeUp .8s ease forwards .9s}.hero-cta a{font-family:var(--sans);font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.15em;color:var(--cta-text);background:var(--accent);padding:16px 40px;text-decoration:none;transition:background .2s,transform .2s;display:inline-flex;align-items:center;justify-content:center;min-height:44px}.hero-cta a:hover{background:var(--accent-hover);transform:translateY(-1px)}.hero-cta a:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.hero-scroll{position:absolute;bottom:32px;left:50%;transform:translate(-50%);opacity:0;animation:fadeIn .8s ease forwards 1.2s}.hero-scroll svg{width:20px;height:30px;stroke:var(--scroll-stroke);stroke-width:1.5;fill:none;animation:float 2s ease-in-out infinite}.rsvp-box{background:var(--box-bg);color:var(--box-text);padding:48px;max-width:520px;transition:background .5s ease}.rsvp-box h3{color:var(--box-text);font-size:28px;margin-bottom:8px}.rsvp-box p{color:var(--box-text-mid);max-width:none}.rsvp-box .rsvp-deadline{font-family:var(--serif);font-size:20px;color:var(--box-text);margin:20px 0 4px;font-weight:400}.rsvp-box .rsvp-contact{font-size:14px;color:var(--box-text-dim);margin-bottom:4px}.rsvp-box .rsvp-contact a{color:var(--box-text);text-decoration:underline;text-underline-offset:3px}.rsvp-box .rsvp-contact a:hover,.rsvp-box .rsvp-contact a:focus-visible{color:var(--box-text)}.rsvp-note{margin-top:24px;padding-top:20px;border-top:1px solid var(--box-border);font-size:14px;font-style:italic;color:var(--box-text-dim)}.program-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;margin-top:40px}.program-day-label{font-family:var(--sans);font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:var(--olive);margin-bottom:8px}.program-day h3{font-size:22px;margin-bottom:4px}.day-subtitle{font-family:var(--serif);font-style:italic;font-size:16px;color:var(--text-mid);margin-bottom:24px;opacity:.8}.timeline-item{display:flex;gap:16px;margin-bottom:14px;align-items:baseline}.timeline-time{font-family:var(--sans);font-size:13px;font-weight:500;color:var(--text);white-space:nowrap;min-width:52px}.timeline-label{font-family:var(--serif);font-size:17px;color:var(--text-mid)}.dresscode-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin-top:32px}.dresscode-card{padding:32px;border:1px solid var(--accent-border);transition:border-color .3s}.dresscode-card:hover{border-color:var(--accent-border-hover)}.dresscode-card .card-event{font-family:var(--sans);font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:var(--olive);margin-bottom:12px}.dresscode-card h3{font-size:20px;margin-bottom:16px}.dresscode-card p{font-size:15px;line-height:1.6;color:var(--text-mid);max-width:none}.dresscode-card .note{font-size:13px;font-style:italic;color:var(--text-light);margin-top:16px}.tips-box{background:var(--olive-subtle);padding:28px 32px;margin-top:40px}.tips-box h3{font-family:var(--serif);font-weight:400;font-size:18px;margin-bottom:12px;color:var(--olive)}.tips-box p{font-size:14px;color:var(--text-mid);max-width:none;margin-bottom:8px}.tips-box p:last-child{margin-bottom:0}.travel-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin-top:32px}.travel-card h3{font-size:20px;margin-bottom:12px}.travel-card p{font-size:15px;line-height:1.65;max-width:none}.airport-list{list-style:none;margin-top:16px}.airport-list li{display:flex;justify-content:space-between;align-items:baseline;padding:12px 0;border-bottom:1px solid var(--accent-border);font-size:14px}.airport-list li:last-child{border-bottom:none}.airport-name{color:var(--text);font-weight:400}.airport-dist{color:var(--text-mid);font-size:13px}.gifts-section{text-align:center;padding:100px 40px}.gifts-section p{margin:16px auto 20px;text-align:center}.iban{font-family:var(--sans);font-size:15px;letter-spacing:.08em;color:var(--text);background:var(--accent-subtle);padding:14px 28px;display:inline-block;margin-top:8px;border:1px solid var(--accent-border)}.iban-note{font-size:14px;font-style:italic;color:var(--text-light);margin-top:16px}.inline-link{color:var(--accent);text-decoration:underline;text-underline-offset:3px;transition:color .2s}.inline-link:hover{color:var(--accent-hover)}.inline-link:focus-visible,.faq-item a:focus-visible,.faq-contacts a:focus-visible,.rsvp-box .rsvp-contact a:focus-visible,.nav-brand:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:0}.section-with-photo{display:grid;grid-template-columns:2fr 3fr;gap:56px;align-items:center}.section-with-photo>.reveal{order:2;min-width:0}.section-with-photo>.section-photo{order:1;min-width:0}.section-with-photo.photo-right>.reveal{order:1}.section-with-photo.photo-right>.section-photo{order:2}.section-photo{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:4px;display:block}#faq{padding-top:60px}.faq-list{display:grid;gap:32px;margin-top:32px}.faq-item{padding:28px 0;border-bottom:1px solid var(--accent-border)}.faq-item:last-child{border-bottom:none}.faq-item h3{font-size:22px;margin-bottom:14px;color:var(--text)}.faq-item p{font-size:16px;line-height:1.65;max-width:none;margin-bottom:12px}.faq-item p:last-child{margin-bottom:0}.faq-item a{color:var(--accent);text-decoration:underline;text-underline-offset:3px}.faq-contacts{list-style:none;margin:8px 0 0;padding:0}.faq-contacts li{font-size:15px;color:var(--text-mid);padding:6px 0}footer{text-align:center;padding:80px 40px 60px;border-top:1px solid var(--accent-border)}footer .footer-names{font-family:"Bassy",var(--display);font-style:normal;font-size:32px;text-transform:lowercase;color:var(--brand);letter-spacing:-.02em;margin-bottom:12px}footer p{font-size:13px;color:var(--text-light);margin:0 auto;text-align:center}.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease}.reveal.visible{opacity:1;transform:translateY(0)}@media (max-width:768px){.nav-inner{padding:0 20px;height:60px;position:relative;z-index:2;background:var(--nav-bg)}.nav-toggle{display:flex}.nav-links{display:flex;flex-direction:column;position:fixed;top:60px;left:0;right:0;max-height:calc(100dvh - 60px);overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;background:var(--nav-bg);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);padding:24px 20px 32px;gap:20px;border-bottom:1px solid var(--nav-border);transform:translateY(-110%);transition:transform .3s ease;visibility:hidden;z-index:1}.nav-links a{font-size:14px;display:block;padding:6px 0;min-height:44px;display:flex;align-items:center}nav.open .nav-links{transform:translateY(0);visibility:visible}nav.open .nav-backdrop{display:block;position:fixed;top:60px;left:0;right:0;bottom:0;background:#00000059;cursor:pointer;z-index:0}.theme-toggle-li{order:99;padding-top:16px;border-top:1px solid var(--nav-border);display:flex;align-items:center;gap:12px;min-height:44px}.theme-toggle-li:before{content:"Switch theme";font-size:12px;text-transform:uppercase;letter-spacing:.1em;color:var(--text-mid);font-family:var(--sans)}.theme-toggle:before{top:-6px;right:-6px;bottom:-6px;left:-6px}section{padding:80px 20px}.hero{padding:100px 20px 60px}.hero h1{margin-bottom:28px}.hero-cta a{padding:14px 32px}.hero-scroll{bottom:20px}h2{font-size:clamp(28px,7vw,40px);margin-bottom:24px}h3{font-size:20px}.program-grid{grid-template-columns:1fr;gap:40px}.dresscode-grid,.travel-grid{grid-template-columns:1fr;gap:24px}.section-with-photo{grid-template-columns:1fr;gap:32px}.section-with-photo>.reveal,.section-with-photo>.section-photo,.section-with-photo.photo-right>.reveal,.section-with-photo.photo-right>.section-photo{order:0}.section-with-photo>.section-photo{max-width:320px;width:100%;margin:0 auto}.rsvp-box{padding:32px 24px;max-width:none}.dresscode-card,.tips-box{padding:24px 20px}.airport-list li{flex-direction:column;gap:2px}.airport-dist{font-size:12px}.gifts-section{padding:80px 20px}.iban{padding:12px 20px;font-size:13px;word-break:break-all}footer{padding:60px 20px 48px}footer .footer-names{font-size:26px}.divider{margin:36px 0}}@media (prefers-reduced-motion:reduce){*,.reveal{animation:none!important;transition:none!important;opacity:1!important;transform:none!important}}@media (max-width:380px){.hero h1{font-size:44px}.hero-date{font-size:10px;letter-spacing:.15em}.nav-brand{font-size:16px}h2{font-size:26px}.rsvp-box{padding:24px 18px}.rsvp-box h3{font-size:24px}.dresscode-card{padding:20px 16px}}
