/* Refinement layer for the Sports cluster (sports-tape).
   Scope per handoff v2.1: behavior and additions only — the approved
   scoreboard center and the category list are untouched. (The v2.1
   masthead/ribbon freeze ended with the 2026-09-14 header canon below.)
   This layer carries the sticky accent band with its compact
   wordmark (the square monogram already lives inside the band), the vertical
   Cover Story rail, Coming soon pages, the article crumb / ink rule / share
   row, and the branded utility, author, and contact headers. The palette is
   mirrored at the .layout- level so pages without the sports body class
   (author, 404) keep the sector colors. */
.layout-sports-tape { --sector-ink: #101010; --sector-ink-soft: #292929; --sector-paper: #FFFFFF; --sector-warm: #F1F1EF; --sector-line: #D6D6D1; --sector-muted: #686865; --sector-accent: var(--vuga-color-accent, #B3132A); --sector-head: 'Saira', Arial, sans-serif; --sector-body: 'PT Serif', Georgia, serif; --sector-ui: 'Saira', Arial, sans-serif; color: var(--sector-ink); }

/* Sticky band (mandatory): the approved accent category band stays pinned at
   the top of the screen. The square monogram is part of the band and stays on
   view; once the masthead scrolls away a compact wordmark fades in beside it.
   Colors, fonts, and composition are unchanged. */
.layout-sports-tape .sector-nav[data-sports-nav] { position: sticky; top: 0; z-index: 40; background: var(--sector-accent); }
.layout-sports-tape .sports-nav-wordmark { display: none; align-items: center; margin-left: .8rem; padding-left: .9rem; border-left: 1px solid rgba(255, 255, 255, .45); font: 800 .68rem/1 var(--sector-head); letter-spacing: .16em; text-transform: uppercase; color: #fff; white-space: nowrap; }
.layout-sports-tape .sports-nav-wordmark:hover { text-decoration: underline; text-underline-offset: .3rem; }
.st-scrolled .layout-sports-tape .sports-nav-wordmark { display: inline-flex; }

/* Cover Story rail (the only homepage addition): vertical magazine block on
   the right of the Latest section — portrait 3:4 cover, up to two text rows,
   and a link to the rubric; Coming soon while the desk is empty. The rail
   mounts only when the Cover Story rubric exists, so the approved scoreboard
   and Latest grid keep their composition untouched. Vertical Cover Story art
   never enters the horizontal slots of the front page or the categories. */
.layout-sports-tape .sports-front-cols { display: grid; grid-template-columns: minmax(0, 1fr) 19rem; gap: 0 2.6rem; align-items: start; max-width: 1180px; margin: 0 auto; }
.layout-sports-tape .sports-front-cols .sports-latest-wrap { margin: 0; padding: 0 1.25rem; }
.layout-sports-tape .sports-cover { margin: 0 0 0 auto; padding: 1.4rem 1.25rem 0; }
.layout-sports-tape .sports-cover-inner { border-top: 6px solid var(--sector-ink); background: var(--sector-warm); padding: 1.1rem 1.1rem 1.3rem; }
.layout-sports-tape .sports-cover h2 { font: 800 .78rem/1.2 var(--sector-head); letter-spacing: .22em; text-transform: uppercase; color: var(--sector-accent); margin: 0; }
.layout-sports-tape .sports-cover-feature { display: block; margin-top: .95rem; }
.layout-sports-tape .sports-cover-feature .sector-media { aspect-ratio: 3 / 4; }
.layout-sports-tape .sports-cover-feature h3 { font: 700 1.25rem/1.18 var(--sector-body); margin: .6rem 0 .3rem; }
.layout-sports-tape .sports-cover-feature small { display: block; color: var(--sector-muted); font: 600 .64rem var(--sector-head); letter-spacing: .12em; text-transform: uppercase; }
.layout-sports-tape .sports-cover-more { display: block; padding: .8rem 0; border-top: 1px solid var(--sector-line); }
.layout-sports-tape .sports-cover-more h4 { font: 700 1.02rem/1.25 var(--sector-body); margin: .2rem 0 0; }
.layout-sports-tape .sports-cover-more:hover h4 { color: var(--sector-accent); }
.layout-sports-tape .sports-cover-all { display: inline-block; margin-top: .85rem; font: 800 .64rem var(--sector-head); letter-spacing: .18em; text-transform: uppercase; color: var(--sector-accent); }
.layout-sports-tape .sports-cover-soon { margin: .8rem 0 0; color: var(--sector-muted); line-height: 1.55; }

/* The Cover Story rubric page reads as a portrait magazine spread: vertical
   art stays vertical and never borrows the landscape list slots. */
.layout-sports-tape .sports-list--cover .sector-row .sector-media { aspect-ratio: 3 / 4; max-width: 22rem; }
.layout-sports-tape .sports-list--cover .sector-row:first-child { border-left: 6px solid var(--sector-accent); padding-left: 1rem; }

/* Approved-but-empty sections publish a Coming soon page in the standard
   category layout until their first articles land. */
.layout-sports-tape .sports-coming-soon { padding: 3.2rem 1.5rem; border: 1px dashed var(--sector-line); background: var(--sector-warm); text-align: center; }
.layout-sports-tape .sports-coming-soon b { display: block; font: 800 .68rem var(--sector-head); letter-spacing: .26em; text-transform: uppercase; color: var(--sector-accent); }
.layout-sports-tape .sports-coming-soon p { margin: .7rem 0 0; color: var(--sector-muted); }

/* Article page: mono uppercase crumb above the kicker with HOME in the
   accent, ink rule under the byline, and a share row with the canonical clean
   URL. The approved story layout and The Tape are untouched. */
.layout-sports-tape .st-crumb { font: 700 .62rem var(--sector-head); letter-spacing: .24em; text-transform: uppercase; color: var(--sector-muted); }
.layout-sports-tape .st-crumb a { color: var(--sector-accent); }
.layout-sports-tape .sector-article-meta { padding-bottom: 1rem; border-bottom: 3px solid var(--sector-ink); }
.layout-sports-tape .st-share { display: flex; flex-wrap: wrap; align-items: center; gap: .55rem; margin-top: 1.15rem; }
.layout-sports-tape .st-share > span { font: 800 .62rem var(--sector-head); letter-spacing: .22em; text-transform: uppercase; color: var(--sector-muted); margin-right: .2rem; }
.layout-sports-tape .st-share a { border: 2px solid var(--sector-ink); padding: .5rem .8rem; font: 800 .62rem var(--sector-head); letter-spacing: .14em; text-transform: uppercase; color: var(--sector-ink); background: #fff; }
.layout-sports-tape .st-share a:hover { background: var(--sector-accent); border-color: var(--sector-accent); color: #fff; }

/* Author signature under the article: sports-r4 replaces the boxed card with
   the compact left-aligned canon — the avatar carries the one profile link,
   plain name over a 2-3 word Covers line, nothing accent-colored. */
.layout-sports-tape .sector-author { display: flex; align-items: flex-start; gap: .8rem; background: transparent; padding: 0; margin: 2.4rem 0 0; border: 0; }
.layout-sports-tape .sector-author .sector-author-avatar { width: 44px; height: 44px; }
.layout-sports-tape .sector-author-avatar-link { flex: 0 0 auto; }
.layout-sports-tape .sector-author h2 { margin: .1rem 0 0; font: 700 .95rem/1.2 var(--sector-head); }
.layout-sports-tape .sector-author .sector-author-spec { margin: .3rem 0 0; font: 600 .78rem/1.3 var(--sector-head); color: var(--sector-muted); }

/* Author page in the sector voice: Saira AUTHOR label in the accent, large
   name over an ink rule, portrait tile, serif bio, card grid. */
.layout-sports-tape .sector-wrap { max-width: 76rem; margin: 0 auto; padding: 1.6rem clamp(1rem, 3vw, 2rem) 3.4rem; }
.layout-sports-tape .sector-author-page { display: grid; grid-template-columns: 7.5rem minmax(0, 1fr); gap: 1.6rem; align-items: start; padding-bottom: 1.4rem; border-bottom: 6px solid var(--sector-ink); }
.layout-sports-tape .sector-author-page-photo { width: 7.5rem; height: 7.5rem; object-fit: cover; background: var(--sector-warm); }
.layout-sports-tape .sector-author-page .sector-kicker { font: 800 .7rem var(--sector-head); letter-spacing: .26em; text-transform: uppercase; color: var(--sector-accent); }
.layout-sports-tape .sector-author-page h1 { font: 900 clamp(1.9rem, 4.2vw, 3rem)/1 var(--sector-head); text-transform: uppercase; margin: .45rem 0 .7rem; }
.layout-sports-tape .sector-author-bio { max-width: 44rem; line-height: 1.6; }
.layout-sports-tape .sector-author-title, .layout-sports-tape .sector-author-credentials { margin: .45rem 0 0; font: 600 .8rem var(--sector-head); color: var(--sector-muted); }
.layout-sports-tape .sector-card .sector-media { aspect-ratio: 4 / 3; }
.layout-sports-tape .sector-card h3 { font: 700 1.12rem/1.22 var(--sector-body); margin: .45rem 0 .3rem; }

/* Utility pages wear the sector's editorial header: mono crumb, large Saira
   heading, ink rule; the about body reads as serif text. */
.layout-sports-tape .sector-utility-wrap { max-width: 76rem; margin: 0 auto; padding: clamp(1.6rem, 4vw, 3rem) clamp(1rem, 3vw, 2rem) 3.4rem; }
.layout-sports-tape .sector-utility .sector-crumb { font: 700 .7rem var(--sector-head); letter-spacing: .22em; text-transform: uppercase; color: var(--sector-muted); }
.layout-sports-tape .sector-utility .sector-crumb a { color: var(--sector-accent); }
.layout-sports-tape .sector-utility > h1 { font: 900 clamp(2rem, 4.6vw, 3.2rem)/1 var(--sector-head); text-transform: uppercase; margin: .55rem 0 0; padding-bottom: 1.1rem; border-bottom: 6px solid var(--sector-ink); }
.layout-sports-tape .sector-utility .sector-utility-intro { font-size: 1.12rem; line-height: 1.6; color: #4a4b50; max-width: 44rem; }
.layout-sports-tape .sector-utility--about .sector-about-body { max-width: 52rem; font-size: 1.08rem; line-height: 1.7; }
.layout-sports-tape .sector-utility--about .sector-about-body p { margin: 0 0 1.4rem; }
.layout-sports-tape .sector-utility--about .about-team, .layout-sports-tape .sector-utility--about .about-network { margin-top: 3rem; padding-top: 1.5rem; border-top: 1px solid var(--sector-line); }
.layout-sports-tape .sector-utility--about .about-team h2, .layout-sports-tape .sector-utility--about .about-network h2 { font-family: var(--sector-head); text-transform: uppercase; }
.layout-sports-tape .sector-utility--about .team-member img { border-radius: 50%; background: var(--sector-warm); }
.layout-sports-tape .sector-utility--about .team-member .name { font-weight: 700; margin-top: .5rem; }
.layout-sports-tape .sector-utility--about .team-member .title, .layout-sports-tape .sector-utility--about .team-member .line { font-size: .85rem; color: var(--sector-muted); }

/* Contact page wears the same header; its form speaks the sector language. */
.layout-sports-tape .sector-utility #contact-page-title { font: 900 clamp(2rem, 4.6vw, 3.2rem)/1 var(--sector-head); text-transform: uppercase; margin: .55rem 0 0; padding-bottom: 1.1rem; border-bottom: 6px solid var(--sector-ink); }
.layout-sports-tape .vuga-contact-form label { font: 700 .72rem var(--sector-head); letter-spacing: .14em; text-transform: uppercase; color: var(--sector-muted); }
.layout-sports-tape .vuga-contact-form input, .layout-sports-tape .vuga-contact-form textarea { width: 100%; border: 2px solid var(--sector-line); padding: .7rem .85rem; font: 400 .95rem var(--sector-body), serif; background: #fff; }
.layout-sports-tape .vuga-contact-form input:focus, .layout-sports-tape .vuga-contact-form textarea:focus { outline: none; border-color: var(--sector-accent); box-shadow: 0 0 0 2px color-mix(in srgb, var(--sector-accent) 18%, transparent); }
.layout-sports-tape .vuga-contact-form button[type="submit"] { border: 0; padding: .8rem 1.4rem; background: var(--sector-ink); color: #fff; font: 800 .78rem var(--sector-head); letter-spacing: .18em; text-transform: uppercase; cursor: pointer; }
.layout-sports-tape .vuga-contact-form button[type="submit"]:hover { background: var(--sector-accent); }

@media (max-width: 62rem) {
  .layout-sports-tape .sports-front-cols { grid-template-columns: 1fr; }
  .layout-sports-tape .sports-cover { max-width: 26rem; margin: 0 auto; }
}

@media (max-width: 48rem) {
  .layout-sports-tape .sector-author-page { grid-template-columns: 1fr; }
  .layout-sports-tape .sector-author-page-photo { width: 5.5rem; height: 5.5rem; }
  .layout-sports-tape .sports-nav-wordmark { display: none !important; }
}

/* ---- 2026-09-05 canon width gate (network-wide fix): lift the base
   sector-publication.css 760px squeeze so utility pages fill the shared
   1180px nav/footer container. Same fix as arts/bp/edu/ent. */
.layout-sports-tape .sector-utility-wrap { width: min(1180px, 100%); margin: 0 auto; }
.layout-sports-tape .sector-utility { width: 100%; max-width: none; margin: 0; }
.layout-sports-tape .sector-utility--about > .sector-about-body,
.layout-sports-tape .sector-utility--about > .about-team,
.layout-sports-tape .sector-utility--about > .about-network { width: 100%; margin-inline: 0; }

/* ---- 2026-09-06 wave 3: no breadcrumb on author/about/data (removed in
   markup); author name, bio, about body and data title read smaller. */
.layout-sports-tape .sector-author-page-content h1 { font-size: clamp(1.5rem, 3vw, 2rem) !important; }
.layout-sports-tape .sector-author-bio { font-size: .92rem !important; }
.layout-sports-tape .sector-about-body { font-size: .95rem !important; }
.layout-sports-tape .sector-about-body h1, .layout-sports-tape .sector-utility > h1 { font-size: clamp(1.6rem, 4vw, 2.2rem) !important; }
.layout-sports-tape .data-main h1 { font-size: clamp(1.6rem, 4vw, 2.2rem) !important; }

/* ---- 2026-09-06 wave 5: homepage and category containers follow the network standard width (1180px, centered like the nav). */
.layout-sports-tape main { max-width: 1180px; margin-left: auto; margin-right: auto; }

/* ---- 2026-09-11 sports-6 mobile body: the tape stays full-bleed in the
   header, but article content keeps air to the screen edges. */
@media (max-width: 900px) { .layout-sports-tape main { padding-left: 1.1rem; padding-right: 1.1rem; } }

/* ---- 2026-09-11 sports-7 mobile sticky canon: the masthead bar (burger,
   centered wordmark, lens) sticks on phones; the tape strip scrolls in flow. */
@media (max-width: 900px) {
  .layout-sports-tape .sector-masthead { position: sticky; top: 0; z-index: 40; }
  .layout-sports-tape .sector-nav { position: static; }
}

/* ---- 2026-09-14 sports-8 header canon (user directive): the date strip and
   the Scores · Stories · Stakes ribbon are gone from the markup. On desktop
   the lens lives at the right end of the tape band, flush with the band's
   inner edge so its distance from the container edge mirrors the monogram
   on the left; the masthead keeps only burger + wordmark. Phones keep the
   canon bar — burger left, centered wordmark, lens right at the same inset —
   and the horizontal category strip is dropped (the drawer owns mobile
   navigation). */
.layout-sports-tape .sector-actions { display: none; }
.layout-sports-tape .sector-nav .sector-search-toggle { display: inline-flex; align-items: center; margin-left: auto; padding: .5rem 0 .5rem .5rem; color: #fff; }
.layout-sports-tape .sector-nav .sector-search-toggle svg { display: block; }

@media (max-width: 900px) {
  .layout-sports-tape .sector-actions { display: flex; }
  .layout-sports-tape .sector-actions .sector-search-toggle { padding: .5rem 0 .5rem .5rem; }
  .layout-sports-tape .sector-nav { display: none; }
  .layout-sports-tape .sector-masthead { grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); min-height: 0; padding: .8rem 1.1rem; }
  .layout-sports-tape .sector-brand span { display: none; }
  .layout-sports-tape .sector-brand strong { font-size: clamp(1.2rem, 6vw, 1.8rem); }
}

/* ---- 2026-09-14 sports-9 category canon (user directive): the current
   category reads as a white chip in the tape band (and in the phone drawer),
   the page header is the menu name on its own line — never the editorial
   category_h1 — with a one-sentence thesis, and the list paginates six per
   page. Gaps are explicit: header rule, list rhythm, pagination air. */
.layout-sports-tape .sector-nav [aria-current=page] { background: #fff; color: var(--sector-accent); padding: .45rem .7rem; text-decoration: none; }
.layout-sports-tape #mobile-menu a[aria-current=page] { box-shadow: inset 4px 0 0 var(--sector-accent); color: var(--sector-ink); font-weight: 700; }
.layout-sports-tape .sports-cat-head { margin: 3rem 0 0; padding-bottom: 1.2rem; border-bottom: 6px solid var(--sector-accent); }
.layout-sports-tape .sports-cat-name { margin: 0; font: 900 clamp(1.9rem, 3.2vw, 2.6rem)/1 var(--sector-head); text-transform: uppercase; letter-spacing: -.01em; }
.layout-sports-tape .sports-cat-thesis { margin: .85rem 0 0; max-width: 52rem; color: #c9c9c4; font-size: 1.02rem; line-height: 1.55; }
.layout-sports-tape .sports-list { display: grid; gap: 2rem; margin-top: 2.4rem; }
.layout-sports-tape .sector-pagination { margin-top: 2.6rem; }
@media (max-width: 900px) {
  .layout-sports-tape .sports-cat-head { margin-top: 2.2rem; }
  .layout-sports-tape .sports-list { margin-top: 2rem; gap: 1.7rem; }
}

/* ---- 2026-09-14 sports-11 header refinement (user directive): the desktop
   masthead is a centered wordmark only — the tape band owns navigation there,
   so the burger is gone. Phones keep the drawer, and both the main and the
   sticky bar wear the brand accent with a white burger, wordmark, and lens
   so the controls read on the color. */
.layout-sports-tape .sector-menu { visibility: hidden; }
@media (max-width: 900px) {
  .layout-sports-tape .sector-menu { display: inline-block; visibility: visible; }
  .layout-sports-tape .sector-masthead { background: var(--sector-accent); }
  .layout-sports-tape .sector-masthead .sector-menu,
  .layout-sports-tape .sector-masthead .sector-actions { color: #fff; }
  .layout-sports-tape .sector-masthead .sector-brand strong { color: #fff; }
}

/* ---- 2026-09-14 sports-13 article canon (user directive): no crumb — the
   rubric opens the page on its own accent line; the headline drops the giant
   condensed caps for a smaller mixed-case read; captions run smaller in
   italic; FAQ and Sources close the story ahead of the compact signature;
   More Like This rides the full template width under the article column. */
.layout-sports-tape .st-art-cat a { font: 800 .78rem/1 var(--sector-head); letter-spacing: .18em; text-transform: uppercase; color: var(--sector-accent); }
.layout-sports-tape .st-art-cat a:hover { text-decoration: underline; text-underline-offset: .3rem; }
.layout-sports-tape .sector-article .sector-kicker { margin-top: .9rem; }
.layout-sports-tape .sector-article h1 { font: 800 clamp(1.9rem, 3.6vw, 2.9rem)/1.12 var(--sector-head); letter-spacing: -.01em; text-transform: none; margin: .5rem 0 1.1rem; }
.layout-sports-tape .sector-article-hero figcaption,
.layout-sports-tape .article-supporting-image figcaption { font: italic 400 .78rem/1.5 var(--sector-body); color: var(--sector-muted); margin-top: .55rem; }
.layout-sports-tape .sector-related-row { max-width: none; margin: 3rem auto 1rem; padding: 0 1.25rem; }

/* ---- 2026-09-14 sports-15 about canon (user directive): one About heading
   (the duplicate inside the body copy is stripped in the template), and the
   Newsdesk roster reads as four portrait cards per row — circle photo on
   top, name under it, short description below; no roles, and the photo is
   the only link to the author page. Circles keep their 96px size. */
.layout-sports-tape .team-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.layout-sports-tape .team-member { text-align: center; }
.layout-sports-tape .team-member > a { display: block; }
.layout-sports-tape .team-member img { margin: 0 auto; }
.layout-sports-tape .team-member .name { margin-top: .6rem; font: 700 .95rem/1.25 var(--sector-head); }
.layout-sports-tape .team-member .title { display: none; }
.layout-sports-tape .team-member .line { margin-top: .3rem; font: 400 .8rem/1.45 var(--sector-body); color: var(--sector-muted); }
@media (max-width: 700px) {
  .layout-sports-tape .team-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* ---- 2026-09-14 sports-17 front canon (user directive): section one is a
   three-column band — latest on the left, the first rubric twice as wide in
   the middle (one feature over two minis, photo riding to the right of the
   copy), and a rotating two-week ranked tape on the right with the Cover
   Story rail beneath it. Type stays on the publication fonts at readable
   sizes; annotations share one voice; gaps are explicit everywhere. */
.layout-sports-tape .st-front { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr) minmax(0, 1fr); gap: 2.4rem; padding: 3rem 1.25rem 0; }
.layout-sports-tape .st-front-col { min-width: 0; }
.layout-sports-tape .st-front-latest, .layout-sports-tape .st-front-cat1 { display: flex; flex-direction: column; gap: 2rem; }
.layout-sports-tape .st-front-media { display: block; }
.layout-sports-tape .st-front-card .st-front-media { margin: .55rem 0 0; }
.layout-sports-tape .st-front-card h3 { margin: .55rem 0 0; font: 700 1.02rem/1.3 var(--sector-body); }
.layout-sports-tape .st-front-card h3 a, .layout-sports-tape .st-front-feature h3 a, .layout-sports-tape .st-front-mini h4 a, .layout-sports-tape .st-front-rank h4 a { color: inherit; }
.layout-sports-tape .st-front-card h3 a:hover, .layout-sports-tape .st-front-feature h3 a:hover, .layout-sports-tape .st-front-mini h4 a:hover, .layout-sports-tape .st-front-rank h4 a:hover { color: var(--sector-accent); }
.layout-sports-tape .st-front-row { display: flex; gap: 1.2rem; align-items: flex-start; }
.layout-sports-tape .st-front-copy { flex: 1 1 auto; min-width: 0; }
.layout-sports-tape .st-front-feature .st-front-media { margin: .55rem 0 0; }
.layout-sports-tape .st-front-feature h3 { margin: .55rem 0 0; font: 700 1.5rem/1.18 var(--sector-body); }
.layout-sports-tape .st-front-mini .st-front-media { flex: 0 0 96px; width: 96px; }
.layout-sports-tape .st-front-mini h4 { margin: .45rem 0 0; font: 700 1.02rem/1.28 var(--sector-body); }
.layout-sports-tape .st-front-tape { display: flex; flex-direction: column; gap: 1.5rem; }
.layout-sports-tape .st-front-rank { display: flex; gap: .7rem; align-items: flex-start; }
.layout-sports-tape .st-front-num { flex: 0 0 2rem; font: 900 1.3rem/1 var(--sector-head); color: var(--sector-accent); }
.layout-sports-tape .st-front-rank h4 { margin: .25rem 0 0; font: 700 .95rem/1.3 var(--sector-body); }
.layout-sports-tape .st-front-cover { margin: .4rem 0 0; padding: 0; }
.layout-sports-tape .st-latest-section { padding: 3rem 1.25rem 0; }
@media (max-width: 1000px) {
  .layout-sports-tape .st-front { grid-template-columns: 1fr; padding: 2.6rem 0 0; }
  .layout-sports-tape .st-front-latest { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem 1.5rem; }
  .layout-sports-tape .st-latest-section { padding: 2.8rem 0 0; }
}
@media (max-width: 560px) {
  .layout-sports-tape .st-front-latest { grid-template-columns: 1fr; }
  .layout-sports-tape .st-front-row { flex-direction: column; }
  .layout-sports-tape .st-front-row .st-front-media { width: 100% !important; order: -1; }
}

/* ---- 2026-09-14 sports-19 front section two (user directive): a
   horizontal four-card row from the second rubric, same anatomy and gaps as
   the latest column — accent kicker, photo, title, annotation, author over
   the publish date. The rubric name is the only header. */
.layout-sports-tape .st-row-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 2rem 1.5rem; }
.layout-sports-tape .st-row .sector-section-head { margin: 0 0 1.6rem; }
.layout-sports-tape .st-row .sector-section-head h2 { font: 900 1.5rem/1 var(--sector-head); letter-spacing: .02em; text-transform: uppercase; }
.layout-sports-tape .st-row .sector-section-head h2 a { color: inherit; }
.layout-sports-tape .st-row .sector-section-head h2 a:hover { color: var(--sector-accent); }
@media (max-width: 1000px) {
  .layout-sports-tape .st-row-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
  .layout-sports-tape .st-row-grid { grid-template-columns: 1fr; }
}

/* ---- 2026-09-14 sports-21 front section three (user directive): two
   columns, both drawn from the third rubric — one big vertical story on the
   left, four small vertical cards on the right; accent kicker, photo, title
   (annotation on the feature only), then the author over the date. */
.layout-sports-tape .st-duo { padding: 3rem 1.25rem 0; }
.layout-sports-tape .st-duo .sector-section-head { margin: 0 0 1.6rem; }
.layout-sports-tape .st-duo .sector-section-head h2 { font: 900 1.5rem/1 var(--sector-head); text-transform: uppercase; }
.layout-sports-tape .st-duo .sector-section-head h2 a { color: inherit; }
.layout-sports-tape .st-duo .sector-section-head h2 a:hover { color: var(--sector-accent); }
.layout-sports-tape .st-duo-cols { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr); gap: 2.4rem; align-items: start; }
.layout-sports-tape .st-duo-feature .st-front-media { margin: .55rem 0 0; }
.layout-sports-tape .st-duo-feature h3 { margin: .55rem 0 0; font: 700 1.5rem/1.18 var(--sector-body); }
.layout-sports-tape .st-duo-feature h3 a, .layout-sports-tape .st-duo-mini h4 a { color: inherit; }
.layout-sports-tape .st-duo-feature h3 a:hover, .layout-sports-tape .st-duo-mini h4 a:hover { color: var(--sector-accent); }
.layout-sports-tape .st-duo-minis { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem 1.5rem; }
.layout-sports-tape .st-duo-mini .st-front-media { margin: .55rem 0 0; }
.layout-sports-tape .st-duo-mini h4 { margin: .5rem 0 0; font: 700 1.02rem/1.28 var(--sector-body); }
@media (max-width: 1000px) {
  .layout-sports-tape .st-duo { padding: 2.8rem 0 0; }
  .layout-sports-tape .st-duo-cols { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
  .layout-sports-tape .st-duo-minis { grid-template-columns: 1fr; }
}

/* ---- 2026-09-14 sports-16 author canon (user directive): no role under the
   name; article cards read as accent category, title, annotation, then the
   author over the publish date; the Articles-by heading steps down in size;
   six cards per page with Previous/Next. */
.layout-sports-tape .sector-author-articles .sector-section-head h2 { font: 900 1.5rem/1 var(--sector-head); text-transform: uppercase; }
.layout-sports-tape .st-author-card { padding-bottom: 0; border-bottom: 0; }
.layout-sports-tape .st-card-kicker { font: 800 .7rem/1 var(--sector-head); letter-spacing: .16em; text-transform: uppercase; color: var(--sector-accent); }
.layout-sports-tape .st-author-card h3 { margin: .5rem 0 0; font: 700 1.15rem/1.3 var(--sector-body); }
.layout-sports-tape .st-author-card h3 a:hover { color: var(--sector-accent); }
.layout-sports-tape .st-card-excerpt { margin: .5rem 0 0; font: 400 .9rem/1.55 var(--sector-body); color: var(--sector-muted); }
.layout-sports-tape .st-card-meta { margin-top: .7rem; display: flex; flex-direction: column; gap: .15rem; }
.layout-sports-tape .st-card-author { font: 600 .78rem/1.3 var(--sector-head); }
.layout-sports-tape .st-card-date { font: 400 .78rem/1.3 var(--sector-head); color: var(--sector-muted); }
/* ---- 2026-09-15 st-gutters (audit): below the 1180px container the front
   sections ran flush to the viewport edges — side gutters per the canon,
   1.25rem through the tablet band and 1.1rem on phones. */
@media (max-width: 74.94rem) {
  .layout-sports-tape .sports-front { padding-inline: 1.25rem; }
}
@media (max-width: 47.99rem) {
  .layout-sports-tape .sports-front { padding-inline: 1.1rem; }
}

/* owner tweak 2026-09-19: in-article links take the brand color with underline */
.sector-article-body a { color: var(--vuga-color-link, #0E7A47); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 2px; text-decoration-color: color-mix(in srgb, var(--vuga-color-link, #0E7A47) 50%, transparent); }
.sector-article-body a:hover { text-decoration-color: var(--vuga-color-link, #0E7A47); }
