:root{
  --ink:        #0a0a0a;
  --paper:      #f4ede0;
  --paper-2:    #ebe0c8;
  --paper-3:    #fefbf3;

  --varsity-red:    #d62828;
  --varsity-red-d:  #9c1e1e;
  --field-green:    #0e5226;
  --field-green-d:  #073a18;
  --field-green-l:  #1c7a3d;
  --gold:           #f5b800;
  --sun:            #ffd84d;
  --cobalt:         #1a4ec7;
  --cream:          #fef4d6;

  --f-display:  "Archivo Black", "Anton", "Oswald", "PingFang SC", "Microsoft YaHei", sans-serif;
  --f-condensed:"Oswald", "PingFang SC", sans-serif;
  --f-cn:       "PingFang SC", "Microsoft YaHei", "Hiragino Sans GB", sans-serif;
  --f-body:     "Inter", "PingFang SC", -apple-system, sans-serif;
  --f-mono:     "JetBrains Mono", "SF Mono", ui-monospace, monospace;
  --f-script:   "Caveat", cursive;

  --maxw:       1320px;
  --pad:        clamp(1rem, 4vw, 3.5rem);
}

*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0 }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100% }
body{
  font-family:var(--f-body);
  background:var(--paper);
  color:var(--ink);
  line-height:1.5;
  font-size:16px;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img{ max-width:100%; display:block }
a{ color:inherit; text-decoration:none }
button{ font:inherit; background:none; border:0; color:inherit; cursor:pointer }
em{ font-style:italic }
::selection{ background:var(--sun); color:var(--ink) }

body::before{
  content:""; position:fixed; inset:0; pointer-events:none; z-index:1;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/></filter><rect width='100%25' height='100%25' filter='url(%23n)' opacity='0.5'/></svg>");
  opacity:.05; mix-blend-mode:multiply;
}
body > *{ position:relative; z-index:2 }

.masthead{
  position:sticky; top:0; z-index:50;
  background:var(--ink);
  color:var(--paper);
  border-bottom:3px solid var(--varsity-red);
  display:flex; align-items:center; justify-content:space-between;
  padding:.7rem clamp(1rem, 3vw, 2.5rem);
  transition:padding .2s;
}
.masthead.is-scrolled{ padding-top:.5rem; padding-bottom:.5rem }

.brand{ display:flex; align-items:center; gap:.8rem; flex-shrink:0 }
.brand__mark{
  width:38px; height:38px; object-fit:contain;
  border-radius:50%; background:#fff;
  border:2px solid var(--sun);
  padding:1px;
}
.brand__text{ line-height:1.1 }
.brand__cn{
  font-family:var(--f-display); font-size:13px;
  letter-spacing:.04em; color:var(--paper);
  text-transform:uppercase;
}
.brand__en{
  font-family:var(--f-mono); font-size:9px;
  color:var(--sun); margin-top:2px; letter-spacing:.08em;
  text-transform:uppercase; font-weight:500;
}

.nav{ display:flex; gap:.2rem; align-items:center }
.nav a{
  font-family:var(--f-display); font-size:12px;
  color:var(--paper); padding:.55rem .85rem;
  letter-spacing:.04em; text-transform:uppercase;
  position:relative;
  transition:color .15s;
}
.nav a:hover{ color:var(--sun) }
.nav a::after{
  content:""; position:absolute; left:.85rem; right:.85rem; bottom:.25rem;
  height:2px; background:var(--varsity-red);
  transform:scaleX(0); transform-origin:left;
  transition:transform .25s;
}
.nav a:hover::after{ transform:scaleX(1) }

.nav-toggle{
  display:none; flex-direction:column; gap:4px; padding:.5rem .65rem;
  background:var(--varsity-red); border-radius:0;
}
.nav-toggle span{ display:block; width:18px; height:2px; background:#fff }

@media (max-width:980px){
  .nav{
    position:fixed; top:3.6rem; right:.5rem; left:.5rem;
    flex-direction:column; align-items:stretch;
    background:var(--ink);
    border:3px solid var(--varsity-red);
    padding:1rem; gap:0;
    transform:translateY(-6px); opacity:0; visibility:hidden;
    transition:all .2s ease;
  }
  .nav.is-open{ transform:translateY(0); opacity:1; visibility:visible }
  .nav a{ width:100%; padding:.85rem .85rem; font-size:15px }
  .nav a::after{ display:none }
  .nav-toggle{ display:flex }
}

/* hero */
.hero{
  position:relative;
  min-height:88vh;
  background:var(--field-green-d);
  overflow:hidden;
  border-bottom:6px solid var(--varsity-red);
}
/* two-panel split — 中国左 / 新西兰右 */
.hero__split{
  position:absolute; inset:0;
  display:grid; grid-template-columns:1fr 1fr;
}
.hero__split-left,
.hero__split-right{
  position:relative; overflow:hidden;
}
.hero__split-left svg,
.hero__split-right svg{
  width:100%; height:100%; display:block;
}
.hero__bridge{
  position:absolute; top:0; bottom:0;
  left:50%; transform:translateX(-50%);
  width:200px; height:100%;
  pointer-events:none;
  z-index:2;
}
.hero__overlay{
  position:absolute; inset:0;
  background:
    linear-gradient(180deg,
      rgba(0,0,0,0.15) 0%,
      rgba(0,0,0,0.25) 50%,
      rgba(0,0,0,0.7) 100%
    );
  z-index:1;
}
@media (max-width:700px){
  .hero__split{ grid-template-columns:1fr; grid-template-rows:1fr 1fr }
  .hero__bridge{ display:none }
}

/* date stamp top-right (postal/festival style) */
.hero__stamp{
  position:absolute; top:1.5rem; right:1.5rem;
  display:flex; gap:.5rem; align-items:center;
  font-family:var(--f-mono); font-size:11px;
  color:var(--paper); letter-spacing:.1em;
  z-index:5;
  text-transform:uppercase;
}
.hero__stamp::before, .hero__stamp::after{
  content:""; display:inline-block; height:1px; width:24px;
  background:rgba(255,255,255,.5);
}

/* hero content layout */
.hero__inner{
  position:relative; z-index:3;
  max-width:var(--maxw); margin:0 auto;
  padding:5rem var(--pad) 4rem;
  min-height:88vh;
  display:flex; flex-direction:column; justify-content:flex-end;
}

.hero__sticker{
  display:inline-flex; align-items:center; gap:.5rem;
  align-self:flex-start;
  font-family:var(--f-display); font-size:11px;
  color:var(--ink);
  background:var(--sun);
  padding:.45rem 1rem;
  letter-spacing:.08em; text-transform:uppercase;
  transform:rotate(-2deg);
  margin-bottom:1.5rem;
  box-shadow:3px 3px 0 var(--ink);
}
.hero__sticker .dot{
  width:8px; height:8px; border-radius:50%;
  background:var(--varsity-red);
}

.hero__kicker{
  font-family:var(--f-mono); font-size:12px;
  color:var(--sun); letter-spacing:.1em; text-transform:uppercase;
  margin-bottom:.85rem; font-weight:700;
  display:flex; align-items:center; gap:.65rem;
}
.hero__kicker::before{
  content:""; display:inline-block; width:32px; height:3px; background:var(--sun);
}

.hero__title{
  font-family:var(--f-display);
  font-size:clamp(2.8rem, 8vw, 7rem);
  line-height:.92;
  color:var(--paper);
  letter-spacing:-.02em;
  text-transform:uppercase;
  margin-bottom:.5rem;
  text-shadow:0 4px 20px rgba(0,0,0,.4);
}
.hero__title-cn{
  font-family:var(--f-cn); font-weight:900;
  font-size:clamp(1.4rem, 3vw, 2.4rem);
  color:var(--paper);
  letter-spacing:-.01em;
  line-height:1.15;
  margin-bottom:2rem;
  text-shadow:0 2px 14px rgba(0,0,0,.4);
}

.hero__cta-row{
  display:flex; gap:.85rem; align-items:center; flex-wrap:wrap;
  margin-top:.5rem;
}
.btn-poster{
  display:inline-flex; align-items:center; gap:.5rem;
  font-family:var(--f-display); font-size:13px;
  padding:1rem 1.5rem;
  letter-spacing:.06em; text-transform:uppercase;
  background:var(--sun); color:var(--ink);
  border:0;
  box-shadow:5px 5px 0 var(--ink);
  transition:transform .15s, box-shadow .15s;
}
.btn-poster:hover{ transform:translate(-2px,-2px); box-shadow:7px 7px 0 var(--ink) }
.btn-poster--red{ background:var(--varsity-red); color:var(--paper); box-shadow:5px 5px 0 var(--ink) }
.btn-poster--red:hover{ background:var(--varsity-red-d) }
.btn-poster--ghost{
  background:transparent; color:var(--paper);
  border:2px solid var(--paper);
  box-shadow:none;
  padding:.85rem 1.4rem;
}
.btn-poster--ghost:hover{ background:var(--paper); color:var(--ink) }

/* hero photo caption strip */
.hero__caption{
  position:absolute; bottom:0; left:0; right:0;
  background:var(--ink); color:var(--paper);
  padding:.7rem var(--pad);
  font-family:var(--f-mono); font-size:11px;
  display:flex; justify-content:space-between; align-items:center; gap:1rem;
  flex-wrap:wrap;
  letter-spacing:.04em;
  z-index:4;
  border-top:3px solid var(--varsity-red);
}
.hero__caption span{ color:var(--sun) }

/* scoreboard */
.scoreboard{
  background:var(--ink);
  color:var(--paper);
  padding:2.5rem var(--pad);
  border-bottom:5px solid var(--varsity-red);
}
.scoreboard__inner{
  max-width:var(--maxw); margin:0 auto;
  display:grid; grid-template-columns:repeat(4, 1fr); gap:1rem;
}
@media (max-width:700px){ .scoreboard__inner{ grid-template-columns:1fr 1fr; gap:2rem 1rem } }

.score{ text-align:center; position:relative }
.score::before{
  content:""; position:absolute; left:0; top:.5rem; bottom:.5rem;
  width:1px; background:rgba(255,255,255,.18);
}
.score:first-child::before{ display:none }
@media (max-width:700px){
  .score:nth-child(odd)::before{ display:none }
}
.score__num{
  font-family:var(--f-display); font-size:clamp(2.6rem, 5vw, 4rem);
  line-height:1; color:var(--sun);
  letter-spacing:-.02em;
}
.score__label{
  margin-top:.65rem;
  font-family:var(--f-mono); font-size:11px;
  color:var(--paper); letter-spacing:.1em;
  text-transform:uppercase; font-weight:500;
}
.score__label em{
  display:block; font-style:normal; color:var(--varsity-red);
  font-size:10px; margin-top:.2rem; font-family:var(--f-cn); letter-spacing:0;
  text-transform:none; font-weight:500;
}

/* section heading */
.poster-head{
  display:grid; grid-template-columns:auto 1fr auto; gap:1.5rem;
  align-items:end;
  padding:5rem 0 2.5rem;
  border-bottom:2px solid var(--ink);
  margin-bottom:3rem;
}
@media (max-width:700px){
  .poster-head{ grid-template-columns:auto 1fr; gap:1rem; padding-top:4rem }
  .poster-head__cn{ grid-column:1/-1; text-align:left; padding-top:.5rem }
}

.poster-head__num{
  font-family:var(--f-display); font-size:clamp(4rem, 9vw, 8rem);
  line-height:.85; color:var(--varsity-red);
  letter-spacing:-.04em;
}
.poster-head__title{
  font-family:var(--f-display); font-size:clamp(1.8rem, 3.5vw, 3rem);
  line-height:.95; color:var(--ink);
  text-transform:uppercase;
  letter-spacing:-.01em;
}
.poster-head__cn{
  font-family:var(--f-cn); font-weight:900;
  font-size:1.05rem; color:var(--ink);
  text-align:right; padding-bottom:.5rem;
  letter-spacing:-.005em;
}
.poster-head__cn::before{
  content:""; display:inline-block; width:24px; height:3px;
  background:var(--varsity-red); margin-right:.65rem;
  vertical-align:middle;
}

.section-wrap{
  padding:0 var(--pad);
  max-width:var(--maxw); margin:0 auto;
}

/* letter */
.letter{
  background:var(--paper-2);
  padding:0 0 5rem;
  border-bottom:4px solid var(--ink);
}
.letter__strip{
  background:var(--field-green); color:var(--paper);
  padding:1.25rem var(--pad);
  font-family:var(--f-mono); font-size:11px;
  letter-spacing:.1em; text-transform:uppercase;
  border-bottom:3px solid var(--ink);
  display:flex; gap:1rem; align-items:center; flex-wrap:wrap;
}
.letter__strip b{ color:var(--sun); font-weight:700 }

.letter__inner{
  max-width:780px; margin:0 auto;
  padding:0 var(--pad);
}

.letter__opener{
  font-family:var(--f-display); font-size:clamp(2.5rem, 5vw, 4rem);
  line-height:.95;
  color:var(--ink);
  text-transform:uppercase;
  letter-spacing:-.02em;
  margin:4rem 0 .5rem;
}
.letter__opener--small{
  font-size:clamp(2rem, 4vw, 3.2rem);
  margin:1.5rem 0 .5rem;
}
.letter__opener-cn{
  font-family:var(--f-cn); font-weight:900;
  font-size:1.5rem; color:var(--varsity-red);
  margin-bottom:2.5rem;
}

.letter__body{
  font-family:var(--f-cn); font-size:1.15rem; line-height:1.85;
  color:var(--ink); font-weight:500;
}
.letter__body p{ margin-bottom:1.5rem }
.letter__body em{
  font-style:normal; background:var(--sun); padding:0 .15em;
  font-weight:600;
}
.letter__body strong{ font-weight:700; color:var(--varsity-red) }

.letter__sign{
  margin-top:3rem; padding-top:1.75rem;
  border-top:3px double var(--ink);
  display:flex; justify-content:space-between; align-items:end; flex-wrap:wrap; gap:1rem;
}
.letter__sign-name{
  font-family:var(--f-script); font-size:2.5rem;
  color:var(--ink); line-height:1;
}
.letter__sign-name b{
  display:block; font-family:var(--f-display); font-size:.9rem;
  margin-top:.4rem; color:var(--field-green); letter-spacing:.06em;
}
.letter__sign-date{
  font-family:var(--f-mono); font-size:11px;
  color:var(--ink); letter-spacing:.06em;
  text-transform:uppercase;
}
.letter__sign--compact{
  margin-top:2rem;
  padding-top:1.25rem;
}
.letter__subnote{
  margin-top:3rem;
  padding-top:2.5rem;
  border-top:2px solid var(--ink);
}
.letter__subhead{
  display:inline-block;
  font-family:var(--f-display);
  font-size:.85rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  background:var(--ink);
  color:var(--sun);
  padding:.55rem .9rem;
}

/* principles — sticker grid */
.principles{
  list-style:none;
  display:grid; grid-template-columns:repeat(4, 1fr); gap:.85rem;
  margin-top:3.5rem;
}
@media (max-width:700px){ .principles{ grid-template-columns:1fr 1fr } }
.principles li{
  padding:1.5rem 1.25rem;
  background:var(--paper-3);
  border:2.5px solid var(--ink);
  box-shadow:4px 4px 0 var(--ink);
  font-family:var(--f-cn); font-size:1.05rem; font-weight:700;
  color:var(--ink); position:relative;
  transition:transform .15s;
}
.principles li:hover{ transform:translate(-2px,-2px); box-shadow:6px 6px 0 var(--ink) }
.principles li:nth-child(1){ background:var(--sun) }
.principles li:nth-child(2){ background:var(--cream) }
.principles li:nth-child(3){ background:#c7e8d4 }
.principles li:nth-child(4){ background:#fed7c7 }
.principles span{
  display:block; font-family:var(--f-display);
  font-size:.85rem; color:var(--ink);
  margin-bottom:.4rem; letter-spacing:.06em;
}

/* people */
.people{
  background:var(--paper);
  padding:0 0 5rem;
  border-bottom:4px solid var(--ink);
}

.people__intro{
  background:var(--varsity-red); color:var(--paper);
  padding:1.5rem var(--pad);
  font-family:var(--f-mono); font-size:12px;
  letter-spacing:.1em; text-transform:uppercase;
  border-bottom:3px solid var(--ink);
}
.people__intro b{ color:var(--sun) }

/* President + Secretary-General — 双核并列 */
.president{
  background:var(--ink);
  color:var(--paper);
  margin:3rem 0 2.5rem;
  padding:0;
  position:relative;
  overflow:hidden;
}

.president__inner{
  max-width:var(--maxw); margin:0 auto;
  display:grid; grid-template-columns:1fr 1fr; gap:0;
  align-items:stretch;
}
@media (max-width:800px){ .president__inner{ grid-template-columns:1fr } }

.leader{
  padding:3rem var(--pad);
  position:relative;
  border-left:1px dashed rgba(255,255,255,.15);
}
.leader:first-child{ border-left:0 }
.leader:first-child::after{
  content:""; position:absolute;
  top:0; right:0; bottom:0;
  width:5px;
  background:repeating-linear-gradient(
    180deg,
    var(--sun) 0 14px,
    transparent 14px 24px
  );
  opacity:.5;
}
@media (max-width:800px){
  .leader{ border-left:0; border-top:1px dashed rgba(255,255,255,.15); padding-top:2.5rem }
  .leader:first-child{ border-top:0 }
  .leader:first-child::after{ display:none }
}

.leader__num{
  position:absolute;
  top:1.5rem; right:1.5rem;
  font-family:var(--f-display);
  font-size:clamp(4rem, 9vw, 7rem);
  line-height:.85;
  color:var(--varsity-red);
  letter-spacing:-.04em;
  pointer-events:none;
  opacity:.85;
}
.leader__num--gold{ color:var(--gold); font-size:clamp(5rem, 10vw, 8rem); transform:translateY(-.1em) }

.president__tag{
  display:inline-flex; gap:.5rem; align-items:center;
  font-family:var(--f-display); font-size:11px;
  letter-spacing:.08em; text-transform:uppercase;
  color:var(--sun);
  margin-bottom:1rem;
}
.president__tag::before{
  content:""; display:inline-block; width:24px; height:3px;
  background:currentColor;
}
.president__name{
  font-family:var(--f-display);
  font-size:clamp(2.2rem, 4.2vw, 3.4rem);
  line-height:.95;
  letter-spacing:-.02em;
  text-transform:uppercase;
  color:var(--paper);
  margin-bottom:.5rem;
}
.president__name-cn{
  font-family:var(--f-cn); font-weight:900;
  font-size:1.25rem; color:var(--sun);
  letter-spacing:.04em;
}
.president__portrait{
  width:min(180px, 42vw);
  aspect-ratio:4/5;
  border:2px solid var(--paper);
  box-shadow:5px 5px 0 var(--varsity-red);
  overflow:hidden;
  margin:.35rem 0 1.35rem;
  background:rgba(255,255,255,.08);
}
.president__portrait img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  display:block;
}
.president__school{
  margin:.85rem 0 1.25rem;
  font-family:var(--f-mono); font-size:12px;
  color:var(--paper); letter-spacing:.04em;
  padding:.35rem .85rem;
  background:rgba(255,255,255,.08);
  border-left:3px solid var(--sun);
  display:inline-block;
}
.president__bio{
  font-family:var(--f-cn); font-size:1rem; line-height:1.7;
  color:rgba(255,255,255,.85);
  max-width:30em;
}
.president__bio strong{ font-weight:700 }
.president__tags{ display:flex; gap:.5rem; margin-top:1.25rem; flex-wrap:wrap }
.president__tags span{
  font-family:var(--f-mono); font-size:11px;
  padding:.3rem .8rem;
  border:1.5px solid var(--paper); color:var(--paper);
  letter-spacing:.04em;
  font-weight:600;
}
.president__link{
  display:inline-block;
  margin-top:1rem;
  font-family:var(--f-mono);
  font-size:11px;
  letter-spacing:.05em;
  color:rgba(255,255,255,.72);
  border-bottom:1px solid rgba(255,216,77,.55);
  padding-bottom:.12rem;
  transition:color .15s, border-color .15s;
}
.president__link:hover{
  color:var(--sun);
  border-color:var(--sun);
}

/* committees as event posters */
.committees{ display:grid; gap:2.5rem; padding:0 var(--pad); max-width:var(--maxw); margin:0 auto }

.committee{
  background:var(--paper-3);
  border:3px solid var(--ink);
  position:relative;
  overflow:hidden;
}

.committee__head{
  background:var(--field-green); color:var(--paper);
  padding:1.5rem 2rem;
  border-bottom:3px solid var(--ink);
  display:flex; align-items:center; gap:1.5rem; flex-wrap:wrap;
}
.committee__no{
  font-family:var(--f-display); font-size:1.4rem;
  letter-spacing:-.02em;
  padding:.4rem .85rem;
  background:var(--sun); color:var(--ink);
}
.committee__title{
  font-family:var(--f-display); font-size:1.6rem;
  text-transform:uppercase; letter-spacing:-.01em;
  color:var(--paper);
}
.committee__cn{
  font-family:var(--f-cn); font-weight:700;
  font-size:14px; color:var(--sun);
  margin-left:auto;
  letter-spacing:.04em;
}
.committee--woi .committee__head{ background:var(--varsity-red) }
.committee--woi .committee__no{ background:var(--paper); color:var(--ink) }
.committee--woi .committee__cn{ color:var(--paper) }
.committee--woi{ order:-1 }
.woi-tag{
  font-family:var(--f-display); font-size:10px;
  padding:3px 8px;
  background:var(--ink); color:var(--sun);
  letter-spacing:.1em;
}

.committee__roster{
  display:grid; grid-template-columns:repeat(auto-fit, minmax(260px, 1fr));
  gap:0;
}
.member{
  padding:1.85rem 1.85rem 1.5rem;
  border-left:1.5px dashed var(--ink);
  position:relative;
  transition:background .2s;
}
.member:first-child{ border-left:0 }
.member:hover{ background:var(--sun); }
.member__photo{
  width:100%;
  aspect-ratio:4/3;
  border:2px solid var(--ink);
  box-shadow:4px 4px 0 var(--ink);
  background:var(--cream);
  overflow:hidden;
  margin:0 0 1.2rem;
}
.member__photo img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  display:block;
  filter:saturate(1.05) contrast(1.02);
}
.member__rank{
  display:inline-block;
  font-family:var(--f-display); font-size:10.5px;
  letter-spacing:.06em; text-transform:uppercase;
  color:var(--ink); padding:.3rem .65rem;
  background:var(--cream);
  border:1.5px solid var(--ink);
  margin-bottom:.85rem;
}
.committee--woi .member__rank{ background:#ffe4d6 }
.member__name{
  font-family:var(--f-cn); font-weight:900;
  font-size:1.6rem; color:var(--ink);
  line-height:1.05;
  margin-bottom:.4rem;
}
.member__school{
  margin:.2rem 0 .85rem;
  font-family:var(--f-mono); font-size:11px;
  color:var(--field-green); letter-spacing:.03em;
  font-weight:700;
}
.committee--woi .member__school{ color:var(--varsity-red) }
.member__bio{
  font-family:var(--f-cn); font-size:.93rem; line-height:1.65;
  color:var(--ink); font-weight:500;
}
.member__chip{
  position:absolute; top:1.5rem; right:1.5rem;
  font-family:var(--f-display); font-size:10px;
  padding:3px 9px;
  background:var(--gold); color:var(--ink);
  letter-spacing:.06em;
}
@media (max-width:768px){
  .committee__roster{ grid-template-columns:1fr }
  .member{ border-left:0; border-top:1.5px dashed var(--ink) }
  .member:first-child{ border-top:0 }
}

/* field notes */
.field{
  background:var(--paper);
  padding:0 0 5rem;
  border-bottom:4px solid var(--ink);
}

.story{
  display:grid; grid-template-columns:1.35fr .95fr; gap:0;
  background:var(--ink); color:var(--paper);
  border:3px solid var(--ink);
  margin:0 var(--pad);
  max-width:calc(var(--maxw) - var(--pad)*2);
  margin-left:auto; margin-right:auto;
  position:relative;
}
.story + .story{ margin-top:2rem }
.story--basketball{
  grid-template-columns:1.15fr .95fr;
}
.story--basketball .story__media{
  min-height:430px;
}
.story--basketball .story__media img{
  min-height:430px;
  object-fit:contain;
  background:#07110c;
}
.story--basketball .story__media-tag{
  background:var(--sun);
  color:var(--ink);
}
.story--basketball .story__copy{
  background:var(--paper-3);
  color:var(--ink);
  border-left:3px solid var(--ink);
}
.story--basketball .story__cat{ color:rgba(0,0,0,.55) }
.story--basketball .story__title{ color:var(--ink) }
.story--basketball .story__lede{ color:var(--ink) }
.story--basketball .story__body{ color:rgba(0,0,0,.78) }
.story--basketball .story__body em{ color:var(--ink) }
.story--basketball .story__stats{ border-top-color:rgba(0,0,0,.25) }
.story--basketball .story__stats > div{ border-left-color:rgba(0,0,0,.18) }
.story--basketball .story__stats span{ color:rgba(0,0,0,.65) }
@media (max-width:900px){ .story{ grid-template-columns:1fr } }
@media (max-width:900px){ .story--basketball .story__copy{ border-left:0; border-top:3px solid var(--ink) } }
.story__media{
  position:relative; overflow:hidden;
  min-height:520px; background:#07110c;
}
.story__media img{
  width:100%; height:100%; min-height:520px;
  object-fit:cover; object-position:center;
  filter:saturate(1.2) contrast(1.05);
  transition:transform .8s cubic-bezier(.2,.7,.2,1);
}
.story:hover .story__media img{ transform:scale(1.04) }

.story__media-tag{
  position:absolute; top:1.25rem; left:-.75rem; z-index:2;
  padding:.55rem 1.25rem;
  background:var(--varsity-red); color:var(--paper);
  font-family:var(--f-display); font-size:12px;
  letter-spacing:.08em; text-transform:uppercase;
  transform:rotate(-4deg);
  box-shadow:3px 3px 0 var(--ink);
}

.story__copy{ padding:3rem 2.5rem; display:flex; flex-direction:column; justify-content:center; position:relative }
.story__meta{
  display:flex; gap:1rem; margin-bottom:1.25rem;
  font-family:var(--f-mono); font-size:11px;
  letter-spacing:.05em; text-transform:uppercase;
}
.story__date{ color:var(--sun); font-weight:700 }
.story__cat{ color:rgba(255,255,255,.6) }

.story__title{
  font-family:var(--f-display); font-size:clamp(2rem, 4vw, 3.5rem);
  line-height:.95; letter-spacing:-.02em;
  text-transform:uppercase;
  color:var(--paper); margin-bottom:1.5rem;
}
.story__title em{
  font-style:normal; background:var(--sun); color:var(--ink); padding:0 .15em;
}
.story__title .under{
  color:var(--varsity-red);
}

.story__lede{
  font-family:var(--f-cn); font-size:1.05rem; line-height:1.7;
  color:var(--paper); margin-bottom:1rem; font-weight:500;
}
.story__lede em{ color:var(--sun); font-style:normal; font-weight:700 }
.story__body{
  font-family:var(--f-cn); font-size:.95rem; color:rgba(255,255,255,.78); line-height:1.75; margin-bottom:1.75rem;
}
.story__body strong{ color:var(--sun); font-weight:700 }
.story__body em{ color:var(--paper); font-style:normal; font-weight:700; border-bottom:2px solid var(--varsity-red) }

.story__pull{
  padding:1.25rem 1.5rem; margin:1rem 0 1.75rem;
  background:var(--varsity-red); color:var(--paper);
  position:relative;
}
.pull__quote{
  font-family:var(--f-cn); font-weight:700;
  font-size:1.1rem; line-height:1.5;
}

.story__stats{
  display:grid; grid-template-columns:repeat(4, 1fr); gap:0;
  padding-top:1.25rem; border-top:1px dashed rgba(255,255,255,.25);
}
.story__stats > div{
  padding:0 1rem; border-left:1px dashed rgba(255,255,255,.18);
  text-align:left;
}
.story__stats > div:first-child{ border-left:0; padding-left:0 }
.story__stats b{
  display:block; font-family:var(--f-display); font-size:2rem;
  line-height:1; color:var(--sun); letter-spacing:-.02em;
}
.story__stats span{
  display:block; margin-top:.3rem;
  font-family:var(--f-mono); font-size:10.5px;
  color:rgba(255,255,255,.6); letter-spacing:.04em;
  text-transform:uppercase;
}

/* campus gallery */
.campus-gallery{
  display:grid;
  grid-template-columns:1.1fr 1.1fr 1fr;
  gap:1.5rem;
  padding:3rem var(--pad) 0;
  max-width:var(--maxw); margin:0 auto;
}
@media (max-width:900px){ .campus-gallery{ grid-template-columns:1fr 1fr } }
@media (max-width:640px){ .campus-gallery{ grid-template-columns:1fr } }

.ministory,
.event-slot{
  display:flex; flex-direction:column;
  background:var(--paper-3);
  border:3px solid var(--ink);
  overflow:hidden;
  transition:transform .25s, box-shadow .25s;
  box-shadow:6px 6px 0 var(--ink);
}
.ministory:hover{ transform:translate(-3px,-3px); box-shadow:9px 9px 0 var(--ink) }
.ministory:nth-child(1){ background:var(--cream) }
.ministory:nth-child(2){ background:#fed7c7 }
.event-slot{
  min-height:260px;
  background:
    repeating-linear-gradient(135deg, rgba(0,0,0,.05) 0 10px, transparent 10px 22px),
    var(--paper-3);
}
.event-slot:nth-child(2){
  background:
    repeating-linear-gradient(135deg, rgba(0,0,0,.05) 0 10px, transparent 10px 22px),
    var(--cream);
}

.gallery-card{
  position:relative;
  min-height:260px;
  border:3px solid var(--ink);
  box-shadow:6px 6px 0 var(--ink);
  overflow:hidden;
  background:var(--ink);
}
.gallery-card--wide{ grid-row:span 2; min-height:540px }
.gallery-card--feature{
  grid-column:span 2;
  min-height:360px;
  display:grid;
  grid-template-columns:1.25fr .9fr;
}
.gallery-card--feature img{ object-fit:contain; background:#07110c }
@media (max-width:900px){ .gallery-card--feature{ grid-column:span 2 } }
@media (max-width:720px){ .gallery-card--feature{ grid-template-columns:1fr } }
@media (max-width:640px){ .gallery-card--feature{ grid-column:span 1 } }
.gallery-card img{
  width:100%;
  height:100%;
  min-height:260px;
  object-fit:cover;
  object-position:center;
  display:block;
  filter:saturate(1.1) contrast(1.03);
  transition:transform .6s cubic-bezier(.2,.7,.2,1);
}
.gallery-card:hover img{ transform:scale(1.04) }
.gallery-card--feature:hover img{ transform:none }
.gallery-card__caption{
  position:absolute;
  left:0;
  bottom:0;
  max-width:calc(100% - 1.4rem);
  padding:.65rem .95rem;
  background:var(--sun);
  color:var(--ink);
  border-top:3px solid var(--ink);
  border-right:3px solid var(--ink);
  font-family:var(--f-cn);
  font-size:.9rem;
  font-weight:900;
}
.gallery-card__text{
  padding:1.5rem;
  background:var(--paper-3);
  color:var(--ink);
  border-left:3px solid var(--ink);
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.gallery-card__text h4{
  font-family:var(--f-cn);
  font-size:1.35rem;
  line-height:1.2;
  font-weight:900;
  margin-bottom:.85rem;
}
.gallery-card__text p{
  font-family:var(--f-cn);
  font-size:.95rem;
  line-height:1.72;
  font-weight:500;
}
@media (max-width:720px){
  .gallery-card__text{ border-left:0; border-top:3px solid var(--ink) }
}

.ministory__media{
  position:relative;
  aspect-ratio:400/240;
  overflow:hidden;
  background:var(--ink);
  border-bottom:3px solid var(--ink);
}
.ministory__media svg{ width:100%; height:100%; display:block }
.ministory__tag{
  position:absolute; top:1rem; left:-.5rem;
  padding:.4rem 1rem;
  background:var(--sun); color:var(--ink);
  font-family:var(--f-display); font-size:10.5px;
  letter-spacing:.08em; text-transform:uppercase;
  transform:rotate(-3deg);
  box-shadow:3px 3px 0 var(--ink);
}
.ministory__tag--red{ background:var(--varsity-red); color:var(--paper) }

.ministory__copy{ padding:1.85rem; display:flex; flex-direction:column; gap:.85rem; flex:1 }
.ministory__meta{
  display:flex; gap:1rem;
  font-family:var(--f-mono); font-size:11px;
  letter-spacing:.05em; text-transform:uppercase;
}
.ministory__date{ color:var(--varsity-red); font-weight:700 }
.ministory__cat{ color:var(--ink); opacity:.55 }
.ministory__title{
  font-family:var(--f-cn); font-weight:900;
  font-size:1.65rem; line-height:1.1;
  color:var(--ink);
}
.ministory__lede{
  font-family:var(--f-cn); font-size:.97rem; line-height:1.7;
  color:var(--ink); font-weight:500;
}
.ministory__lede em{ background:var(--sun); padding:0 .15em; font-style:normal; font-weight:700 }
.ministory__cta{
  display:flex; gap:1.25rem; flex-wrap:wrap; margin-top:auto;
  padding-top:1rem; border-top:2px dashed var(--ink);
  font-family:var(--f-cn); font-size:13px; color:var(--ink); font-weight:600;
}

/* reserved activity space */
.field-reserve{
  margin:3rem var(--pad) 0;
  max-width:var(--maxw);
  margin-left:auto; margin-right:auto;
  min-height:70px;
  border:3px dashed var(--ink);
  background:rgba(255,255,255,.2);
}

/* toolbox */
.toolbox{
  background:var(--paper-2);
  padding:0 0 5rem;
  border-bottom:4px solid var(--ink);
}
.toolbox__inner{ max-width:var(--maxw); margin:0 auto; padding:0 var(--pad) }
.toolbox__intro{
  background:var(--field-green);
  color:var(--paper);
  padding:1.5rem var(--pad);
  font-family:var(--f-mono); font-size:13px;
  margin:0 calc(-1 * var(--pad)) 3rem;
  border-bottom:3px solid var(--ink);
  letter-spacing:.04em;
  line-height:1.65;
  max-width:none;
}
.toolbox__intro em{ background:var(--sun); color:var(--ink); padding:0 .25em; font-style:normal; font-weight:700 }

.tool-grid{
  display:grid; grid-template-columns:repeat(12, 1fr); gap:1rem;
}
.tool{
  background:var(--paper-3);
  border:2.5px solid var(--ink);
  padding:1.5rem;
  box-shadow:5px 5px 0 var(--ink);
  transition:transform .15s, box-shadow .15s;
  position:relative;
}
.tool:hover{ transform:translate(-2px,-2px); box-shadow:7px 7px 0 var(--ink) }
.tool--time{ grid-column:span 6; background:var(--cream) }
.tool--fx{ grid-column:span 6; background:#c7e8d4 }
.tool--sos{ grid-column:span 5; background:#fed7c7 }
.tool--links{ grid-column:span 7 }
.tool--transit{ grid-column:span 6; background:var(--sun) }
.tool--arrival{ grid-column:span 6 }
@media (max-width:900px){ .tool{ grid-column:span 12 !important } }

.tool__head{
  display:flex; gap:.7rem; align-items:baseline; margin-bottom:1.25rem;
  padding-bottom:.75rem; border-bottom:2px solid var(--ink);
}
.tool__num{
  font-family:var(--f-display); font-size:11px;
  color:var(--paper); background:var(--ink);
  padding:.35rem .65rem; letter-spacing:.06em;
}
.tool__title{ font-family:var(--f-cn); font-size:1.1rem; color:var(--ink); font-weight:900 }

/* time */
.time-grid{ display:grid; grid-template-columns:1fr 1fr; gap:.85rem }
.time-cell{
  padding:1.15rem;
  background:var(--paper-3);
  border:2px solid var(--ink);
}
.time-cell--accent{ background:var(--ink); color:var(--paper) }
.time-cell__loc{
  font-family:var(--f-mono); font-size:11px;
  margin-bottom:.5rem; font-weight:700;
  letter-spacing:.04em; text-transform:uppercase;
}
.time-cell--accent .time-cell__loc{ color:var(--sun) }
.time-cell__time{
  font-family:var(--f-display); font-size:2.2rem;
  line-height:1; letter-spacing:-.02em;
  color:var(--ink);
}
.time-cell--accent .time-cell__time{ color:var(--paper) }
.time-cell__date{ margin-top:.5rem; font-family:var(--f-mono); font-size:11px; opacity:.7 }
.time-cell__tz{ margin-top:.2rem; font-family:var(--f-mono); font-size:9.5px; letter-spacing:.06em; opacity:.6 }
.time-delta{
  margin-top:1rem; padding:.75rem 1rem;
  background:var(--varsity-red); color:var(--paper);
  font-family:var(--f-display); font-size:12px;
  letter-spacing:.06em; text-transform:uppercase;
  text-align:center;
  border:2px solid var(--ink);
}

/* fx */
.fx{ display:grid; gap:.65rem }
.fx__row{
  display:flex; align-items:center; gap:.5rem;
  padding:1rem 1.15rem;
  background:var(--paper-3);
  border:2px solid var(--ink);
}
.fx__row input{
  flex:1; background:transparent; border:0; outline:0;
  font-family:var(--f-display); font-size:1.5rem; color:var(--ink);
}
.fx__row input::-webkit-outer-spin-button,
.fx__row input::-webkit-inner-spin-button{ -webkit-appearance:none; margin:0 }
.fx__unit{ font-family:var(--f-display); font-size:12px; letter-spacing:.06em; padding:.25rem .65rem; background:var(--ink); color:var(--sun) }
.fx__row--out{ background:var(--ink); color:var(--paper) }
.fx__row--out span:first-child{ flex:1; font-family:var(--f-display); font-size:1.5rem; color:var(--sun) }
.fx__row--out .fx__unit{ background:var(--sun); color:var(--ink) }
.fx__arrow{ text-align:center; font-family:var(--f-display); color:var(--ink) }
.fx__rate{ font-family:var(--f-mono); font-size:11px; text-align:center; margin-top:.5rem; letter-spacing:.04em }
.fx__rate em{ font-style:italic }
.fx__rate span{ background:var(--sun); padding:0 .25em; font-weight:700 }
#fxRateSlider{ width:100%; accent-color:var(--varsity-red); height:6px }
#fxRateSlider{ display:none }
.fx__status{
  font-family:var(--f-mono);
  font-size:10.5px;
  color:var(--field-green);
  letter-spacing:.04em;
  text-align:center;
}

/* sos */
.sos-list{ list-style:none }
.sos-list li{
  display:flex; justify-content:space-between; align-items:center;
  padding:.9rem 0; border-bottom:2px dashed var(--ink);
  gap:1rem;
}
.sos-list li:last-child{ border-bottom:0 }
.sos-list__k{ font-family:var(--f-cn); font-size:.97rem; color:var(--ink); font-weight:600 }
.sos-list__v a{
  font-family:var(--f-display); font-size:13px;
  color:var(--paper); background:var(--varsity-red);
  padding:.3rem .75rem; letter-spacing:.04em;
  transition:background .15s;
}
.sos-list__v a:hover{ background:var(--ink) }

/* quick links */
.ql-grid{ display:grid; grid-template-columns:1fr 1fr; gap:.6rem }
.ql-grid a{
  display:flex; justify-content:space-between; align-items:center;
  padding:.85rem 1rem;
  background:var(--paper-2);
  border:2px solid var(--ink);
  transition:background .15s, transform .15s;
}
.ql-grid a:hover{ background:var(--sun); transform:translateX(3px) }
.ql__name{ font-family:var(--f-cn); font-size:.95rem; color:var(--ink); font-weight:700 }
.ql__arr{ font-family:var(--f-display); color:var(--ink); transition:transform .15s }
.ql-grid a:hover .ql__arr{ transform:translate(3px,-3px) }

/* transit */
.transit-list{ list-style:none }
.transit-list li{
  padding:.85rem 0; border-bottom:2px dashed var(--ink);
  font-family:var(--f-cn); font-size:.95rem; color:var(--ink); line-height:1.65; font-weight:500;
}
.transit-list li:last-child{ border-bottom:0 }
.transit-list li b{ background:var(--ink); color:var(--sun); padding:.1rem .45rem; font-family:var(--f-display); font-size:11px; letter-spacing:.04em; margin-right:.45rem }
.tool--transit .transit-list li b{ background:var(--ink); color:var(--sun) }

/* arrival checklist */
.arrival-list{ list-style:none; display:grid; gap:.75rem }
.arrival-list li{
  display:flex; gap:.85rem; align-items:flex-start;
  padding:.85rem 0;
  border-bottom:2px dashed var(--ink);
  font-family:var(--f-cn);
  font-size:.96rem;
  line-height:1.55;
  color:var(--ink);
  font-weight:600;
}
.arrival-list li:last-child{ border-bottom:0 }
.arrival-list span{
  flex:0 0 auto;
  font-family:var(--f-display);
  font-size:11px;
  color:var(--paper);
  background:var(--ink);
  padding:.25rem .55rem;
}

/* contact */
.contact{
  background:var(--ink); color:var(--paper);
  padding:0 0 4rem;
  position:relative;
  overflow:hidden;
}
.contact::before{
  content:"JOIN"; position:absolute;
  top:1rem; right:-1rem;
  font-family:var(--f-display); font-size:clamp(8rem, 22vw, 20rem);
  color:var(--varsity-red); opacity:.18;
  letter-spacing:-.06em; line-height:.85;
  pointer-events:none;
}

.contact__strip{
  background:var(--sun); color:var(--ink);
  padding:1.5rem var(--pad);
  font-family:var(--f-display); font-size:13px;
  letter-spacing:.1em; text-transform:uppercase;
  border-bottom:3px solid var(--ink);
}

.contact__inner{
  max-width:var(--maxw); margin:0 auto;
  padding:4rem var(--pad) 0;
}
.contact__grid{
  display:grid; grid-template-columns:1.5fr 1fr; gap:3rem;
  align-items:start;
  position:relative;
}
@media (max-width:900px){ .contact__grid{ grid-template-columns:1fr; gap:2rem } }

.contact__kicker{
  display:inline-block;
  font-family:var(--f-mono); font-size:11px;
  color:var(--sun); padding:.4rem .85rem;
  border:1px dashed rgba(255,255,255,.4);
  margin-bottom:1rem; letter-spacing:.05em; text-transform:uppercase;
}
.contact__head{
  font-family:var(--f-display);
  font-size:clamp(3rem, 7vw, 6rem); line-height:.92;
  color:var(--paper); margin-bottom:1.5rem;
  text-transform:uppercase; letter-spacing:-.02em;
}
.contact__head em{
  font-style:normal; background:var(--varsity-red);
  padding:0 .2em;
}
.contact__body{
  font-family:var(--f-cn); font-size:1.05rem;
  color:rgba(255,255,255,.85); max-width:32em; margin-bottom:1.75rem;
  line-height:1.7;
}

.contact__cards{ display:grid; gap:.65rem }
.contact-card{
  display:grid; grid-template-columns:auto 1fr auto; gap:1.5rem;
  align-items:center;
  padding:1.15rem 1.35rem;
  background:rgba(255,255,255,.06);
  border:2px solid rgba(255,255,255,.18);
  transition:all .2s;
}
.contact-card:not(.contact-card--static):hover{
  background:var(--sun); color:var(--ink);
  border-color:var(--sun);
  transform:translateX(3px);
}
.contact-card__label{
  font-family:var(--f-display); font-size:11px;
  color:var(--sun); min-width:90px;
  letter-spacing:.06em;
}
.contact-card:not(.contact-card--static):hover .contact-card__label{ color:var(--ink) }
.contact-card__value{ font-family:var(--f-mono); font-size:.95rem; font-weight:500 }
.contact-card__arr{
  font-family:var(--f-display); font-size:1.2rem;
  color:var(--sun);
  transition:transform .2s;
}
.contact-card:not(.contact-card--static):hover .contact-card__arr{ color:var(--ink); transform:translateX(3px) }
.contact-card--static{ opacity:.85 }
.contact-card--static:hover{ background:rgba(255,255,255,.06) }

.contact__side{ display:flex; flex-direction:column; gap:1.5rem }
.contact__quote{
  font-family:var(--f-display); font-size:clamp(1.4rem, 2.4vw, 1.9rem);
  text-align:center;
  color:var(--ink); line-height:1.2;
  padding:2.5rem 1.75rem;
  background:var(--sun);
  border:3px solid var(--ink);
  text-transform:uppercase;
  letter-spacing:-.01em;
  transform:rotate(-1.5deg);
  box-shadow:8px 8px 0 var(--varsity-red);
}
.contact__quote em{ font-style:normal; background:var(--varsity-red); color:var(--paper); padding:0 .2em }
.contact__quote span{
  display:block; margin-top:1rem;
  font-family:var(--f-mono); font-size:11px;
  text-transform:uppercase; letter-spacing:.1em;
  color:var(--ink);
}

.contact__compass{ display:none }

/* form */
.msg-form{
  position:fixed;
  right:clamp(1rem, 3vw, 2rem);
  bottom:clamp(1rem, 3vw, 2rem);
  z-index:80;
  width:min(390px, calc(100vw - 2rem));
  max-height:calc(100vh - 1.5rem);
  margin:0;
  background:#050607;
  color:var(--paper);
  border:1px solid rgba(255,216,77,.55);
  border-radius:14px;
  overflow:hidden;
  box-shadow:0 0 0 1px rgba(214,40,40,.5), 0 22px 60px rgba(0,0,0,.42);
  backdrop-filter:blur(12px);
}
.msg-form::before{ display:none }
.chat-widget__bar{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:1rem;
  padding:.9rem 1rem;
  background:linear-gradient(90deg, #070707, #151515);
  color:var(--paper);
  border-bottom:1px solid rgba(255,216,77,.28);
}
.chat-widget__bot{
  display:flex;
  align-items:center;
  gap:.65rem;
  font-family:var(--f-cn);
  font-size:.98rem;
  font-weight:900;
}
.chat-widget__icon{
  display:inline-grid;
  place-items:center;
  width:24px;
  height:24px;
  border:1px solid var(--sun);
  border-radius:6px;
  font-family:var(--f-mono);
  font-size:12px;
}
.chat-widget__close{
  font-size:1.5rem;
  line-height:1;
  font-family:Arial, sans-serif;
  font-weight:300;
  color:var(--paper);
  background:transparent;
  cursor:pointer;
}
.chat-widget__body{
  padding:1rem;
  background:
    linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.025) 1px, transparent 1px),
    #070808;
  background-size:24px 24px;
  max-height:min(52vh, 440px);
  overflow-y:auto;
  overflow-x:hidden;
  scrollbar-width:thin;
  scrollbar-color:rgba(255,216,77,.45) transparent;
}
.chat-widget__body::-webkit-scrollbar{ width:6px }
.chat-widget__body::-webkit-scrollbar-track{ background:transparent }
.chat-widget__body::-webkit-scrollbar-thumb{ background:rgba(255,216,77,.45); border-radius:99px }
.chat-widget__body::-webkit-scrollbar-corner{ background:transparent }
.chat-widget__body *{ max-width:100% }
.chat-widget__bot strong{
  color:var(--sun);
  background:transparent;
}
.chat-widget__bubble{
  background:rgba(255,255,255,.055);
  border:1px solid rgba(255,255,255,.16);
  border-left:3px solid var(--sun);
  border-radius:12px;
  padding:1rem;
  box-shadow:none;
}
.chat-widget__bubble p{
  font-family:var(--f-cn);
  color:rgba(255,255,255,.88);
  font-size:.95rem;
  line-height:1.7;
  margin-bottom:.9rem;
}
.chat-widget__options{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:.55rem;
}
.chat-widget__options button:nth-child(5){ grid-column:1 / -1 }
@media (max-width:420px){ .chat-widget__options{ grid-template-columns:1fr } .chat-widget__options button{ grid-column:auto !important } }
.chat-widget__options button{
  min-width:0;
}
.chat-widget__options button{
  width:100%;
  min-height:38px;
  border:1px solid rgba(255,216,77,.45);
  background:rgba(255,216,77,.06);
  color:var(--sun);
  border-radius:8px;
  font-family:var(--f-cn);
  font-size:.86rem;
  font-weight:900;
  cursor:pointer;
  transition:background .15s, border-color .15s, transform .15s;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.chat-widget__options button:hover,
.chat-widget__options button.is-active{
  background:var(--sun);
  color:var(--ink);
  border-color:var(--sun);
  transform:translateY(-1px);
}
.chat-widget__fields{
  display:grid;
  grid-template-columns:minmax(0, 1fr) minmax(0, 1fr);
  gap:.55rem;
  margin-top:.85rem;
}
.chat-widget__fields select{ grid-column:1 / -1 }
@media (max-width:520px){ .chat-widget__fields{ grid-template-columns:1fr } }
.chat-widget__fields select,
.chat-widget__fields input{
  min-width:0;
  width:100%;
  min-height:40px;
  padding:.62rem .75rem;
  border:1px solid rgba(255,255,255,.16);
  background:rgba(255,255,255,.07);
  color:var(--paper);
  border-radius:8px;
  font-family:var(--f-body);
  font-size:.9rem;
  outline:none;
}
.msg-form select{
  cursor:pointer;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'><path d='M2 4 L6 8 L10 4' stroke='%23ffd84d' stroke-width='1.8' fill='none'/></svg>");
  background-repeat:no-repeat; background-position:right .9rem center;
  appearance:none; -webkit-appearance:none;
  padding-right:2.25rem;
}
.chat-widget__composer{
  margin:.85rem 1rem .65rem;
  padding:.45rem .45rem .45rem .85rem;
  display:grid;
  grid-template-columns:minmax(0, 1fr) 46px;
  gap:.5rem;
  align-items:center;
  border:1px solid rgba(255,216,77,.35);
  background:#0d0e0f;
  border-radius:999px;
}
.chat-widget__composer textarea{
  min-width:0;
  width:100%;
  min-height:34px;
  max-height:90px;
  resize:none;
  border:0;
  background:transparent;
  color:var(--paper);
  outline:none;
  font-family:var(--f-cn);
  font-size:.95rem;
  line-height:1.5;
  padding:.35rem 0;
}
.msg-form__send{
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  padding:0;
  background:linear-gradient(135deg, var(--sun), var(--gold));
  color:var(--ink);
  border:0;
  border-radius:50%;
  font-family:var(--f-display);
  font-size:1.05rem;
  cursor:pointer;
  box-shadow:none;
  transition:transform .15s, background .15s;
}
.msg-form__send:hover{ background:var(--gold); transform:translateY(-1px) }
.msg-form__arrow{ font-family:var(--f-display) }
.msg-form__note{
  padding:0 1rem 1rem;
  font-family:var(--f-cn);
  font-size:11.5px;
  color:rgba(255,255,255,.55);
  line-height:1.5;
  text-align:center;
}
.msg-form__ok{
  margin:0 1rem 1rem;
  padding:.75rem .9rem;
  background:rgba(199,232,212,.12);
  border:1px solid rgba(199,232,212,.45);
  color:#c7e8d4;
  border-radius:10px;
  font-family:var(--f-cn);
  font-weight:700;
  font-size:.9rem;
}
.msg-form--invalid{
  border-color:var(--varsity-red);
}
.chat-widget__launcher{
  position:absolute;
  right:0;
  bottom:0;
  width:188px;
  height:56px;
  display:none;
  grid-template-columns:34px 1fr;
  align-items:center;
  gap:.7rem;
  padding:.55rem .85rem;
  overflow:hidden;
  background:rgba(5,6,7,.92);
  color:var(--sun);
  border-radius:14px;
  border:1px solid rgba(255,216,77,.6);
  box-shadow:0 12px 30px rgba(0,0,0,.35), inset 0 0 0 1px rgba(255,255,255,.04);
  cursor:pointer;
  text-align:left;
}
.chat-widget__launcher::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg, transparent, rgba(255,216,77,.18), transparent),
    repeating-linear-gradient(0deg, rgba(255,255,255,.055) 0 1px, transparent 1px 8px);
  opacity:.42;
  transform:translateX(-70%);
  animation:assistantPulseLine 3.2s ease-in-out infinite;
}
.chat-widget__launcher::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:2px;
  background:var(--varsity-red);
  box-shadow:0 0 14px rgba(214,40,40,.75);
}
.chat-widget__launcher-core{
  position:relative;
  z-index:1;
  width:34px;
  height:34px;
  border:1px solid rgba(255,216,77,.75);
  border-radius:10px;
  background:
    linear-gradient(90deg, transparent 48%, rgba(255,216,77,.28) 49% 51%, transparent 52%),
    linear-gradient(0deg, transparent 48%, rgba(255,216,77,.28) 49% 51%, transparent 52%),
    #0b0c0d;
  box-shadow:0 0 18px rgba(255,216,77,.18);
}
.chat-widget__launcher-core::before{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  width:8px;
  height:8px;
  border-radius:50%;
  background:var(--sun);
  box-shadow:0 0 8px rgba(255,216,77,.8);
  transform:translate(-50%,-50%);
  animation:assistantDot 1.8s ease-in-out infinite;
}
.chat-widget__launcher-copy{
  position:relative;
  z-index:1;
  display:block;
  min-width:0;
}
.chat-widget__launcher-copy span{
  display:block;
  font-family:var(--f-mono);
  font-size:10px;
  line-height:1.1;
  color:rgba(255,255,255,.62);
  letter-spacing:.04em;
}
.chat-widget__launcher-copy b{
  display:block;
  margin-top:.2rem;
  font-family:var(--f-cn);
  font-size:.92rem;
  line-height:1.1;
  color:var(--sun);
  white-space:nowrap;
}
.chat-widget__launcher:hover{
  transform:translateY(-2px);
  border-color:var(--sun);
  box-shadow:0 15px 34px rgba(0,0,0,.42), 0 0 22px rgba(255,216,77,.18);
}
@keyframes assistantPulseLine{
  0%, 60%, 100%{ transform:translateX(-70%); opacity:.12 }
  30%{ transform:translateX(70%); opacity:.5 }
}
@keyframes assistantDot{
  0%, 100%{ transform:translate(-50%,-50%) scale(.8); opacity:.75 }
  50%{ transform:translate(-50%,-50%) scale(1.2); opacity:1 }
}
.chat-widget.is-collapsed{
  width:188px;
  height:56px;
  border:0;
  overflow:visible;
  background:transparent;
  box-shadow:none;
}
.chat-widget.is-collapsed .chat-widget__bar,
.chat-widget.is-collapsed .chat-widget__body,
.chat-widget.is-collapsed .chat-widget__composer,
.chat-widget.is-collapsed .msg-form__note,
.chat-widget.is-collapsed .msg-form__ok{
  display:none;
}
.chat-widget.is-collapsed .chat-widget__launcher{
  display:grid;
}
@media (max-width:560px){
  .msg-form{
    left:1rem;
    right:1rem;
    width:auto;
  }
  .chat-widget.is-collapsed{
    left:auto;
    right:1rem;
    width:188px;
  }
}

/* footer */
.foot{
  background:var(--ink); color:var(--paper);
  padding:3rem var(--pad) 1.5rem;
  border-top:5px solid var(--varsity-red);
}
.foot__top{
  max-width:var(--maxw); margin:0 auto;
  display:grid; grid-template-columns:auto 1fr auto; gap:2rem;
  padding-bottom:2rem; border-bottom:2px dashed rgba(255,255,255,.2);
  align-items:center;
}
@media (max-width:700px){ .foot__top{ grid-template-columns:1fr; gap:1rem } }
.foot__logo{
  width:48px; height:48px; border-radius:50%; background:#fff;
  border:2px solid var(--sun); padding:1px;
}
.foot__addr{ font-family:var(--f-cn); font-size:.95rem; color:var(--paper); font-weight:700 }
.foot__addr-sm{ font-family:var(--f-mono); font-size:11px; color:rgba(255,255,255,.55); margin-top:.3rem }
.foot__lines{ font-family:var(--f-mono); font-size:11px; color:rgba(255,255,255,.6); text-align:right; line-height:1.85 }
.foot__lines div:first-child{ color:var(--sun); font-weight:700 }
@media (max-width:700px){ .foot__lines{ text-align:left } }

.foot__bot{
  max-width:var(--maxw); margin:1.5rem auto 0;
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:.85rem;
  font-family:var(--f-mono); font-size:10.5px; color:rgba(255,255,255,.5); letter-spacing:.04em;
}
.foot__bot a:hover{ color:var(--sun) }

.foot__wordmark{ display:none }

/* reveal */
.reveal-ready{ animation:revealUp .7s cubic-bezier(.2,.7,.2,1) backwards }
.reveal-ready.is-visible{ animation:none }
@keyframes revealUp{
  from{ opacity:0; transform:translateY(20px) }
  to{ opacity:1; transform:translateY(0) }
}
@media (prefers-reduced-motion: reduce){
  .reveal-ready{ animation:none }
}
