@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,500;0,600;0,700;1,500&display=swap";*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{background:var(--cream);color:var(--ink);margin:0;font-family:DM Sans,Arial,sans-serif}a{color:inherit}header{border-bottom:1px solid #ebdfda;justify-content:space-between;align-items:center;gap:20px;height:88px;padding:0 6vw;display:flex}.brand{letter-spacing:.13em;font-size:13px;font-weight:700;text-decoration:none}.brand span{letter-spacing:.2em;margin-top:6px;font-size:11px;font-weight:400;display:block}nav{gap:28px;font-size:13px;display:flex}nav a{text-decoration:none}nav a:hover{text-decoration:underline}.hero{grid-template-columns:1.3fr 1fr;align-items:center;gap:65px;max-width:1280px;margin:auto;padding:72px 6vw 64px;display:grid}.eyebrow{letter-spacing:.2em;text-transform:uppercase;color:#845d13;font-size:12px;font-weight:700}.hero h1{margin:22px 0;font:500 clamp(43px,5.3vw,72px)/1.08 Playfair Display,Georgia,serif}.hero h1 em{color:#a6192e;font-weight:500}.intro{color:var(--muted);max-width:420px;font-size:17px;line-height:1.8}.date{margin:28px 0;font-size:17px;font-weight:600}.button{background:var(--navy);color:#fff;border:1px solid var(--navy);cursor:pointer;border-radius:3px;justify-content:center;align-items:center;padding:15px 25px;font:600 13px DM Sans,Arial,sans-serif;text-decoration:none;display:inline-flex}.anniversary{background:var(--navy);color:var(--cream);text-align:center;outline:1px solid var(--gold);outline-offset:-15px;border-radius:180px 180px 5px 5px;flex-direction:column;justify-content:center;min-height:410px;padding:43px 25px;display:flex;position:relative;overflow:hidden}.anniversary .small{letter-spacing:.24em;color:#ffe3a0;font-size:11px}.fifty{color:#ffd76a;letter-spacing:-8px;font:500 142px/1.08 Playfair Display,Georgia,serif}.years{font:italic 26px Playfair Display,Georgia,serif}.anniversary .rule{background:var(--gold);width:80px;height:1px;margin:25px auto}.anniversary .bottom{letter-spacing:.15em;font-size:12px}.countdown{text-align:center;background:#fff2d3;border-top:1px solid #ead7ad;border-bottom:1px solid #ead7ad;padding:38px 6vw}.countdown h2{margin:0 0 26px;font:500 25px Playfair Display,Georgia,serif}.clock{justify-content:center;max-width:640px;margin:auto;display:flex}.unit{border-right:1px solid #e1cfa5;flex:1}.unit:last-child{border:0}.number{font-variant-numeric:tabular-nums;font:500 clamp(32px,5vw,48px) Playfair Display,Georgia,serif;display:block}.label{letter-spacing:.2em;text-transform:uppercase;margin-top:6px;font-size:10px;display:block}.countdown .note{color:var(--muted);margin:20px 0 0;font-size:11px}.details{max-width:1160px;margin:auto;padding:70px 6vw}.section-title{margin:12px 0 18px;font:500 35px Playfair Display,Georgia,serif}.details>p{color:var(--muted);max-width:650px;font-size:15px;line-height:1.8}.cards{grid-template-columns:1fr 1fr;gap:22px;margin-top:30px;display:grid}.card{background:#fff;border:1px solid #ebdfda;border-radius:5px;padding:28px}.card .day{letter-spacing:.16em;color:#845d13;text-transform:uppercase;font-size:11px;font-weight:700}.card h3{margin:14px 0;font:500 26px Playfair Display,Georgia,serif}.card p{color:var(--muted);font-size:14px;line-height:1.8}.tag{background:#fff3d8;border:1px solid #e4d2a8;border-radius:20px;padding:7px 12px;font-size:11px;display:inline-block}.mail{background:var(--navy);max-width:1030px;color:var(--cream);border-radius:5px;justify-content:space-between;align-items:center;gap:30px;margin:0 auto 65px;padding:38px 45px;display:flex}.mail h2{margin:12px 0;font:500 30px Playfair Display,Georgia,serif}.mail p{color:#fae5e7;max-width:380px;font-size:13px;line-height:1.8}.address{min-width:240px;font-size:18px;font-style:normal;line-height:1.8}.mail button{background:0 0;border-color:#f3cd68;margin-top:14px}.copy-status{color:#ffe3a0;min-height:18px;margin-top:8px;font-size:12px}.next{text-align:center;max-width:900px;margin:auto;padding:0 25px 60px}.next p{color:var(--muted);font-size:14px;line-height:1.9}footer{color:var(--muted);border-top:1px solid #ebdfda;justify-content:space-between;gap:15px;padding:25px 6vw;font-size:11px;display:flex}:is(a:focus-visible,button:focus-visible){outline:3px solid var(--gold);outline-offset:5px}@media (max-width:700px){header{align-items:flex-start;height:auto;padding:22px 6vw}nav{gap:15px;padding-top:4px;font-size:11px}.hero{grid-template-columns:1fr;gap:35px;padding-top:44px}.hero h1{font-size:48px}.anniversary{width:100%;max-width:370px;min-height:370px;margin:auto}.fifty{font-size:125px}.cards{grid-template-columns:1fr}.mail{flex-direction:column;align-items:flex-start;margin:0 6vw 50px;padding:30px}.details{padding-top:48px}.unit{padding:0 9px}.label{letter-spacing:.1em}footer{flex-direction:column}}:root{--navy:#851d22;--cream:#f6ecd5;--gold:#d5a438;--ink:#521d20;--muted:#755d50}body{background-color:var(--cream);background-image:radial-gradient(#b1976433 .65px,#0000 .65px),linear-gradient(95deg,#f9efd9,#f1e4c8);background-size:5px 5px,100% 100%}header{color:#ffe5a4;border-bottom:4px solid var(--gold);background:#851d22 radial-gradient(#ffd88b18 .8px,#0000 .8px) 0 0/5px 5px;height:110px}.brand{letter-spacing:.08em;font:700 30px Georgia,serif}.brand span{letter-spacing:.35em;text-align:center;color:#fff7e2;font:600 12px Georgia,serif}nav{color:#fff7e2;font:18px Georgia,serif}.hero{grid-template-columns:1.05fr 1fr;gap:45px;max-width:1400px;padding:45px 5vw 55px}.hero-copy{order:2}.yearbook-art{order:1;margin:0;transform:rotate(-2deg)}.yearbook-art img{border:9px solid #f9edce;width:100%;height:auto;display:block;box-shadow:0 14px 28px #44200e30}.yearbook-art figcaption{color:#796044;text-align:center;margin-top:12px;font:italic 12px Georgia,serif}.hero h1{color:#851d22;margin:18px 0 22px;font:700 clamp(40px,5vw,65px)/1.08 Georgia,serif}.hero h1 .reunion-title{color:#851d22;letter-spacing:.015em;text-shadow:1px 1px #f4d078;border-top:2px solid #bf9132;border-bottom:2px solid #bf9132;margin-top:22px;padding:15px 0;font:800 clamp(31px,3.8vw,51px)/1.2 Georgia,serif;display:block}.hero .eyebrow{color:#795b22}.date{color:#851d22;font:700 clamp(22px,2.3vw,30px) Georgia,serif}.intro{color:#67462e;font:italic 22px/1.5 Georgia,serif}.button{background:#851d22;border-color:#851d22;border-radius:0;font-size:13px}.button:hover{background:#67171b}.countdown{color:#ffedc5;background:#851d22 radial-gradient(#ffd88b18 .8px,#0000 .8px) 0 0/5px 5px;border-top:3px solid #d5a438;border-bottom:3px solid #d5a438;padding:32px 6vw}.countdown h2{letter-spacing:.13em;text-transform:uppercase;color:#ffdf94;font:500 19px Georgia,serif}.clock{gap:16px;max-width:760px}.unit{color:#851d22;background:#f9edcf;border:1px solid #e1c384;border-radius:4px;padding:15px 8px 17px;box-shadow:0 5px 10px #410a1730}.number{font:700 clamp(35px,5vw,60px) Georgia,serif}.label{letter-spacing:.14em;border-top:1px solid #c6a359;max-width:105px;margin:8px auto 0;padding-top:8px;font:600 12px Georgia,serif}.countdown .note{color:#ffe9c2}.details{text-align:center;padding-top:50px}.section-title{color:#851d22;font:700 32px Georgia,serif}.details>p{margin-left:auto;margin-right:auto}.details .eyebrow{color:#795b22}.cards{gap:30px}.card{outline-offset:-12px;background:#fbf0d7;border:1px solid #dbc696;border-radius:0;outline:1px solid #c89c43;padding:32px 27px;position:relative;box-shadow:0 6px 13px #63451a17}.card .day{color:#62211e;letter-spacing:.08em;background:#e9bd62;padding:12px;font-size:12px;display:inline-block}.card h3{color:#851d22;font-family:Georgia,serif}.card p{color:#755d50}.tag{color:#795b22;background:0 0;border-color:#c6a359;border-radius:0}.mail{color:#521d20;background:#e8b64e radial-gradient(#8d5b2620 .7px,#0000 .7px) 0 0/5px 5px;border:1px solid #c09130;border-radius:0;max-width:1030px;box-shadow:0 5px 16px #63451a12}.mail .eyebrow{color:#62251e}.mail h2{font:700 28px Georgia,serif}.mail p{color:#66482c}.address{color:#421f17;font:500 20px/1.7 Georgia,serif}.mail button{color:#851d22;background:#fff3cd;border:1px solid #851d22}.mail button:hover{background:#fff8e7}.copy-status{color:#521d20}.next .eyebrow{color:#795b22}.next p{color:#755d50}footer{color:#795f43;border-top:2px solid #cfaa58}@media (max-width:700px){header{flex-direction:column;align-items:center;gap:20px;height:auto;padding:22px 6vw}.brand{font-size:25px}nav{gap:22px;font-size:14px}.hero{grid-template-columns:1fr;gap:30px;padding-top:30px}.hero-copy{text-align:center;order:1}.yearbook-art{order:2;max-width:480px;margin:auto}.hero h1{font-size:41px}.hero h1 .reunion-title{font-size:35px}.intro{max-width:none;font-size:21px}.clock{gap:8px}.unit{padding:13px 5px}.label{letter-spacing:.06em;font-size:9px}.number{font-size:35px}.countdown h2{font-size:15px;line-height:1.6}.mail{margin-left:6vw;margin-right:6vw}.cards{gap:22px}}.cards{align-items:stretch}.event-card{flex-direction:column;display:flex}.event-card .day{align-self:center}.event-card .venue-link{margin-top:auto;padding-top:16px}.event-card .event-time{color:#851d22;margin-bottom:12px;font-size:17px;font-weight:700}.event-card .venue-name{color:#521d20;font:700 23px/1.45 Georgia,serif}.venue-name span{color:#755d50;font:400 14px DM Sans,Arial,sans-serif}.venue-photo{margin:20px 0 12px}.venue-photo img{border:4px solid #fff9e9;width:100%;height:auto;display:block;box-shadow:0 3px 9px #63451a24}.venue-photo figcaption{color:#755d50;margin-top:8px;font-size:10px;line-height:1.6}.venue-photo figcaption a{color:#851d22}.venue-link{color:#851d22;text-underline-offset:4px;margin-top:5px;font-size:13px;font-weight:700;display:inline-block}.directory-section{max-width:1160px;margin:0 auto;padding:35px 6vw 65px;scroll-margin-top:30px}.directory-heading{text-align:center;max-width:700px;margin:auto}.directory-heading>p{color:#755d50;line-height:1.8}.directory-actions{flex-wrap:wrap;justify-content:center;gap:12px;margin:25px 0 10px;display:flex}.button-light{color:#851d22;background:#fff6de}.button-light:hover{background:#ecd6aa}.button:disabled{opacity:.55;cursor:wait}.form-help{color:#755d50;font-size:12px;line-height:1.7}.roster-progress{text-align:center;border-top:1px solid #d1b67e;border-bottom:1px solid #d1b67e;margin:24px 0;padding:22px 15px}.roster-progress strong{color:#851d22;font:700 30px Georgia,serif;display:block}.roster-progress>span{margin-top:7px;font-size:13px;display:block}.roster-progress small{color:#755d50;margin-top:8px;display:block}.progress-track{background:#e6d4ae;border-radius:3px;max-width:320px;height:6px;overflow:hidden;margin:12px auto!important}.progress-track span{background:#851d22;height:100%;display:block}.profile-form-wrap{background:#fff9e9;border:1px solid #d1b67e;margin:25px 0;padding:30px}.profile-form-wrap h3,.group-banner h3,.organizer-section h3{font:700 24px Georgia,serif}.form-grid{grid-template-columns:1fr 1fr;gap:18px;display:grid}.full{grid-column:1/-1}label{color:#521d20;font-size:13px;font-weight:600;display:block}label small{color:#755d50;margin:5px 0;font-weight:400;display:block}input:not([type=checkbox]),select,textarea{color:#34272a;background:#fffdf8;border:1px solid #cbb786;border-radius:3px;width:100%;margin:7px 0 0;padding:12px;font:14px DM Sans,Arial,sans-serif;display:block}textarea{resize:vertical}.check{align-items:flex-start;gap:10px;margin:17px 0;font-weight:400;line-height:1.6;display:flex}.check input{accent-color:#851d22;flex-shrink:0;margin-top:4px}.form-buttons{flex-wrap:wrap;gap:12px;margin-top:20px;display:flex}.upload-preview{object-fit:contain;border:4px solid #e8d5ac;max-width:180px;max-height:180px;margin:10px 0}.honeypot{position:absolute;left:-9999px}.directory-toolbar{align-items:end;gap:20px;margin:28px 0;display:flex}.directory-toolbar label:first-child{flex:1}.directory-toolbar label:last-child{min-width:210px}.directory-empty{text-align:center;color:#755d50;background:#fbf1db;border:1px dashed #c5a571;padding:40px 22px;line-height:1.8}.directory-empty h3{color:#851d22;font:700 23px Georgia,serif}.member-grid{grid-template-columns:repeat(3,1fr);gap:20px;display:grid}.member-card{text-align:center;overflow-wrap:anywhere;background:#fff8e8;border:1px solid #d9c295;padding:22px 18px}.member-card h3{margin:15px 0 8px;font:700 22px Georgia,serif}.member-photo,.member-initials{border:3px solid #d5a438;border-radius:50%;width:105px;height:105px;margin:auto}.member-photo{object-fit:cover}.member-initials{color:#ffdf94;background:#851d22;justify-content:center;align-items:center;font:700 34px Georgia,serif;display:flex}.member-card p{font-size:13px;line-height:1.7}.member-card a{color:#851d22;margin:8px 0;font-size:12px;display:block}.graduation-name{color:#755d50;font-style:italic}.member-bio{white-space:pre-wrap}.group-banner{text-align:center;background:#e8b64e;border:1px solid #c09130;margin:35px 0;padding:28px}.group-banner h3{margin:0 0 12px}.group-banner p{font-size:14px;line-height:1.8}.group-banner>a{margin:17px 0 0;font-size:13px;display:block}.organizer-section{border-top:1px solid #cbb786;margin-top:30px;padding-top:25px}.organizer-section textarea{margin-bottom:16px}.review-card{background:#fff9e9;border:1px solid #d1b67e;margin:20px 0;padding:22px}.review-card h4{margin:0 0 15px;font:700 22px Georgia,serif}.review-card p{white-space:pre-wrap;font-size:13px;line-height:1.6}.status-error{color:#7b1723;background:#fae5e7;border:1px solid #b34953;padding:15px}.status-success{color:#5c4617;background:#fff1c4;border:1px solid #bc9335;padding:15px}.profile-status{font-size:13px;line-height:1.7}:is(.directory-section a:focus-visible,.directory-section input:focus-visible,.directory-section textarea:focus-visible,.directory-section select:focus-visible){outline-offset:3px;outline:3px solid #d5a438}@media (max-width:900px){header{flex-wrap:wrap;height:auto;padding:22px 5vw}nav{flex-wrap:wrap;gap:15px;font-size:14px}.member-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:650px){.form-grid,.member-grid{grid-template-columns:1fr}.profile-form-wrap{padding:20px}.directory-toolbar{flex-direction:column;align-items:stretch}.directory-actions .button{width:100%}.directory-toolbar label:last-child{min-width:0}}.private-contacts details{background:#fff9e9;border:1px solid #d1b67e;margin:8px 0;padding:14px}.private-contacts summary{cursor:pointer;font-weight:600}.private-contacts p{white-space:pre-wrap;font-size:13px}.details{max-width:1280px}.cards{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}@media (max-width:950px){.cards{grid-template-columns:1fr}}.venue-photo img{aspect-ratio:16/9;object-fit:cover}@media (min-width:951px){.event-card h3{min-height:92px}.event-card .event-time{min-height:54px}.event-card .venue-name{min-height:100px}}@supports (grid-template-rows:subgrid){@media (min-width:951px){.cards{row-gap:0}.event-card{grid-template-rows:subgrid;grid-row:span 7;display:grid}.event-card h3,.event-card .event-time,.event-card .venue-name{min-height:0}.event-card .day{justify-self:center}.event-card .venue-link{align-self:end}}}.event-contact{color:#521d20;border-top:1px solid #d1b67e;margin-top:20px;padding-top:15px;font-size:13px;line-height:1.8;display:block}.event-contact small{color:#755d50;font-size:10px;display:block}.venue-photo img[src="assets/reunion-dining.jpg"]{object-position:center bottom}.event-actions{flex-direction:column;align-self:end;gap:13px;margin-top:auto;padding-top:16px;display:flex}.event-actions .venue-link{margin:0;padding:0}.event-rsvp{width:100%;margin-top:4px}.attendee-button{color:#851d22;text-underline-offset:4px;cursor:pointer;background:0 0;border:0;padding:7px;font:600 13px DM Sans,Arial,sans-serif;text-decoration:underline}.attendee-button span{color:#755d50;margin-top:8px;font-size:11px;font-weight:400;text-decoration:none;display:block}.rsvp-dialog{color:#521d20;background:#fff8e8;border:1px solid #c99b41;border-radius:8px;width:min(680px,100% - 28px);max-height:90vh;padding:0;box-shadow:0 20px 80px #32131366}.rsvp-dialog::backdrop{background:#27181bd1}.rsvp-dialog-content{padding:35px;position:relative}.rsvp-dialog h2{margin:14px 0;padding-right:20px;font:700 30px Georgia,serif}.rsvp-when{color:#755d50;font-size:13px;line-height:1.7}.dialog-close{color:#851d22;cursor:pointer;background:0 0;border:0;padding:5px;font-size:30px;position:absolute;top:10px;right:14px}.rsvp-tabs{border-bottom:1px solid #ccb482;gap:15px;margin:22px 0;display:flex}.rsvp-tabs button{cursor:pointer;color:#755d50;background:0 0;border:0;border-bottom:3px solid #0000;padding:12px 4px;font:600 13px DM Sans,Arial,sans-serif}.rsvp-tabs .active{color:#851d22;border-bottom-color:#851d22}.attendee-total{font-size:15px}.attendee-total strong{color:#851d22;font:700 34px Georgia,serif}.attendee-list ul{margin:20px 0;padding:0;list-style:none}.attendee-list li{overflow-wrap:anywhere;border-bottom:1px solid #e7d6b5;align-items:center;gap:12px;padding:13px 0;display:flex}.attendee-list li small{color:#755d50;white-space:nowrap;margin-left:auto}.attendee-icon{color:#ffdf94;background:#851d22;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font:600 14px Georgia,serif;display:flex}.rsvp-organizer{max-width:1160px;margin:0 auto;padding:0 6vw 25px}.rsvp-admin-event{margin:24px 0}.rsvp-admin-event h3{font:700 23px Georgia,serif}.rsvp-admin-event details{background:#fff9e9;border:1px solid #d1b67e;margin:10px 0;padding:15px}.rsvp-admin-event summary{cursor:pointer;font-size:14px;font-weight:600}.rsvp-admin-event p{white-space:pre-wrap;font-size:13px}@media (max-width:650px){.rsvp-dialog-content{padding:24px}.rsvp-dialog h2{font-size:26px}}.registration-events{border-top:2px solid #d1b67e;margin-top:28px;padding-top:20px}.registration-events h3{font:700 24px Georgia,serif}.registration-event{background:#fff3d8;border:1px solid #d1b67e;margin:20px 0;padding:18px 20px}.registration-event legend{color:#851d22;padding:0 8px;font:700 20px Georgia,serif}.registration-event>p{color:#755d50;margin-top:0;font-size:13px;line-height:1.8}.attendance-choices{flex-wrap:wrap;gap:25px;display:flex}.attendance-choices label{align-items:center;gap:8px;font-weight:500;display:flex}.attendance-choices input{accent-color:#851d22;display:inline-block;width:auto!important;margin:0!important}.event-guests{max-width:250px;margin-top:17px}#registration-form{scroll-margin-top:25px}.maybe-attendees{background:#fff1ca;border:1px solid #d1b67e;margin:24px 0;padding:18px}.maybe-attendees h3{margin:0 0 10px;font:700 22px Georgia,serif}.maybe-attendees>p{font-size:13px;line-height:1.7}.header-identity{flex-shrink:0;align-items:center;gap:17px;display:flex}.mascot-link{justify-content:center;align-items:center;display:flex}.header-mascot{object-fit:contain;filter:drop-shadow(0 2px 1px #42101950);width:78px;height:72px;display:block}@media (max-width:700px){.header-identity{gap:12px}.header-mascot{width:60px;height:58px}}
