:root{
  --maroon:#6E1423; --red:#C31E33; --ink:#201C1B; --grey:#6B6461;
  --white:#FFFFFF; --offwhite:#FAF8F6; --line:#E7E1DC; --stripe:#F1EBE6;
  --red-bg:#C31E33;
}
:root[data-theme="dark"]{
  --maroon:#8A1B2E; --red:#FF6F82; --red-bg:#C8283F; --ink:#F3EEEA; --grey:#C4BBB6;
  --white:#141110; --offwhite:#1C1817; --line:#332D2B; --stripe:#242020;
  color-scheme:dark;
}
*{margin:0;padding:0;box-sizing:border-box}
body{background:var(--white);color:var(--ink);font-family:'Inter',sans-serif;line-height:1.7;font-size:16px}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.eyebrow{font-size:.8rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--red)}
.container{max-width:1180px;margin:0 auto;padding:0 2rem}
.red{color:var(--red)}

/* nav */
nav{position:sticky;top:0;z-index:50;background:var(--white);border-bottom:1px solid var(--line)}
.nav-inner{max-width:1180px;margin:0 auto;padding:1.1rem 2rem;display:flex;justify-content:space-between;align-items:center}
.logo{order:1;display:flex;align-items:center}
.logo img{height:1.5rem;width:auto;display:block}
nav ul{order:2;margin-left:auto;display:flex;gap:2.2rem;list-style:none;align-items:center}
nav ul a{font-size:.85rem;font-weight:500;color:var(--ink)}
nav ul a:hover,nav ul a[aria-current]{color:var(--red)}
.nav-cta{background:var(--red-bg);color:#fff!important;padding:.6rem 1.3rem;border-radius:2px;font-weight:600!important}
.nav-cta:hover{background:var(--maroon)}
.nav-toggle{display:none;order:2;margin-left:auto;width:38px;height:38px;align-items:center;justify-content:center;background:none;border:1.5px solid var(--line);border-radius:2px;color:var(--ink);cursor:pointer}
.nav-toggle:hover{border-color:var(--red);color:var(--red)}
.theme-toggle{order:3;margin-left:1.2rem;width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;background:none;border:1.5px solid var(--line);border-radius:2px;color:var(--ink);cursor:pointer;transition:.15s}
.theme-toggle:hover{border-color:var(--red);color:var(--red)}

/* buttons */
.btn{display:inline-block;font-size:.85rem;font-weight:600;padding:.9rem 1.7rem;border-radius:2px;border:1.5px solid var(--ink);transition:.15s;cursor:pointer;background:none;font-family:inherit}
.btn.solid{background:var(--ink);color:var(--white);border-color:var(--ink)}
.btn.solid:hover{background:var(--red-bg);border-color:var(--red-bg);color:#fff}
.btn.outline{background:transparent;color:var(--ink)}
.btn.outline:hover{background:var(--ink);color:var(--white)}
.btn.small{padding:.6rem 1.2rem;font-size:.78rem}
.cta-row{display:flex;gap:.9rem;flex-wrap:wrap}

/* page header band (non-home pages) */
.page-head{padding:4rem 0 3rem;border-bottom:1px solid var(--line)}
.page-head h1{font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:clamp(3rem,8vw,6rem);text-transform:uppercase;line-height:.92}
.page-head h1 .accent{color:var(--red)}
.page-head.with-photo{position:relative;overflow:hidden;isolation:isolate}
.page-head.with-photo::before{content:"";position:absolute;inset:0;z-index:-2;background:var(--photo) var(--photo-pos,50% 50%)/var(--photo-size,cover) no-repeat;opacity:var(--photo-opacity,.45);-webkit-mask-image:linear-gradient(90deg,transparent var(--photo-fade-start,0%),#000 var(--photo-fade,0%));mask-image:linear-gradient(90deg,transparent var(--photo-fade-start,0%),#000 var(--photo-fade,0%))}
.page-head.with-photo::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,var(--white) 0%,color-mix(in srgb,var(--white) 78%,transparent) 48%,color-mix(in srgb,var(--white) 25%,transparent) 100%)}
@media(max-width:700px){.page-head.with-photo::before{background-size:cover!important;background-position:68% center!important;-webkit-mask-image:none!important;mask-image:none!important}.page-head.with-photo::after{background:color-mix(in srgb,var(--white) 80%,transparent)}}
.page-head .lede{max-width:36rem;margin-top:1.2rem;color:var(--grey);font-size:1.05rem}

section{padding:4.5rem 0}
h2{font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:clamp(2.4rem,5.5vw,3.6rem);text-transform:uppercase;margin:.4rem 0 1.2rem}

/* stats strip */

.ph{background:repeating-linear-gradient(45deg,var(--offwhite) 0 16px,var(--stripe) 16px 32px);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;color:var(--grey);font-size:.8rem;text-align:center;padding:.5rem}
.ph.hero-photo{aspect-ratio:21/7}
.ph.sq{aspect-ratio:1}

/* about / bordered sections */
.bordered{border-bottom:1px solid var(--line)}
.about-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:3.5rem;align-items:start}
blockquote{border-left:3px solid var(--red);padding-left:1.4rem;font-size:1.3rem;font-weight:500;margin-bottom:1.6rem}
.about-grid p,.muted{color:var(--grey)}

/* subteams / chips */
.subteams{background:var(--offwhite)}
.chip-row{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1.2rem}
.chip{border:1px solid var(--line);background:var(--white);padding:.55rem 1rem;font-size:.85rem;color:var(--ink);font-weight:600;border-radius:2px}
.chip b{color:var(--ink);font-weight:600}

/* section header row */
.head-row{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:2.2rem;flex-wrap:wrap;gap:1rem}
.social-links{display:flex;gap:1.4rem}
.head-row a{font-size:.85rem;font-weight:600;color:var(--red)}

/* cards */
.card{border:1px solid var(--line);padding:1.7rem;transition:.15s;display:block}
.card:hover{border-color:var(--red)}
.card h3{font-weight:700;font-size:1.2rem;margin:.5rem 0}
.card p{color:var(--grey);font-size:.93rem}
.tag{display:inline-block;font-size:.65rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#fff;background:var(--maroon);padding:.2rem .55rem;margin-left:.6rem;border-radius:2px}
.grid2{display:grid;grid-template-columns:repeat(2,1fr);gap:1.6rem}

/* social */

/* team page */
.member-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));align-items:start;gap:1.4rem}
.member{border:1px solid var(--line);transition:.15s}
.member:hover{border-color:var(--red)}
.avatar{height:96px;display:flex;align-items:center;justify-content:center;background:var(--offwhite);color:var(--red);font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:2.4rem;letter-spacing:.04em;border-bottom:1px solid var(--line)}
.member .info{padding:1rem 1.1rem}
.member h3{font-weight:700;font-size:1.02rem}
.member .role{color:var(--red);font-size:.72rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;margin-top:.25rem}
.member .meta{color:var(--grey);font-size:.85rem;margin-top:.3rem}

.roster-list{list-style:none}
.roster-list li{display:flex;gap:1rem;align-items:baseline;padding:.85rem 0;border-bottom:1px solid var(--line)}
.roster-list li b{font-weight:600}
.roster-list li span{margin-left:auto;color:var(--grey);font-size:.85rem}
.roster-cols{columns:2;column-gap:3rem}

.ig-live{position:relative;overflow:hidden;aspect-ratio:3/1;container-type:inline-size}
.ig-live iframe{position:absolute;left:0;top:-157px;width:100%;height:1400px;border:0}
@container (max-width:485px){.ig-live iframe{top:-146px}}

/* gallery */
.gallery{outline-offset:6px}
.gallery .viewer{position:relative;background:var(--offwhite);border:1px solid var(--line)}
.gallery .slide{margin:0}
.gallery .slide img,.gallery .slide .ph{display:block;width:100%;height:min(68vh,640px);object-fit:contain;cursor:pointer}
.gallery .slide figcaption{position:absolute;left:0;right:0;bottom:0;padding:.7rem 1rem;color:#fff;font-size:.9rem;background:linear-gradient(transparent,rgba(0,0,0,.6));pointer-events:none}
.gallery .slide figcaption:empty{display:none}
.gallery-btn{position:absolute;top:50%;transform:translateY(-50%);width:46px;height:46px;border-radius:50%;border:none;background:rgba(20,17,16,.6);color:#fff;font-size:1.3rem;line-height:1;cursor:pointer;transition:background .15s}
.gallery-btn:hover,.gallery-btn:focus-visible{background:var(--red-bg)}
.gallery-btn.prev{left:.8rem}
.gallery-btn.next{right:.8rem}
.gallery-count{text-align:center;color:var(--grey);font-size:.85rem;margin:.8rem 0 .6rem}
.thumbs{position:relative;display:flex;gap:.5rem;overflow-x:auto;padding:.2rem 0 .5rem}
.thumb{flex:0 0 auto;width:84px;height:60px;padding:0;border:2px solid transparent;background:var(--offwhite);opacity:.65;cursor:pointer;transition:opacity .15s,border-color .15s}
.thumb img{display:block;width:100%;height:100%;object-fit:cover}
.thumb:hover{opacity:1}
.thumb.active{opacity:1;border-color:var(--red)}
.season-photo{display:block;width:100%;margin-top:1.4rem;height:auto;border:1px solid var(--line)}

/* news page signup box */
.card.signup-card{background:var(--maroon);border-color:var(--maroon);color:#fff}
.card.signup-card:hover{border-color:var(--maroon)}
.signup-card .eyebrow{color:#F3C9CF}
.signup-card h3{color:#fff}
.signup-card p.muted,.signup-card .muted{color:#F0D8DB}
.signup-card input{border:1px solid transparent;background:#fff;color:#201C1B;padding:.75rem 1rem;font-family:inherit}
.signup-card input::placeholder{color:#7A6E6B}
.signup-card button{background:#fff;color:var(--maroon);border:none;padding:.8rem 1rem;font-weight:700;cursor:pointer;font-family:inherit;transition:background .15s}
.signup-card button:hover{background:#F3C9CF}

/* news cards: short text preview, "Read more" shows the full email (links, buttons, images) */
.news-preview{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;color:var(--grey);font-size:.93rem;white-space:pre-line}
.news-full{color:var(--grey);font-size:.93rem}
.news-full[hidden],.news-preview[hidden]{display:none}
.news-full p,.news-full ul,.news-full ol,.news-full blockquote,.news-full figure,.news-full pre{margin:0 0 1rem}
.news-full ul,.news-full ol{padding-left:1.3rem}
.news-full h4{font-family:'Barlow Condensed',sans-serif;font-size:1.35rem;text-transform:uppercase;color:var(--ink);margin:1.2rem 0 .5rem}
.news-full strong,.news-full b{color:var(--ink)}
.news-full a{color:var(--red);text-decoration:underline}
.news-full a.news-btn{display:inline-block;background:var(--red-bg);color:#fff;text-decoration:none;font-weight:600;padding:.65rem 1.3rem;border-radius:2px;margin:.3rem 0}
.news-full a.news-btn:hover{background:var(--maroon)}
.news-full img{display:block;max-width:100%;height:auto;margin:1rem 0}
.news-full blockquote{border-left:3px solid var(--red);padding-left:1rem}
.news-full pre{overflow-x:auto;background:var(--offwhite);padding:.8rem}
.news-full hr{border:0;border-top:1px solid var(--line);margin:1.2rem 0}
.news-actions{display:flex;flex-wrap:wrap;align-items:center;gap:1.4rem;margin-top:.9rem}
.news-toggle{background:none;border:none;padding:0;font:inherit;font-size:.85rem;font-weight:700;color:var(--red);cursor:pointer}
.news-toggle:hover{text-decoration:underline}
.news-toggle:focus-visible,.news-more:focus-visible{outline:2px solid var(--red);outline-offset:3px}
.news-more{font-size:.85rem;font-weight:600;color:var(--red)}
.news-more:hover{text-decoration:underline}

/* alumni legacy grid */
.alumni-season{border-top:1px solid var(--line);padding:2rem 0;display:grid;grid-template-columns:200px 1fr;gap:2rem}
.alumni-season .yr{font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:1.9rem;text-transform:uppercase}
.alumni-season .yr small{display:block;font-family:'Inter';font-weight:400;font-size:.72rem;letter-spacing:.08em;color:var(--grey);text-transform:uppercase;margin-top:.3rem}
.alumni-names{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));align-items:stretch;gap:.6rem}
.alumni-names li{list-style:none;font-size:.85rem;color:var(--ink);background:var(--offwhite);border:1px solid var(--line);padding:.4rem .85rem;border-radius:2px}
.alumni-names li{position:relative;transition:transform .15s ease,box-shadow .15s ease}
.alumni-names li:hover{transform:scale(1.1);z-index:2;box-shadow:0 4px 14px rgba(0,0,0,.18)}
.alumni-names li b{font-weight:600}
.alumni-names li{display:grid;grid-template-columns:1fr auto;column-gap:.6rem;align-items:baseline;align-content:center}
.alumni-names li em{font-style:normal;font-weight:400;color:var(--grey);opacity:.8;margin:0}
.alumni-names li span{grid-column:1/-1;display:block;font-size:.72rem;color:var(--grey);margin-top:.15rem}
.alumni-label{font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--grey);font-weight:500;margin:1rem 0 .5rem}
.alumni-label:first-child{margin-top:0}

/* sponsor tiers */
.tiers{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:1.2rem}
.tier{border:1px solid var(--line);padding:1.7rem;border-top:4px solid var(--maroon)}
.tier.top{border-top-color:var(--red)}
.tier h3{font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:1.4rem;text-transform:uppercase}
.tier .amt{color:var(--red);font-weight:700;font-size:.85rem;margin:.3rem 0 1rem}
.tier ul{list-style:none}
.tier li{padding:.5rem 0;border-bottom:1px solid var(--line);font-size:.87rem;color:var(--grey)}
.partner-logos{display:flex;flex-wrap:wrap;justify-content:center;gap:clamp(.6rem,2vw,1.4rem)}
.partner-logos .card{flex:0 1 clamp(110px,22vw,235px);min-width:0;padding:clamp(.4rem,1.2vw,1rem);border-radius:4px}
.partner-logos .card img{max-height:clamp(50px,9.5vw,116px);max-width:100%;width:auto}
.partner-logos .card b{font-size:clamp(.78rem,1.5vw,1.05rem)}
.partner-thanks{flex:0 0 100%;text-align:center;margin-top:.8rem;font-size:clamp(1rem,2vw,1.2rem);color:var(--ink)}
:root[data-theme="dark"] .logo img,:root[data-theme="dark"] .footer-logo img,:root[data-theme="dark"] .hero-mark{filter:brightness(1.7) saturate(1.15)}
/* homepage hero: team photo under the text; the empty sky at its top fades into the page so no face is covered */
.hero-team{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;object-position:center 60%;margin-top:1.5rem;-webkit-mask-image:linear-gradient(180deg,transparent 0%,#000 30%);mask-image:linear-gradient(180deg,transparent 0%,#000 30%)}
:root[data-theme="dark"] .partner-logos .card{background:#F3EEEA}
:root[data-theme="dark"] .partner-logos .card b{color:#201C1B}
.partner-logos .card{border-color:transparent}
.partner-logos .card{transition:transform .15s ease,border-color .15s ease}
.partner-logos .card:hover{border-color:var(--red);transform:scale(1.08)}
@media (prefers-reduced-motion:reduce){.alumni-names li,.partner-logos .card{transition:none}.alumni-names li:hover,.partner-logos .card:hover{transform:none}}
.partner-logos div{aspect-ratio:2/1;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;color:var(--grey);font-size:.72rem}

/* about: process steps + timeline */
.steps{display:grid;grid-template-columns:repeat(5,1fr);gap:1.2rem;margin-top:1.6rem}
.step{border:1px solid var(--line);border-top:4px solid var(--maroon);padding:1.4rem}
.step span{font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:1.8rem;color:var(--red)}
.step h3{font-family:'Barlow Condensed',sans-serif;font-size:1.4rem;text-transform:uppercase;margin:.2rem 0 .4rem}
.step p{color:var(--grey);font-size:.88rem;line-height:1.55}
.timeline{border-left:2px solid var(--line);margin-left:.5rem}
.tl-item{display:grid;grid-template-columns:200px 1fr;gap:2rem;padding:0 0 2.6rem 2rem;position:relative}
.tl-item:last-child{padding-bottom:0}
.tl-item::before{content:"";position:absolute;left:-7px;top:.55rem;width:12px;height:12px;border-radius:50%;background:var(--maroon)}
.tl-item.now::before{background:var(--red);box-shadow:0 0 0 4px var(--line)}
.tl-year{font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:1.9rem;text-transform:uppercase}
.tl-year small{display:block;font-family:'Inter';font-weight:400;font-size:.72rem;letter-spacing:.08em;color:var(--grey);margin-top:.3rem}
.tl-body h3{font-weight:700;font-size:1.2rem;margin-bottom:.4rem}
.tl-body p{color:var(--grey)}

/* footer */
footer{background:var(--offwhite);border-top:1px solid var(--line);padding:3.5rem 0 2rem}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:2.5rem}
.footer-grid h4{font-family:'Barlow Condensed',sans-serif;font-size:1rem;letter-spacing:.08em;text-transform:uppercase;color:var(--grey);margin-bottom:1rem}
.footer-grid ul{list-style:none}
.footer-grid li{margin-bottom:.6rem;font-size:.9rem;color:var(--grey)}
.footer-grid a:hover{color:var(--red)}
.footer-logo{margin-bottom:.8rem}
.footer-logo img{height:1.8rem;width:auto}
.hero-mark{display:inline-block;height:.72em;width:auto;vertical-align:baseline;margin-left:.05em}
.footer-bottom{border-top:1px solid var(--line);margin-top:2.5rem;padding-top:1.5rem;display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem;font-size:.8rem;color:var(--grey)}
.mail-inline{display:flex;gap:.5rem;margin-top:.5rem}
.mail-inline input{background:var(--white);border:1px solid var(--line);color:var(--ink);padding:.7rem .9rem;font-family:inherit;width:100%}
.mail-inline button{background:var(--red-bg);color:#fff;border:none;padding:.7rem 1.1rem;font-weight:600;cursor:pointer}

@media(max-width:900px){
  .nav-inner{flex-wrap:wrap}
  .nav-toggle{display:inline-flex}
  nav ul{display:none;order:4;flex-basis:100%;width:100%;flex-direction:column;align-items:stretch;gap:0;margin-top:1.1rem;padding-top:.6rem;border-top:1px solid var(--line)}
  nav ul.open{display:flex}
  nav ul li{width:100%}
  nav ul a{display:block;padding:.9rem 0;border-bottom:1px solid var(--line)}
  nav ul li:last-child a{border-bottom:none}
  .nav-cta{display:inline-block;margin-top:.9rem;text-align:center;border-bottom:none!important}
  .about-grid{grid-template-columns:1fr}
  .grid2{grid-template-columns:1fr}
    .footer-grid{grid-template-columns:1fr}
  .steps{grid-template-columns:1fr 1fr}
  .tl-item{grid-template-columns:1fr;gap:.4rem}
  .roster-cols{columns:1}
  .alumni-season{grid-template-columns:1fr;gap:.8rem}
  .alumni-names{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}
}
