:root{color:#fff8e8;background:#08172f;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0;background:radial-gradient(circle at 20% 10%,rgba(246,184,91,.2),transparent 34rem),radial-gradient(circle at 88% 20%,rgba(232,90,123,.18),transparent 26rem),linear-gradient(145deg,#08172f,#10234a 48%,#030816)}button,input{font:inherit}main{width:min(1120px,calc(100% - 32px));margin:0 auto;padding:32px 0 56px}.hero{min-height:72vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;text-align:center;position:relative}.hero:before{content:"";position:absolute;inset:4% 0 auto;height:70%;border:1px solid rgba(255,231,171,.12);border-radius:28px;background:linear-gradient(145deg,#ffffff14,#ffffff05);box-shadow:0 24px 80px #00000047;pointer-events:none}.reunion-badge,.event-details span,.eyebrow{color:#f5c766;letter-spacing:.06em;text-transform:uppercase;font-size:.78rem;font-weight:800}.reunion-badge{position:relative;padding:10px 14px;border:1px solid rgba(245,199,102,.34);border-radius:999px;background:#08172fb8;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}h1,h2,p{margin:0}h1{position:relative;max-width:780px;font-size:clamp(3rem,10vw,7rem);line-height:.94;font-weight:900;text-wrap:balance}.supporting-message{position:relative;max-width:680px;color:#f8e7c3;font-size:clamp(1.08rem,2.4vw,1.35rem);line-height:1.65}.countdown{position:relative;width:min(760px,100%);display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.count-card{min-height:136px;display:grid;place-items:center;padding:18px 10px;border:1px solid rgba(255,255,255,.18);border-radius:18px;background:#ffffff1a;box-shadow:inset 0 1px #ffffff2e,0 16px 36px #0003;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);animation:floatIn .7s ease both}.count-card:nth-child(2){animation-delay:80ms}.count-card:nth-child(3){animation-delay:.16s}.count-card:nth-child(4){animation-delay:.24s}.count-value{color:#ffd978;font-variant-numeric:tabular-nums;font-size:clamp(2.1rem,7vw,4rem);font-weight:900}.count-label{color:#ffeecb;font-size:.82rem;font-weight:800;text-transform:uppercase}.complete-message{position:relative;width:min(720px,100%);padding:28px;border:1px solid rgba(245,199,102,.42);border-radius:20px;background:#f5c76624;color:#ffe6a3;font-size:clamp(1.5rem,5vw,3rem);font-weight:900}.event-details{position:relative;display:flex;flex-wrap:wrap;justify-content:center;gap:12px}.event-details span{display:inline-flex;padding:9px 12px;border-radius:999px;background:#ffffff14}.memory-band,.rsvp-panel,.vote-panel{border:1px solid rgba(255,255,255,.15);background:#ffffff14;box-shadow:0 20px 70px #0000003d;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.memory-band{margin:8px auto 22px;padding:clamp(24px,6vw,44px);border-radius:22px}.memory-band p{max-width:780px;margin:0 auto;color:#ffe7b4;font-size:clamp(1.35rem,4vw,2.35rem);line-height:1.28;font-weight:800;text-align:center;text-wrap:balance}.rsvp-panel{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:28px;padding:clamp(22px,5vw,40px);border-radius:22px}.vote-panel{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:28px;margin-top:22px;padding:clamp(22px,5vw,40px);border-radius:22px}.section-heading{display:grid;align-content:start;gap:12px}.section-heading h2{color:#fff6df;font-size:clamp(2rem,6vw,4rem);line-height:1}.section-heading p:not(.eyebrow){color:#f6ddad;line-height:1.6}.rsvp-form{grid-column:2;display:grid;align-content:start;gap:10px}.rsvp-form label,.vote-form label,.vote-form legend{color:#fff1c9;font-weight:800}.vote-form{grid-column:2;display:grid;align-content:start;gap:14px}.vote-form input[type=text],.vote-form>input{min-height:52px;width:100%;border:1px solid rgba(255,255,255,.22);border-radius:14px;padding:0 16px;color:#fff9ed;background:#061022c7;outline:none}.vote-form>input:focus{border-color:#ffd978;box-shadow:0 0 0 4px #ffd97829}.vote-form fieldset{display:grid;gap:10px;margin:0;padding:0;border:0}.vote-options{display:grid;gap:10px}.vote-option{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:center;padding:13px;border:1px solid rgba(255,255,255,.16);border-radius:14px;background:#050f2070;cursor:pointer}.vote-option input{width:18px;height:18px;accent-color:#ffd978}.vote-option span{display:grid;gap:2px}.vote-option strong{color:#fff6df}.vote-option small{color:#d7c7a8}.vote-form button{min-height:52px;border:0;border-radius:14px;padding:0 20px;color:#08172f;background:linear-gradient(135deg,#ffd978,#f0ad4e);font-weight:900;cursor:pointer;box-shadow:0 14px 34px #f5c76633}.input-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:10px}.input-row input{min-height:52px;width:100%;border:1px solid rgba(255,255,255,.22);border-radius:14px;padding:0 16px;color:#fff9ed;background:#061022c7;outline:none}.input-row input:focus{border-color:#ffd978;box-shadow:0 0 0 4px #ffd97829}.input-row button{min-height:52px;border:0;border-radius:14px;padding:0 20px;color:#08172f;background:linear-gradient(135deg,#ffd978,#f0ad4e);font-weight:900;cursor:pointer;box-shadow:0 14px 34px #f5c76633;transition:transform .16s ease,box-shadow .16s ease}.input-row button:hover,.input-row button:focus-visible{transform:translateY(-1px);box-shadow:0 18px 42px #f5c7664d}.input-row button:disabled,.input-row input:disabled{cursor:wait;opacity:.72}.notice,.attendee-summary,.attendee-list,.vote-results{grid-column:2}.notice{padding:12px 14px;border-radius:14px;line-height:1.45;font-weight:700}.notice.success{color:#f7ffe8;background:#48ac7433;border:1px solid rgba(131,219,167,.28)}.notice.error{color:#ffe7ee;background:#e85a7b2e;border:1px solid rgba(255,145,167,.26)}.attendee-summary{display:flex;align-items:baseline;gap:10px;color:#fbe3ae}.attendee-summary strong{color:#ffd978;font-size:3rem;line-height:1}.attendee-list{min-height:132px;padding:18px;border-radius:16px;background:#050f208a}.attendee-list ul{display:flex;flex-wrap:wrap;gap:10px;margin:0;padding:0;list-style:none}.attendee-list li{padding:10px 12px;border:1px solid rgba(245,199,102,.24);border-radius:999px;color:#fff4d8;background:#ffffff14;font-weight:800}.vote-results{display:grid;gap:10px;padding:18px;border-radius:16px;background:#050f208a}.vote-result{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid rgba(255,255,255,.1);color:#fff4d8;font-weight:800}.vote-result:last-child{border-bottom:0}.vote-result strong{color:#ffd978;font-size:1.8rem;line-height:1}.muted{color:#d7c7a8}@keyframes floatIn{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@media(max-width:760px){main{width:min(100% - 22px,620px);padding-top:18px}.hero{min-height:auto;padding:54px 0 24px}.hero:before{inset:14px -4px auto;height:78%;border-radius:22px}.countdown{grid-template-columns:repeat(2,1fr)}.count-card{min-height:116px;border-radius:16px}.event-details{flex-direction:column;align-items:center}.rsvp-panel,.vote-panel{grid-template-columns:1fr}.rsvp-form,.vote-form,.notice,.attendee-summary,.attendee-list,.vote-results{grid-column:1}.input-row{grid-template-columns:1fr}.input-row button{width:100%}}
