/* motion finalC1016 (#75): durations / easings run on the --gw-dur-* / --gw-ease-* tokens defined in gw-base.css */
/* gw-ticker.css: the news ticker, a detached floating bar under the top nav (ticker1007,
   moved below the nav + doubled in tickerpos1007). Markup: the empty #gw-tk slot in
   scripts/chrome/nav.html; content: js/gw-ticker.js from /.netlify/functions/get-news.
   The slot is position:fixed, so its place in the DOM (just before the nav) does not matter.
   Nothing here applies until the script has items and sets html.gw-tk-on, so a failed feed
   leaves every page exactly as it was. html.gw-tk-on pads the page by gap + bar + breathing
   room so nothing is covered; once the page is scrolled (html.gw-tk-away) the bar slides up
   under the nav and fades, so sticky elements below the fold keep their existing offsets. */
:root{--gw-tk-h:60px;--gw-tk-gap:48px;--gw-tk-after:16px}
@media (max-width:640px){:root{--gw-tk-h:52px;--gw-tk-gap:24px;--gw-tk-after:12px}}
html.gw-tk-on{padding-top:calc(var(--gw-tk-gap) + var(--gw-tk-h) + var(--gw-tk-after))}
.gw-tk[hidden]{display:none!important}
.gw-tk{position:fixed;top:calc(var(--gw-nav-h,64px) + var(--gw-tk-gap));left:var(--gw-gutter,24px);right:var(--gw-gutter,24px);
  z-index:50;height:var(--gw-tk-h);max-width:calc(var(--gw-max,1200px) - 2 * var(--gw-gutter,24px));margin:0 auto;padding:0;overflow:hidden;
  background:var(--gw-surface,#150b0b);border:1px solid var(--gw-line,#2c1b1b);border-radius:var(--gw-r-lg,18px);
  box-shadow:0 14px 36px rgba(0,0,0,.45),inset 0 1px 0 rgba(255,255,255,.03);
  font-family:var(--gw-font,'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif);
  font-size:16px;line-height:1.3;color:var(--gw-text,#f6f2ef);-webkit-font-smoothing:antialiased;text-align:left;
  transition:transform var(--gw-dur-slow,250ms) var(--gw-ease-standard,cubic-bezier(.2,0,0,1)),opacity var(--gw-dur,200ms) var(--gw-ease-standard,cubic-bezier(.2,0,0,1)),visibility var(--gw-dur-slow,250ms)}
.gw-tk *,.gw-tk *::before,.gw-tk *::after{box-sizing:border-box}
html.gw-tk-away .gw-tk{transform:translateY(calc(-1 * (var(--gw-tk-gap) + var(--gw-tk-h))));opacity:0;visibility:hidden;pointer-events:none}
.gw-tk-in{display:flex;align-items:stretch;height:100%;max-width:none}
.gw-tk-label{flex:0 0 auto;display:inline-flex;align-items:center;gap:10px;padding:0 20px 0 22px;font-size:12px;font-weight:800;line-height:1.15;
  letter-spacing:.16em;text-transform:uppercase;white-space:nowrap;color:var(--gw-gold,#fbbf24);
  background:var(--gw-surface-2,#1c1010);border-right:1px solid var(--gw-line-strong,#422b2b);position:relative;z-index:1}
.gw-tk-label::before{content:"";flex:0 0 auto;width:8px;height:8px;border-radius:50%;background:var(--gw-wine-bright,#9b2c43);box-shadow:0 0 0 3px rgba(155,44,67,.28)}
.gw-tk-vp{position:relative;flex:1 1 auto;min-width:0;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-webkit-overflow-scrolling:touch;
  overscroll-behavior-x:contain;outline:none;padding-left:18px;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 24px,#000 calc(100% - 36px),transparent 100%);
          mask-image:linear-gradient(90deg,transparent 0,#000 24px,#000 calc(100% - 36px),transparent 100%)}
.gw-tk-vp::-webkit-scrollbar{display:none}
.gw-tk-vp:focus-visible{box-shadow:inset 0 0 0 2px var(--gw-gold-deep,#d4a017)}
.gw-tk-track{display:flex;width:max-content;height:100%;margin:0;padding:0;list-style:none;will-change:transform;
  animation:gw-tk-scroll var(--gw-tk-dur,120s) linear infinite}
.gw-tk-vp:hover .gw-tk-track,.gw-tk-vp:focus-within .gw-tk-track,.gw-tk.is-paused .gw-tk-track{animation-play-state:paused}
.gw-tk.is-manual .gw-tk-track{animation:none;transform:none}
@keyframes gw-tk-scroll{from{transform:translate3d(0,0,0)}to{transform:translate3d(-50%,0,0)}}
.gw-tk-li{flex:0 0 auto;display:flex;align-items:center;margin:0;padding:0}
.gw-tk-li::after{content:"";width:5px;height:5px;margin:0 24px;border-radius:50%;background:var(--gw-line-strong,#422b2b)}
.gw-tk-a{display:inline-flex;align-items:center;gap:10px;height:var(--gw-tk-h);color:var(--gw-text,#f6f2ef);text-decoration:none;white-space:nowrap}
.gw-tk-a:hover .gw-tk-txt,.gw-tk-a:focus-visible .gw-tk-txt{color:#fff;text-decoration:underline;text-decoration-color:rgba(251,191,36,.55);text-underline-offset:4px}
.gw-tk-a:focus-visible{outline:2px solid var(--gw-gold-deep,#d4a017);outline-offset:-4px;border-radius:8px}
.gw-tk-chip,.gw-tk-brk{display:inline-block;padding:0 9px;font-size:11.5px;font-weight:800;line-height:23px;text-transform:uppercase;border-radius:6px}
.gw-tk-chip{letter-spacing:.07em;color:var(--gw-gold-soft,#fcd34d);border:1px solid rgba(212,160,23,.38);background:rgba(212,160,23,.08)}
.gw-tk-brk{letter-spacing:.09em;color:#fff;background:var(--gw-wine-bright,#9b2c43);border:1px solid var(--gw-wine-bright,#9b2c43)}
.gw-tk-txt{font-weight:500;color:inherit}
/* gradient1007: decorative sport emoji between the chip and the headline (aria-hidden in the JS) */
.gw-tk-emo{flex:0 0 auto;display:inline-block;margin-right:-2px;font-size:17px;line-height:1;
  font-family:'Apple Color Emoji','Segoe UI Emoji','Noto Color Emoji',sans-serif;text-decoration:none;user-select:none}
.gw-tk-src{font-size:13px;color:var(--gw-faint,#6f6464)}
@media (max-width:640px){
  .gw-tk{font-size:14.5px;border-radius:14px}
  .gw-tk-label{gap:0;width:min-content;padding:0 12px 0 14px;font-size:10px;letter-spacing:.14em;white-space:normal}
  .gw-tk-label::before{display:none}
  .gw-tk-vp{padding-left:12px}
  .gw-tk-a{gap:8px}
  .gw-tk-chip,.gw-tk-brk{padding:0 7px;font-size:10.5px;line-height:20px;border-radius:5px}
  .gw-tk-emo{font-size:15px}
  .gw-tk-li::after{width:4px;height:4px;margin:0 18px}
  .gw-tk-src{display:none}
}
@media (prefers-reduced-motion:reduce){
  .gw-tk{transition:none}
  .gw-tk-track{animation:none!important;transform:none!important}
}
@media print{.gw-tk{display:none!important}html.gw-tk-on{padding-top:0}}
/* mobile3_1008 (Shane 10/8): on phones the ticker is part of the page top and scrolls away with it — never floats over content */
@media (max-width:640px){
  .gw-tk{position:absolute;transition:none}
  html.gw-tk-away .gw-tk{transform:none;opacity:1;visibility:visible;pointer-events:auto}
}
/* tickpin1008 (Shane 10/8, supersedes mobile3_1008): the ticker is a slim strip attached flush under the nav.
   Desktop: it stays put (sticky content below offsets by the strip). Phones: it tucks under the nav while you scroll
   down and slides back the moment you scroll up (JS toggles html.gw-tk-away only on phones). */
:root{--gw-tk-h:42px;--gw-tk-gap:0px;--gw-tk-after:14px}
@media (max-width:640px){:root{--gw-tk-h:40px;--gw-tk-gap:0px;--gw-tk-after:10px}}
.gw-tk{position:fixed;top:var(--gw-nav-h,64px);left:0;right:0;max-width:none;margin:0;border-radius:0;border-width:0 0 1px;
  box-shadow:0 6px 18px rgba(0,0,0,.35);transition:transform var(--gw-dur,200ms) var(--gw-ease-standard,cubic-bezier(.2,0,0,1))}
.gw-tk-a{height:var(--gw-tk-h)}
html.gw-tk-away .gw-tk{transform:translateY(calc(-1 * var(--gw-tk-h) - 2px));opacity:1;visibility:visible;pointer-events:none}
@media (min-width:1024px){
  html.gw-tk-away .gw-tk{transform:none;pointer-events:auto}          /* desktop never hides */
  html.gw-tk-on body>*:not(#gw-nav):not(#gw-tk){--gw-nav-h:calc(64px + var(--gw-tk-h))}   /* sticky bits clear the strip */
}
@media (max-width:640px){.gw-tk{position:fixed;transition:transform var(--gw-dur,200ms) var(--gw-ease-standard,cubic-bezier(.2,0,0,1))}}
@media (prefers-reduced-motion:reduce){.gw-tk{transition:none}}
/* w3int1014 hotfix: on phones / tablets the strip slides back in on scroll-up and covered the sticky team header and
   sticky table rows. While the strip shows, sticky bits clear it (desktop already does this, tickpin1008). */
@media (max-width:1023px){
  html.gw-tk-on:not(.gw-tk-away) body>*:not(#gw-nav):not(#gw-tk){--gw-nav-h:calc(64px + var(--gw-tk-h))}
}
