/* 2019 — "Bright Brunch". Reference: pop-art comic strip.
   Halftone dots, thick black outlines, primaries, comic-panel energy. */

:root {
    --yellow: #FFD23F;
    --red:    #E63946;
    --blue:   #1D4ED8;
    --cream:  #FFF8E7;
    --ink:    #0A0A0A;
    --max:    460px;
    --ease:   cubic-bezier(.2,.7,.2,1);
    --comic:  'Bangers', cursive;
    --sans:   'Inter', sans-serif;
}
* { margin:0; padding:0; box-sizing:border-box; }
html { -webkit-text-size-adjust:100%; }
body { background:var(--yellow); background-image:radial-gradient(circle, rgba(10,10,10,.13) 1.5px, transparent 1.5px); background-size:14px 14px; color:var(--ink); font-family:var(--sans); font-weight:600; line-height:1.4; font-size:16px; -webkit-font-smoothing:antialiased; overflow-x:hidden; }

.cover-wrap { position:fixed; inset:0; z-index:100; display:flex; transition:opacity .5s var(--ease), visibility .5s; }
.cover-wrap.is-hidden { opacity:0; visibility:hidden; pointer-events:none; }
.cover-inner { max-width:var(--max); width:100%; margin:auto; padding:32px 22px; display:flex; flex-direction:column; min-height:100%; }

.starburst { align-self:flex-start; width:84px; height:84px; background:var(--red); position:relative; margin-bottom:auto; display:flex; align-items:center; justify-content:center; clip-path:polygon(50% 0,61% 18%,82% 12%,76% 33%,98% 38%,82% 52%,97% 68%,75% 66%,82% 87%,61% 78%,50% 100%,39% 78%,18% 87%,25% 66%,3% 68%,18% 52%,2% 38%,24% 33%,18% 12%,39% 18%); transform:rotate(-6deg); }
.star-text { font-family:var(--comic); font-size:1.4rem; color:var(--cream); letter-spacing:.03em; }
.cover-eyebrow { font-family:var(--comic); font-size:1.3rem; color:var(--blue); letter-spacing:.04em; margin-bottom:6px; }
.cover-title { font-family:var(--comic); font-size:clamp(3.4rem,18vw,5.6rem); line-height:.82; letter-spacing:.02em; color:var(--ink); -webkit-text-stroke:2px var(--ink); text-shadow:5px 5px 0 var(--red); margin-bottom:10px; }
.cover-deck { font-family:var(--sans); font-weight:700; font-size:.95rem; color:var(--ink); margin-bottom:20px; }
.cover-recipient { background:var(--blue); color:var(--cream); border:3px solid var(--ink); padding:8px 14px; display:inline-flex; gap:8px; align-items:baseline; width:fit-content; margin-bottom:auto; }
.for-label { font-family:var(--comic); font-size:1.1rem; letter-spacing:.04em; }
#guestName { font-family:var(--comic); font-size:1.5rem; }
.open-btn { background:var(--ink); color:var(--yellow); border:4px solid var(--ink); box-shadow:6px 6px 0 var(--red); font-family:var(--comic); font-size:1.6rem; letter-spacing:.05em; padding:14px 18px; display:flex; justify-content:space-between; align-items:center; cursor:pointer; width:100%; transition:transform .1s var(--ease), box-shadow .1s var(--ease); -webkit-user-select:none; user-select:none; }
.open-btn:active { transform:translate(4px,4px); box-shadow:2px 2px 0 var(--red); }
.cover-footnote { margin-top:14px; text-align:center; font-weight:700; font-size:.78rem; color:var(--ink); letter-spacing:.05em; }

.invite-body { display:none; }
.invite-body.is-open { display:block; background:var(--cream); background-image:radial-gradient(circle, rgba(10,10,10,.06) 1.5px, transparent 1.5px); background-size:14px 14px; }
.section { max-width:var(--max); margin:0 auto; padding:32px 22px 6px; }
.panel-tag { font-family:var(--comic); font-size:1.3rem; color:var(--red); letter-spacing:.04em; margin-bottom:16px; padding-bottom:8px; border-bottom:4px solid var(--ink); }
.welcome-message { font-family:var(--sans); font-weight:600; font-size:1.1rem; line-height:1.45; color:var(--ink); }
.welcome-host { margin-top:10px; font-family:var(--comic); font-size:1.2rem; color:var(--blue); letter-spacing:.04em; }
.savedate-name { font-family:var(--comic); font-size:clamp(2.2rem,11vw,3rem); color:var(--ink); letter-spacing:.03em; text-shadow:3px 3px 0 var(--red); margin-bottom:6px; }
.savedate-date { font-family:var(--sans); font-weight:800; font-size:.9rem; color:var(--ink); letter-spacing:.08em; margin-bottom:22px; }
.countdown { display:grid; grid-template-columns:repeat(4,1fr); border:4px solid var(--ink); box-shadow:5px 5px 0 var(--ink); background:var(--yellow); }
.cd-unit { padding:12px 4px; text-align:center; border-right:3px solid var(--ink); }
.cd-unit:last-child { border-right:none; }
.cd-num { display:block; font-family:var(--comic); font-size:1.8rem; line-height:1; color:var(--red); }
.cd-label { font-family:var(--sans); font-weight:800; font-size:.5rem; letter-spacing:.1em; color:var(--ink); }
.schedule-list { display:flex; flex-direction:column; gap:14px; }
.schedule-item { border:4px solid var(--ink); box-shadow:4px 4px 0 var(--ink); background:var(--yellow); padding:14px; display:grid; gap:4px; }
.schedule-name { font-family:var(--comic); font-size:1.5rem; color:var(--blue); letter-spacing:.03em; margin-bottom:4px; border-bottom:2px solid var(--ink); padding-bottom:4px; }
.schedule-item p { font-weight:700; font-size:.85rem; color:var(--ink); letter-spacing:.04em; }
.schedule-map-link { margin-top:6px; align-self:flex-start; font-family:var(--comic); font-size:1rem; color:var(--cream); background:var(--ink); border:3px solid var(--ink); padding:4px 8px; text-decoration:none; letter-spacing:.03em; }
.menu-list { display:flex; flex-direction:column; gap:12px; margin-bottom:18px; }
.menu-item { display:flex; align-items:center; gap:14px; background:var(--blue); color:var(--cream); border:4px solid var(--ink); box-shadow:4px 4px 0 var(--red); padding:12px 14px; }
.menu-num { font-family:var(--comic); font-size:1.2rem; color:var(--ink); background:var(--yellow); border:3px solid var(--ink); padding:4px 8px; }
.menu-info { flex:1; }
.menu-name { font-family:var(--comic); font-size:1.3rem; letter-spacing:.03em; }
.menu-note { font-weight:700; font-size:.8rem; letter-spacing:.04em; }
.menu-note span { color:var(--yellow); }
.seating-card { border:4px solid var(--ink); background:var(--red); color:var(--cream); box-shadow:4px 4px 0 var(--yellow); padding:14px; }
.seating-label { font-family:var(--comic); font-size:1.2rem; letter-spacing:.03em; margin-bottom:6px; }
.seating-note { font-weight:600; font-size:.92rem; line-height:1.4; }
.rsvp-body { min-height:40px; }
.invite-footer { max-width:var(--max); margin:0 auto; padding:32px 22px 48px; text-align:center; }
.footer-thanks { font-family:var(--comic); font-size:2.4rem; color:var(--ink); text-shadow:4px 4px 0 var(--red); letter-spacing:.03em; margin-bottom:6px; }
.footer-credit { font-weight:800; font-size:.6rem; letter-spacing:.15em; color:var(--ink); }
[data-reveal] { opacity:0; transform:translateY(12px); transition:opacity .5s var(--ease), transform .5s var(--ease); }
[data-reveal].is-visible { opacity:1; transform:translateY(0); }
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { transition:none!important; animation:none!important; } [data-reveal] { opacity:1; transform:none; } }

/* RSVP form (platform contract: #rsvp-form fields enhanced by js/rsvp_user.js) */
.rsvp-wrap .form-group { display:flex; flex-direction:column; margin-bottom:16px; }
.rsvp-wrap label { font-family:var(--comic); font-size:1rem; letter-spacing:.05em; color:var(--ink); margin-bottom:6px; }
.rsvp-wrap .form-control { font-family:var(--sans); font-weight:700; font-size:.95rem; color:var(--ink); background:var(--cream); border:3px solid var(--ink); box-shadow:3px 3px 0 var(--ink); padding:10px 12px; width:100%; outline:none; appearance:none; -webkit-appearance:none; transition:box-shadow .1s var(--ease); }
.rsvp-wrap .form-control:focus { box-shadow:5px 5px 0 var(--red); }
.rsvp-wrap select.form-control { background-image:linear-gradient(45deg, transparent 50%, var(--ink) 50%), linear-gradient(135deg, var(--ink) 50%, transparent 50%); background-position:calc(100% - 18px) 55%, calc(100% - 13px) 55%; background-size:5px 5px, 5px 5px; background-repeat:no-repeat; padding-right:36px; }
.rsvp-wrap .error { display:block; min-height:0; margin-top:4px; font-size:.75rem; font-weight:800; letter-spacing:.04em; color:var(--red); }
.rsvp-wrap #submit-button { background:var(--ink); color:var(--yellow); border:4px solid var(--ink); box-shadow:6px 6px 0 var(--red); font-family:var(--comic); font-size:1.4rem; letter-spacing:.05em; padding:12px 16px; display:flex; justify-content:space-between; align-items:center; gap:8px; cursor:pointer; width:100%; transition:transform .1s var(--ease), box-shadow .1s var(--ease); -webkit-user-select:none; user-select:none; }
.rsvp-wrap #submit-button:active { transform:translate(4px,4px); box-shadow:2px 2px 0 var(--red); }
.rsvp-wrap #submit-button:disabled { opacity:.6; cursor:wait; }
.rsvp-wrap .loading { display:none; margin-top:12px; text-align:center; font-family:var(--comic); font-size:1rem; letter-spacing:.05em; color:var(--blue); }

/* Platform branding (engine rewrites Kundangi -> APP_NAME at render) */
.powered-by { margin-top:18px; font-family:var(--sans); font-weight:800; font-size:.62rem; letter-spacing:.15em; text-transform:uppercase; color:var(--ink); }
.powered-by .link-footer { color:var(--red); text-decoration:none; border-bottom:2px solid var(--ink); }
