:root{--ink:#092f34;--deep:#063d43;--sea:#0a5960;--coral:#f26b4f;--gold:#e6b85c;--foam:#f3f7f4;--white:#fff;--muted:#607578;--line:#092f3426}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--foam);color:var(--ink);margin:0;font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.5}a{color:inherit}.site-header{z-index:10;color:#fff;border-bottom:1px solid #ffffff47;justify-content:space-between;align-items:center;padding:1.4rem clamp(1.25rem,4vw,4rem);display:flex;position:absolute;top:0;left:0;right:0}.brand{letter-spacing:.04em;align-items:center;gap:.7rem;font-weight:700;text-decoration:none;display:flex}.brand-mark{border:1px solid;border-radius:50%;place-items:center;width:2.6rem;height:2.6rem;font-family:Georgia,serif;font-size:1.3rem;display:grid}.site-header nav{gap:clamp(1rem,3vw,2.4rem);display:flex}.site-header nav a{font-size:.9rem;text-decoration:none}.hero{background:var(--deep);align-items:flex-end;height:94vh;min-height:760px;display:flex;position:relative;overflow:hidden}.hero-image{background-image:url(/goa-reunion-hero.png),linear-gradient(135deg,#165e68,#ee8a5e);background-position:50%;background-size:cover;position:absolute;inset:0}.hero-shade{background:linear-gradient(90deg,#042327c7 0%,#0423276b 50%,#04232714 100%),linear-gradient(#0000 45%,#031f228c);position:absolute;inset:0}.hero-content{z-index:2;color:#fff;max-width:870px;padding:8rem clamp(1.25rem,7vw,7rem) clamp(4rem,9vh,7rem);position:relative}.eyebrow,.chapter{text-transform:uppercase;letter-spacing:.18em;font-size:.76rem;font-weight:700}.hero h1{letter-spacing:-.055em;margin:.9rem 0 1.5rem;font-family:Georgia,Times New Roman,serif;font-size:clamp(3.7rem,8vw,8.2rem);font-weight:400;line-height:.86}.hero h1 em{color:#f6c86d;font-weight:400}.hero-copy{color:#ffffffe6;max-width:600px;font-size:clamp(1.05rem,1.8vw,1.35rem)}.button{background:var(--coral);color:#fff;margin-top:1.2rem;padding:.95rem 1.25rem;font-weight:700;text-decoration:none;display:inline-block}.hero-stamp{z-index:2;color:#fff;letter-spacing:.17em;border:1px solid #ffffffb3;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;width:9rem;height:9rem;font-size:.64rem;display:flex;position:absolute;bottom:clamp(2rem,7vh,5rem);right:clamp(1.5rem,6vw,6rem);transform:rotate(7deg)}.hero-stamp strong{letter-spacing:0;font:3.1rem/1 Georgia,serif}.reunion-band{background:var(--gold);grid-template-columns:1fr 2fr;gap:3rem;padding:3.2rem clamp(1.25rem,7vw,7rem);display:grid}.reunion-band h2{margin:.5rem 0;font:2.5rem/1 Georgia,serif}.eyebrow.dark{color:#6d4700}.event-details{grid-template-columns:repeat(3,1fr);align-items:center;gap:1rem;display:grid}.event-details div{border-left:1px solid #092f344d;padding-left:1.2rem}.event-details span{text-transform:uppercase;letter-spacing:.12em;margin-bottom:.35rem;font-size:.75rem;display:block}.event-details strong{font-size:1.1rem}.intro{grid-template-columns:1fr 2fr;gap:3rem;padding:8rem clamp(1.25rem,7vw,7rem);display:grid}.chapter{color:var(--coral)}.intro h2,.classbook h2,.closing h2{letter-spacing:-.04em;margin:0;font:400 clamp(2.6rem,5vw,5.5rem)/.98 Georgia,serif}.intro>div p{max-width:700px;color:var(--muted);font-size:1.15rem}.quote-stage{background:var(--deep);color:#fff;text-align:center;padding:clamp(4rem,9vw,8rem)}.quote-stage blockquote{color:#f7e6b8;max-width:970px;margin:0 auto 1.4rem;font:italic 400 clamp(2rem,4.3vw,4.4rem)/1.12 Georgia,serif}.quote-stage>p{letter-spacing:.12em;text-transform:uppercase;font-size:.78rem}.quote-controls{justify-content:center;align-items:center;gap:1rem;margin-top:2.5rem;display:flex}.quote-controls button{color:#fff;cursor:pointer;background:0 0;border:1px solid #fff6;width:3rem;height:3rem;font-size:1.2rem}.quote-controls button:hover{color:var(--deep);background:#fff}.quote-controls span{font-variant-numeric:tabular-nums;min-width:4rem}.classbook{padding:8rem clamp(1.25rem,7vw,7rem)}.classbook-head{justify-content:space-between;align-items:flex-end;gap:2rem;display:flex}.search-wrap{width:min(420px,100%)}.search-wrap input{border:1px solid var(--line);width:100%;color:var(--ink);font:inherit;background:#fff;border-radius:0;outline:none;padding:1rem 1.1rem}.search-wrap input:focus{border-color:var(--sea);box-shadow:0 0 0 3px #0a59601f}.result-count{color:var(--muted);margin:2rem 0 1rem}.card-grid{background:var(--line);border:1px solid var(--line);grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;display:grid}.card{background:#fff;flex-direction:column;min-height:300px;padding:2rem;display:flex}.card-number{color:var(--coral);font:1rem Georgia,serif}.card h3{margin:1rem 0 .25rem;font:400 1.75rem/1.1 Georgia,serif}.nickname{color:var(--sea);margin:0 0 1.2rem;font-weight:700}.philosophy{margin:auto 0 1.5rem;font:italic 1.06rem/1.45 Georgia,serif}.meta{border-top:1px solid var(--line);color:var(--muted);padding-top:1rem;font-size:.85rem}.meta strong{color:var(--ink);text-transform:uppercase;letter-spacing:.1em;margin-bottom:.25rem;font-size:.68rem;display:block}.empty{text-align:center;background:#fff;padding:4rem}.closing{text-align:center;background:var(--coral);color:#fff;padding:9rem 1.5rem}.closing h2{font-size:clamp(3.5rem,8vw,8rem)}.closing>p:not(.eyebrow){font-size:1.1rem}.text-link{margin-top:2rem;font-weight:700;display:inline-block}footer{color:#ffffffbf;letter-spacing:.08em;background:#032a2e;justify-content:space-between;padding:1.4rem clamp(1.25rem,4vw,4rem);font-size:.8rem;display:flex}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (max-width:850px){.site-header nav{display:none}.hero{min-height:680px}.hero-stamp{display:none}.reunion-band,.intro,.event-details{grid-template-columns:1fr}.event-details div{border-top:1px solid #092f344d;border-left:0;padding:.8rem 0}.classbook-head{flex-direction:column;align-items:flex-start}.card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:560px){.site-header{padding:1rem 1.25rem}.brand{font-size:.9rem}.hero-content{padding-bottom:4rem}.hero h1{font-size:3.65rem}.reunion-band,.intro,.classbook{padding:4.5rem 1.25rem}.card-grid{grid-template-columns:1fr}.card{min-height:270px}.quote-stage{padding:4.5rem 1.25rem}footer{flex-direction:column;gap:.4rem}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}.photo-wall{background:#e8f0ed;padding:8rem clamp(1.25rem,7vw,7rem)}.photo-head{grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr);align-items:start;gap:clamp(2rem,6vw,6rem);display:grid}.photo-head h2{letter-spacing:-.04em;margin:0;font:400 clamp(2.8rem,5vw,5.5rem)/.98 Georgia,serif}.photo-head>div>p:last-child{color:var(--muted);max-width:600px;font-size:1.1rem}.upload-card{border-top:5px solid var(--coral);background:#fff;gap:1rem;padding:1.6rem;display:grid}.upload-card label,.entry-form label,.budget-form label{text-transform:uppercase;letter-spacing:.08em;gap:.35rem;font-size:.78rem;font-weight:700;display:grid}.upload-card input,.entry-form input,.entry-form select,.budget-form input{border:1px solid var(--line);font:inherit;color:var(--ink);background:#fff;padding:.85rem}.upload-card .file-field{border:1px dashed var(--sea);color:var(--sea);cursor:pointer;align-items:center;gap:.7rem;padding:1rem;display:flex}.file-field input{opacity:0;width:1px;height:1px;position:absolute}.upload-card button,.finance-actions button,.entry-form button,.budget-form button{background:var(--coral);color:#fff;cursor:pointer;border:0;justify-content:center;align-items:center;gap:.5rem;padding:.9rem 1rem;font:700 .9rem Arial,sans-serif;display:flex}.upload-card>p{min-height:1.2rem;color:var(--sea);margin:0;font-size:.85rem}.photo-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-top:3rem;display:grid}.photo-grid figure{background:#fff;margin:0}.photo-grid img{aspect-ratio:4/3;object-fit:cover;width:100%;display:block}.photo-grid figcaption{gap:.25rem;padding:1rem;display:grid}.photo-grid figcaption strong{font-family:Georgia,serif}.photo-grid figcaption span{color:var(--muted);font-size:.82rem}.gallery-empty,.gallery-state{text-align:center;color:var(--muted);padding:4rem 1rem}.gallery-empty svg{color:var(--coral)}.gallery-empty h3{color:var(--ink);margin:.8rem 0 .2rem;font:1.7rem Georgia,serif}.finance-page{background:var(--foam);min-height:100vh}.finance-nav{background:var(--deep);color:#fff;justify-content:space-between;align-items:center;height:72px;padding:0 clamp(1.25rem,5vw,5rem);display:flex}.finance-nav a{align-items:center;gap:.5rem;text-decoration:none;display:flex}.finance-nav span{text-transform:uppercase;letter-spacing:.13em;font-size:.78rem}.finance-hero{background:var(--deep);color:#fff;padding:6rem clamp(1.25rem,7vw,7rem)}.finance-hero h1{letter-spacing:-.05em;margin:1rem 0;font:400 clamp(3rem,7vw,7rem)/.9 Georgia,serif}.finance-hero h1 em{color:var(--gold);font-weight:400}.finance-hero>p:last-child{color:#fffc;font-size:1.1rem}.finance-content{padding:clamp(2rem,5vw,5rem) clamp(1.25rem,7vw,7rem) 7rem}.finance-summary{background:var(--line);border:1px solid var(--line);grid-template-columns:repeat(4,1fr);gap:1px;margin-top:-6.5rem;display:grid;position:relative}.finance-summary article{background:#fff;padding:1.5rem}.finance-summary span{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:.7rem;font-size:.72rem;display:block}.finance-summary strong{font:400 clamp(1.5rem,2.8vw,2.6rem) Georgia,serif}.finance-actions{justify-content:flex-end;gap:.75rem;margin:2rem 0;display:flex}.finance-actions label{border:1px solid var(--line);background:#fff;align-items:center;gap:.5rem;padding:0 .8rem;display:flex}.finance-actions input{font:inherit;border:0;outline:0;max-width:150px;padding:.8rem 0}.finance-message{color:#6d4700;background:#fff2d6;padding:.8rem 1rem}.entry-form{border-top:5px solid var(--gold);background:#fff;grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:2rem;padding:1.5rem;display:grid}.entry-form button{align-self:end}.finance-grid{grid-template-columns:minmax(0,2fr) minmax(280px,1fr);gap:1.5rem;display:grid}.finance-grid>section,.finance-grid>aside{background:#fff;padding:1.5rem}.finance-grid h2{margin:0 0 1rem;font:400 1.7rem Georgia,serif}.section-title{justify-content:space-between;align-items:center;display:flex}.section-title span{color:var(--muted);font-size:.8rem}.finance-table-wrap{overflow-x:auto}.finance-table-wrap table{border-collapse:collapse;width:100%}.finance-table-wrap th{text-align:left;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);border-bottom:1px solid var(--line);padding:.7rem;font-size:.68rem}.finance-table-wrap td{border-bottom:1px solid var(--line);padding:.85rem .7rem;font-size:.9rem}.finance-table-wrap td.expense{color:#b4442f}.finance-table-wrap td.contribution{color:var(--sea)}.delete-button{color:var(--muted);cursor:pointer;background:0 0;border:0}.finance-empty{text-align:center;color:var(--muted);padding:3rem 1rem}.category-row{grid-template-columns:1fr auto;gap:.35rem;margin:1rem 0;display:grid}.category-row i{background:var(--coral);grid-column:1/-1;height:5px;display:block}.budget-form{border-top:1px solid var(--line);gap:.8rem;margin-top:2rem;padding-top:1.5rem;display:grid}.budget-form button{background:var(--sea)}@media (max-width:850px){.photo-head,.finance-grid{grid-template-columns:1fr}.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.finance-summary{grid-template-columns:repeat(2,1fr);margin-top:-4rem}.entry-form{grid-template-columns:repeat(2,1fr)}}@media (max-width:560px){.photo-wall{padding:4.5rem 1.25rem}.photo-grid{grid-template-columns:1fr}.finance-summary{grid-template-columns:1fr 1fr}.finance-actions{flex-direction:column;align-items:stretch}.finance-actions label{min-height:48px}.entry-form{grid-template-columns:1fr}.finance-hero{padding-top:4rem}.finance-summary strong{font-size:1.3rem}.finance-grid>section,.finance-grid>aside{padding:1rem}}.theme-toggle{width:2.5rem;height:2.5rem;color:inherit;cursor:pointer;background:0 0;border:1px solid;border-radius:50%;place-items:center;font-size:1.15rem;display:grid}.reunion-band{grid-template-columns:minmax(220px,.75fr) minmax(420px,1.4fr);align-items:center}.countdown{border-top:1px solid #092f344d;grid-column:1/-1;grid-template-columns:repeat(4,1fr);padding-top:1.4rem;display:grid}.countdown div{text-align:center;border-left:1px solid #092f343d}.countdown div:first-child{border-left:0}.countdown strong{font-variant-numeric:tabular-nums;font:400 clamp(2rem,5vw,4rem)/1 Georgia,serif;display:block}.countdown span{text-transform:uppercase;letter-spacing:.12em;margin-top:.45rem;font-size:.67rem;display:block}.class-stats{background:var(--deep);color:#fff;grid-template-columns:repeat(4,1fr);padding:2rem clamp(1.25rem,7vw,7rem);display:grid}.class-stats div{text-align:center;border-left:1px solid #ffffff2e;padding:1.1rem}.class-stats div:first-child{border-left:0}.class-stats strong{color:var(--gold);font:400 2.8rem Georgia,serif;display:block}.class-stats span{text-transform:uppercase;letter-spacing:.13em;font-size:.72rem}.card-link{color:inherit;text-decoration:none;transition:transform .25s,box-shadow .25s}.card-link:hover{z-index:1;position:relative;transform:translateY(-5px);box-shadow:0 22px 48px #092f3426}.card-portrait{object-fit:cover;width:calc(100% + 4rem);height:230px;margin:-2rem -2rem .7rem}.profile-cta{color:var(--coral);text-transform:uppercase;letter-spacing:.06em;margin-top:1rem;font-size:.78rem;font-weight:700;display:block}[data-theme=dark]{--ink:#e8f0ef;--deep:#062e33;--sea:#75c1c3;--foam:#07181b;--white:#10282c;--muted:#a4b9ba;--line:#e6b85c38;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[data-theme=dark] .card,[data-theme=dark] .search-wrap input,[data-theme=dark] .upload-card,[data-theme=dark] .photo-grid figure,[data-theme=dark] .finance-summary article,[data-theme=dark] .finance-grid>section,[data-theme=dark] .finance-grid>aside,[data-theme=dark] .entry-form{background:var(--white);color:var(--ink)}[data-theme=dark] .photo-wall{background:#0a2023}.profile-page{background:var(--foam);min-height:100vh}.profile-nav{background:var(--deep);color:#fff;grid-template-columns:1fr auto 1fr;align-items:center;height:72px;padding:0 clamp(1rem,5vw,4rem);display:grid}.profile-nav>a{font-weight:700;text-decoration:none}.profile-nav>span{font:1.2rem Georgia,serif}.profile-nav>div{justify-self:end;align-items:center;gap:.45rem;display:flex}.profile-nav>div>a{border:1px solid #fff6;place-items:center;width:2.5rem;height:2.5rem;font-size:1.5rem;text-decoration:none;display:grid}.profile-page .theme-toggle{color:#fff}.profile-hero{text-align:center;color:#fff;background:linear-gradient(135deg,#063d43,#092f34);padding:6.5rem 1.25rem 5rem}.profile-hero h1{letter-spacing:-.045em;margin:1rem 0 .5rem;font:400 clamp(3.4rem,8vw,7.6rem)/.95 Georgia,serif}.profile-hero .eyebrow,.profile-nick{color:var(--gold)}.profile-nick{font:italic 1.3rem Georgia,serif}.profile-hero>p:last-child{color:#ffffffb8}.year-mark{grid-template-columns:1fr auto 1fr;align-items:center;gap:1rem;max-width:480px;margin:2.2rem auto;display:grid}.year-mark>span{aspect-ratio:1;border:1px solid #ffffff73;border-radius:50%;place-items:center;display:grid}.year-mark strong{color:var(--gold);font:4rem Georgia,serif}.year-mark small{letter-spacing:.18em;font:600 .6rem Arial,sans-serif;display:block}.then-and-now{grid-template-columns:1fr auto 1fr;align-items:center;gap:1.5rem;max-width:980px;margin:0 auto;padding:6rem 1.25rem;display:grid}.then-and-now figure{background:var(--white);margin:0;box-shadow:0 18px 55px #092f3421}.then-and-now img{aspect-ratio:3/4;object-fit:cover;width:100%;display:block}.then-and-now figcaption{gap:.2rem;padding:1rem;display:grid}.then-and-now figcaption strong{color:var(--coral)}.then-and-now figcaption span{color:var(--muted);font-size:.9rem}.years-bridge{text-align:center}.years-bridge strong{color:var(--coral);font:3rem Georgia,serif;display:block}.years-bridge span{text-transform:uppercase;letter-spacing:.13em;color:var(--muted);font-size:.65rem}.profile-section{padding:7rem clamp(1.25rem,7vw,7rem)}.profile-section:nth-of-type(2n){background:var(--white)}.profile-section-title{grid-template-columns:minmax(90px,.4fr) 1fr;align-items:end;margin-bottom:3rem;display:grid}.profile-section-title span{color:var(--coral);font:2.3rem Georgia,serif}.profile-section-title h2{margin:0;font:400 clamp(3rem,6vw,6rem)/.95 Georgia,serif}.profile-fields{grid-template-columns:repeat(3,1fr);gap:1rem;display:grid}.profile-fields>div,.profile-fields article{border-top:2px solid var(--gold);background:var(--foam);padding:1.4rem}.profile-fields span{text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-size:.67rem}.profile-fields p{font:1.25rem/1.4 Georgia,serif}.yearbook-card{max-width:520px;margin:4rem auto 0}.yearbook-card img{width:100%;display:block}.yearbook-card figcaption{text-align:center;color:var(--muted);margin-top:.7rem;font-size:.8rem}.now-split{grid-template-columns:minmax(280px,.7fr) 1.3fr;align-items:start;gap:clamp(2rem,6vw,6rem);display:grid}.now-split>img{aspect-ratio:3/4;object-fit:cover;width:100%}.now-split h3{margin:.2rem 0;font:400 clamp(2.4rem,5vw,4.5rem)/1 Georgia,serif}.now-split .role{color:var(--sea);font-weight:700}.now-split .location{color:var(--muted);margin-bottom:2rem}.now-split .profile-fields{grid-template-columns:1fr}.profile-thread{background:var(--deep);color:#fff;padding:7rem clamp(1.25rem,7vw,7rem)}.profile-thread>div{grid-template-columns:1fr auto 1fr;align-items:center;gap:2rem;display:grid}.profile-thread article{border:1px solid #ffffff40;padding:2rem}.profile-thread article span{color:var(--gold);font-weight:700}.profile-thread blockquote{margin:1rem 0;font:italic clamp(1.4rem,3vw,2.6rem)/1.25 Georgia,serif}.profile-thread>div>b{color:var(--gold);font-size:2rem}@media (max-width:850px){.reunion-band{grid-template-columns:1fr}.profile-nav{grid-template-columns:1fr auto}.profile-nav>span{display:none}.profile-fields,.now-split{grid-template-columns:1fr}.then-and-now{gap:.6rem}.profile-thread>div{grid-template-columns:1fr}.profile-thread>div>b{justify-self:center;transform:rotate(90deg)}}@media (max-width:560px){.site-header nav .theme-toggle{display:grid}.site-header nav{display:flex}.site-header nav>a{display:none}.class-stats{grid-template-columns:1fr 1fr}.countdown strong{font-size:2rem}.then-and-now{grid-template-columns:1fr}.years-bridge{padding:1rem}.profile-section{padding:4.5rem 1.25rem}.profile-section-title{grid-template-columns:1fr}.profile-section-title h2{font-size:3.2rem}.card-portrait{height:260px}}
