/* =====================================================================
   w2w-base.css — базовый CSS дизайн-системы Win to Win v3 «Liquid Glass»
   Снято с продакшена https://www.w2w.uz/assets/css/main.css 08.11.2026.
   Секции: fonts → 00-tokens → 01-base → 02-materials → 03-controls → 04-header
           → 06-components (+ .eb-dot) → 07-footer (без мини-игры) → 19-motion.
   Подключать ПЕРВЫМ. Не редактировать: проектные стили — отдельным файлом после него.
   Шрифты: положить рядом в папку fonts/ файлы с продакшена
     https://www.w2w.uz/assets/fonts/onest-400-latin.woff2      → fonts/onest-latin.woff2
     https://www.w2w.uz/assets/fonts/onest-400-latin-ext.woff2  → fonts/onest-latin-ext.woff2
     https://www.w2w.uz/assets/fonts/onest-400-cyrillic.woff2   → fonts/onest-cyrillic.woff2
   (файлы вариативные, один файл покрывает веса 100–900). Запасной вариант — Google Fonts:
   <link href="https://fonts.googleapis.com/css2?family=Onest:wght@400..800&display=swap" rel="stylesheet">
   ===================================================================== */

/* ==== fonts ==== */
@font-face { font-family: "Onest"; font-style: normal; font-weight: 400 800; font-display: swap; src: url("fonts/onest-latin.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Onest"; font-style: normal; font-weight: 400 800; font-display: swap; src: url("fonts/onest-latin-ext.woff2") format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Onest"; font-style: normal; font-weight: 400 800; font-display: swap; src: url("fonts/onest-cyrillic.woff2") format("woff2"); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }

/* ==== 00-tokens.css ==== */
/* =====================================================================
   Win to Win — дизайн-система v3 «Liquid Glass»
   Onest · Bright Turquoise #0ABCF3 · Shark #232325 · Concrete #F3F3F3 · Green #07E7B7
   Две темы: светлая (по умолчанию) и тёмная — html[data-theme="dark"].
   Все цвета компонентов берутся ТОЛЬКО из этих токенов.
   ===================================================================== */

:root {
  color-scheme: light;

  /* ---- brand constants (одинаковые в обеих темах) ---- */
  --brand: #0abcf3;
  --brand-deep: #0797c4;
  --brand-ink: #0a6f93;          /* текст-ссылки бирюзой на светлом фоне (AA) */
  --brand-rgb: 10, 188, 243;
  --green: #07e7b7;
  --green-deep: #05b58f;
  --green-rgb: 7, 231, 183;
  --shark: #232325;
  --concrete: #f3f3f3;
  --danger: #e5484d;
  --warn: #ffb020;
  --on-brand: #232325;           /* текст на бирюзе — всегда чернильный */
  --on-brand-2: #143a47;

  /* ---- surfaces ---- */
  --bg: #f2f3f5;                 /* фон страницы */
  --bg-elev: #ffffff;            /* карточки */
  --bg-elev-2: #f7f8fa;          /* вложенные плашки */
  --bg-sunk: rgba(120, 120, 128, 0.1);  /* поля ввода, треки */
  --ink: #232325;                /* основной текст */
  --ink-soft: #3a3a3e;
  --label-2: #616166;            /* вторичный текст, ≥ 4.5:1 на --bg */
  --label-3: #6c6c70;            /* третичный текст, ≥ 4.5:1 на --bg и на белом */
  --sep: rgba(60, 60, 67, 0.13);
  --fill: rgba(120, 120, 128, 0.12);
  --fill-2: rgba(120, 120, 128, 0.2);
  --ink-fill: #232325;           /* заливка основной кнопки */
  --on-ink: #ffffff;             /* текст на основной кнопке */
  --link: var(--brand-ink);

  /* ---- liquid glass ---- */
  --g-fill: rgba(255, 255, 255, 0.5);          /* обычное стекло */
  --g-fill-thin: rgba(255, 255, 255, 0.26);    /* прозрачное стекло контролов */
  --g-fill-thick: rgba(250, 251, 253, 0.78);   /* шторки, меню */
  --g-rim: rgba(255, 255, 255, 0.95);          /* светлая кромка сверху */
  --g-rim-lo: rgba(255, 255, 255, 0.28);       /* кромка снизу */
  --g-edge: rgba(20, 40, 60, 0.07);            /* тонкая внешняя обводка */
  --g-spec: rgba(255, 255, 255, 0.55);         /* блик */
  --g-shadow: 0 1px 1px rgba(16, 40, 60, 0.04), 0 10px 30px -10px rgba(16, 40, 60, 0.22), 0 2px 6px -2px rgba(16, 40, 60, 0.08);
  --g-shadow-lift: 0 2px 2px rgba(16, 40, 60, 0.04), 0 26px 60px -18px rgba(16, 40, 60, 0.32), 0 6px 14px -6px rgba(16, 40, 60, 0.12);
  --g-blur: 22px;
  --g-sat: 190%;

  /* ---- ambient backdrop (цветные «ауры» за стеклом) ---- */
  --amb-1: rgba(10, 188, 243, 0.34);
  --amb-2: rgba(7, 231, 183, 0.26);
  --amb-3: rgba(120, 190, 255, 0.3);

  /* ---- always-dark scenes (Company Brain, CTA) ---- */
  --night: #0b0b0d;
  --night-2: #161618;
  --night-3: #1f1f22;
  --night-label-2: rgba(235, 235, 245, 0.66);
  --night-sep: rgba(255, 255, 255, 0.1);

  /* ---- shape ---- */
  --r-xl: 40px;
  --r-lg: 28px;
  --r-md: 22px;
  --r-sm: 14px;
  --r-xs: 10px;
  --r-pill: 999px;

  /* ---- elevation for opaque cards ---- */
  --shadow-1: 0 1px 2px rgba(20, 20, 30, 0.04), 0 8px 24px rgba(20, 20, 30, 0.06);
  --shadow-2: 0 2px 6px rgba(20, 20, 30, 0.05), 0 24px 60px rgba(20, 20, 30, 0.12);
  --shadow-3: 0 30px 80px rgba(12, 40, 60, 0.22), 0 8px 24px rgba(12, 40, 60, 0.12);

  /* ---- motion ---- */
  --spring: cubic-bezier(0.32, 0.72, 0, 1);
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --t-fast: 160ms;
  --t-mid: 320ms;
  --t-slow: 560ms;

  /* ---- layout ---- */
  --gutter: clamp(16px, 5vw, 56px);
  --max: 1240px;
  --sp-section: clamp(88px, 12vw, 168px);
  --header-h: 64px;

  /* ---- legacy aliases (старые шаблоны) ---- */
  --bg-2: var(--bg-elev);
  --bg-3: var(--bg-elev-2);
  --ink-2: var(--ink-soft);
  --ink-3: var(--label-2);
  --ink-4: var(--label-3);
  --line: var(--sep);
  --ground: var(--bg);
  --ground-2: var(--bg-elev-2);
  --paper: var(--bg-elev);
  --r-panel: var(--r-lg);
  --r-input: var(--r-sm);
  --glass: var(--g-fill);
  --glass-strong: var(--g-fill-thick);
  --glass-edge: var(--g-rim);
}

/* ---------- Dark theme ---------- */
:root[data-theme="dark"] {
  color-scheme: dark;

  --bg: #08090b;
  --bg-elev: #131418;
  --bg-elev-2: #1a1b20;
  --bg-sunk: rgba(125, 128, 140, 0.16);
  --ink: #f2f3f5;
  --ink-soft: #d4d6db;
  --label-2: #a3a7af;
  --label-3: #83878f;
  --sep: rgba(255, 255, 255, 0.09);
  --fill: rgba(125, 128, 140, 0.18);
  --fill-2: rgba(125, 128, 140, 0.28);
  --ink-fill: #f2f3f5;
  --on-ink: #0b0b0d;
  --link: #5fd2f7;
  --brand-ink: #5fd2f7;

  --g-fill: rgba(30, 32, 38, 0.46);
  --g-fill-thin: rgba(40, 42, 50, 0.3);
  --g-fill-thick: rgba(22, 23, 28, 0.8);
  --g-rim: rgba(255, 255, 255, 0.26);
  --g-rim-lo: rgba(255, 255, 255, 0.06);
  --g-edge: rgba(255, 255, 255, 0.06);
  --g-spec: rgba(255, 255, 255, 0.16);
  --g-shadow: 0 1px 1px rgba(0, 0, 0, 0.3), 0 14px 36px -12px rgba(0, 0, 0, 0.7), 0 2px 6px -2px rgba(0, 0, 0, 0.4);
  --g-shadow-lift: 0 2px 2px rgba(0, 0, 0, 0.3), 0 30px 70px -20px rgba(0, 0, 0, 0.85), 0 8px 18px -8px rgba(0, 0, 0, 0.5);
  --g-sat: 170%;

  --amb-1: rgba(10, 188, 243, 0.26);
  --amb-2: rgba(7, 231, 183, 0.16);
  --amb-3: rgba(70, 110, 255, 0.16);

  --night: #030405;
  --night-2: #0f1013;
  --night-3: #17181c;

  --shadow-1: 0 1px 2px rgba(0, 0, 0, 0.4), 0 8px 24px rgba(0, 0, 0, 0.35);
  --shadow-2: 0 2px 6px rgba(0, 0, 0, 0.45), 0 24px 60px rgba(0, 0, 0, 0.55);
  --shadow-3: 0 30px 80px rgba(0, 0, 0, 0.7), 0 8px 24px rgba(0, 0, 0, 0.5);
}

/* ==== 01-base.css ==== */
/* ---------- Reset & base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: 96px; background: var(--bg); }
body {
  margin: 0; background: var(--bg); color: var(--ink);
  font-family: "Onest", system-ui, -apple-system, "Segoe UI", sans-serif;
  font-size: 17px; line-height: 1.5; font-weight: 400;
  font-variant-numeric: tabular-nums; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility; overflow-x: clip;
  transition: background-color 0.5s var(--ease-out), color 0.5s var(--ease-out);
}
img, svg, video, canvas { display: block; max-width: 100%; }
h1, h2, h3, h4, p, ul, ol, dl, dd, figure, blockquote { margin: 0; }
ul, ol { padding: 0; list-style: none; }
a { color: inherit; text-underline-offset: 3px; text-decoration-thickness: 1px; }
button, input, select, textarea { font: inherit; color: inherit; }
button { cursor: pointer; background: none; border: 0; padding: 0; }
::selection { background: rgba(var(--brand-rgb), 0.3); }
:focus-visible { outline: 3px solid rgba(var(--brand-rgb), 0.6); outline-offset: 3px; border-radius: 8px; }
.i { width: 20px; height: 20px; flex: none; }
[hidden] { display: none !important; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.skip { position: absolute; left: 12px; top: -60px; z-index: 300; background: var(--ink-fill); color: var(--on-ink); padding: 10px 16px; border-radius: var(--r-pill); text-decoration: none; }
.skip:focus { top: 12px; }
main { display: block; outline: none; }
.hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; opacity: 0; }
html { scrollbar-color: rgba(120, 120, 128, 0.45) transparent; scrollbar-width: thin; }
body.no-scroll { overflow: hidden; }

/* ---------- Typography ---------- */
h1, h2, h3 { overflow-wrap: break-word; }
.display { font-size: clamp(44px, 6.4vw, 92px); font-weight: 800; line-height: 0.96; letter-spacing: -0.05em; }
.h1 { font-size: clamp(40px, 5.8vw, 80px); font-weight: 800; line-height: 1; letter-spacing: -0.045em; }
.h2 { font-size: clamp(28px, 4.4vw, 62px); font-weight: 800; line-height: 1.03; letter-spacing: -0.04em; }
.h2-sm { font-size: clamp(30px, 3.4vw, 48px); }
.h2-fit { font-size: clamp(28px, 2.95vw, 42px); }
.split-sticky .h2, .h2-fit { text-wrap: balance; }
.h3 { font-size: clamp(20px, 1.7vw, 24px); font-weight: 700; line-height: 1.2; letter-spacing: -0.02em; }
h3 { font-weight: 700; letter-spacing: -0.015em; line-height: 1.25; }
.eyebrow { display: inline-flex; align-items: center; gap: 10px; font-size: 14px; font-weight: 700; letter-spacing: 0.02em; text-transform: uppercase; color: var(--label-2); }
.lead { font-size: clamp(18px, 1.55vw, 22px); line-height: 1.45; color: var(--label-2); font-weight: 500; letter-spacing: -0.01em; max-width: 60ch; }
.lead-on-dark { font-size: clamp(18px, 1.55vw, 22px); line-height: 1.45; color: var(--night-label-2); font-weight: 500; margin-top: 18px; max-width: 52ch; }
.small { font-size: 14px; }
.muted { color: var(--label-2); }
.num { font-size: clamp(40px, 4.8vw, 64px); font-weight: 800; letter-spacing: -0.045em; line-height: 1; }
.grad-text { --grad: linear-gradient(100deg, var(--brand-deep) 0%, var(--brand) 45%, var(--green) 100%); background-image: var(--grad); -webkit-background-clip: text; background-clip: text; color: transparent; -webkit-box-decoration-break: clone; box-decoration-break: clone; }
:root[data-theme="dark"] .grad-text, .night .grad-text, .is-dark .grad-text { --grad: linear-gradient(100deg, #36cdfb 0%, var(--brand) 40%, var(--green) 100%); }
.is-split .grad-text { background-image: none; }
.is-split .grad-text .w { background-image: var(--grad); -webkit-background-clip: text; background-clip: text; color: transparent; }
.prose p + p { margin-top: 14px; }
.prose p { color: var(--ink-soft); }
.prose b { color: var(--ink); }
.prose h2, .prose h3 { margin: 32px 0 10px; }
.mt-8 { margin-top: 8px; } .mt-16 { margin-top: 16px; } .mt-24 { margin-top: 24px; } .mt-32 { margin-top: 32px; } .mt-48 { margin-top: 48px; }
.center { text-align: center; }
.center .lead, .center.lead { margin-inline: auto; }

/* ---------- Layout ---------- */
.wrap { width: min(100% - 2 * var(--gutter), var(--max)); margin-inline: auto; }
.wrap-narrow { width: min(100% - 2 * var(--gutter), 980px); margin-inline: auto; }
.section { padding-block: var(--sp-section); position: relative; }
.section-tight { padding-block: clamp(56px, 8vw, 96px); }
.is-paper { background: var(--bg-elev); }
.sec-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 28px; margin-bottom: clamp(36px, 5vw, 64px); }
.sec-head .lead { margin-top: 16px; }
/* Block headings stay within two lines on desktop: the heading takes the room it needs, the lead gets a fixed column */
.sec-head > div:first-child { flex: 1 1 auto; min-width: 0; }
.sec-head > p.lead { flex: 0 1 26rem; }
.sec-head h2, .sec-head .h2 { text-wrap: balance; }
@media (max-width: 1180px) { .sec-head:has(> p.lead) { flex-direction: column; align-items: flex-start; } .sec-head > p.lead { flex: none; } }
.sec-head > .btn, .sec-head > .link-arrow { flex: none; margin-bottom: 6px; }
.sec-head.center { flex-direction: column; align-items: center; text-align: center; }
.split { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(32px, 5vw, 80px); align-items: start; }
.split-eq { grid-template-columns: 1fr 1fr; }
.split > .split-sticky { position: sticky; top: 110px; }
.split-sticky .lead { margin-top: 18px; }
.grid-2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.grid-3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
@media (max-width: 960px) {
  .split, .split-eq { grid-template-columns: 1fr; }
  .split > .split-sticky { position: static; }
  .grid-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sec-head { flex-direction: column; align-items: flex-start; }
}
@media (max-width: 600px) { .grid-2, .grid-3 { grid-template-columns: 1fr; } }

/* ==== 02-materials.css ==== */
/* =====================================================================
   Materials: Liquid Glass
   .lg            — основное стекло (карточки, виджеты)
   .lg-thin       — прозрачное стекло контролов (кнопки, чипы, панели инструментов)
   .lg-thick      — плотное стекло (шторки, меню, модалки)
   .lg-tint       — тонированное стекло (--tint: r, g, b)
   .lg-dark       — тёмное стекло на тёмных сценах (в любой теме)
   .lg-rim        — усиленная светящаяся кромка (::before, масочное кольцо)
   .lg-lift       — подъём и тень при наведении
   [data-lg-refract] — преломление фона (Chromium, модуль liquid-glass.js)
   Блик следует за курсором: JS пишет --mx / --my (в %) на наведённый элемент.
   ===================================================================== */

:root {
  --g-rim-side: rgba(255, 255, 255, 0.55);
  --g-glow: rgba(255, 255, 255, 0.55);
  --g-rims:
    inset 0 1px 0 0 var(--g-rim),
    inset 1px 0 0 0 var(--g-rim-side),
    inset 0 -1px 0 0 var(--g-rim-lo),
    inset -1px 0 0 0 var(--g-rim-lo),
    inset 0 0 24px -10px var(--g-glow);
}
:root[data-theme="dark"] {
  --g-rim-side: rgba(255, 255, 255, 0.12);
  --g-glow: rgba(255, 255, 255, 0.14);
}

:where(.lg, .glass, .lg-dark, .glass-dark) { position: relative; }

.lg, .glass {
  --lg-fill: var(--g-fill);
  --lg-blur: var(--g-blur);
  background-color: var(--lg-fill);
  background-image:
    radial-gradient(130% 90% at var(--mx, 18%) var(--my, -12%), var(--g-spec), rgba(255, 255, 255, 0) 48%),
    linear-gradient(180deg, rgba(255, 255, 255, 0.12), rgba(255, 255, 255, 0) 36%);
  -webkit-backdrop-filter: blur(var(--lg-blur)) saturate(var(--g-sat)) brightness(1.02);
  backdrop-filter: blur(var(--lg-blur)) saturate(var(--g-sat)) brightness(1.02);
  box-shadow: var(--g-shadow), var(--g-rims), 0 0 0 0.5px var(--g-edge);
}
.lg-thin { --lg-fill: var(--g-fill-thin); --lg-blur: 14px; }
.lg-thick { --lg-fill: var(--g-fill-thick); --lg-blur: 36px; }
.lg-tint { --lg-fill: rgba(var(--tint, var(--brand-rgb)), 0.2); }
:root[data-theme="dark"] .lg-tint { --lg-fill: rgba(var(--tint, var(--brand-rgb)), 0.16); }

/* always-dark glass (scenes on --night) */
.lg-dark, .glass-dark {
  background-color: rgba(30, 32, 38, 0.5);
  background-image:
    radial-gradient(130% 90% at var(--mx, 18%) var(--my, -12%), rgba(255, 255, 255, 0.12), rgba(255, 255, 255, 0) 48%),
    linear-gradient(180deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0) 36%);
  -webkit-backdrop-filter: blur(26px) saturate(170%);
  backdrop-filter: blur(26px) saturate(170%);
  box-shadow:
    0 20px 60px -20px rgba(0, 0, 0, 0.7),
    inset 0 1px 0 0 rgba(255, 255, 255, 0.22),
    inset 1px 0 0 0 rgba(255, 255, 255, 0.1),
    inset 0 -1px 0 0 rgba(255, 255, 255, 0.04),
    inset 0 0 24px -10px rgba(255, 255, 255, 0.14),
    0 0 0 0.5px rgba(255, 255, 255, 0.06);
  color: #fff;
}

/* gradient rim ring — for hero elements */
.lg-rim::before {
  content: ""; position: absolute; inset: 0; border-radius: inherit; padding: 1.2px; pointer-events: none; z-index: 3;
  background: conic-gradient(from var(--rim-a, 210deg),
    rgba(255, 255, 255, 0.95), rgba(255, 255, 255, 0.15) 18%, rgba(255, 255, 255, 0) 30%,
    rgba(var(--brand-rgb), 0.35) 45%, rgba(255, 255, 255, 0.05) 58%, rgba(255, 255, 255, 0.7) 72%,
    rgba(var(--green-rgb), 0.35) 86%, rgba(255, 255, 255, 0.95));
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask: linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0);
  opacity: 0.9;
}
:root[data-theme="dark"] .lg-rim::before { opacity: 0.55; }

.lg-lift { transition: translate var(--t-mid) var(--ease-out), box-shadow var(--t-mid) ease, background-color var(--t-mid) ease; }
@media (hover: hover) {
  .lg-lift:hover { translate: 0 -5px; box-shadow: var(--g-shadow-lift), var(--g-rims), 0 0 0 0.5px var(--g-edge); }
}

/* legacy opaque card */
.card { background: var(--bg-elev); border-radius: var(--r-lg); box-shadow: var(--shadow-1); }

/* ---------- Ambient backdrop (what the glass refracts) ---------- */
.aurora { position: absolute; inset: 0; overflow: hidden; pointer-events: none; z-index: 0; }
.aurora i { position: absolute; border-radius: 50%; width: 70vmax; height: 70vmax; will-change: transform; }
.aurora i:nth-child(1) { left: -22vmax; top: -30vmax; background: radial-gradient(circle at center, var(--amb-1), rgba(10, 188, 243, 0) 62%); animation: drift-a 26s ease-in-out infinite alternate; }
.aurora i:nth-child(2) { right: -26vmax; top: -12vmax; background: radial-gradient(circle at center, var(--amb-2), rgba(7, 231, 183, 0) 60%); animation: drift-b 32s ease-in-out infinite alternate; }
.aurora i:nth-child(3) { left: 18vmax; top: 30vmax; background: radial-gradient(circle at center, var(--amb-3), rgba(125, 214, 255, 0) 60%); animation: drift-c 38s ease-in-out infinite alternate; }
.aurora.is-night i:nth-child(1) { background: radial-gradient(circle, rgba(10, 188, 243, 0.3), rgba(10, 188, 243, 0) 60%); }
.aurora.is-night i:nth-child(2) { background: radial-gradient(circle, rgba(7, 231, 183, 0.18), rgba(7, 231, 183, 0) 60%); }
.aurora.is-night i:nth-child(3) { background: radial-gradient(circle, rgba(60, 90, 255, 0.14), rgba(60, 90, 255, 0) 60%); }
@keyframes drift-a { to { transform: translate3d(12vmax, 8vmax, 0) scale(1.1); } }
@keyframes drift-b { to { transform: translate3d(-10vmax, 12vmax, 0) scale(0.92); } }
@keyframes drift-c { to { transform: translate3d(-8vmax, -10vmax, 0) scale(1.12); } }

/* faint film grain — kills banding under heavy blur */
.grain::after {
  content: ""; position: absolute; inset: 0; pointer-events: none; z-index: 1; opacity: 0.05; mix-blend-mode: overlay; border-radius: inherit;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* ---------- App icons: layered glass squircles ---------- */
.app-icon {
  --s: 56px; --ic-glow: var(--brand-rgb);
  width: var(--s); height: var(--s); border-radius: calc(var(--s) * 0.28);
  display: grid; place-items: center; color: #fff; flex: none; position: relative; isolation: isolate;
  box-shadow:
    0 1px 1px rgba(0, 0, 0, 0.06),
    0 calc(var(--s) * 0.16) calc(var(--s) * 0.36) calc(var(--s) * -0.14) rgba(var(--ic-glow), 0.6),
    inset 0 1px 0 rgba(255, 255, 255, 0.6),
    inset 0 -2px 5px rgba(0, 0, 0, 0.14);
}
.app-icon::before {
  content: ""; position: absolute; inset: 1px; border-radius: inherit; pointer-events: none; z-index: 0;
  background:
    radial-gradient(120% 70% at 30% 0%, rgba(255, 255, 255, 0.55), rgba(255, 255, 255, 0) 55%),
    linear-gradient(180deg, rgba(255, 255, 255, 0.22), rgba(255, 255, 255, 0) 50%);
}
.app-icon::after {
  content: ""; position: absolute; inset: 0; border-radius: inherit; padding: 1px; pointer-events: none; z-index: 2;
  background: linear-gradient(150deg, rgba(255, 255, 255, 0.95), rgba(255, 255, 255, 0.12) 38%, rgba(255, 255, 255, 0) 60%, rgba(255, 255, 255, 0.4));
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask: linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0);
}
.app-icon svg { width: 52%; height: 52%; position: relative; z-index: 1; filter: drop-shadow(0 1px 1px rgba(0, 0, 0, 0.22)) drop-shadow(0 3px 6px rgba(0, 0, 0, 0.14)); }
.app-icon.sm { --s: 32px; }
.app-icon.md { --s: 44px; }
.app-icon.lg { --s: 76px; }
.app-icon.xl { --s: 96px; }
.ic-1 { background: linear-gradient(145deg, #4fd8ff, #0797c4); --ic-glow: 10, 188, 243; }
.ic-2 { background: linear-gradient(145deg, #4ff4d0, #05b58f); --ic-glow: 7, 231, 183; }
.ic-3 { background: linear-gradient(145deg, #55555c, #1b1b1e); --ic-glow: 30, 30, 36; }
.ic-4 { background: linear-gradient(145deg, #8ee0ff, #1aa7dd); --ic-glow: 26, 167, 221; }
.ic-5 { background: linear-gradient(145deg, #0abcf3, #07e7b7); --ic-glow: 8, 210, 215; }
.ic-6 { background: linear-gradient(145deg, #6a7883, #2c3338); --ic-glow: 44, 51, 56; }
.ic-7 { background: linear-gradient(145deg, #2de8c6, #0a8fbf); --ic-glow: 10, 160, 190; }
.ic-8 { background: linear-gradient(145deg, #6acfff, #1f6fe0); --ic-glow: 31, 111, 224; }
.ic-w { background: linear-gradient(145deg, #34343a, #0f0f11); color: var(--brand); --ic-glow: 10, 188, 243; }
.ic-w svg { width: 48%; height: 60%; }
/* clear glass icon: frosted tile with a coloured glyph */
.app-icon.is-glass {
  color: var(--ic-color, var(--brand-deep));
  background: rgba(255, 255, 255, 0.34);
  -webkit-backdrop-filter: blur(12px) saturate(180%); backdrop-filter: blur(12px) saturate(180%);
  box-shadow: 0 8px 20px -10px rgba(var(--ic-glow), 0.55), inset 0 1px 0 rgba(255, 255, 255, 0.9), inset 0 0 14px -6px rgba(255, 255, 255, 0.8);
}
:root[data-theme="dark"] .app-icon.is-glass { background: rgba(255, 255, 255, 0.08); color: var(--ic-color, #5fd2f7); box-shadow: 0 8px 20px -10px rgba(var(--ic-glow), 0.5), inset 0 1px 0 rgba(255, 255, 255, 0.25), inset 0 0 14px -6px rgba(255, 255, 255, 0.18); }

/* ---------- Night scenes ---------- */
.night { background: var(--night); color: #fff; overflow: hidden; position: relative; }
.night .lead { color: var(--night-label-2); }
.night .muted { color: var(--night-label-2); }
.night a:not(.btn) { color: inherit; }

/* ---------- Reduced transparency / no backdrop-filter ---------- */
@media (prefers-reduced-transparency: reduce) {
  .lg, .glass, .lg-thin, .lg-thick, .lg-tint { -webkit-backdrop-filter: none !important; backdrop-filter: none !important; background-color: var(--bg-elev) !important; background-image: none !important; }
  .lg-dark, .glass-dark { -webkit-backdrop-filter: none !important; backdrop-filter: none !important; background-color: var(--night-3) !important; }
  .app-icon.is-glass { -webkit-backdrop-filter: none; backdrop-filter: none; background: var(--bg-elev); }
  .grain::after { display: none; }
}
@supports not ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) {
  .lg, .glass { background-color: var(--g-fill-thick); }
  .lg-dark, .glass-dark { background-color: var(--night-3); }
}

/* ==== 03-controls.css ==== */
/* ---------- Buttons & links ---------- */
.btn {
  --h: 50px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; position: relative; isolation: isolate;
  height: var(--h); padding: 0 24px; border-radius: var(--r-pill); font-weight: 600; font-size: 16px; letter-spacing: -0.01em;
  text-decoration: none; white-space: nowrap; border: 0; background: var(--ink-fill); color: var(--on-ink);
  box-shadow: 0 1px 1px rgba(0, 0, 0, 0.08), 0 8px 20px -10px rgba(0, 0, 0, 0.45), inset 0 1px 0 rgba(255, 255, 255, 0.18), inset 0 -1px 0 rgba(0, 0, 0, 0.2);
  transition: transform var(--t-fast) var(--ease-out), background-color var(--t-mid) ease, color var(--t-mid) ease, box-shadow var(--t-mid) ease;
  -webkit-tap-highlight-color: transparent; user-select: none; overflow: hidden;
}
.btn::after { /* glossy capsule highlight */
  content: ""; position: absolute; inset: 0 0 50% 0; border-radius: inherit; pointer-events: none; z-index: -1;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.16), rgba(255, 255, 255, 0)); opacity: 0.9;
}
@media (hover: hover) { .btn:hover { box-shadow: 0 1px 1px rgba(0, 0, 0, 0.08), 0 14px 30px -12px rgba(0, 0, 0, 0.55), inset 0 1px 0 rgba(255, 255, 255, 0.22), inset 0 -1px 0 rgba(0, 0, 0, 0.2); } }
.btn:active { transform: scale(0.96); }
.btn .i { width: 18px; height: 18px; }
.btn-primary { background: var(--ink-fill); color: var(--on-ink); }
.btn-brand { background: var(--brand); color: var(--on-brand); box-shadow: 0 1px 1px rgba(0, 0, 0, 0.06), 0 10px 26px -10px rgba(var(--brand-rgb), 0.8), inset 0 1px 0 rgba(255, 255, 255, 0.5), inset 0 -1px 0 rgba(0, 0, 0, 0.12); }
.btn-brand:hover { background: #29c7f7; }
.btn-outline, .btn-ghost, .btn-glass {
  background: var(--g-fill-thin); color: var(--ink);
  -webkit-backdrop-filter: blur(16px) saturate(180%); backdrop-filter: blur(16px) saturate(180%);
  box-shadow: var(--g-rims), 0 0 0 0.5px var(--g-edge), 0 6px 18px -10px rgba(0, 0, 0, 0.25);
}
.btn-outline::after, .btn-ghost::after, .btn-glass::after { background: linear-gradient(180deg, rgba(255, 255, 255, 0.3), rgba(255, 255, 255, 0)); }
:root[data-theme="dark"] .btn-outline::after, :root[data-theme="dark"] .btn-ghost::after, :root[data-theme="dark"] .btn-glass::after { background: linear-gradient(180deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0)); }
@media (hover: hover) { .btn-outline:hover, .btn-ghost:hover, .btn-glass:hover { background: var(--g-fill); box-shadow: var(--g-rims), 0 0 0 0.5px var(--g-edge), 0 12px 26px -12px rgba(0, 0, 0, 0.3); } }
.btn-on-brand { background: var(--shark); color: #fff; }
.btn-on-dark { background: #fff; color: var(--shark); }
.btn-on-dark:hover { background: var(--green); color: var(--shark); }
.night .btn-outline, .night .btn-ghost, .night .btn-glass { background: rgba(255, 255, 255, 0.08); color: #fff; box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), inset 0 0 0 1px rgba(255, 255, 255, 0.12); }
.night .btn-primary, .night .btn:not(.btn-outline):not(.btn-ghost):not(.btn-glass):not(.btn-brand) { background: #fff; color: var(--shark); }
.btn-sm { --h: 38px; padding: 0 16px; font-size: 14.5px; }
.btn-lg { --h: 58px; padding: 0 30px; font-size: 17px; }
.btn-block { width: 100%; }
.btn[disabled] { opacity: 0.5; cursor: not-allowed; }
.link-arrow { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; text-decoration: none; color: var(--link); }
.link-arrow .i { width: 18px; height: 18px; transition: transform var(--t-fast) var(--ease-out); }
.link-arrow:hover .i { transform: translateX(3px); }
.hero-cta { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 32px; }
.center .hero-cta, .hero-cta.center { justify-content: center; }
.icon-btn { width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; color: var(--ink); position: relative; transition: background-color var(--t-fast) ease, transform var(--t-fast) var(--ease-out), color var(--t-fast) ease; }
.icon-btn:hover { background: var(--fill); }
.icon-btn:active { transform: scale(0.9); }

/* ---------- Chips, tags, pills ---------- */
.opts { display: flex; flex-wrap: wrap; gap: 8px; }
.chip {
  padding: 9px 16px; border-radius: var(--r-pill); background: var(--fill); color: var(--ink); font-size: 15px; font-weight: 500; line-height: 1.2;
  transition: background-color var(--t-mid) var(--ease-out), color var(--t-mid) ease, transform var(--t-fast) var(--ease-out), box-shadow var(--t-mid) ease;
}
.chip:hover { background: var(--fill-2); }
.chip:active { transform: scale(0.95); }
.chip.is-on, .chip[aria-checked="true"], .chip[aria-pressed="true"], .chip[aria-selected="true"] { background: var(--ink-fill); color: var(--on-ink); box-shadow: 0 6px 16px -8px rgba(0, 0, 0, 0.5), inset 0 1px 0 rgba(255, 255, 255, 0.18); }
.tag { display: inline-flex; align-items: center; gap: 6px; padding: 5px 12px; border-radius: var(--r-pill); background: var(--fill); font-size: 13px; font-weight: 500; color: var(--ink-soft); }
.tag-dashed { background: transparent; box-shadow: inset 0 0 0 1px var(--fill-2); color: var(--label-2); }
.tags { display: flex; flex-wrap: wrap; gap: 6px; }
.pill { display: inline-flex; align-items: center; gap: 10px; padding: 8px 16px 8px 12px; border-radius: var(--r-pill); font-size: 14.5px; font-weight: 600; }
.dot-live { width: 9px; height: 9px; border-radius: 50%; background: var(--green); box-shadow: 0 0 0 0 rgba(var(--green-rgb), 0.6); animation: pulse 2.2s ease-out infinite; flex: none; }
@keyframes pulse { 0% { box-shadow: 0 0 0 0 rgba(var(--green-rgb), 0.6); } 70% { box-shadow: 0 0 0 10px rgba(var(--green-rgb), 0); } 100% { box-shadow: 0 0 0 0 rgba(var(--green-rgb), 0); } }
.todo { border-radius: var(--r-md); padding: 14px 18px; font-size: 14.5px; color: var(--label-2); background: repeating-linear-gradient(135deg, rgba(120, 120, 128, 0.07) 0 10px, rgba(120, 120, 128, 0.02) 10px 20px); box-shadow: inset 0 0 0 1px var(--fill-2); }
.todo::before { content: "На уточнении"; display: inline-block; margin-right: 8px; padding: 2px 9px; border-radius: var(--r-pill); background: var(--ink-fill); color: var(--on-ink); font-size: 12px; font-weight: 600; }
:lang(uz) .todo::before { content: "Aniqlanmoqda"; }
:lang(en) .todo::before { content: "To be confirmed"; }
.night .todo { color: var(--night-label-2); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.18); }
.night .todo::before { background: #fff; color: var(--shark); }

/* ---------- iOS controls ---------- */
.switch { position: relative; width: 52px; height: 32px; border-radius: 999px; background: var(--fill-2); flex: none; transition: background-color 0.3s ease; }
.switch::after { content: ""; position: absolute; top: 2px; left: 2px; width: 28px; height: 28px; border-radius: 50%; background: #fff; box-shadow: 0 3px 8px rgba(0, 0, 0, 0.15), 0 1px 1px rgba(0, 0, 0, 0.16); transition: transform 0.36s var(--spring), width 0.2s ease; }
[aria-checked="true"] > .switch { background: var(--green-deep); }
[aria-checked="true"] > .switch::after { transform: translateX(20px); }
.segmented { position: relative; display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; padding: 3px; border-radius: 12px; background: var(--fill); isolation: isolate; }
.segmented button { position: relative; z-index: 1; padding: 8px 10px; border-radius: 9px; font-size: 14.5px; font-weight: 500; line-height: 1.25; color: var(--ink); transition: color var(--t-fast) ease; }
.segmented button[aria-checked="true"], .segmented button[aria-selected="true"] { font-weight: 700; }
.segmented .seg-thumb { position: absolute; z-index: 0; top: 3px; bottom: 3px; left: 3px; border-radius: 9px; background: var(--bg-elev); box-shadow: 0 3px 8px rgba(0, 0, 0, 0.12), 0 3px 1px rgba(0, 0, 0, 0.04), inset 0 1px 0 rgba(255, 255, 255, 0.6); transition: transform 0.42s var(--spring), width 0.42s var(--spring); }
:root[data-theme="dark"] .segmented .seg-thumb { background: #3a3b42; box-shadow: 0 3px 8px rgba(0, 0, 0, 0.35), inset 0 1px 0 rgba(255, 255, 255, 0.12); }
input[type="range"].ios-range, .rng input[type="range"] { -webkit-appearance: none; appearance: none; width: 100%; height: 30px; background: transparent; cursor: pointer; --fill: 50%; }
input[type="range"]::-webkit-slider-runnable-track { height: 6px; border-radius: 6px; background: linear-gradient(90deg, var(--brand) var(--fill), var(--fill-2) var(--fill)); }
input[type="range"]::-moz-range-track { height: 6px; border-radius: 6px; background: var(--fill-2); }
input[type="range"]::-moz-range-progress { height: 6px; border-radius: 6px; background: var(--brand); }
input[type="range"]::-webkit-slider-thumb { -webkit-appearance: none; appearance: none; width: 28px; height: 28px; margin-top: -11px; border-radius: 50%; background: #fff; box-shadow: 0 3px 8px rgba(0, 0, 0, 0.18), 0 0 0 0.5px rgba(0, 0, 0, 0.06); transition: transform var(--t-fast) var(--ease-out); }
input[type="range"]::-moz-range-thumb { width: 28px; height: 28px; border: 0; border-radius: 50%; background: #fff; box-shadow: 0 3px 8px rgba(0, 0, 0, 0.18); }
input[type="range"]:active::-webkit-slider-thumb { transform: scale(1.1); }
input[type="range"]:focus-visible { outline: 3px solid rgba(var(--brand-rgb), 0.5); outline-offset: 2px; border-radius: 12px; }
.stepper { display: inline-flex; align-items: center; background: var(--fill); border-radius: 10px; overflow: hidden; }
.stepper button { width: 44px; height: 34px; display: grid; place-items: center; transition: background-color var(--t-fast) ease; }
.stepper button:hover { background: var(--fill); }
.stepper button:active { background: var(--fill-2); }
.stepper button[disabled] { opacity: 0.35; cursor: default; }
.stepper button .i { width: 16px; height: 16px; }
.stepper output { min-width: 86px; text-align: center; font-weight: 700; font-size: 14.5px; color: var(--ink) !important; box-shadow: inset 1px 0 0 var(--sep), inset -1px 0 0 var(--sep); line-height: 34px; }

/* ---------- Forms ---------- */
.form { display: grid; gap: 12px; }
.field { display: grid; gap: 6px; }
.field > span { font-size: 13px; font-weight: 600; color: var(--label-2); padding-left: 4px; }
.field > span em { font-style: normal; color: var(--danger); }
.field input, .field select, .field textarea {
  width: 100%; padding: 14px 16px; background: var(--bg-sunk); border: 1px solid transparent; border-radius: var(--r-sm); font-size: 16px; color: var(--ink);
  transition: border-color var(--t-fast) ease, box-shadow var(--t-fast) ease, background-color var(--t-fast) ease; -webkit-appearance: none; appearance: none;
}
.field select { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238e8e93' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 10l5 5 5-5'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 14px center; background-size: 18px; padding-right: 42px; }
.field input:focus, .field select:focus, .field textarea:focus { outline: none; background-color: var(--bg-elev); border-color: var(--brand); box-shadow: 0 0 0 4px rgba(var(--brand-rgb), 0.16); }
.field textarea { resize: vertical; min-height: 96px; }
.field input::placeholder, .field textarea::placeholder { color: var(--label-3); }
.field.is-invalid input, .field.is-invalid textarea { border-color: var(--danger); box-shadow: 0 0 0 4px rgba(229, 72, 77, 0.14); }
.form-note { font-size: 13px; color: var(--label-2); text-align: center; }
.form-error { font-size: 14px; color: var(--danger); font-weight: 600; }
.form .btn { margin-top: 6px; }
.form.is-sending .btn { opacity: 0.7; pointer-events: none; }
.form-on-dark .field > span { color: var(--night-label-2); }
.form-on-dark .field input, .form-on-dark .field textarea, .form-on-dark .field select { background: rgba(255, 255, 255, 0.08); color: #fff; }
.form-on-dark .field input:focus, .form-on-dark .field textarea:focus { background: rgba(255, 255, 255, 0.12); border-color: var(--green); box-shadow: 0 0 0 4px rgba(var(--green-rgb), 0.2); }
.form-on-dark .field input::placeholder, .form-on-dark .field textarea::placeholder { color: rgba(255, 255, 255, 0.4); }
.form-on-dark .form-error { color: #ff9a9d; }


/* ==== 04-header.css ==== */
/* =====================================================================
   Header: floating Liquid Glass capsule with mega menus,
   language / theme / sound controls and a mobile sheet
   ===================================================================== */
:root { --hd-fill: rgba(255, 255, 255, 0.58); --hd-ink: var(--ink); --sheet-fill: rgba(250, 251, 253, 0.95); --sheet-scrim: rgba(8, 10, 14, 0.32); }
:root[data-theme="dark"] { --hd-fill: rgba(20, 21, 26, 0.58); --sheet-fill: rgba(22, 23, 28, 0.95); --sheet-scrim: rgba(0, 0, 0, 0.55); }
/* телефоны и планшеты: стекло шапки и меню плотнее. В iOS Safari, Samsung Internet и в режиме энергосбережения
   размытие под вложенными панелями часто не рисуется, и тогда сквозь меню просвечивает текст страницы */
@media (hover: none), (max-width: 1240px) {
  :root { --hd-fill: rgba(255, 255, 255, 0.8); }
  :root[data-theme="dark"] { --hd-fill: rgba(20, 21, 26, 0.8); }
}

.logo { display: inline-flex; align-items: center; gap: 9px; text-decoration: none; color: var(--hd-ink, var(--ink)); font-weight: 800; font-size: 17px; letter-spacing: -0.03em; flex: none; border-radius: 12px; }
.logo-mark { width: 22px; height: 28px; color: var(--brand); filter: drop-shadow(0 2px 6px rgba(var(--brand-rgb), 0.45)); transition: transform var(--t-mid) var(--spring); }
.logo:hover .logo-mark { transform: rotate(-8deg) scale(1.08); }

.hd { position: fixed; top: 0; left: 0; right: 0; z-index: 90; padding: 10px 12px 0; pointer-events: none; }
html:active-view-transition .hd { view-transition-name: site-header; }
.hd-bar {
  pointer-events: auto; position: relative; isolation: isolate; margin-inline: auto; width: min(100%, 1320px); height: 60px;
  display: flex; align-items: center; gap: 6px; padding: 0 8px 0 18px; border-radius: 22px; color: var(--hd-ink);
  transition: height var(--t-slow) var(--spring), color var(--t-mid) ease;
}
/* the glass lives on a pseudo-element, so the bar itself is not a backdrop root
   and the mega panels inside it can blur the page behind them */
.hd-bar::before {
  content: ""; position: absolute; inset: 0; z-index: -1; border-radius: inherit; pointer-events: none;
  background-color: var(--hd-fill);
  background-image:
    radial-gradient(90% 180% at var(--mx, 22%) var(--my, -60%), var(--g-spec), rgba(255, 255, 255, 0) 52%),
    linear-gradient(180deg, rgba(255, 255, 255, 0.14), rgba(255, 255, 255, 0) 62%);
  -webkit-backdrop-filter: blur(22px) saturate(210%) brightness(1.04);
  backdrop-filter: var(--hd-refract, ) blur(22px) saturate(210%) brightness(1.04);
  box-shadow: var(--g-shadow), var(--g-rims), 0 0 0 0.5px var(--g-edge);
  transition: background-color var(--t-slow) ease, box-shadow var(--t-mid) ease;
}
.hd-bar::after { /* moving light sweep along the rim */
  content: ""; position: absolute; inset: 0; border-radius: inherit; padding: 1px; pointer-events: none;
  background: conic-gradient(from var(--rim-a, 200deg), rgba(255, 255, 255, 0) 0deg, rgba(255, 255, 255, 0.9) 40deg, rgba(255, 255, 255, 0) 90deg, rgba(255, 255, 255, 0) 200deg, rgba(var(--brand-rgb), 0.55) 240deg, rgba(255, 255, 255, 0) 290deg);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor;
  mask: linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0);
  opacity: 0.8;
}
:root[data-theme="dark"] .hd-bar::after { opacity: 0.45; }
.hd.is-compact .hd-bar { height: 54px; }
.hd.is-compact .hd-bar::before { box-shadow: var(--g-shadow-lift), var(--g-rims), 0 0 0 0.5px var(--g-edge); }
.hd.on-dark { --hd-ink: #fff; }
.hd.on-dark .hd-bar { --hd-fill: rgba(24, 26, 32, 0.52); --g-spec: rgba(255, 255, 255, 0.14); --g-rim: rgba(255, 255, 255, 0.28); --g-rim-lo: rgba(255, 255, 255, 0.06); --g-rim-side: rgba(255, 255, 255, 0.1); --g-glow: rgba(255, 255, 255, 0.12); --g-edge: rgba(255, 255, 255, 0.08); }
.hd.on-dark .hd-link, .hd.on-dark .hd-tool { color: #fff; }
.hd.on-dark .hd-link:hover, .hd.on-dark .hd-tool:hover, .hd.on-dark .hd-item.is-open > .hd-link { background: rgba(255, 255, 255, 0.12); }

/* ---- nav ---- */
.hd-nav { flex: 1; display: flex; justify-content: center; min-width: 0; }
.hd-menu { display: flex; align-items: center; gap: 2px; position: relative; }
.hd-item { position: static; }
.hd-link {
  display: inline-flex; align-items: center; gap: 3px; height: 40px; padding: 0 13px; border-radius: 13px; position: relative;
  font-size: 15px; font-weight: 600; letter-spacing: -0.01em; color: var(--hd-ink); text-decoration: none; white-space: nowrap;
  transition: background-color var(--t-fast) ease, color var(--t-fast) ease;
}
.hd-link:hover, .hd-item.is-open > .hd-link { background: var(--fill); }
.hd-link[aria-current="page"]::after, .hd-link[data-current]::after { content: ""; position: absolute; left: 50%; bottom: 3px; width: 4px; height: 4px; margin-left: -2px; border-radius: 50%; background: var(--brand); box-shadow: 0 0 8px rgba(var(--brand-rgb), 0.9); }
.hd-chev { width: 14px; height: 14px; transform: rotate(90deg); opacity: 0.55; transition: transform var(--t-mid) var(--spring), opacity var(--t-fast) ease; }
.hd-item.is-open .hd-chev { transform: rotate(-90deg); opacity: 1; }

/* ---- mega panels ---- */
.mega {
  position: absolute; top: calc(100% + 10px); left: 50%; width: min(860px, calc(100vw - 24px)); translate: -50% 0;
  visibility: hidden; pointer-events: none; transition: visibility 0s linear 0.25s;
}
.mega-in, .lang-pop-in { opacity: 0; transform: translateY(-10px) scale(0.97); transform-origin: 50% 0; transition: opacity 0.2s ease, transform 0.4s var(--spring); }
.mega::before { content: ""; position: absolute; left: 0; right: 0; top: -14px; height: 14px; }
.hd-item.is-open .mega, .hd-lang.is-open .lang-pop { visibility: visible; pointer-events: auto; transition: visibility 0s; }
.hd-item.is-open .mega-in, .hd-lang.is-open .lang-pop-in { opacity: 1; transform: none; transition: opacity 0.2s ease, transform 0.5s var(--spring); }
.mega-in, .lang-pop-in {
  border-radius: 26px; color: var(--ink);
  background-color: var(--g-fill-thick);
  background-image: radial-gradient(120% 80% at 20% -10%, var(--g-spec), rgba(255, 255, 255, 0) 55%);
  -webkit-backdrop-filter: blur(40px) saturate(200%); backdrop-filter: blur(40px) saturate(200%);
  box-shadow: var(--g-shadow-lift), var(--g-rims), 0 0 0 0.5px var(--g-edge);
}
.mega-in { display: grid; grid-template-columns: minmax(0, 1fr) 250px; gap: 10px; padding: 10px; }
.mega-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px; align-content: start; }
.mega-link { display: flex; gap: 14px; align-items: center; padding: 12px; border-radius: 18px; text-decoration: none; color: var(--ink); transition: background-color var(--t-fast) ease, transform var(--t-fast) var(--ease-out); }
.mega-link:hover, .mega-link:focus-visible { background: var(--fill); }
.mega-link:active { transform: scale(0.98); }
.mega-link[aria-current="page"] { background: rgba(var(--brand-rgb), 0.1); }
.mega-txt b { display: block; font-size: 15px; font-weight: 700; letter-spacing: -0.01em; line-height: 1.25; }
.mega-txt small { display: block; font-size: 13px; color: var(--label-2); line-height: 1.35; margin-top: 3px; }
.mega .app-icon { transition: transform var(--t-mid) var(--spring); }
.mega-link:hover .app-icon { transform: scale(1.08) rotate(-4deg); }
.mega-promo {
  position: relative; overflow: hidden; isolation: isolate; border-radius: 20px; padding: 20px; min-height: 230px;
  display: flex; flex-direction: column; justify-content: flex-end; gap: 6px; color: #fff; text-decoration: none; background: #07080a;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.18), inset 0 0 0 1px rgba(255, 255, 255, 0.06);
}
.mega-promo b { font-size: 19px; letter-spacing: -0.02em; position: relative; }
.mega-promo > span:not(.mega-promo-art) { font-size: 13.5px; color: rgba(235, 235, 245, 0.72); line-height: 1.4; position: relative; }
.mega-promo .link-arrow { color: #7fe0ff; font-size: 14px; margin-top: 6px; }
.mega-promo-art { position: absolute; inset: 0; z-index: -1; }
.mega-promo-art i { position: absolute; border-radius: 50%; filter: blur(22px); animation: mp-float 9s ease-in-out infinite alternate; }
.mega-promo-art i:nth-child(1) { width: 170px; height: 170px; left: -40px; top: -60px; background: rgba(var(--brand-rgb), 0.75); }
.mega-promo-art i:nth-child(2) { width: 150px; height: 150px; right: -50px; top: 10px; background: rgba(var(--green-rgb), 0.5); animation-delay: -3s; }
.mega-promo-art i:nth-child(3) { width: 120px; height: 120px; left: 60px; top: 70px; background: rgba(90, 120, 255, 0.45); animation-delay: -6s; }
.mp-services .mega-promo-art i:nth-child(1) { background: rgba(80, 120, 255, 0.7); }
.mp-company .mega-promo-art i:nth-child(2) { background: rgba(var(--green-rgb), 0.7); }
.mega-promo-art svg { position: absolute; right: 16px; top: 16px; width: 44px; height: 54px; color: #fff; opacity: 0.9; filter: drop-shadow(0 4px 14px rgba(var(--brand-rgb), 0.8)); }
.mega-promo-art::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(7, 8, 10, 0) 30%, rgba(7, 8, 10, 0.78) 100%); }
@keyframes mp-float { to { transform: translate3d(24px, 18px, 0) scale(1.15); } }

/* ---- tools ---- */
.hd-tools { display: flex; align-items: center; gap: 2px; margin-left: auto; flex: none; }
.hd-tool {
  height: 40px; min-width: 40px; padding: 0; border-radius: 13px; display: inline-grid; place-items: center; color: var(--hd-ink); position: relative;
  transition: background-color var(--t-fast) ease, transform var(--t-fast) var(--ease-out), color var(--t-fast) ease;
}
.hd-tool:hover { background: var(--fill); }
.hd-tool:active { transform: scale(0.9); }
.hd-tool .i { width: 20px; height: 20px; }
.hd-cta { margin-left: 8px; }
.hd-lang { position: relative; }
.hd-lang-btn { display: inline-flex; align-items: center; gap: 5px; padding: 0 10px; font-weight: 700; font-size: 13.5px; letter-spacing: 0.02em; }
.hd-lang-btn .i { width: 18px; height: 18px; opacity: 0.8; }
.lang-pop { position: absolute; top: calc(100% + 14px); right: -6px; width: 220px; visibility: hidden; pointer-events: none; transition: visibility 0s linear 0.25s; z-index: 2; }
.lang-pop-in { transform-origin: 80% 0; }
.lang-pop-in { padding: 6px; display: grid; gap: 2px; }
.lang-pop a { display: flex; align-items: center; gap: 12px; padding: 11px 12px; border-radius: 14px; text-decoration: none; color: var(--ink); font-weight: 600; font-size: 15px; transition: background-color var(--t-fast) ease; }
.lang-pop a:hover, .lang-pop a:focus-visible { background: var(--fill); }
.lang-code { width: 32px; height: 24px; border-radius: 7px; display: grid; place-items: center; font-size: 11.5px; font-weight: 800; letter-spacing: 0.04em; background: var(--fill); color: var(--label-2); }
.lang-pop a .i { margin-left: auto; width: 18px; height: 18px; color: var(--brand); opacity: 0; }
.lang-pop a[aria-current="true"] .i { opacity: 1; }
.lang-pop a[aria-current="true"] .lang-code { background: var(--brand); color: var(--on-brand); }

/* theme icon: sun ⇄ moon morph */
.th-ico { overflow: visible; }
.th-core { r: 4.6px; transition: r 0.55s var(--spring); }
.th-bite { cx: 26px; cy: 2px; r: 6.4px; transition: cx 0.55s var(--spring), cy 0.55s var(--spring); }
.th-rays { transform-origin: 12px 12px; transition: transform 0.55s var(--spring), opacity 0.3s ease; }
:root[data-theme="dark"] .th-core { r: 7.4px; }
:root[data-theme="dark"] .th-bite { cx: 16.8px; cy: 7.2px; }
:root[data-theme="dark"] .th-rays { transform: rotate(60deg) scale(0.3); opacity: 0; }

/* sound icon: iOS speaker with live waves */
.snd-ico path { transition: opacity 0.3s ease, transform 0.4s var(--spring); transform-box: fill-box; transform-origin: 0% 50%; }
.hd-sound[aria-pressed="false"] .snd-w1, .hd-sound[aria-pressed="false"] .snd-w2 { opacity: 0; transform: scale(0.4); }
.hd-sound[aria-pressed="true"] .snd-x { opacity: 0; transform: scale(0.3); }
.hd-sound[aria-pressed="false"] { color: var(--label-2); }
.hd.on-dark .hd-sound[aria-pressed="false"] { color: rgba(255, 255, 255, 0.6); }
.hd-sound[aria-pressed="true"] .snd-w1 { animation: snd-wave 1.4s ease-in-out infinite; }
.hd-sound[aria-pressed="true"] .snd-w2 { animation: snd-wave 1.4s ease-in-out 0.2s infinite; }
.hd-sound[aria-pressed="true"]::after { content: ""; position: absolute; right: 7px; top: 7px; width: 6px; height: 6px; border-radius: 50%; background: var(--green); box-shadow: 0 0 8px rgba(var(--green-rgb), 0.9); }
@keyframes snd-wave { 0%, 100% { opacity: 1; } 50% { opacity: 0.35; } }

/* burger → close */
.hd-burger { display: none; }
.hd-burger span { position: absolute; left: 11px; right: 11px; height: 2px; border-radius: 2px; background: currentColor; transition: transform 0.45s var(--spring), top 0.45s var(--spring); }
.hd-burger span:nth-child(1) { top: 15px; }
.hd-burger span:nth-child(2) { top: 23px; }
.hd.menu-open .hd-burger span:nth-child(1) { top: 19px; transform: rotate(45deg); }
.hd.menu-open .hd-burger span:nth-child(2) { top: 19px; transform: rotate(-45deg); }

/* ---- mobile sheet ---- */
.mnav { position: fixed; inset: 0; z-index: -1; padding: 82px 12px 12px; pointer-events: none; visibility: hidden; transition: visibility 0s linear 0.35s; }
.hd.menu-open .mnav { visibility: visible; pointer-events: auto; transition: visibility 0s; }
.mnav-scrim { position: absolute; inset: 0; background: var(--sheet-scrim); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); opacity: 0; transition: opacity 0.3s ease; }
.hd.menu-open .mnav-scrim { opacity: 1; }
.mnav-in {
  position: relative; max-width: 560px; margin: 0 auto; max-height: 100%; overflow: auto; overscroll-behavior: contain; border-radius: 28px; padding: 10px 10px 16px;
  background-color: var(--sheet-fill);
  background-image: radial-gradient(120% 60% at 20% -10%, var(--g-spec), rgba(255, 255, 255, 0) 55%);
  -webkit-backdrop-filter: blur(40px) saturate(200%); backdrop-filter: blur(40px) saturate(200%);
  box-shadow: var(--g-shadow-lift), var(--g-rims), 0 0 0 0.5px var(--g-edge);
  opacity: 0; transform: translateY(-14px) scale(0.97); transform-origin: 50% 0; transition: transform 0.5s var(--spring), opacity 0.25s ease;
}
.hd.menu-open .mnav-in { transform: none; opacity: 1; }
.mnav-nav { display: grid; }
.mnav-link, .mnav-group summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 15px 14px; border-radius: 16px; font-size: 19px; font-weight: 700; letter-spacing: -0.02em; text-decoration: none; color: var(--ink); cursor: pointer; list-style: none; }
.mnav-group summary::-webkit-details-marker { display: none; }
.mnav-link:hover, .mnav-group summary:hover { background: var(--fill); }
.mnav-link .i { width: 18px; height: 18px; color: var(--label-3); }
.mnav-group summary .i { width: 18px; height: 18px; color: var(--label-3); transform: rotate(90deg); transition: transform var(--t-mid) var(--spring); }
.mnav-group[open] summary .i { transform: rotate(-90deg); }
.mnav-link[aria-current="page"] { color: var(--brand-ink); }
.mnav-sub { display: grid; gap: 2px; padding: 0 4px 8px; }
.mnav-sub a { display: flex; align-items: center; gap: 12px; padding: 9px 10px; border-radius: 14px; text-decoration: none; color: var(--ink); font-size: 16px; font-weight: 600; }
.mnav-sub a:hover, .mnav-sub a[aria-current="page"] { background: var(--fill); }
.mnav-prefs { display: grid; gap: 8px; margin: 10px 4px 14px; padding: 12px; border-radius: 20px; background: var(--fill); }
.mnav-lang { display: grid; grid-template-columns: repeat(3, 1fr); gap: 4px; padding: 3px; border-radius: 13px; background: var(--fill); }
.mnav-lang a { text-align: center; padding: 8px 0; border-radius: 10px; font-weight: 700; font-size: 14px; text-decoration: none; color: var(--ink-soft); }
.mnav-lang a[aria-current="true"] { background: var(--bg-elev); color: var(--ink); box-shadow: 0 3px 10px rgba(0, 0, 0, 0.12); }
.mnav-pref { display: flex; align-items: center; gap: 12px; padding: 8px 6px; font-size: 16px; font-weight: 600; color: var(--ink); text-align: left; }
.mnav-pref .i { width: 20px; height: 20px; color: var(--label-2); }
.mnav-pref > span:not(.switch) { flex: 1; }
[aria-pressed="true"] > .switch { background: var(--green-deep); }
[aria-pressed="true"] > .switch::after { transform: translateX(20px); }
.mnav-contact { display: flex; justify-content: center; flex-wrap: wrap; gap: 6px 18px; margin-top: 14px; font-size: 14.5px; }
.mnav-contact a { color: var(--label-2); text-decoration: none; font-weight: 600; }

@media (max-width: 1240px) {
  .hd-nav { display: none; }
  .hd-burger { display: inline-grid; }
  .hd-tools { margin-left: auto; }
}
@media (max-width: 720px) {
  .hd { padding: 8px 8px 0; }
  .hd-bar { height: 56px; padding-left: 14px; border-radius: 20px; }
  .hd.is-compact .hd-bar { height: 52px; }
  .hd-lang, .hd-theme, .hd-cta { display: none; }
  .mnav { padding-top: 72px; }
}
@media (min-width: 1241px) { .mnav { display: none; } }
@media (prefers-reduced-transparency: reduce) {
  .hd-bar::before, .mega-in, .lang-pop-in, .mnav-in { -webkit-backdrop-filter: none !important; backdrop-filter: none !important; background-color: var(--bg-elev) !important; background-image: none !important; }
  .hd.on-dark .hd-bar::before { background-color: #1a1b20 !important; }
}


/* ==== 06-components.css ==== */
/* =====================================================================
   Shared components for inner pages (ported from v2, re-skinned as layered glass,
   light + dark themes)
   ===================================================================== */
:root {
  --card-fill: rgba(255, 255, 255, 0.7);
  --card-blur: 20px;
  --card-rims: inset 0 1px 0 rgba(255, 255, 255, 0.95), inset 0 0 0 1px rgba(255, 255, 255, 0.5), inset 0 -1px 0 rgba(20, 40, 60, 0.04);
  --card-shadow: 0 1px 2px rgba(16, 40, 60, 0.04), 0 12px 32px -14px rgba(16, 40, 60, 0.18);
  --card-shadow-lift: 0 2px 4px rgba(16, 40, 60, 0.05), 0 30px 60px -20px rgba(16, 40, 60, 0.28);
}
:root[data-theme="dark"] {
  --card-fill: rgba(26, 28, 34, 0.62);
  --card-rims: inset 0 1px 0 rgba(255, 255, 255, 0.09), inset 0 0 0 1px rgba(255, 255, 255, 0.05), inset 0 -1px 0 rgba(0, 0, 0, 0.3);
  --card-shadow: 0 1px 2px rgba(0, 0, 0, 0.4), 0 16px 36px -16px rgba(0, 0, 0, 0.7);
  --card-shadow-lift: 0 2px 4px rgba(0, 0, 0, 0.4), 0 34px 70px -24px rgba(0, 0, 0, 0.85);
}
@media (max-width: 700px) { :root { --card-blur: 0px; --card-fill: rgba(255, 255, 255, 0.9); } :root[data-theme="dark"] { --card-fill: rgba(24, 26, 31, 0.94); } }

/* ambient colour field behind the whole site — gives the glass something to refract */
.ambient { position: fixed; inset: 0; z-index: -1; pointer-events: none; overflow: hidden; }
.ambient i { position: absolute; border-radius: 50%; width: 60vmax; height: 60vmax; opacity: 0.55; }
.ambient i:nth-child(1) { left: -20vmax; top: -24vmax; background: radial-gradient(circle, rgba(10, 188, 243, 0.2), rgba(10, 188, 243, 0) 62%); }
.ambient i:nth-child(2) { right: -24vmax; top: 20vh; background: radial-gradient(circle, rgba(7, 231, 183, 0.16), rgba(7, 231, 183, 0) 62%); }
.ambient i:nth-child(3) { left: 10vw; bottom: -30vmax; background: radial-gradient(circle, rgba(110, 150, 255, 0.16), rgba(110, 150, 255, 0) 62%); }
:root[data-theme="dark"] .ambient i { opacity: 0.8; }

/* shared glass card recipe */
.tile, .pcard, .figures > div, .flow > div, .two-lists > div, .panel, .person,
.list, .index, .faq, .facts, .own, .industries, .doc-list, .ledger, .stack, .tbl-wrap, .contact-group, .tiles > div {
  background-color: var(--card-fill);
  -webkit-backdrop-filter: blur(var(--card-blur)) saturate(180%); backdrop-filter: blur(var(--card-blur)) saturate(180%);
  box-shadow: var(--card-shadow), var(--card-rims);
}
.is-paper { background: transparent; }

/* ---------- Night sections ---------- */
.night .btn-outline, .night .btn-ghost { background: rgba(255, 255, 255, 0.08); color: #fff; }
.spot { position: relative; z-index: 1; max-width: 760px; margin: clamp(48px, 6vw, 72px) auto 0; border-radius: 30px; padding: 10px; }
.spot-bar { display: flex; align-items: center; gap: 12px; height: 60px; padding: 0 18px; border-radius: 22px; background: rgba(255, 255, 255, 0.08); font-size: clamp(16px, 1.6vw, 20px); font-weight: 500; }
.spot-bar .i { width: 22px; height: 22px; color: var(--night-label-2); }
.caret { width: 2px; height: 24px; background: var(--brand); border-radius: 2px; animation: blink 1s steps(1) infinite; }
.spot-answer { padding: 22px 18px 16px; }
.spot-answer .sa-label { display: flex; align-items: center; gap: 10px; font-size: 13.5px; font-weight: 600; color: var(--night-label-2); }
.spot-answer .sa-text { font-size: clamp(17px, 1.6vw, 21px); line-height: 1.45; margin-top: 12px; }
.spot-answer .sa-text b { color: #fff; }
.cite { display: inline-grid; place-items: center; min-width: 22px; height: 22px; padding: 0 6px; border-radius: 7px; background: rgba(10, 188, 243, 0.22); color: #8fe1ff; font-size: 12.5px; font-weight: 700; vertical-align: 2px; margin-left: 2px; }
.spot-src { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
.src-chip { display: inline-flex; align-items: center; gap: 8px; padding: 8px 12px; border-radius: 12px; background: rgba(255, 255, 255, 0.07); font-size: 13.5px; color: rgba(255, 255, 255, 0.86); }
.src-chip .i { width: 16px; height: 16px; color: var(--brand); }
.spot-meta { font-size: 13px; color: var(--night-label-2); margin-top: 14px; display: flex; gap: 14px; flex-wrap: wrap; }

/* ---------- Tiles ---------- */
.bento { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.tile { border-radius: var(--r-lg); padding: 26px; display: flex; flex-direction: column; gap: 10px; min-height: 220px; position: relative; overflow: hidden; transition: translate var(--t-mid) var(--ease-out), box-shadow var(--t-mid) ease; }
@media (hover: hover) { .tile:hover { translate: 0 -4px; box-shadow: var(--card-shadow-lift), var(--card-rims); } }
.tile.span-2 { grid-column: span 2; }
.tile h3 { font-size: 21px; margin-top: auto; }
.tile p { color: var(--label-2); font-size: 15px; }
.tile .app-icon { --s: 48px; }
.tile.is-num, .tile.is-ink { background: linear-gradient(160deg, #1d1e23, #0d0e10); color: #fff; }
.tile.is-num { justify-content: space-between; }
.tile.is-num b { font-size: clamp(44px, 4.6vw, 68px); font-weight: 800; letter-spacing: -0.05em; line-height: 1; }
.tile.is-num p, .tile.is-ink p { color: var(--night-label-2); }
.tile.is-brand { background: linear-gradient(150deg, #36cdfb, var(--brand) 60%, #08a9dc); color: var(--on-brand); }
.tile.is-brand p { color: var(--on-brand-2); }
.tile.is-green { background: linear-gradient(150deg, #4ff4d0, var(--green)); color: var(--on-brand); }
.tile.is-green p { color: #0d4a3c; }
.bento.is-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 1000px) { .bento { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .bento, .bento.is-2 { grid-template-columns: 1fr; } .tile.span-2 { grid-column: auto; } .tile { min-height: 0; } }

/* ---------- Project cards ---------- */
.pgrid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.pcard { display: flex; flex-direction: column; text-decoration: none; color: inherit; border-radius: var(--r-xl); overflow: hidden; transition: translate var(--t-mid) var(--ease-out), box-shadow var(--t-mid) ease; }
@media (hover: hover) { a.pcard:hover { translate: 0 -6px; box-shadow: var(--card-shadow-lift), var(--card-rims); } }
.pcard > div:last-child { padding: 22px 26px 26px; }
.pcard p { color: var(--label-2); font-size: 15.5px; max-width: 52ch; }
.pcard .tags { margin-top: 14px; }
.cover { aspect-ratio: 16 / 10; position: relative; overflow: hidden; display: flex; flex-direction: column; justify-content: space-between; padding: 26px; color: #fff; }
.cover-brand { background: radial-gradient(120% 90% at 85% 10%, #8fe6ff 0%, rgba(143, 230, 255, 0) 55%), linear-gradient(150deg, #0abcf3, #0678a3); }
.cover-ink { background: radial-gradient(100% 80% at 90% 0%, rgba(10, 188, 243, 0.45), rgba(10, 188, 243, 0) 60%), linear-gradient(150deg, #2c2c31, #0d0d0f); }
.cover-concrete { background: radial-gradient(100% 90% at 90% 0%, rgba(7, 231, 183, 0.55), rgba(7, 231, 183, 0) 60%), linear-gradient(150deg, #e9f8f4, #cfeee6); color: var(--shark); }
.cover-meta { font-size: 13.5px; font-weight: 600; opacity: 0.85; position: relative; z-index: 1; }
.cover-name { font-size: clamp(30px, 3.4vw, 48px); font-weight: 800; letter-spacing: -0.045em; line-height: 0.98; position: relative; z-index: 1; word-break: break-word; }
.cover-w { position: absolute; right: -4%; bottom: -14%; width: 44%; opacity: 0.18; color: currentColor; pointer-events: none; transition: transform var(--t-slow) var(--ease-out); }
a.pcard:hover .cover-w { transform: translate(-10px, -8px) rotate(-3deg); }
.cover-lg { aspect-ratio: 21 / 9; border-radius: var(--r-xl); padding: clamp(26px, 4vw, 44px); }
.cover-lg .cover-name { font-size: clamp(44px, 7vw, 104px); }
@media (max-width: 760px) { .pgrid { grid-template-columns: 1fr; } .cover-lg { aspect-ratio: 4 / 3; } }

/* ---------- Grouped lists (iOS inset) ---------- */
.list, .index, .faq, .facts, .own, .industries, .doc-list, .ledger { border-radius: var(--r-md); overflow: hidden; }
.list-row { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 16px 20px; }
.list-row + .list-row { box-shadow: inset 0 1px 0 var(--sep); }
.list-row b { display: block; font-weight: 600; }
.list-row .small { color: var(--label-2); display: block; margin-top: 2px; }
.list-row a { text-decoration: none; }
.list-row .btn { flex: none; }
.index-row { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 6fr) minmax(0, 3fr); gap: 24px; padding: 22px 24px; align-items: center; text-decoration: none; color: inherit; transition: background-color var(--t-fast) ease; }
.index-row + .index-row { box-shadow: inset 0 1px 0 var(--sep); }
a.index-row:hover { background: rgba(120, 120, 128, 0.06); }
.index-row h3 { font-size: 19px; display: flex; align-items: center; gap: 14px; }
.index-row p { color: var(--label-2); font-size: 15px; }
.index-kpi { text-align: right; }
.index-kpi b { display: block; font-size: 22px; font-weight: 800; letter-spacing: -0.03em; line-height: 1.05; }
.index-kpi span { display: block; font-size: 13px; color: var(--label-2); margin-top: 4px; }
.index-row .link-arrow { justify-self: end; }
.index-row[data-cols="4-7"] { grid-template-columns: minmax(0, 4fr) minmax(0, 7fr) auto; }
.index-row[data-cols="2-7"] { grid-template-columns: minmax(0, 2fr) minmax(0, 7fr) auto; }
@media (max-width: 800px) {
  .index-row, .index-row[data-cols] { grid-template-columns: 1fr; gap: 8px; padding: 18px 20px; }
  .index-kpi { text-align: left; }
  .index-kpi b { display: inline; font-size: 17px; }
  .index-kpi span { display: inline; margin: 0 0 0 4px; font-size: 14px; }
  .index-row[data-cols] .tag { justify-self: start; }
}
.industries { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.industries > div, .industries > a { padding: 20px 22px; text-decoration: none; color: inherit; box-shadow: inset 0 1px 0 var(--sep); }
.industries > :nth-child(-n + 2) { box-shadow: none; }
.industries > :nth-child(2n) { border-left: 1px solid var(--sep); }
.industries b { display: block; font-size: 17.5px; font-weight: 700; margin-bottom: 4px; letter-spacing: -0.01em; }
.industries p { color: var(--label-2); font-size: 14.5px; }
a.industries-link:hover b { color: var(--brand-ink); }
.industries.is-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.industries.is-3 > :nth-child(-n + 3) { box-shadow: none; }
.industries.is-3 > :nth-child(2n) { border-left: 0; }
.industries.is-3 > :not(:nth-child(3n + 1)) { border-left: 1px solid var(--sep); }
@media (max-width: 720px) {
  .industries, .industries.is-3 { grid-template-columns: 1fr; }
  .industries > *, .industries.is-3 > * { border-left: 0 !important; box-shadow: inset 0 1px 0 var(--sep) !important; }
  .industries > :first-child { box-shadow: none !important; }
}
.facts-row { display: grid; grid-template-columns: 200px 1fr; gap: 16px; padding: 14px 20px; font-size: 15px; }
.facts-row + .facts-row { box-shadow: inset 0 1px 0 var(--sep); }
.facts-row span { color: var(--label-2); }
.facts-row .pending { color: var(--label-2); font-weight: 500; }
@media (max-width: 560px) { .facts-row { grid-template-columns: 1fr; gap: 2px; } }
.own > div { padding: 20px 22px; display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); gap: 24px; }
.own > div + div { box-shadow: inset 0 1px 0 var(--sep); }
.own b { font-size: 17px; }
.own p { color: var(--label-2); font-size: 15px; }
@media (max-width: 720px) { .own > div { grid-template-columns: 1fr; gap: 6px; } }
.check-list { display: grid; gap: 12px; }
.check-list li { display: flex; gap: 12px; align-items: flex-start; color: var(--ink-soft); }
.check-list .i { color: #fff; background: linear-gradient(145deg, #3ff2cc, #05b58f); border-radius: 50%; padding: 3px; width: 22px; height: 22px; margin-top: 1px; box-shadow: 0 4px 10px -4px rgba(var(--green-rgb), 0.8), inset 0 1px 0 rgba(255, 255, 255, 0.5); }

/* FAQ */
.faq-item + .faq-item { box-shadow: inset 0 1px 0 var(--sep); }
.faq-item summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 20px 22px; font-weight: 600; font-size: 17px; line-height: 1.35; letter-spacing: -0.01em; transition: background-color var(--t-fast) ease; }
.faq-item summary:hover { background: rgba(120, 120, 128, 0.06); }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-plus { flex: none; width: 28px; height: 28px; border-radius: 50%; background: var(--fill); position: relative; transition: transform var(--t-mid) var(--spring), background-color var(--t-mid) ease; }
.faq-plus::before, .faq-plus::after { content: ""; position: absolute; left: 50%; top: 50%; width: 12px; height: 2px; border-radius: 2px; background: var(--ink); transform: translate(-50%, -50%); }
.faq-plus::after { transform: translate(-50%, -50%) rotate(90deg); }
.faq-item[open] .faq-plus { transform: rotate(135deg); background: var(--ink-fill); }
.faq-item[open] .faq-plus::before, .faq-item[open] .faq-plus::after { background: var(--on-ink); }
.faq-a { padding: 0 22px 22px; color: var(--label-2); font-size: 16px; max-width: 72ch; }
.faq-item::details-content { transition: height 0.4s var(--ease-out), content-visibility 0.4s allow-discrete; height: 0; overflow: clip; }
.faq-item[open]::details-content { height: auto; }
@supports (interpolate-size: allow-keywords) { :root { interpolate-size: allow-keywords; } }
.night .faq, .night .list { background: rgba(255, 255, 255, 0.05); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08); }
.night .faq-item + .faq-item, .night .list-row + .list-row { box-shadow: inset 0 1px 0 var(--night-sep); }
.night .faq-plus { background: rgba(255, 255, 255, 0.12); }
.night .faq-plus::before, .night .faq-plus::after { background: #fff; }
.night .faq-a { color: var(--night-label-2); }

/* Ledger «Вы / Мы» */
.ledger-head, .ledger-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 28px; padding: 16px 22px; }
.ledger-head { font-weight: 700; font-size: 14px; color: var(--label-2); background: rgba(120, 120, 128, 0.07); }
.ledger-row { box-shadow: inset 0 1px 0 var(--sep); }
.ledger-row b { display: block; font-weight: 700; margin-bottom: 4px; }
.ledger-row p { color: var(--label-2); font-size: 15px; }
.ledger-head.is-3, .ledger-row.is-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ledger-cols { display: grid; grid-template-columns: 64px minmax(0, 1fr) minmax(0, 1fr); gap: 24px; padding: 14px 22px; font-weight: 700; font-size: 14px; color: var(--label-2); background: rgba(120, 120, 128, 0.07); }
.ledger-step { display: grid; grid-template-columns: 64px minmax(0, 1fr) minmax(0, 1fr); gap: 8px 24px; padding: 22px; box-shadow: inset 0 1px 0 var(--sep); align-items: start; }
.step-n { box-shadow: 0 8px 18px -8px rgba(var(--brand-rgb), 0.8), inset 0 1px 0 rgba(255, 255, 255, 0.45), inset 0 -2px 4px rgba(0, 0, 0, 0.15); }
.ledger-step .step-n { grid-row: 1 / span 2; width: 44px; height: 44px; border-radius: 14px; display: grid; place-items: center; font-weight: 800; font-size: 18px; color: #fff; background: linear-gradient(145deg, #3fd3ff, #0797c4); }
.ledger-step:nth-child(4n + 3) .step-n { background: linear-gradient(145deg, #3ff2cc, #05b58f); }
.ledger-step:nth-child(4n) .step-n { background: linear-gradient(145deg, #4a4a50, #1b1b1e); }
.ledger-step:nth-child(4n + 1) .step-n { background: linear-gradient(145deg, #58c8ff, #1f6fe0); }
.ledger-step-title { grid-column: 2 / -1; grid-row: 1; font-size: 19px; line-height: 1.3; letter-spacing: -0.02em; }
.ledger-step > [data-col]:nth-of-type(2) { grid-column: 2; }
.ledger-step > [data-col]:nth-of-type(3) { grid-column: 3; }
.ledger-step p { color: var(--label-2); font-size: 15px; }
@media (max-width: 720px) {
  .ledger-head, .ledger-cols { display: none; }
  .ledger-row, .ledger-row.is-3 { grid-template-columns: 1fr; gap: 10px; }
  .ledger-row > div::before, .ledger-step > [data-col]::before { content: attr(data-col); display: block; font-size: 12.5px; font-weight: 700; color: var(--brand-ink); margin-bottom: 3px; }
  .ledger-step { grid-template-columns: auto minmax(0, 1fr); gap: 12px 14px; }
  .ledger-step .step-n { grid-row: 1; width: 36px; height: 36px; font-size: 15px; border-radius: 11px; }
  .ledger-step > [data-col]:nth-of-type(n) { grid-column: 1 / -1; }
}

/* Figures → stat widgets */
.figures { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.figures > div { border-radius: var(--r-lg); padding: 26px; }
.figures .num { margin-bottom: 12px; }
.figures p { color: var(--label-2); font-size: 15px; }
.figures-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.figures-4 .num { font-size: clamp(32px, 3.2vw, 46px); }
.figures.is-1 { grid-template-columns: 1fr; }
.figures.is-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.night .figures > div, .is-dark .figures > div { background: rgba(255, 255, 255, 0.05); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08); }
.night .figures p, .is-dark .figures p { color: var(--night-label-2); }
.is-brand .figures > div { background: rgba(255, 255, 255, 0.5); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.8); }
.is-brand .figures p { color: var(--on-brand-2); }
@media (max-width: 900px) { .figures, .figures-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .figures, .figures-4, .figures.is-2 { grid-template-columns: 1fr; } }

/* Flow steps */
.flow { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; counter-reset: flow; }
.flow > div { border-radius: var(--r-lg); padding: 24px; }
.flow h3 { font-size: 19px; margin: 0 0 8px; display: flex; flex-direction: column; gap: 16px; }
.flow .step-n { width: 40px; height: 40px; border-radius: 12px; display: grid; place-items: center; font-weight: 800; font-size: 17px; color: #fff; background: linear-gradient(145deg, #3fd3ff, #0797c4); }
.flow > div:nth-child(2) .step-n { background: linear-gradient(145deg, #3ff2cc, #05b58f); }
.flow > div:nth-child(3) .step-n { background: linear-gradient(145deg, #58c8ff, #1f6fe0); }
.flow > div:nth-child(4) .step-n { background: linear-gradient(145deg, #4a4a50, #1b1b1e); }
.flow p { color: var(--label-2); font-size: 15px; }
.flow.is-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 960px) { .flow, .flow.is-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .flow, .flow.is-3 { grid-template-columns: 1fr; } }

/* Stack spec rows */
.stack { border-radius: var(--r-md); overflow: hidden; display: grid; grid-template-columns: minmax(0, 1fr); }
.stack > div { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 12px; padding: 14px 20px; font-size: 15px; color: var(--label-2); }
.stack > div + div { box-shadow: inset 0 1px 0 var(--sep); }
.stack b { color: var(--ink); font-weight: 700; }
.stack.is-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.stack.is-2 > div { grid-template-columns: 1fr; gap: 3px; }
.stack.is-2 > div:nth-child(2) { box-shadow: none; }
.stack.is-2 > div:nth-child(2n) { border-left: 1px solid var(--sep); }
.night .stack { background: rgba(255, 255, 255, 0.05); }
.night .stack > div { color: var(--night-label-2); }
.night .stack b { color: #fff; }
@media (max-width: 720px) { .stack.is-2 { grid-template-columns: 1fr; } .stack.is-2 > div { border-left: 0 !important; box-shadow: inset 0 1px 0 var(--sep) !important; } .stack.is-2 > div:first-child { box-shadow: none !important; } }
@media (max-width: 480px) { .stack > div { grid-template-columns: 1fr; gap: 2px; } }
.tiles { display: flex; flex-wrap: wrap; gap: 8px; }
.tiles > div { border-radius: var(--r-pill); padding: 9px 16px; font-size: 14.5px; font-weight: 600; }
.two-lists { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.two-lists > div { border-radius: var(--r-lg); padding: 26px; }
.two-lists h3 { margin-bottom: 12px; }
@media (max-width: 720px) { .two-lists { grid-template-columns: 1fr; } }
.panel { border-radius: var(--r-lg); padding: 26px; }
.panel h3 { margin-bottom: 8px; }
.panel p { color: var(--label-2); font-size: 15px; }
.quote { background: linear-gradient(160deg, #1d1e23, #0d0e10); color: #fff; border-radius: var(--r-lg); padding: 32px 36px; font-size: 21px; line-height: 1.4; font-weight: 600; letter-spacing: -0.015em; box-shadow: var(--card-shadow), inset 0 1px 0 rgba(255, 255, 255, 0.1); }
.quote .who { display: block; margin-top: 18px; font-size: 14px; font-weight: 500; color: var(--night-label-2); }

/* Tables */
.tbl-wrap { overflow-x: auto; border-radius: var(--r-md); }
.tbl { width: 100%; border-collapse: collapse; font-size: 15px; min-width: 560px; }
.tbl th, .tbl td { padding: 14px 20px; text-align: left; vertical-align: top; }
.tbl tr + tr td, .tbl tbody tr:first-child td { box-shadow: inset 0 1px 0 var(--sep); }
.tbl th { font-size: 13.5px; font-weight: 600; color: var(--label-2); background: rgba(120, 120, 128, 0.07); }
.tbl td b { font-weight: 700; }
.tbl-num td:not(:first-child), .tbl-num th:not(:first-child) { text-align: right; }
@media (max-width: 600px) {
  .tbl-wrap.is-cards { overflow: visible; background: transparent; box-shadow: none; -webkit-backdrop-filter: none; backdrop-filter: none; }
  .tbl-cards { min-width: 0; }
  .tbl-cards thead { display: none; }
  .tbl-cards, .tbl-cards tbody, .tbl-cards tr, .tbl-cards td { display: block; width: 100%; }
  .tbl-cards tr { background: var(--card-fill); border-radius: var(--r-md); padding: 8px 18px; margin-bottom: 10px; box-shadow: var(--card-shadow), var(--card-rims); }
  .tbl-cards td, .tbl-cards tr + tr td, .tbl-cards tbody tr:first-child td { display: flex; justify-content: space-between; align-items: baseline; gap: 14px; padding: 9px 0; text-align: right !important; box-shadow: none; }
  .tbl-cards td + td { box-shadow: inset 0 1px 0 var(--sep) !important; }
  .tbl-cards td::before { content: attr(data-label); flex: none; max-width: 48%; text-align: left; font-size: 13px; font-weight: 600; color: var(--label-2); }
  .tbl-cards td:first-child { font-size: 17px; }
}

/* ---------- Page hero (inner pages) ---------- */
.hero-page { position: relative; overflow: hidden; padding: calc(var(--header-h) + clamp(56px, 8vw, 104px)) 0 clamp(56px, 7vw, 96px); }
.hero-page::before, .hero-page::after { content: ""; position: absolute; border-radius: 50%; width: 70vmax; height: 70vmax; pointer-events: none; z-index: 0; }
.hero-page::before { left: -26vmax; top: -40vmax; background: radial-gradient(circle, rgba(10, 188, 243, 0.32), rgba(10, 188, 243, 0) 62%); animation: drift-a 26s ease-in-out infinite alternate; }
.hero-page::after { right: -30vmax; top: -30vmax; background: radial-gradient(circle, rgba(7, 231, 183, 0.24), rgba(7, 231, 183, 0) 60%); animation: drift-b 32s ease-in-out infinite alternate; }
.hero-page.is-brand::before { background: radial-gradient(circle, rgba(255, 255, 255, 0.5), rgba(255, 255, 255, 0) 62%); }
.hero-page.is-brand::after { background: radial-gradient(circle, rgba(7, 231, 183, 0.55), rgba(7, 231, 183, 0) 60%); }
.hero-page-in { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 4fr); gap: clamp(32px, 5vw, 72px); align-items: end; }
.hero-page .lead { margin-top: 22px; }
.hero-page .h1 { max-width: 14em; }
.crumbs {
  display: inline-flex; flex-wrap: wrap; align-items: center; gap: 8px; font-size: 13.5px; font-weight: 500; color: var(--label-2); margin-bottom: 22px; padding: 6px 14px; border-radius: var(--r-pill);
  background: var(--g-fill-thin); -webkit-backdrop-filter: blur(16px) saturate(180%); backdrop-filter: blur(16px) saturate(180%); box-shadow: var(--g-rims), 0 0 0 0.5px var(--g-edge);
}
.crumbs a { text-decoration: none; color: var(--ink); }
.crumbs span { color: var(--label-3); }
.hero-page-aside {
  border-radius: var(--r-lg); padding: 24px; color: var(--label-2); font-size: 15px; line-height: 1.55;
  background-color: var(--g-fill); background-image: radial-gradient(130% 90% at var(--mx, 18%) var(--my, -12%), var(--g-spec), rgba(255, 255, 255, 0) 48%);
  -webkit-backdrop-filter: blur(24px) saturate(180%); backdrop-filter: blur(24px) saturate(180%); box-shadow: var(--g-shadow), var(--g-rims), 0 0 0 0.5px var(--g-edge);
}
.hero-page-aside b { color: var(--ink); display: block; font-size: 26px; font-weight: 800; letter-spacing: -0.035em; margin-bottom: 2px; }
.hero-page-aside p + p { margin-top: 16px; padding-top: 16px; box-shadow: inset 0 1px 0 var(--sep); }
.hero-page.is-dark { background: var(--night); color: #fff; }
.hero-page.is-dark .lead { color: var(--night-label-2); }
.hero-page.is-dark .crumbs { background: rgba(255, 255, 255, 0.08); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.12); color: var(--night-label-2); }
.hero-page.is-dark .crumbs a { color: #fff; }
.hero-page.is-dark .hero-page-aside { background: rgba(255, 255, 255, 0.07); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.18), inset 0 0 0 1px rgba(255, 255, 255, 0.08); color: var(--night-label-2); }
.hero-page.is-dark .hero-page-aside b { color: #fff; }
.hero-page.is-dark .hero-page-aside p + p { box-shadow: inset 0 1px 0 var(--night-sep); }
.hero-page.is-dark .btn-outline, .hero-page.is-dark .btn-ghost, .hero-page.is-dark .btn-glass { background: rgba(255, 255, 255, 0.08); color: #fff; }
.hero-page.is-dark .btn:not(.btn-outline):not(.btn-ghost):not(.btn-glass):not(.btn-brand) { background: #fff; color: var(--shark); }
.hero-page.is-brand { background: var(--brand); color: var(--on-brand); }
.hero-page.is-brand .lead { color: var(--on-brand-2); }
.hero-page.is-brand .crumbs { background: rgba(255, 255, 255, 0.4); color: var(--on-brand-2); }
.hero-page.is-brand .crumbs a { color: var(--shark); }
.hero-page.is-brand .hero-page-aside { background: rgba(255, 255, 255, 0.45); color: var(--on-brand-2); }
.hero-page.is-brand .hero-page-aside b { color: var(--shark); }
.hero-page.is-brand .btn-outline, .hero-page.is-brand .btn-glass { background: rgba(255, 255, 255, 0.45); color: var(--shark); }
@media (max-width: 960px) { .hero-page-in { grid-template-columns: 1fr; } }

.vac-search { border: 0; border-radius: var(--r-pill); padding: 12px 18px 12px 44px; background: var(--fill) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238e8e93' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='6.5'/%3E%3Cpath d='M20 20l-4.2-4.2'/%3E%3C/svg%3E") no-repeat 16px center / 18px; font-size: 16px; min-width: 280px; color: var(--ink); }
.vac-search:focus { outline: none; box-shadow: 0 0 0 4px rgba(var(--brand-rgb), 0.25); background-color: var(--bg-elev); }

/* ---------- Dark / brand sections ---------- */
.is-dark:not(.hero-page) { background: var(--night); color: #fff; }
.is-dark .lead, .is-dark .muted { color: var(--night-label-2); }
.is-dark .num { color: #fff; }
.is-brand:not(.hero-page):not(.result-card) { background: var(--brand); color: var(--on-brand); }
.is-brand .lead, .is-brand .muted { color: var(--on-brand-2); }
.section.is-dark .index, .section.is-dark .list, .section.is-dark .faq, .section.is-dark .ledger, .section.is-dark .industries,
.section.is-dark .flow > div, .section.is-dark .panel, .section.is-dark .two-lists > div { background: rgba(255, 255, 255, 0.05); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08); }
.section.is-dark .index-row + .index-row, .section.is-dark .list-row + .list-row, .section.is-dark .ledger-row, .section.is-dark .industries > * { box-shadow: inset 0 1px 0 var(--night-sep); }
.section.is-dark .index-row p, .section.is-dark .index-kpi span, .section.is-dark .list-row .small, .section.is-dark .ledger-row p, .section.is-dark .industries p, .section.is-dark .flow p, .section.is-dark .panel p { color: var(--night-label-2); }
.section.is-dark .tag { background: rgba(255, 255, 255, 0.1); color: rgba(255, 255, 255, 0.85); }
.section.is-brand .ledger, .section.is-brand .list, .section.is-brand .tbl-wrap { background: rgba(255, 255, 255, 0.55); }
.section.is-brand .ledger-row p { color: var(--on-brand-2); }
.section.is-brand .tag { background: rgba(255, 255, 255, 0.45); color: var(--shark); }

/* ---------- Modals → glass sheets ---------- */
.modal-bg { position: fixed; inset: 0; z-index: 100; display: flex; align-items: center; justify-content: center; padding: 24px 16px; overflow: auto; overscroll-behavior: contain; }
.modal-bg::before { content: ""; position: fixed; inset: 0; background: rgba(6, 8, 12, 0.38); -webkit-backdrop-filter: blur(10px) saturate(140%); backdrop-filter: blur(10px) saturate(140%); opacity: 0; transition: opacity 0.3s ease; }
.modal-bg.is-in::before { opacity: 1; }
.modal-bg[hidden] { display: none; }
.modal {
  position: relative; width: 100%; max-width: 560px; margin: auto; padding: 30px; border-radius: 34px; color: var(--ink);
  background-color: var(--g-fill-thick);
  background-image: radial-gradient(120% 70% at 15% -10%, var(--g-spec), rgba(255, 255, 255, 0) 55%);
  -webkit-backdrop-filter: blur(44px) saturate(200%); backdrop-filter: blur(44px) saturate(200%);
  box-shadow: 0 40px 100px -20px rgba(0, 0, 0, 0.45), var(--g-rims), 0 0 0 0.5px var(--g-edge);
  opacity: 0; transform: translateY(30px) scale(0.96); transition: opacity 0.25s ease, transform 0.5s var(--spring);
}
.modal-bg.is-in .modal { opacity: 1; transform: none; }
.modal::before { content: ""; display: none; width: 40px; height: 5px; border-radius: 3px; background: var(--fill-2); margin: -14px auto 16px; }
.modal-search { max-width: 660px; }
.modal-x { position: absolute; top: 18px; right: 18px; width: 34px; height: 34px; background: var(--fill); border-radius: 50%; display: grid; place-items: center; color: var(--label-2); transition: background-color var(--t-fast) ease, transform var(--t-fast) var(--ease-out); z-index: 3; }
.modal-x:hover { background: var(--fill-2); color: var(--ink); }
.modal-x:active { transform: scale(0.9); }
.modal-x .i { width: 16px; height: 16px; }
.modal-kicker { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 600; color: var(--label-2); margin-bottom: 10px; }
.modal-title { font-size: clamp(26px, 3vw, 32px); font-weight: 800; letter-spacing: -0.035em; padding-right: 44px; line-height: 1.08; }
.modal-lead { color: var(--label-2); margin: 10px 0 22px; font-size: 15.5px; }
.field-search input { font-size: 19px; padding: 16px 18px; }
.modal-search .form { margin-top: 18px; }
.search-out { margin-top: 12px; display: grid; gap: 2px; max-height: 52vh; overflow: auto; }
.search-out a { display: block; padding: 12px 14px; border-radius: 14px; text-decoration: none; }
.search-out a:hover, .search-out a:focus { background: var(--fill); }
.search-out a b { display: block; font-size: 16px; }
.search-out a span { display: block; font-size: 13.5px; color: var(--label-2); margin-top: 2px; }
.search-out mark { background: rgba(var(--brand-rgb), 0.25); color: inherit; padding: 0 2px; border-radius: 3px; }
@media (max-width: 600px) {
  .modal-bg { align-items: flex-end; padding: 0; }
  .modal { border-radius: 30px 30px 0 0; max-height: 94vh; max-height: 94dvh; overflow: auto; padding: 26px 20px calc(24px + env(safe-area-inset-bottom)); transform: translateY(100%); transition: opacity 0.2s ease, transform 0.5s var(--spring); margin: 0; }
  .modal-bg.is-in .modal { transform: none; }
  .modal::before { display: block; }
}
/* открыта экранная клавиатура (core.js → kbSync): оверлей занимает только видимую часть экрана,
   шторка ужимается и прокручивается внутри, поле ввода остаётся над клавиатурой */
html.kb-open .modal-bg { top: var(--vv-top, 0px); bottom: auto; height: var(--vv-h, 100%); }
html.kb-open .modal-bg::before { top: var(--vv-top, 0px); bottom: auto; height: var(--vv-h, 100%); }
html.kb-open .modal { max-height: calc(var(--vv-h, 100dvh) - 10px); overflow: auto; overscroll-behavior: contain; }
@media (max-width: 600px) { html.kb-open .modal { padding-bottom: 18px; } }
html.kb-open .cx-bar, html.kb-open .toast { display: none; }

/* ---------- Toast ---------- */
.toast {
  position: fixed; left: 50%; bottom: calc(22px + env(safe-area-inset-bottom)); z-index: 200; translate: -50% 0; max-width: calc(100vw - 32px);
  padding: 12px 20px; border-radius: 999px; font-size: 14.5px; font-weight: 600; color: #fff; pointer-events: none;
  background: rgba(24, 26, 32, 0.78); -webkit-backdrop-filter: blur(20px) saturate(180%); backdrop-filter: blur(20px) saturate(180%);
  box-shadow: 0 18px 40px -12px rgba(0, 0, 0, 0.5), inset 0 1px 0 rgba(255, 255, 255, 0.2);
  opacity: 0; transform: translateY(20px) scale(0.95); transition: opacity 0.25s ease, transform 0.45s var(--spring);
}
.toast.is-on { opacity: 1; transform: none; }
.toast:empty { display: none; }

/* ---------- Misc pages ---------- */
.center-page { text-align: center; padding-block: calc(var(--header-h) + clamp(80px, 12vw, 160px)) clamp(80px, 12vw, 160px); position: relative; overflow: hidden; }
.center-page .lead { margin-inline: auto; margin-top: 20px; }
.center-page .hero-cta { justify-content: center; }
.center-page > .wrap { position: relative; z-index: 1; }
.doc-list .list-row { padding: 18px 20px; }
.status { flex: none; font-size: 13px; font-weight: 600; color: var(--ink-soft); padding: 6px 12px; border-radius: var(--r-pill); background: var(--fill); }
.status.is-pending { background: transparent; box-shadow: inset 0 0 0 1px var(--fill-2); color: var(--label-2); }
.contact-group { border-radius: var(--r-md); overflow: hidden; }
.contact-row { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 20px 22px; flex-wrap: wrap; }
.contact-row + .contact-row { box-shadow: inset 0 1px 0 var(--sep); }
.contact-row .label { font-size: 13px; color: var(--label-2); font-weight: 600; margin-bottom: 4px; }
.contact-row .value { font-size: 22px; font-weight: 700; letter-spacing: -0.02em; text-decoration: none; }
.map-ph { aspect-ratio: 4 / 3; border-radius: var(--r-lg); background: radial-gradient(60% 60% at 50% 45%, rgba(10, 188, 243, 0.18), rgba(10, 188, 243, 0) 70%), repeating-linear-gradient(0deg, var(--sep) 0 1px, transparent 1px 44px), repeating-linear-gradient(90deg, var(--sep) 0 1px, transparent 1px 44px), linear-gradient(135deg, rgba(10, 188, 243, 0.08), rgba(7, 231, 183, 0.08)); display: grid; place-items: center; align-content: center; gap: 12px; color: var(--label-2); font-size: 14px; text-align: center; padding: 24px; box-shadow: var(--card-shadow), var(--card-rims); }
.map-pin { width: 54px; height: 54px; border-radius: 50% 50% 50% 0; transform: rotate(-45deg); background: var(--brand); box-shadow: 0 12px 30px rgba(10, 150, 200, 0.35); display: grid; place-items: center; }
.map-pin::after { content: ""; width: 18px; height: 18px; border-radius: 50%; background: #fff; }
.map-box { display: grid; gap: 12px; }
.map-frame { position: relative; aspect-ratio: 4 / 3; border-radius: var(--r-lg); overflow: hidden; box-shadow: var(--card-shadow), var(--card-rims); background: var(--fill); }
.map-frame .map-ph { position: absolute; inset: 0; aspect-ratio: auto; border-radius: 0; box-shadow: none; }
.map-frame .map-ph b { color: var(--ink); }
.map-frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; opacity: 0; transition: opacity 0.6s ease; }
.map-frame.is-ready iframe { opacity: 1; }
:root[data-theme="dark"] .map-frame iframe { filter: brightness(0.92) contrast(1.02); }
.map-links { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.map-addr { margin-left: auto; font-size: 14px; color: var(--label-2); }
.ct-soc { display: flex; flex-wrap: wrap; gap: 8px; }
.ct-s { display: inline-flex; align-items: center; gap: 8px; padding: 9px 14px 9px 10px; border-radius: 999px; font-size: 14px; font-weight: 700; color: var(--ink); text-decoration: none; background: var(--fill); transition: background var(--t-fast) ease, color var(--t-fast) ease, transform var(--t-fast) var(--spring); }
.ct-s .i { width: 20px; height: 20px; color: rgb(var(--c, var(--brand-rgb))); }
.ct-s:hover { background: rgba(var(--c, var(--brand-rgb)), 0.14); transform: translateY(-1px); }
@media (max-width: 600px) { .map-addr { margin-left: 0; width: 100%; } }
.article-meta { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 24px; }
.article-cover { aspect-ratio: 21 / 9; border-radius: var(--r-xl); }
.sticky-card { position: sticky; top: 100px; }
.empty { color: var(--label-2); padding: 24px 0; }
.cases-2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
@media (max-width: 700px) { .cases-2 { grid-template-columns: 1fr; } }
.hl { background: rgba(var(--brand-rgb), 0.18); padding: 0 4px; border-radius: 4px; }


/* ==== 09-home.css (фрагмент): точка надзаголовка ==== */
.eb-dot { width: 8px; height: 8px; border-radius: 50%; background: linear-gradient(145deg, var(--brand), var(--green)); box-shadow: 0 0 10px rgba(var(--brand-rgb), 0.8); flex: none; }

/* ==== 07-footer.css ==== */
/* =====================================================================
   Footer: game teaser, contacts, big social icons, link columns
   ===================================================================== */
.site-footer { position: relative; overflow: hidden; padding: clamp(56px, 7vw, 96px) 0 28px; color: var(--ink); box-shadow: inset 0 1px 0 var(--sep); }
.ft-hero { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 18px; }

/* (промо-карточка мини-игры .ft-game опущена — специфична для w2w.uz) */
/* contact card */
.ft-contact {
  border-radius: var(--r-xl); padding: clamp(24px, 3vw, 36px); display: flex; flex-direction: column; align-items: flex-start;
  background-color: var(--card-fill); -webkit-backdrop-filter: blur(var(--card-blur)) saturate(180%); backdrop-filter: blur(var(--card-blur)) saturate(180%); box-shadow: var(--card-shadow), var(--card-rims);
}
.ft-desc { margin-top: 14px; color: var(--label-2); font-size: 14.5px; max-width: 42ch; }
.ft-phone { margin-top: 22px; font-size: clamp(24px, 2.4vw, 32px); font-weight: 800; letter-spacing: -0.03em; text-decoration: none; color: var(--ink); }
.ft-mail { font-size: 17px; font-weight: 600; text-decoration: none; color: var(--brand-ink); margin-top: 4px; }
.ft-addr { color: var(--label-2); font-size: 14px; margin-top: 10px; }
.footer-online { margin-top: 12px; font-size: 13.5px; color: var(--label-2); display: flex; align-items: center; gap: 8px; }
.clocks { display: flex; flex-wrap: wrap; gap: 8px; margin-top: auto; padding-top: 18px; }
.clock { display: flex; gap: 10px; padding: 8px 12px; border-radius: 12px; background: var(--fill); font-size: 13.5px; }
.clock-city { color: var(--label-2); }
.clock-time { font-weight: 700; font-variant-numeric: tabular-nums; }

/* big social icons */
.ft-soc { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 18px; padding: 14px; border-radius: var(--r-xl); background-color: var(--card-fill); -webkit-backdrop-filter: blur(var(--card-blur)) saturate(180%); backdrop-filter: blur(var(--card-blur)) saturate(180%); box-shadow: var(--card-shadow), var(--card-rims); justify-content: space-between; }
.soc-ic {
  --c: 10, 188, 243; flex: 1 1 64px; max-width: 150px; height: 72px; border-radius: 22px; display: grid; place-items: center; color: var(--ink); position: relative; overflow: hidden; isolation: isolate;
  background: var(--fill); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.5); transition: transform var(--t-mid) var(--spring), color var(--t-mid) ease, box-shadow var(--t-mid) ease;
}
:root[data-theme="dark"] .soc-ic { box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.07); }
.soc-ic::before { content: ""; position: absolute; inset: 0; z-index: -1; opacity: 0; background: linear-gradient(150deg, rgba(var(--c), 0.95), rgba(var(--c), 0.65)); transition: opacity var(--t-mid) ease; }
.soc-ic::after { content: ""; position: absolute; inset: 0; border-radius: inherit; background: radial-gradient(120% 70% at 30% 0%, rgba(255, 255, 255, 0.45), rgba(255, 255, 255, 0) 55%); opacity: 0; transition: opacity var(--t-mid) ease; pointer-events: none; }
.soc-ic svg { width: 30px; height: 30px; }
@media (hover: hover) {
  .soc-ic:hover { color: #fff; transform: translateY(-4px) scale(1.04); box-shadow: 0 16px 30px -12px rgba(var(--c), 0.8), inset 0 1px 0 rgba(255, 255, 255, 0.5); }
  .soc-ic:hover::before, .soc-ic:hover::after { opacity: 1; }
}
.soc-ic:active { transform: scale(0.94); }
.soc-telegram { --c: 42, 171, 238; } .soc-instagram { --c: 214, 41, 118; } .soc-linkedin { --c: 10, 102, 194; } .soc-youtube { --c: 255, 0, 51; }
.soc-facebook { --c: 24, 119, 242; } .soc-x { --c: 30, 30, 34; } .soc-whatsapp { --c: 37, 211, 102; } .soc-mail { --c: 10, 188, 243; } .soc-tiktok { --c: 20, 20, 24; }
.soc-phone { --c: 5, 181, 143; }
.soc-ic { text-decoration: none; }
.soc-t { display: none; font-size: 15px; font-weight: 700; letter-spacing: -0.01em; white-space: nowrap; }
/* few networks (until all links are known): wide tiles with a caption */
.ft-soc:not(:has(.soc-ic:nth-child(5))) .soc-ic { max-width: none; flex: 1 1 200px; display: flex; justify-content: center; align-items: center; gap: 12px; }
.ft-soc:not(:has(.soc-ic:nth-child(5))) .soc-t { display: inline; }
.soc-instagram::before { background: linear-gradient(45deg, #feda75, #fa7e1e 25%, #d62976 50%, #962fbf 75%, #4f5bd5); }

/* link columns */
.ft-cols { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 32px; margin-top: clamp(40px, 5vw, 64px); }
.footer-h { font-size: 13.5px; font-weight: 700; color: var(--ink); margin-bottom: 12px; }
.footer-col a { display: block; font-size: 14.5px; color: var(--label-2); text-decoration: none; padding: 4px 0; transition: color var(--t-fast) ease; }
.footer-col a:hover { color: var(--ink); }
.ft-lang { display: inline-grid; grid-template-columns: repeat(3, auto); gap: 3px; padding: 3px; border-radius: 12px; background: var(--fill); margin-bottom: 10px; }
.ft-lang a { padding: 6px 12px; border-radius: 9px; font-size: 13px; font-weight: 700; color: var(--ink-soft); }
.ft-lang a[aria-current="true"] { background: var(--bg-elev); color: var(--ink); box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); }
.ft-pref { display: flex; align-items: center; justify-content: space-between; gap: 12px; width: 100%; max-width: 230px; padding: 6px 0; font-size: 14.5px; color: var(--label-2); }
.ft-pref:hover { color: var(--ink); }
.footer-bottom { display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-top: 48px; padding-top: 20px; box-shadow: inset 0 1px 0 var(--sep); font-size: 13px; color: var(--label-2); position: relative; z-index: 1; }
.footer-bottom a { color: var(--label-2); margin-left: 18px; }
.ft-giant { font-size: clamp(56px, 15.4vw, 250px); font-weight: 800; letter-spacing: -0.055em; line-height: 1.06; padding: 0.02em 0.08em 0.04em; text-align: center; white-space: nowrap; margin: clamp(20px, 3.4vw, 44px) 0 0; background: linear-gradient(180deg, rgba(var(--brand-rgb), 0.32) 10%, rgba(var(--brand-rgb), 0.07) 100%); -webkit-background-clip: text; background-clip: text; color: transparent; user-select: none; pointer-events: none; }
@media (max-width: 1000px) { .ft-hero { grid-template-columns: 1fr; } .ft-cols { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) {
  .ft-cols { grid-template-columns: 1fr 1fr; gap: 24px; }
  .ft-soc { gap: 8px; padding: 10px; }
  .soc-ic { flex-basis: calc(25% - 8px); height: 60px; border-radius: 18px; }
  .soc-ic svg { width: 26px; height: 26px; }
  .footer-bottom a { margin: 0 18px 0 0; }
  .ft-game { min-height: 380px; }
  .ft-code { width: 60%; }
}


/* ==== 19-motion.css ==== */
/* =====================================================================
   Motion states, theme transition, page transitions, a11y fallbacks
   ===================================================================== */
@property --rim-a { syntax: "<angle>"; inherits: true; initial-value: 200deg; }
.hd-bar, .lg, .lg-rim { transition-property: --rim-a; transition-duration: 0.6s; }

/* elements wait for their intro only while JS animations are active */
.motion [data-reveal] { opacity: 0; transform: translateY(36px); }
.motion [data-split-words] .w { opacity: 0; transform: translateY(0.35em); filter: blur(10px); }
.motion .hero-page .crumbs, .motion .hero-page .lead, .motion .hero-page .hero-cta, .motion .hero-page .hero-page-aside, .motion .hero-page .hero-page-side { opacity: 0; transform: translateY(18px); }
.motion .hero-page .h1 { opacity: 0; }
.motion .hero-page .h1.is-split { opacity: 1; }
.w { display: inline-block; }

/* theme switch: всё перекрашивается в одном кадре — без переходов, иначе на телефоне видны куски старой темы */
html.theme-switching *, html.theme-switching *::before, html.theme-switching *::after { transition: none !important; }
/* theme switch (desktop, mouse): circular reveal from the toggle */
html.theme-vt:active-view-transition .hd { view-transition-name: none; }
::view-transition-old(root), ::view-transition-new(root) { mix-blend-mode: normal; }
html.theme-vt::view-transition-old(root) { animation: none; }
html.theme-vt::view-transition-new(root) { animation: theme-reveal 0.75s var(--ease-out) both; }
@keyframes theme-reveal { from { clip-path: circle(0 at var(--vt-x, 50%) var(--vt-y, 0)); } to { clip-path: circle(160vmax at var(--vt-x, 50%) var(--vt-y, 0)); } }

/* cross-document page transitions (Chromium) */
@view-transition { navigation: auto; }
html:not(.theme-vt)::view-transition-old(root) { animation: 0.28s var(--ease-out) both vt-out; }
html:not(.theme-vt)::view-transition-new(root) { animation: 0.45s var(--ease-out) both vt-in; }
@keyframes vt-out { to { opacity: 0; transform: scale(0.985); } }
@keyframes vt-in { from { opacity: 0; transform: translateY(14px); } }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; }
  .dot-live { animation: none; }
  ::view-transition-old(root), ::view-transition-new(root) { animation: none !important; }
}
@media (prefers-reduced-transparency: reduce) {
  .tile, .pcard, .figures > div, .flow > div, .two-lists > div, .panel, .person, .list, .index, .faq, .facts, .own, .industries, .doc-list, .ledger, .stack, .tbl-wrap, .contact-group, .tiles > div,
  .crumbs, .hero-page-aside, .modal, .toast, .ft-contact, .ft-soc, .ft-rec { -webkit-backdrop-filter: none !important; backdrop-filter: none !important; background-color: var(--bg-elev) !important; }
  .toast, .ft-rec { background-color: #1a1b20 !important; }
  .modal-bg::before { -webkit-backdrop-filter: none; backdrop-filter: none; background: rgba(0, 0, 0, 0.55); }
}

