/* Lock Haven Athletics — crimson & white, jersey-stripe signature */
:root{
  --crimson:#9e1b32; --crimson-d:#6e1222; --ink:#131316; --paper:#ffffff;
  --stone:#f1efeb; --line:#e2e0db; --steel:#5e6066;
  --display:'Anton',sans-serif; --body:'Barlow',sans-serif; --cond:'Barlow Condensed',sans-serif;
}
*{box-sizing:border-box;margin:0}
body{font:16px/1.55 var(--body);color:var(--ink);background:var(--paper)}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.wrap{max-width:1180px;margin:0 auto;padding:0 20px}
:focus-visible{outline:3px solid var(--crimson);outline-offset:2px}

/* ---- scoreboard ticker ---- */
.ticker{background:var(--ink);color:#fff;overflow-x:auto;scrollbar-width:none}
.ticker::-webkit-scrollbar{display:none}
.ticker-track{display:flex;gap:0;min-width:max-content;padding:0 12px}
.tk{display:flex;align-items:center;gap:8px;padding:8px 16px;border-right:1px solid #2a2a2e;font-family:var(--cond);font-size:14px;letter-spacing:.02em;white-space:nowrap}
.tk:hover{background:#222226}
.tk-sport{color:#9b9ca3;font-weight:600;font-size:12px;letter-spacing:.1em}
.tk-score{font-weight:700}.tk-score.w{color:#5fd38a}.tk-score.l{color:#ff8d85}
.tk-score.live{color:#ffc14d}
@media (prefers-reduced-motion:no-preference){.tk-score.live{animation:tkpulse 1.5s infinite}}
@keyframes tkpulse{50%{opacity:.5}}
.tk-time{color:#c9cad0}.tk-empty{padding:8px 16px;font-family:var(--cond);color:#9b9ca3}

/* ---- masthead ---- */
.masthead{background:var(--crimson);color:#fff;border-bottom:4px solid var(--ink)}
.mast-row{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;padding-top:14px;padding-bottom:14px}
.wordmark{font-family:var(--display);font-size:26px;letter-spacing:.04em;text-transform:uppercase;color:#fff}
.wordmark.sm{font-size:18px}
.mainnav{display:flex;gap:4px;flex-wrap:wrap}
.navlink{font:600 15px var(--cond);letter-spacing:.08em;text-transform:uppercase;color:#fff;padding:8px 14px;background:none;border:0;cursor:pointer}
.navlink:hover{background:var(--crimson-d)}
.dropdown{position:relative}
.dd-panel{display:none;position:absolute;left:0;top:100%;background:#fff;color:var(--ink);min-width:480px;
  box-shadow:0 16px 40px rgba(19,19,22,.25);border-top:4px solid var(--ink);padding:18px;z-index:50;
  grid-template-columns:1fr 1fr;gap:8px 24px}
.dropdown.open .dd-panel{display:grid}
.dd-grp{display:block;font:700 12px var(--cond);letter-spacing:.14em;text-transform:uppercase;color:var(--steel);margin-bottom:6px}
.dd-panel a{display:block;padding:5px 8px;font-size:15px;border-left:3px solid transparent}
.dd-panel a:hover{border-left-color:var(--crimson);background:var(--stone)}

/* ---- signature: the stripe slash ---- */
.stripe{display:inline-flex;align-items:center;gap:12px;margin-bottom:18px}
.stripe::before{content:"";width:34px;height:22px;background:var(--crimson);transform:skewX(-12deg)}
.stripe h2,.stripe .h{font-family:var(--display);font-size:24px;letter-spacing:.03em;text-transform:uppercase}
.stripe a.more{font:600 13px var(--cond);letter-spacing:.1em;text-transform:uppercase;color:var(--crimson);margin-left:8px}

/* ---- hero ---- */
.hero{position:relative;background:var(--ink);color:#fff;min-height:420px;display:flex;align-items:flex-end}
.hero .bg{position:absolute;inset:0;background-size:cover;background-position:center;opacity:.55}
.hero .scrim{position:absolute;inset:0;background:linear-gradient(180deg,transparent 30%,rgba(19,19,22,.92))}
.hero .inner{position:relative;padding:60px 20px 40px;max-width:1180px;margin:0 auto;width:100%}
.hero .kicker{display:inline-block;font:700 13px var(--cond);letter-spacing:.14em;text-transform:uppercase;
  background:var(--crimson);padding:4px 12px;transform:skewX(-12deg);margin-bottom:14px}
.hero .kicker span{display:inline-block;transform:skewX(12deg)}
.hero h1{font-family:var(--display);font-size:clamp(28px,5vw,52px);line-height:1.08;letter-spacing:.01em;text-transform:uppercase;max-width:820px}
.hero h1 a:hover{color:#ffd9de}
.hero .sub{margin-top:10px;color:#d6d7db;max-width:640px;font-size:17px}

/* ---- sections, cards ---- */
.section{padding:46px 0}
.section.alt{background:var(--stone)}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.split{display:grid;grid-template-columns:2fr 1fr;gap:34px;align-items:start}
.card{background:#fff;border:1px solid var(--line)}
a.card:hover{border-color:var(--crimson)}
.card .ph{aspect-ratio:16/9;background:var(--stone) center/cover no-repeat}
.card .pad{padding:14px 16px}
.card .tag{font:700 11.5px var(--cond);letter-spacing:.12em;text-transform:uppercase;color:var(--crimson)}
.card h3{font:600 17px/1.3 var(--body);margin:5px 0 6px}
.card .meta{font:13px var(--cond);color:var(--steel);letter-spacing:.04em}

/* ---- tables (schedule, roster, stats, box) ---- */
table{width:100%;border-collapse:collapse;font-size:15px;background:#fff}
th{font:700 12.5px var(--cond);letter-spacing:.1em;text-transform:uppercase;color:var(--steel);
  text-align:left;padding:10px 12px;border-bottom:3px solid var(--ink)}
td{padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:middle}
tr:hover td{background:#faf9f7}
.num{text-align:right;font-family:var(--cond);font-size:15px}
.mono{font-family:var(--cond)}
.res-w{color:#1d7a44;font-weight:700}.res-l{color:var(--crimson);font-weight:700}.res-t{font-weight:700}
.tbl-scroll{overflow-x:auto;border:1px solid var(--line)}

/* ---- sport hub ---- */
.sporthead{background:var(--ink);color:#fff;padding:34px 0 0}
.sporthead h1{font-family:var(--display);font-size:clamp(26px,4vw,42px);text-transform:uppercase;letter-spacing:.02em}
.sporthead .rec{font:600 16px var(--cond);letter-spacing:.06em;color:#cfd0d6;margin-top:6px}
.subnav{display:flex;gap:2px;margin-top:22px;flex-wrap:wrap}
.subnav a{font:600 14px var(--cond);letter-spacing:.1em;text-transform:uppercase;color:#cfd0d6;padding:10px 18px}
.subnav a.on{background:var(--crimson);color:#fff}
.subnav a:hover{color:#fff}
.seasonpick{margin-left:auto}
.seasonpick select{font:inherit;background:#222;color:#fff;border:1px solid #3a3a3f;padding:6px 8px}

/* ---- roster cards / player ---- */
.rosterline .hs{width:44px;height:44px;object-fit:cover;border-radius:3px;background:var(--stone)}
.playerhead{display:flex;gap:26px;align-items:flex-end;flex-wrap:wrap}
.playerhead .hs{width:180px;height:220px;object-fit:cover;background:var(--stone);border:1px solid var(--line)}
.playerhead .uni{font-family:var(--display);font-size:64px;color:var(--crimson);line-height:1}
.playerhead h1{font-family:var(--display);font-size:clamp(28px,4vw,44px);text-transform:uppercase;line-height:1.05}
.facts{display:flex;gap:26px;flex-wrap:wrap;margin-top:12px}
.facts div{font:15px var(--body)}
.facts b{display:block;font:700 11.5px var(--cond);letter-spacing:.12em;text-transform:uppercase;color:var(--steel)}

/* ---- prose (story body, pages) ---- */
.prose{max-width:760px;font-size:17px}
.prose p{margin:0 0 18px}
.prose h2,.prose h3{font-family:var(--cond);font-weight:700;text-transform:uppercase;letter-spacing:.04em;margin:26px 0 10px}
.prose img{margin:18px 0}
.byline{font:600 14px var(--cond);letter-spacing:.06em;color:var(--steel);margin:14px 0 26px;text-transform:uppercase}
.storyhero{aspect-ratio:21/9;background:var(--stone) center/cover no-repeat;margin-bottom:26px}
.credit{font:12px var(--cond);color:var(--steel);text-align:right;padding-top:4px}

/* ---- footer ---- */
.foot{background:var(--ink);color:#fff;margin-top:60px}
.foot-row{display:flex;justify-content:space-between;align-items:center;padding:26px 20px;flex-wrap:wrap;gap:12px}
.foot-meta{font:13px var(--cond);color:#9b9ca3;letter-spacing:.06em}

.pgn{display:flex;gap:8px;margin-top:26px}
.pgn a{font:600 14px var(--cond);border:1px solid var(--line);padding:8px 14px;letter-spacing:.06em}
.pgn a:hover{border-color:var(--crimson);color:var(--crimson)}
.empty{padding:50px 20px;text-align:center;color:var(--steel)}

@media (max-width:900px){
  .grid3,.grid4{grid-template-columns:repeat(2,1fr)}
  .split{grid-template-columns:1fr}
  .dd-panel{min-width:320px;grid-template-columns:1fr}
}
@media (max-width:560px){
  .grid3,.grid4{grid-template-columns:1fr}
  .hero{min-height:320px}
}

/* ---- v0.12.0 navigation + polish ---- */
.skip{position:absolute;left:-9999px;top:0;background:var(--ink);color:#fff;padding:10px 18px;z-index:100;font:600 14px var(--cond)}
.skip:focus{left:0}

.navlink.on{background:var(--crimson-d)}

.hamburger{display:none;background:none;border:0;cursor:pointer;padding:10px;margin-left:auto}
.hamburger span{display:block;width:24px;height:3px;background:#fff;margin:5px 0;transition:transform .2s,opacity .2s}
.hamburger[aria-expanded="true"] span:nth-child(1){transform:translateY(8px) rotate(45deg)}
.hamburger[aria-expanded="true"] span:nth-child(2){opacity:0}
.hamburger[aria-expanded="true"] span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}

.mobilenav{background:var(--crimson-d);padding:18px 20px 24px}
.mobilenav a{display:block;color:#fff;padding:9px 4px;font:600 16px var(--cond);letter-spacing:.06em;text-transform:uppercase;border-bottom:1px solid rgba(255,255,255,.12)}
.mobilenav .dd-grp{color:#e9b9c2;margin:14px 0 4px}
.mn-links{margin-bottom:8px}

@media (max-width:900px){
  .hamburger{display:block}
  .mainnav{display:none}
}

/* homepage rail */
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.rail .stripe h2{font-size:20px}
.rail .stripe::before{width:26px;height:18px}
.railcard{padding:4px 0}
.railrow{display:flex;align-items:baseline;gap:10px;padding:10px 16px;border-bottom:1px solid var(--line);font-size:14.5px}
.railrow:last-child{border-bottom:0}
.railrow:hover{background:#faf9f7}
.rr-date{font:600 12.5px var(--cond);letter-spacing:.06em;color:var(--steel);flex:0 0 44px;text-transform:uppercase}
.rr-main{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rr-main b{font-family:var(--cond);font-size:12.5px;letter-spacing:.08em;color:var(--crimson)}
.rr-side{font-family:var(--cond);font-weight:600;white-space:nowrap}

/* sport hub next/last cards */
.nl-cards{display:flex;gap:14px;margin-top:20px;flex-wrap:wrap}
.nl-card{display:flex;align-items:center;gap:12px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14);padding:10px 16px;color:#fff;font-size:15px}
a.nl-card:hover{background:rgba(255,255,255,.13)}
.nl-tag{font:700 11px var(--cond);letter-spacing:.14em;text-transform:uppercase;background:var(--crimson);padding:3px 9px;transform:skewX(-12deg)}
.nl-tag.next{background:#2c2c31}
.nl-score{font:600 15px var(--cond);letter-spacing:.04em}
.nl-card .res-w{color:#5fd38a}.nl-card .res-l{color:#ff8d85}

/* cards: gentle lift */
a.card{transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease}
a.card:hover{transform:translateY(-2px);box-shadow:0 8px 22px rgba(19,19,22,.08)}

/* footer grid */
.foot-grid{display:grid;grid-template-columns:2fr 1.4fr 1fr;gap:30px;padding:34px 20px 22px;align-items:start}
.foot-text{color:#9b9ca3;font-size:14px;margin-top:10px;max-width:420px}
.foot-nav{display:grid;grid-template-columns:1fr 1fr;gap:4px 18px}
.foot-nav a{font:600 14px var(--cond);letter-spacing:.06em;text-transform:uppercase;color:#cfd0d6;padding:5px 0}
.foot-nav a:hover{color:#fff}
.foot-social{display:flex;gap:10px;justify-content:flex-end}
.foot-social a{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border:1px solid #3a3a3f;color:#cfd0d6;font:700 13px var(--cond)}
.foot-social a:hover{border-color:var(--crimson);color:#fff;background:var(--crimson)}
.foot-base{border-top:1px solid #2a2a2e;padding:16px 20px;font:13px var(--cond);color:#9b9ca3;letter-spacing:.06em}
@media (max-width:900px){
  .foot-grid{grid-template-columns:1fr;gap:20px}
  .foot-social{justify-content:flex-start}
  .grid2{grid-template-columns:1fr}
}
