*{box-sizing:border-box}html{scroll-behavior:smooth}:root{--ink:#111;--cream:#f6f1e8;--champ:#d8c3a7;--white:#fff;--line:#d9d1c6;--muted:#6e675e;--max:1140px}body{margin:0;font-family:Arial,sans-serif;color:var(--ink);background:#fff;line-height:1.6}h1,h2,h3,.brand{font-family:Georgia,"Times New Roman",serif;font-weight:400}a{color:inherit}.hero{min-height:96vh;color:#fff;background:linear-gradient(rgba(0,0,0,.28),rgba(0,0,0,.64)),url("/assets/photos/couple.jpg") center 27%/cover no-repeat;display:flex;flex-direction:column}.nav{width:min(var(--max),calc(100% - 36px));margin:0 auto;display:flex;justify-content:space-between;align-items:center;padding:24px 0}.brand{text-decoration:none;font-size:1.25rem}.nav-links{display:flex;gap:23px}.nav-links a{text-decoration:none;text-transform:uppercase;letter-spacing:.12em;font-size:.72rem}.menu-btn{display:none;background:none;color:inherit;border:1px solid currentColor;padding:8px 12px}.hero-copy{margin:auto;width:min(820px,calc(100% - 36px));text-align:center;padding:80px 0 110px}.kicker,.eyebrow{text-transform:uppercase;letter-spacing:.22em;font-size:.7rem;font-weight:700}.hero h1{font-size:clamp(4rem,10vw,8rem);line-height:.92;margin:12px 0}.tagline{font-family:Georgia,serif;font-size:clamp(1rem,2vw,1.35rem)}.hero-date{letter-spacing:.18em;text-transform:uppercase;font-size:.8rem;margin:0 0 32px}.button{display:inline-block;padding:13px 24px;border:1px solid currentColor;text-decoration:none;text-transform:uppercase;letter-spacing:.12em;font-size:.72rem;font-weight:700;background:transparent;cursor:pointer}.button.light:hover{background:#fff;color:#111}.button.dark{background:#111;color:#fff}.section{padding:100px 18px}.cream{background:var(--cream)}.wide{width:min(var(--max),100%);margin:auto}.narrow{max-width:760px;margin:auto;text-align:center}.section h2{font-size:clamp(2.4rem,5vw,4.4rem);line-height:1.06;margin:10px 0 25px}.section p{font-size:1.05rem}blockquote{font-family:Georgia,serif;font-size:1.4rem;font-style:italic;margin:42px 0 0}blockquote span{display:block;font-family:Arial,sans-serif;font-size:.72rem;margin-top:8px;text-transform:uppercase;letter-spacing:.12em}.event-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:45px}.event-card{padding:48px;min-height:390px;display:flex;flex-direction:column;justify-content:center}.event-card.champagne{background:var(--champ)}.event-card.black{background:#111;color:#fff}.event-type{text-transform:uppercase;letter-spacing:.18em;font-size:.7rem!important}.event-card h3{font-size:2.4rem;margin:12px 0 0}.event-time{font-weight:700}.small{font-size:.85rem!important}.text-link{text-underline-offset:5px}.center{text-align:center}.muted-text{color:var(--muted)}.gallery{display:grid;grid-template-columns:1.15fr .85fr .85fr;gap:16px;margin-top:34px}.photo{border:0;padding:0;background:#ddd;aspect-ratio:4/5;overflow:hidden;cursor:pointer}.photo.featured{aspect-ratio:3/4}.photo img{width:100%;height:100%;object-fit:cover;display:block;filter:grayscale(1);transition:.4s}.photo:hover img,.photo.color img{filter:grayscale(0);transform:scale(1.015)}.gift-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:35px}.gift-card{border:1px solid var(--line);padding:28px;background:#fff;display:flex;flex-direction:column;gap:8px}.gift-card span{text-transform:uppercase;letter-spacing:.16em;font-size:.7rem}.copy-btn{border:0;background:none;text-decoration:underline;cursor:pointer}.guest-cta{background:#111;color:#fff}footer{background:#090909;color:#fff;text-align:center;padding:42px;display:flex;flex-direction:column}.portal-bg,.admin-bg{background:var(--cream)}.portal-header{background:#111;color:#fff;padding:22px max(18px,calc((100% - 1100px)/2));display:flex;justify-content:space-between;align-items:center}.portal-header span{text-transform:uppercase;letter-spacing:.14em;font-size:.68rem}.portal-shell{padding:55px 18px}.portal-card{max-width:720px;margin:auto;background:#fff;border:1px solid var(--line);padding:clamp(28px,6vw,60px)}.portal-card h1,.admin-heading h1{font-size:clamp(2.6rem,6vw,4.2rem);margin:8px 0}.portal-card form,.admin-card form{display:grid;gap:18px;margin-top:30px}.portal-card label,.admin-card label,.portal-card legend{font-size:.82rem;font-weight:700}.portal-card input,.portal-card select,.portal-card textarea,.admin-card input,.admin-card textarea{width:100%;display:block;margin-top:7px;padding:12px;border:1px solid #aaa;font:1rem Arial,sans-serif}.portal-card fieldset{border:1px solid var(--line)}.choice{display:block;margin:8px 0;font-weight:400!important}.choice input{display:inline;width:auto;margin:0 7px 0 0}.full{width:100%}.status{font-size:.9rem;color:#8c1f1f}.status.success{color:#176b37}.honeypot{position:absolute;left:-9999px}.admin-shell{padding:45px 18px}.admin-panel{max-width:1200px;margin:auto}.admin-heading{display:flex;justify-content:space-between;align-items:center}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:24px 0}.metrics div,.admin-card{background:#fff;border:1px solid var(--line);padding:24px}.metrics strong{display:block;font-family:Georgia,serif;font-size:2.2rem}.metrics span{text-transform:uppercase;letter-spacing:.12em;font-size:.68rem}.admin-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:18px}.admin-card{margin-bottom:18px}.admin-card h2{font-size:1.7rem}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:.82rem}th,td{text-align:left;padding:10px;border-bottom:1px solid var(--line);white-space:nowrap}@media(max-width:800px){.menu-btn{display:block}.nav{position:relative}.nav-links{display:none;position:absolute;right:0;top:70px;background:#111;padding:20px;flex-direction:column;min-width:190px}.nav-links.open{display:flex}.event-grid,.gift-grid,.admin-grid{grid-template-columns:1fr}.gallery{grid-template-columns:1fr}.section{padding:72px 18px}.metrics{grid-template-columns:1fr 1fr}.event-card{padding:34px}.portal-header{gap:12px}.portal-header span{font-size:.58rem}}.ticket-card{text-align:center}.qr{width:min(320px,100%);display:block;margin:20px auto}.code-display{font-family:Georgia,serif;font-size:2.4rem;letter-spacing:.12em;margin:12px}.ticket-card textarea,#message,.admin-card #searchBox{width:100%;padding:12px;border:1px solid #aaa;font:1rem Arial,sans-serif}.checkin-result{margin-top:24px}#video{width:100%;margin-top:16px;border:1px solid var(--line)}.seat-input{min-width:150px;padding:7px;border:1px solid #aaa}
