@font-face { font-family: "Roboto"; font-style: normal; font-weight: 400 900; font-display: swap; src: url("/assets/fonts/roboto-greek.woff2") format("woff2"); unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; }
@font-face { font-family: "Roboto"; font-style: normal; font-weight: 400 900; font-display: swap; src: url("/assets/fonts/roboto-latin-ext.woff2") format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Roboto"; font-style: normal; font-weight: 400 900; font-display: swap; src: url("/assets/fonts/roboto-latin.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Roboto"; font-style: italic; font-weight: 800 900; font-display: swap; src: url("/assets/fonts/roboto-italic-greek.woff2") format("woff2"); unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF; }
@font-face { font-family: "Roboto"; font-style: italic; font-weight: 800 900; font-display: swap; src: url("/assets/fonts/roboto-italic-latin-ext.woff2") format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Roboto"; font-style: italic; font-weight: 800 900; font-display: swap; src: url("/assets/fonts/roboto-italic-latin.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
:root {
  --color-bg: #0b0d0e;
  --color-surface: #22262a;
  --color-surface-2: #32383e;
  --color-surface-3: #4c555e;
  --color-text: #abb2ba;
  --color-heading: #cfd4d8;
  --color-bright: #f9fafa;
  --color-link: #f9fafa;
  --color-link-hover: #1cd478;
  --color-accent: #1fad66;
  --color-accent-hover: #1cd478;
  --color-on-accent: #ffffff;
  --color-btn2-bg: #32383e;
  --color-btn2-text: #cfd4d8;
  --color-btn2-hover: #4c555e;
  --color-header-bg: #22262a;
  --color-header-text: #f9fafa;
  --color-nav-link: #cfd4d8;
  --color-footer-bg: rgba(34, 38, 42, 0.5);
  --color-footer-text: #abb2ba;
  --color-footer-link: #f9fafa;
  --color-border: #0b0d0e;
  --color-input-bg: #32383e;
  --color-input-text: #f9fafa;
  --color-placeholder: #abb2ba;
  --color-input-focus: #f9fafa;
  --color-tab-active: #f9fafa;
  --color-tab-indicator: #1fad66;
  --color-tab-inactive: #abb2ba;
  --color-modal-bg: #0b0d0e;
  --color-modal-text: #f9fafa;
  --color-scrim: rgba(23, 26, 28, 0.9);
  --color-line: rgba(249, 250, 250, 0.08);
  --color-line-strong: rgba(249, 250, 250, 0.16);
  --color-accent-glow: rgba(31, 173, 102, 0.28);
  --color-accent-wash: rgba(31, 173, 102, 0.12);

  --font-display: "Roboto", system-ui, -apple-system, "Segoe UI", Arial, sans-serif;
  --font-body: "Roboto", system-ui, -apple-system, "Segoe UI", Arial, sans-serif;
  --fs-xs: 0.8rem;
  --fs-sm: 0.875rem;
  --fs-body: 1rem;
  --fs-md: 1.25rem;
  --fs-lg: 1.563rem;
  --fs-xl: 1.953rem;
  --fs-hero: clamp(1.75rem, 1.2rem + 2.2vw, 2.441rem);
  --lh-body: 1.6;
  --lh-tight: 1.2;
  --fw-body: 400;
  --fw-strong: 600;
  --fw-heading: 800;
  --fw-figure: 900;
  --tracking-caps: 0.06em;

  --container: 1200px;
  --gutter: 16px;
  --gutter-md: 24px;
  --header-h: 64px;
  --rail-w: 248px;
  --gap: 24px;
  --gap-sm: 12px;
  --gap-lg: 40px;
  --section-gap: 72px;
  --section-gap-mob: 48px;
  --hero-padding-v: 40px;
  --footer-padding-v: 48px;
  --radius-sm: 6px;
  --radius: 12px;
  --radius-lg: 20px;
  --radius-pill: 999px;
  --slant: -14deg;
  --tilt: 3deg;

  --ease-out: cubic-bezier(0.22, 1, 0.36, 1);
  --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
  --ease-snap: cubic-bezier(0.34, 1.4, 0.64, 1);
  --dur-fast: 160ms;
  --dur: 240ms;
  --dur-slow: 420ms;

  --mark-bg: rgba(31, 173, 102, 0.22);
  --code-bg: rgba(249, 250, 250, 0.08);
  --hr-border: rgba(249, 250, 250, 0.12);
  --quote-bg: rgba(50, 56, 62, 0.5);
  --quote-border: #1fad66;
  --table-border: rgba(249, 250, 250, 0.12);
  --link-color: #f9fafa;
}

*, *::before, *::after { box-sizing: border-box; }

html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  scroll-behavior: smooth;
}

[id] { scroll-margin-top: calc(var(--header-h) + 16px); }

body {
  margin: 0;
  min-height: 100vh;
  background: var(--color-bg);
  color: var(--color-text);
  font-family: var(--font-body);
  font-size: var(--fs-body);
  font-weight: var(--fw-body);
  line-height: var(--lh-body);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

img, svg, video { display: block; max-width: 100%; height: auto; }

a { color: var(--color-link); text-decoration: none; transition: color var(--dur-fast) var(--ease-out); }
a:hover { color: var(--color-link-hover); }

button {
  background: transparent;
  border: 0;
  padding: 0;
  margin: 0;
  font: inherit;
  color: inherit;
  cursor: pointer;
}

input, select, textarea { font: inherit; color: inherit; }

:focus-visible { outline: 2px solid transparent; box-shadow: 0 0 0 2px var(--color-bg), 0 0 0 4px var(--color-input-focus); }

.container {
  width: 100%;
  max-width: var(--container);
  margin-inline: auto;
  padding-inline: var(--gutter);
}
@media (min-width: 768px) {
  .container { padding-inline: var(--gutter-md); }
}

.skip-link {
  position: absolute;
  left: 16px;
  top: -100px;
  z-index: 1000;
  padding: 10px 16px;
  border-radius: var(--radius-sm);
  background: var(--color-accent);
  color: var(--color-on-accent);
  font-weight: var(--fw-strong);
}
.skip-link:focus { top: 12px; color: var(--color-on-accent); }

.visually-hidden {
  position: absolute !important;
  width: 1px; height: 1px;
  margin: -1px; padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}

.colophon { display: block; }

.article-text {
  word-wrap: break-word;
  overflow-wrap: break-word;
  color: var(--color-text);
  --tw-mark-bg: var(--mark-bg, rgba(255, 215, 0, 0.25));
  --tw-code-bg: var(--code-bg, rgba(128, 128, 128, 0.15));
  --tw-pre-bg: var(--pre-bg, rgba(0, 0, 0, 0.85));
  --tw-pre-text: var(--pre-text, #e5e5e5);
  --tw-hr-border: var(--hr-border, rgba(128, 128, 128, 0.3));
  --tw-quote-bg: var(--quote-bg, rgba(128, 128, 128, 0.08));
  --tw-quote-border: var(--quote-border, currentColor);
  --tw-table-border: var(--table-border, rgba(128, 128, 128, 0.3));
  --tw-link-color: var(--link-color, currentColor);
}

.article-text :is(h1,h2,h3,h4,h5,h6,p):first-child { margin-top: 0; }

.article-text p { margin: 0 0 1.2em; line-height: 1.6; overflow: auto; clear: none; }
.article-text strong, .article-text b { font-weight: 600; color: var(--color-heading); }
.article-text em, .article-text i { font-style: italic; }
.article-text mark { background: var(--tw-mark-bg); color: inherit; padding: 0 2px; }
.article-text del { text-decoration: line-through; }
.article-text sup { font-size: 0.8em; vertical-align: super; }
.article-text sub { font-size: 0.8em; vertical-align: sub; }

.article-text h1, .article-text h2, .article-text h3,
.article-text h4, .article-text h5, .article-text h6 {
  margin: 1.2em 0 0.8em; line-height: 1.3; overflow: auto; clear: none;
  font-family: var(--font-display);
  color: var(--color-heading);
}
.article-text h1 { font-size: var(--fs-hero); font-weight: var(--fw-heading); line-height: var(--lh-tight); color: var(--color-bright); }
.article-text h2 { font-size: var(--fs-xl); font-weight: var(--fw-heading); line-height: var(--lh-tight); }
.article-text h3 { font-size: var(--fs-md); font-weight: 700; }

.article-text ul, .article-text ol {
  margin: 0 0 1.2em; padding-left: 1.5em; overflow: auto; clear: none;
}
.article-text ul { list-style-type: disc; }
.article-text ol { list-style-type: decimal; }

.article-text li { margin-bottom: 0.4em; list-style-position: outside; clear: none; }

.article-text dl { margin: 1.5em 0; overflow: auto; clear: none; }
.article-text dt { font-weight: 600; clear: none; }
.article-text dd { margin: 0 0 1em 1.5em; clear: none; }

.article-text a { color: var(--tw-link-color); text-decoration: underline; text-underline-offset: 0.18em; transition: color 0.2s, font-weight 0.2s; }
.article-text a:hover { color: var(--color-link-hover); font-weight: 600; }

.article-text code {
  background: var(--tw-code-bg); padding: 2px 6px; border-radius: 4px;
  font-family: Consolas, Monaco, monospace; font-size: 0.9em;
}

.article-text pre {
  background: var(--tw-pre-bg); color: var(--tw-pre-text);
  padding: 1em; overflow-x: auto; border-radius: 6px; margin: 1.5em 0;
}
.article-text pre code { background: none; padding: 0; color: inherit; }

.article-text hr { margin: 2em 0; border: none; border-top: 1px solid var(--tw-hr-border); }

.article-text img { max-width: 100%; height: auto; }

.article-text video, .article-text iframe {
  width: 100%; max-width: 100%; height: auto;
  margin: 1.5em 0; display: block; border-radius: 6px;
}

.article-text figure { margin: 2em 0; text-align: center; clear: none; }
.article-text figcaption { margin-top: 0.5em; font-style: italic; opacity: 0.8; }

.article-text blockquote {
  margin: 2em 0; padding: 1em 1.5em;
  border-left: 4px solid var(--tw-quote-border);
  background: var(--tw-quote-bg); border-radius: 4px;
  overflow: auto; clear: none;
}
.article-text blockquote p:last-child { margin-bottom: 0; }
.article-text > *:last-child { margin-bottom: 0; }

.article-text__table-wrap {
  margin: 2em 0; overflow-x: auto; -webkit-overflow-scrolling: touch;
}
.article-text__table-wrap table {
  width: 100%; min-width: 600px; table-layout: fixed; border-collapse: collapse; font-size: 0.95em;
}
.article-text__table-wrap th, .article-text__table-wrap td {
  padding: 0.75em 1em; border: 1px solid var(--tw-table-border);
  text-align: left; vertical-align: top; overflow-wrap: break-word;
}
.article-text__table-wrap th { font-weight: 600; color: var(--color-heading); background: var(--color-surface); }

.article-text .alignleft, .article-text .alignright, .article-text .aligncenter {
  float: none; display: block; max-width: 100%; margin: 20px auto; clear: none;
}
.article-text img.alignleft, .article-text img.alignright, .article-text img.aligncenter {
  max-height: 60vh;
}

@media (min-width: 768px) {
  .article-text .alignleft { float: left; max-width: 50%; margin: 0 20px 20px 0; }
  .article-text .alignright { float: right; max-width: 50%; margin: 0 0 20px 20px; }
  .article-text .aligncenter { margin: 20px auto; }
  .article-text img.alignleft, .article-text img.alignright, .article-text img.aligncenter {
    max-height: none;
  }
}

:root {
  --ease-enter: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-exit: cubic-bezier(0.7, 0, 0.84, 0);
  --ease-toggle: cubic-bezier(0.65, 0, 0.35, 1);
  --color-felt: #0f3322;
  --color-felt-hi: #1d6a43;
  --color-ink: #17191b;
  --shadow-card: 0 1px 0 rgba(249, 250, 250, 0.04) inset, 0 20px 44px -28px rgba(0, 0, 0, 0.9);
}

.icon { width: 20px; height: 20px; flex: none; }
.nowrap { white-space: nowrap; }

.container--flush { max-width: none; padding-inline: 0; }
@media (min-width: 768px) {
  .container--flush { padding-inline: 0; }
}

.btn {
  position: relative;
  isolation: isolate;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 44px;
  padding: 8px 20px 8px 8px;
  border-radius: var(--radius-pill);
  font-family: var(--font-display);
  font-size: var(--fs-sm);
  font-weight: 800;
  line-height: 1.5;
  letter-spacing: 0.01em;
  text-align: center;
  white-space: nowrap;
  overflow: hidden;
  transition: background-color var(--dur) var(--ease-enter), color var(--dur) var(--ease-enter), box-shadow var(--dur) var(--ease-enter), transform var(--dur) var(--ease-enter);
}
.btn__icon {
  flex-shrink: 0;
  display: inline-grid;
  place-items: center;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  flex: none;
  transition: transform var(--dur) var(--ease-enter), background-color var(--dur) var(--ease-enter);
}
.btn__icon .icon { width: 17px; height: 17px; }
.btn__label { min-width: 0; }
.btn--primary { background: var(--color-accent); color: var(--color-on-accent); box-shadow: 0 10px 26px -14px var(--color-accent-glow), inset 0 -2px 0 rgba(0, 0, 0, 0.18); }
.btn--primary .btn__icon { background: rgba(11, 13, 14, 0.22); }
.btn--primary::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(105deg, transparent 30%, rgba(255, 255, 255, 0.32) 46%, transparent 62%);
  transform: translateX(-120%);
  transition: transform var(--dur-slow) var(--ease-enter);
}
.btn--primary:hover { background: var(--color-accent-hover); color: var(--color-on-accent); transform: translateY(-2px); box-shadow: 0 16px 30px -12px var(--color-accent-glow), inset 0 -2px 0 rgba(0, 0, 0, 0.18); }
.btn--primary:hover::before { transform: translateX(120%); }
.btn:hover .btn__icon { transform: rotate(-12deg) translateX(1px); }
.btn:active { transform: translateY(0); }
.btn--ghost { background: var(--color-surface-2); color: var(--color-btn2-text); box-shadow: inset 0 0 0 1px var(--color-line-strong); }
.btn--ghost .btn__icon { background: rgba(31, 173, 102, 0.16); color: var(--color-accent-hover); }
.btn--ghost:hover { background: var(--color-btn2-hover); color: var(--color-bright); transform: translateY(-2px); box-shadow: inset 0 0 0 1px var(--color-accent); }
.btn--sm { min-height: 40px; padding: 5px 14px 5px 5px; font-size: var(--fs-xs); gap: 8px; }
.btn--sm .btn__icon { width: 28px; height: 28px; }
.btn--lg { min-height: 52px; padding: 9px 26px 9px 9px; font-size: var(--fs-body); }
.btn--lg .btn__icon { width: 34px; height: 34px; }
.btn--block { display: flex; width: 100%; }
.btn--lg.btn--primary::before { animation: btn-sheen 5.5s var(--ease-in-out) 1.2s infinite; }
@keyframes btn-sheen {
  0%, 72% { transform: translateX(-120%); }
  100% { transform: translateX(120%); }
}

.kicker {
  position: relative;
  isolation: isolate;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 3px 14px;
  font-family: var(--font-display);
  font-size: var(--fs-xs);
  font-style: italic;
  font-weight: 900;
  letter-spacing: var(--tracking-caps);
  text-transform: uppercase;
  color: var(--color-accent-hover);
}
.kicker::before {
  content: "";
  position: absolute;
  inset: 0 4px;
  z-index: -1;
  border-radius: 4px;
  background: var(--color-accent-wash);
  box-shadow: inset 0 0 0 1px rgba(31, 173, 102, 0.35);
  transform: skewX(var(--slant));
}

.block-head { max-width: 760px; margin: 0 auto 28px; text-align: center; }
.block-head--left { margin-inline: 0; text-align: left; }
.block-head__title {
  margin-top: 12px;
  font-family: var(--font-display);
  font-size: var(--fs-lg);
  font-style: italic;
  font-weight: 900;
  line-height: var(--lh-tight);
  letter-spacing: -0.01em;
  color: var(--color-bright);
  text-wrap: balance;
}
.block-head__sub { margin: 10px 0 0; color: var(--color-text); }
@media (min-width: 768px) {
  .block-head__title { font-size: var(--fs-xl); }
}

.widget-head { display: flex; align-items: flex-start; gap: 12px; margin-bottom: 18px; }
.widget-head__icon {
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  flex: none;
  border-radius: 10px;
  background: var(--color-accent-wash);
  color: var(--color-accent-hover);
  transform: skewX(var(--slant));
}
.widget-head__icon .icon { transform: skewX(14deg); }
.widget-head__title { font-family: var(--font-display); font-size: var(--fs-md); font-weight: 800; line-height: 1.2; color: var(--color-bright); }
.widget-head__sub { margin: 4px 0 0; font-size: var(--fs-sm); line-height: 1.45; }

.block-cta { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 12px 20px; margin-top: 28px; text-align: center; }
.block-cta__age { font-size: var(--fs-xs); color: var(--color-text); }

.dock {
  position: sticky;
  top: 0;
  z-index: 50;
  height: var(--header-h);
  background: rgba(34, 38, 42, 0.94);
  border-bottom: 1px solid var(--color-line);
  backdrop-filter: saturate(140%) blur(10px);
}
.dock__shell { height: 100%; }
.dock__inner { display: flex; align-items: center; gap: 16px; height: 100%; }
.dock__brand { display: inline-flex; align-items: center; flex: none; min-width: 0; }
.dock__logo { width: 104px; height: auto; }
.dock__nav { display: none; }
.dock__tools { display: flex; align-items: center; gap: 6px; margin-left: auto; min-width: 0; }
.dock__cta { display: flex; align-items: center; gap: 8px; }
.dock__login { display: none; }
.dock__register { width: 42px; min-height: 42px; padding: 6px; gap: 0; }
.dock__register .btn__icon { width: 30px; height: 30px; }
.dock__register .btn__label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.dock__burger {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border-radius: 10px;
  color: var(--color-bright);
  background: var(--color-surface-2);
  transition: background-color var(--dur) var(--ease-enter);
}
.dock__burger:hover { background: var(--color-btn2-hover); }
@media (min-width: 400px) {
  .dock__logo { width: 128px; }
  .dock__tools { gap: 8px; }
}
@media (min-width: 560px) {
  .dock__register { width: auto; padding: 6px 14px 6px 6px; gap: 8px; }
  .dock__register .btn__icon { width: 28px; height: 28px; }
  .dock__register .btn__label { position: static; width: auto; height: auto; overflow: visible; clip: auto; }
}
@media (min-width: 640px) {
  .dock__login { display: inline-flex; }
}
@media (min-width: 1024px) {
  .dock__logo { width: 164px; }
  .dock__nav { display: flex; align-items: center; gap: 4px; margin-inline: auto; }
  .dock__tools { margin-left: 0; }
  .dock__link {
    position: relative;
    padding: 8px 12px;
    font-size: var(--fs-sm);
    font-weight: 600;
    color: var(--color-nav-link);
  }
  .dock__link::after {
    content: "";
    position: absolute;
    left: 12px;
    right: 12px;
    bottom: 2px;
    height: 2px;
    border-radius: 2px;
    background: var(--color-accent);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform var(--dur) var(--ease-enter);
  }
  .dock__link:hover { color: var(--color-bright); }
  .dock__link:hover::after { transform: scaleX(1); }
  .dock__burger { display: none; }
}

.lingo { position: relative; }
.lingo__btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 42px;
  padding: 9px 8px;
  border-radius: 10px;
  color: var(--color-bright);
  background: var(--color-surface-2);
  font-size: var(--fs-xs);
  font-weight: 700;
  white-space: nowrap;
  transition: background-color var(--dur) var(--ease-enter);
}
.lingo__btn:hover { background: var(--color-btn2-hover); }
.lingo__btn-code { display: none; }
.lingo__chev { width: 14px; height: 14px; transition: transform var(--dur) var(--ease-toggle); }
.lingo.is-open .lingo__chev { transform: rotate(180deg); }
.lingo__flag { flex: none; width: 22px; height: auto; border-radius: 3px; box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.18); }
.lingo__list {
  position: absolute;
  right: 0;
  top: calc(100% + 8px);
  z-index: 60;
  display: grid;
  gap: 2px;
  min-width: 196px;
  padding: 6px;
  border-radius: var(--radius);
  background: var(--color-surface);
  box-shadow: 0 0 0 1px var(--color-line-strong), 0 24px 40px -18px rgba(0, 0, 0, 0.9);
  opacity: 0;
  visibility: hidden;
  transform: translateY(-6px);
  transition: opacity var(--dur) var(--ease-exit), transform var(--dur) var(--ease-exit), visibility 0s linear var(--dur);
}
.lingo.is-open .lingo__list { opacity: 1; visibility: visible; transform: translateY(0); transition: opacity var(--dur) var(--ease-enter), transform var(--dur) var(--ease-enter), visibility 0s linear 0s; }
.lingo__item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 10px;
  border-radius: 8px;
  font-size: var(--fs-sm);
  color: var(--color-heading);
}
.lingo__name { flex: 1 1 auto; }
.lingo__code { font-size: var(--fs-xs); color: var(--color-text); }
a.lingo__item:hover { background: var(--color-surface-2); color: var(--color-bright); }
.lingo__item.is-current { background: var(--color-accent-wash); color: var(--color-bright); }
.lingo__item.is-current .lingo__code { color: var(--color-accent-hover); }
@media (min-width: 560px) {
  .lingo__btn-code { display: inline; }
  .lingo__btn { padding-inline: 10px; }
}

.pullout {
  position: fixed;
  inset: 0;
  z-index: 90;
  overflow: hidden;
  visibility: hidden;
  transition: visibility 0s linear var(--dur-slow);
}
.pullout.is-open { visibility: visible; transition-delay: 0s; }
html.is-pullout-open { overflow: hidden; }
.pullout__backdrop {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: var(--color-scrim);
  opacity: 0;
  transition: opacity var(--dur-slow) var(--ease-exit);
}
.pullout.is-open .pullout__backdrop { opacity: 1; transition-timing-function: var(--ease-enter); }
.pullout__panel {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  z-index: 2;
  display: flex;
  flex-direction: column;
  gap: 20px;
  width: min(340px, 88vw);
  padding: 16px 18px 24px;
  overflow-y: auto;
  overscroll-behavior: contain;
  background: var(--color-surface);
  box-shadow: -24px 0 48px -24px rgba(0, 0, 0, 0.9);
  transform: translateX(100%);
  transition: transform var(--dur-slow) var(--ease-exit);
}
.pullout.is-open .pullout__panel { transform: translateX(0); transition-timing-function: var(--ease-enter); }
.pullout__top { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.pullout__logo { width: 132px; height: auto; }
.pullout__close { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 10px; background: var(--color-surface-2); color: var(--color-bright); }
.pullout__links { display: grid; }
.pullout__link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 4px;
  border-bottom: 1px solid var(--color-line);
  font-family: var(--font-display);
  font-size: var(--fs-md);
  font-style: italic;
  font-weight: 900;
  color: var(--color-bright);
}
.pullout__arrow { color: var(--color-accent); transition: transform var(--dur) var(--ease-enter); }
.pullout__link:hover .pullout__arrow { transform: translateX(4px); }
.pullout__cta { display: grid; gap: 10px; }
.pullout__age { margin: auto 0 0; font-size: var(--fs-xs); }

.stage {
  position: relative;
  isolation: isolate;
  padding-block: 24px 40px;
  background:
    radial-gradient(60% 70% at 88% 0%, rgba(31, 173, 102, 0.2), transparent 70%),
    radial-gradient(40% 50% at 0% 100%, rgba(31, 173, 102, 0.08), transparent 70%),
    linear-gradient(180deg, #121517 0%, var(--color-bg) 100%);
  border-bottom: 1px solid var(--color-line);
}
.stage::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: repeating-linear-gradient(104deg, transparent 0 46px, rgba(249, 250, 250, 0.025) 46px 47px);
  pointer-events: none;
}
.stage__inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-template-areas: "intro" "fan" "voucher";
  gap: 28px;
  align-items: start;
}
.stage__intro { grid-area: intro; min-width: 0; }
.stage__chips { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 14px; }
.stage__chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px 4px 8px;
  border-radius: var(--radius-pill);
  background: rgba(50, 56, 62, 0.7);
  box-shadow: inset 0 0 0 1px var(--color-line-strong);
  font-size: var(--fs-xs);
  font-weight: 700;
  color: var(--color-heading);
}
.stage__chip .icon { width: 15px; height: 15px; color: var(--color-accent-hover); }
.stage__text h1 { margin: 0 0 0.55em; font-style: italic; font-weight: 900; letter-spacing: -0.015em; text-wrap: balance; }
.stage__text p { margin-bottom: 0; color: var(--color-heading); }
.stage__cta { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 22px; }
@media (min-width: 768px) {
  .stage { padding-block: 40px 56px; }
  .stage__inner {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    grid-template-areas: "intro fan" "voucher voucher";
    gap: 32px 32px;
  }
}
@media (min-width: 1180px) {
  .stage__inner {
    grid-template-columns: minmax(0, 1.08fr) minmax(0, 1fr) 260px;
    grid-template-areas: "intro fan voucher";
    gap: 32px;
  }
}

.fan { grid-area: fan; position: relative; min-width: 0; }
.fan__deck { display: grid; padding: 6px 7% 0; }
.fan__slide {
  grid-area: 1 / 1;
  display: grid;
  gap: 14px;
  align-content: start;
  min-width: 0;
  pointer-events: none;
  transform: rotate(var(--fan-r, 0deg)) translateX(var(--fan-x, 0%));
  transform-origin: 50% 28%;
  transition: transform var(--dur-slow) var(--ease-enter);
}
.fan__slide.is-active { z-index: 3; pointer-events: auto; transform: none; }
.fan__slide.is-prev { z-index: 1; --fan-r: -3.5deg; --fan-x: -4%; }
.fan__slide.is-next { z-index: 2; --fan-r: 3.5deg; --fan-x: 4%; }
.fan__art {
  position: relative;
  border-radius: var(--radius);
  overflow: hidden;
  background: var(--color-surface);
  box-shadow: 0 0 0 1px var(--color-line-strong), 0 26px 46px -26px rgba(0, 0, 0, 0.95);
  opacity: 0.5;
  transition: opacity var(--dur-slow) var(--ease-enter);
}
.fan__slide.is-active .fan__art { opacity: 1; }
.fan__art img { width: 100%; height: auto; }
.fan__cap {
  position: relative;
  padding: 16px 16px 16px 18px;
  border-radius: var(--radius);
  background: rgba(34, 38, 42, 0.86);
  box-shadow: inset 3px 0 0 var(--color-accent), inset 0 0 0 1px var(--color-line);
  opacity: 0;
  visibility: hidden;
  transform: translateY(8px);
  transition: opacity var(--dur) var(--ease-exit), transform var(--dur) var(--ease-exit), visibility 0s linear var(--dur);
}
.fan__slide.is-active .fan__cap { opacity: 1; visibility: visible; transform: translateY(0); transition: opacity var(--dur-slow) var(--ease-enter) 80ms, transform var(--dur-slow) var(--ease-enter) 80ms, visibility 0s linear 0s; }
.fan__title { font-family: var(--font-display); font-size: var(--fs-md); font-style: italic; font-weight: 900; line-height: 1.2; color: var(--color-bright); }
.fan__desc { margin: 6px 0 12px; font-size: var(--fs-sm); line-height: 1.5; }
.fan__nav { display: flex; align-items: center; justify-content: center; gap: 10px; margin-top: 12px; }
.fan__dots { display: flex; gap: 2px; }
.fan__dot { position: relative; width: 32px; height: 32px; }
.fan__dot::before {
  content: "";
  position: absolute;
  left: 4px;
  right: 4px;
  top: 14px;
  height: 4px;
  border-radius: 2px;
  background: var(--color-surface-3);
  transform: scaleX(0.45);
  transition: transform var(--dur) var(--ease-enter), background-color var(--dur) var(--ease-enter);
}
.fan__dot.is-active::before { background: var(--color-accent); transform: scaleX(1); }
.fan__arrow {
  flex-shrink: 0;
  display: none;
  place-items: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: var(--color-surface-2);
  color: var(--color-bright);
  transition: background-color var(--dur) var(--ease-enter);
}
.fan__arrow:hover { background: var(--color-accent); }
@media (min-width: 768px) {
  .fan__deck { padding-inline: 8%; }
  .fan__slide.is-prev { --fan-r: -4.5deg; --fan-x: -5%; }
  .fan__slide.is-next { --fan-r: 4.5deg; --fan-x: 5%; }
  .fan__arrow { display: grid; }
}

.voucher { grid-area: voucher; min-width: 0; }
.voucher__ticket { display: grid; filter: drop-shadow(0 22px 30px rgba(0, 0, 0, 0.55)); }
.voucher__top, .voucher__stub { position: relative; padding: 18px 20px; }
.voucher__top {
  background: linear-gradient(135deg, #1a7a4a 0%, #1fad66 55%, #23c274 100%);
  color: var(--color-on-accent);
  border-radius: var(--radius-lg) var(--radius-lg) 0 0;
  -webkit-mask: radial-gradient(circle 12px at 0 100%, transparent 98%, #000 100%) left / 51% 100% no-repeat, radial-gradient(circle 12px at 100% 100%, transparent 98%, #000 100%) right / 51% 100% no-repeat;
  mask: radial-gradient(circle 12px at 0 100%, transparent 98%, #000 100%) left / 51% 100% no-repeat, radial-gradient(circle 12px at 100% 100%, transparent 98%, #000 100%) right / 51% 100% no-repeat;
}
.voucher__top::after {
  flex-shrink: 0;
  content: "";
  position: absolute;
  right: 12px;
  top: 12px;
  width: 64px;
  height: 64px;
  border-radius: 50%;
  border: 12px solid rgba(255, 255, 255, 0.12);
  pointer-events: none;
}
.voucher__stub {
  display: grid;
  gap: 12px;
  background: var(--color-surface);
  border-radius: 0 0 var(--radius-lg) var(--radius-lg);
  -webkit-mask: radial-gradient(circle 12px at 0 0, transparent 98%, #000 100%) left / 51% 100% no-repeat, radial-gradient(circle 12px at 100% 0, transparent 98%, #000 100%) right / 51% 100% no-repeat;
  mask: radial-gradient(circle 12px at 0 0, transparent 98%, #000 100%) left / 51% 100% no-repeat, radial-gradient(circle 12px at 100% 0, transparent 98%, #000 100%) right / 51% 100% no-repeat;
}
.voucher__stub::before {
  content: "";
  position: absolute;
  left: 18px;
  right: 18px;
  top: 0;
  border-top: 2px dashed var(--color-line-strong);
}
.voucher__kicker {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: var(--fs-xs);
  font-style: italic;
  font-weight: 900;
  letter-spacing: var(--tracking-caps);
  text-transform: uppercase;
}
.voucher__kicker .icon { width: 16px; height: 16px; }
.voucher__title { margin-top: 6px; font-family: var(--font-display); font-size: var(--fs-md); font-style: italic; font-weight: 900; line-height: 1.15; }
.voucher__line { position: relative; margin: 8px 0 0; font-size: var(--fs-sm); font-weight: 600; line-height: 1.4; }
.voucher__code {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 8px;
  padding: 10px 12px;
  border-radius: 10px;
  background: var(--color-bg);
  box-shadow: inset 0 0 0 1px var(--color-line-strong);
}
.voucher__lock { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 8px; background: var(--color-accent-wash); color: var(--color-accent-hover); }
.voucher__lock .icon { width: 16px; height: 16px; }
.voucher__mask { font-size: 1.25rem; letter-spacing: 0.18em; color: var(--color-bright); }
.voucher__hint { margin-left: auto; font-size: var(--fs-xs); color: var(--color-text); text-align: right; }
.voucher__note { margin: 0; font-size: var(--fs-xs); line-height: 1.45; }
@media (min-width: 768px) {
  .voucher__ticket { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .voucher__top {
    border-radius: var(--radius-lg) 0 0 var(--radius-lg);
    -webkit-mask: radial-gradient(circle 12px at 100% 0, transparent 98%, #000 100%) top / 100% 51% no-repeat, radial-gradient(circle 12px at 100% 100%, transparent 98%, #000 100%) bottom / 100% 51% no-repeat;
    mask: radial-gradient(circle 12px at 100% 0, transparent 98%, #000 100%) top / 100% 51% no-repeat, radial-gradient(circle 12px at 100% 100%, transparent 98%, #000 100%) bottom / 100% 51% no-repeat;
  }
  .voucher__stub {
    border-radius: 0 var(--radius-lg) var(--radius-lg) 0;
    -webkit-mask: radial-gradient(circle 12px at 0 0, transparent 98%, #000 100%) top / 100% 51% no-repeat, radial-gradient(circle 12px at 0 100%, transparent 98%, #000 100%) bottom / 100% 51% no-repeat;
    mask: radial-gradient(circle 12px at 0 0, transparent 98%, #000 100%) top / 100% 51% no-repeat, radial-gradient(circle 12px at 0 100%, transparent 98%, #000 100%) bottom / 100% 51% no-repeat;
  }
  .voucher__stub::before { left: 0; right: auto; top: 18px; bottom: 18px; border-top: 0; border-left: 2px dashed var(--color-line-strong); }
  .voucher__top { display: flex; flex-direction: column; justify-content: center; }
}

@media (min-width: 1180px) {
  .voucher__ticket { grid-template-columns: minmax(0, 1fr); }
  .voucher__top {
    display: block;
    border-radius: var(--radius-lg) var(--radius-lg) 0 0;
    -webkit-mask: radial-gradient(circle 12px at 0 100%, transparent 98%, #000 100%) left / 51% 100% no-repeat, radial-gradient(circle 12px at 100% 100%, transparent 98%, #000 100%) right / 51% 100% no-repeat;
    mask: radial-gradient(circle 12px at 0 100%, transparent 98%, #000 100%) left / 51% 100% no-repeat, radial-gradient(circle 12px at 100% 100%, transparent 98%, #000 100%) right / 51% 100% no-repeat;
  }
  .voucher__stub {
    border-radius: 0 0 var(--radius-lg) var(--radius-lg);
    -webkit-mask: radial-gradient(circle 12px at 0 0, transparent 98%, #000 100%) left / 51% 100% no-repeat, radial-gradient(circle 12px at 100% 0, transparent 98%, #000 100%) right / 51% 100% no-repeat;
    mask: radial-gradient(circle 12px at 0 0, transparent 98%, #000 100%) left / 51% 100% no-repeat, radial-gradient(circle 12px at 100% 0, transparent 98%, #000 100%) right / 51% 100% no-repeat;
  }
  .voucher__stub::before { left: 18px; right: 18px; top: 0; bottom: auto; border-left: 0; border-top: 2px dashed var(--color-line-strong); }
}

.boost, .pitch { position: relative; isolation: isolate; padding-block: var(--section-gap-mob); }
.boost {
  background:
    radial-gradient(50% 60% at 50% 0%, rgba(31, 173, 102, 0.14), transparent 70%),
    var(--color-bg);
}
.boost::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  height: 6px;
  z-index: -1;
  background: repeating-linear-gradient(-60deg, var(--color-accent) 0 14px, transparent 14px 28px);
  opacity: 0.55;
}
.pitch {
  background:
    linear-gradient(90deg, transparent calc(50% - 1px), rgba(249, 250, 250, 0.05) calc(50% - 1px) calc(50% + 1px), transparent calc(50% + 1px)),
    radial-gradient(circle at 50% 50%, transparent 118px, rgba(249, 250, 250, 0.05) 119px 121px, transparent 122px),
    repeating-linear-gradient(90deg, rgba(31, 173, 102, 0.05) 0 80px, rgba(31, 173, 102, 0.02) 80px 160px),
    #0d1311;
  border-block: 1px solid var(--color-line);
}
@media (min-width: 768px) {
  .boost, .pitch { padding-block: var(--section-gap); }
}
.boost__grid, .pitch__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 20px; }
@media (min-width: 960px) {
  .boost__grid, .pitch__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 24px; align-items: stretch; }
}
.spinner, .tally, .slip, .lineup {
  min-width: 0;
  padding: 20px 18px;
  border-radius: var(--radius-lg);
  background: linear-gradient(180deg, rgba(50, 56, 62, 0.55), rgba(34, 38, 42, 0.92));
  box-shadow: inset 0 0 0 1px var(--color-line), var(--shadow-card);
}
@media (min-width: 480px) {
  .spinner, .tally, .slip, .lineup { padding: 24px; }
}

.spinner { display: flex; flex-direction: column; }
.spinner__stage { position: relative; width: min(100%, 300px); margin: 6px auto 0; }
.spinner__wheel { width: 100%; height: auto; overflow: visible; }
.spinner__pointer {
  position: absolute;
  left: 50%;
  top: -6px;
  z-index: 2;
  width: 26px;
  height: 30px;
  margin-left: -13px;
  background: var(--color-bright);
  clip-path: polygon(0 0, 100% 0, 50% 100%);
  filter: drop-shadow(0 4px 6px rgba(0, 0, 0, 0.6));
}
.spinner__rim { fill: var(--color-ink); stroke: var(--color-accent); stroke-width: 3; }
.spinner__rotor {
  transform-box: fill-box;
  transform-origin: center;
  transform: rotate(var(--spin, -22.5deg));
  transition: transform 4.2s var(--ease-enter);
}
.spinner__seg { stroke: var(--color-ink); stroke-width: 2; }
.spinner__seg--a { fill: #2a3035; }
.spinner__seg--b { fill: #363d44; }
.spinner__seg--win { fill: var(--color-accent); }
.spinner__txt { font-family: var(--font-display); font-size: 12.5px; font-weight: 800; fill: var(--color-heading); }
.spinner__txt--win { fill: #fff; font-size: 14px; font-style: italic; font-weight: 900; }
.spinner__peg { fill: var(--color-bright); opacity: 0.8; }
.spinner__hub { fill: var(--color-ink); stroke: var(--color-accent); stroke-width: 3; }
.spinner__hub-in { fill: var(--color-accent); }
.spinner__hub-play { fill: #fff; }
.spinner.is-landed .spinner__seg--win { fill: var(--color-accent-hover); }
.spinner__foot { display: grid; justify-items: center; gap: 12px; margin-top: 18px; text-align: center; }
.spinner__result { margin: 0; min-height: 3em; font-size: var(--fs-sm); line-height: 1.5; color: var(--color-heading); }
.spinner.is-landed .spinner__result { color: var(--color-bright); }

.tally { display: flex; flex-direction: column; gap: 18px; }
.tally .widget-head { margin-bottom: 0; }
.tally__field { display: grid; gap: 8px; }
.tally__label { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; font-size: var(--fs-sm); font-weight: 700; color: var(--color-heading); }
.tally__wv { font-family: var(--font-display); font-style: italic; font-weight: 900; color: var(--color-accent-hover); }
.tally__num { display: flex; align-items: center; border-radius: 10px; background: var(--color-input-bg); box-shadow: inset 0 0 0 1px var(--color-line-strong); transition: box-shadow var(--dur) var(--ease-enter); }
.tally__num:focus-within { box-shadow: inset 0 0 0 2px var(--color-accent); }
.tally__input {
  flex: 1 1 auto;
  min-width: 0;
  height: 46px;
  padding: 0 12px;
  border: 0;
  background: transparent;
  color: var(--color-input-text);
  font-size: var(--fs-md);
  font-weight: 800;
}
.tally__input:focus-visible { box-shadow: none; }
.tally__unit { padding-right: 14px; font-weight: 800; color: var(--color-text); }
.tally__range { width: 100%; height: 28px; margin: 0; accent-color: var(--color-accent); cursor: pointer; }
.tally__seg { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; padding: 4px; border-radius: 12px; background: var(--color-bg); }
.tally__opt { min-height: 40px; border-radius: 9px; font-weight: 800; color: var(--color-text); transition: background-color var(--dur) var(--ease-enter), color var(--dur) var(--ease-enter); }
.tally__opt:hover { color: var(--color-bright); }
.tally__opt.is-on { background: var(--color-accent); color: #fff; }
.tally__out { display: grid; grid-template-columns: minmax(0, 1fr); gap: 6px; margin: 0; }
.tally__cell { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; min-width: 0; padding: 10px 12px; border-radius: 10px; background: var(--color-bg); box-shadow: inset 0 0 0 1px var(--color-line); }
.tally__cell dt { font-size: var(--fs-xs); line-height: 1.3; color: var(--color-text); }
.tally__cell dd { margin: 0; text-align: right; font-family: var(--font-display); font-size: 1.05rem; font-style: italic; font-weight: 900; color: var(--color-bright); }
.tally__cell--hot { background: var(--color-accent-wash); box-shadow: inset 0 0 0 1px rgba(31, 173, 102, 0.45); }
.tally__cell--hot dd { color: var(--color-accent-hover); }
@media (min-width: 480px) {
  .tally__out { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
  .tally__cell { display: block; padding: 10px; }
  .tally__cell dd { margin: 6px 0 0; text-align: left; font-size: var(--fs-md); }
}

.slip { display: flex; flex-direction: column; }
.slip .widget-head { flex-wrap: wrap; }
.slip .widget-head > div { flex: 1 1 160px; min-width: 0; }
.slip__count { align-self: center; padding: 4px 10px; border-radius: var(--radius-pill); background: var(--color-accent-wash); font-size: var(--fs-xs); color: var(--color-heading); white-space: nowrap; }
.slip__count b { color: var(--color-accent-hover); }
.slip__list { display: grid; gap: 8px; }
.slip__pick {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  border-radius: 12px;
  text-align: left;
  background: var(--color-bg);
  box-shadow: inset 0 0 0 1px var(--color-line);
  opacity: 0.6;
  transition: box-shadow var(--dur) var(--ease-enter), opacity var(--dur) var(--ease-enter), background-color var(--dur) var(--ease-enter);
}
.slip__pick:hover { opacity: 0.85; box-shadow: inset 0 0 0 1px var(--color-line-strong); }
.slip__pick.is-on { opacity: 1; background: rgba(31, 173, 102, 0.07); box-shadow: inset 0 0 0 1px rgba(31, 173, 102, 0.55); }
.slip__ico { flex-shrink: 0; display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: var(--color-surface-2); color: var(--color-heading); }
.slip__match { display: grid; min-width: 0; }
.slip__teams { font-size: var(--fs-sm); font-weight: 700; line-height: 1.3; color: var(--color-bright); }
.slip__market { font-size: var(--fs-xs); color: var(--color-text); }
.slip__odd { padding: 6px 10px; border-radius: 8px; background: var(--color-surface-2); font-family: var(--font-display); font-style: italic; font-weight: 900; color: var(--color-bright); }
.slip__pick.is-on .slip__odd { background: var(--color-accent); color: #fff; }
.slip__tick { flex-shrink: 0; display: none; place-items: center; width: 22px; height: 22px; border-radius: 50%; box-shadow: inset 0 0 0 2px var(--color-surface-3); color: transparent; transition: background-color var(--dur) var(--ease-enter), color var(--dur) var(--ease-enter); }
.slip__tick .icon { width: 14px; height: 14px; }
.slip__pick.is-on .slip__tick { background: var(--color-accent); box-shadow: none; color: #fff; }
@media (min-width: 480px) {
  .slip__tick { display: grid; }
}
.slip__stake { display: grid; gap: 8px; margin-top: 16px; }
.slip__stake-l { font-size: var(--fs-sm); font-weight: 700; color: var(--color-heading); }
.slip__stake-set { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; padding: 4px; border-radius: 12px; background: var(--color-bg); }
.slip__stake-opt { min-height: 40px; border-radius: 9px; font-weight: 800; color: var(--color-text); white-space: nowrap; transition: background-color var(--dur) var(--ease-enter), color var(--dur) var(--ease-enter); }
.slip__stake-opt:hover { color: var(--color-bright); }
.slip__stake-opt.is-on { background: var(--color-surface-2); color: var(--color-bright); box-shadow: inset 0 0 0 1px var(--color-accent); }
.slip__sum { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 8px; margin: 14px 0 0; }
.slip__sum-cell { padding: 10px 12px; border-radius: 10px; background: var(--color-bg); }
.slip__sum-cell dt { font-size: var(--fs-xs); color: var(--color-text); }
.slip__sum-cell dd { margin: 4px 0 0; font-family: var(--font-display); font-size: var(--fs-md); font-style: italic; font-weight: 900; color: var(--color-bright); }
.slip__sum-cell--hot { background: var(--color-accent-wash); }
.slip__sum-cell--hot dd { color: var(--color-accent-hover); }

.lineup { display: flex; flex-direction: column; }
.lineup__board {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-template-areas: "home" "away" "score";
  gap: 14px 12px;
  padding: 16px 14px;
  border-radius: 14px;
  background:
    linear-gradient(90deg, transparent calc(50% - 1px), rgba(249, 250, 250, 0.08) calc(50% - 1px) calc(50% + 1px), transparent calc(50% + 1px)),
    linear-gradient(180deg, #13402b, #0f3322);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.08);
}
.lineup__side { display: grid; gap: 8px; align-content: start; min-width: 0; }
.lineup__side:first-child { grid-area: home; }
.lineup__side:last-child { grid-area: away; }
.lineup__label { font-size: var(--fs-xs); font-weight: 800; letter-spacing: var(--tracking-caps); text-transform: uppercase; color: rgba(249, 250, 250, 0.7); }
.lineup__pick { position: relative; }
.lineup__select {
  width: 100%;
  height: 44px;
  padding: 0 32px 0 10px;
  border: 0;
  border-radius: 10px;
  appearance: none;
  background: rgba(11, 13, 14, 0.55);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.14);
  color: var(--color-bright);
  font-size: var(--fs-sm);
  font-weight: 700;
  text-overflow: ellipsis;
  cursor: pointer;
}
.lineup__select option { background: var(--color-surface); color: var(--color-bright); }
.lineup__chev { position: absolute; right: 8px; top: 12px; width: 18px; height: 18px; color: var(--color-accent-hover); pointer-events: none; }
.lineup__form { display: grid; gap: 4px; }
.lineup__form-l { font-size: var(--fs-xs); color: rgba(249, 250, 250, 0.6); }
.lineup__chips { display: flex; flex-wrap: wrap; gap: 3px; }
.form-chip { display: inline-grid; place-items: center; width: 22px; height: 22px; border-radius: 5px; font-size: 0.72rem; font-weight: 900; color: #fff; }
.form-chip--w { background: var(--color-accent); }
.form-chip--d { background: #6b747d; }
.form-chip--l { background: #b8423a; }
.lineup__score { grid-area: score; display: flex; align-items: center; justify-content: center; gap: 14px; }
.lineup__colon { font-family: var(--font-display); font-size: 2rem; font-weight: 900; color: rgba(249, 250, 250, 0.6); }
.stepper { display: flex; flex-direction: column; align-items: center; gap: 6px; }
.stepper__btn { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 10px; background: rgba(11, 13, 14, 0.55); color: var(--color-bright); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.14); transition: background-color var(--dur) var(--ease-enter); }
.stepper__btn:hover { background: var(--color-accent); }
.stepper__val { display: grid; place-items: center; min-width: 52px; height: 56px; border-radius: 10px; background: var(--color-ink); font-family: var(--font-display); font-size: 2rem; font-style: italic; font-weight: 900; color: var(--color-bright); box-shadow: inset 0 -3px 0 var(--color-accent); }
.lineup__tip { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px 12px; margin: 14px 0 0; padding: 12px 14px; border-radius: 12px; background: var(--color-bg); font-size: var(--fs-sm); }
.lineup__tip-l { display: inline-flex; align-items: center; gap: 8px; color: var(--color-text); }
.lineup__tip-l .icon { color: var(--color-accent-hover); }
.lineup__tip b { color: var(--color-bright); }
@media (min-width: 420px) {
  .lineup__board { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); grid-template-areas: "home away" "score score"; }
}
@media (min-width: 560px) {
  .lineup__board { grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); grid-template-areas: "home score away"; align-items: center; }
  .lineup__score { flex-direction: column; gap: 6px; }
  .lineup__colon { display: none; }
}
.spinner__foot, .slip__sum, .lineup__tip { margin-bottom: 18px; }
.widget-cta { margin-top: auto; }

.guide { padding-block: var(--section-gap-mob); }
.guide__inner { position: relative; width: 100%; max-width: var(--container); margin-inline: auto; padding-inline: var(--gutter); }
.guide__flow { min-width: 0; counter-reset: band; }
@media (min-width: 768px) {
  .guide { padding-block: var(--section-gap); }
  .guide__inner { padding-inline: var(--gutter-md); }
}
@media (min-width: 1024px) {
  .guide__inner { display: grid; grid-template-columns: var(--rail-w) minmax(0, 1fr); gap: 40px; align-items: start; }
}

.waypoints {
  position: fixed;
  top: 0;
  left: 0;
  bottom: 0;
  z-index: 85;
  display: flex;
  flex-direction: column;
  gap: 14px;
  width: min(300px, 86vw);
  padding: 18px 16px 24px;
  overflow-y: auto;
  background: var(--color-surface);
  box-shadow: 24px 0 48px -24px rgba(0, 0, 0, 0.9);
  visibility: hidden;
  transform: translateX(-100%);
  transition: transform var(--dur-slow) var(--ease-exit), visibility 0s linear var(--dur-slow);
}
.waypoints.is-open { visibility: visible; transform: translateX(0); transition: transform var(--dur-slow) var(--ease-enter), visibility 0s linear 0s; }
.waypoints__backdrop {
  position: fixed;
  inset: 0;
  z-index: 84;
  background: var(--color-scrim);
  opacity: 0;
  visibility: hidden;
  transition: opacity var(--dur-slow) var(--ease-exit), visibility 0s linear var(--dur-slow);
}
.waypoints__backdrop.is-open { opacity: 1; visibility: visible; transition: opacity var(--dur-slow) var(--ease-enter), visibility 0s linear 0s; }
.waypoints__top { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.waypoints__title { font-family: var(--font-display); font-size: var(--fs-xs); font-style: italic; font-weight: 900; letter-spacing: var(--tracking-caps); text-transform: uppercase; color: var(--color-accent-hover); }
.waypoints__close { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 10px; background: var(--color-surface-2); color: var(--color-bright); }
.waypoints__nav { display: grid; gap: 2px; }
.waypoints__link {
  position: relative;
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr);
  align-items: baseline;
  gap: 6px;
  padding: 7px 10px;
  border-radius: 8px;
  font-size: var(--fs-sm);
  line-height: 1.35;
  color: var(--color-text);
  transition: background-color var(--dur) var(--ease-enter), color var(--dur) var(--ease-enter);
}
.waypoints__link::before {
  content: "";
  position: absolute;
  left: 0;
  top: 8px;
  bottom: 8px;
  width: 3px;
  border-radius: 2px;
  background: var(--color-accent);
  transform: scaleY(0);
  transition: transform var(--dur) var(--ease-enter);
}
.waypoints__n { font-family: var(--font-display); font-size: var(--fs-xs); font-style: italic; font-weight: 900; color: var(--color-surface-3); }
.waypoints__link:hover { color: var(--color-bright); background: rgba(50, 56, 62, 0.5); }
.waypoints__link.is-current { color: var(--color-bright); background: var(--color-accent-wash); }
.waypoints__link.is-current::before { transform: scaleY(1); }
.waypoints__link.is-current .waypoints__n { color: var(--color-accent-hover); }
.waypoints__cta { margin-top: 4px; }
.waypoints__toggle {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 20px;
  padding: 9px 16px 9px 12px;
  border-radius: var(--radius-pill);
  background: var(--color-surface-2);
  box-shadow: inset 0 0 0 1px var(--color-line-strong), 0 10px 22px -12px rgba(0, 0, 0, 0.9);
  font-size: var(--fs-sm);
  font-weight: 700;
  color: var(--color-bright);
}
.waypoints__toggle .icon { color: var(--color-accent-hover); }
@media (min-width: 1024px) {
  .waypoints {
    position: sticky;
    top: calc(var(--header-h) + 20px);
    z-index: auto;
    width: auto;
    max-height: calc(100vh - var(--header-h) - 40px);
    padding: 16px 12px;
    border-radius: var(--radius-lg);
    background: rgba(34, 38, 42, 0.6);
    box-shadow: inset 0 0 0 1px var(--color-line);
    visibility: visible;
    transform: none;
    transition: none;
  }
  .waypoints__close, .waypoints__backdrop, .waypoints__toggle { display: none; }
}

.guide__band { counter-increment: band; padding-top: 36px; margin-top: 36px; border-top: 1px solid var(--color-line); }
.guide__flow > .waypoints__toggle + .guide__band { padding-top: 0; margin-top: 0; border-top: 0; }
.guide__band .article-text { font-size: 1.0625rem; }
.guide__band .article-text h2 { margin-top: 0; text-wrap: balance; }
.guide__band .article-text h2::before {
  content: counter(band, decimal-leading-zero);
  display: block;
  margin-bottom: 8px;
  font-size: var(--fs-sm);
  font-style: italic;
  font-weight: 900;
  letter-spacing: var(--tracking-caps);
  color: var(--color-accent);
}
.guide__band .article-text h3 { margin-top: 1.6em; color: var(--color-bright); }
.guide__band .article-text ul, .guide__band .article-text ol { padding-left: 1.3em; }
.guide__band .article-text li::marker { color: var(--color-accent); font-weight: 800; }
.guide__band .article-text li > p { margin-bottom: 0.3em; }

.article-text__table-wrap { margin: 1.6em 0; }
.article-text__table-wrap table { display: block; min-width: 0; font-size: var(--fs-sm); }
.article-text__table-wrap thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.article-text__table-wrap tbody { display: grid; gap: 10px; }
.article-text__table-wrap tr { display: grid; padding: 6px 0; border-radius: var(--radius); background: var(--color-surface); box-shadow: inset 3px 0 0 var(--color-accent), inset 0 0 0 1px var(--color-line); }
.article-text__table-wrap th, .article-text__table-wrap td { display: block; padding: 6px 14px; border: 0; }
.article-text__table-wrap td::before { content: attr(data-label); display: block; margin-bottom: 2px; font-size: var(--fs-xs); font-weight: 800; letter-spacing: var(--tracking-caps); text-transform: uppercase; color: var(--color-accent-hover); }
@media (min-width: 768px) {
  .article-text__table-wrap { border-radius: var(--radius); box-shadow: inset 0 0 0 1px var(--color-line); }
  .article-text__table-wrap table { display: table; min-width: 560px; }
  .article-text__table-wrap thead { position: static; display: table-header-group; width: auto; height: auto; overflow: visible; clip: auto; white-space: normal; }
  .article-text__table-wrap tbody { display: table-row-group; }
  .article-text__table-wrap tr { display: table-row; padding: 0; border-radius: 0; background: none; box-shadow: none; }
  .article-text__table-wrap th, .article-text__table-wrap td { display: table-cell; padding: 0.75em 1em; border: 1px solid var(--tw-table-border); }
  .article-text__table-wrap td::before { content: none; }
  .article-text__table-wrap tbody tr:nth-child(even) td { background: rgba(34, 38, 42, 0.45); }
  .article-text__table-wrap tbody td:first-child { color: var(--color-heading); font-weight: 600; }
}

.rivals, .getapp, .screens, .lobby, .ribbon, .finale { margin-top: 44px; }
.rivals + .guide__band, .getapp + .guide__band, .lobby + .guide__band, .ribbon + .guide__band, .finale + .guide__band { border-top: 0; }

.rivals__board { display: grid; gap: 14px; }
.rivals__ref {
  position: relative;
  display: grid;
  gap: 14px;
  padding: 22px 18px 18px;
  border-radius: var(--radius-lg);
  background: linear-gradient(160deg, rgba(31, 173, 102, 0.22), rgba(34, 38, 42, 0.95) 55%);
  box-shadow: inset 0 0 0 1px rgba(31, 173, 102, 0.5), var(--shadow-card);
}
.rivals__tag { position: absolute; top: -11px; left: 18px; padding: 3px 12px; border-radius: var(--radius-pill); background: var(--color-accent); font-size: var(--fs-xs); font-style: italic; font-weight: 900; letter-spacing: var(--tracking-caps); text-transform: uppercase; color: #fff; }
.rivals__logo { width: 150px; height: auto; }
.rival__metrics { display: grid; gap: 8px; }
.rival__metric { display: grid; grid-template-columns: minmax(0, 1fr) 72px 20px; align-items: center; gap: 8px; font-size: var(--fs-xs); }
.rival__crit { min-width: 0; color: var(--color-text); }
.rival__v { font-family: var(--font-display); font-style: italic; font-weight: 900; text-align: right; color: var(--color-bright); }
.meter { position: relative; height: 6px; border-radius: 3px; background: var(--color-surface-3); overflow: hidden; }
.meter__fill { position: absolute; inset: 0; border-radius: inherit; background: #8d969f; transform-origin: left; transform: scaleX(0.5); }
.meter--hot .meter__fill { background: var(--color-accent); }
.meter[data-v="4"] .meter__fill { transform: scaleX(0.4); }
.meter[data-v="5"] .meter__fill { transform: scaleX(0.5); }
.meter[data-v="6"] .meter__fill { transform: scaleX(0.6); }
.meter[data-v="7"] .meter__fill { transform: scaleX(0.7); }
.meter[data-v="8"] .meter__fill { transform: scaleX(0.8); }
.meter[data-v="9"] .meter__fill { transform: scaleX(0.9); }
.rival__flags { display: flex; flex-wrap: wrap; gap: 6px; }
.rival__flag { display: inline-flex; align-items: center; gap: 5px; padding: 3px 9px 3px 5px; border-radius: var(--radius-pill); font-size: var(--fs-xs); font-weight: 600; }
.rival__flag .icon { width: 15px; height: 15px; }
.rival__flag--yes { background: var(--color-accent-wash); color: var(--color-heading); }
.rival__flag--yes .icon { color: var(--color-accent-hover); }
.rival__flag--no { background: rgba(184, 66, 58, 0.12); color: var(--color-text); }
.rival__flag--no .icon { color: #d9665d; }
.rivals__chips { display: flex; flex-wrap: wrap; gap: 6px; }
.rivals__chip { padding: 4px 10px; border-radius: 6px; background: rgba(11, 13, 14, 0.55); font-size: var(--fs-xs); font-weight: 700; color: var(--color-bright); }
.rivals__list {
  position: relative;
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(250px, 80%);
  gap: 12px;
  padding-bottom: 10px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scrollbar-width: thin;
  scrollbar-color: var(--color-surface-3) transparent;
}
.rival { position: relative; display: grid; gap: 12px; align-content: start; min-width: 0; padding: 16px; border-radius: var(--radius); background: var(--color-surface); box-shadow: inset 0 0 0 1px var(--color-line); scroll-snap-align: start; }
.rival__name { font-weight: 800; color: var(--color-heading); }
.rivals__note { margin: 14px 0 0; font-size: var(--fs-xs); }
.rivals__scale { color: var(--color-heading); }
@media (min-width: 768px) {
  .rivals__board { gap: 12px; }
  .rivals__ref { grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); grid-template-areas: "brand metrics" "flags metrics" "chips cta"; align-items: center; gap: 14px 28px; padding: 26px 24px 20px; }
  .rivals__brand { grid-area: brand; }
  .rivals__ref > .rival__metrics { grid-area: metrics; }
  .rivals__ref > .rival__flags { grid-area: flags; justify-content: flex-start; }
  .rivals__chips { grid-area: chips; }
  .rivals__ref > .btn { grid-area: cta; }
  .rivals__list { grid-auto-flow: row; grid-auto-columns: auto; gap: 8px; padding-bottom: 0; overflow: visible; }
  .rival { grid-template-columns: minmax(0, 1fr) auto; gap: 10px 14px; padding: 14px 16px; }
  .rival .rival__metrics { grid-column: 1 / -1; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
  .rival .rival__metric { grid-template-columns: minmax(0, 1fr) 20px; grid-template-areas: "crit v" "bar bar"; row-gap: 4px; }
  .rival .rival__crit { grid-area: crit; }
  .rival .rival__v { grid-area: v; }
  .rival .meter { grid-area: bar; }
  .rival__flags { justify-content: flex-end; }
}

.getapp {
  display: grid;
  gap: 24px;
  padding: 24px 18px;
  border-radius: var(--radius-lg);
  background:
    radial-gradient(70% 90% at 100% 100%, rgba(31, 173, 102, 0.18), transparent 70%),
    var(--color-surface);
  box-shadow: inset 0 0 0 1px var(--color-line), var(--shadow-card);
}
.getapp__in { display: grid; gap: 24px; }
.getapp__tabs { display: inline-flex; gap: 4px; padding: 4px; border-radius: var(--radius-pill); background: var(--color-bg); }
.getapp__tab { display: inline-flex; align-items: center; gap: 8px; min-height: 40px; padding: 0 16px; border-radius: var(--radius-pill); font-weight: 800; color: var(--color-text); transition: background-color var(--dur) var(--ease-enter), color var(--dur) var(--ease-enter); }
.getapp__tab:hover { color: var(--color-bright); }
.getapp__tab.is-on { background: var(--color-accent); color: #fff; }
.getapp__panels { display: grid; margin-top: 16px; }
.getapp__panel { grid-area: 1 / 1; opacity: 0; visibility: hidden; transform: translateY(6px); transition: opacity var(--dur) var(--ease-exit), transform var(--dur) var(--ease-exit), visibility 0s linear var(--dur); }
.getapp__panel.is-on { opacity: 1; visibility: visible; transform: translateY(0); transition: opacity var(--dur-slow) var(--ease-enter), transform var(--dur-slow) var(--ease-enter), visibility 0s linear 0s; }
.getapp__steps { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; counter-reset: none; }
.getapp__step { display: grid; grid-template-columns: 34px minmax(0, 1fr); align-items: start; gap: 12px; }
.getapp__n { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 10px; background: var(--color-accent-wash); font-family: var(--font-display); font-style: italic; font-weight: 900; color: var(--color-accent-hover); transform: skewX(var(--slant)); }
.getapp__st { padding-top: 5px; color: var(--color-heading); line-height: 1.5; }
.getapp__act { display: grid; justify-items: start; gap: 12px; margin-top: 20px; }
.getapp__note { display: flex; align-items: center; gap: 8px; margin: 0; font-size: var(--fs-xs); }
.getapp__note .icon { width: 16px; height: 16px; color: var(--color-accent-hover); }
.getapp__visual { position: relative; justify-self: center; width: min(100%, 270px); padding: 8px 46px; }
.getapp__mock { width: 100%; height: auto; transform: rotate(-4deg); filter: drop-shadow(0 26px 30px rgba(0, 0, 0, 0.6)); }
.mock__body { fill: #2e3439; stroke: rgba(255, 255, 255, 0.18); stroke-width: 2; }
.mock__screen { fill: var(--color-bg); }
.mock__notch { fill: #2e3439; }
.mock__banner { fill: var(--color-accent); }
.mock__peak { fill: rgba(11, 13, 14, 0.3); }
.mock__sun { fill: rgba(255, 255, 255, 0.7); }
.mock__row { fill: var(--color-surface); }
.mock__dot { fill: var(--color-surface-3); }
.mock__dot--hot { fill: var(--color-accent); }
.mock__line { fill: var(--color-heading); opacity: 0.8; }
.mock__line--dim { opacity: 0.35; }
.mock__odd { fill: var(--color-surface-2); }
.mock__cta { fill: var(--color-accent); }
.mock__cta-t { fill: #fff; opacity: 0.9; }
.getapp__badge { position: absolute; display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px 6px 8px; border-radius: var(--radius-pill); background: var(--color-bright); font-size: var(--fs-xs); font-weight: 800; color: var(--color-ink); box-shadow: 0 12px 24px -12px rgba(0, 0, 0, 0.8); }
.getapp__badge .icon { width: 16px; height: 16px; color: var(--color-accent); }
.getapp__badge--a { left: 0; top: 22%; transform: rotate(-6deg); }
.getapp__badge--b { right: 0; bottom: 18%; transform: rotate(5deg); }
@media (min-width: 900px) {
  .getapp { padding: 32px; }
  .getapp__in { grid-template-columns: minmax(0, 1fr) 270px; align-items: center; gap: 32px; }
  .getapp__visual { width: 270px; }
}

.screens__tabs { display: flex; gap: 6px; padding-bottom: 6px; overflow-x: auto; scrollbar-width: thin; scrollbar-color: var(--color-surface-3) transparent; }
.screens__tab { flex: none; min-height: 40px; padding: 9px 16px; border-radius: var(--radius-pill); background: var(--color-surface); box-shadow: inset 0 0 0 1px var(--color-line); font-size: var(--fs-sm); font-weight: 700; color: var(--color-text); transition: background-color var(--dur) var(--ease-enter), color var(--dur) var(--ease-enter), box-shadow var(--dur) var(--ease-enter); }
.screens__tab:hover { color: var(--color-bright); box-shadow: inset 0 0 0 1px var(--color-line-strong); }
.screens__tab.is-on { background: var(--color-accent); color: #fff; box-shadow: none; }
.screens__frame { margin-top: 12px; border-radius: var(--radius); overflow: hidden; background: var(--color-surface); box-shadow: inset 0 0 0 1px var(--color-line-strong), var(--shadow-card); }
.screens__bar { display: flex; gap: 6px; padding: 10px 12px; background: var(--color-surface-2); }
.screens__bar span { flex-shrink: 0; width: 9px; height: 9px; border-radius: 50%; background: var(--color-surface-3); }
.screens__bar span:first-child { background: var(--color-accent); }
.screens__stage { display: grid; }
.screens__shot { grid-area: 1 / 1; opacity: 0; visibility: hidden; transition: opacity var(--dur-slow) var(--ease-exit), visibility 0s linear var(--dur-slow); }
.screens__shot.is-on { opacity: 1; visibility: visible; transition: opacity var(--dur-slow) var(--ease-enter), visibility 0s linear 0s; }
.screens__shot img { width: 100%; height: auto; }
.screens__act { margin-top: 16px; }

.lobby__head { display: grid; gap: 16px; margin-bottom: 18px; }
.lobby__head .block-head { margin-bottom: 0; }
.lobby__tabs { display: inline-flex; justify-self: start; gap: 4px; padding: 4px; border-radius: var(--radius-pill); background: var(--color-surface); box-shadow: inset 0 0 0 1px var(--color-line); }
.lobby__tab { display: inline-flex; align-items: center; gap: 8px; min-height: 40px; padding: 0 16px; border-radius: var(--radius-pill); font-weight: 800; color: var(--color-text); transition: background-color var(--dur) var(--ease-enter), color var(--dur) var(--ease-enter); }
.lobby__tab .icon { width: 17px; height: 17px; }
.lobby__tab:hover { color: var(--color-bright); }
.lobby__tab.is-on { background: var(--color-accent); color: #fff; }
.lobby__stage { position: relative; }
.lobby__panel { position: absolute; top: 0; left: 0; right: 0; opacity: 0; visibility: hidden; transition: opacity var(--dur) var(--ease-exit), visibility 0s linear var(--dur); }
.lobby__panel.is-on { position: relative; opacity: 1; visibility: visible; transition: opacity var(--dur-slow) var(--ease-enter), visibility 0s linear 0s; }
.lobby__railwrap { position: relative; }
.lobby__rail {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: clamp(136px, 42%, 172px);
  gap: 14px;
  padding: 2px 2px 12px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-padding-inline: 2px;
  scrollbar-width: thin;
  scrollbar-color: var(--color-surface-3) transparent;
}
.lobby__prev, .lobby__next {
  flex-shrink: 0;
  position: absolute;
  top: 38%;
  z-index: 2;
  display: none;
  place-items: center;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: var(--color-bright);
  color: var(--color-ink);
  box-shadow: 0 10px 24px -10px rgba(0, 0, 0, 0.9);
  transition: background-color var(--dur) var(--ease-enter), color var(--dur) var(--ease-enter), opacity var(--dur) var(--ease-enter);
}
.lobby__prev { left: 8px; }
.lobby__next { right: 8px; }
.lobby__prev:hover, .lobby__next:hover { background: var(--color-accent); color: #fff; }
.lobby__prev:disabled, .lobby__next:disabled { opacity: 0; pointer-events: none; }
@media (min-width: 768px) {
  .lobby__prev, .lobby__next { display: grid; }
  .lobby__head { grid-template-columns: minmax(0, 1fr) auto; align-items: end; }
}

.poster { display: grid; align-content: start; gap: 8px; min-width: 0; color: var(--color-heading); scroll-snap-align: start; }
.poster__media { position: relative; display: block; border-radius: var(--radius); overflow: hidden; background: var(--color-surface); box-shadow: inset 0 0 0 1px var(--color-line-strong); border: 2px solid transparent; transition: border-color var(--dur) var(--ease-enter); }
.poster__media img { width: 100%; height: auto; }
.poster__bar {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 30px 10px 12px;
  background: linear-gradient(180deg, transparent, rgba(11, 13, 14, 0.94) 62%);
  font-family: var(--font-display);
  font-size: var(--fs-sm);
  font-style: italic;
  font-weight: 900;
  letter-spacing: var(--tracking-caps);
  text-transform: uppercase;
  color: #fff;
  transform: translateY(100%);
  transition: transform var(--dur) var(--ease-enter);
}
.poster__bar .icon { flex-shrink: 0; width: 26px; height: 26px; padding: 6px; border-radius: 50%; background: var(--color-accent); }
.poster__name { font-size: var(--fs-sm); font-weight: 700; line-height: 1.3; }
.poster:hover { color: var(--color-bright); }
.poster:hover .poster__media, .poster:focus-visible .poster__media { border-color: var(--color-accent); }
.poster:hover .poster__bar, .poster:focus-visible .poster__bar { transform: translateY(0); }
@media (hover: none) {
  .poster__bar { transform: translateY(0); }
}

.lobby__poker { display: grid; gap: 16px; }
.lobby__pokerinfo {
  display: grid;
  align-content: start;
  justify-items: start;
  gap: 10px;
  padding: 20px;
  border-radius: var(--radius-lg);
  background: linear-gradient(160deg, #2d1a1a, var(--color-surface) 60%);
  box-shadow: inset 0 0 0 1px var(--color-line);
}
.lobby__suits { font-size: 1.4rem; letter-spacing: 0.2em; color: #d9665d; }
.lobby__pokertitle { font-family: var(--font-display); font-size: var(--fs-md); font-style: italic; font-weight: 900; color: var(--color-bright); }
.lobby__pokertext { margin: 0; font-size: var(--fs-sm); }
.lobby__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
@media (min-width: 600px) {
  .lobby__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (min-width: 1024px) {
  .lobby__poker { grid-template-columns: minmax(0, 1fr) minmax(0, 520px); align-items: start; }
}

.felt {
  display: grid;
  gap: 20px;
  margin-top: 28px;
  padding: 20px;
  border-radius: var(--radius-lg);
  background:
    radial-gradient(80% 120% at 20% 0%, var(--color-felt-hi), var(--color-felt) 62%, #0a2217);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.08), inset 0 0 0 7px rgba(11, 13, 14, 0.35), var(--shadow-card);
}
.felt__copy { min-width: 0; }
.felt__suits { font-size: 1.2rem; letter-spacing: 0.25em; color: rgba(255, 255, 255, 0.5); }
.felt__title { margin-top: 4px; font-family: var(--font-display); font-size: var(--fs-lg); font-style: italic; font-weight: 900; color: #fff; }
.felt__sub { margin: 4px 0 14px; color: rgba(249, 250, 250, 0.75); }
.felt__chips { display: flex; flex-wrap: wrap; gap: 8px; }
.felt__chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 40px;
  padding: 4px 14px 4px 4px;
  border-radius: var(--radius-pill);
  background: rgba(11, 13, 14, 0.4);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.16);
  font-size: var(--fs-sm);
  font-weight: 700;
  color: #fff;
  transition: background-color var(--dur) var(--ease-enter), box-shadow var(--dur) var(--ease-enter), transform var(--dur) var(--ease-enter);
}
.felt__disc { flex-shrink: 0; display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; background: #b8423a; box-shadow: inset 0 0 0 3px rgba(255, 255, 255, 0.55); transition: transform var(--dur-slow) var(--ease-enter); }
.felt__chip:nth-child(3n + 2) .felt__disc { background: #2f5fb3; }
.felt__chip:nth-child(3n) .felt__disc { background: #222; }
.felt__disc .icon { width: 18px; height: 18px; color: #fff; }
.felt__chip:hover { transform: translateY(-2px); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4); }
.felt__chip:hover .felt__disc { transform: rotate(90deg); }
.felt__chip.is-on { background: rgba(249, 250, 250, 0.95); color: var(--color-ink); }
.felt__stage { display: grid; grid-template-columns: 128px minmax(0, 1fr); grid-template-rows: 1fr 1fr auto; gap: 6px 16px; }
.felt__frame { grid-column: 1; grid-row: 1 / 3; align-self: center; }
.felt__frame { display: grid; border-radius: var(--radius); overflow: hidden; box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.16), 0 18px 32px -16px rgba(0, 0, 0, 0.9); transform: rotate(-3deg); }
.felt__cover { grid-area: 1 / 1; width: 100%; height: auto; opacity: 0; transition: opacity var(--dur-slow) var(--ease-enter); }
.felt__cover.is-on { opacity: 1; }
.felt__now { display: contents; }
.felt__now-l { grid-column: 2; grid-row: 1; align-self: end; }
.felt__now b { grid-column: 2; grid-row: 2; align-self: start; min-width: 0; }
.felt__now .btn { grid-column: 1 / -1; grid-row: 3; justify-self: start; margin-top: 10px; }
.felt__now-l { font-size: var(--fs-xs); font-weight: 800; letter-spacing: var(--tracking-caps); text-transform: uppercase; color: rgba(249, 250, 250, 0.65); }
.felt__now b { font-family: var(--font-display); font-size: var(--fs-md); font-style: italic; font-weight: 900; color: #fff; line-height: 1.2; }
@media (min-width: 768px) {
  .felt { grid-template-columns: minmax(0, 1fr) minmax(0, 300px); align-items: center; padding: 28px; }
  .felt__stage { grid-template-columns: 150px minmax(0, 1fr); }
}

.nudge { margin-top: 36px; }
.nudge__in {
  position: relative;
  isolation: isolate;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  grid-template-areas: "dial copy" "act act";
  gap: 14px 16px;
  align-items: center;
  padding: 18px;
  overflow: hidden;
  border-radius: var(--radius-lg);
  background: linear-gradient(100deg, rgba(31, 173, 102, 0.18) 0%, var(--color-surface) 46%);
  box-shadow: inset 0 0 0 1px rgba(31, 173, 102, 0.3), var(--shadow-card);
}
.nudge__in::after {
  content: "";
  position: absolute;
  top: -30%;
  bottom: -30%;
  right: 10%;
  width: 56px;
  z-index: -1;
  background: rgba(31, 173, 102, 0.1);
  transform: skewX(var(--slant));
  pointer-events: none;
}
.nudge__dial { grid-area: dial; position: relative; display: grid; place-items: center; flex-shrink: 0; width: 64px; height: 64px; }
.nudge__ring { position: absolute; inset: 0; width: 64px; height: 64px; overflow: visible; }
.nudge__ring circle { fill: none; stroke: rgba(31, 173, 102, 0.7); stroke-width: 2; stroke-dasharray: 5 6; }
.nudge__core { display: grid; place-items: center; flex-shrink: 0; width: 46px; height: 46px; border-radius: 50%; background: var(--color-accent); color: #fff; box-shadow: 0 10px 24px -10px rgba(31, 173, 102, 0.9); transition: transform var(--dur) var(--ease-enter); }
.nudge__core .icon { width: 24px; height: 24px; }
.nudge__copy { grid-area: copy; display: grid; justify-items: start; gap: 6px; min-width: 0; }
.nudge__title { font-family: var(--font-display); font-size: var(--fs-md); font-style: italic; font-weight: 900; line-height: 1.15; color: var(--color-bright); text-wrap: balance; }
.nudge__line { margin: 0; font-size: var(--fs-sm); color: var(--color-heading); }
.nudge__act { grid-area: act; }
.nudge__in:hover .nudge__core { transform: translateY(-3px) rotate(-8deg); }
@media (min-width: 640px) {
  .nudge__in { grid-template-columns: auto minmax(0, 1fr) auto; grid-template-areas: "dial copy act"; gap: 18px 22px; padding: 20px 24px; }
}

.ribbon {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  border-radius: var(--radius-lg);
  background: linear-gradient(120deg, #15442d 0%, var(--color-surface) 58%);
  box-shadow: inset 0 0 0 1px rgba(31, 173, 102, 0.35), var(--shadow-card);
}
.ribbon::before {
  content: "";
  position: absolute;
  top: -20%;
  bottom: -20%;
  right: 18%;
  width: 80px;
  z-index: -1;
  background: rgba(31, 173, 102, 0.12);
  transform: skewX(var(--slant));
}
.ribbon__in { display: grid; gap: 18px; padding: 16px; align-items: center; }
.ribbon__art { border-radius: var(--radius); overflow: hidden; box-shadow: 0 0 0 1px var(--color-line-strong); transform: rotate(-1.5deg); }
.ribbon__art img { width: 100%; height: auto; }
.ribbon__copy { display: grid; justify-items: start; gap: 8px; padding: 0 4px 6px; }
.ribbon__title { font-family: var(--font-display); font-size: var(--fs-lg); font-style: italic; font-weight: 900; line-height: 1.15; color: var(--color-bright); }
.ribbon__line { margin: 0; }
.ribbon__act { display: flex; align-items: center; gap: 14px; margin-top: 6px; }
.ribbon__age { flex-shrink: 0; display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; box-shadow: inset 0 0 0 2px var(--color-text); font-size: var(--fs-xs); font-weight: 900; color: var(--color-heading); }
@media (min-width: 768px) {
  .ribbon__in { grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: 28px; padding: 22px; }
  .ribbon__art { max-width: 520px; }
}

.finale {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  border-radius: var(--radius-lg);
  background:
    radial-gradient(70% 100% at 100% 0%, rgba(31, 173, 102, 0.3), transparent 60%),
    linear-gradient(180deg, var(--color-surface), #15191c);
  box-shadow: inset 0 0 0 1px rgba(31, 173, 102, 0.4), var(--shadow-card);
}
.finale::after {
  content: "";
  position: absolute;
  inset: auto 0 0;
  height: 6px;
  z-index: -1;
  background: repeating-linear-gradient(-60deg, var(--color-accent) 0 14px, transparent 14px 28px);
  opacity: 0.6;
}
.finale__in { display: grid; gap: 24px; padding: 24px 18px 28px; align-items: center; }
.finale__copy { min-width: 0; }
.finale__title { margin-top: 10px; font-family: var(--font-display); font-size: var(--fs-xl); font-style: italic; font-weight: 900; line-height: 1.1; color: var(--color-bright); text-wrap: balance; }
.finale__sub { margin: 10px 0 0; color: var(--color-heading); }
.finale__figs { display: grid; grid-template-columns: minmax(0, 1fr); gap: 6px; margin-top: 20px; }
.finale__fig { display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); align-items: center; gap: 2px 12px; min-width: 0; padding: 10px 12px; border-radius: 12px; background: rgba(11, 13, 14, 0.5); box-shadow: inset 0 0 0 1px var(--color-line); }
.finale__fig b { font-family: var(--font-display); font-size: clamp(1.05rem, 0.8rem + 1.2vw, 1.6rem); font-style: italic; font-weight: 900; line-height: 1.1; color: var(--color-accent-hover); }
.finale__fig span { min-width: 0; font-size: var(--fs-xs); line-height: 1.3; color: var(--color-text); }
@media (min-width: 480px) {
  .finale__figs { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
  .finale__fig { grid-template-columns: minmax(0, 1fr); align-items: start; padding: 12px 10px; }
}
.finale__list { display: grid; gap: 8px; margin: 18px 0 0; padding: 0; list-style: none; }
.finale__li { display: flex; align-items: flex-start; gap: 10px; color: var(--color-heading); }
.finale__li .icon { flex-shrink: 0; width: 20px; height: 20px; padding: 3px; border-radius: 50%; background: var(--color-accent); color: #fff; }
.finale__act { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 22px; }
.finale__art { justify-self: center; max-width: 440px; border-radius: var(--radius); overflow: hidden; box-shadow: 0 0 0 1px var(--color-line-strong), 0 26px 44px -24px rgba(0, 0, 0, 0.95); transform: rotate(2deg); }
.finale__art img { width: 100%; height: auto; }
@media (min-width: 900px) {
  .finale__in { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 32px; padding: 36px; }
}

.faq-block .article-text h2 { margin-bottom: 18px; }
.faq-item { border-radius: var(--radius); background: var(--color-surface); box-shadow: inset 0 0 0 1px var(--color-line); transition: box-shadow var(--dur) var(--ease-enter); }
.faq-item + .faq-item { margin-top: 10px; }
.faq-item.is-open { box-shadow: inset 0 0 0 1px rgba(31, 173, 102, 0.5); }
.article-text h3.faq-item__q { margin: 0; overflow: visible; font-size: var(--fs-body); }
.faq-item__btn { display: flex; align-items: center; justify-content: space-between; gap: 14px; width: 100%; padding: 16px 18px; border-radius: var(--radius); text-align: left; font-weight: 700; line-height: 1.4; color: var(--color-bright); }
.faq-item__btn:hover { color: var(--color-accent-hover); }
.faq-item__chev { flex-shrink: 0; width: 30px; height: 30px; padding: 6px; border-radius: 50%; background: var(--color-surface-2); transition: transform var(--dur) var(--ease-toggle), background-color var(--dur) var(--ease-toggle); }
.faq-item.is-open .faq-item__chev { transform: rotate(180deg); background: var(--color-accent); color: #fff; }
.faq-item__a { max-height: 0; overflow: hidden; padding: 0 18px; transition: max-height var(--dur-slow) var(--ease-toggle), padding var(--dur-slow) var(--ease-toggle); }
.faq-item.is-open .faq-item__a { max-height: var(--faq-h, 640px); padding: 0 18px 16px; }
.article-text .faq-item__body p:last-child { margin-bottom: 0; }

.fineprint { padding-block: 40px; background: #101315; border-top: 1px solid var(--color-line); }
.fineprint__kicker { display: inline-flex; align-items: center; gap: 8px; margin-bottom: 18px; font-size: var(--fs-xs); font-style: italic; font-weight: 900; letter-spacing: var(--tracking-caps); text-transform: uppercase; color: var(--color-accent-hover); }
.fineprint__grid { display: grid; gap: 18px; }
.fineprint__item { scroll-margin-top: calc(var(--header-h) + 16px); }
.fineprint__h { font-weight: 800; color: var(--color-heading); }
.fineprint__p { margin: 6px 0 0; font-size: var(--fs-sm); line-height: 1.6; }
@media (min-width: 768px) {
  .fineprint__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 32px; }
}
@media (min-width: 1100px) {
  .fineprint__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

.colophon { padding-block: var(--footer-padding-v) 24px; background: var(--color-footer-bg); color: var(--color-footer-text); border-top: 1px solid var(--color-line); }
.colophon__grid { display: grid; gap: 28px; }
.colophon__logo { width: 150px; height: auto; }
.colophon__blurb { margin: 12px 0 0; font-size: var(--fs-sm); }
.colophon__age { display: flex; align-items: center; gap: 10px; margin: 14px 0 0; font-size: var(--fs-xs); line-height: 1.4; }
.colophon__age b { flex-shrink: 0; display: grid; place-items: center; flex: none; width: 36px; height: 36px; border-radius: 50%; box-shadow: inset 0 0 0 2px #d9665d; font-size: var(--fs-xs); font-weight: 900; color: var(--color-bright); }
.colophon__menu { display: grid; align-content: start; gap: 8px; }
.colophon__head { margin-bottom: 4px; font-size: var(--fs-xs); font-style: italic; font-weight: 900; letter-spacing: var(--tracking-caps); text-transform: uppercase; color: var(--color-bright); }
.colophon__link { justify-self: start; font-size: var(--fs-sm); color: var(--color-footer-text); }
.colophon__link:hover { color: var(--color-link-hover); }
.colophon__help { display: grid; align-content: start; gap: 10px; }
.colophon__rg { display: flex; flex-wrap: wrap; gap: 8px; }
.rg { display: inline-flex; align-items: center; justify-content: center; gap: 10px; max-width: 100%; min-height: 46px; padding: 6px 12px; border-radius: 8px; box-shadow: inset 0 0 0 1px var(--color-line-strong); transition: box-shadow var(--dur) var(--ease-enter); }
.rg img { flex-shrink: 0; width: auto; height: 32px; max-width: 128px; object-fit: contain; }
.rg__name { min-width: 0; font-size: var(--fs-xs); font-weight: 700; line-height: 1.3; text-align: left; color: var(--color-bright); }
.rg--plaque { background: var(--color-bright); }
.rg--plaque .rg__name { color: var(--color-ink); }
.rg--text { font-size: var(--fs-sm); font-weight: 700; color: var(--color-bright); }
.rg:hover { box-shadow: inset 0 0 0 2px var(--color-accent); }
.colophon__phone { display: inline-flex; align-items: center; gap: 8px; justify-self: start; font-weight: 700; color: var(--color-bright); }
.colophon__phone .icon { color: var(--color-accent-hover); }
.colophon__base { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; margin-top: 32px; padding-top: 18px; border-top: 1px solid var(--color-line); font-size: var(--fs-xs); }
.colophon--min .colophon__base { margin-top: 0; padding-top: 0; border-top: 0; }
.colophon--min .colophon__age { margin: 0; }
.colophon:not(.colophon--min) { padding-bottom: 136px; }
@media (min-width: 768px) {
  .colophon:not(.colophon--min) { padding-bottom: 24px; }
}
@media (min-width: 600px) {
  .colophon__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1024px) {
  .colophon__grid { grid-template-columns: minmax(0, 1.3fr) minmax(0, 0.8fr) minmax(0, 0.9fr) minmax(0, 1.6fr); gap: 32px; }
}

.chaser {
  position: fixed;
  left: 50%;
  bottom: 14px;
  z-index: 70;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 6px 20px 6px 6px;
  border-radius: var(--radius-pill);
  background: var(--color-accent);
  color: var(--color-on-accent);
  font-weight: 800;
  white-space: nowrap;
  box-shadow: 0 0 0 4px rgba(11, 13, 14, 0.7), 0 16px 32px -12px rgba(0, 0, 0, 0.9);
  opacity: 0;
  visibility: hidden;
  transform: translate(-50%, 18px);
  transition: opacity 0s linear, transform 0s linear, visibility 0s linear, background-color var(--dur) var(--ease-enter);
}
.chaser.is-shown { opacity: 1; visibility: visible; transform: translate(-50%, 0); transition: opacity var(--dur-slow) var(--ease-enter), transform var(--dur-slow) var(--ease-enter), visibility 0s linear 0s, background-color var(--dur) var(--ease-enter); }
.chaser:hover { background: var(--color-accent-hover); color: var(--color-on-accent); }
.chaser__icon { flex-shrink: 0; display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: #fff; color: var(--color-accent); transition: transform var(--dur) var(--ease-enter); }
.chaser:hover .chaser__icon { transform: rotate(-14deg); }
.ascend {
  flex-shrink: 0;
  position: fixed;
  right: 14px;
  bottom: 80px;
  z-index: 70;
  display: grid;
  place-items: center;
  width: 46px;
  height: 46px;
  border-radius: 50%;
  background: var(--color-surface-2);
  color: var(--color-bright);
  box-shadow: inset 0 0 0 1px var(--color-line-strong), 0 14px 28px -12px rgba(0, 0, 0, 0.9);
  opacity: 0;
  visibility: hidden;
  transform: translateY(14px);
  transition: opacity 0s linear, transform 0s linear, visibility 0s linear, background-color var(--dur) var(--ease-enter);
}
.ascend.is-shown { opacity: 1; visibility: visible; transform: translateY(0); transition: opacity var(--dur-slow) var(--ease-enter), transform var(--dur-slow) var(--ease-enter), visibility 0s linear 0s; }
.ascend:hover { background: var(--color-accent); color: #fff; }
@media (min-width: 768px) {
  .chaser { left: auto; right: 24px; bottom: 24px; transform: translateY(18px); }
  .chaser.is-shown { transform: translateY(0); }
  .ascend { right: 24px; bottom: 96px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
