/* College Hub — Previously Sports (2026-10-03a)
   Editorial cream design per approved mockup. Dark scheme via prefers-color-scheme. */
.chub{ --gold:var(--color-warn); --ink:var(--desert-ink); --cream:var(--desert-card); --red:var(--desert-accent-deep);
  --bg:var(--cream); --sur:var(--desert-card); --line:var(--desert-pressed); --line2:var(--desert-pressed);
  --tx:var(--ink); --mut:var(--desert-ink-dim); --mut2:var(--desert-ink-dim);
  --sealbg:var(--desert-ink); --sealline:var(--desert-ink); --sealtx:var(--desert-pressed); --sealmut:var(--desert-ink-dim);
  background:var(--bg); color:var(--tx);
  font-family:Georgia,"Times New Roman",serif; }.chub *{ box-sizing:border-box; }/* hero */
.chub-hero{ position:relative; min-height:380px; display:flex; align-items:flex-end;
  background-size:cover; background-position:center 30%; }.chub-hero::after{ content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(var(--desert-bg-rgb), .28) 0%, rgba(var(--desert-bg-rgb), .05) 40%, rgba(var(--desert-bg-rgb), .85) 100%); }.chub-heroin{ position:relative; z-index:2; padding:40px 48px; color:var(--desert-card); width:100%; }.chub-kick{ font-family:-apple-system,"Segoe UI",Roboto,sans-serif; font-size:12px; font-weight:800;
  letter-spacing:.28em; color:var(--gold); text-transform:uppercase; margin:0 0 10px; }.chub-heroin h1{ font-size:64px; font-weight:800; letter-spacing:-.02em; line-height:1;
  margin:0 0 10px; text-shadow:0 2px 24px rgba(var(--desert-shadow-rgb), .5); }.chub-lede{ font-size:19px; font-style:italic; color:var(--desert-pressed); max-width:560px; margin:0; }.chub-credit{ margin-top:14px; font-family:-apple-system,sans-serif; font-size:10px;
  letter-spacing:.12em; color:rgba(var(--desert-card-rgb), .65); text-transform:uppercase; }/* sport tabs — text + moving underline, never pills */
.chub-tabs{ position:sticky; top:0; z-index:20; background:color-mix(in srgb, var(--bg) 96%, transparent);
  backdrop-filter:blur(8px); border-bottom:1px solid var(--desert-rule); display:flex; gap:4px; padding:0 48px; }.chub-tabs button{ font-family:-apple-system,"Segoe UI",Roboto,sans-serif; border:0; background:none;
  font-size:15px; font-weight:700; color:var(--mut); padding:16px 18px 14px; cursor:pointer;
  border-bottom:3px solid transparent; letter-spacing:.01em; }.chub-tabs button.on{ color:var(--tx); border-bottom-color:var(--red); }.chub-tabs .dot{ display:inline-block; width:8px; height:8px; border-radius:50%;
  background:var(--red); margin-right:7px; vertical-align:1px; }.chub-tabs .dot.idle{ background:var(--desert-rule); }.chub-body{ padding:30px 48px 60px; }.chub-cols{ display:grid; grid-template-columns:1fr 340px; gap:36px; align-items:start; }.chub-sec{ margin-bottom:44px; }.chub-sechead{ display:flex; align-items:baseline; gap:12px; margin-bottom:16px;
  border-bottom:2px solid var(--tx); padding-bottom:8px; }.chub-sechead h2{ font-size:30px; font-weight:800; letter-spacing:-.01em; margin:0; }.chub-sechead .more{ margin-left:auto; font-family:-apple-system,sans-serif; font-size:13px;
  font-weight:700; color:var(--red); text-decoration:none; }.chub-sechead .more:hover{ text-decoration:underline; }/* score cards */
.chub-scores{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }.chub-gcard{ background:var(--sur); border:1px solid var(--desert-rule); border-radius:14px;
  padding:16px; box-shadow:0 1px 4px rgba(var(--desert-ink-rgb), .06); }.chub-gcard[role="button"]{ cursor:pointer; position:relative;
  transition:border-color 160ms ease, box-shadow 160ms ease; }.chub-gcard[role="button"]:hover{ border-color:var(--red); box-shadow:0 4px 14px rgba(var(--desert-ink-rgb), .12); }.chub-gcard[role="button"]:focus-visible{ outline:2px solid var(--red); outline-offset:2px; }.chub-gcard .chub-gmore{ position:absolute; top:14px; right:14px; color:var(--mut);
  font-size:16px; line-height:1; font-family:-apple-system,sans-serif; }.chub-gcard[role="button"]:hover .chub-gmore{ color:var(--red); }.chub-gstat{ font-family:-apple-system,sans-serif; font-size:11px; font-weight:800;
  letter-spacing:.14em; text-transform:uppercase; color:var(--red); margin:0 0 10px; padding-right:24px; }.chub-gstat.fin{ color:var(--mut); }.chub-gteam{ display:flex; align-items:center; gap:10px; padding:5px 0;
  font-family:-apple-system,sans-serif; }.chub-gteam img{ width:30px; height:30px; object-fit:contain; }.chub-gteam .tn{ font-size:14px; font-weight:600; flex:1; }.chub-gteam .tn .rk{ color:var(--mut); font-weight:700; font-size:12px; margin-right:4px; }.chub-gteam .ts{ font-size:17px; font-weight:800; }.chub-gmeta{ margin-top:10px; font-family:-apple-system,sans-serif; font-size:12px; color:var(--mut); }/* game detail modal */
.chub-gmodal .chub-modal__card{ max-width:440px; background:var(--desert-card); color:var(--desert-ink); }.chub-gmodal .chub-modal__close{ color:var(--desert-ink-dim); }.chub-gmodal__kick{ font-family:-apple-system,sans-serif; font-size:11px; font-weight:800;
  letter-spacing:.14em; text-transform:uppercase; color:var(--desert-accent-deep); margin:0 0 6px; padding-right:30px; }.chub-gmodal h3{ font-size:22px; margin:0 0 16px; padding-right:30px; }.chub-gmodal__teams{ display:flex; flex-direction:column; gap:4px; margin-bottom:16px; }.chub-gmodal__team{ display:flex; align-items:center; gap:12px; padding:10px 12px;
  background:rgba(var(--desert-shadow-rgb), .05); border-radius:10px; font-family:-apple-system,sans-serif; }.chub-gmodal__team img{ width:40px; height:40px; object-fit:contain; }.chub-gmodal__team .gt-n{ flex:1; font-size:15px; font-weight:700; }.chub-gmodal__team .gt-n .rk{ opacity:.6; font-size:13px; margin-right:5px; }.chub-gmodal__team .gt-s{ font-size:26px; font-weight:800; min-width:44px; text-align:right; }.chub-gmodal__team .gt-rec{ font-size:12px; opacity:.6; display:block; font-weight:400; }.chub-gmodal__note{ font-family:-apple-system,sans-serif; font-size:13px;
  line-height:1.5; margin:14px 0 0; }.chub-gmodal__odds{ display:flex; gap:8px; flex-wrap:wrap; margin-top:12px; }.chub-gmodal__odds span{ font-family:-apple-system,sans-serif; font-size:12px; font-weight:700;
  background:rgba(var(--desert-shadow-rgb), .06); border-radius:8px; padding:6px 10px; }.chub-gmodal .chub-modal__rows{ font-family:-apple-system,sans-serif; font-size:14px; margin:0 0 4px; }.chub-gmodal .chub-modal__rows div{ display:flex; justify-content:space-between; padding:7px 0;
  border-bottom:1px solid rgba(var(--desert-shadow-rgb), .1); }.chub-gmodal .chub-modal__rows div:last-child{ border-bottom:0; }.chub-gmodal .chub-modal__rows b{ font-weight:800; text-align:right; }.chub-gmodal .chub-modal__rows .gmodal-lines{ flex-direction:column; gap:6px; }.chub-gmodal .chub-modal__rows .gmodal-lines b{ text-align:left; font-weight:700; line-height:1.6; }/* phone: game modal becomes a bottom sheet */
@media (max-width:760px){
  .chub-gmodal { align-items:flex-end; padding:0; }
  .chub-gmodal .chub-modal__card { max-width:none; width:100%; border-radius:18px 18px 0 0;
    padding:22px 20px calc(20px + env(safe-area-inset-bottom)); max-height:88vh; overflow-y:auto;
    -webkit-overflow-scrolling:touch; }
}/* rankings */
.chub-ranktabs{ display:flex; gap:18px; margin-bottom:12px;
  font-family:-apple-system,sans-serif; font-size:13px; font-weight:700; }.chub-ranktabs span{ color:var(--mut); cursor:pointer; padding:12px 8px 10px; }.chub-ranktabs span.on{ color:var(--tx); border-bottom:2px solid var(--red); }/* wide tables (standings) scroll inside their own box on narrow screens */
.chub-tblwrap{ overflow-x:auto; -webkit-overflow-scrolling:touch; }.chub-ranktbl{ width:100%; border-collapse:collapse; font-family:-apple-system,sans-serif; font-size:14px; }.chub-ranktbl td{ padding:9px 8px; border-bottom:1px solid var(--line2); }.chub-ranktbl .rn{ font-weight:800; width:34px; color:var(--red); }.chub-ranktbl .rt{ font-weight:600; display:flex; align-items:center; gap:9px; }.chub-ranktbl .rt img{ width:24px; height:24px; object-fit:contain; }.chub-ranktbl .rr{ text-align:right; color:var(--mut); font-size:13px; }.chub-pollnote, .chub-standnote{ font-family:-apple-system,sans-serif; font-size:12px; color:var(--mut); margin:10px 0 0; }.chub-preseason{ background:var(--sur); border:1px dashed var(--desert-rule); border-radius:14px;
  padding:26px; font-family:-apple-system,sans-serif; font-size:14px; color:var(--mut2);
  text-align:center; line-height:1.5; }.chub-preseason a{ color:var(--red); font-weight:700; }/* standings dropdown */
.chub-standcontrols{ margin-bottom:12px; }.chub-standcontrols select{ font-family:-apple-system,sans-serif; font-size:14px; font-weight:700;
  padding:11px 34px 11px 14px; border-radius:10px; border:1px solid var(--desert-rule);
  background-color:var(--sur); color:var(--tx); appearance:none; cursor:pointer; min-width:230px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23b3342a' fill='none' stroke-width='2'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 14px center; }/* signing day directory */
.chub-signing{ background:var(--desert-card); border-radius:18px; padding:34px 34px 30px;
  color:var(--desert-pressed); position:relative; overflow:hidden; }.chub-signing::before{ content:""; position:absolute; inset:0;
  background:radial-gradient(700px 300px at 20% 0%, rgba(var(--color-warn-rgb), .14), transparent 70%);
  pointer-events:none; }.chub-signing .chub-sechead{ border-bottom-color:rgba(var(--color-warn-rgb), .4); position:relative; }.chub-signing .chub-sechead h2{ color:var(--desert-pressed); }.chub-signing .chub-kick{ color:var(--gold); }.chub-dirsub{ font-family:-apple-system,sans-serif; font-size:13.5px; color:var(--desert-ink-dim);
  margin:-6px 0 18px; position:relative; max-width:640px; line-height:1.5; }.chub-dircontrols{ display:flex; gap:12px; margin-bottom:22px; position:relative; flex-wrap:wrap; }.chub-dircontrols select, .chub-dircontrols input{ font-family:-apple-system,sans-serif;
  font-size:14px; padding:11px 14px; border-radius:10px; border:1px solid var(--desert-ink);
  background-color:var(--desert-ink); color:var(--desert-pressed); color-scheme:dark; }.chub-dircontrols select{ appearance:none; padding-right:34px; cursor:pointer; min-width:210px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23d9a441' fill='none' stroke-width='2'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 14px center; }.chub-dircontrols input{ flex:1; min-width:180px; }.chub-dircontrols input::placeholder{ color:var(--desert-ink-dim); }.chub-teamgrid{ display:grid; grid-template-columns:repeat(4,1fr); gap:14px; position:relative; }.chub-tcard{ background:var(--sealbg); border:1px solid var(--sealline); border-radius:12px;
  padding:18px 14px 14px; text-align:center; position:relative; cursor:pointer;
  transition:transform .18s ease, border-color .18s ease; }.chub-tcard:hover{ transform:translateY(-3px); border-color:var(--gold); }.chub-tcard .seal{ width:54px; height:54px; margin:0 auto 10px; border-radius:50%;
  display:flex; align-items:center; justify-content:center; background:var(--desert-card);
  box-shadow:0 0 0 4px rgba(var(--color-warn-rgb), .25), 0 4px 14px rgba(var(--desert-shadow-rgb), .4); position:relative; }.chub-tcard .seal img{ width:40px; height:40px; object-fit:contain; }.chub-tcard .seal::after{ content:""; position:absolute; inset:-7px; border-radius:50%;
  border:2px dashed rgba(var(--color-warn-rgb), .55); }.chub-tcard .tn2{ font-family:-apple-system,sans-serif; font-size:13px; font-weight:700;
  color:var(--sealtx); line-height:1.25; }.chub-tcard .tc{ font-family:-apple-system,sans-serif; font-size:11px; color:var(--sealmut);
  margin-top:4px; letter-spacing:.06em; text-transform:uppercase; }.chub-tcard .tr{ font-family:-apple-system,sans-serif; font-size:12px; color:var(--gold);
  font-weight:800; margin-top:6px; }.chub-dirfoot{ margin-top:18px; text-align:center; position:relative;
  font-family:-apple-system,sans-serif; font-size:13px; color:var(--sealmut); }.chub-dirfoot b{ color:var(--gold); }/* news cards */
.chub-newsgrid{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }.chub-ncard{ background:var(--sur); border:1px solid var(--desert-rule); border-radius:14px;
  overflow:hidden; box-shadow:0 1px 4px rgba(var(--desert-ink-rgb), .06); cursor:pointer;
  text-decoration:none; color:inherit; display:block; transition:transform .18s ease; }.chub-ncard:hover{ transform:translateY(-3px); }.chub-ncard .nimg{ height:150px; background-size:cover; background-position:center; }/* rare no-image fallback: branded signal treatment, never an empty box */
.chub-ncard .nimg--none{
  background: linear-gradient(135deg, var(--desert-ink) 0%, var(--desert-ink) 55%, var(--brand-red) 130%);
  position:relative;
}.chub-ncard .nimg--none::after{
  content:"PREVIOUSLY"; position:absolute; inset:auto 0 12px; text-align:center;
  font:800 13px/1 -apple-system,sans-serif; letter-spacing:.35em; color:var(--desert-pressed); opacity:.85;
}.chub-ncard .nbody{ padding:16px; }.chub-ncard .nk{ font-family:-apple-system,sans-serif; font-size:10px; font-weight:800;
  letter-spacing:.2em; color:var(--red); text-transform:uppercase; margin:0 0 8px; }.chub-ncard h3{ font-size:18px; line-height:1.3; margin:0 0 8px; }.chub-ncard .nm{ font-family:-apple-system,sans-serif; font-size:12px; color:var(--mut); margin:0; }/* clips rail */
.chub-cliprail{ display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }.chub-clip{ border-radius:12px; overflow:hidden; background:var(--desert-card); color:var(--desert-card);
  cursor:pointer; position:relative; border:0; padding:0; text-align:left; width:100%; }.chub-clip .cimg{ height:120px; background-size:cover; background-position:center; position:relative; }.chub-clip .cimg::after{ content:"\25B6"; position:absolute; inset:0; display:flex;
  align-items:center; justify-content:center; font-size:26px; color:var(--desert-card);
  text-shadow:0 2px 10px rgba(var(--desert-shadow-rgb), .6); }.chub-clip .ct{ font-family:-apple-system,sans-serif; font-size:12.5px; font-weight:600;
  padding:10px 12px 12px; line-height:1.35; margin:0; }/* sidebar */
.chub-sidecard{ background:var(--sur); border:1px solid var(--desert-rule); border-radius:14px;
  padding:20px; margin-bottom:22px; box-shadow:0 1px 4px rgba(var(--desert-ink-rgb), .06); }.chub-sidecard h3{ font-size:20px; margin:0 0 4px; }.chub-sidecard .sub{ font-family:-apple-system,sans-serif; font-size:12px; color:var(--mut); margin:0 0 14px; }.chub-statrow{ display:flex; align-items:center; gap:10px; font-family:-apple-system,sans-serif;
  padding:8px 0; border-bottom:1px solid var(--line2); font-size:13px; }.chub-statrow:last-child{ border-bottom:0; }.chub-statrow img{ width:26px; height:26px; object-fit:contain; }.chub-statrow .sn{ flex:1; font-weight:600; }.chub-statrow .sv{ font-weight:800; color:var(--red); }.chub-statrow a{ color:inherit; text-decoration:none; display:flex; align-items:center; gap:10px; width:100%; }.chub-statrow a:hover .sn{ text-decoration:underline; }/* HBCU hoops band */
.chub-hbcu{ background:var(--desert-card); border-radius:18px; padding:34px 34px 30px; color:var(--desert-pressed);
  position:relative; overflow:hidden; }.chub-hbcu::before{ content:""; position:absolute; inset:0;
  background:radial-gradient(700px 300px at 80% 0%, rgba(var(--desert-accent-deep-rgb), .22), transparent 70%);
  pointer-events:none; }.chub-hbcu .chub-sechead{ border-bottom-color:rgba(var(--color-warn-rgb), .4); position:relative; }.chub-hbcu .chub-sechead h2{ color:var(--desert-pressed); }.chub-hbcu .chub-kick{ color:var(--gold); }.chub-hbcucols{ display:grid; grid-template-columns:1fr 1fr; gap:24px; position:relative; }.chub-hbcucols h4{ font-family:-apple-system,sans-serif; font-size:12px; font-weight:800;
  letter-spacing:.2em; text-transform:uppercase; color:var(--gold); margin:0 0 12px; }.chub-hbcucols ul{ list-style:none; margin:0; padding:0; display:grid; gap:2px; }.chub-hbcucols li a{ font-family:-apple-system,sans-serif; font-size:14px; color:var(--desert-pressed);
  text-decoration:none; padding:7px 10px; border-radius:8px; display:block; }.chub-hbcucols li a:hover{ background:rgba(var(--color-warn-rgb), .12); }.chub-hbcunews{ display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-top:22px; position:relative; }.chub-hbcunews a{ display:flex; gap:12px; background:var(--desert-ink); border:1px solid var(--desert-ink);
  border-radius:12px; overflow:hidden; text-decoration:none; color:var(--desert-pressed); }.chub-hbcunews img{ width:110px; height:86px; object-fit:cover; flex-shrink:0; }.chub-hbcunews .t{ padding:10px 12px 10px 0; font-family:-apple-system,sans-serif; }.chub-hbcunews .t b{ display:block; font-size:13.5px; line-height:1.35; margin-bottom:4px; }.chub-hbcunews .t span{ font-size:11.5px; color:var(--desert-ink-dim); }/* team quick-view modal */
.chub-modal[hidden]{ display:none; }.chub-modal{ position:fixed; inset:0; z-index:200; display:flex; align-items:center; justify-content:center; padding:20px; }.chub-modal__scrim{ position:absolute; inset:0; background:rgba(var(--desert-bg-rgb), .7); }.chub-modal__card{ position:relative; background:var(--sur); color:var(--tx);
  border:1px solid var(--desert-rule); border-radius:16px; max-width:420px; width:100%;
  max-height:calc(100vh - 40px); overflow-y:auto; -webkit-overflow-scrolling:touch;
  padding:26px; box-shadow:0 30px 80px rgba(var(--desert-shadow-rgb), .4); }.chub-modal__card .seal{ width:72px; height:72px; border-radius:50%; background:var(--desert-card);
  display:flex; align-items:center; justify-content:center; margin-bottom:14px;
  box-shadow:0 0 0 4px rgba(var(--color-warn-rgb), .25); }.chub-modal__card .seal img{ width:54px; height:54px; object-fit:contain; }.chub-modal__card h3{ font-size:24px; margin:0 0 4px; }.chub-modal__card .mconf{ font-family:-apple-system,sans-serif; font-size:12px; color:var(--mut);
  text-transform:uppercase; letter-spacing:.1em; margin:0 0 14px; }.chub-modal__rows{ font-family:-apple-system,sans-serif; font-size:14px; margin:0 0 18px; }.chub-modal__rows div{ display:flex; justify-content:space-between; padding:7px 0;
  border-bottom:1px solid var(--line2); }.chub-modal__rows div:last-child{ border-bottom:0; }.chub-modal__rows b{ font-weight:800; }.chub-modal__actions{ display:flex; gap:10px; }.chub-modal__actions a, .chub-modal__actions button{ font-family:-apple-system,sans-serif;
  font-size:14px; font-weight:700; padding:11px 16px; border-radius:10px; cursor:pointer;
  text-decoration:none; border:1px solid var(--desert-rule); background:var(--sur); color:var(--tx); }.chub-modal__actions .primary{ background:var(--red); border-color:var(--red); color:var(--desert-card); }.chub-modal__close{ position:absolute; top:6px; right:6px; border:0; background:none;
  font-size:22px; cursor:pointer; color:var(--mut); width:44px; height:44px;
  display:flex; align-items:center; justify-content:center; }/* video modal reuse */
.chub-vmodal[hidden]{ display:none; }.chub-vmodal{ position:fixed; inset:0; z-index:200; display:flex; align-items:center; justify-content:center; padding:20px; }.chub-vmodal__scrim{ position:absolute; inset:0; background:rgba(var(--desert-bg-rgb), .8); }.chub-vmodal__card{ position:relative; background:var(--desert-card); border-radius:16px; max-width:760px;
  width:100%; max-height:calc(100vh - 40px); overflow-y:auto; -webkit-overflow-scrolling:touch;
  padding:14px; }.chub-vmodal__card iframe{ width:100%; aspect-ratio:16/9; border:0; border-radius:10px; display:block; }.chub-vmodal__card h3{ color:var(--desert-pressed); font-family:-apple-system,sans-serif; font-size:15px; margin:10px 4px 2px; }.chub-vmodal__card p{ color:var(--desert-ink-dim); font-family:-apple-system,sans-serif; font-size:12px; margin:0 4px 4px; }.chub-vmodal__close{ position:absolute; top:2px; right:4px; border:0; background:none;
  font-size:26px; cursor:pointer; color:var(--desert-card); z-index:2;
  width:44px; height:44px; display:flex; align-items:center; justify-content:center; }/* phone */
@media (max-width:760px){
  .chub-heroin { padding:24px 20px; }
  .chub-heroin h1 { font-size:42px; }
  .chub-lede { font-size:15px; }
  .chub-hero { min-height:260px; }
  .chub-tabs { padding:0 12px; overflow-x:auto; }
  .chub-tabs button { font-size:13.5px; padding:14px 12px 12px; white-space:nowrap; }
  .chub-body { padding:20px 16px 50px; }
  .chub-cols { grid-template-columns:1fr; }
  .chub-scores { grid-template-columns:1fr; }
  .chub-teamgrid { grid-template-columns:repeat(2,1fr); }
  .chub-newsgrid { grid-template-columns:1fr; }
  .chub-cliprail { grid-template-columns:repeat(2,1fr); }
  .chub-signing { padding:24px 16px; border-radius:14px; }
  .chub-hbcu { padding:24px 16px; border-radius:14px; }
  .chub-dircontrols { flex-direction:column; }
  .chub-dircontrols select, .chub-dircontrols input { width:100%; }
  .chub-sechead h2 { font-size:24px; }
  .chub-hbcucols { grid-template-columns:1fr; }
  .chub-hbcunews { grid-template-columns:1fr; }
  /* iOS zooms any text field under 16px on focus — keep the form controls legible instead */
  .chub-dircontrols select, .chub-dircontrols input,
  .chub-standcontrols select { font-size:16px; }
  /* HBCU team list: full 44px tap rows on touch */
  .chub-hbcucols li a { padding:12px 10px; }
}@media (prefers-reduced-motion: reduce){.chub-tcard, .chub-ncard{ transition:none; }
}/* ---------- laptop/desktop: a designed column, not edge-to-edge (2026-10-03) ----------
   James: the hub looked "spread out to fit the screen." On laptop widths the
   content now sits in a deliberate 1240px column with balanced gutters. The
   sticky tab bar keeps its full-bleed background, but its buttons align to the
   same column via fluid padding. Phone rules above are untouched. */
@media (min-width:761px){
  .chub-heroin { max-width:1240px; margin:0 auto; padding:40px 32px; }
  .chub-tabs {
    padding-left:max(32px, calc((100vw - 1240px)/2 + 32px));
    padding-right:max(32px, calc((100vw - 1240px)/2 + 32px));
  }
  .chub-body { max-width:1240px; margin:0 auto; padding:30px 32px 60px; }
}
