:root{color:#fff7e8;background:#071224;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}html{scroll-behavior:smooth}body{min-width:320px;min-height:100vh;margin:0;background:linear-gradient(120deg,rgba(218,52,97,.18),transparent 28rem),linear-gradient(255deg,rgba(245,193,82,.2),transparent 34rem),linear-gradient(180deg,#071224,#102852 46%,#070c1a)}body:before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.28;background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);background-size:72px 72px;-webkit-mask-image:linear-gradient(to bottom,#000 0%,transparent 82%);mask-image:linear-gradient(to bottom,#000 0%,transparent 82%)}button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}h1,h2,h3,p{margin:0}.reunion-site{width:min(1180px,calc(100% - 32px));margin:0 auto;padding:34px 0 52px;overflow-x:clip}.hero{min-height:74vh;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(300px,.95fr);align-items:center;gap:clamp(32px,6vw,76px);padding:clamp(28px,6vw,72px) 0 30px}.hero-copy-block{display:grid;gap:20px}.school-kicker,.event-details span,.eyebrow,.section-divider,.countdown-intro span{color:#f7cd73;font-size:.78rem;font-weight:850;letter-spacing:.08em;text-transform:uppercase}.school-kicker{width:fit-content;max-width:100%;padding:10px 13px;border:1px solid rgba(247,205,115,.34);border-radius:999px;background:#050e1f9e;box-shadow:0 12px 40px #00000038}h1{max-width:760px;color:#fff4dc;font-family:Georgia,Times New Roman,serif;font-size:clamp(4rem,11vw,8.7rem);font-weight:900;line-height:.9;text-wrap:balance}.supporting-message{max-width:670px;color:#d7deeb;font-size:clamp(1.08rem,2.2vw,1.38rem);line-height:1.7}.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:8px}.hero-button{min-height:52px;display:inline-flex;align-items:center;justify-content:center;padding:0 20px;border-radius:14px;color:#071224;font-weight:900;text-decoration:none;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.hero-button:hover,.hero-button:focus-visible{transform:translateY(-2px)}.hero-button.primary{background:linear-gradient(135deg,#f7cd73,#f29f57);box-shadow:0 18px 44px #f29f5740}.hero-button.secondary{color:#fff5df;border:1px solid rgba(255,255,255,.18);background:#ffffff14}.memory-stack{min-height:520px;position:relative}.memory-stack:before{content:"NCMS";position:absolute;inset:48px 40px 54px 26px;display:grid;place-items:center;border:1px solid rgba(247,205,115,.18);color:#fff5df14;font-family:Georgia,Times New Roman,serif;font-size:clamp(5rem,12vw,8.5rem);font-weight:900;background:linear-gradient(135deg,#ffffff14,#ffffff05),linear-gradient(180deg,#0b1f41c2,#070c1ad1);box-shadow:0 30px 90px #0000004d;transform:rotate(-2deg)}.memory-photo{position:absolute;width:min(62%,310px);min-height:210px;display:flex;align-items:end;padding:16px;border:10px solid #fff4dd;border-bottom-width:46px;color:#281b15;background:linear-gradient(135deg,rgba(255,255,255,.5),transparent 34%),linear-gradient(145deg,#b5345d,#e8aa5e 54%,#264f7a);box-shadow:0 28px 80px #00000052}.memory-photo span{position:absolute;left:14px;right:14px;bottom:-34px;color:#463426;font-family:Georgia,Times New Roman,serif;font-size:1.05rem;font-weight:800;text-align:center}.photo-one{top:24px;left:0;transform:rotate(-7deg)}.photo-two{top:150px;right:6px;transform:rotate(6deg);background:linear-gradient(135deg,rgba(255,255,255,.45),transparent 35%),linear-gradient(145deg,#213f72,#7d4b7d 52%,#f0bc65)}.photo-three{bottom:8px;left:62px;transform:rotate(-1deg);background:linear-gradient(135deg,rgba(255,255,255,.45),transparent 36%),linear-gradient(145deg,#d84f77,#f2b55f 48%,#163460)}.countdown-band{display:grid;gap:20px;padding:clamp(20px,4vw,30px);border:1px solid rgba(247,205,115,.22);border-radius:8px;background:linear-gradient(135deg,#ffffff1c,#ffffff0a),#050e1f75;box-shadow:0 24px 80px #0000003b;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.countdown-intro{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:8px 16px}.countdown-intro strong{color:#fff2d5;font-size:clamp(1.25rem,3vw,2.1rem)}.countdown{width:100%;display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.count-card{min-height:132px;display:grid;place-items:center;padding:16px 10px;border:1px solid rgba(255,255,255,.18);border-radius:8px;background:linear-gradient(180deg,#ffffff21,#ffffff0f),#0712249e;box-shadow:inset 0 1px #ffffff24,0 15px 38px #00000038;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);animation:floatIn .64s 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:#ffd879;font-variant-numeric:tabular-nums;font-size:clamp(2.2rem,7vw,4.4rem);font-weight:950}.count-label{color:#fff0cc;font-size:.82rem;font-weight:850;text-transform:uppercase}.complete-message{width:100%;padding:28px;border:1px solid rgba(247,205,115,.38);border-radius:8px;background:#f7cd7324;color:#ffe5a3;font-size:clamp(1.5rem,5vw,3rem);font-weight:900}.event-details{display:flex;flex-wrap:wrap;gap:10px}.event-details span{display:inline-flex;padding:9px 12px;border:1px solid rgba(255,255,255,.12);border-radius:999px;background:#ffffff12}.reunion-quote{margin:28px 0;padding:clamp(26px,6vw,54px);border-left:4px solid #f7cd73;background:linear-gradient(90deg,rgba(247,205,115,.12),rgba(218,52,97,.07),transparent)}.reunion-quote p{max-width:920px;color:#ffe7af;font-family:Georgia,Times New Roman,serif;font-size:clamp(1.55rem,4.5vw,3.35rem);font-weight:800;line-height:1.18;text-wrap:balance}.story-grid,.memory-preview{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:0 0 32px}.story-grid article,.memory-preview>div,.rsvp-panel,.vote-panel{border:1px solid rgba(255,255,255,.14);border-radius:8px;background:linear-gradient(145deg,#ffffff1b,#ffffff0a),#06102285;box-shadow:0 18px 64px #00000038;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.story-grid article{min-height:210px;padding:22px}.story-grid span{color:#f7cd73;font-weight:950}.story-grid h2,.memory-preview h2,.section-heading h2{color:#fff4dc;font-family:Georgia,Times New Roman,serif}.story-grid h2{margin-top:22px;font-size:clamp(1.7rem,3vw,2.35rem)}.story-grid p,.memory-preview p,.section-heading p:not(.eyebrow){color:#d6deeb;line-height:1.65}.story-grid p{margin-top:10px}.section-divider{display:flex;align-items:center;gap:14px;margin:34px 0 14px}.section-divider:before,.section-divider:after{content:"";height:1px;flex:1;background:linear-gradient(90deg,transparent,rgba(247,205,115,.35),transparent)}.rsvp-panel,.vote-panel{display:grid;grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr);gap:28px;padding:clamp(22px,5vw,38px)}.vote-panel{margin-top:0}.section-heading{display:grid;align-content:start;gap:12px}.section-heading h2{font-size:clamp(2rem,5vw,3.55rem);line-height:1}.rsvp-form,.vote-form{grid-column:2;display:grid;align-content:start;gap:12px}.rsvp-form label,.vote-form label,.vote-form legend{color:#fff0cc;font-weight:850}.input-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:start}.input-row input,.vote-form input[type=text],.vote-form>input{min-height:52px;width:100%;border:1px solid rgba(255,255,255,.22);border-radius:8px;padding:0 15px;color:#fff9ed;background:#040c1bbd;outline:none}.input-row input:focus,.vote-form>input:focus{border-color:#ffd879;box-shadow:0 0 0 4px #ffd87929}.input-row button,.vote-form button{min-height:52px;border:0;border-radius:8px;padding:0 20px;color:#071224;background:linear-gradient(135deg,#ffd879,#f0a555);font-weight:950;cursor:pointer;box-shadow:0 14px 34px #f0a55533;transition:transform .16s ease,box-shadow .16s ease}.input-row button:hover,.input-row button:focus-visible,.vote-form button:hover,.vote-form button:focus-visible{transform:translateY(-1px);box-shadow:0 18px 42px #f0a5554d}.input-row button:disabled,.input-row input:disabled,.vote-form button:disabled,.vote-form input:disabled{cursor:wait;opacity:.72}.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:8px;background:#040c1b85;cursor:pointer}.vote-option input{width:18px;height:18px;accent-color:#ffd879}.vote-option span{display:grid;gap:2px}.vote-option strong{color:#fff4dc}.vote-option small{color:#c6d1df}.notice,.attendee-summary,.attendee-list,.vote-results{grid-column:2}.notice{padding:12px 14px;border-radius:8px;line-height:1.45;font-weight:760}.notice.success{color:#f5ffe7;background:#3ca86d33;border:1px solid rgba(131,219,167,.28)}.notice.error{color:#ffe7ee;background:#da34612e;border:1px solid rgba(255,145,167,.26)}.attendee-summary{display:flex;align-items:baseline;gap:10px;color:#f7dfaa}.attendee-summary strong{color:#ffd879;font-size:3rem;line-height:1}.attendee-list,.vote-results{min-height:132px;padding:18px;border:1px solid rgba(255,255,255,.08);border-radius:8px;background:#040c1b94}.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(247,205,115,.24);border-radius:999px;color:#fff3d7;background:#ffffff14;font-weight:850}.vote-results{display:grid;gap:10px}.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:#fff3d7;font-weight:850}.vote-result:last-child{border-bottom:0}.vote-result strong{color:#ffd879;font-size:1.8rem;line-height:1}.memory-preview{grid-template-columns:repeat(2,1fr);margin:34px 0 0}.memory-preview>div{padding:clamp(22px,4vw,34px)}.memory-preview h2{margin-top:10px;font-size:clamp(1.8rem,3.5vw,2.6rem)}.memory-preview p{margin-top:10px}.muted{color:#c6d1df}.site-footer{padding:34px 0 0;color:#aeb9c8;text-align:center}@keyframes floatIn{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@media(max-width:860px){.hero{min-height:auto;grid-template-columns:1fr;padding-top:20px}.memory-stack{min-height:430px;order:-1}.memory-photo{width:min(68%,290px);min-height:176px}.countdown{grid-template-columns:repeat(2,1fr)}.story-grid,.memory-preview,.rsvp-panel,.vote-panel{grid-template-columns:1fr}.rsvp-form,.vote-form,.notice,.attendee-summary,.attendee-list,.vote-results{grid-column:1}}@media(max-width:560px){.reunion-site{width:min(100% - 22px,620px);padding-top:18px}.school-kicker{width:100%}.hero-actions,.event-details{flex-direction:column}.hero-button{width:100%}.memory-stack{min-height:360px}.memory-stack:before{inset:50px 18px 40px}.memory-photo{width:72%;min-height:142px;border-width:8px;border-bottom-width:38px}.memory-photo span{bottom:-30px;font-size:.95rem}.photo-one{top:12px}.photo-two{top:116px}.photo-three{left:42px}.count-card{min-height:112px}.input-row{grid-template-columns:1fr}.input-row button{width:100%}}.hero-copy-block{animation:riseIn .76s ease both}.school-kicker{animation:softGlow 4s ease-in-out infinite}h1{animation:titleReveal .9s ease .12s both}.supporting-message{animation:riseIn .76s ease .22s both}.hero-actions{animation:riseIn .76s ease .34s both}.memory-stack{animation:photoStackIn .86s ease .14s both}.memory-stack:before{animation:slowTilt 8s ease-in-out infinite}.photo-one{animation:floatPhotoOne 6.8s ease-in-out infinite}.photo-two{animation:floatPhotoTwo 7.4s ease-in-out .45s infinite}.photo-three{animation:floatPhotoThree 7s ease-in-out .9s infinite}.countdown-band{position:relative;overflow:hidden;animation:riseIn .76s ease .28s both}.reunion-quote,.rsvp-panel,.vote-panel{animation:riseIn .76s ease both}.notice{animation:noticePop .26s ease both}.attendee-list li{animation:chipIn .28s ease both}.hero-button:hover,.hero-button:focus-visible,.input-row button:hover,.input-row button:focus-visible,.vote-form button:hover,.vote-form button:focus-visible{transform:translateY(-2px) scale(1.015)}.memory-photo,.count-card,.story-grid article,.memory-preview>div,.vote-option{transition:transform .19s ease,border-color .19s ease,box-shadow .19s ease,background .19s ease,filter .19s ease}.memory-photo:hover{box-shadow:0 34px 92px #0000006b;filter:saturate(1.08)}.countdown-band:after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent,rgba(255,255,255,.12),transparent);transform:translate(-120%);animation:panelSheen 6s ease-in-out 1.4s infinite;pointer-events:none}.count-card{position:relative;overflow:hidden}.count-card:hover{transform:translateY(-3px);border-color:#ffd87957;box-shadow:inset 0 1px #ffffff2e,0 20px 46px #00000047}.story-grid article:hover,.memory-preview>div:hover{transform:translateY(-4px);border-color:#f7cd7347}.vote-option:hover,.vote-option:focus-within{transform:translate(3px);border-color:#ffd87957;background:#081832ad}@keyframes riseIn{0%{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}@keyframes titleReveal{0%{opacity:0;transform:translateY(18px) scale(.985);filter:blur(8px)}to{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}}@keyframes photoStackIn{0%{opacity:0;transform:translateY(24px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes floatPhotoOne{0%,to{transform:translateY(0) rotate(-7deg)}50%{transform:translateY(-10px) rotate(-5.5deg)}}@keyframes floatPhotoTwo{0%,to{transform:translateY(0) rotate(6deg)}50%{transform:translateY(9px) rotate(4.5deg)}}@keyframes floatPhotoThree{0%,to{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-8px) rotate(-2.5deg)}}@keyframes slowTilt{0%,to{transform:rotate(-2deg) scale(1)}50%{transform:rotate(-1deg) scale(1.01)}}@keyframes softGlow{0%,to{box-shadow:0 12px 40px #00000038}50%{box-shadow:0 12px 40px #00000038,0 0 28px #f7cd7329}}@keyframes panelSheen{0%,58%{transform:translate(-120%)}78%,to{transform:translate(120%)}}@keyframes noticePop{0%{opacity:0;transform:translateY(-6px) scale(.99)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes chipIn{0%{opacity:0;transform:translateY(5px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}
