:root{--paper:#f6eee7;--ink:#49383c;--muted:#715b60;--gold:#8a625d;--line:#cfb4ac}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:95px}body{background:var(--paper);color:var(--ink);margin:0;font-family:Arial,sans-serif;font-size:15px;line-height:1.7}a{color:inherit}button{font:inherit}a,button{-webkit-tap-highlight-color:transparent}:is(a:focus-visible,button:focus-visible,summary:focus-visible){outline:2px solid var(--gold);outline-offset:5px}.skip{background:var(--paper);padding:10px;position:absolute;top:-100px}.skip:focus{z-index:10;top:0}header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;height:92px;padding:0 6%;display:flex}.brand{letter-spacing:2px;font-family:Georgia,serif;font-size:26px;text-decoration:none}.brand span{color:var(--gold);font-style:italic}nav{align-items:center;gap:32px;display:flex}nav a{letter-spacing:1.5px;text-transform:uppercase;font-size:11px;text-decoration:none}nav a:hover{color:var(--gold)}.navcta{border:1px solid var(--line);padding:10px 17px}.hero{text-align:center;justify-content:center;align-items:center;min-height:790px;padding:70px 20px 54px;display:flex;position:relative;overflow:hidden}.arch{pointer-events:none;border:1px solid #9d7f81;border-radius:50% 50% 0 0;width:650px;height:700px;position:absolute;top:48px;left:50%;transform:translate(-50%)}.arch:after{content:"";border-radius:inherit;border:1px solid #d1b29b;position:absolute;inset:12px}.hero-inner{z-index:1;position:relative}.eyebrow{text-transform:uppercase;letter-spacing:3px;color:var(--muted);margin:0 0 30px;font-size:10px}.hero h1{letter-spacing:-3px;margin:0;font-family:Georgia,serif;font-size:clamp(59px,7.8vw,105px);font-weight:400;line-height:1.03}.surname{text-transform:uppercase;letter-spacing:5px;margin-top:15px;font-family:Arial,sans-serif;font-size:11px;display:block}.amp{color:var(--gold);margin:9px 0;font:italic 61px Georgia,serif;display:block}.date{letter-spacing:3px;text-transform:uppercase;margin:36px 0 5px;font-size:12px}.city{margin:0 0 29px;font-family:Georgia,serif;font-size:20px;font-style:italic}.button{background:var(--ink);color:var(--paper);border:1px solid var(--ink);letter-spacing:1.3px;text-transform:uppercase;cursor:pointer;justify-content:center;align-items:center;gap:24px;padding:14px 24px;font-size:11px;text-decoration:none;transition:background .2s;display:inline-flex}.button:hover{background:#684d54}.button.secondary{color:var(--ink);border-color:var(--line);background:0 0}.button.secondary:hover{background:#e1d6c6}.botanical{color:#9d7f81;opacity:.7;width:290px;height:570px;position:absolute;bottom:5px;left:-35px;transform:rotate(8deg)}.botanical.right{left:auto;right:-35px;transform:scaleX(-1)rotate(8deg)}.hero-note{letter-spacing:2px;text-transform:uppercase;color:var(--muted);font-size:9px;position:absolute;bottom:20px;left:0;right:0}.intro{text-align:center;background:#e1d6c6;padding:95px 20px 85px}.small-flower{color:var(--gold);font-size:24px}.intro h2,.section-title{letter-spacing:-1px;margin:20px 0;font:clamp(32px,4vw,48px)/1.2 Georgia,serif}.intro p{max-width:490px;color:var(--muted);margin:0 auto;font-size:14px}.countdown{justify-content:center;gap:40px;margin-top:35px;display:flex}.countdown div{min-width:65px}.countdown strong{font:36px Georgia,serif;display:block}.countdown span{letter-spacing:2px;text-transform:uppercase;font-size:9px}.section{max-width:1100px;margin:auto;padding:95px 40px}.section-head{text-align:center;margin-bottom:50px}.section-head .eyebrow{margin-bottom:12px}.section-head p{color:var(--muted);font-size:13px}.events{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:1fr 1fr;display:grid}.event{text-align:center;padding:43px}.event+.event{border-left:1px solid var(--line)}.number{color:var(--gold);font:italic 21px Georgia,serif}.event h3{margin:15px 0;font:31px Georgia,serif}.event p{color:var(--muted);margin:5px 0;font-size:13px}.tag{letter-spacing:1.5px;text-transform:uppercase;border:1px solid var(--line);margin-top:18px;padding:5px 12px;font-size:9px;display:inline-block}.location{border-top:1px solid var(--line);grid-template-columns:1fr 1fr;align-items:center;gap:65px;display:grid}.location .eyebrow{margin-bottom:15px}.location p{color:var(--muted);font-size:14px}.city-art{background:#cdaa9f;border-radius:150px 150px 0 0;justify-content:center;align-items:center;height:310px;display:flex;position:relative;overflow:hidden}.city-art svg{color:#715b60;width:95%}.city-art span{letter-spacing:5px;font-size:10px;position:absolute;bottom:20px}.faq{max-width:760px;padding-top:20px}.faq .section-title{text-align:center;margin-bottom:35px}details{border-top:1px solid var(--line);padding:20px 0}details:last-child{border-bottom:1px solid var(--line)}summary{cursor:pointer;justify-content:space-between;gap:20px;font-size:14px;list-style:none;display:flex}summary::-webkit-details-marker{display:none}summary:after{content:"+";color:var(--gold)}details[open] summary:after{content:"−"}details p{color:var(--muted);max-width:570px;font-size:13px}.rsvp{background:var(--ink);color:var(--paper);text-align:center;padding:75px 20px}.rsvp .eyebrow{color:#e1d6c6;margin-bottom:15px}.rsvp h2{margin:15px 0;font:clamp(35px,5vw,53px) Georgia,serif}.rsvp p{color:#f6eee7;max-width:470px;margin:20px auto;font-size:13px}.rsvp .status{letter-spacing:1.5px;border:1px solid #d1b29b;padding:10px 18px;font-size:10px;display:inline-block}footer{text-align:center;padding:40px 20px}footer .brand{font-size:23px}footer p{letter-spacing:2px;color:var(--muted);text-transform:uppercase;font-size:9px}.notice{color:var(--muted);text-align:center;margin:22px 0 0;font-size:11px}.sr-only{clip:rect(0,0,0,0);width:1px;height:1px;position:absolute;overflow:hidden}@media (min-width:1500px){.botanical{left:8%}.botanical.right{right:8%}}@media (max-width:700px){header{height:76px;padding:0 23px}nav{gap:17px}nav a{letter-spacing:.7px;font-size:9px}nav a:nth-child(2){display:none}.navcta{padding:8px 10px}.brand{font-size:22px}.hero{min-height:735px;padding-top:65px}.arch{width:calc(100% - 42px);height:642px;top:35px}.hero h1{font-size:64px}.amp{font-size:48px}.surname{font-size:10px}.eyebrow{letter-spacing:2px;font-size:9px}.botanical{opacity:.45;width:160px;height:350px;bottom:0;left:-80px}.botanical.right{right:-80px}.intro{padding:65px 25px}.countdown{gap:18px}.countdown strong{font-size:31px}.countdown div{min-width:52px}.section{padding:65px 24px}.events{grid-template-columns:1fr}.event{padding:32px 20px}.event+.event{border-left:0;border-top:1px solid var(--line)}.location{grid-template-columns:1fr;gap:35px}.city-art{order:-1;width:100%;max-width:350px;height:230px;margin:auto}.section-head{margin-bottom:35px}.date{letter-spacing:2px;font-size:10px}.hero-note{font-size:8px}.rsvp{padding:65px 25px}.faq{padding-top:0}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}:root{--dusty-rose:#cfb4ac;--vintage-mauve:#9d7f81;--english-rose:#cdaa9f;--champagne:#e1d6c6;--rose-gold:#d1b29b}header{background:var(--champagne)}.hero{background:radial-gradient(ellipse at 15% 80%,#cfb4ac70,transparent 50%),radial-gradient(ellipse at 85% 15%,#cdaa9f60,transparent 50%),var(--paper)}.hero-inner{width:min(100%,720px)}.hero h1{letter-spacing:-2px;font-size:clamp(40px,5.8vw,77px);line-height:1.08}.given-name{white-space:nowrap;display:block}.arch{width:min(780px,100% - 60px)}.events{background:#e1d6c635}.event .event-time{color:var(--ink);margin:20px 0 6px;font:32px Georgia,serif}.event .tag{background:var(--rose-gold);border-color:var(--rose-gold);color:var(--ink)}address{color:var(--ink);margin:20px 0;font-size:16px;font-style:normal;line-height:1.8}.rsvp{border-top:8px solid var(--vintage-mauve);background:linear-gradient(135deg,#6f515b,#49383c)}footer{border-top:5px solid var(--rose-gold)}@media (max-width:700px){.hero h1{letter-spacing:-1.2px;font-size:clamp(33px,8.8vw,58px)}.hero{min-height:710px}.arch{width:calc(100% - 32px);height:625px}.surname{letter-spacing:4px}.city{font-size:18px}.amp{margin:17px 0}.countdown{gap:12px}.event .event-time{font-size:30px}footer p{max-width:320px;margin:15px auto}}.arch-ornament{pointer-events:none;width:calc(100% + 120px);height:calc(100% + 110px);display:block;position:absolute;top:-55px;left:-60px}.arch-ornament img{width:100%;height:100%;display:block}.botanical{opacity:.38}@media (max-width:700px){.arch-ornament{width:calc(100% + 44px);height:calc(100% + 70px);top:-35px;left:-22px}.botanical{opacity:.2}}.hanging-decor{pointer-events:none;opacity:.85;z-index:0;width:230px;height:auto;position:absolute;top:0}.hanging-left{left:-3px}.hanging-right{right:-3px;transform:scaleX(-1)}@media (min-width:1500px){.hanging-left{left:calc(8% + 30px)}.hanging-right{right:calc(8% + 30px)}}@media (max-width:1000px) and (min-width:701px){.hanging-decor{opacity:.65;width:150px}.hanging-left{left:-22px}.hanging-right{right:-22px}}@media (max-width:700px){.hanging-decor{opacity:.82;width:100px}.hanging-left{left:-12px}.hanging-right{right:-12px}}.light-button{background:var(--paper);color:var(--ink);border-color:var(--paper)}.light-button:hover{background:var(--champagne)}[hidden]{display:none!important}dialog{border:1px solid var(--line);background:var(--paper);color:var(--ink);border-radius:8px;width:min(680px,100% - 28px);max-height:90dvh;padding:44px;overflow:auto;box-shadow:0 24px 100px #49383c40}dialog::backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#38282fcc}dialog h2,.place-heading{margin:15px 0 20px;font:34px/1.2 Georgia,serif}dialog p{font-size:14px}dialog .eyebrow{margin-bottom:10px}.dialog-close{color:var(--ink);cursor:pointer;background:0 0;border:0;font-size:30px;position:absolute;top:10px;right:15px}.guest-fieldset{border:1px solid var(--line);margin:22px 0;padding:20px}.guest-fieldset legend{padding:0 8px;font:22px Georgia,serif}.form-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.form-grid label{gap:5px;font-size:12px;display:grid}.form-grid .wide{grid-column:1/-1}input,select{width:100%;font:inherit;border:1px solid var(--line);color:var(--ink);background:#fffaf5;border-radius:4px;padding:11px 12px;font-size:15px}input:focus,select:focus{outline:2px solid var(--gold);outline-offset:2px}.consent{align-items:flex-start;gap:12px;margin:25px 0;font-size:12px;display:flex}.consent input{width:18px;min-width:18px;accent-color:var(--ink);margin-top:5px}.text-button{color:var(--ink);cursor:pointer;background:0 0;border:0;padding:5px 0;text-decoration:underline}.remove-guest{float:right;font-size:11px}.form-help{color:var(--muted);font-size:12px!important}.error-message{color:#8b323d;font-size:13px}.success-message{color:#38604a}.action-row{flex-wrap:wrap;gap:12px;display:flex}.honeypot{width:1px;height:1px;position:absolute;left:-9999px;overflow:hidden}button:disabled{opacity:.5;cursor:wait}.admin-footer-link{letter-spacing:0;text-transform:none;font-size:11px}.room-map{border:1px solid var(--line);background:#e1d6c640;border-radius:9px;width:100%;min-height:250px;margin-bottom:22px;position:relative;overflow:hidden}.room-map svg{width:100%;max-height:520px;display:block}.empty-state{text-align:center;color:var(--muted);padding:70px 25px;font:22px/1.6 Georgia,serif}.seating-section{text-align:center}.place-card{max-width:760px;margin:60px auto;padding:30px}.place-card .room-map{margin:30px 0}.personal-table{background:var(--champagne);text-align:center;border-radius:6px;margin:25px 0;padding:25px;font:32px Georgia,serif}.guest-map-name{fill:var(--ink);font-family:Arial,sans-serif}@media (max-width:700px){dialog{padding:35px 22px}.form-grid{grid-template-columns:1fr}.form-grid .wide{grid-column:auto}dialog h2{font-size:29px}.guest-fieldset{padding:16px}.room-map{min-height:200px}.place-card{margin:25px auto;padding:24px}.action-row .button{width:100%}}.admin-shell{max-width:1280px;margin:auto;padding:35px}.admin-header{border:0;gap:20px;height:auto;margin:20px 0 30px;padding:0}.admin-header .eyebrow{margin:0}.admin-header h1{margin:12px 0;font:40px Georgia,serif}.admin-status{border:1px solid var(--line);border-radius:4px;min-height:45px;margin:15px 0;padding:12px 16px}.admin-stats{grid-template-columns:repeat(4,1fr);gap:14px;display:grid}.stat-box{background:var(--champagne);border-radius:5px;padding:25px}.stat-box strong{font:35px Georgia,serif;display:block}.stat-box span{font-size:12px}.admin-tabs{gap:22px;padding:25px 0;display:flex}.admin-tabs a{font-size:13px}.admin-section{border-top:1px solid var(--line);padding:35px 0}.admin-section h2{margin:10px 0 25px;font:30px Georgia,serif}.admin-section h3{margin:12px 0;font:23px Georgia,serif}.admin-section-head{justify-content:space-between;align-items:center;gap:15px;display:flex}.admin-section label{gap:6px;margin:12px 0;font-size:12px;display:grid}.admin-table-wrap{margin:20px 0;overflow:auto}table{border-collapse:collapse;text-align:left;width:100%;font-size:12px}th,td{border-bottom:1px solid var(--line);vertical-align:top;padding:14px 12px}th{color:var(--muted);background:#e1d6c660;font-weight:400}td select{min-width:140px;padding:8px;font-size:12px}td small{color:var(--muted)}.admin-columns{grid-template-columns:330px 1fr;gap:35px;display:grid}.table-pill{border:1px solid var(--line);cursor:pointer;color:var(--ink);background:0 0;border-radius:4px;margin:5px;padding:10px 14px}.table-pill:hover{background:var(--champagne)}.publish-panel{background:#e1d6c660;justify-content:space-between;align-items:center;gap:25px;margin:22px 0;padding:20px;display:flex}.publish-panel p{max-width:650px}.publish-panel button{min-width:160px}.badge{white-space:nowrap;background:#e1d6c6;border-radius:3px;padding:4px 8px;font-size:11px}.badge.sent{background:#d7e4d8}.badge.failed,.badge.review{background:#edc9cd}@media (max-width:760px){.admin-shell{padding:20px}.admin-header{display:block}.admin-header .button{margin-top:15px}.admin-header h1{font-size:32px}.admin-stats{grid-template-columns:1fr 1fr}.admin-columns{grid-template-columns:1fr}.admin-section-head,.publish-panel{display:block}.admin-tabs{gap:15px}.admin-section-head .button{margin-bottom:12px}.publish-panel button{margin-top:10px}}.admin-login{max-width:580px}.admin-login form{text-align:left;margin-top:28px}.admin-login label{gap:9px;display:grid}.admin-login input{box-sizing:border-box;color:#49383c;width:100%;font:inherit;background:#fffaf7;border:1px solid #cdaa9f;border-radius:8px;padding:14px}.admin-login input:focus-visible{outline-offset:3px;outline:2px solid #9d7f81}.admin-login button{width:100%}.nav-admin{border:1px solid #cdaa9f;border-radius:30px;padding:8px 15px!important;font-size:12px!important}@media (max-width:600px){header nav{flex-wrap:wrap;justify-content:flex-end;gap:10px}.nav-admin{padding:6px 10px!important}}.music-control{left:20px;bottom:calc(20px + env(safe-area-inset-bottom,0px));z-index:30;color:#49383c;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);cursor:pointer;background:#fffaf7ed;border:1px solid #cdaa9f;border-radius:40px;align-items:center;gap:10px;padding:12px 17px;font-size:12px;line-height:1.4;display:flex;position:fixed;box-shadow:0 4px 20px #49383c16}.music-control:hover{background:#e1d6c6}.music-control svg{flex-shrink:0}.music-control[aria-pressed=true]{border-color:#9d7f81}@media (max-width:600px){.music-control{left:12px;bottom:calc(12px + env(safe-area-inset-bottom,0px));padding:11px 13px;font-size:11px}}.delete-invitation{color:#893d48;cursor:pointer;font:inherit;background:0 0;border:1px solid #b98f93;border-radius:6px;padding:7px 11px;font-size:12px}.delete-invitation:hover{background:#f4dfe1}.delete-dialog{color:#49383c;background:#fffaf7;border:1px solid #cdaa9f;border-radius:16px;width:calc(100% - 32px);max-width:560px;padding:30px;box-shadow:0 15px 70px #49383c33}.delete-dialog::backdrop{background:#30212888}.delete-dialog h2{font-family:Georgia,serif;font-size:30px;font-weight:400;line-height:1.2}.delete-dialog .action-row{justify-content:flex-end;margin-top:25px}.danger-button{color:#fff!important;background:#893d48!important;border-color:#893d48!important}#delete-invitation-person{overflow-wrap:anywhere;font-weight:700}.manual-guest-form{gap:16px;max-width:680px;display:grid}.manual-guest-form .form-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}.manual-guest-form .consent{align-items:flex-start;gap:10px;display:flex}.manual-guest-form .consent input{width:auto;min-width:18px;margin-top:5px}.manual-guest-form .consent span{font-size:14px}.manual-guest-form .form-help{margin:0}.manual-guest-form button{justify-self:start}#manual-guest-status:empty{display:none}@media (max-width:600px){.manual-guest-form .form-grid{grid-template-columns:1fr}}
