:root{--bg:#f6f2ec;--surface:#fff;--champagne:#dee3e7;--blush:#c5ced3;--blush-deep:#a3b1ba;--gold:#79879b;--gold-light:#c5ced3;--sage:#a3b1ba;--sage-light:#dee3e7;--fg:#37486a;--muted:#79879b;--border:#c5ced3;--font-display:"Playfair Display", Georgia, "Times New Roman", serif;--font-body:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--section-pad:clamp(4rem, 8vw, 8rem);--content-max:1100px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;font-size:100%}a[x-apple-data-detectors]{pointer-events:none;color:inherit!important;text-decoration:none!important}body{font-family:var(--font-body);color:var(--fg);background:var(--bg);-webkit-font-smoothing:antialiased;font-weight:400;line-height:1.7}.container{max-width:var(--content-max);margin:0 auto;padding:0 clamp(1.5rem,4vw,3rem)}.section-label{font-family:var(--font-body);letter-spacing:.25em;text-transform:uppercase;color:var(--muted);margin-bottom:.75rem;font-size:.75rem;font-weight:600}h2{font-family:var(--font-display);letter-spacing:-.01em;color:var(--fg);margin-bottom:1.25rem;font-size:clamp(2.25rem,5vw,3.5rem);font-weight:500;line-height:1.15}.subtitle{color:var(--muted);text-align:center;max-width:540px;margin:0 auto 3rem;font-size:1.1rem}.nav{z-index:1000;background:0 0;justify-content:space-between;align-items:center;min-height:4.75rem;padding:1.25rem clamp(1.5rem,4vw,3rem);transition:background .35s,box-shadow .35s;display:flex;position:fixed;top:0;left:0;right:0}.nav.scrolled{-webkit-backdrop-filter:blur(14px);box-shadow:0 1px 0 var(--border);background:#dee3e7eb}.nav-logo{width:3rem;max-width:3rem;height:3rem;color:var(--fg);flex:none;align-items:center;text-decoration:none;display:inline-flex;overflow:hidden}.nav-logo img{object-fit:contain;border-radius:0;display:block;width:3rem!important;max-width:3rem!important;height:3rem!important;max-height:3rem!important}.nav-links{gap:2rem;list-style:none;display:flex}.nav-links a{letter-spacing:.06em;text-transform:uppercase;color:var(--fg);padding:.25rem 0;font-size:.82rem;font-weight:500;text-decoration:none;transition:color .2s;position:relative}.nav-links a:after{content:"";background:var(--bg);width:0;height:1.5px;transition:width .25s;position:absolute;bottom:-2px;left:0}.nav-links a:hover{color:var(--bg)}.nav-links a:hover:after{width:100%}.nav-actions{align-items:center;gap:.85rem;display:flex}.language-switcher{background:#dee3e794;border:1px solid #37486a29;border-radius:999px;align-items:center;gap:.25rem;padding:.2rem;display:inline-flex}.language-link{min-width:2rem;color:var(--fg);letter-spacing:.04em;text-align:center;border-radius:999px;padding:.25rem .45rem;font-size:.7rem;font-weight:600;line-height:1.2;text-decoration:none;transition:background .2s,color .2s}.language-link:hover,.language-link.active{background:var(--fg);color:#fff}.nav-rsvp-btn{background:var(--fg);color:#fff;letter-spacing:.04em;text-transform:uppercase;cursor:pointer;font-size:.82rem;font-weight:600;font-family:var(--font-body);border:none;border-radius:999px;padding:.6rem 1.6rem;transition:background .25s,transform .2s}.nav-rsvp-btn:hover{background:#2f3d5a;transform:translateY(-1px)}.nav-mobile-toggle{cursor:pointer;color:var(--fg);background:0 0;border:none;font-size:1.5rem;display:none}.hero{text-align:center;isolation:isolate;background:linear-gradient(165deg,#f6f2ec 0%,#dee3e7 38%,#c5ced3 68%,#a3b1ba 100%);justify-content:center;align-items:center;min-height:100vh;display:flex;position:relative;overflow:hidden}.hero-bg{z-index:0;position:absolute;inset:0}.hero-bg picture{width:100%;height:100%;display:block}.hero-bg img{object-fit:cover;object-position:center 30%;width:100%;height:100%;display:block}.hero-overlay{z-index:1;background:linear-gradient(#f6f2ec2e 0%,#dee3e726 45%,#a3b1ba2e 100%);position:absolute;inset:0}.hero-content{z-index:2;max-width:800px;padding:2rem;position:relative;transform:translateY(2.5rem)}.hero-kicker{letter-spacing:.3em;text-transform:uppercase;color:var(--champagne);text-shadow:0 1px 4px #101724c7,0 6px 24px #10172494;margin-bottom:1.5rem;font-size:.8rem;font-weight:600}.hero-names{font-family:var(--font-display);color:var(--bg);text-shadow:0 2px 5px #101724d1,0 10px 34px #1017249e;margin-bottom:1rem;font-size:clamp(3.5rem,10vw,7rem);font-weight:400;line-height:1.05}.hero-ampersand{color:var(--bg);margin:.15em 0;font-size:.5em;font-style:italic;display:block}.hero-date{letter-spacing:.08em;color:var(--champagne);text-shadow:0 1px 4px #101724c7,0 6px 24px #10172494;margin-bottom:2.5rem;font-size:1.15rem;font-weight:500}.hero-cta{background:var(--fg);color:#fff;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;font-size:.9rem;font-weight:600;font-family:var(--font-body);border:none;border-radius:999px;padding:1rem 2.5rem;text-decoration:none;transition:background .25s,transform .2s,box-shadow .25s;display:inline-block;box-shadow:0 4px 24px #37486a2e}.hero-cta:hover{background:#2f3d5a;transform:translateY(-2px);box-shadow:0 8px 32px #37486a47}.hero-scroll{z-index:2;color:#fff;letter-spacing:.2em;text-transform:uppercase;flex-direction:column;align-items:center;gap:.5rem;font-size:.7rem;animation:3s ease-in-out infinite float;display:flex;position:absolute;bottom:2.5rem;left:50%;transform:translate(-50%)}.hero-scroll span{opacity:.5;background:#fff;width:1px;height:2rem;display:block}@keyframes float{0%,to{transform:translate(-50%)translateY(0)}50%{transform:translate(-50%)translateY(8px)}}.story-section{padding:var(--section-pad) 0;background:var(--surface);text-align:center}.story-photo-card{aspect-ratio:3/2;background:linear-gradient(135deg, var(--champagne), var(--blush));border:4px solid #fff;border-radius:18px;width:min(100%,700px);margin:3rem auto 4.5rem;overflow:hidden;box-shadow:0 22px 52px #37486a29}.story-photo-card img{object-fit:cover;object-position:center;width:100%;height:100%;display:block}.timeline{flex-direction:column;gap:3rem;max-width:800px;margin-top:0;margin-left:auto;margin-right:auto;display:flex;position:relative}.timeline:before{content:"";background:linear-gradient(to bottom, transparent, var(--gold-light), var(--gold), var(--gold-light), transparent);width:1px;position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%)}.timeline-item{align-items:center;gap:3rem;display:flex;position:relative}.timeline-item:nth-child(2n){text-align:left;flex-direction:row-reverse}.timeline-item:nth-child(odd){text-align:right}.timeline-text{flex:1}.timeline-text h3{font-family:var(--font-display);color:var(--fg);margin-bottom:.35rem;font-size:1.5rem;font-weight:500}.timeline-text .date-tag{letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-bottom:.5rem;font-size:.7rem;font-weight:600}.timeline-text p{color:var(--muted);font-size:.95rem;line-height:1.6}.timeline-dot{z-index:1;background:var(--surface);border:2px solid var(--gold-light);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:72px;height:72px;font-size:1.8rem;display:flex;box-shadow:0 4px 20px #0000000a}.events-section{padding:var(--section-pad) 0;background:var(--champagne);text-align:center}.events-grid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:2.5rem;margin-top:2.5rem;display:grid}.event-card{background:var(--surface);border:1px solid var(--border);text-align:left;border-radius:16px;flex-direction:column;padding:1.65rem 2rem 2.1rem;transition:transform .25s,box-shadow .25s;display:flex;box-shadow:0 2px 20px #37486a0d,0 8px 40px #37486a08}.event-card:hover{transform:translateY(-4px);box-shadow:0 8px 32px #37486a1a}.event-icon{background:var(--sage-light);border-radius:14px;justify-content:center;align-items:center;width:52px;height:52px;margin-bottom:1.5rem;font-size:1.5rem;display:inline-flex}.event-card h3{font-family:var(--font-display);color:var(--fg);margin-bottom:1.25rem;font-size:1.65rem;font-weight:500;line-height:1.2}.event-detail{color:var(--muted);align-items:flex-start;gap:.75rem;margin-bottom:.85rem;font-size:.95rem;line-height:1.5;display:flex}.event-maps-btn{border:1.5px solid var(--fg);color:var(--fg);letter-spacing:.04em;cursor:pointer;font-size:.82rem;font-weight:600;font-family:var(--font-body);background:0 0;border-radius:999px;align-self:flex-start;align-items:center;gap:.5rem;margin-top:1rem;padding:.6rem 1.5rem;text-decoration:none;transition:all .25s;display:inline-flex}.event-maps-btn:hover{background:var(--fg);color:#fff}.rsvp-section{padding:var(--section-pad) 0;background:var(--surface);text-align:center}.rsvp-form{text-align:left;gap:1.5rem;max-width:620px;margin:2.5rem auto 0;display:grid}.form-group{margin-bottom:0}.form-group label{letter-spacing:.06em;text-transform:uppercase;color:var(--fg);margin-bottom:.5rem;font-size:.78rem;font-weight:600;display:block}.form-group input,.form-group select,.form-group textarea{width:100%;font-family:var(--font-body);border:1.5px solid var(--border);color:var(--fg);background:#dee3e76b;border-radius:12px;outline:none;padding:.85rem 1.1rem;font-size:.95rem;line-height:1.4;transition:border-color .25s,box-shadow .25s}.form-group input,.form-group select{height:3.25rem}.form-group select{appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--fg) 50%), linear-gradient(135deg, var(--fg) 50%, transparent 50%);background-position:calc(100% - 1.3rem),calc(100% - .95rem);background-repeat:no-repeat;background-size:.35rem .35rem;padding-right:2.75rem}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--gold);box-shadow:0 0 0 4px #79879b24}.form-group textarea{resize:vertical;min-height:110px}.form-row{grid-template-columns:1fr 1fr;gap:1.5rem;display:grid}.checkbox-group{align-items:center;gap:1.5rem;margin-top:.25rem;display:flex}.form-group .form-checkbox{letter-spacing:0;text-transform:none;width:auto;color:var(--fg);align-items:center;gap:.75rem;margin:0;font-size:.95rem;font-weight:400;display:flex}.form-group .form-checkbox input[type=checkbox]{width:18px;height:18px;accent-color:var(--gold);cursor:pointer;flex:none;margin:0}.checkbox-group[aria-disabled=true]{opacity:.45}.checkbox-group[aria-disabled=true] .form-checkbox,.checkbox-group[aria-disabled=true] input[type=checkbox]{cursor:not-allowed}.form-submit{background:var(--fg);color:#fff;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;width:100%;font-size:.9rem;font-weight:600;font-family:var(--font-body);border:none;border-radius:999px;margin-top:.5rem;padding:1rem;transition:background .25s;display:block}.form-submit:hover{background:#2f3d5a}.form-submit:disabled{opacity:.45;cursor:not-allowed}.form-submit:disabled:hover{background:var(--fg)}.form-error{color:#8c2f24;text-align:center;max-width:620px;margin:1rem auto 0;font-size:.95rem;display:none}.form-error.visible{display:block}.form-success{text-align:center;background:var(--sage-light);border-radius:16px;margin-top:2rem;padding:2rem;display:none}.form-success.visible{display:block}.form-success p{font-family:var(--font-display);color:var(--fg);font-size:1.3rem}.registry-section{padding:var(--section-pad) 0;background:var(--champagne);text-align:center;isolation:isolate;position:relative;overflow:hidden}.registry-bg{z-index:0;position:absolute;inset:0}.registry-bg img{object-fit:cover;object-position:center;width:100%;height:100%;display:block}.registry-overlay{z-index:1;background:linear-gradient(#f6f2ec66 0%,#dee3e766 45%,#a3b1ba66 100%);position:absolute;inset:0}.registry-section .container{z-index:2;position:relative}.registry-section .section-label,.registry-section .subtitle{color:#fff;text-shadow:0 5px 24px #000000d1,0 3px 12px #000000b8,0 1px 3px #000000ad}.registry-section h2{color:var(--fg);text-shadow:0 3px 12px #00000061,0 1px 4px #00000047}.registry-card{-webkit-backdrop-filter:blur(20px);text-align:left;background:#ffffff80;border:1px solid #ffffff4d;border-radius:16px;max-width:500px;margin:2rem auto 0;padding:2.5rem 2rem;box-shadow:0 4px 30px #0000001a}.registry-card h3{font-family:var(--font-display);color:var(--fg);margin-bottom:.75rem;font-size:1.4rem;font-weight:500}.registry-card .registry-text{color:#4f5f78;margin-bottom:1.25rem;font-size:.95rem;line-height:1.7}.iban-display{background:var(--champagne);letter-spacing:.04em;color:var(--fg);word-break:break-all;border-radius:12px;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.25rem;font-family:SF Mono,Fira Code,monospace;font-size:.82rem;display:flex}.iban-display span{white-space:nowrap;min-width:0}.copy-btn{cursor:pointer;letter-spacing:.06em;text-transform:uppercase;color:var(--gold);white-space:nowrap;text-align:right;min-width:7.5ch;font-size:.8rem;font-weight:600;font-family:var(--font-body);background:0 0;border:none;transition:color .2s}.copy-btn:hover{color:#2f3d5a}.footer{text-align:center;background:var(--fg);color:#fff9;padding:4rem 2rem;font-size:.82rem}.footer-names{font-family:var(--font-display);color:#fff;margin-bottom:.5rem;font-size:1.5rem}.footer-heart{color:var(--blush-deep);margin:0 .25rem;animation:1.2s ease-in-out infinite heartbeat;display:inline-block}@keyframes heartbeat{0%,to{transform:scale(1)}15%{transform:scale(1.25)}30%{transform:scale(1)}45%{transform:scale(1.15)}60%{transform:scale(1)}}.admin-page{background:var(--champagne);min-height:100vh}.admin-shell{width:min(1180px,100% - 2rem);margin:0 auto;padding:clamp(2rem,5vw,4rem) 0}.admin-hero{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-end;gap:2rem;padding-bottom:2rem;display:flex}.admin-hero h1{font-family:var(--font-display);margin-bottom:.75rem;font-size:clamp(2.75rem,7vw,5rem);font-weight:500;line-height:1.05}.admin-hero p{color:var(--muted);max-width:560px}.admin-auth{flex-wrap:wrap;justify-content:flex-end;align-items:flex-end;gap:.75rem;display:flex}.admin-auth p{color:var(--muted);font-size:.9rem}.admin-login-form{flex-wrap:wrap;justify-content:flex-end;align-items:flex-end;gap:.75rem;display:flex}.admin-login-form[hidden]{display:none}.admin-login-form label{display:block}.admin-login-form span{color:var(--fg);letter-spacing:.08em;text-transform:uppercase;margin-bottom:.35rem;font-size:.72rem;font-weight:600;display:block}.admin-login-form input{background:var(--surface);border:1.5px solid var(--border);width:190px;color:var(--fg);font:inherit;border-radius:12px;outline:none;padding:.78rem .9rem}.admin-login-form input:focus{border-color:var(--gold);box-shadow:0 0 0 4px #79879b24}.admin-button{background:var(--fg);color:#fff;cursor:pointer;font-family:var(--font-body);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;border:none;border-radius:999px;padding:.8rem 1.35rem;font-size:.82rem;font-weight:600;transition:background .25s,opacity .25s}.admin-button:hover{background:#2f3d5a}.admin-button:disabled{cursor:not-allowed;opacity:.45}.admin-button-secondary{border:1.5px solid var(--fg);color:var(--fg);background:0 0}.admin-button-secondary:hover{background:var(--fg);color:#fff}.admin-panel,.admin-dashboard{margin-top:2rem}.admin-panel{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:2rem}.admin-panel h2{margin-bottom:.75rem;font-size:2rem}.admin-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;display:grid}.admin-stat{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:1.25rem}.admin-stat span{color:var(--muted);letter-spacing:.12em;text-transform:uppercase;font-size:.75rem;font-weight:600;display:block}.admin-stat strong{font-family:var(--font-display);margin-top:.6rem;font-size:2.5rem;font-weight:600;line-height:1;display:block}.admin-toolbar{justify-content:space-between;align-items:flex-end;gap:1rem;margin-top:1.5rem;display:flex}.admin-search{flex:1;max-width:520px}.admin-search span{color:var(--fg);letter-spacing:.06em;text-transform:uppercase;margin-bottom:.5rem;font-size:.78rem;font-weight:600;display:block}.admin-search input{background:var(--surface);border:1.5px solid var(--border);width:100%;color:var(--fg);font:inherit;border-radius:12px;outline:none;padding:.85rem 1rem}.admin-search input:focus{border-color:var(--gold);box-shadow:0 0 0 4px #79879b24}.admin-actions{flex-wrap:wrap;justify-content:flex-end;gap:.75rem;display:flex}.admin-status{color:var(--muted);margin:1rem 0;font-size:.9rem}.admin-table-wrap{background:var(--surface);border:1px solid var(--border);border-radius:8px;overflow-x:auto}.admin-table{border-collapse:collapse;width:100%;min-width:920px}.admin-table th,.admin-table td{border-bottom:1px solid var(--border);text-align:left;vertical-align:top;padding:.9rem 1rem}.admin-table th{background:var(--bg);color:var(--muted);letter-spacing:.1em;text-transform:uppercase;font-size:.72rem;font-weight:600}.admin-table td{color:var(--fg);font-size:.9rem;line-height:1.45}.admin-table tr:last-child td{border-bottom:none}@media (width<=900px){.nav-links{display:none}.nav{gap:1rem}.nav-actions{margin-left:auto}.nav-mobile-toggle{display:block}.nav.open .nav-links{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);background:#dee3e7f5;flex-direction:column;gap:1.5rem;padding:2rem;display:flex;position:absolute;top:100%;left:0;right:0}.timeline:before{left:24px}.story-photo-card{aspect-ratio:4/3;border-radius:14px;margin:2.5rem auto 3.5rem}.timeline-item,.timeline-item:nth-child(2n),.timeline-item:nth-child(odd){text-align:left;flex-direction:row;gap:1.5rem}.timeline-dot{flex-shrink:0;width:48px;height:48px;font-size:1.2rem}.form-row{grid-template-columns:1fr}.admin-hero,.admin-toolbar{flex-direction:column;align-items:stretch}.admin-auth,.admin-login-form,.admin-actions{justify-content:flex-start}.admin-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=600px){.nav{min-height:4rem;padding:1rem}.nav-logo{width:1.75rem;max-width:1.75rem;height:1.75rem}.nav-logo img{width:1.75rem!important;max-width:1.75rem!important;height:1.75rem!important;max-height:1.75rem!important}.nav-rsvp-btn{display:none}.language-link{min-width:1.8rem;padding:.22rem .38rem}.hero-names{font-size:2.75rem}.events-grid{grid-template-columns:1fr}.event-card{padding:1.35rem 1.35rem 1.65rem}.rsvp-form{margin-top:2rem}.rsvp-section .container{padding:0 1.25rem}.registry-card{padding:2rem 1.25rem}.iban-display{letter-spacing:.01em;gap:.6rem;padding:.85rem .8rem;font-size:.66rem}.copy-btn{min-width:7ch;font-size:.72rem}.admin-stats{grid-template-columns:1fr}.admin-login-form,.admin-login-form label,.admin-login-form input,.admin-button,.admin-actions{width:100%}}
