
/* Fight Card — warm black ground, brass for verified data, vermilion for attention.
   To bring in Gymdesk's teal instead of brass, set --mat to #16C9B5 (dark) / #0A7F73 (light). */
:root{
  --ground:#F2EDE7; --surface:#FFFFFF; --surface-2:#E9E0D8;
  --ink:#1A1210; --ink-soft:#5A4740; --ink-faint:#8A746A;
  --mat:#8F6412; --mat-soft:#F4E7CA;
  --hot:#C1341E; --hot-soft:#F8DED8;
  --gold:#8F6412; --gold-soft:#F4E7CA;
  --rule:#DCCFC7; --rule-strong:#BEA99F;
  --hero-bg:#120E0E; --hero-navy:#092C42;
  --hero-ink:#F6EFE8; --hero-soft:#A08A7E; --hero-line:#34251F;
  --display:"Big Shoulders Display","Haettenschweiler","Arial Narrow",sans-serif;
  --body:"Barlow","Helvetica Neue",Arial,sans-serif;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --ground:#141010; --surface:#1F1817; --surface-2:#2C2220;
    --ink:#F4EDE6; --ink-soft:#C2B0A6; --ink-faint:#93796D;
    --mat:#E2A33C; --mat-soft:#33240F;
    --hot:#E0412A; --hot-soft:#3A1811;
    --gold:#E2A33C; --gold-soft:#32240F;
    --rule:#3A2B27; --rule-strong:#54413A;
  }
}
:root[data-theme="dark"]{
  --ground:#141010; --surface:#1F1817; --surface-2:#2C2220;
  --ink:#F4EDE6; --ink-soft:#C2B0A6; --ink-faint:#93796D;
  --mat:#E2A33C; --mat-soft:#33240F;
  --hot:#E0412A; --hot-soft:#3A1811;
  --gold:#E2A33C; --gold-soft:#32240F;
  --rule:#3A2B27; --rule-strong:#54413A;
}

*{box-sizing:border-box}
body{margin:0;background:var(--ground);color:var(--ink);font-family:var(--body);
  font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased;overflow-x:hidden}
h1,h2,h3{margin:0;font-family:var(--display);text-wrap:balance}
p{margin:0}
img{max-width:100%}
[hidden]{display:none!important}
button{font:inherit;color:inherit;cursor:pointer}
a{color:var(--mat)}

.wrap{max-width:64rem;margin-inline:auto;padding-inline:18px;padding-block:0 76px;
  display:flex;flex-direction:column;gap:26px}

/* hero */
.hero{color:var(--hero-ink);padding:26px 18px 0;border-bottom:3px solid var(--hot);
  background:
    radial-gradient(130% 95% at 18% 0%, #2C1714 0%, rgba(44,23,20,0) 62%),
    repeating-linear-gradient(135deg, #191212 0 3px, var(--hero-bg) 3px 7px)}
.hero-in{max-width:64rem;margin-inline:auto;display:flex;flex-direction:column;gap:11px}
.kicker{font-weight:600;font-size:.66rem;text-transform:uppercase;letter-spacing:.2em;color:var(--hot)}
.kicker a{color:var(--hot);text-decoration:none}
.kicker a:hover{text-decoration:underline}
h1{font-weight:800;font-size:clamp(1.9rem,5.4vw,3.2rem);line-height:.88;
  letter-spacing:-.005em;text-transform:uppercase;color:var(--hero-ink)}
h1 em{font-style:normal;color:var(--hot);display:inline}
@media (max-width:460px){ h1 em{display:block} }
.thesis{font-size:.93rem;line-height:1.5;color:var(--hero-soft);max-width:44em}
.thesis b{color:var(--hero-ink);font-weight:600}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(104px,1fr));
  border-top:1px solid var(--hero-line);margin-top:2px}
.stat{padding:9px 12px 11px;border-right:1px solid var(--hero-line);
  display:flex;flex-direction:column;gap:0}
.stat:last-child{border-right:none}
.stat b{font-family:var(--display);font-weight:800;font-size:1.75rem;line-height:.95;
  font-variant-numeric:tabular-nums;color:var(--hero-ink)}
.stat.hot b{color:var(--hot)}
.stat.good b{color:var(--gold)}
.stat span{font-size:.56rem;text-transform:uppercase;letter-spacing:.13em;color:var(--hero-soft)}

/* filters */
.filters{position:sticky;top:env(safe-area-inset-top,0px);z-index:9;background:var(--ground);
  border-bottom:2px solid var(--ink);padding-block:10px;
  display:flex;flex-direction:column;gap:10px}
.fbar{display:flex;flex-wrap:wrap;gap:9px;align-items:center}
.fbody{display:flex;flex-wrap:wrap;gap:14px 22px;align-items:flex-end}
.ftoggle{display:none;background:transparent;border:1.5px solid var(--ink);color:var(--ink);
  padding:7px 14px;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.09em}
.fcount{background:var(--hot);color:#fff;border-radius:999px;padding:0 6px;margin-left:7px;
  font-size:.66rem;font-variant-numeric:tabular-nums}
.chip .cnt{opacity:.55;font-variant-numeric:tabular-nums;margin-left:3px;font-weight:500}
.chip[aria-pressed="true"] .cnt{opacity:.8}
@media (max-width:760px){
  .ftoggle{display:inline-block}
  .fbody{display:none}
  .filters.open .fbody{display:flex;flex-direction:column;align-items:stretch;gap:12px;
    padding-top:4px;border-top:1px solid var(--rule)}
  .filters.open .fgroup{width:100%}
  .drive input{width:100%;flex:1}
  #map{height:clamp(280px,46vh,420px)}
  .listhead h2{font-size:1.3rem}
}
.fgroup{display:flex;flex-direction:column;gap:6px}
.fgroup>span{font-size:.6rem;text-transform:uppercase;letter-spacing:.14em;color:var(--ink-faint)}
.chips{display:flex;flex-wrap:wrap;gap:5px}
.chip{background:transparent;border:1.5px solid var(--rule-strong);color:var(--ink-soft);
  padding:5px 12px;font-size:.76rem;font-weight:600}
.chip:hover{border-color:var(--ink)}
.chip[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:var(--ground)}
.chip.locating{opacity:.6;pointer-events:none}
#nearMe{border-color:var(--hot);color:var(--hot)}
#nearMe:hover{background:var(--hot-soft)}
#nearMe[aria-pressed="true"]{background:var(--hot);border-color:var(--hot);color:#fff}
.locnote{font-size:.66rem;color:var(--ink-faint)}
.dist{font-family:var(--display);font-weight:700;font-size:1rem;color:var(--mat);
  font-variant-numeric:tabular-nums}
.chip:focus-visible,.cta:focus-visible,.expand:focus-visible{outline:2px solid var(--hot);outline-offset:2px}
.drive{display:flex;align-items:center;gap:9px}
.drive input{accent-color:var(--hot);width:126px}
.drive output{font-size:.78rem;font-weight:700;font-variant-numeric:tabular-nums;min-width:56px}

/* map */
.mapcard{background:var(--hero-bg);padding:11px;border:1px solid var(--hero-line);margin:0}
#map{height:clamp(340px,60vh,580px);width:100%;background:#0F0C0C;z-index:1}
.leaflet-tile-pane{filter:invert(1) hue-rotate(180deg) brightness(.72) contrast(1.08)
  saturate(.45) sepia(.28)}
.leaflet-container{font-family:var(--body);background:#0F0C0C}
.leaflet-div-icon{background:none;border:none}
.pin{display:block;filter:drop-shadow(0 3px 4px rgba(0,0,0,.6));cursor:pointer;
  transition:transform .12s}
.pin:hover{transform:translateY(-2px) scale(1.06)}
.pin.conn{filter:drop-shadow(0 0 7px rgba(226,163,60,.55)) drop-shadow(0 3px 4px rgba(0,0,0,.6))}
.inview{color:var(--mat);font-weight:700}
.leaflet-popup-content-wrapper{background:var(--hero-bg);color:var(--hero-ink);
  border:1px solid var(--hero-line);border-radius:0;box-shadow:0 8px 26px rgba(0,0,0,.55)}
.leaflet-popup-tip{background:var(--hero-bg);border:1px solid var(--hero-line)}
.leaflet-popup-content{margin:11px 13px;font-size:.8rem;line-height:1.35}
.leaflet-popup-content b{font-family:var(--display);font-weight:700;font-size:1.15rem;
  text-transform:uppercase;display:block;line-height:1}
.leaflet-popup-content .pt{font-size:.66rem;text-transform:uppercase;letter-spacing:.09em;
  color:var(--hero-soft);display:block;margin-top:2px}
.leaflet-popup-content .ps{font-size:.62rem;font-weight:700;text-transform:uppercase;
  letter-spacing:.09em;display:block;margin-top:7px}
.leaflet-popup-content a{color:var(--hot);font-weight:700;text-transform:uppercase;
  font-size:.66rem;letter-spacing:.07em;text-decoration:none;display:inline-block;margin-top:7px}
.leaflet-popup-content a:hover{text-decoration:underline}
.leaflet-popup-close-button{color:var(--hero-soft)!important}
.leaflet-control-zoom a{background:var(--hero-bg);color:var(--hero-ink);
  border-color:var(--hero-line)}
.leaflet-control-zoom a:hover{background:#231816;color:#fff}
.leaflet-control-attribution{background:rgba(18,14,14,.82)!important;color:#8E7466!important;
  font-size:9px!important}
.leaflet-control-attribution a{color:#A08A7E!important}
svg{display:block;max-width:100%}
.mapkey{margin-top:9px;display:flex;flex-wrap:wrap;gap:5px 18px;align-items:center;
  font-size:.66rem;color:var(--hero-soft)}
.key{display:inline-flex;align-items:center;gap:6px}
.key i{width:10px;height:10px;display:inline-block;border-radius:50%}

/* listings */
.listhead{display:flex;justify-content:space-between;align-items:baseline;gap:14px;flex-wrap:wrap;
  border-bottom:2px solid var(--ink);padding-bottom:7px}
h2{font-weight:700;font-size:1.6rem;text-transform:uppercase}
.count{font-size:.72rem;color:var(--ink-faint);font-variant-numeric:tabular-nums;
  text-transform:uppercase;letter-spacing:.1em;font-weight:600}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(308px,1fr));
  gap:13px;margin-top:13px;align-items:stretch}

.card{background:var(--surface);border:1px solid var(--rule);display:flex;flex-direction:column;
  box-shadow:0 5px 18px rgba(20,10,8,.10)}
.card.connected{border-color:var(--mat);border-top:4px solid var(--mat);
  box-shadow:0 0 0 1px rgba(226,163,60,.22), 0 8px 24px rgba(20,10,8,.16)}
.card.listed{border-top:4px solid var(--rule-strong)}
.card.community{border-top:4px solid var(--hot)}
.card.open{grid-column:1/-1;box-shadow:0 14px 40px rgba(20,10,8,.26);align-self:start}
.card.open .fields{columns:2;column-gap:28px}
@media (max-width:640px){ .card.open .fields{columns:1} }

.card-head{padding:14px 15px 12px;display:flex;flex-direction:column;gap:9px}
.idrow{display:flex;gap:11px;align-items:flex-start}
.idrow>div{min-width:0;flex:1}
.mark{width:46px;height:46px;flex:none;border:1px solid var(--rule);background:var(--surface-2);
  display:grid;place-items:center;overflow:hidden}
.mark img{width:100%;height:100%;object-fit:contain;padding:4px;display:block}
.mono{font-family:var(--display);font-weight:800;font-size:1.2rem;letter-spacing:-.01em;
  color:var(--ink-faint);line-height:1}
.card.connected .mark{border-color:var(--mat)}
.card.community .mark{border-color:var(--rule)}
.mark.big{width:78px;height:78px}
.mark.big .mono{font-size:2rem}
.card h3{font-weight:700;font-size:1.5rem;line-height:.95;text-transform:uppercase}
.card h3 a{color:inherit;text-decoration:none}
.card h3 a:hover{color:var(--mat)}
.where{font-size:.74rem;color:var(--ink-faint);font-weight:500;
  text-transform:uppercase;letter-spacing:.09em;margin-top:4px}
.when{display:flex;align-items:baseline;gap:9px;flex-wrap:wrap;
  background:var(--surface-2);margin:0 -15px;padding:8px 15px}
.when .d{font-family:var(--display);font-weight:800;font-size:1.05rem;
  text-transform:uppercase;color:var(--hot);line-height:1}
.when .t{font-size:.92rem;font-weight:600;font-variant-numeric:tabular-nums}
.when .dr{font-size:.73rem;color:var(--ink-faint);font-variant-numeric:tabular-nums;margin-left:auto}
.when.noopen{color:var(--ink-faint);font-size:.82rem;font-style:italic}

.fields{display:flex;flex-direction:column;gap:6px;padding:12px 15px;margin:0;flex:1 0 auto}
.card>.social{margin-top:auto}
.card>.ctas:last-of-type{margin-top:auto}
.clamp{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.card.open .clamp{display:block;-webkit-line-clamp:unset;overflow:visible}
.card.open .fields{display:block}
.card.open .field{break-inside:avoid;margin-bottom:6px}
.field{display:grid;grid-template-columns:7.6rem 1fr;gap:10px;font-size:.8rem;align-items:baseline}
.field dt{color:var(--ink-faint);font-size:.61rem;text-transform:uppercase;
  letter-spacing:.1em;font-weight:600}
.field dd{margin:0}
.unknown{color:var(--hot);font-weight:500}

.tags{display:flex;flex-wrap:wrap;gap:4px}
.tag{font-size:.66rem;font-weight:600;padding:2px 7px;background:var(--surface-2);
  color:var(--ink-soft);text-transform:uppercase;letter-spacing:.05em}
.tag.flag{background:var(--hot-soft);color:var(--hot)}

.ctas{display:flex;flex-wrap:wrap;gap:7px;padding:0 15px 12px}
.cta{background:var(--hot);color:#FFFFFF;text-decoration:none;padding:9px 15px;
  font-size:.76rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;
  display:inline-block}
.cta:hover{filter:brightness(1.08)}
.cta.ghost{background:transparent;border:1.5px solid var(--mat);color:var(--mat);padding:7.5px 14px}
.cta.quiet{background:transparent;border:1.5px solid var(--rule-strong);color:var(--ink-soft);padding:7.5px 14px}
.cta.quiet:hover{border-color:var(--ink);color:var(--ink)}

.social{display:flex;flex-wrap:wrap;gap:6px;padding:0 15px 12px}
.social a{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;
  text-decoration:none;border:1.5px solid var(--rule-strong);color:var(--ink-soft);padding:4px 10px}
.social a:hover{border-color:var(--mat);color:var(--mat)}
.social a.film{border-color:var(--hot);color:var(--hot)}

.foot{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between;
  border-top:1px solid var(--rule);padding:10px 15px;margin-top:auto}
.status{font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em}
.status.t-connected{color:var(--mat)}
.status.t-listed{color:var(--ink-faint)}
.status.t-community{color:var(--hot)}
.expand{background:transparent;border:1.5px solid var(--rule-strong);color:var(--ink-soft);
  padding:5px 11px;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em}
.expand:hover{border-color:var(--ink);color:var(--ink)}

.more{border-top:1px solid var(--rule);padding:13px 15px;display:flex;flex-direction:column;gap:12px}
.more h4{margin:0;font-family:var(--display);font-weight:700;font-size:1.05rem;text-transform:uppercase}

/* weekly schedule */
.week{display:grid;grid-template-columns:3.4rem 1fr;gap:1px;background:var(--rule);
  border:1px solid var(--rule);font-size:.8rem}
.week>div{background:var(--surface);padding:7px 10px}
.week .wd{font-family:var(--display);font-weight:700;font-size:1rem;text-transform:uppercase;
  color:var(--ink-soft);background:var(--surface-2)}
.week .wc{display:flex;flex-direction:column;gap:2px}
.week .wc span.om{color:var(--hot);font-weight:600}
.week .closed{color:var(--ink-faint);font-style:italic}

/* provenance */
.prov{background:var(--surface-2);padding:12px 15px;display:flex;flex-direction:column;gap:8px;
  border-top:1px solid var(--rule)}
.prov h4{margin:0;font-family:var(--display);font-weight:700;font-size:.95rem;
  text-transform:uppercase;letter-spacing:.03em;color:var(--ink-soft)}
.prov ul{margin:0;padding-left:1.05em;font-size:.79rem;color:var(--ink-soft)}
.prov li{margin-bottom:3px}
.prov .src b{color:var(--ink);font-weight:600}
.prov .gap{color:var(--hot)}

.empty{background:var(--surface);border:2px dashed var(--rule-strong);padding:34px;
  text-align:center;color:var(--ink-faint);font-size:.92rem;margin-top:13px}

.notes{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:13px}
.note{background:var(--surface);border:1px solid var(--rule);border-left:5px solid var(--mat);
  padding:16px 17px;display:flex;flex-direction:column;gap:8px}
.note.warnbar{border-left-color:var(--hot)}
.note h3{font-size:1.1rem;font-weight:700;text-transform:uppercase;line-height:1}
.note p{font-size:.92rem;color:var(--ink-soft)}

footer{border-top:2px solid var(--ink);padding-top:15px;font-size:.75rem;color:var(--ink-faint);
  display:flex;flex-direction:column;gap:7px}
.disclosure{font-size:.88rem;color:var(--ink-soft);border-left:3px solid var(--hot);padding-left:13px}

/* school page */
.page{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:20px;align-items:start}
@media (max-width:820px){ .page{grid-template-columns:1fr} }
.panel{background:var(--surface);border:1px solid var(--rule);padding:17px 18px;
  display:flex;flex-direction:column;gap:12px}
.panel h3{font-weight:700;font-size:1.25rem;text-transform:uppercase}
.back{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em;
  text-decoration:none;color:var(--hero-soft)}
.back:hover{color:var(--hero-ink)}
.bigfacts{display:flex;flex-direction:column;gap:7px;margin:0}
.bigfacts .field{grid-template-columns:8.4rem 1fr;font-size:.87rem}

@media (max-width:540px){ .field{grid-template-columns:1fr;gap:1px} }
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
