/* ============================================================
   Отдел обучения сервиса · статус, сентябрь 2026
   Два мира: тёмное золото (обучение) и светлая пастель (чемпионат)
   ============================================================ */

@font-face { font-family: 'Styrene A'; src: url('../assets/fonts/StyreneALC-Light.woff2') format('woff2'); font-weight: 300; font-display: swap; }
@font-face { font-family: 'Styrene A'; src: url('../assets/fonts/StyreneALC-Regular.woff2') format('woff2'); font-weight: 400; font-display: swap; }
@font-face { font-family: 'Styrene A'; src: url('../assets/fonts/StyreneALC-Medium.woff2') format('woff2'); font-weight: 500; font-display: swap; }
@font-face { font-family: 'Styrene A'; src: url('../assets/fonts/StyreneALC-Bold.woff2') format('woff2'); font-weight: 700; font-display: swap; }
@font-face { font-family: 'Styrene A'; src: url('../assets/fonts/StyreneALC-Black.woff2') format('woff2'); font-weight: 900; font-display: swap; }
@font-face { font-family: 'Styrene B'; src: url('../assets/fonts/StyreneBLC-Regular.woff2') format('woff2'); font-weight: 400; font-display: swap; }
@font-face { font-family: 'Styrene B'; src: url('../assets/fonts/StyreneBLC-Medium.woff2') format('woff2'); font-weight: 500; font-display: swap; }
@font-face { font-family: 'Styrene B'; src: url('../assets/fonts/StyreneBLC-Bold.woff2') format('woff2'); font-weight: 700; font-display: swap; }   /* ревью T-04: без него браузер рисовал искусственный полужирный */
@font-face { font-family: 'Styrene Fallback'; src: local('Arial'); size-adjust: 104%; }   /* ревью T-08: запасной шрифт по размеру близок к Styrene */

:root {
  /* dark world */
  --d-bg0: #0A0D12; --d-bg1: #10141B; --d-bg2: #171C25; --d-bg3: #202831;
  --d-panel: #171523; --d-card: #232030; --d-card2: #2A2738;
  --d-ink: #EFE9DC; --d-ink2: #B9B3A6; --d-muted: #8195B0;
  --gold1: #A78861; --gold2: #C1A173; --gold3: #FFDFA2; --gold4: #E8C98F;
  --plate1: #F4DBB1; --plate2: #DABD9C; --plate3: #B98D6E;
  --teal: #5CB5A7; --red: #EF3124;
  --gold-grad: linear-gradient(100deg, #A78861 0%, #C1A173 30%, #FFDFA2 62%, #D4B27C 100%);
  --plate-grad: linear-gradient(135deg, #F4DBB1 0%, #DABD9C 55%, #B98D6E 100%);
  /* light world */
  --l-bg: #F6F4FB; --l-ink: #201A24; --l-ink2: #5B5566; --alfa: #EF3124; --alfa-dark: #C81E12;
  --peach: #FFE3D3; --mint: #D8F5E6; --sky: #D9E9FF; --lilac: #ECE0FF; --lemon: #FFF3CF; --lgold: #FFC244;
  --glass: rgba(255,255,255,.58); --glass-b: rgba(255,255,255,.78);
  --r-xl: 32px; --r-lg: 24px; --r-md: 16px; --r-sm: 10px;
  --wrap: 1480px; --gutter: clamp(20px, 4vw, 72px);
  --ease: cubic-bezier(.22,.61,.36,1);
  --hdr: 72px;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: auto; -webkit-text-size-adjust: 100%; }
html, body { margin: 0; }
body {
  font-family: 'Styrene A', 'Styrene Fallback', system-ui, sans-serif;
  font-weight: 400; line-height: 1.35; color: var(--d-ink);
  background: var(--d-bg0);
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility;
  transition: background-color .6s var(--ease), color .6s var(--ease);
}
html[data-theme="light"] body { background: var(--l-bg); color: var(--l-ink); }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
button { font: inherit; cursor: pointer; border: 0; background: none; color: inherit; }
::selection { background: rgba(255,223,162,.35); color: #111; }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }

/* ---------- Типографика ---------- */
.eyebrow { font-family: 'Styrene B', 'Styrene A', sans-serif; font-size: 12px; letter-spacing: .18em; text-transform: uppercase; color: var(--d-muted); display: flex; gap: 14px; align-items: center; }
.eyebrow::before { content: ''; width: 34px; height: 1px; background: var(--gold-grad); }
.eyebrow.no-line::before { display: none; }
.h1 { font-weight: 700; font-size: clamp(42px, 6.4vw, 104px); line-height: .98; letter-spacing: -.02em; margin: 0; text-transform: uppercase; }
.h2 { font-weight: 700; font-size: clamp(28px, 3vw, 48px); line-height: 1.06; letter-spacing: -.018em; margin: 0; max-width: 24ch; }
.h2 b { font-weight: inherit; }
.lead { font-size: clamp(16px, 1.25vw, 20px); line-height: 1.45; max-width: 58ch; color: var(--d-ink2); margin: 0; }
.gold { background: var(--gold-grad); -webkit-background-clip: text; background-clip: text; color: transparent; }
.teal { color: var(--teal); }
.num { font-weight: 500; font-variant-numeric: tabular-nums; letter-spacing: -.03em; line-height: .9; }
.num small, .num .unit { font-size: .34em; font-weight: 400; letter-spacing: 0; margin-left: .18em; color: var(--d-ink2); vertical-align: baseline; }
.cap { font-family: 'Styrene B', sans-serif; font-size: 12.5px; color: var(--d-muted); line-height: 1.4; }
.src { font-family: 'Styrene B', sans-serif; font-size: 11.5px; color: var(--d-muted); opacity: .8; margin-top: 28px; }
.up { text-transform: uppercase; letter-spacing: .06em; }

/* ---------- Каркас ---------- */
.wrap { width: min(var(--wrap), 100% - var(--gutter) * 2); margin-inline: auto; position: relative; }
.sec { position: relative; min-height: 100vh; display: flex; align-items: center; padding: calc(var(--hdr) + 40px) 0 96px; overflow: hidden; isolation: isolate; }
.sec > .wrap { z-index: 2; }
.sec-head { display: grid; gap: 12px; margin-bottom: clamp(22px, 3.2vh, 40px); }
.split { display: grid; grid-template-columns: minmax(0, 62fr) minmax(0, 38fr); gap: clamp(24px, 3vw, 56px); align-items: end; }
.split.rev { grid-template-columns: minmax(0, 38fr) minmax(0, 62fr); }

/* ---------- Тёмный мир ---------- */
.sec--dark { color: var(--d-ink); background: radial-gradient(120% 80% at 80% 110%, #1C2230 0%, var(--d-bg1) 45%, var(--d-bg0) 100%); }
.sec--dark::before { content: ''; position: absolute; inset: 0; background: radial-gradient(60% 50% at 18% 20%, rgba(255,223,162,.075), transparent 60%), radial-gradient(50% 40% at 85% 25%, rgba(92,181,167,.05), transparent 60%); pointer-events: none; z-index: 0; }
.sec--dark .grain { position: absolute; inset: 0; z-index: 0; opacity: .22; pointer-events: none; background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1 0 0 0 0 .9 0 0 0 0 .7 0 0 0 .08 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>"); }

.panel { position: relative; border-radius: var(--r-lg); background: linear-gradient(var(--d-panel), var(--d-panel)) padding-box, linear-gradient(135deg, rgba(255,223,162,.55), rgba(255,223,162,.10) 38%, rgba(255,223,162,0) 62%, rgba(255,223,162,.35)) border-box; border: 1px solid transparent; box-shadow: 0 30px 80px rgba(0,0,0,.45), inset 0 1px 0 rgba(255,255,255,.04); padding: clamp(20px, 2.2vw, 34px); }
.card { position: relative; border-radius: var(--r-md); background: var(--d-card); padding: 20px 22px; border: 1px solid rgba(129,149,176,.10); overflow: hidden; }
.card--gold { background: var(--plate-grad); color: #1c1608; border-color: transparent; }
.card--gold .cap, .card--gold .num small { color: #4a3b1f; }
.card--glass { background: rgba(129,149,176,.08); border-color: rgba(129,149,176,.16); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); }
.card--red::before { content: ''; position: absolute; left: 0; top: 14px; bottom: 14px; width: 3px; border-radius: 3px; background: var(--red); }
.hair { height: 1px; background: linear-gradient(90deg, transparent, rgba(255,223,162,.45), transparent); }
.icon3d { position: absolute; right: -6px; bottom: -8px; height: 62%; max-height: 120px; width: auto; filter: drop-shadow(0 18px 24px rgba(0,0,0,.45)); pointer-events: none; }

.hero-fig { position: absolute; bottom: 0; right: 0; z-index: 1; pointer-events: none; height: min(96vh, 1080px); width: auto; filter: drop-shadow(0 40px 60px rgba(0,0,0,.5)); will-change: transform; }
.hero-fig img { height: 100%; width: auto; }
.hero-fig::after { content: ''; position: absolute; left: 10%; right: 10%; bottom: -2%; height: 12%; background: radial-gradient(50% 50% at 50% 50%, rgba(255,223,162,.35), transparent 70%); filter: blur(14px); }

/* ---------- Шапка, прогресс, боковая навигация ---------- */
.hdr { position: fixed; top: 0; left: 0; right: 0; height: var(--hdr); z-index: 90; display: flex; align-items: center; justify-content: space-between; padding: 0 var(--gutter); gap: 20px; backdrop-filter: blur(16px) saturate(140%); -webkit-backdrop-filter: blur(16px) saturate(140%); background: linear-gradient(rgba(10,13,18,.72), rgba(10,13,18,.35)); border-bottom: 1px solid rgba(255,223,162,.10); transition: background .6s var(--ease), border-color .6s var(--ease); }
html[data-theme="light"] .hdr { background: linear-gradient(rgba(246,244,251,.78), rgba(246,244,251,.42)); border-bottom-color: rgba(32,26,36,.08); }
.hdr__brand { display: grid; line-height: 1.1; }
.hdr__brand b { font-weight: 500; font-size: 14px; letter-spacing: .02em; }
.hdr__brand span { font-family: 'Styrene B', sans-serif; font-size: 11.5px; letter-spacing: .12em; text-transform: uppercase; color: var(--d-muted); }
.hdr__tools { display: flex; align-items: center; gap: 10px; }
.tgl { display: inline-flex; align-items: center; gap: 8px; height: 34px; padding: 0 12px 0 10px; border-radius: 999px; border: 1px solid rgba(255,223,162,.22); font-family: 'Styrene B', sans-serif; font-size: 12px; letter-spacing: .04em; color: var(--d-ink2); background: rgba(255,255,255,.03); transition: all .25s; white-space: nowrap; }
.tgl i { width: 26px; height: 14px; border-radius: 999px; background: rgba(129,149,176,.35); position: relative; transition: background .25s; }
.tgl i::after { content: ''; position: absolute; top: 2px; left: 2px; width: 10px; height: 10px; border-radius: 50%; background: #fff; transition: transform .25s; }
.tgl[aria-pressed="true"] { border-color: rgba(255,223,162,.6); color: var(--gold3); }
.tgl[aria-pressed="true"] i { background: var(--gold2); }
.tgl[aria-pressed="true"] i::after { transform: translateX(12px); }
html[data-theme="light"] .tgl { border-color: rgba(32,26,36,.16); color: var(--l-ink2); background: rgba(255,255,255,.5); }
html[data-theme="light"] .tgl[aria-pressed="true"] { border-color: var(--alfa); color: var(--alfa-dark); }
html[data-theme="light"] .tgl[aria-pressed="true"] i { background: var(--alfa); }
.hdr__logo { height: 30px; width: auto; margin-left: 10px; }
.hdr__logo--light { display: none; }
html[data-theme="light"] .hdr__logo--dark { display: none; }
html[data-theme="light"] .hdr__logo--light { display: block; }
.progress { position: fixed; top: 0; left: 0; height: 2px; width: 100%; z-index: 95; transform-origin: 0 50%; transform: scaleX(0); background: var(--gold-grad); }
html[data-theme="light"] .progress { background: linear-gradient(90deg, var(--alfa), #ff8a7a); }

.snav { position: fixed; right: 18px; top: 50%; transform: translateY(-50%); z-index: 90; display: grid; gap: 8px; }
.snav a { position: relative; display: block; width: 22px; height: 12px; }
.snav a::before { content: ''; position: absolute; right: 0; top: 4px; width: 6px; height: 6px; border-radius: 50%; background: rgba(255,223,162,.35); transition: all .3s; }
.snav a.is-active::before { width: 18px; border-radius: 4px; background: var(--gold-grad); }
.snav a span { position: absolute; right: 30px; top: -3px; white-space: nowrap; font-family: 'Styrene B', sans-serif; font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--d-ink2); opacity: 0; transform: translateX(6px); transition: all .25s; pointer-events: none; background: rgba(10,13,18,.7); padding: 3px 8px; border-radius: 6px; }
.snav a:hover span, .snav a.is-active span { opacity: 1; transform: none; }
.snav a.is-active span { opacity: .0; }
.snav a:hover span { opacity: 1; }
.snav a.lt::before { background: rgba(239,49,36,.35); }
.snav a.lt.is-active::before { background: linear-gradient(90deg, var(--alfa), #ff8a7a); }
html[data-theme="light"] .snav a span { background: rgba(255,255,255,.85); color: var(--l-ink2); }

.kbd-hint { position: fixed; right: var(--gutter); bottom: 18px; z-index: 90; font-family: 'Styrene B', sans-serif; font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--d-muted); opacity: .8; display: flex; gap: 10px; align-items: center; }
.kbd-hint kbd { font: inherit; border: 1px solid rgba(129,149,176,.35); border-radius: 5px; padding: 2px 6px; }
html[data-theme="light"] .kbd-hint { color: var(--l-ink2); }

/* ---------- Обложка (тёмная) ---------- */
.cover { padding-top: var(--hdr); }
.cover canvas { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 1; pointer-events: none; }
.cover .bgimg { position: absolute; inset: 0; z-index: 0; background: url('../assets/dark/bg/322_bg_siv_neutral_dark_glow.webp') center/cover no-repeat; opacity: .9; }
.cover .bgimg::after { content: ''; position: absolute; inset: 0; background: radial-gradient(70% 90% at 78% 60%, rgba(255,200,120,.10), transparent 60%), linear-gradient(180deg, rgba(10,13,18,.2), rgba(10,13,18,.65)); }
.cover .wrap { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); align-items: center; min-height: calc(100vh - var(--hdr)); }
.cover__txt { display: grid; gap: 26px; padding-bottom: 8vh; }
.cover__title { font-size: clamp(46px, 7.2vw, 120px); }
.cover__title .ln { display: block; overflow: hidden; }
.cover__title .ln > span { display: block; will-change: transform; }
.cover__sub { max-width: 52ch; font-size: clamp(16px, 1.3vw, 21px); }
.cover__meta { display: flex; gap: 28px; flex-wrap: wrap; }
.cover__meta div { display: grid; gap: 4px; }
.cover__meta .num { font-size: clamp(30px, 3vw, 46px); }
.cover__meta .cap { letter-spacing: .06em; text-transform: uppercase; }
.cover .hero-fig { right: -2%; height: min(102vh, 1150px); }
.cover .hero-fig img { transform: none; }
.scroll-cue { position: absolute; left: 50%; bottom: 26px; transform: translateX(-50%); z-index: 3; display: grid; justify-items: center; gap: 8px; color: var(--d-muted); font-family: 'Styrene B', sans-serif; font-size: 11px; letter-spacing: .16em; text-transform: uppercase; }
.scroll-cue i { width: 1px; height: 46px; background: linear-gradient(var(--gold3), transparent); animation: cue 1.8s var(--ease) infinite; transform-origin: top; }
@keyframes cue { 0% { transform: scaleY(0); opacity: 0 } 30% { opacity: 1 } 100% { transform: scaleY(1); opacity: 0 } }

/* ---------- Год в цифрах ---------- */
.year .split { align-items: stretch; }
.bignum { display: grid; gap: 14px; align-content: end; height: 100%; }
.bignum .num { font-size: clamp(70px, 8.4vw, 150px); }
.bignum .lead { max-width: 40ch; }
.spark { display: flex; align-items: flex-end; gap: 6px; height: 104px; margin-top: 6px; }
.spark div { flex: 1; display: grid; grid-template-rows: auto minmax(0, 1fr) auto; gap: 6px; height: 100%; }
.spark i { display: block; align-self: end; border-radius: 4px 4px 2px 2px; background: linear-gradient(180deg, var(--gold3), var(--gold1)); height: var(--h); transform-origin: bottom; box-shadow: 0 0 20px rgba(255,223,162,.15); }
.spark b { font-family: 'Styrene B', sans-serif; font-weight: 400; font-size: 10.5px; color: var(--d-muted); text-align: center; text-transform: uppercase; letter-spacing: .06em; }
.spark div .v { font-size: 12px; color: var(--gold4); text-align: center; font-variant-numeric: tabular-nums; }
.stat-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.stat { min-height: 150px; display: grid; align-content: end; gap: 6px; padding-right: 44%; }
.stat .num { font-size: clamp(38px, 3.6vw, 60px); }
.stat .unit { display: block; font-size: 14px; color: var(--d-ink); margin-top: 8px; font-weight: 500; }
.stat .cap { margin-top: 2px; }
.stat .icon3d { width: 34%; height: auto; max-height: none; right: 5%; bottom: 12px; }
.tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 18px; }
.tag { font-family: 'Styrene B', sans-serif; font-size: 12px; padding: 6px 11px; border-radius: 999px; border: 1px solid rgba(255,223,162,.22); color: var(--d-ink2); }
.tag b { font-weight: 500; color: var(--gold4); margin-left: 6px; }

/* ---------- Курсы: полосы ---------- */
.bars { display: grid; gap: 10px; }
.bar-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 16px; }
.bar-row .name { font-weight: 500; font-size: clamp(14px, 1.05vw, 17px); display: flex; justify-content: space-between; gap: 12px; align-items: baseline; }
.bar-row .name small { font-family: 'Styrene B', sans-serif; font-weight: 400; color: var(--d-muted); font-size: 12px; white-space: nowrap; }
.bar-row .track { position: relative; height: 26px; border-radius: 7px; background: rgba(129,149,176,.10); overflow: hidden; margin-top: 6px; }
.bar-row .fill { position: absolute; inset: 0 auto 0 0; width: var(--w); border-radius: 8px; background: var(--plate-grad); transform-origin: left; box-shadow: 0 0 30px rgba(255,223,162,.12); }
.bar-row .fill::after { content: ''; position: absolute; inset: 0; background: linear-gradient(110deg, transparent 20%, rgba(255,255,255,.35) 45%, transparent 60%); transform: translateX(-120%); animation: sheen 3.6s var(--ease) infinite; }
@keyframes sheen { 0% { transform: translateX(-120%) } 60%, 100% { transform: translateX(140%) } }
.bar-row .val { display: grid; justify-items: end; gap: 2px; min-width: 96px; }
.bar-row .val .num { font-size: clamp(22px, 1.8vw, 28px); }
.bar-row .val .cap { text-align: right; }
.bar-row .pct { font-family: 'Styrene B', sans-serif; font-size: 12px; color: var(--gold4); }
.growth { display: grid; gap: 10px; }
.courses .split { align-items: end; }
.courses .hero-fig { right: -2%; height: min(92vh, 1000px); }
.growth .rows { display: grid; gap: 8px; margin-top: 8px; }
.growth .rows div { display: grid; grid-template-columns: 1fr auto auto; gap: 12px; font-family: 'Styrene B', sans-serif; font-size: 13px; color: var(--d-ink2); }
.growth .rows b { color: var(--red); font-weight: 500; }
.now-list { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin-top: 12px; }
.now-list .card { display: grid; grid-template-columns: 1fr; grid-template-rows: 1fr auto; gap: 10px; padding: 12px 14px; min-height: 96px; }
.now-list .n { font-weight: 500; font-size: 13.5px; line-height: 1.25; }
.now-list .m { font-family: 'Styrene B', sans-serif; font-size: 11.5px; color: var(--d-muted); margin-top: 2px; }
.now-list .v { font-size: 24px; font-weight: 500; font-variant-numeric: tabular-nums; text-align: left; line-height: 1; align-self: end; display: grid; gap: 4px; }
.now-list .v small { display: block; font-family: 'Styrene B', sans-serif; font-weight: 400; font-size: 11.5px; color: var(--d-muted); line-height: 1.2; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* ---------- AI-тренажёры: чипы ---------- */
.chips { display: grid; grid-template-columns: repeat(12, 1fr); gap: 12px; }
.chip { position: relative; border-radius: 14px; background: linear-gradient(160deg, rgba(92,181,167,.12), rgba(92,181,167,.03)); border: 1px solid rgba(92,181,167,.28); padding: 12px 14px; display: grid; align-content: space-between; gap: 8px; min-height: 98px; overflow: hidden; }
.chip::before { content: ''; position: absolute; inset: 0; background: repeating-linear-gradient(90deg, rgba(92,181,167,.08) 0 1px, transparent 1px 22px), repeating-linear-gradient(0deg, rgba(92,181,167,.06) 0 1px, transparent 1px 22px); mask-image: radial-gradient(80% 80% at 100% 0%, #000, transparent); pointer-events: none; }
.chip .name { font-weight: 500; font-size: 14.5px; line-height: 1.25; position: relative; }
.chip .row { display: flex; justify-content: space-between; align-items: end; gap: 10px; position: relative; }
.chip .num { font-size: 28px; }
.chip .pct { font-size: 20px; font-weight: 500; color: var(--teal); font-variant-numeric: tabular-nums; text-align: right; }
.chip .pct small { font-size: 11px; color: var(--d-muted); display: block; font-weight: 400; font-family: 'Styrene B', sans-serif; }
.chip--lead { grid-column: span 6; grid-row: span 2; min-height: 208px; background: linear-gradient(160deg, rgba(92,181,167,.20), rgba(92,181,167,.04)); padding: 18px 20px; }
.chip--lead .name { font-size: clamp(20px, 1.7vw, 28px); font-weight: 700; max-width: 16ch; }
.chip--lead .num { font-size: clamp(56px, 5vw, 84px); }
.chip--lead .pct { font-size: 34px; }
.chip--sm { grid-column: span 3; }
.chip--wide { grid-column: span 4; }
.chip--live { border-style: dashed; }
.chip--live .num { color: var(--gold4); }
.chip .bar { height: 5px; border-radius: 3px; background: rgba(92,181,167,.16); overflow: hidden; position: relative; }
.chip .bar i { display: block; height: 100%; width: var(--w); background: var(--teal); transform-origin: left; box-shadow: 0 0 12px rgba(92,181,167,.6); }
.chip--live .bar i { background: var(--gold-grad); }
.ai .hero-fig { left: -6%; right: auto; height: min(92vh, 1000px); }
.ai .split.rev { grid-template-columns: minmax(0, 30fr) minmax(0, 70fr); }
.ai .hero-fig img { transform: scaleX(-1); }

/* ---------- Голосовые тренажёры: кольцо ---------- */
.ring-wrap { display: grid; grid-template-columns: auto 1fr; gap: 28px; align-items: center; }
.ring { position: relative; width: clamp(190px, 18vw, 260px); aspect-ratio: 1; }
.ring svg { width: 100%; height: 100%; transform: rotate(-90deg); }
.ring circle { fill: none; stroke-width: 10; stroke-linecap: round; }
.ring .bgc { stroke: rgba(129,149,176,.14); }
.ring .fgc { stroke: url(#ringGold); }
.ring .lbl { position: absolute; inset: 0; display: grid; place-content: center; text-align: center; }
.ring .lbl .num { font-size: clamp(42px, 4vw, 62px); }
.ring .lbl .cap { margin-top: 6px; }
.voice-facts { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.voice-facts .card { min-height: 112px; display: grid; align-content: end; gap: 4px; }
.voice-facts .num { font-size: clamp(30px, 2.8vw, 44px); }
.voice-facts .card--red .num { color: #ff8c7c; }
.dirs { display: flex; gap: 6px; margin-top: 6px; }
.dirs span { font-family: 'Styrene B', sans-serif; font-size: 12px; padding: 4px 9px; border-radius: 6px; background: rgba(129,149,176,.12); color: var(--d-ink2); }
.dirs span b { color: var(--gold4); font-weight: 500; }
.voice .hero-fig { height: min(94vh, 1040px); right: -3%; }

/* ---------- Ежеквартальные тесты: удар ---------- */
.punch { display: grid; gap: 12px; }
.punch .num { font-size: clamp(88px, 12vw, 210px); line-height: .86; }
.punch .lead { font-size: clamp(18px, 1.6vw, 26px); color: var(--d-ink); max-width: 24ch; }
.facts { display: grid; gap: 10px; }
.facts li { list-style: none; display: grid; grid-template-columns: 22px 1fr; gap: 12px; align-items: start; font-size: 15.5px; line-height: 1.4; color: var(--d-ink2); }
.facts li::before { content: ''; width: 10px; height: 10px; margin-top: 6px; border-radius: 50%; background: var(--gold-grad); box-shadow: 0 0 14px rgba(255,223,162,.5); }
.facts ul { padding: 0; margin: 0; display: contents; }
.qgrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.qgrid .card { display: grid; gap: 4px; align-content: end; min-height: 110px; }
.qgrid .num { font-size: clamp(32px, 3vw, 46px); }
.qbars { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; align-items: end; height: 110px; margin-top: 10px; }
.qbars div { display: grid; grid-template-rows: auto minmax(0, 1fr) auto; gap: 6px; height: 100%; text-align: center; }
.qbars i { display: block; align-self: end; height: var(--h); border-radius: 6px 6px 3px 3px; background: linear-gradient(180deg, var(--gold3), var(--gold1)); transform-origin: bottom; }
.qbars b { font-weight: 500; font-size: 13px; color: var(--gold4); }
.qbars span { font-family: 'Styrene B', sans-serif; font-size: 11px; color: var(--d-muted); text-transform: uppercase; letter-spacing: .08em; }
.quarterly .hero-fig { height: min(94vh, 1040px); right: -4%; }

/* ---------- Проекты: таймлайн ---------- */
.tl { position: relative; padding-top: 54px; }
.tl__line { position: absolute; left: 0; right: 0; top: 30px; height: 1px; background: rgba(129,149,176,.22); }
.tl__fill { position: absolute; left: 0; top: 30px; height: 1px; width: 0; background: var(--gold-grad); box-shadow: 0 0 14px rgba(255,223,162,.6); }
.tl__runner { position: absolute; top: 30px; left: 0; width: 14px; height: 14px; border-radius: 50%; background: var(--gold3); transform: translate(-50%, -50%); box-shadow: 0 0 0 6px rgba(255,223,162,.15), 0 0 24px rgba(255,223,162,.7); }
.tl__items { display: grid; grid-template-columns: repeat(7, 1fr); gap: 12px; }
.tl__item { position: relative; display: grid; gap: 10px; align-content: start; }
.tl__item::before { content: ''; position: absolute; top: -32px; left: 10px; width: 8px; height: 8px; border-radius: 50%; background: var(--d-bg0); border: 2px solid var(--gold2); box-shadow: 0 0 0 4px rgba(10,13,18,1); }
.tl__item .d { font-family: 'Styrene B', sans-serif; font-size: 11.5px; letter-spacing: .1em; text-transform: uppercase; color: var(--gold4); padding-left: 10px; }
.tl__item .card { min-height: 190px; display: grid; align-content: start; gap: 8px; padding: 16px; }
.tl__item .t { font-weight: 700; font-size: 14.5px; line-height: 1.25; }
.tl__item .b { font-family: 'Styrene B', sans-serif; font-size: 12.5px; color: var(--d-ink2); line-height: 1.4; }
.tl__item .s { justify-self: start; font-family: 'Styrene B', sans-serif; font-size: 10.5px; letter-spacing: .1em; text-transform: uppercase; padding: 3px 8px; border-radius: 999px; border: 1px solid rgba(129,149,176,.3); color: var(--d-muted); margin-bottom: 2px; }
.tl__item.pilot .s { border-color: rgba(255,223,162,.5); color: var(--gold4); }
.tl__item.done .s { border-color: rgba(92,181,167,.5); color: var(--teal); }
.tl__item.pilot .card { background: linear-gradient(160deg, rgba(255,223,162,.12), var(--d-card) 60%); }
.projects .hero-fig { height: min(50vh, 470px); right: 0; bottom: auto; top: calc(var(--hdr) + 6px); opacity: .95; }

/* ---------- Каналы: телефоны ---------- */
.channels .wrap { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 40px; align-items: center; }
.phones { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; align-items: end; width: min(100%, 560px); justify-self: end; }
.phone { position: relative; border-radius: 36px; background: #0b0e14; border: 1px solid rgba(255,223,162,.25); box-shadow: 0 40px 80px rgba(0,0,0,.6), inset 0 0 0 6px #14181f; aspect-ratio: 9 / 17; padding: 22px 16px; overflow: hidden; }
.phone::before { content: ''; position: absolute; top: 12px; left: 50%; width: 90px; height: 22px; transform: translateX(-50%); border-radius: 12px; background: #000; }
.phone:nth-child(2) { transform: translateY(40px); }
.phone .screen { position: absolute; inset: 8px; border-radius: 34px; background: linear-gradient(180deg, #1a1f29, #0e1117); padding: 44px 18px 18px; display: grid; align-content: start; gap: 12px; }
.phone .ch { display: flex; align-items: center; gap: 10px; font-weight: 500; font-size: 13px; }
.phone .ch i { width: 30px; height: 30px; border-radius: 50%; background: var(--plate-grad); display: grid; place-items: center; color: #1c1608; font-weight: 700; font-size: 13px; }
.phone .post { border-radius: 14px; background: rgba(129,149,176,.10); padding: 12px; display: grid; gap: 8px; font-family: 'Styrene B', sans-serif; font-size: 11.5px; color: var(--d-ink2); }
.phone .post .l { display: grid; gap: 5px; }
.phone .post .l i { display: block; height: 6px; border-radius: 3px; background: rgba(255,255,255,.08); width: var(--w, 100%); }
.phone .er { display: grid; gap: 2px; margin-top: auto; }
.phone .er .num { font-size: 46px; }
.phone .er .cap { text-transform: uppercase; letter-spacing: .1em; }
.phone .next { border-radius: 12px; border: 1px dashed rgba(255,223,162,.35); padding: 10px; font-family: 'Styrene B', sans-serif; font-size: 11px; color: var(--gold4); line-height: 1.35; }

/* ---------- ПОРТАЛ ---------- */
.portal { position: relative; height: 320vh; background: var(--d-bg0); }
.portal__stage { position: sticky; top: 0; height: 100vh; overflow: hidden; }
.portal__gate { position: absolute; inset: 0; will-change: transform; transform-origin: 50% 60%; }
.portal__gate img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 45%; }
.portal__txt .eyebrow { color: var(--gold4); }
.portal__vign { position: absolute; inset: 0; background: radial-gradient(60% 60% at 50% 45%, transparent 30%, rgba(10,13,18,.75) 100%); pointer-events: none; }
.portal__txt { position: absolute; left: 0; right: 0; top: 14vh; text-align: center; display: grid; gap: 12px; justify-items: center; padding: 0 var(--gutter); }
.portal__txt .h2 { max-width: 26ch; text-align: center; filter: drop-shadow(0 3px 6px rgba(0,0,0,.9)) drop-shadow(0 12px 40px rgba(0,0,0,.7)); }
.portal__txt::before { content: ''; position: absolute; left: 50%; top: 50%; width: 120%; height: 220%; transform: translate(-50%, -50%); background: radial-gradient(50% 50% at 50% 50%, rgba(10,13,18,.75), rgba(10,13,18,0) 70%); z-index: -1; pointer-events: none; }
.portal__txt { z-index: 1; }
.portal__hint { position: absolute; left: 0; right: 0; bottom: 8vh; text-align: center; font-family: 'Styrene B', sans-serif; font-size: 11px; letter-spacing: .18em; text-transform: uppercase; color: var(--d-muted); }
.portal__light { position: absolute; inset: 0; background: radial-gradient(50% 50% at 50% 45%, #fff 0%, #FFE3D3 30%, #ECE0FF 60%, #F6F4FB 100%); opacity: 0; pointer-events: none; }
.flash { position: fixed; inset: 0; background: #fff; opacity: 0; pointer-events: none; z-index: 80; }

/* ---------- СВЕТЛЫЙ МИР ---------- */
.sec--light { color: var(--l-ink); background: var(--l-bg); }
.sec--light .eyebrow { color: var(--l-ink2); }
.sec--light .eyebrow::before { background: var(--alfa); }
.sec--light .lead { color: var(--l-ink2); }
.sec--light .cap, .sec--light .src { color: var(--l-ink2); }
.sec--light .num small, .sec--light .num .unit { color: var(--l-ink2); }
.sec--light .h2 { letter-spacing: -.02em; }
.pastel { position: absolute; inset: 0; z-index: 0; overflow: hidden; background: linear-gradient(160deg, #FBF7FF 0%, #F6F4FB 50%, #FFF6F0 100%); }
.pastel i { position: absolute; border-radius: 50%; filter: blur(70px); opacity: .85; mix-blend-mode: multiply; will-change: transform; }
.pastel i:nth-child(1) { width: 46vw; height: 46vw; left: -10vw; top: -14vw; background: var(--peach); }
.pastel i:nth-child(2) { width: 40vw; height: 40vw; right: -8vw; top: 10vh; background: var(--lilac); }
.pastel i:nth-child(3) { width: 36vw; height: 36vw; left: 30vw; bottom: -18vw; background: var(--sky); }
.pastel i:nth-child(4) { width: 28vw; height: 28vw; right: 20vw; bottom: -10vw; background: var(--mint); }
.pastel i:nth-child(5) { width: 22vw; height: 22vw; left: 6vw; bottom: 8vh; background: var(--lemon); }
.glass { position: relative; border-radius: var(--r-xl); background: var(--glass); border: 1px solid var(--glass-b); box-shadow: 0 24px 70px rgba(46,45,63,.10), inset 0 1px 0 rgba(255,255,255,.9); backdrop-filter: blur(18px) saturate(140%); -webkit-backdrop-filter: blur(18px) saturate(140%); padding: clamp(20px, 2.2vw, 34px); }
.gcard { border-radius: var(--r-lg); background: rgba(255,255,255,.72); border: 1px solid rgba(255,255,255,.9); box-shadow: 0 10px 30px rgba(46,45,63,.07); padding: 18px 20px; position: relative; overflow: hidden; }
.red { color: var(--alfa); }
.sec--light .num { font-weight: 700; }
.pill img { width: 22px; height: 22px; object-fit: contain; }
.pill { display: inline-flex; align-items: center; gap: 8px; height: 30px; padding: 0 12px; border-radius: 999px; background: rgba(255,255,255,.8); border: 1px solid rgba(255,255,255,.95); font-family: 'Styrene B', sans-serif; font-size: 12px; color: var(--l-ink2); box-shadow: 0 6px 18px rgba(46,45,63,.06); }
.pill--red { background: var(--alfa); color: #fff; border-color: var(--alfa); }
.lt-src { font-family: 'Styrene B', sans-serif; font-size: 11.5px; color: var(--l-ink2); opacity: .75; margin-top: 26px; }

/* Обложка чемпионата */
.lcover .wrap { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; min-height: calc(100vh - var(--hdr)); }
.lcover__txt { display: grid; gap: 22px; }
.lcover__title { font-weight: 900; font-size: clamp(56px, 8vw, 132px); line-height: .92; letter-spacing: -.03em; margin: 0; }
.lcover__title span { display: block; }
.lcover__title .a { color: var(--alfa); }
.lcover__stats { display: flex; gap: 34px; flex-wrap: wrap; }
.lcover__stats div { display: grid; gap: 4px; }
.lcover__stats .num { font-size: clamp(34px, 3.6vw, 56px); }
.lcover__stats .num.red { color: var(--alfa); }
.lcover__goal { display: inline-flex; gap: 10px; align-items: center; padding: 12px 16px; border-radius: 16px; background: rgba(255,255,255,.7); border: 1px solid rgba(255,255,255,.95); font-family: 'Styrene B', sans-serif; font-size: 13.5px; color: var(--l-ink2); box-shadow: 0 10px 30px rgba(46,45,63,.06); max-width: 56ch; }
.lcover__goal b { color: var(--l-ink); font-weight: 500; }
.lcover__scene { position: relative; height: min(88vh, 900px); }
.tiles { position: absolute; left: -4%; top: 6%; display: grid; grid-template-columns: repeat(4, 70px); gap: 10px; z-index: 2; }
.tile { width: 70px; height: 70px; border-radius: 20px; background: rgba(255,255,255,.62); border: 1px solid rgba(255,255,255,.95); box-shadow: 0 14px 34px rgba(46,45,63,.10), inset 0 1px 0 #fff; display: grid; place-items: center; font-weight: 700; font-size: 24px; color: var(--l-ink2); backdrop-filter: blur(10px); will-change: transform; }
.tile.seven { background: var(--alfa); color: #fff; border-color: var(--alfa); box-shadow: 0 18px 44px rgba(239,49,36,.35); font-size: 30px; }
.tile-cap { grid-column: 4 / 5; align-self: center; font-family: 'Styrene B', sans-serif; font-size: 11.5px; color: var(--l-ink2); line-height: 1.25; }
.koya3d { position: absolute; right: -10%; bottom: 0; height: 100%; width: auto; z-index: 3; transform-style: preserve-3d; will-change: transform; filter: drop-shadow(0 40px 50px rgba(120,40,30,.28)); }
.koya3d img { height: 100%; width: auto; }
.koya3d::after { content: ''; position: absolute; left: 12%; right: 12%; bottom: -2%; height: 8%; border-radius: 50%; background: radial-gradient(50% 50% at 50% 50%, rgba(120,40,30,.28), transparent 70%); filter: blur(10px); z-index: -1; }
.floaties { position: absolute; inset: 0; pointer-events: none; z-index: 1; }
.floaties img { position: absolute; width: var(--s, 80px); opacity: .9; will-change: transform; filter: drop-shadow(0 10px 20px rgba(46,45,63,.12)); }

/* Лента игр */
.strip { padding: 0; min-height: 0; display: block; }
.strip__pin { height: 100vh; display: flex; flex-direction: column; justify-content: center; overflow: hidden; }
.strip__head { padding-top: calc(var(--hdr) + 20px); }
.strip__track { display: flex; gap: 22px; padding: 30px var(--gutter) 40px; will-change: transform; width: max-content; align-items: center; }
.gcard--game { width: clamp(300px, 26vw, 400px); display: grid; grid-template-rows: auto auto auto; align-content: start; gap: 14px; padding: 16px; align-self: start; }
.gcard--game .cover { position: relative; aspect-ratio: 16 / 10; border-radius: 18px; overflow: hidden; background: #eee; }
.gcard--game .cover img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--ease); }
.gcard--game:hover .cover img { transform: scale(1.06); }
.gcard--game .cover .n { position: absolute; left: 12px; top: 12px; font-weight: 900; font-size: 30px; color: #fff; text-shadow: 0 6px 20px rgba(0,0,0,.35); }
.gcard--game .cover .icn { display: none; }
.gcard--game .ttl { display: grid; grid-template-columns: 1fr 64px; gap: 10px; align-items: start; }
.gcard--game .ttl img { width: 64px; height: 64px; object-fit: contain; filter: drop-shadow(0 8px 16px rgba(46,45,63,.18)); justify-self: end; margin-top: -6px; }
.gcard--game .t { font-weight: 700; font-size: clamp(18px, 1.5vw, 24px); line-height: 1.1; letter-spacing: -.01em; }
.gcard--game .sk { font-family: 'Styrene B', sans-serif; font-size: 13.5px; color: var(--l-ink2); line-height: 1.4; margin-top: 6px; }
.gcard--game .ft { display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.gcard--game .ft .pill--red { height: 28px; font-size: 11.5px; }
.gcard--game .accent { position: absolute; left: 0; right: 0; top: 0; height: 4px; background: var(--c); border-radius: 4px 4px 0 0; }
.strip__intro { width: clamp(280px, 24vw, 360px); display: grid; align-content: center; gap: 16px; padding-right: 16px; }
.strip__intro .h2 { max-width: 12ch; }
.strip__outro { width: clamp(280px, 26vw, 400px); display: grid; align-content: center; justify-items: center; text-align: center; gap: 12px; }
.loop { border-radius: 26px; overflow: hidden; box-shadow: 0 24px 60px rgba(46,45,63,.14); border: 1px solid rgba(255,255,255,.9); background: #fff; }
.loop img { width: 100%; height: auto; display: block; }
.strip__bar { position: absolute; left: var(--gutter); right: var(--gutter); bottom: 26px; height: 3px; border-radius: 3px; background: rgba(32,26,36,.08); overflow: hidden; }
.strip__bar i { display: block; height: 100%; width: 0; background: var(--alfa); border-radius: 3px; }

/* Столбики (участие, качество) */
.cols { display: flex; align-items: flex-end; gap: clamp(8px, 1.2vw, 18px); height: clamp(220px, 34vh, 360px); }
.cols div { flex: 1; display: grid; grid-template-rows: auto minmax(0, 1fr) auto; gap: 10px; height: 100%; }
.cols i { display: block; align-self: end; height: var(--h); border-radius: 14px; background: var(--lilac); border: 1px solid rgba(255,255,255,.9); box-shadow: inset 0 1px 0 #fff, 0 12px 30px rgba(46,45,63,.08); transform-origin: bottom; }
.cols .hi i { background: var(--alfa); border-color: var(--alfa); box-shadow: 0 20px 44px rgba(239,49,36,.32); }
.cols b { font-weight: 700; font-size: clamp(16px, 1.5vw, 24px); text-align: center; }
.cols .hi b { color: var(--alfa); font-size: clamp(22px, 2.4vw, 40px); }
.cols span { font-family: 'Styrene B', sans-serif; font-size: 12px; color: var(--l-ink2); text-align: center; }
.funnel { display: grid; grid-template-columns: 1fr auto 1fr auto 1fr; gap: 10px; align-items: center; margin-top: 22px; }
.funnel .gcard { display: grid; gap: 4px; }
.funnel .gcard .num { font-size: clamp(30px, 3vw, 46px); }
.funnel .gcard.hi { background: linear-gradient(160deg, #FFE3D3, #fff); }
.funnel .gcard.hi .num { color: var(--alfa); }
.funnel .arr { color: var(--l-ink2); font-size: 26px; }
.participation .koya-side, .quality .koya-side { position: absolute; right: -2%; bottom: 0; height: min(78vh, 820px); z-index: 1; pointer-events: none; filter: drop-shadow(0 30px 40px rgba(120,40,30,.22)); }
.participation .koya-side img, .quality .koya-side img { height: 100%; width: auto; }

/* Рейтинг */
.rating__top { display: grid; gap: 14px; margin-bottom: 20px; justify-items: start; }
.seg { display: inline-flex; padding: 4px; border-radius: 999px; background: rgba(255,255,255,.7); border: 1px solid rgba(255,255,255,.95); box-shadow: 0 8px 24px rgba(46,45,63,.08); }
.seg button { height: 40px; padding: 0 18px; border-radius: 999px; font-weight: 500; font-size: 14px; color: var(--l-ink2); transition: all .25s; }
.seg button[aria-pressed="true"] { background: var(--alfa); color: #fff; box-shadow: 0 8px 20px rgba(239,49,36,.3); }
.rating__grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, .75fr); gap: 28px; align-items: start; }
.rt { display: grid; gap: 8px; }
.rt__head, .rt__row { display: grid; grid-template-columns: 54px 1fr 70px 70px 70px 84px; align-items: center; gap: 8px; }
.rt__head { font-family: 'Styrene B', sans-serif; font-size: 11.5px; letter-spacing: .08em; text-transform: uppercase; color: var(--l-ink2); padding: 0 16px; }
.rt__head span:not(:nth-child(2)), .rt__row span:not(:nth-child(2)) { text-align: center; }
.rt__row { position: relative; background: rgba(255,255,255,.72); border: 1px solid rgba(255,255,255,.95); border-radius: 16px; padding: 12px 16px; font-variant-numeric: tabular-nums; font-size: 15px; box-shadow: 0 8px 20px rgba(46,45,63,.06); will-change: transform; }
.rt__row .pl { font-weight: 700; display: grid; place-items: center; }
.rt__row .pl i { width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; font-style: normal; font-size: 13px; font-weight: 700; background: rgba(32,26,36,.06); }
.rt__row.m1 .pl i { background: linear-gradient(160deg, #FFE08A, #F2B02D); color: #4a3200; box-shadow: 0 6px 16px rgba(242,176,45,.4); }
.rt__row.m2 .pl i { background: linear-gradient(160deg, #F1F1F5, #C9CDD6); color: #333; }
.rt__row.m3 .pl i { background: linear-gradient(160deg, #F5C9A2, #E29A5B); color: #4a2a08; }
.rt__row .tm { font-weight: 700; }
.rt__row .tot { font-weight: 900; font-size: 20px; color: var(--alfa); }
.rt__row.m1 { background: linear-gradient(90deg, #FFE3D3, rgba(255,255,255,.8) 60%); }
.rt__row .voc0 { color: rgba(32,26,36,.35); }
.podium { position: relative; display: grid; grid-template-columns: 1fr 1fr 1fr; align-items: end; gap: 10px; min-height: 380px; padding-top: 150px; }
.podium .step { position: relative; border-radius: 22px 22px 12px 12px; background: rgba(255,255,255,.75); border: 1px solid rgba(255,255,255,.95); box-shadow: 0 16px 40px rgba(46,45,63,.10); display: grid; align-content: start; justify-items: center; gap: 6px; padding: 18px 10px; text-align: center; transform-origin: bottom; }
.podium .step .m { width: 56px; height: 56px; object-fit: contain; filter: drop-shadow(0 8px 16px rgba(46,45,63,.2)); }
.podium .step .t { font-weight: 700; font-size: 13.5px; line-height: 1.2; }
.podium .step .p { font-family: 'Styrene B', sans-serif; font-size: 11.5px; color: var(--l-ink2); }
.podium .step.s1 { height: 230px; padding-top: 18px; background: linear-gradient(180deg, #FFF3CF, rgba(255,255,255,.85)); }
.podium .step.s2 { height: 190px; }
.podium .step.s3 { height: 160px; }
.podium .trophy { position: absolute; left: 50%; bottom: 236px; transform: translateX(-50%); width: 150px; filter: drop-shadow(0 20px 30px rgba(242,176,45,.45)); z-index: 2; }
.podium .loop { display: none; }
.results .note { font-family: 'Styrene B', sans-serif; font-size: 13px; color: var(--l-ink2); line-height: 1.45; max-width: 60ch; }
.prizes { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 14px; }
.confetti { position: absolute; inset: 0; pointer-events: none; z-index: 5; }
.confetti i { position: absolute; width: 8px; height: 14px; border-radius: 2px; opacity: 0; }

/* Цитаты */
.quotes .wrap { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 40px; align-items: center; }
.qmarq { position: relative; display: grid; gap: 16px; mask-image: linear-gradient(180deg, transparent, #000 8%, #000 92%, transparent); max-height: 78vh; overflow: hidden; }
.qcol { display: grid; gap: 16px; will-change: transform; }
.qcols { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.quote { position: relative; border-radius: 22px; background: rgba(255,255,255,.75); border: 1px solid rgba(255,255,255,.95); box-shadow: 0 12px 30px rgba(46,45,63,.07); padding: 18px 20px 16px 22px; display: grid; gap: 10px; }
.quote::before { content: '“'; position: absolute; left: 18px; top: 12px; font-size: 40px; line-height: .8; color: var(--alfa); font-weight: 900; opacity: .9; }
.quote p { margin: 0; font-size: 15px; line-height: 1.45; padding-left: 34px; }
.quote span { font-family: 'Styrene B', sans-serif; font-size: 12px; color: var(--l-ink2); padding-left: 34px; }
.quotes .loop { width: min(360px, 90%); margin-top: 20px; border-radius: 30px; }

/* VOC / FCR */
.vf { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
.vf .glass { display: grid; gap: 14px; }
.vf .pair { display: flex; align-items: baseline; gap: 14px; font-weight: 700; font-size: clamp(28px, 2.6vw, 44px); letter-spacing: -.02em; }
.vf .pair .to { color: var(--alfa); font-weight: 900; font-size: 1.25em; }
.vf .pair .ar { color: var(--l-ink2); font-weight: 400; font-size: .7em; }
.vf .line { font-weight: 500; font-size: 14px; color: var(--l-ink); }
.mini { display: flex; align-items: flex-end; gap: 8px; height: 120px; margin-top: 6px; }
.mini div { flex: 1; display: grid; grid-template-rows: auto minmax(0, 1fr) auto; gap: 6px; height: 100%; text-align: center; }
.mini i { display: block; align-self: end; height: var(--h); border-radius: 8px; background: var(--lilac); border: 1px solid rgba(255,255,255,.9); transform-origin: bottom; }
.mini .pre i { background: transparent; border: 1.5px dashed rgba(239,49,36,.6); }
.mini .hi i { background: var(--alfa); border-color: var(--alfa); }
.mini b { font-weight: 700; font-size: 12px; min-height: 14px; }
.mini .hi b { color: var(--alfa); }
.mini span { font-family: 'Styrene B', sans-serif; font-size: 11px; color: var(--l-ink2); }
.vocfcr .koya-side { position: absolute; right: 2%; bottom: 0; width: min(34vw, 520px); z-index: 1; pointer-events: none; }
.vocfcr .koya-side img { width: 100%; height: auto; }
.koya-free img { width: 100%; height: auto; display: block; filter: drop-shadow(0 30px 40px rgba(120,40,30,.22)); }
.koya-free::after { content: ''; display: block; margin: -4% auto 0; width: 60%; height: 18px; border-radius: 50%; background: radial-gradient(50% 50% at 50% 50%, rgba(120,40,30,.28), transparent 70%); filter: blur(6px); }
.quotes .koya-free { width: min(420px, 90%); margin-top: 10px; }
.strip__outro .koya-free { width: 100%; }

/* Дельты VOC */
.deltas { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; align-items: start; }
.dl { display: grid; gap: 6px; }
.dl h4, .dl h3 { margin: 0 0 8px; font-weight: 700; font-size: 15px; }
.dl h4.hup, .dl h3.hup { color: var(--alfa); }
.dl h4.hdn, .dl h3.hdn { color: var(--l-ink2); }
.dl .r { display: grid; grid-template-columns: minmax(0, 190px) 1fr 58px; gap: 10px; align-items: center; font-size: 13.5px; }
.dl .r .n { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.dl .r.b .n { font-weight: 700; }
.dl .r i { display: block; height: 10px; border-radius: 5px; background: var(--alfa); width: var(--w); transform-origin: left; }
.dl--dn .r i { background: rgba(32,26,36,.18); transform-origin: right; justify-self: end; }
.dl .r b { font-weight: 700; font-variant-numeric: tabular-nums; text-align: right; font-size: 13px; }
.dl--dn .r { grid-template-columns: minmax(0, 190px) 1fr 58px; }
.dl--dn .r b { color: var(--l-ink2); }

/* Решения */
.dec { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.dec .glass { display: grid; gap: 12px; align-content: start; min-height: 230px; padding-right: 110px; }
.dec .n { font-weight: 900; font-size: 48px; color: var(--alfa); line-height: 1; }
.dec .h { font-weight: 700; font-size: clamp(18px, 1.5vw, 24px); line-height: 1.15; }
.dec .b { font-family: 'Styrene B', sans-serif; font-size: 13.5px; color: var(--l-ink2); line-height: 1.45; }
.dec .glass img { position: absolute; right: 10px; top: 14px; width: 96px; filter: drop-shadow(0 12px 22px rgba(46,45,63,.16)); }
.decisions .koya-side { position: absolute; right: -2%; bottom: 0; height: min(60vh, 600px); z-index: 1; pointer-events: none; filter: drop-shadow(0 30px 40px rgba(120,40,30,.22)); }
.decisions .koya-side img { height: 100%; width: auto; }
.dec-foot { margin-top: 18px; font-family: 'Styrene B', sans-serif; font-size: 13px; color: var(--l-ink2); }

/* Дальше: дорожка */
.road { position: relative; padding: 70px 0 20px; }
.road__line { position: absolute; left: 4%; right: 4%; top: 96px; height: 3px; border-radius: 3px; background: rgba(32,26,36,.08); }
.road__fill { position: absolute; left: 4%; top: 96px; height: 3px; border-radius: 3px; width: 0; background: var(--alfa); }
.road__steps { position: relative; display: grid; grid-template-columns: repeat(8, 1fr); gap: 8px; }
.road__step { display: grid; justify-items: center; gap: 10px; transform: translateY(calc(var(--i) * -10px)); }
.road__step .b { width: 54px; height: 54px; border-radius: 16px; background: rgba(255,255,255,.75); border: 1px solid rgba(255,255,255,.95); box-shadow: 0 10px 26px rgba(46,45,63,.08); display: grid; place-items: center; font-weight: 900; font-size: 20px; color: var(--l-ink2); }
.road__step.first .b { background: var(--alfa); color: #fff; border-color: var(--alfa); box-shadow: 0 14px 30px rgba(239,49,36,.35); }
.road__step.fin .b { background: linear-gradient(160deg, #FFE08A, #F2B02D); color: #4a3200; width: 70px; border-radius: 22px; }
.road__step .d { font-family: 'Styrene B', sans-serif; font-size: 12px; color: var(--l-ink2); font-weight: 500; }
.road__step.first .d { color: var(--alfa); font-weight: 700; }
.nextcards { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 30px; }
.nextcards .gcard { display: grid; gap: 6px; }
.nextcards .gcard .h { font-weight: 700; font-size: 16px; }
.nextcards .gcard .b { font-family: 'Styrene B', sans-serif; font-size: 13px; color: var(--l-ink2); line-height: 1.45; }
.nextcards .gcard.acq { background: linear-gradient(160deg, #FFE3D3, rgba(255,255,255,.85)); }
.nextcards .gcard.acq .h { color: var(--alfa-dark); }

/* ---------- ПОРТАЛ ОБРАТНО ---------- */
.portal-back { position: relative; height: 260vh; background: var(--d-bg0); }
.portal-back__stage { position: sticky; top: 0; height: 100vh; overflow: hidden; background: radial-gradient(120% 80% at 80% 110%, #1C2230 0%, var(--d-bg1) 45%, var(--d-bg0) 100%); }
.portal-back .hero-fig { height: min(96vh, 1080px); right: 4%; }
.portal-back__card { position: absolute; left: 0; top: 0; width: 100vw; height: 100vh; transform-origin: 0 0; will-change: transform; border-radius: 0; overflow: hidden; background: linear-gradient(160deg, #FBF7FF 0%, #F6F4FB 50%, #FFF6F0 100%); box-shadow: 0 40px 100px rgba(0,0,0,.6); z-index: 3; }
.portal-back__card .pastel { z-index: 0; }
.portal-back__card .inner { position: absolute; inset: 0; z-index: 1; display: grid; grid-template-columns: 1fr 1fr; align-items: center; padding: 0 var(--gutter); color: var(--l-ink); }
.portal-back__card .inner img { position: absolute; right: 8%; bottom: 0; height: 86%; filter: drop-shadow(0 40px 60px rgba(120,40,30,.25)); }
.portal-back__card .inner .t { font-weight: 900; font-size: clamp(40px, 6vw, 100px); line-height: .95; letter-spacing: -.03em; }
.portal-back__card .inner .t span { color: var(--alfa); display: block; }
.portal-back__card .inner .s { font-size: clamp(14px, 1.2vw, 20px); color: var(--l-ink2); margin-top: 14px; max-width: 40ch; }
.portal-back__txt { position: absolute; left: var(--gutter); right: var(--gutter); top: 16vh; display: grid; gap: 12px; opacity: 0; z-index: 2; }
.portal-back__txt .h2 { max-width: 22ch; }

/* ---------- ФИНАЛ ---------- */
.final .wrap { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 40px; align-items: center; }
.final .hero-fig { height: min(96vh, 1060px); right: 0; }
.agenda { display: grid; gap: 8px; padding: 0; margin: 0; }
.agenda li { list-style: none; display: grid; grid-template-columns: 86px 1fr; gap: 14px; align-items: center; padding: 12px 16px; border-radius: 14px; background: rgba(129,149,176,.06); border: 1px solid rgba(129,149,176,.12); }
.agenda li b { font-weight: 500; color: var(--gold4); font-variant-numeric: tabular-nums; font-size: 14px; }
.agenda li span { font-size: 14.5px; }
.agenda li.hi { background: linear-gradient(90deg, rgba(255,223,162,.16), rgba(129,149,176,.06)); border-color: rgba(255,223,162,.35); }
.final .links { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 22px; }
.btn { display: inline-flex; align-items: center; gap: 10px; height: 44px; padding: 0 18px; border-radius: 999px; border: 1px solid rgba(255,223,162,.3); font-size: 13.5px; font-weight: 500; color: var(--d-ink); transition: all .25s; }
.btn:hover { border-color: rgba(255,223,162,.7); background: rgba(255,223,162,.06); }
.btn--gold { background: var(--plate-grad); color: #1c1608; border-color: transparent; }
.btn--gold:hover { filter: brightness(1.06); background: var(--plate-grad); }

/* ---------- Анимационные заготовки ---------- */
/* ревью B-07: блоки прячутся до анимации только при работающем JS (класс js ставит скрипт в <head>) */
html.js .rv { opacity: 0; transform: translateY(28px); }
html.js .rv-l { opacity: 0; transform: translateX(-30px); }
html.js .rv-r { opacity: 0; transform: translateX(30px); }
html.js .rv-s { opacity: 0; transform: scale(.94); }

/* ---------- Режим статуса и «только цифры» ---------- */
html.status .glass, html.status .hdr, html.status .card--glass, html.status .tile { backdrop-filter: none; -webkit-backdrop-filter: none; }
html.status .glass { background: rgba(255,255,255,.86); }
html.status .hdr { background: rgba(10,13,18,.92); }
html[data-theme="light"].status .hdr { background: rgba(246,244,251,.94); }
html.status .pastel i { filter: blur(40px); }
html.status .cover canvas, html.status .confetti, html.status .grain { display: none !important; }
html.status .bar-row .fill::after { animation: none; }
html.status .hero-fig, html.status .koya3d { transform: none !important; }
html.compact .optional { display: none !important; }

/* ---------- Адаптив ---------- */
@media (max-width: 1180px) {
  .chips { grid-template-columns: repeat(6, 1fr); }
  .chip--lead { grid-column: span 6; }
  .chip--sm { grid-column: span 3; }
  .tl__items { grid-template-columns: repeat(4, 1fr); }
  .tl__item:nth-child(n+5)::before { display: none; }
  .rt__head, .rt__row { grid-template-columns: 44px 1fr 56px 56px 56px 70px; font-size: 14px; }
  .cover .hero-fig, .voice .hero-fig, .quarterly .hero-fig, .ai .hero-fig { opacity: .55; }
}
@media (max-width: 900px) {
  :root { --hdr: 60px; }
  .hdr__brand span { display: none; }
  .hdr__tools .tgl span.l { display: none; }
  .snav, .kbd-hint { display: none; }
  .sec { padding: calc(var(--hdr) + 28px) 0 48px; min-height: 0; flex-direction: column; align-items: stretch; }
  .sec > .hero-fig { order: 2; }
  .split, .split.rev, .cover .wrap, .lcover .wrap, .channels .wrap, .quotes .wrap, .final .wrap, .rating__grid, .deltas, .vf, .dec, .nextcards { grid-template-columns: 1fr; }
  .hero-fig { position: relative; height: 52vh; margin: 20px auto 0; right: auto !important; left: auto !important; top: auto !important; opacity: 1 !important; }
  .cover .wrap { min-height: 0; }
  .cover .hero-fig { position: absolute; right: -30% !important; opacity: .35 !important; height: 90vh; }
  .stat-grid, .voice-facts { grid-template-columns: 1fr 1fr; }
  .ring-wrap { grid-template-columns: 1fr; justify-items: center; }
  .chips { grid-template-columns: 1fr 1fr; }
  .chip--lead, .chip--sm, .chip--wide { grid-column: span 2; }
  .tl__items { grid-template-columns: 1fr; }
  .tl__item::before { display: none; }
  .tl__line, .tl__fill, .tl__runner { display: none; }
  .tl { padding-top: 0; }
  .phones { grid-template-columns: 1fr 1fr; }
  .phone:nth-child(2) { transform: none; }
  .lcover__scene { height: 60vh; }
  .tiles { left: 0; top: 0; grid-template-columns: repeat(3, 64px); gap: 8px; }
  .tile { width: 64px; height: 64px; font-size: 18px; border-radius: 16px; }
  .koya3d { right: -10%; height: 90%; }
  .strip__pin { height: auto; }
  .strip__track { flex-direction: column; width: 100%; padding: 20px var(--gutter); }
  .gcard--game, .strip__intro, .strip__outro { width: 100%; }
  .strip__bar { display: none; }
  .participation .koya-side, .quality .koya-side, .vocfcr .koya-side, .decisions .koya-side { display: none; }
  .rt__head, .rt__row { grid-template-columns: 30px 1fr 34px 34px 34px 44px; gap: 4px; font-size: 12.5px; padding: 10px 8px; }
  .rt__head { font-size: 9.5px; letter-spacing: .04em; padding: 0 8px; }
  .rt__row .tot { font-size: 16px; }
  .rt__row .pl i { width: 24px; height: 24px; font-size: 11px; }
  .ai .split.rev { grid-template-columns: 1fr; }
  .results .glass, .participation .glass, .quality .glass, .vocdelta .glass, .nextgame .glass { padding: 16px 12px; }
  .dl .r { grid-template-columns: minmax(0, 120px) 1fr 50px; font-size: 12px; }
  .dl--dn .r { grid-template-columns: minmax(0, 120px) 1fr 50px; }
  .podium { min-height: 280px; padding-top: 90px; }
  .podium .loop { display: none; }
  .qcols { grid-template-columns: 1fr; }
  .road__steps { grid-template-columns: repeat(4, 1fr); row-gap: 24px; }
  .road__step { transform: none; }
  .road__line, .road__fill { display: none; }
  .road { padding-top: 10px; }
  .portal { height: 200vh; }
  .portal-back { height: 180vh; }
  .portal-back .hero-fig { position: absolute; height: 70vh; right: -20% !important; opacity: .5 !important; }
  .final .hero-fig { position: absolute; height: 70vh; right: -25% !important; opacity: .35 !important; }
  .dec .glass { min-height: 0; padding-right: 100px; }
}
@media (prefers-reduced-motion: reduce) {
  .bar-row .fill::after, .scroll-cue i { animation: none; }
}

/* ---------- Переливание золота везде ---------- */
@keyframes goldflow { 0% { background-position: 0% 50%; } 100% { background-position: 200% 50%; } }
@keyframes goldsheen { 0% { transform: translateX(-130%) skewX(-18deg); } 55%, 100% { transform: translateX(160%) skewX(-18deg); } }
.gold { background-image: linear-gradient(100deg, #A78861 0%, #C1A173 22%, #FFDFA2 40%, #FFF3D0 47%, #FFDFA2 54%, #C1A173 72%, #A78861 100%); background-size: 200% 100%; animation: goldflow 4.5s linear infinite; }
.h2 .gold, .h1 .gold { animation-duration: 6s; }
.num.gold { animation-duration: 5s; }
.card--gold, .btn--gold, .phone .ch i, .rt__row.m1 .pl i { position: relative; overflow: hidden; }
.card--gold::after, .btn--gold::after, .phone .ch i::after, .rt__row.m1 .pl i::after, .stat .icon3d + .sheen, .chip--live .bar i::after { content: ''; position: absolute; inset: -10% -20%; background: linear-gradient(105deg, transparent 30%, rgba(255,255,255,.45) 50%, transparent 70%); animation: goldsheen 5.5s var(--ease) infinite; pointer-events: none; }
.btn--gold::after { animation-duration: 4s; }
.tag b, .tl__item .d, .bar-row .pct, .spark .v, .qbars b, .agenda li b, .eyebrow, .dirs span b { background: linear-gradient(100deg, #C1A173, #FFDFA2, #FFF3D0, #FFDFA2, #C1A173); background-size: 200% 100%; -webkit-background-clip: text; background-clip: text; color: transparent; animation: goldflow 6s linear infinite; }
.eyebrow { color: var(--d-muted); background: none; -webkit-text-fill-color: initial; animation: none; }
.hair, .tl__fill, .progress, .eyebrow::before { background: linear-gradient(90deg, #A78861, #FFDFA2, #FFF3D0, #FFDFA2, #A78861); background-size: 200% 100%; animation: goldflow 4s linear infinite; }
.spark i, .qbars i, .chip--wide .bar i[style*="gold"] { background: linear-gradient(180deg, #FFF3D0, #FFDFA2 30%, #C1A173 70%, #A78861); background-size: 100% 200%; animation: goldflow 5s linear infinite alternate; }
.icon3d, .hdr__logo--dark { filter: drop-shadow(0 18px 24px rgba(0,0,0,.45)) drop-shadow(0 0 10px rgba(255,223,162,.18)); }
.stat .icon3d { animation: iconglow 4s ease-in-out infinite alternate; }
@keyframes iconglow { from { filter: drop-shadow(0 18px 24px rgba(0,0,0,.45)) drop-shadow(0 0 6px rgba(255,223,162,.10)); } to { filter: drop-shadow(0 18px 24px rgba(0,0,0,.45)) drop-shadow(0 0 22px rgba(255,223,162,.45)); } }
.panel { background: linear-gradient(var(--d-panel), var(--d-panel)) padding-box, linear-gradient(120deg, rgba(255,223,162,.7), rgba(255,223,162,.08) 30%, rgba(255,223,162,.0) 55%, rgba(255,223,162,.5) 80%, rgba(255,223,162,.1)) border-box; background-size: 100% 100%, 300% 100%; animation: panelgold 8s linear infinite; }
@keyframes panelgold { from { background-position: 0 0, 0% 50%; } to { background-position: 0 0, 300% 50%; } }
html[data-theme="light"] .eyebrow::before, html[data-theme="light"] .progress { animation: none; background: var(--alfa); }
html.status .gold, html.status .panel, html.status .hair, html.status .tl__fill, html.status .spark i, html.status .qbars i, html.status .stat .icon3d, html.status .tag b, html.status .agenda li b, html.status .bar-row .pct, html.status .tl__item .d, html.status .spark .v, html.status .qbars b, html.status .dirs span b { animation: none !important; }
html.status .card--gold::after, html.status .btn--gold::after, html.status .phone .ch i::after, html.status .rt__row.m1 .pl i::after, html.status .chip--live .bar i::after { display: none; }
@media (prefers-reduced-motion: reduce) { .gold, .panel, .hair, .tl__fill, .spark i, .qbars i, .stat .icon3d { animation: none !important; } }

/* ---------- Живые плашки: бегущая кромка, блик за курсором, неон ---------- */
@keyframes edgeRun { to { --ang: 360deg; } }
@property --ang { syntax: '<angle>'; inherits: false; initial-value: 0deg; }
@keyframes glareDrift { 0% { --mx: 20%; --my: 10%; } 50% { --mx: 80%; --my: 90%; } 100% { --mx: 20%; --my: 10%; } }
@property --mx { syntax: '<percentage>'; inherits: false; initial-value: 50%; }
@property --my { syntax: '<percentage>'; inherits: false; initial-value: 50%; }
.card, .chip, .panel, .glass, .gcard, .quote, .rt__row, .tile, .phone, .agenda li, .tl__item .card, .podium .step, .stat { position: relative; isolation: isolate; }
/* бегущая световая кромка (тёмный мир: золото, чипы: бирюза, светлый мир: белый/красный) */
.card::before, .chip::after, .agenda li::after, .stat::after {
  content: ''; position: absolute; inset: 0; border-radius: inherit; padding: 1px; pointer-events: none; z-index: 0;
  background: conic-gradient(from var(--ang), transparent 0 62%, rgba(255,223,162,.0) 66%, rgba(255,223,162,.85) 76%, rgba(255,243,208,1) 80%, rgba(255,223,162,.7) 85%, transparent 92%);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude;
  animation: edgeRun 7s linear infinite; opacity: .9;
}
.card--red::before { display: none; }
.card::before { animation-delay: calc(var(--i, 0) * -1.3s); }
.chip::after { background: conic-gradient(from var(--ang), transparent 0 60%, rgba(92,181,167,.9) 76%, #bffff3 80%, rgba(92,181,167,.8) 85%, transparent 92%); animation-duration: 5.5s; }
.chip--live::after, .chip:last-child::after { background: conic-gradient(from var(--ang), transparent 0 60%, rgba(255,223,162,.9) 76%, #fff3d0 80%, rgba(255,223,162,.8) 85%, transparent 92%); }
.chip { box-shadow: 0 0 0 0 rgba(92,181,167,0); animation: neonPulse 3.6s ease-in-out infinite; animation-delay: calc(var(--i, 0) * -.45s); }
@keyframes neonPulse { 0%, 100% { box-shadow: 0 0 0 rgba(92,181,167,0), inset 0 0 0 rgba(92,181,167,0); } 50% { box-shadow: 0 0 26px rgba(92,181,167,.22), inset 0 0 24px rgba(92,181,167,.08); } }
.chip--lead { animation-duration: 4.4s; }
/* блик за курсором / дрейф без курсора */
.card::after, .panel::after, .glass::after, .gcard::after, .quote::after, .rt__row::after, .tile::after, .podium .step::after, .phone .screen::after {
  content: ''; position: absolute; inset: 0; border-radius: inherit; pointer-events: none; z-index: 0;
  background: radial-gradient(260px circle at var(--mx) var(--my), rgba(255,236,200,.13), transparent 60%);
  animation: glareDrift 9s ease-in-out infinite; animation-delay: calc(var(--i, 0) * -1.7s); opacity: .9; transition: opacity .3s;
}
.glass::after, .gcard::after, .quote::after, .rt__row::after, .tile::after, .podium .step::after { background: radial-gradient(300px circle at var(--mx) var(--my), rgba(255,255,255,.7), rgba(255,227,211,.25) 40%, transparent 65%); mix-blend-mode: soft-light; }
.rt__row.m1::after { background: radial-gradient(300px circle at var(--mx) var(--my), rgba(255,200,60,.45), transparent 60%); }
.is-hover::after { animation: none !important; opacity: 1; }
/* стекло светлого мира: тонкая радужная кромка */
.glass::before, .gcard::before, .podium .step::before {
  content: ''; position: absolute; inset: 0; border-radius: inherit; padding: 1px; pointer-events: none; z-index: 0;
  background: conic-gradient(from var(--ang), transparent 0 55%, rgba(255,255,255,.0) 60%, rgba(255,138,122,.9) 74%, #fff 80%, rgba(217,233,255,.9) 86%, transparent 94%);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude;
  animation: edgeRun 9s linear infinite; animation-delay: calc(var(--i, 0) * -1.1s);
}
.gcard--game::before { display: none; }
.card > *, .chip > *, .panel > *, .glass > *, .gcard > *, .quote > *, .rt__row > *, .tile > *, .podium .step > *, .stat > * { position: relative; z-index: 1; }
.card .icon3d, .stat .icon3d { z-index: 1; }
/* наклон за курсором */
.tilt { transform-style: preserve-3d; transition: transform .35s var(--ease); will-change: transform; }
/* режим статуса и мобильные */
html.status .card::before, html.status .chip::after, html.status .agenda li::after, html.status .stat::after, html.status .glass::before, html.status .gcard::before, html.status .podium .step::before, html.status .card::after, html.status .panel::after, html.status .glass::after, html.status .gcard::after, html.status .quote::after, html.status .rt__row::after, html.status .tile::after, html.status .podium .step::after, html.status .phone .screen::after { display: none; }
html.status .chip { animation: none; }
@media (hover: none) { .card::after, .panel::after, .glass::after, .gcard::after, .quote::after, .rt__row::after, .tile::after, .podium .step::after { animation-duration: 12s; } }
@media (prefers-reduced-motion: reduce) { .card::before, .chip::after, .glass::before, .gcard::before, .card::after, .glass::after, .gcard::after, .chip { animation: none !important; } }
.gcard--game .cover > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.cover__title .ln, .lcover__title .ln { padding: .04em .1em; margin: -.04em -.1em; }

/* ---------- Живые цифры ---------- */
.num-live { display: inline-block; --flash: 0; filter: drop-shadow(0 0 calc(var(--flash) * 18px) rgba(255,223,162,calc(var(--flash) * .85))); }
.sec--light .num-live { filter: drop-shadow(0 0 calc(var(--flash) * 14px) rgba(239,49,36,calc(var(--flash) * .6))); }
.num-live d-g { display: inline-block; font: inherit; color: inherit; will-change: transform, opacity; white-space: pre; }
.num-live .dg--s { }
@keyframes digitGlow { 0%, 100% { filter: drop-shadow(0 0 0 rgba(255,223,162,0)); } 50% { filter: drop-shadow(0 0 14px rgba(255,223,162,.35)); } }
.sec--dark .num.gold.num-live { animation: goldflow 5s linear infinite, digitGlow 4s ease-in-out infinite; }
.sec--light .num.red.num-live, .sec--light .tot.num-live, .vf .pair .to.num-live { animation: redPulse 3.4s ease-in-out infinite; }
@keyframes redPulse { 0%, 100% { text-shadow: 0 0 0 rgba(239,49,36,0); } 50% { text-shadow: 0 0 18px rgba(239,49,36,.35); } }
html.status .num-live { animation: none !important; text-shadow: none !important; }

.card .icon3d, .stat .icon3d { position: absolute; }
.num-live .dg { white-space: pre; }

/* Коя без фона: живёт кодом, пока нет чистых видео-лупов */
@keyframes koyaBreathe { 0%, 100% { transform: translateY(0) rotate(0deg) scale(1); } 30% { transform: translateY(-8px) rotate(-1.2deg) scale(1.012); } 65% { transform: translateY(-3px) rotate(.8deg) scale(1.005); } }
@keyframes koyaShadow { 0%, 100% { transform: scaleX(1); opacity: .9; } 30% { transform: scaleX(.86); opacity: .6; } }
.koya-free img { animation: koyaBreathe 4.6s ease-in-out infinite; transform-origin: 50% 100%; }
.koya-free::after { animation: koyaShadow 4.6s ease-in-out infinite; }
html.status .koya-free img, html.status .koya-free::after { animation: none; }

/* ---------- Детский канал: видеостена ---------- */
.vwall { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; perspective: 1200px; }
.vtile { text-align: left; display: grid; gap: 10px; padding: 0; color: var(--d-ink); transform-style: preserve-3d; }
.vtile__frame { position: relative; aspect-ratio: 16 / 9; border-radius: 18px; overflow: hidden; background: #0b0e14; border: 1px solid rgba(255,223,162,.22); box-shadow: 0 24px 60px rgba(0,0,0,.5), inset 0 0 0 1px rgba(255,255,255,.03); transition: transform .5s var(--ease), box-shadow .5s var(--ease), border-color .5s; }
.vtile:hover .vtile__frame { transform: translateY(-6px) scale(1.02); box-shadow: 0 34px 80px rgba(0,0,0,.6), 0 0 40px rgba(255,223,162,.12); border-color: rgba(255,223,162,.6); }
.vtile__poster, .vtile__prev { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: opacity .35s; }
.vtile__prev { opacity: 0; }
.vtile.is-prev .vtile__prev { opacity: 1; }
.vtile__frame::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(10,13,18,0) 55%, rgba(10,13,18,.65)); pointer-events: none; }
.vtile__play { position: absolute; left: 50%; top: 50%; width: 64px; height: 64px; transform: translate(-50%, -50%); border-radius: 50%; background: var(--plate-grad); box-shadow: 0 14px 34px rgba(0,0,0,.5), 0 0 0 8px rgba(255,223,162,.12); display: grid; place-items: center; z-index: 2; transition: transform .35s var(--ease), box-shadow .35s; }
.vtile:hover .vtile__play { transform: translate(-50%, -50%) scale(1.1); box-shadow: 0 14px 34px rgba(0,0,0,.5), 0 0 0 14px rgba(255,223,162,.16); }
.vtile__play i { display: block; width: 0; height: 0; border-left: 18px solid #1c1608; border-top: 11px solid transparent; border-bottom: 11px solid transparent; margin-left: 5px; }
.vtile__num { position: absolute; left: 14px; top: 12px; z-index: 2; font-weight: 700; font-size: 14px; letter-spacing: .06em; color: var(--gold4); }
.vtile__dur { position: absolute; right: 12px; bottom: 10px; z-index: 2; font-family: 'Styrene B', sans-serif; font-size: 12px; padding: 3px 8px; border-radius: 999px; background: rgba(10,13,18,.7); color: var(--d-ink); }
.vtile__t { font-weight: 700; font-size: clamp(16px, 1.2vw, 20px); line-height: 1.15; margin-top: 4px; }
.vtile__s { font-family: 'Styrene B', sans-serif; font-size: 12.5px; color: var(--d-ink2); line-height: 1.4; }
.vmodal { border: 0; padding: 0; background: transparent; max-width: min(1200px, 92vw); width: 92vw; overflow: visible; }
.vmodal::backdrop { background: rgba(6,8,12,.86); backdrop-filter: blur(10px); }
.vmodal video { width: 100%; aspect-ratio: 16 / 9; border-radius: 22px; background: #000; display: block; box-shadow: 0 40px 100px rgba(0,0,0,.7), 0 0 0 1px rgba(255,223,162,.25); }
.vmodal__cap { margin-top: 14px; text-align: center; color: var(--d-ink2); font-family: 'Styrene B', sans-serif; font-size: 13px; letter-spacing: .04em; }
.vmodal__close { position: absolute; right: -6px; top: -50px; width: 40px; height: 40px; border-radius: 50%; background: rgba(255,255,255,.08); color: #fff; font-size: 26px; line-height: 1; display: grid; place-items: center; }
.vmodal__close:hover { background: var(--plate-grad); color: #1c1608; }
@media (max-width: 1180px) { .vwall { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 900px) { .vwall { grid-template-columns: 1fr 1fr; gap: 12px; } .vtile__play { width: 48px; height: 48px; } }
/* видеостена: первый ролик крупно, остальные столбиком справа */
.vwall { grid-template-columns: repeat(12, 1fr); grid-auto-rows: auto; }
.vtile:first-child { grid-column: span 7; grid-row: span 3; }
.vtile:first-child .vtile__frame { border-radius: 24px; }
.vtile:first-child .vtile__t { font-size: clamp(22px, 1.8vw, 30px); }
.vtile:first-child .vtile__play { width: 84px; height: 84px; }
.vtile:not(:first-child) { grid-column: span 5; grid-template-columns: 200px 1fr; align-items: center; gap: 16px; }
.vtile:not(:first-child) .vtile__frame { border-radius: 14px; }
.vtile:not(:first-child) .vtile__play { width: 44px; height: 44px; }
.vtile:not(:first-child) .vtile__play i { border-left-width: 12px; border-top-width: 7px; border-bottom-width: 7px; }
.vtile:not(:first-child) .vtile__num { font-size: 12px; left: 10px; top: 8px; }
.vtile:not(:first-child) .vtile__t { margin: 0; }
.vtile:not(:first-child) > div:last-child { grid-column: 2; }
.vtile:not(:first-child) .vtile__t { grid-column: 2; align-self: end; }
.vtile:not(:first-child) .vtile__frame { grid-row: 1 / span 2; }
@media (max-width: 1180px) { .vwall { grid-template-columns: 1fr; } .vtile:first-child, .vtile:not(:first-child) { grid-column: auto; grid-row: auto; } }

/* ---------- Светлый мир: переливы и блески ---------- */
@keyframes redflow { 0% { background-position: 0% 50%; } 100% { background-position: 200% 50%; } }
.sec--light .red, .sec--light .lcover__title .a, .sec--light .rt__row .tot, .vf .pair .to, .dec .n, .cols .hi b, .mini .hi b, .dl--up .r b, .funnel .gcard.hi .num, .lcover__stats .num.red {
  background-image: linear-gradient(100deg, #EF3124 0%, #EF3124 30%, #FF8A7A 45%, #FFB3A6 50%, #FF8A7A 55%, #EF3124 70%, #EF3124 100%);
  background-size: 220% 100%; -webkit-background-clip: text; background-clip: text; color: transparent; animation: redflow 4.2s linear infinite;
}
.sec--light .h2 .red { animation-duration: 6s; }
/* стеклянные плашки: заметная бегущая кромка и мягкое внутреннее сияние */
.glass::before, .gcard::before, .podium .step::before { background: conic-gradient(from var(--ang), transparent 0 50%, rgba(255,255,255,0) 58%, rgba(239,49,36,.85) 72%, #fff 78%, rgba(217,233,255,1) 84%, rgba(255,255,255,0) 92%); padding: 1.5px; }
.glass, .gcard, .quote, .rt__row, .tile, .podium .step { box-shadow: 0 24px 70px rgba(46,45,63,.10), inset 0 1px 0 rgba(255,255,255,.95), inset 0 0 40px rgba(255,255,255,.35); }
@keyframes glassBreath { 0%, 100% { box-shadow: 0 24px 70px rgba(46,45,63,.10), inset 0 1px 0 #fff, inset 0 0 30px rgba(255,255,255,.3); } 50% { box-shadow: 0 30px 80px rgba(239,49,36,.10), inset 0 1px 0 #fff, inset 0 0 60px rgba(255,255,255,.6); } }
.glass, .gcard { animation: glassBreath 6s ease-in-out infinite; animation-delay: calc(var(--i, 0) * -.8s); }
/* красные капсулы, кнопки, столбики, дорожка: пробегающий блик */
.pill--red, .seg button[aria-pressed="true"], .tile.seven, .road__step.first .b, .cols .hi i, .mini .hi i, .dl--up .r i, .road__fill, .strip__bar i, .btn--gold, .rt__row.m1, .funnel .gcard.hi, .nextcards .gcard.acq, .podium .step.s1 { position: relative; overflow: hidden; }
.pill--red::after, .seg button[aria-pressed="true"]::after, .tile.seven::after, .road__step.first .b::after, .cols .hi i::after, .mini .hi i::after, .dl--up .r i::after, .road__fill::after, .rt__row.m1::before, .funnel .gcard.hi::after, .nextcards .gcard.acq::after, .podium .step.s1::after {
  content: ''; position: absolute; inset: -10% -30%; background: linear-gradient(105deg, transparent 35%, rgba(255,255,255,.55) 50%, transparent 65%); animation: goldsheen 4.6s var(--ease) infinite; animation-delay: calc(var(--i, 0) * -.7s); pointer-events: none; z-index: 2;
}
.rt__row.m1::before { background: linear-gradient(105deg, transparent 35%, rgba(255,200,60,.35) 50%, transparent 65%); }
.podium .step.s1::after, .funnel .gcard.hi::after, .nextcards .gcard.acq::after { background: linear-gradient(105deg, transparent 35%, rgba(255,255,255,.7) 50%, transparent 65%); animation-duration: 6s; }
/* мягкие столбики дышат цветом */
@keyframes lilacBreath { 0%, 100% { background-color: var(--lilac); } 50% { background-color: #E3D6FF; } }
.cols div:not(.hi) i, .mini div:not(.hi):not(.pre) i { animation: lilacBreath 5s ease-in-out infinite; animation-delay: calc(var(--i, 0) * -.6s); }
/* цифры в плитках и кубке */
@keyframes trophyGlow { 0%, 100% { filter: drop-shadow(0 20px 30px rgba(242,176,45,.45)); } 50% { filter: drop-shadow(0 20px 30px rgba(242,176,45,.45)) drop-shadow(0 0 30px rgba(255,200,60,.8)); } }
.podium .trophy { animation: trophyGlow 3.6s ease-in-out infinite; }
.sec--light .num-live { animation: redPulse 3.4s ease-in-out infinite; }
/* пастельные пятна светлого фона: ярче и живее */
.pastel i { opacity: .95; }
@keyframes pastelHue { 0%, 100% { filter: blur(70px) hue-rotate(0deg); } 50% { filter: blur(70px) hue-rotate(-14deg); } }
.pastel i { animation: pastelHue 12s ease-in-out infinite; }
html.status .sec--light .red, html.status .glass, html.status .gcard, html.status .pastel i, html.status .podium .trophy, html.status .cols i, html.status .mini i { animation: none !important; }
html.status .pill--red::after, html.status .seg button::after, html.status .tile.seven::after, html.status .cols .hi i::after, html.status .mini .hi i::after, html.status .dl--up .r i::after, html.status .road__fill::after, html.status .rt__row.m1::before, html.status .funnel .gcard.hi::after, html.status .nextcards .gcard.acq::after, html.status .podium .step.s1::after, html.status .road__step.first .b::after { display: none; }

/* (ревью X-03: удалены правила видео-героини обложки — видео не подключено) */
.cover .bgimg::after { background: radial-gradient(70% 90% at 78% 60%, rgba(255,200,120,.06), transparent 60%), linear-gradient(180deg, rgba(10,13,18,.3), rgba(10,13,18,.75)); }
@media (max-width: 1500px) and (min-width: 901px) { .cover .wrap { position: relative; z-index: 3; } }

/* ==== СПОКОЙНЫЙ РЕЖИМ: убраны постоянные переливы и мигание, оставлены появление и реакция на курсор ==== */
.gold, .h2 .gold, .h1 .gold, .num.gold, .tag b, .tl__item .d, .bar-row .pct, .spark .v, .qbars b, .agenda li b, .dirs span b,
.hair, .tl__fill, .progress, .eyebrow::before, .spark i, .qbars i, .panel, .stat .icon3d, .chip, .chip--lead,
.sec--dark .num.gold.num-live, .sec--light .num-live, .sec--light .red, .sec--light .lcover__title .a, .sec--light .rt__row .tot, .vf .pair .to, .dec .n, .cols .hi b, .mini .hi b, .dl--up .r b, .funnel .gcard.hi .num, .lcover__stats .num.red,
.glass, .gcard, .cols i, .mini i, .podium .trophy, .pastel i, .koya-free img, .koya-free::after, .card::after, .panel::after, .glass::after, .gcard::after, .quote::after, .rt__row::after, .tile::after, .podium .step::after, .phone .screen::after { animation: none !important; }
.gold { background-position: 40% 50%; }
.sec--light .red, .sec--light .lcover__title .a, .sec--light .rt__row .tot, .vf .pair .to, .dec .n, .cols .hi b, .mini .hi b, .dl--up .r b, .funnel .gcard.hi .num, .lcover__stats .num.red { background-image: none; -webkit-background-clip: initial; background-clip: initial; color: var(--alfa); }
.card::before, .chip::after, .agenda li::after, .stat::after, .glass::before, .gcard::before, .podium .step::before,
.card--gold::after, .btn--gold::after, .phone .ch i::after, .rt__row.m1 .pl i::after, .chip--live .bar i::after, .bar-row .fill::after,
.pill--red::after, .seg button[aria-pressed="true"]::after, .tile.seven::after, .road__step.first .b::after, .cols .hi i::after, .mini .hi i::after, .dl--up .r i::after, .road__fill::after, .rt__row.m1::before, .funnel .gcard.hi::after, .nextcards .gcard.acq::after, .podium .step.s1::after { display: none !important; }
.glass, .gcard, .quote, .rt__row, .tile, .podium .step { box-shadow: 0 24px 70px rgba(46,45,63,.10), inset 0 1px 0 rgba(255,255,255,.9); }
.chip { box-shadow: none; }
.stat .icon3d, .icon3d { filter: drop-shadow(0 18px 24px rgba(0,0,0,.45)); }
.pastel i { filter: blur(70px); }
.num-live { filter: none !important; }
/* блик за курсором остаётся только при наведении */
.card::after, .panel::after, .glass::after, .gcard::after, .quote::after, .rt__row::after, .tile::after, .podium .step::after, .phone .screen::after { opacity: 0; }
.is-hover::after { opacity: 1 !important; }
/* Коя без фона: только мягкое покачивание */
@keyframes koyaSoft { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-6px); } }
.koya-free img { animation: koyaSoft 5s ease-in-out infinite !important; }

/* ==== СТАТИЧНЫЕ ПЛАШКИ: без блика и наклона ==== */
.card::after, .panel::after, .glass::after, .gcard::after, .quote::after, .rt__row::after, .tile::after, .podium .step::after, .phone .screen::after { display: none !important; }
.tilt { transform: none !important; }
/* подстраховка появления: элементы, собранные после входа в секцию */
.sec.is-in .rv, .sec.is-in .rv-l, .sec.is-in .rv-r, .sec.is-in .rv-s { opacity: 1; transform: none; }

/* ==== КОЯ: статичные кадры без подложек, как героиня на обложке ==== */
.koya3d::after, .koya-free::after { display: none; }
.koya3d, .participation .koya-side, .quality .koya-side, .vocfcr .koya-side, .nextgame .koya-side, .koya-free img { filter: drop-shadow(0 30px 40px rgba(120,40,30,.18)); }
.koya3d img { transform: translateZ(0); }
.koya3d { right: -4%; height: 92%; }
.participation .koya-side, .quality .koya-side { right: 4%; height: min(70vh, 720px); }
.vocfcr .koya-side { right: 3%; width: min(30vw, 460px); }
.nextgame .koya-side { position: absolute; right: 4%; top: 5%; height: min(34vh, 360px); z-index: 1; pointer-events: none; }
.nextgame .koya-side img { height: 100%; width: auto; }
.nextgame .sec-head { max-width: 62%; }
.quotes .koya-free { width: min(360px, 80%); margin-top: 6px; }
.portal-back__card .inner img { right: 0; bottom: 0; height: 84%; transform: scaleX(-1); object-fit: contain; }
@media (max-width: 900px) { .nextgame .koya-side { display: none; } .nextgame .sec-head { max-width: none; } }

/* ==== РОВНЫЕ КАРТОЧКИ С ЦИФРАМИ: число, подпись и уточнение на одной линии ==== */
.stat { align-content: start; grid-template-rows: auto auto 1fr; gap: 0; padding-right: 40%; min-height: 176px; }
.stat .num { line-height: .95; min-height: .95em; display: block; }
.stat .unit { margin-top: 12px; min-height: 2.5em; line-height: 1.25; display: block; align-self: start; }
.stat .cap { margin-top: 0; min-height: 2.8em; align-self: start; }
.stat .icon3d { width: 32%; right: 4%; bottom: 14px; }
.voice-facts .card, .qgrid .card { align-content: start; grid-template-rows: auto 1fr; }
.voice-facts .num, .qgrid .num { line-height: .95; min-height: .95em; display: block; }
.voice-facts .card .cap, .qgrid .card .cap { margin-top: 10px; align-self: start; }
@media (max-width: 900px) {
  .stat { padding-right: 0; min-height: 0; padding-bottom: 76px; }
  .stat .unit, .stat .cap { min-height: 0; }
  .stat .unit { margin-top: 8px; }
  .stat .icon3d { width: 62px; right: 10px; bottom: 10px; }
}

/* ==== ЭКРАН ЦЕЛИКОМ НА НОУТБУКЕ (1280×720, показ через Zoom) ==== */
@media (min-width: 901px) and (max-height: 830px) {
  :root { --hdr: 60px; }
  .sec { padding: calc(var(--hdr) + 16px) 0 42px; }
  .sec-head { margin-bottom: 14px; gap: 8px; }
  .h1 { font-size: clamp(36px, 5.2vw, 76px); }
  .h2 { font-size: clamp(23px, 2.3vw, 34px); }
  .lead { font-size: clamp(14px, 1.05vw, 17px); line-height: 1.4; }
  .panel { padding: clamp(14px, 1.5vw, 22px); }
  .card { padding: 14px 16px; }
  .bars { gap: 6px; }
  .bar-row .track { height: 18px; margin-top: 4px; }
  .bar-row .val .num { font-size: clamp(19px, 1.5vw, 24px); }
  .now-list .card { min-height: 78px; padding: 10px 12px; }
  .spark { height: 78px; }
  .qbars { height: 84px; }
  .mini { height: 88px; }
  .cols { height: clamp(150px, 25vh, 240px); }
  .ring { width: clamp(150px, 14vw, 200px); }
  .stat { min-height: 132px; }
  .stat .num { font-size: clamp(32px, 3vw, 48px); }
  .chips { gap: 8px; }
  .tl__item .card { min-height: 150px; }
  .funnel { margin-top: 14px; }
  .podium { min-height: 300px; padding-top: 112px; }
  .podium .step.s1 { height: 180px; }
  .podium .trophy { width: 116px; bottom: 186px; }
  .vtile__t { font-size: 15px; }
  .agenda li { padding: 9px 14px; }
  .src, .lt-src { margin-top: 14px; }
}

/* ==== РОВНЫЕ СТЫКИ ТЁМНЫХ ЭКРАНОВ: фон один, свечение затухает к краям ==== */
.sec--dark { background: var(--d-bg0); }
.sec--dark::before {
  background:
    radial-gradient(85% 60% at 78% 58%, rgba(40,52,74,.55), transparent 72%),
    radial-gradient(60% 45% at 18% 22%, rgba(255,223,162,.07), transparent 62%),
    radial-gradient(50% 38% at 85% 26%, rgba(92,181,167,.05), transparent 62%);
}
/* героини растворяются у нижнего края секции, а не обрезаются прямой линией */
.hero-fig img { -webkit-mask-image: linear-gradient(to bottom, #000 74%, rgba(0,0,0,.6) 90%, transparent 100%); mask-image: linear-gradient(to bottom, #000 74%, rgba(0,0,0,.6) 90%, transparent 100%); }

/* ==== ПЬЕДЕСТАЛ: место подписано, пустых ступеней нет ==== */
.podium .step .pl { font-family: 'Styrene B', sans-serif; font-size: 10.5px; letter-spacing: .1em; text-transform: uppercase; color: var(--l-ink2); }
.podium:has(.step.s2:not(:first-of-type)) { grid-template-columns: 1fr 1fr 1fr; }

/* ==== ПОДСКАЗКА СО СТРЕЛКАМИ: уходит после первого листания ==== */
.kbd-hint { transition: opacity .5s var(--ease), transform .5s var(--ease); }
.kbd-hint.is-off { opacity: 0 !important; transform: translateY(8px); pointer-events: none; }

/* ==== ТЕЛЕФОН: ничего не обрезается ==== */
@media (max-width: 900px) {
  .hdr { gap: 8px; padding: 0 14px; }
  .hdr__logo { height: 24px; margin-left: 6px; }
  .hdr__brand b { font-size: 13px; }
  .now-list { grid-template-columns: 1fr 1fr; }
  .now-list .card { min-height: 0; }
  .phones { grid-template-columns: 1fr; width: 100%; max-width: 320px; margin-inline: auto; }
  .phone { aspect-ratio: auto; min-height: 420px; }
  .phone .er .num { font-size: 34px; }
  .phone .ch { font-size: 12px; flex-wrap: wrap; }
  /* таблица рейтинга прокручивается вбок, а не слипается */
  .rt { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .rt__head, .rt__row { grid-template-columns: 34px minmax(120px, 1fr) 46px 52px 40px 52px; min-width: 360px; gap: 6px; }
  .rt__head { font-size: 9px; }
  .podium .trophy { position: relative; left: auto; bottom: auto; transform: none; width: 96px; margin: 0 auto 6px; display: block; }
  .podium { padding-top: 0; min-height: 0; }
  /* подписи чисел не разваливаются на две строки */
  .cols b, .cols span, .mini b, .mini span, .qbars b, .qbars span, .spark .v, .spark b { white-space: nowrap; }
  .cols span, .mini span { font-size: 10.5px; }
  .funnel { grid-template-columns: 1fr; }
  .funnel .arr { display: none; }
  /* финал: список дат читается поверх героини */
  .final .agenda li { background: rgba(12,16,23,.86); border-color: rgba(255,223,162,.16); }
  .final .hero-fig { opacity: .22 !important; }
  /* портал: текст не тонет в светлом проёме */
  .portal__txt .h2, .portal__txt .eyebrow { text-shadow: 0 2px 18px rgba(0,0,0,.75), 0 1px 3px rgba(0,0,0,.6); }
}

/* ==== ОБЛОЖКА ЧЕМПИОНАТА: подпись под плитками, а не на Кое ==== */
.tile-cap { grid-column: 1 / -1; align-self: start; margin-top: 8px; max-width: 260px; font-size: 12px; }

/* ==== ДЕТСКИЙ КАНАЛ: кнопка не закрывает надписи на кадре ==== */
.vtile__play { left: 16px; top: auto; bottom: 14px; transform: none; width: 52px; height: 52px; }
.vtile:hover .vtile__play { transform: scale(1.08); }
.vtile__play i { border-left-width: 15px; border-top-width: 9px; border-bottom-width: 9px; margin-left: 4px; }
.vtile__num { background: rgba(10,13,18,.6); padding: 2px 8px; border-radius: 999px; backdrop-filter: blur(4px); }
@media (max-width: 900px) { .vtile__play { width: 42px; height: 42px; left: 10px; bottom: 10px; } }

/* ==== ДАЛЬШЕ: Коя не наезжает на финиш дорожки ==== */
.nextgame .koya-side { right: 2%; top: 0; height: min(26vh, 260px); }
.nextgame .sec-head { max-width: 66%; }

/* добивка под 720px по высоте: AI, детский канал, результаты, обложка чемпионата */
@media (min-width: 901px) and (max-height: 830px) {
  .chip { min-height: 84px; padding: 10px 12px; gap: 6px; }
  .chip .name { font-size: 13px; }
  .chip .num { font-size: 23px; }
  .chip .pct { font-size: 17px; }
  .chip--lead { min-height: 174px; padding: 14px 16px; }
  .chip--lead .name { font-size: clamp(17px, 1.4vw, 23px); }
  .chip--lead .num { font-size: clamp(42px, 3.8vw, 64px); }
  .chip--lead .pct { font-size: 26px; }
  .vwall { gap: 12px; }
  .vtile__t { font-size: 15px; margin-top: 2px; }
  .vtile__s { font-size: 11.5px; }
  .rt { gap: 6px; }
  .rt__row { padding: 8px 14px; font-size: 14px; }
  .rt__row .pl i { width: 26px; height: 26px; }
  .rt__row .tot { font-size: 18px; }
  .prizes { margin-top: 10px; }
  .lcover__title { font-size: clamp(44px, 5.6vw, 88px); }
  .lcover__goal { padding: 10px 14px; }
  .lcover__stats { gap: 18px; }
}
@media (min-width: 901px) and (max-height: 830px) {
  .kids .lead { font-size: 14px; }
  .kids .sec-head { margin-bottom: 10px; }
  .src, .lt-src { margin-top: 10px; font-size: 10.5px; }
  .lcover__stats { gap: 16px; margin-top: 4px; }
}

/* ==== ДОВОДКА ПОСЛЕ ПРАВОК ==== */
/* пьедестал: две ступени (при делёжке места) стоят по центру, а не с дырой справа */
.podium { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); justify-content: center; }
/* конфетти сыпется позади таблицы, а не поверх цифр */
.confetti { z-index: 1; }
/* Коя на «Дальше» не заходит в шапку и не закрывает финиш дорожки */
.nextgame .koya-side { top: calc(var(--hdr) + 6px); right: 3%; height: min(22vh, 220px); }
.road__step.fin .d { position: relative; z-index: 4; }
@media (max-width: 900px) {
  .rt__head, .rt__row { grid-template-columns: 28px minmax(96px, 1fr) 42px 48px 32px 44px; min-width: 316px; gap: 4px; font-size: 12px; }
}
/* на дорожке уже есть Коя с флагом — вторая бегущая иконка дублировала финиш */
/* подписи к двум разрезам в ряду тегов */
.tag-group { font-family: 'Styrene B', sans-serif; font-size: 10.5px; letter-spacing: .1em; text-transform: uppercase; color: var(--d-muted); align-self: center; margin-right: 2px; }
.tag-group:not(:first-child) { margin-left: 10px; }
.tag-group--teal { color: rgba(92,181,167,.85); }

/* ==== ПРОИЗВОДИТЕЛЬНОСТЬ СВЕТЛЫХ ЭКРАНОВ ====
   mix-blend-mode ломал кэш слоя, а backdrop-filter поверх движущихся размытых
   пятен пересчитывался каждый кадр — из-за этого скролл «залипал». */
.pastel i { mix-blend-mode: normal; filter: blur(56px); opacity: .5; }
.glass { backdrop-filter: none; -webkit-backdrop-filter: none; background: rgba(255,255,255,.72); }
.koya3d img, .koya-side img, .koya-free img, .hero-fig img { will-change: transform; }

/* ==== ГРАФИКИ: подпись стоит над своим столбиком, пропорции сохраняются ====
   Высота столбика считается от части трека, чтобы подпись и название влезали
   без сжатия (раньше flex-shrink «сплющивал» высокие столбики до средних). */
.spark div, .qbars div, .cols div, .mini div { display: flex; flex-direction: column; justify-content: flex-end; }
.spark i, .qbars i, .cols i, .mini i { flex: 0 0 auto; }
.spark i { height: calc(var(--h) * 0.62); }
.qbars i { height: calc(var(--h) * 0.60); }
.cols i  { height: calc(var(--h) * 0.72); }
.mini i  { height: calc(var(--h) * 0.66); }
.spark i, .qbars i, .cols i, .mini i { align-self: stretch; }
.spark .v, .qbars b, .cols b, .mini b { white-space: nowrap; }

/* ==== МОБИЛЬНЫЕ ПРАВКИ: Коя не закрывает плитки, шапка рейтинга не слипается ==== */
@media (max-width: 900px) {
  .lcover__scene { height: auto; display: grid; grid-template-columns: 1fr 44%; align-items: end; gap: 8px; min-height: 0; }
  .tiles { position: relative; left: 0; top: 0; grid-template-columns: repeat(3, 52px); gap: 6px; }
  .tile-cap { max-width: none; font-size: 11px; }
  .koya3d { position: relative; right: 0; bottom: 0; height: auto; width: 100%; justify-self: end; }
  .koya3d img { height: auto; width: 100%; max-height: 280px; object-fit: contain; object-position: bottom; }
  .rt__head { font-size: 8.5px; letter-spacing: 0; line-height: 1.1; }
  .rt__head span { overflow-wrap: anywhere; }
}
/* ревью T-02: вместо спрятанного «Место» в шапке рейтинга теперь «№», прятать не нужно */

/* ==== ПЕРЕЛИВ ЗОЛОТА: только на золотых надписях и цифрах, остальное спокойное ==== */
.gold, .h2 .gold, .h1 .gold, .num.gold, .sec--dark .num.gold.num-live, .tag b, .tl__item .d, .bar-row .pct, .spark .v, .qbars b, .agenda li b, .dirs span b, .eyebrow, .portal__txt .gold, .portal-back__txt .gold {
  background-image: linear-gradient(100deg, #A78861 0%, #C1A173 22%, #FFDFA2 40%, #FFF3D0 47%, #FFDFA2 54%, #C1A173 72%, #A78861 100%);
  background-size: 200% 100%; -webkit-background-clip: text; background-clip: text; color: transparent;
  animation: goldflow 7s linear infinite !important;
}
.h1 .gold { animation-duration: 8s !important; }
.num.gold, .spark .v, .qbars b, .bar-row .pct { animation-duration: 6s !important; }
.eyebrow, .tag b, .tl__item .d, .agenda li b, .dirs span b { animation-duration: 9s !important; }
html.status .gold, html.status .num.gold, html.status .eyebrow, html.status .tag b, html.status .tl__item .d, html.status .bar-row .pct, html.status .spark .v, html.status .qbars b, html.status .agenda li b, html.status .dirs span b { animation: none !important; }
@media (prefers-reduced-motion: reduce) { .gold, .num.gold, .eyebrow, .tag b { animation: none !important; } }

/* ==== ЭКВАЙРИНГ: ровная дорожка, кубок из библиотеки, крупная Коя ==== */
.road__step { transform: none !important; }
.road__step.fin .b { width: 78px; height: 78px; background: none; border: 0; box-shadow: none; border-radius: 0; overflow: visible; margin-top: -18px; }
.road__step.fin .b img { width: 100%; height: 100%; object-fit: contain; filter: drop-shadow(0 12px 20px rgba(242,176,45,.45)); }
.road__step.fin .b::after { display: none !important; }
@media (min-width: 901px) {
  .nextgame .glass { width: 80%; }
  .nextgame .sec-head { max-width: 60%; }
  .nextgame .koya-side { top: auto; bottom: 6%; right: 0; height: min(64vh, 680px); }
}
.road__step.fin .b { width: 76px; height: 76px; margin-top: -22px; }
.road__step.fin { gap: 8px; }
@media (min-width: 901px) { .nextgame .koya-side { right: -2%; height: min(58vh, 600px); bottom: 5%; } .nextgame .glass { width: 78%; } }
.road__step.fin .b { width: 54px; height: 54px; margin-top: 0; }
.road__step.fin .b img { width: 88px; height: 88px; max-width: none; transform: translateY(-17px); }

/* ==== ПОРТАЛ: стражи у ворот ==== */
.portal__guard { position: absolute; bottom: 0; height: 82vh; z-index: 1; pointer-events: none; will-change: transform, opacity; filter: drop-shadow(0 30px 50px rgba(0,0,0,.7)); }
.portal__guard img { height: 100%; width: auto; display: block; }
.portal__guard--l { left: 4%; }
.portal__guard--r { right: 4%; }
.portal__guard::after { content: ''; position: absolute; left: 10%; right: 10%; bottom: -2%; height: 10%; border-radius: 50%; background: radial-gradient(50% 50% at 50% 50%, rgba(255,223,162,.35), transparent 70%); filter: blur(14px); z-index: -1; }
@media (max-width: 1400px) { .portal__guard { height: 70vh; } .portal__guard--l { left: 0; } .portal__guard--r { right: 0; } }
@media (max-width: 900px) { .portal__guard { height: 44vh; } .portal__guard--l { left: -14%; } .portal__guard--r { right: -14%; } }
.portal__hint { z-index: 2; text-shadow: 0 2px 12px rgba(0,0,0,.9); }
.road__step.fin .b img { width: 80px; height: 80px; transform: translateY(-26px); }
.road__step.fin .d { margin-top: 4px; }

/* ==== ФИНАЛ: героиня слева, список справа, частицы как на обложке ==== */
.final canvas { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 1; pointer-events: none; }
@media (min-width: 901px) {
  .final .hero-fig { right: auto; left: 2%; height: min(96vh, 1060px); }
  .final .wrap > div:first-child { grid-column: 2; }
  .final .wrap > div:last-child { grid-column: 1; grid-row: 1; }
}
.final::after { content: ''; position: absolute; inset: 0; background: radial-gradient(60% 80% at 22% 60%, rgba(255,200,120,.08), transparent 60%); pointer-events: none; z-index: 0; }
@media (min-width: 901px) { .final .hero-fig img { transform: scaleX(-1); } .final .hero-fig { left: 4%; } }

/* ==== ВОЗВРАЩЕНИЕ В ШТАБ: три тезиса под заголовком ==== */
.portal-back__txt { gap: 14px; }
.pb-pts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; max-width: 58%; margin-top: 10px; }
.pb-pts .card { display: grid; align-content: start; gap: 6px; padding: 18px 18px 16px; padding-right: 26%; min-height: 150px; }
.pb-pts .card .icon3d { position: absolute; right: 12px; top: 12px; width: 21%; max-width: 64px; }
.pb-pts .num { font-size: clamp(24px, 1.9vw, 32px); line-height: 1; }
.pb-pts .t { font-weight: 700; font-size: 13.5px; line-height: 1.2; }
.pb-pts .b { font-family: 'Styrene B', sans-serif; font-size: 12px; color: var(--d-ink2); line-height: 1.4; }
@media (max-width: 1400px) { .pb-pts { max-width: 62%; } }
@media (max-width: 900px) { .pb-pts { max-width: none; grid-template-columns: 1fr; gap: 8px; } .pb-pts .card { min-height: 0; } .portal-back__txt { top: 10vh; } }


/* ==== ШАПКА: переходы по частям презентации, статусы, оглавление, режим показа ==== */
.tabs { display: flex; gap: 4px; padding: 4px; border-radius: 999px; border: 1px solid rgba(255,223,162,.18); background: rgba(255,255,255,.04); }
.tabs button { height: 30px; padding: 0 14px; border-radius: 999px; font-family: 'Styrene B', sans-serif; font-size: 12.5px; letter-spacing: .02em; color: var(--d-ink2); transition: background .25s, color .25s; }
.tabs button:hover { color: var(--d-ink); }
.tabs button[aria-pressed="true"] { background: var(--plate-grad); color: #1c1608; font-weight: 500; }
html[data-theme="light"] .tabs { border-color: rgba(32,26,36,.14); background: rgba(255,255,255,.5); }
html[data-theme="light"] .tabs button { color: var(--l-ink2); }
html[data-theme="light"] .tabs button[aria-pressed="true"] { background: var(--alfa); color: #fff; }
.menu-btn { display: inline-flex; align-items: center; gap: 9px; height: 34px; padding: 0 14px 0 12px; border-radius: 999px; border: 1px solid rgba(255,223,162,.35); background: rgba(255,223,162,.08); color: var(--d-ink); font-family: 'Styrene B', sans-serif; font-size: 12.5px; font-weight: 500; transition: background .25s; }
.menu-btn:hover { background: rgba(255,223,162,.16); }
.menu-btn i { width: 16px; height: 10px; position: relative; }
.menu-btn i::before, .menu-btn i::after { content: ''; position: absolute; left: 0; right: 0; height: 2px; border-radius: 2px; background: currentColor; top: 0; }
.menu-btn i::after { top: 8px; width: 70%; }
html[data-theme="light"] .menu-btn { border-color: rgba(239,49,36,.35); background: rgba(239,49,36,.08); color: var(--l-ink); }

/* ==== МЕНЮ-ОГЛАВЛЕНИЕ ==== */
.menu { position: fixed; inset: 0; z-index: 200; background: rgba(6,8,12,.55); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); display: grid; place-items: start center; padding: calc(var(--hdr) + 16px) 16px 24px; opacity: 0; transition: opacity .3s; overflow: auto; }
.menu.is-open { opacity: 1; }
.menu__panel { width: min(1080px, 100%); background: rgba(14,18,26,.94); border: 1px solid rgba(255,223,162,.22); border-radius: 26px; box-shadow: 0 40px 120px rgba(0,0,0,.6); padding: 22px 26px 18px; transform: translateY(-14px); transition: transform .35s var(--ease); }
.menu.is-open .menu__panel { transform: none; }
html[data-theme="light"] .menu { background: rgba(246,244,251,.6); }
html[data-theme="light"] .menu__panel { background: rgba(255,255,255,.92); border-color: rgba(32,26,36,.1); box-shadow: 0 40px 120px rgba(46,45,63,.25); }
.menu__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 18px; }
.menu__close { width: 38px; height: 38px; border-radius: 50%; border: 1px solid rgba(255,223,162,.25); color: var(--d-ink); font-size: 24px; line-height: 1; display: grid; place-items: center; }
html[data-theme="light"] .menu__close { border-color: rgba(32,26,36,.14); color: var(--l-ink); }
.menu__cols { display: grid; grid-template-columns: 1fr 1fr; gap: 26px; }
.menu__title { font-family: 'Styrene B', sans-serif; font-size: 11.5px; letter-spacing: .14em; text-transform: uppercase; margin-bottom: 10px; }
.menu__col--dark .menu__title { color: var(--gold4); }
.menu__col--light .menu__title { color: var(--alfa); }
.menu__col a { display: grid; grid-template-columns: 34px 1fr; align-items: center; gap: 10px; padding: 9px 12px; border-radius: 12px; font-size: 15px; color: var(--d-ink); transition: background .2s, transform .2s var(--ease); }
.menu__col a b { font-family: 'Styrene B', sans-serif; font-size: 11px; letter-spacing: .1em; color: var(--d-muted); }
.menu__col--dark a:hover { background: rgba(255,223,162,.1); transform: translateX(4px); }
.menu__col--light a:hover { background: rgba(239,49,36,.08); transform: translateX(4px); }
html[data-theme="light"] .menu__col a { color: var(--l-ink); }
html[data-theme="light"] .menu__col a b { color: var(--l-ink2); }
.menu__modes { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
.menu__count { font-family: 'Styrene B', sans-serif; font-size: 13px; color: var(--d-muted); }
html[data-theme="light"] .menu__count { color: var(--l-ink2); }
.menu__foot a { color: var(--gold4); text-decoration: none; letter-spacing: 0; font-size: 13px; }
html[data-theme="light"] .menu__foot a { color: var(--alfa-dark, #C81E12); }
@media (pointer: coarse) { .kbd-only { display: none; } }   /* ревью C-05: подсказка про клавиши не нужна на тач-экранах */
.hdr__ext { text-decoration: none; white-space: nowrap; }
.hdr__brand b, .hdr__brand span { white-space: nowrap; }   /* ревью B-17: подпись бренда не переносится при масштабе 125 % */
.menu__foot { margin-top: 14px; padding-top: 12px; border-top: 1px solid rgba(255,223,162,.14); font-family: 'Styrene B', sans-serif; font-size: 11.5px; letter-spacing: .06em; color: var(--d-muted); }
html[data-theme="light"] .menu__foot { border-color: rgba(32,26,36,.1); color: var(--l-ink2); }

/* ==== ВХОД ПО КОДУ ==== */
.lock { position: fixed; inset: 0; z-index: 400; display: grid; place-items: center; padding: 20px; background: radial-gradient(70% 70% at 50% 40%, #151a24, #0A0D12); }
html.locked #main, html.locked .hdr, html.locked .snav, html.locked .kbd-hint, html.locked .progress { visibility: hidden; }
html.locked { overflow: hidden; }
.lock__card { width: min(460px, 100%); padding: 34px 32px 28px; border-radius: 26px; background: rgba(20,24,33,.9); border: 1px solid rgba(255,223,162,.22); box-shadow: 0 40px 120px rgba(0,0,0,.6); display: grid; gap: 12px; text-align: left; }
.lock__logo { height: 34px; width: auto; margin-bottom: 6px; }
.lock__card .h2 { font-size: 28px; margin: 0; color: var(--d-ink); }
.lock__card .lead { font-size: 14px; color: var(--d-ink2); margin: 0; }
.lock__row { display: grid; grid-template-columns: 1fr auto; gap: 10px; margin-top: 8px; }
.lock__row input { height: 46px; padding: 0 16px; border-radius: 14px; border: 1px solid rgba(255,223,162,.25); background: rgba(255,255,255,.05); color: var(--d-ink); font-size: 16px; letter-spacing: .12em; outline: none; }
.lock__row input:focus { border-color: var(--gold3); }
.lock__err { font-family: 'Styrene B', sans-serif; font-size: 12.5px; color: #ff8c7c; opacity: 0; transition: opacity .2s; }
.lock.is-err .lock__err { opacity: 1; }
.lock.is-err .lock__card { animation: lockShake .4s; }
@keyframes lockShake { 0%,100%{transform:none} 25%{transform:translateX(-8px)} 75%{transform:translateX(8px)} }

@media (max-width: 1100px) { .hdr__tools .tgl { display: none; } }   /* режимы на узком экране — в оглавлении (ревью U-03) */
@media (max-width: 1240px) { .hdr__brand span { display: none; } }   /* ревью B-17: дата в шапке не рвёт её на ноутбуке с масштабом */
@media (max-width: 900px) { .hdr__ext { display: none; } }
@media (max-width: 900px) { .menu__cols { grid-template-columns: 1fr; } .menu__panel { padding: 18px 16px; border-radius: 20px; } .menu__col a { font-size: 14px; } .lock__row { grid-template-columns: 1fr; } }
.lock[hidden], .menu[hidden] { display: none !important; }
html.prelock #lock[hidden] { display: grid !important; }   /* ревью S-02: экран кода виден сразу, до скриптов */
.src, .lt-src { display: none !important; }

/* ==== ВХОД: имя + индикатор базы ==== */
.lock__name { height: 44px; padding: 0 16px; border-radius: 14px; border: 1px solid rgba(255,223,162,.25); background: rgba(255,255,255,.05); color: var(--d-ink); font-size: 16px; outline: none; margin-top: 6px; }   /* 16 px: iPhone не увеличивает страницу при фокусе */
.lock__name:focus { border-color: var(--gold3); }
.dbstate { position: fixed; left: 50%; bottom: 18px; transform: translateX(-50%); z-index: 300; display: flex; align-items: center; gap: 8px; padding: 8px 14px; border-radius: 999px; background: rgba(14,18,26,.92); border: 1px solid rgba(255,223,162,.25); color: var(--d-ink); font-family: 'Styrene B', sans-serif; font-size: 12px; box-shadow: 0 14px 40px rgba(0,0,0,.4); }
.dbstate[hidden] { display: none !important; }   /* ревью B-02: display:flex выше перебивал hidden — пустая «пилюля» на всех экранах */
.dbstate i { width: 8px; height: 8px; border-radius: 50%; background: var(--gold3); }
.dbstate[data-mode="saving"] i { animation: dbPulse 1s ease-in-out infinite; }
.dbstate[data-mode="saved"] i { background: #5CB5A7; }
.dbstate[data-mode="offline"] i, .dbstate[data-mode="error"] i { background: #ff8c7c; }
@keyframes dbPulse { 50% { opacity: .3; } }

.menu__cols { grid-template-columns: 1fr 1fr 1fr; }
.menu__col--status .menu__title { color: #7ad0c1; }
.menu__col--status a:hover { background: rgba(92,181,167,.1); transform: translateX(4px); }
.menu__col a small { color: var(--d-muted); font-size: 11px; }
@media (max-width: 900px) { .menu__cols { grid-template-columns: 1fr; } }

/* ==== Узкие телефоны 360–420 px (ревью B-04): ничего не должно вылезать за экран ====
   Блок стоит последним, чтобы перекрыть многослойные правила выше. */
@media (max-width: 420px) {
  .punch .num { font-size: clamp(56px, 19vw, 96px); }
  .qgrid { grid-template-columns: 1fr 1fr; }
  .qgrid > :last-child { grid-column: 1 / -1; }
  .qgrid > *, .voice-facts > *, .stat-grid > *, .punch > *, .glass > *, .panel > * { min-width: 0; }
  .qgrid .cap, .voice-facts .cap { overflow-wrap: anywhere; }
  .dirs { flex-wrap: wrap; }
  .rt__head, .rt__row { grid-template-columns: 26px minmax(0, 1fr) 38px 44px 30px 40px; min-width: 0; gap: 4px; }
  .results .glass { padding: 14px 10px; }
  .podium { grid-auto-flow: row; grid-template-columns: 1fr; }
  .podium .s1 { order: -1; }   /* в одну колонку первое место идёт первым */
  .rt__row span:nth-child(2) { overflow-wrap: anywhere; padding-right: 4px; }
  .cols div, .mini div { min-width: 0; }
  .cols { gap: 6px; }
  .cols span { font-size: 12px; }
  .cols span .w { display: none; }   /* под столбиками только номер игры: «Игра 7» не помещалось в 7 колонок */
}
.cols span .w { font-style: normal; }

/* ==== НИЖНЯЯ ГРАНИЦА КЕГЛЯ (ревью T-02, T-03) ====
   Подписи и оси — не меньше 13 px, капс-метки — не меньше 12 px с разрядкой .06em.
   Блок стоит последним и перекрывает кегли 8,5–12 px из правил выше. */
.spark b, .tl__item .s, .podium .step .pl, .tag-group, .cols span, .mini span, .qbars span { font-size: 13px; text-transform: none; letter-spacing: .01em; }
.eyebrow, .hdr__brand span, .tl__item .d, .menu__title, .snav a span, .kbd-hint, .scroll-cue, .portal__hint { font-size: 12.5px; letter-spacing: .06em; font-weight: 500; }
.chip .pct small, .phone .next, .phone .post, .tile-cap, .menu__col a small, .now-list .m, .now-list .v small, .podium .step .p, .vtile__s, .menu__foot,
.bar-row .name small, .quote span, .dl .r, .pb-pts .b, .road__step .d, .phone .ch, .cap { font-size: 13px; }
.gcard--game .ft .pill--red { font-size: 12.5px; }
.rt__head { font-size: 12px; letter-spacing: .04em; }
@media (max-width: 900px) { .rt__head { font-size: 11px; letter-spacing: 0; text-transform: none; line-height: 1.1; } }

/* ==== Ноутбуки с масштабом Windows 125–150 % (ревью B-17) ====
   Окно 1024–1152 px шириной и 600–720 px высотой: сетки остаются настольными, а не телефонными. */
@media (min-width: 901px) and (max-width: 1180px) and (max-height: 830px) {
  .chips { grid-template-columns: repeat(12, 1fr); }
  .chip--lead { grid-column: span 6; }
  .chip--sm { grid-column: span 3; }
  .vwall { grid-template-columns: repeat(12, 1fr); }
  .vtile:first-child { grid-column: span 7; grid-row: span 3; }
  .vtile:not(:first-child) { grid-column: span 5; grid-template-columns: 140px 1fr; }
}
@media (min-width: 901px) and (max-height: 830px) {
  .sec { padding-bottom: 28px; }
  .now-list .card { min-height: 0; padding: 8px 12px; }
}
/* очень низкое окно (150 %: 960×600) — плотнее отступы и кегли крупных чисел */
@media (min-width: 901px) and (max-height: 650px) {
  :root { --hdr: 54px; }
  .sec { padding: calc(var(--hdr) + 10px) 0 18px; }
  .sec-head { margin-bottom: 10px; }
  .h2 { font-size: clamp(22px, 2.6vw, 28px); }
  .lead { font-size: 14px; }
  .stat .num, .qgrid .num, .voice-facts .num, .chip--lead .num { font-size: clamp(26px, 3vw, 40px); }
  .punch .num { font-size: clamp(64px, 9vw, 120px); }
  .stat { min-height: 110px; }
  .chip { min-height: 72px; }
  .chip--lead { min-height: 150px; }
  .cols { height: clamp(120px, 22vh, 180px); }
  .bars { gap: 4px; } .bar-row .track { height: 12px; margin-top: 2px; }
  .now-list { gap: 6px; } .now-list .card { padding: 6px 10px; }
  .chips { gap: 6px; } .chip { padding: 8px 10px; gap: 4px; } .chip .num { font-size: 20px; }
  .tl__item .card { min-height: 104px; padding: 10px 12px; }
  .rt { gap: 4px; } .rt__row { padding: 5px 12px; }
  .podium { min-height: 230px; padding-top: 70px; } .podium .step.s1 { height: 140px; } .podium .trophy { width: 90px; bottom: 146px; }
  .agenda li { padding: 6px 12px; }
  .final .btn { height: 40px; }
}
/* ==== «Год в цифрах»: иконка сверху справа, подпись на всю ширину карточки (ревью B-08) ==== */
@media (min-width: 901px) {
  .stat { padding-right: 18px; }
  .stat .num, .stat .unit { padding-right: 30%; }
  .stat .icon3d { width: 24%; max-width: 86px; top: 12px; bottom: auto; right: 12px; }
}

/* ==== «Проекты»: слова не вылезают из карточек, героиня не закрывает «Готово» (ревью B-09) ==== */
.tl__item .t { hyphens: auto; -webkit-hyphens: auto; overflow-wrap: anywhere; }
@media (min-width: 901px) and (max-width: 1440px) {
  .tl__items { grid-template-columns: repeat(4, 1fr); }
  .tl__item:nth-child(n+5)::before { display: none; }
}
@media (min-width: 901px) and (max-height: 830px) { .projects .hero-fig { height: min(38vh, 340px); } }

/* ==== «Мастера игры»: плитки семи игр (ревью B-18) ==== */
@media (max-width: 900px) {
  .tiles { grid-template-columns: repeat(4, 56px); gap: 8px; }
  .tile { width: 56px; height: 56px; font-size: 18px; border-radius: 16px; }
  .tile.seven { font-size: 22px; }
  .tile-cap { grid-column: 1 / -1; font-size: 13px; margin-top: 4px; }
}
@media (min-width: 901px) and (max-width: 1200px) { .tiles { z-index: 4; } }   /* Коя больше не закрывает плитки 3, 4, 7 */

/* ==== «Голоса команд» на телефоне и планшете: все отзывы списком (ревью B-19) ==== */
@media (max-width: 900px) {
  .qmarq { max-height: none; -webkit-mask-image: none; mask-image: none; overflow: visible; }
  .qcol { transform: none !important; }
}
.qmarq.is-static { max-height: none; -webkit-mask-image: none; mask-image: none; }

/* ==== Телефон: одна колонка из телефонных, а не настольных блоков (ревью D-10) ==== */
@media (max-width: 600px) {
  /* строка курса: название и мета сверху, число справа, полоса прогресса на всю ширину */
  .bar-row { grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "name val" "track track"; row-gap: 6px; column-gap: 12px; }
  .bar-row > div:first-child { display: contents; }
  .bar-row .name { grid-area: name; flex-direction: column; align-items: flex-start; gap: 2px; }
  .bar-row .name small { white-space: normal; }
  .bar-row .track { grid-area: track; margin-top: 0; }
  .bar-row .val { grid-area: val; min-width: 0; align-self: start; }
  .nextgame .sec-head, .nextgame .sec-head .lead, .nextgame .lead { max-width: none; }
  .tl__item .card { min-height: 0; }
  .chip--total { order: -1; }   /* итог «Всего за год» — сразу под заголовком, а не после десяти карточек */
}
@media (min-width: 601px) and (max-width: 900px) {
  /* лента игр на планшете: две колонки вместо одной карточки на 570 px */
  .strip__track { display: grid !important; grid-template-columns: 1fr 1fr; gap: 16px; }
  .strip__intro { grid-column: 1 / -1; }
}

/* ==== «Три решения» — главный экран встречи, визуально самый весомый (ревью D-02) ==== */
.dec .h { font-size: clamp(22px, 2vw, 32px); line-height: 1.15; }
.dec .b { font-size: 16px; line-height: 1.5; }
.dec .glass { min-height: 46vh; grid-template-rows: auto auto 1fr auto; }
.dec__res { align-self: end; padding-top: 12px; border-top: 1px dashed rgba(32,26,36,.25); font-family: 'Styrene B', sans-serif; font-size: 14px; font-weight: 500; color: var(--l-ink2); }
.dec__res span { display: inline-block; min-width: 45%; border-bottom: 1px solid rgba(32,26,36,.35); height: 1.1em; vertical-align: bottom; }
@media (min-width: 901px) and (max-height: 830px) { .dec .glass { min-height: 40vh; } .dec .h { font-size: clamp(20px, 1.8vw, 26px); } .dec .b { font-size: 15px; } }
@media (max-width: 900px) { .dec .glass { min-height: 0; } .dec .h { font-size: 21px; } }

/* ==== Фигуры не спорят с данными (ревью D-01) ==== */
.sec--dark .card--glass { background: rgba(16,20,28,.95); }                /* фон под текстом не «пёстрый» от фигуры */
.courses .hero-fig img { filter: brightness(.78); }                        /* голограмма не ярче настоящего графика */
@media (min-width: 901px) {
  .vocfcr .koya-side { height: min(55vh, 560px) !important; }
  .nextgame .koya-side { height: min(44vh, 460px); right: -4%; }
}
.snav { padding: 8px 5px; border-radius: 999px; background: rgba(10,13,18,.45); }
html[data-theme="light"] .snav { background: rgba(255,255,255,.55); }

/* ==== «Голосовые»: эскалация весомее частного успеха (ревью D-06) ==== */
#voiceProblem { border-left: 4px solid #ff8c7c; padding: 18px 20px; }
.voice-esc__t { font-weight: 700; font-size: clamp(20px, 1.7vw, 26px); line-height: 1.2; margin: 6px 0 8px; }
.voice-esc__b { font-family: 'Styrene B', sans-serif; font-size: 15px; line-height: 1.45; color: var(--d-ink); }

/* ==== VOC и FCR: разница числом и подписанная шкала (ревью D-03) ==== */
.vf__diff { font-family: 'Styrene B', sans-serif; font-size: 15px; font-weight: 500; color: var(--l-ink); margin-top: -4px; }
.vf__scale { font-family: 'Styrene B', sans-serif; font-size: 13px; color: var(--l-ink2); }

/* ==== Портал: короче, с подписью на время зума, читаемый заголовок (ревью U-11) ==== */
.portal { height: 200vh; }
@media (max-width: 900px) { .portal { height: 140vh; } }
.portal__cap { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); z-index: 6; opacity: 0; pointer-events: none; text-align: center; display: grid; gap: 6px;
  font-family: 'Styrene B', sans-serif; font-size: clamp(14px, 1.2vw, 18px); letter-spacing: .06em; color: #FFF3D0; text-shadow: 0 2px 18px rgba(0,0,0,.8); }
.portal__cap span { font-family: 'Styrene A', sans-serif; font-weight: 900; font-size: clamp(34px, 5vw, 72px); letter-spacing: -.02em; }
.portal__txt .gold { background: none !important; -webkit-text-fill-color: #FFDFA2; color: #FFDFA2; }
.portal__txt .h2 { text-shadow: 0 2px 16px rgba(0,0,0,.75); }
.portal__hint { color: rgba(255,243,208,.9); font-size: 13px; }

/* ==== «Уменьшить движение» и «Режим показа» (ревью A-08, P-03) ==== */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition-duration: .01ms !important; }
  html.js .rv, html.js .rv-l, html.js .rv-r, html.js .rv-s { opacity: 1; transform: none; }
  .flash, .pastel, .confetti { display: none !important; }
}
html.status .pastel, html.status .confetti, html.status .floaties { display: none !important; }

/* ==== Доступность: контраст и зоны нажатия (ревью A-01, A-02, A-03, A-04, A-10) ==== */
/* белый текст на красном 4,08 : 1 → тёмно-красный фон 5,3 : 1; мелкий красный текст на светлом — тоже тёмно-красный */
.pill--red, .seg button[aria-pressed="true"] { background: var(--alfa-dark) !important; border-color: var(--alfa-dark) !important; color: #fff !important; }
.road__step.first .d, .menu__col--light .menu__title, .dl h3.hup, .dl--up .r b { color: var(--alfa-dark); }
.rt__row .voc0 { color: var(--l-ink2); }   /* ноль — это данные, а не пустая ячейка */
.snav a::before { background: rgba(255,223,162,.6); }
.snav a.lt::before { background: rgba(239,49,36,.6); }
@media (pointer: coarse) {
  .menu-btn, .tgl, .seg button, .menu__close, .gcard .pill--red, .lock__row input, .lock__row .btn { min-height: 44px; }
  .menu__close { min-width: 44px; }
  .menu__col a { min-height: 44px; }
  .gcard .pill--red { display: inline-flex; align-items: center; padding: 0 14px; }
  .snav { display: none; }   /* на планшете точки 22×12 px не попасть пальцем — есть оглавление */
}

/* ==== Плавность прокрутки (ревью P-02) ====
   Бесконечный «перелив» градиента на ~110 элементах и тени drop-shadow у крупных фигур перерисовывались каждый кадр:
   на слабом ноутбуке 15–22 кадра/с. Золото остаётся тем же градиентом, но стоит на месте; тени у крупных фигур сняты. */
.gold, .num.gold, .sec--dark .num.gold.num-live, .eyebrow, .tag b, .tl__item .d, .bar-row .pct, .spark .v, .qbars b, .agenda li b, .dirs span b,
.portal__txt .gold, .portal-back__txt .gold, .hair, .tl__fill, .progress, .eyebrow::before, .spark i, .qbars i, .chip--wide .bar i,
.panel, .stat .icon3d, .sec--light .red, .sec--light .lcover__title .a { animation: none !important; background-position: 30% 50%; }
.hero-fig, .portal__guard, .koya3d, .participation .koya-side, .quality .koya-side, .vocfcr .koya-side, .nextgame .koya-side, .decisions .koya-side,
.portal-back__card .inner img, .koya-free img { filter: none !important; }

/* ==== Телефон и планшет: без экранов из одних картинок (ревью D-09, P-01) ====
   Героиня в полный рост остаётся на обложке, в «Возвращении» и в финале. В секциях от «Курсов» до «Проектов»
   фигура стояла отдельным блоком почти на весь экран после текста. Скрытые картинки с loading="lazy" не скачиваются. */
@media (max-width: 900px) {
  .courses .hero-fig, .ai .hero-fig, .voice .hero-fig, .quarterly .hero-fig, .projects .hero-fig { display: none; }
  .strip .koya-free img, .strip .koya-side img, .quotes .koya-free img { max-height: 200px; width: auto; }
}
/* пара «число + знак» не рвётся: «70,6 %» не превращается в «70,6 / %» */
.vf .pair span, .num { white-space: nowrap; }

/* ==== Типографика (ревью T-07, T-09) ==== */
h1, h2, h3, .h1, .h2, .lcover__title { text-wrap: balance; }
p, .lead, .quote p { text-wrap: pretty; }
.eyebrow, .rt__head, .menu__title, .cap.up, .tl__item .d { font-feature-settings: "case"; }
.num, .rt__row, .cols b, .mini b, .spark .v, .qbars b, .dl .r b { font-variant-numeric: tabular-nums; }
@media (hover: none) { .hover-only { display: none; } }   /* ревью C-05: «при наведении» не пишем на тач-экранах */
.sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

/* ==== Мелкие визуальные огрехи (ревью D-08) ==== */
.strip__intro .pill { justify-self: start; }                                   /* плашка «7 игр · 73 кейса» не похожа на полосу прогресса */
.vtile:first-child .vtile__play { width: 64px; height: 64px; left: 20px; bottom: 20px; }   /* кнопка не закрывает надпись на обложке ролика */
.pb-pts .num { white-space: nowrap; }                              /* «70,6% → 71,1%» не рвётся */
@media (max-width: 900px) { .strip__intro .h2 { font-size: 21px !important; max-width: none; } }   /* на телефоне не два крупных заголовка подряд */

/* ==== Сокращения в оглавлении (ревью C-01) ==== */
.menu__gloss { margin-top: 14px; font-family: 'Styrene B', sans-serif; font-size: 13px; color: var(--d-ink2); }
.menu__gloss summary { cursor: pointer; color: var(--gold4); font-weight: 500; }
html[data-theme="light"] .menu__gloss { color: var(--l-ink2); }
html[data-theme="light"] .menu__gloss summary { color: var(--alfa-dark); }
.menu__gloss dl { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 6px 18px; margin: 10px 0 0; }
.menu__gloss dl div { display: flex; gap: 8px; }
.menu__gloss dt { font-weight: 700; min-width: 64px; }
.menu__gloss dd { margin: 0; }
/* переходы в шапке — кнопки, подсвечивается часть, которая сейчас на экране */
.hdr .tabs { margin: 0 auto; }
@media (max-width: 1240px) { .hdr .tabs button { padding: 0 10px; } }
.tabs button { white-space: nowrap; }
@media (max-width: 1240px) { .hdr__ext { display: none; } }   /* узкий ноутбук: ссылка на статусы есть в оглавлении */

/* ревью D-08: макеты телефонов в «Каналах» ниже — без пустой нижней половины */
.phone { aspect-ratio: 9 / 14; }
@media (max-width: 900px) { .phone { min-height: 0; aspect-ratio: auto; } .phone .screen { position: relative; inset: auto; } }
/* ревью D-08: на планшете и телефоне героиня обложки целиком в высоту секции — видна голова */
@media (max-width: 900px) { .cover .hero-fig { top: 0 !important; bottom: 0; height: 100% !important; } .cover .hero-fig img { height: 100%; width: auto; object-fit: contain; object-position: top right; } }
@media (max-width: 720px) { .hdr .tabs { display: none; } }   /* на телефоне переходы по частям — в оглавлении, в шапке им не хватает места */

/* ОС 24.09: «прохождения · N чел.» не обрезается */
.now-list .v small { white-space: normal; overflow: visible; }
