:root { --ink:#344052; --paper:#fffdf8; --blue:#94cce7; --blue-deep:#4b98c5; --pink:#eda9b9; --pink-deep:#d96587; --gold:#c99c47; --line:#eadbbd; --serif:'Playfair Display', Georgia, serif; --sans:'DM Sans', Arial, sans-serif; --script:'Parisienne', cursive; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); font-family:var(--sans); background:linear-gradient(115deg,#f6edf0 0%,#fffdf8 37%,#eff7fb 100%); }
body::before { content:''; position:fixed; inset:0; pointer-events:none; opacity:.42; background-image:radial-gradient(rgba(120,90,55,.13) .65px,transparent .65px); background-size:5px 5px; mix-blend-mode:multiply; }
main { position:relative; width:min(1120px,calc(100% - 32px)); margin:0 auto; padding:34px 0 64px; }
.hero { position:relative; min-height:625px; overflow:hidden; border:1px solid rgba(201,156,71,.38); border-radius:8px; background:#fffdf8; box-shadow:0 24px 60px rgba(82,84,105,.16); }
.hero-art { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; }
.hero::after { content:''; position:absolute; inset:0; background:linear-gradient(90deg,rgba(255,253,248,.83) 0%,rgba(255,253,248,.66) 40%,rgba(255,253,248,.08) 75%); }
.hero-copy { position:relative; z-index:1; width:min(61%,660px); padding:88px 0 70px 8.5%; }
.eyebrow { margin:0 0 13px; color:var(--gold); font-size:.72rem; font-weight:700; letter-spacing:.09em; text-transform:uppercase; }
h1,h2,h3,p { margin-top:0; } h1,h2 { font-family:var(--serif); font-weight:600; }
h1 { max-width:540px; margin-bottom:9px; color:var(--pink-deep); font-size:clamp(3.7rem,7.1vw,6.65rem); letter-spacing:0; line-height:.88; }
h1 span { display:block; margin-top:10px; color:var(--blue-deep); font-size:.62em; }
.hero-question { display:inline-block; margin:22px 0 19px; padding:6px 19px 10px; border-bottom:1px solid var(--gold); color:var(--ink); font-family:var(--script); font-size:clamp(3rem,5.3vw,4.7rem); line-height:1; }
.hero-intro { max-width:410px; margin-bottom:29px; font-size:1.08rem; line-height:1.7; }
.scroll-link, .event-strip a { color:var(--ink); font-weight:700; text-decoration:none; }
.scroll-link { display:inline-flex; align-items:center; gap:9px; padding-bottom:5px; border-bottom:2px solid var(--pink); }
.scroll-link::after { content:'↓'; color:var(--pink-deep); font-size:1.2rem; }
.event-strip { display:grid; grid-template-columns:1fr 1fr 1fr; gap:0; margin:20px 0 0; border:1px solid var(--line); border-radius:8px; background:rgba(255,253,248,.88); box-shadow:0 14px 28px rgba(82,84,105,.07); }
.event-strip article { min-height:122px; padding:25px 28px; border-right:1px solid var(--line); } .event-strip article:last-child { border:0; }
.event-strip span { display:block; margin-bottom:8px; color:var(--gold); font-size:.72rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.event-strip strong { display:block; font-size:1.05rem; line-height:1.35; } .event-strip a { display:inline-block; margin-top:8px; color:var(--blue-deep); font-size:.9rem; }
.countdown { display:grid; grid-template-columns:.9fr 1.4fr; gap:45px; align-items:end; margin-top:20px; padding:32px 42px; border-bottom:1px solid var(--line); background:rgba(255,255,255,.42); }
.countdown h2, .gift-section h2, .rsvp h2 { margin-bottom:0; font-size:clamp(1.9rem,3.3vw,3.05rem); line-height:1.1; }
.countdown-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:11px; }
.countdown-grid div { padding:14px 7px 12px; border:1px solid var(--line); border-radius:5px; background:#fffdfa; text-align:center; }
.countdown-grid strong { display:block; font-family:var(--serif); font-size:2.5rem; line-height:1; }.countdown-grid span { color:#697283; font-size:.76rem; font-weight:700; }
.gift-section { margin-top:52px; padding:0 7.5%; text-align:center; }.gift-section h2 { margin-bottom:28px; }
.gift-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; text-align:left; }
.gift { position:relative; min-height:132px; padding:30px 32px 24px; overflow:hidden; border:1px solid var(--line); border-radius:7px; background:#fffdfa; }.gift::before { content:'♥'; position:absolute; top:18px; right:26px; color:var(--gold); font-size:1.25rem; }.gift.boy { background:linear-gradient(135deg,rgba(217,241,252,.85),#fffdfa 74%); }.gift.girl { background:linear-gradient(135deg,rgba(255,228,234,.9),#fffdfa 74%); }
.gift span { display:block; margin-bottom:9px; font-size:1rem; }.gift strong { font-family:var(--serif); font-size:1.35rem; }
.rsvp { display:grid; grid-template-columns:.82fr 1fr; gap:64px; margin-top:52px; padding:55px 7.5%; border:1px solid var(--line); border-radius:8px; background:rgba(255,253,248,.85); box-shadow:0 18px 46px rgba(82,84,105,.1); }.rsvp-heading>p:last-child { max-width:340px; margin:18px 0 0; color:#6b7280; line-height:1.65; }.rsvp-form { display:grid; gap:18px; }.rsvp-form label,.rsvp-form fieldset { display:grid; gap:8px; color:#4e5969; font-size:.9rem; font-weight:700; }.rsvp-form fieldset { margin:0; padding:0; border:0; }.rsvp-form legend { margin-bottom:8px; }
input { width:100%; min-height:51px; padding:0 14px; border:1px solid #d6dfdf; border-radius:4px; outline:none; background:#fff; color:var(--ink); font:inherit; } input:focus { border-color:var(--blue-deep); box-shadow:0 0 0 3px rgba(75,152,197,.14); }
.choices { display:grid; grid-template-columns:1fr 1fr; gap:10px; }.choice input { position:absolute; opacity:0; pointer-events:none; }.choice span { display:grid; min-height:50px; place-items:center; border:1px solid transparent; border-radius:4px; cursor:pointer; font-weight:700; }.boy-choice span { background:#dff2fb; }.girl-choice span { background:#ffe4eb; }.boy-choice input:checked+span { border-color:var(--blue-deep); background:var(--blue); color:#fff; }.girl-choice input:checked+span { border-color:var(--pink-deep); background:var(--pink); color:#fff; }
button { min-height:53px; border:0; border-radius:4px; background:linear-gradient(90deg,var(--blue-deep),var(--pink-deep)); color:white; cursor:pointer; font:700 1rem var(--sans); }button:disabled { opacity:.6; cursor:not-allowed; }.message { margin:0; padding:12px 14px; border-radius:4px; font-size:.9rem; line-height:1.45; }.message.error { background:#fee8ed; color:#9d3150; }.message.success { background:#e4f4fb; color:#216b92; }
.results { grid-column:1/-1; padding:26px 28px; border-top:1px solid var(--line); }.result-row { margin:14px 0; }.result-row span { display:flex; justify-content:space-between; margin-bottom:7px; font-weight:700; }.result-row i { display:block; height:9px; overflow:hidden; border-radius:999px; background:#edf0f2; }.result-row em { display:block; height:100%; border-radius:inherit; }.blue { background:var(--blue-deep); }.pink { background:var(--pink-deep); }.result-note { margin:17px 0 0; color:#697283; font-size:.9rem; }
.admin-page { min-height:100vh; padding:34px 16px; }.admin-login,.admin-dashboard { width:min(980px,100%); margin:auto; padding:40px; border:1px solid var(--line); border-radius:8px; background:#fffdf8; box-shadow:0 18px 46px rgba(82,84,105,.1); }.admin-login { width:min(430px,100%); margin-top:8vh; }.admin-login h1,.admin-dashboard h1 { margin-bottom:27px; font-size:2.6rem; }.admin-login form { display:grid; gap:18px; }.admin-login label { display:grid; gap:8px; font-weight:700; }.admin-dashboard header { display:flex; justify-content:space-between; align-items:start; margin-bottom:30px; }.admin-dashboard header h1 { margin-bottom:0; }.admin-dashboard header a { color:var(--pink-deep); font-weight:700; text-decoration:none; }.admin-stats { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; }.admin-stats article { padding:19px; border:1px solid var(--line); background:#fff; }.admin-stats span { display:block; color:#697283; font-size:.85rem; }.admin-stats strong { display:block; margin-top:7px; font:2.15rem var(--serif); }.response-list { margin-top:27px; overflow:hidden; border:1px solid var(--line); }.response,.response-head { display:grid; grid-template-columns:1.4fr .7fr .9fr 1fr; gap:15px; padding:15px 18px; }.response { border-top:1px solid #eee5d3; background:white; }.response-head { color:#697283; background:#faf4e8; font-size:.78rem; font-weight:700; text-transform:uppercase; }
@media (max-width:720px) { main { width:100%; padding:0 0 36px; }.hero { min-height:695px; border-width:0 0 1px; border-radius:0; }.hero-art { object-position:58% center; }.hero::after { background:linear-gradient(180deg,rgba(255,253,248,.8) 0%,rgba(255,253,248,.74) 56%,rgba(255,253,248,.18) 100%); }.hero-copy { width:100%; padding:66px 28px; text-align:center; }.hero-copy h1 { margin-left:auto; margin-right:auto; font-size:clamp(3.65rem,17.2vw,4.65rem); }.hero-question { margin-top:30px; font-size:3.45rem; }.hero-intro { margin:0 auto 26px; font-size:1rem; }.event-strip { grid-template-columns:1fr; margin:0 12px; }.event-strip article { min-height:auto; padding:20px 22px; border-right:0; border-bottom:1px solid var(--line); }.event-strip article:last-child { border-bottom:0; }.countdown { grid-template-columns:1fr; gap:20px; margin:31px 22px 0; padding:0 0 25px; background:none; }.countdown h2 { font-size:2rem; }.countdown-grid { gap:7px; }.countdown-grid div { padding:11px 2px; }.countdown-grid strong { font-size:1.8rem; }.countdown-grid span { font-size:.65rem; }.gift-section { margin-top:38px; padding:0 22px; }.gift-section h2 { font-size:2.1rem; }.gift-grid { grid-template-columns:1fr; gap:10px; }.gift { min-height:116px; padding:25px; }.rsvp { grid-template-columns:1fr; gap:31px; margin:42px 12px 0; padding:39px 23px; }.rsvp h2 { font-size:2.3rem; }.results { padding:23px 0 0; }.admin-page { padding:18px 12px; }.admin-login,.admin-dashboard { padding:28px 20px; }.admin-stats { grid-template-columns:1fr 1fr; }.response,.response-head { grid-template-columns:1fr 65px; }.response span:nth-child(3),.response span:nth-child(4),.response-head span:nth-child(3),.response-head span:nth-child(4) { display:none; } }
