/* ------------------------------------------------------------------ tokens */
:root {
  --clr-core: #e05307;
  --clr-key: #f57720;
  --clr-accent-pressed: #eb650c;
  --clr-surface: #060d27;
  --clr-raised: #0e1838;
  --clr-text: #FFFFFF;
  --clr-faint: #bdbdbd;
  --clr-line: #26305a;
  --clr-border-strong: #3c4778;
  --clr-ramp-start: #fcc2a5;
  --clr-blend-b: #f98c58;
  --clr-notice: #9e2a2b;

  --sp-2xs: 4px;
  --sp-xs: 12px;
  --sp-sm: 20px;
  --sp-md: 36px;
  --sp-lg: 56px;
  --sp-xl: 84px;
  --sp-2xl: 120px;
  --sp-3xl: 180px;

  --rad-2xs: 1px;
  --rad-xs: 2px;
  --rad-sm: 8px;
  --rad-md: 14px;
  --rad-lg: 22px;
  --rad-xl: 28px;
  --rad-2xl: 34px;
  --rad-3xl: 44px;
  --rad-lozenge: 9999px;
  --rad-orb: 50%;

  --elev-2xs: 0 0 0 1px rgba(255, 255, 255, 0.04) inset;
  --elev-xs: 0 0 0 1px rgba(255, 255, 255, 0.06) inset;
  --elev-sm: 0 4px 12px rgba(0, 0, 0, 0.15), 0 0 0 1px rgba(255, 255, 255, 0.08) inset;
  --elev-md: 0 8px 24px rgba(0, 0, 0, 0.20), 0 0 0 1px rgba(255, 255, 255, 0.10) inset;
  --elev-lg: 0 16px 48px rgba(0, 0, 0, 0.30), 0 0 0 1px rgba(255, 255, 255, 0.12) inset;
  --elev-xl: 0 22px 60px rgba(0, 0, 0, 0.34), 0 0 0 1px rgba(255, 255, 255, 0.12) inset;
  --elev-2xl: 0 28px 72px rgba(0, 0, 0, 0.38);
  --elev-3xl: 0 34px 90px rgba(0, 0, 0, 0.42);

  --rl-slim: 1px;
  --rl-base: 2px;
  --rl-thick: 3px;

  --ff-head: "Montserrat", "Segoe UI", system-ui, sans-serif;
  --ff-body: "Montserrat", "Segoe UI", system-ui, sans-serif;

  --ts-title: clamp(30px, 8vw, 44px);
  --ts-h2: clamp(24px, 6vw, 32px);
  --ts-h3: 24px;
  --ts-md-2: 18px;
  --ts-h5: 14px;
  --ts-xs-2: 12px;
  --ts-reading: 14px;
  --ts-petite: 12px;
  --ts-tiny: 10px;

  --lh-snug: 1.05;
  --lh-normal: 1.45;
  --lh-loose: 1.65;

  --wg-book: 400;
  --wg-half: 700;
  --wg-heavy: 900;

  --ls-close: -0.04em;
  --ls-default: 0;
  --ls-loose: 0.08em;

  --tm-swift: 98ms;
  --tm-mid: 210ms;
  --tm-calm: 361ms;
  --bz-release: cubic-bezier(0.26, 0.61, 0.48, 0.98);
  --bz-start: cubic-bezier(0.4, 0.08, 0.31, 0.89);
  --bz-smooth: cubic-bezier(0.4, 0.08, 0.31, 0.89);
  --bz-elastic: cubic-bezier(0.29, 1.45, 0.68, 1.2);

  --shl-max: 1020px;
  --shl-text: 1020px;
  --shl-pad-lg: 32px;
  --shl-edge-mid: 20px;
  --shl-edge-narrow: 12px;

  --hd-h-lg: 82px;
  --hd-height-mobile: 64px;

  --sec-y: 44px;
  --edge: 430px;
  --lane: calc(var(--shl-max) + 2 * var(--shl-pad-lg));
}

@media (min-width: 800px) {
  :root {
    --ts-title: clamp(38px, 5.2vw, 80px);
    --ts-h2: clamp(30px, 3.6vw, 48px);
    --ts-h3: 30px;
    --ts-md-2: 22px;
    --ts-h5: 16px;
    --ts-xs-2: 13px;
    --ts-reading: 15px;
    --ts-petite: 13px;
    --ts-tiny: 11px;
    --sec-y: 48px;
  }
}

/* ------------------------------------------------------------------ fonts */
@font-face {
  font-display: swap;
  font-family: "Montserrat";
  font-style: normal;
  font-weight: 400;
  src: url("/pictures-swift/mont-latin-400.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-display: swap;
  font-family: "Montserrat";
  font-style: normal;
  font-weight: 400;
  src: url("/pictures-swift/mont-latin-ext-400.woff2") format("woff2");
  unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-display: swap;
  font-family: "Montserrat";
  font-style: normal;
  font-weight: 700;
  src: url("/pictures-swift/mont-latin-700.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-display: swap;
  font-family: "Montserrat";
  font-style: normal;
  font-weight: 700;
  src: url("/pictures-swift/mont-latin-ext-700.woff2") format("woff2");
  unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-display: swap;
  font-family: "Montserrat";
  font-style: normal;
  font-weight: 900;
  src: url("/pictures-swift/mont-latin-900.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-display: swap;
  font-family: "Montserrat";
  font-style: normal;
  font-weight: 900;
  src: url("/pictures-swift/mont-latin-ext-900.woff2") format("woff2");
  unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

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

html,
body { overflow-x: clip; }

html { scroll-behavior: smooth; }

body {
  background: var(--clr-surface);
  color: var(--clr-text);
  display: flex;
  flex-direction: column;
  font-family: var(--ff-body);
  font-size: var(--ts-reading);
  font-weight: var(--wg-book);
  line-height: var(--lh-normal);
  margin: 0;
  min-height: 100vh;
  -webkit-font-smoothing: antialiased;
}

img { max-width: 100%; }

a { color: var(--clr-key); }

a:hover { color: var(--clr-accent-pressed); }

h1, h2, h3, h4, h5, h6 { overflow-wrap: anywhere; }

h1 {
  font-family: var(--ff-head);
  font-size: var(--ts-title);
  font-weight: var(--wg-heavy);
  letter-spacing: var(--ls-close);
  line-height: var(--lh-snug);
  margin: 0 0 var(--sp-sm);
  text-transform: uppercase;
}

h2 {
  font-family: var(--ff-head);
  font-size: var(--ts-h2);
  font-weight: var(--wg-half);
  letter-spacing: var(--ls-close);
  line-height: var(--lh-snug);
  margin: 0 0 var(--sp-sm);
  text-transform: uppercase;
}

h3 {
  font-family: var(--ff-head);
  font-size: var(--ts-h3);
  font-weight: var(--wg-half);
  letter-spacing: var(--ls-default);
  line-height: 1.2;
  margin: 0 0 var(--sp-xs);
}

h4 {
  font-family: var(--ff-head);
  font-size: var(--ts-md-2);
  font-weight: var(--wg-half);
  line-height: 1.25;
  margin: 0 0 var(--sp-xs);
}

p { margin: 0 0 var(--sp-sm); }

ul, ol { margin: 0 0 var(--sp-sm); padding-inline-start: var(--sp-sm); }

li { margin-block-end: var(--sp-2xs); }

table { border-collapse: collapse; width: 100%; }

.kepu { flex: 1 0 auto; }

.sr-only {
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  height: 1px;
  overflow: hidden;
  position: absolute;
  white-space: nowrap;
  width: 1px;
}

.skip-jump {
  background: var(--clr-key);
  color: var(--clr-surface);
  font-weight: var(--wg-half);
  inset-inline-start: var(--sp-xs);
  padding: var(--sp-xs) var(--sp-sm);
  position: fixed;
  top: var(--sp-xs);
  z-index: 200;
}

.skip-jump:not(:focus) { top: -200px !important; }

/* ------------------------------------------------------------------ shared shell */
.bofoteb-frame,
.byroki-frame,
.daxom-frame,
.disano-frame,
.foga-frame,
.gapo-frame,
.gusi-frame,
.lyso-frame,
.nodyz-frame,
.rasom-frame,
.rime-frame,
.tidy-frame,
.vaped-frame,
.zodufaz-frame {
  margin-inline: auto;
  max-width: var(--lane);
  padding-inline: var(--shl-edge-narrow);
  width: 100%;
}

@media (min-width: 500px) {
  .bofoteb-frame,
  .byroki-frame,
  .daxom-frame,
  .disano-frame,
  .foga-frame,
  .gapo-frame,
  .gusi-frame,
  .lyso-frame,
  .nodyz-frame,
  .rasom-frame,
  .rime-frame,
  .tidy-frame,
  .vaped-frame,
  .zodufaz-frame { padding-inline: var(--shl-edge-mid); }
}

@media (min-width: 800px) {
  .bofoteb-frame,
  .byroki-frame,
  .daxom-frame,
  .disano-frame,
  .foga-frame,
  .gapo-frame,
  .gusi-frame,
  .lyso-frame,
  .nodyz-frame,
  .rasom-frame,
  .rime-frame,
  .tidy-frame,
  .vaped-frame,
  .zodufaz-frame { padding-inline: var(--shl-pad-lg); }
}

.bofoteb,
.byroki,
.daxom,
.disano,
.lyso,
.nodyz,
.rasom,
.tidy,
.zodufaz { padding-block: var(--sec-y); }

/* ------------------------------------------------------------------ reveal */
[data-reveal] {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity var(--tm-calm) var(--bz-release), transform var(--tm-calm) var(--bz-release);
}

[data-reveal].in-view {
  opacity: 1;
  transform: none;
}

/* ------------------------------------------------------------------ bofoteb — cards block */
.bofoteb-lead {
  background: var(--clr-core);
  border-radius: var(--rad-lg);
  color: var(--clr-surface);
  margin-block-end: var(--sp-md);
  padding: var(--sp-md);
}

.bofoteb-lead-top {
  color: var(--clr-surface);
  font-family: var(--ff-head);
  font-size: var(--ts-h2);
  font-weight: var(--wg-heavy);
  letter-spacing: var(--ls-close);
  line-height: var(--lh-snug);
  margin: 0 0 var(--sp-xs);
  text-transform: uppercase;
}

.bofoteb-lead-words {
  color: var(--clr-surface);
  font-size: var(--ts-h5);
  line-height: var(--lh-normal);
  max-width: var(--edge);
}

.bofoteb-chain {
  display: grid;
  gap: var(--sp-sm);
  grid-template-columns: minmax(0, 1fr);
}

@media (min-width: 640px) {
  .bofoteb-chain { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

.bofoteb-box {
  border-top: var(--rl-base) solid var(--clr-key);
  padding: var(--sp-sm) 0 var(--sp-sm);
}

.bofoteb-glyph {
  align-items: center;
  background: var(--clr-raised);
  border: var(--rl-slim) solid var(--clr-border-strong);
  border-radius: var(--rad-sm);
  color: var(--clr-key);
  display: inline-flex;
  height: 38px;
  justify-content: center;
  margin-block-end: var(--sp-xs);
  width: 38px;
}

.bofoteb-glyph svg {
  fill: currentColor;
  height: 21px;
  width: 21px;
}

.bofoteb-top {
  font-size: var(--ts-reading);
  font-weight: var(--wg-heavy);
  margin: 0 0 var(--sp-2xs);
}

.bofoteb-words {
  color: var(--clr-faint);
  font-size: var(--ts-petite);
  line-height: var(--lh-normal);
}

.bofoteb-slot { grid-column: 1 / -1; }

/* ------------------------------------------------------------------ byroki — prose */
.byroki-part { counter-reset: part; }

.byroki-part h2 {
  font-size: var(--ts-h3);
  margin-block-start: var(--sp-md);
  margin-block-end: var(--sp-sm);
}

.byroki-part > h2:first-child { margin-block-start: 0; }

.byroki-part h2::before {
  color: var(--clr-key);
  content: "#" counter(part);
  counter-increment: part;
  font-family: var(--ff-head);
  font-weight: var(--wg-heavy);
  letter-spacing: var(--ls-default);
  margin-inline-end: var(--sp-xs);
  white-space: nowrap;
}

.byroki-part p {
  color: var(--clr-faint);
  line-height: var(--lh-loose);
}

.byroki-part li {
  color: var(--clr-faint);
  line-height: var(--lh-loose);
}

.byroki-part strong { color: var(--clr-text); }

.byroki-part p a,
.byroki-part li a {
  color: var(--clr-key);
  text-decoration: underline;
}

.byroki-part p a:hover,
.byroki-part li a:hover { color: var(--clr-accent-pressed); }

.byroki-figure {
  margin: var(--sp-md) auto;
  max-width: 720px;
}

.byroki-figure--tall { max-width: 400px; }

.byroki-figure--square { max-width: 480px; }

.byroki-figure img {
  border-radius: var(--rad-md);
  display: block;
  height: auto;
  width: 100%;
}

.byroki-figure--tall img {
  max-height: 520px;
  object-fit: cover;
}

/* ------------------------------------------------------------------ daxom — contact form */
.daxom-lead {
  color: var(--clr-faint);
  margin-inline: auto;
  max-width: var(--edge);
  text-align: center;
}

.daxom-form {
  display: flex;
  flex-direction: column;
  gap: var(--sp-sm);
  margin-block-start: var(--sp-md);
}

.daxom-cell {
  display: flex;
  flex-direction: column;
  gap: var(--sp-2xs);
}

.daxom-cue {
  color: var(--clr-faint);
  font-size: var(--ts-petite);
  font-weight: var(--wg-half);
  letter-spacing: var(--ls-loose);
  text-transform: uppercase;
}

.daxom-cell input,
.daxom-cell textarea {
  background: var(--clr-raised);
  border: var(--rl-slim) solid var(--clr-line);
  border-radius: var(--rad-sm);
  color: var(--clr-text);
  font-family: var(--ff-body);
  font-size: var(--ts-reading);
  padding: var(--sp-xs) var(--sp-sm);
  width: 100%;
}

.daxom-cell textarea { min-height: 140px; resize: vertical; }

.daxom-send {
  background: var(--clr-key);
  border: 0;
  border-radius: var(--rad-lozenge);
  color: var(--clr-surface);
  cursor: pointer;
  font-family: var(--ff-head);
  font-size: var(--ts-h5);
  font-weight: var(--wg-heavy);
  height: 52px;
  letter-spacing: var(--ls-loose);
  text-transform: uppercase;
  width: 100%;
}

.daxom-send:hover {
  background: var(--clr-accent-pressed);
  color: var(--clr-surface);
}

.daxom-done {
  background: var(--clr-raised);
  border-inline-start: var(--rl-thick) solid var(--clr-key);
  border-radius: var(--rad-sm);
  color: var(--clr-text);
  display: none;
  margin-block-start: var(--sp-sm);
  padding: var(--sp-sm);
}

.daxom-done.is-open { display: block; }

.daxom-ways {
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-sm);
  margin-block-start: var(--sp-md);
}

.daxom-way {
  background: var(--clr-raised);
  border-radius: var(--rad-sm);
  color: var(--clr-text);
  flex: 0 1 auto;
  font-size: var(--ts-petite);
  padding: var(--sp-xs) var(--sp-sm);
}

/* ------------------------------------------------------------------ disano — faq */
.disano-chain {
  border-top: var(--rl-slim) solid var(--clr-line);
  margin-block-start: var(--sp-sm);
}

.disano-band {
  border-bottom: var(--rl-slim) solid var(--clr-line);
  padding-block: var(--sp-sm);
}

.disano-band > summary {
  align-items: baseline;
  cursor: pointer;
  display: flex;
  gap: var(--sp-xs);
  list-style: none;
}

.disano-band > summary::-webkit-details-marker { display: none; }

.disano-band > summary::before {
  color: var(--clr-key);
  content: "+";
  font-family: var(--ff-head);
  font-size: var(--ts-md-2);
  font-weight: var(--wg-heavy);
  line-height: 1;
  transition: transform var(--tm-mid) var(--bz-release);
}

.disano-band[open] > summary::before { content: "\2212"; }

.disano-top {
  font-family: var(--ff-head);
  font-size: var(--ts-md-2);
  font-weight: var(--wg-heavy);
  margin: 0;
}

.disano-part {
  color: var(--clr-faint);
  line-height: var(--lh-loose);
  padding-block-start: var(--sp-xs);
}

.disano-part p { margin-block-end: 0; }

/* ------------------------------------------------------------------ foga — hero */
.foga {
  background-color: var(--clr-surface);
  background-image: linear-gradient(rgba(6, 13, 39, 0.82), rgba(6, 13, 39, 0.94)), url("/pictures-swift/snapshot.webp");
  background-position: center;
  background-size: cover;
  color: var(--clr-text);
  padding-block: var(--sec-y);
}

.foga-plate {
  border: var(--rl-thick) solid var(--clr-text);
  outline: var(--rl-slim) solid var(--clr-text);
  outline-offset: 8px;
  padding: var(--sp-md);
}

@media (min-width: 800px) {
  .foga-plate { padding: var(--sp-lg); }
}

.foga-part { max-width: 100%; }

.foga-eyebrow {
  color: var(--clr-key);
  display: block;
  font-size: var(--ts-petite);
  font-style: italic;
  letter-spacing: var(--ls-loose);
  margin-block-end: var(--sp-xs);
  text-transform: uppercase;
}

.foga-rule {
  background: var(--clr-key);
  border: 0;
  height: var(--rl-slim);
  margin: var(--sp-sm) 0;
  width: 80px;
}

.foga-sub {
  color: var(--clr-faint);
  font-size: var(--ts-h5);
  line-height: var(--lh-normal);
  margin-block-end: var(--sp-sm);
}

.foga-bar {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-sm);
}

.foga-fine {
  color: var(--clr-faint);
  display: block;
  font-size: var(--ts-tiny);
  margin-block-start: var(--sp-xs);
}

/* ------------------------------------------------------------------ gapo — footer */
.gapo {
  background: var(--clr-surface);
  border-top: var(--rl-slim) solid var(--clr-line);
  color: var(--clr-text);
  padding-block: var(--sp-md);
}

.gapo-band {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-sm);
  justify-content: space-between;
}

.gapo-band--bottom {
  border-top: var(--rl-slim) solid var(--clr-line);
  margin-block-start: var(--sp-sm);
  padding-block-start: var(--sp-sm);
}

.gapo-logo { display: inline-flex; }

.gapo-logo img {
  display: block;
  height: 52px;
  width: auto;
}

.gapo-index { max-width: 100%; }

.gapo-chain,
.gapo-legal-chain {
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-xs) var(--sp-sm);
  list-style: none;
  margin: 0;
  padding: 0;
}

.gapo-node { margin: 0; }

.gapo-jump {
  color: var(--clr-faint);
  font-size: var(--ts-petite);
  text-decoration: none;
}

.gapo-jump:hover { color: var(--clr-text); }

.gapo-legal-jump {
  color: var(--clr-faint);
  font-size: var(--ts-tiny);
  text-decoration: none;
}

.gapo-legal-jump:hover { color: var(--clr-text); }

.gapo-copy {
  color: var(--clr-faint);
  font-size: var(--ts-tiny);
}

.gapo-note {
  color: var(--clr-faint);
  display: block;
  font-size: var(--ts-tiny);
  margin-block-start: var(--sp-xs);
}

/* ------------------------------------------------------------------ gusi — error block */
.gusi {
  display: flex;
  flex: 1 0 auto;
  flex-direction: column;
  justify-content: center;
  padding-block: var(--sec-y);
}

.gusi-box {
  background: var(--clr-raised);
  border: var(--rl-base) solid var(--clr-key);
  border-radius: var(--rad-lg);
  box-shadow: var(--elev-md);
  color: var(--clr-text);
  display: flex;
  flex-direction: column;
  gap: var(--sp-sm);
  margin-inline: auto;
  max-width: var(--edge);
  padding: var(--sp-md);
  text-align: center;
}

.gusi-top {
  font-family: var(--ff-head);
  font-size: var(--ts-h3);
  font-weight: var(--wg-heavy);
  margin: 0;
  text-transform: uppercase;
}

.gusi-words {
  color: var(--clr-faint);
  margin: 0;
}

.gusi-back {
  align-self: center;
  background: var(--clr-key);
  border-radius: var(--rad-lozenge);
  color: var(--clr-surface);
  display: inline-flex;
  font-family: var(--ff-head);
  font-weight: var(--wg-heavy);
  letter-spacing: var(--ls-loose);
  min-height: 48px;
  align-items: center;
  padding: var(--sp-xs) var(--sp-md);
  text-decoration: none;
  text-transform: uppercase;
}

.gusi-back:hover {
  background: var(--clr-accent-pressed);
  color: var(--clr-surface);
}

/* ------------------------------------------------------------------ lyso — reviews */
.lyso-chain {
  display: grid;
  gap: var(--sp-sm);
  grid-template-columns: minmax(0, 1fr);
  margin-block-start: var(--sp-sm);
}

@media (min-width: 640px) {
  .lyso-chain { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 1000px) {
  .lyso-chain { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

.lyso-box {
  background: var(--clr-raised);
  border: var(--rl-slim) solid var(--clr-line);
  border-radius: var(--rad-md);
  color: var(--clr-text);
  padding: var(--sp-sm);
}

.lyso-head {
  align-items: baseline;
  display: flex;
  gap: var(--sp-xs);
  justify-content: space-between;
}

.lyso-handle {
  font-size: var(--ts-reading);
  font-weight: var(--wg-heavy);
}

.lyso-posted {
  color: var(--clr-faint);
  font-size: var(--ts-tiny);
}

.lyso-score {
  color: var(--clr-key);
  display: block;
  font-size: var(--ts-h5);
  letter-spacing: 0.12em;
  margin-block: var(--sp-2xs);
}

.lyso-score b {
  color: var(--clr-faint);
  font-size: var(--ts-tiny);
  font-weight: var(--wg-book);
  letter-spacing: var(--ls-default);
}

.lyso-words {
  color: var(--clr-faint);
  font-size: var(--ts-petite);
  line-height: var(--lh-loose);
  margin: 0;
}

.lyso-slot { grid-column: 1 / -1; }

/* ------------------------------------------------------------------ nodyz — page header */
.nodyz { text-align: center; }

.nodyz h1 { margin-inline: auto; }

.nodyz-dot {
  color: var(--clr-key);
  display: block;
  font-size: var(--ts-h2);
  line-height: 1;
  margin-block: var(--sp-xs);
}

.nodyz-sub {
  color: var(--clr-faint);
  font-size: var(--ts-md-2);
  font-style: italic;
  margin-inline: auto;
  max-width: var(--edge);
}

.nodyz-bar {
  display: flex;
  justify-content: center;
  margin-block-start: var(--sp-sm);
}

/* ------------------------------------------------------------------ pyrub — 18+ strip */
.pyrub {
  background: var(--clr-raised);
  border-block: var(--rl-thick) solid var(--clr-notice);
  color: var(--clr-text);
  display: block;
  padding-block: var(--sp-2xs);
  text-align: center;
}

.pyrub-copy {
  display: block;
  font-size: var(--ts-tiny);
  letter-spacing: var(--ls-loose);
  margin: 0;
  padding-inline: var(--shl-edge-narrow);
}

.pyrub-jump {
  color: var(--clr-text);
  text-decoration-color: var(--clr-notice);
  text-decoration-line: underline;
  text-decoration-thickness: 2px;
}

.pyrub-jump:hover { color: var(--clr-key); }

/* ------------------------------------------------------------------ rasom — data table */
.rasom-hold {
  overflow-x: auto;
  width: 100%;
}

.rasom-grid { font-size: var(--ts-petite); }

.rasom-grid caption {
  color: var(--clr-faint);
  font-size: var(--ts-tiny);
  padding-block-end: var(--sp-xs);
  text-align: start;
}

.rasom-grid thead th {
  border-bottom: var(--rl-base) solid var(--clr-key);
  color: var(--clr-text);
  font-family: var(--ff-head);
  font-size: var(--ts-petite);
  font-weight: var(--wg-heavy);
  letter-spacing: var(--ls-loose);
  padding-block: var(--sp-xs);
  padding-inline: var(--sp-2xs);
  text-align: start;
  text-transform: uppercase;
}

.rasom-grid tbody th,
.rasom-grid tbody td {
  border-bottom: var(--rl-slim) solid var(--clr-line);
  padding-block: var(--sp-xs);
  padding-inline: var(--sp-2xs);
  text-align: start;
  vertical-align: top;
}

.rasom-grid tbody th {
  color: var(--clr-text);
  font-weight: var(--wg-half);
}

.rasom-grid tbody td { color: var(--clr-faint); }

.rasom-grid tbody tr:last-child th,
.rasom-grid tbody tr:last-child td { border-bottom: 0; }

@media (min-width: 640px) {
  .rasom-grid { font-size: var(--ts-reading); }
  .rasom-grid tbody th,
  .rasom-grid tbody td { padding-inline: var(--sp-xs); }
  .rasom-grid thead th { padding-inline: var(--sp-xs); }
}

/* ------------------------------------------------------------------ rezu — header */
.rezu {
  background: var(--clr-surface);
  color: var(--clr-text);
  position: sticky;
  top: 0;
  z-index: 100;
}

.rezu-shell {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-xs);
  margin-inline: auto;
  max-width: 1440px;
  min-height: var(--hd-height-mobile);
  padding-block: var(--sp-2xs);
  padding-inline: var(--shl-edge-narrow);
  position: relative;
  transition: height var(--tm-mid) var(--bz-release);
}

@media (min-width: 620px) {
  .rezu-shell {
    flex-wrap: nowrap;
    padding-block: 0;
  }
}

@media (min-width: 800px) {
  .rezu-shell {
    height: 82px;
    padding-inline: var(--sp-md);
  }
  .rezu.is-shrunk .rezu-shell { height: 68px; }
}

.rezu-logo {
  align-items: center;
  display: inline-flex;
  flex-shrink: 0;
  text-decoration: none;
}

.rezu-logo-plate {
  align-items: center;
  background: var(--clr-raised);
  border-radius: var(--rad-md);
  color: var(--clr-text);
  display: inline-flex;
  flex-shrink: 0;
  padding: 4px 10px;
}

.rezu-logo-figure {
  display: block;
  flex-shrink: 0;
  height: 34px;
  width: auto;
}

@media (min-width: 500px) {
  .rezu-logo-figure { height: 44px; }
}

@media (min-width: 800px) {
  .rezu-logo-figure { height: 60px; }
  .rezu.is-shrunk .rezu-logo-figure { height: 46px; }
}

.rezu-menu-opener {
  align-items: center;
  background: var(--clr-raised);
  border: 0;
  border-radius: var(--rad-sm);
  color: var(--clr-text);
  cursor: pointer;
  display: inline-flex;
  height: 44px;
  justify-content: center;
  margin-inline-start: auto;
  order: 8;
  width: 44px;
}

.rezu-dots {
  background: currentColor;
  border-radius: var(--rad-orb);
  display: block;
  height: 4px;
  position: relative;
  width: 4px;
}

.rezu-dots::before,
.rezu-dots::after {
  background: currentColor;
  border-radius: var(--rad-orb);
  content: "";
  height: 4px;
  position: absolute;
  width: 4px;
}

.rezu-dots::before { top: -8px; }

.rezu-dots::after { top: 8px; }

.rezu-index { display: none; }

.rezu-chain {
  align-items: center;
  display: flex;
  gap: var(--sp-xs);
  list-style: none;
  margin: 0;
  padding: 0;
}

.rezu-node {
  margin: 0;
  position: relative;
}

.rezu-chain > .rezu-node + .rezu-node::before {
  color: var(--clr-line);
  content: "|";
  inset-inline-start: calc(var(--sp-xs) / -2);
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
}

.rezu-jump {
  color: var(--clr-text);
  display: inline-block;
  font-size: 15px;
  font-weight: 400;
  padding-block: var(--sp-2xs);
  position: relative;
  text-decoration: none;
  white-space: nowrap;
}

.rezu-jump:hover { color: var(--clr-key); }

.rezu-jump[aria-current="page"]::after {
  background: var(--clr-key);
  bottom: -2px;
  content: "";
  height: var(--rl-base);
  inset-inline: 0;
  position: absolute;
}

.rezu-more { position: relative; }

.rezu-more-opener {
  background: transparent;
  border: 0;
  color: var(--clr-text);
  cursor: pointer;
  font-family: var(--ff-body);
  font-size: 15px;
  font-weight: 400;
  padding-block: var(--sp-2xs);
  white-space: nowrap;
}

.rezu-more-opener:hover { color: var(--clr-key); }

.rezu-more-menu {
  background: var(--clr-raised);
  border: var(--rl-slim) solid var(--clr-line);
  border-radius: var(--rad-sm);
  box-shadow: var(--elev-md);
  color: var(--clr-text);
  display: none;
  inset-inline-end: 0;
  list-style: none;
  margin: 0;
  max-height: 70vh;
  min-width: 220px;
  overflow-y: auto;
  padding: var(--sp-xs);
  position: absolute;
  top: calc(100% + 6px);
  z-index: 120;
}

.rezu-more-menu.is-open { display: block; }

.rezu-more-menu .rezu-node::before { content: none; }

.rezu-more-menu .rezu-jump {
  display: block;
  padding: var(--sp-2xs) var(--sp-xs);
  white-space: nowrap;
}

.rezu-bar {
  align-items: center;
  display: flex;
  flex-basis: 100%;
  flex-shrink: 0;
  gap: var(--sp-xs);
  justify-content: center;
  order: 9;
}

@media (min-width: 620px) {
  .rezu-bar {
    flex-basis: auto;
    justify-content: flex-end;
    margin-inline-start: auto;
    order: 7;
  }
  .rezu-menu-opener { margin-inline-start: 0; }
}

.rezu-flyout {
  background: var(--clr-raised);
  border-top: var(--rl-slim) solid var(--clr-line);
  color: var(--clr-text);
  display: none;
  inset-inline: 0;
  max-height: 72vh;
  overflow-y: auto;
  position: absolute;
  top: 100%;
  z-index: 110;
}

.rezu-flyout.is-open { display: block; }

.rezu-flyout-chain {
  list-style: none;
  margin: 0;
  padding: 0;
}

.rezu-flyout-node { margin: 0; }

.rezu-flyout-jump {
  border-bottom: var(--rl-slim) solid var(--clr-line);
  color: var(--clr-text);
  display: block;
  font-size: 15px;
  min-height: 48px;
  padding: var(--sp-xs) var(--shl-edge-mid);
  text-decoration: none;
}

.rezu-flyout-jump:hover { color: var(--clr-key); }

@media (min-width: 1000px) {
  .rezu-index {
    display: block;
    flex: 0 0 auto;
    margin-inline: auto;
    order: 5;
  }
  .rezu-bar { margin-inline-start: 0; }
  .rezu-menu-opener { display: none; }
  .rezu-flyout { display: none !important; }
}

/* ------------------------------------------------------------------ rime — cta block */
.rime {
  background: var(--clr-key);
  box-shadow: var(--elev-lg);
  color: var(--clr-surface);
  padding-block: var(--sp-sm);
}

.rime-shelf {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-sm);
  justify-content: space-between;
  min-height: 64px;
}

@media (min-width: 800px) {
  .rime-shelf { min-height: 80px; }
}

.rime-part { flex: 1 1 320px; }

.rime-top {
  color: var(--clr-surface);
  font-family: var(--ff-head);
  font-size: var(--ts-md-2);
  font-weight: var(--wg-heavy);
  letter-spacing: var(--ls-default);
  line-height: 1.2;
  margin: 0;
  text-transform: none;
}

.rime-words {
  color: var(--clr-surface);
  font-size: var(--ts-petite);
  line-height: var(--lh-normal);
  margin: var(--sp-2xs) 0 0;
}

.rime-bar {
  align-items: center;
  display: flex;
  flex-shrink: 0;
  gap: var(--sp-xs);
}

.rime-shut {
  background: var(--clr-surface);
  border: 0;
  border-radius: var(--rad-orb);
  color: var(--clr-text);
  cursor: pointer;
  font-size: var(--ts-h5);
  height: 36px;
  line-height: 1;
  width: 36px;
}

.rime-shut:hover { background: var(--clr-raised); color: var(--clr-text); }

.rime.is-gone { display: none; }

/* ------------------------------------------------------------------ ririn — cookie bar */
.ririn {
  background: var(--clr-raised);
  border-top: var(--rl-base) solid var(--clr-key);
  bottom: 0;
  color: var(--clr-text);
  inset-inline: 0;
  position: fixed;
  transition: opacity var(--tm-mid) var(--bz-release);
  z-index: 90;
}

.ririn.is-gone {
  opacity: 0;
  pointer-events: none;
  visibility: hidden;
}

.ririn-part {
  margin-inline: auto;
  max-width: var(--lane);
  padding: var(--sp-xs) var(--shl-edge-narrow);
}

.ririn-copy {
  font-size: var(--ts-petite);
  line-height: 1.35;
  margin: 0 0 var(--sp-xs);
}

.ririn-bar {
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-xs);
}

.ririn-yes,
.ririn-deny,
.ririn-jump {
  align-items: center;
  border-radius: var(--rad-lozenge);
  cursor: pointer;
  display: inline-flex;
  font-family: var(--ff-head);
  font-size: var(--ts-petite);
  font-weight: var(--wg-half);
  justify-content: center;
  min-height: 40px;
  padding: var(--sp-2xs) var(--sp-sm);
  text-decoration: none;
}

.ririn-yes {
  background: var(--clr-key);
  border: var(--rl-base) solid var(--clr-key);
  color: var(--clr-surface);
}

.ririn-yes:hover { background: var(--clr-accent-pressed); color: var(--clr-surface); }

.ririn-deny {
  background: var(--clr-surface);
  border: var(--rl-base) solid var(--clr-border-strong);
  color: var(--clr-text);
}

.ririn-deny:hover { background: var(--clr-raised); color: var(--clr-text); }

.ririn-jump {
  background: var(--clr-surface);
  border: var(--rl-base) solid var(--clr-surface);
  color: var(--clr-faint);
}

.ririn-jump:hover { background: var(--clr-surface); color: var(--clr-text); }

@media (max-width: 700px) {
  .ririn-bar { flex-direction: column; }
  .ririn-yes,
  .ririn-deny,
  .ririn-jump { width: 100%; }
}

@media (min-width: 800px) {
  .ririn-part { padding: var(--sp-xs) var(--shl-pad-lg); }
}

/* ------------------------------------------------------------------ tidy — author card */
.tidy-box {
  background: var(--clr-raised);
  border-inline-start: var(--rl-thick) solid var(--clr-key);
  border-radius: var(--rad-md);
  color: var(--clr-text);
  display: grid;
  gap: var(--sp-sm);
  grid-template-columns: minmax(0, 1fr);
  padding: var(--sp-md);
}

@media (min-width: 640px) {
  .tidy-box { grid-template-columns: 100px minmax(0, 1fr); }
}

.tidy-portrait {
  border-radius: var(--rad-orb);
  display: block;
  height: 100px;
  object-fit: cover;
  width: 100px;
}

.tidy-quote {
  color: var(--clr-key);
  display: block;
  font-family: var(--ff-head);
  font-size: var(--ts-h2);
  line-height: 0.6;
}

.tidy-words {
  color: var(--clr-text);
  font-size: var(--ts-h5);
  font-style: italic;
  line-height: var(--lh-normal);
  margin-block: var(--sp-xs);
}

.tidy-sign {
  color: var(--clr-faint);
  display: block;
  font-size: var(--ts-petite);
  letter-spacing: var(--ls-loose);
}

/* ------------------------------------------------------------------ tovak — inline offer plug */
.tovak {
  align-items: center;
  background: var(--clr-raised);
  border: var(--rl-slim) solid var(--clr-border-strong);
  border-radius: var(--rad-md);
  color: var(--clr-text);
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-sm);
  justify-content: space-between;
  margin-block: var(--sp-md);
  padding: var(--sp-sm);
}

.tovak-part { flex: 1 1 260px; }

.tovak-top {
  font-family: var(--ff-head);
  font-size: var(--ts-h5);
  font-weight: var(--wg-heavy);
  margin: 0 0 var(--sp-2xs);
}

.tovak-fine {
  color: var(--clr-faint);
  display: block;
  font-size: var(--ts-tiny);
  line-height: 1.4;
}

/* ------------------------------------------------------------------ vaped — byline */
.vaped {
  border-bottom: var(--rl-slim) solid var(--clr-line);
  padding-block: var(--sp-xs);
}

.vaped-frame {
  align-items: center;
  display: flex;
  gap: var(--sp-xs);
}

.vaped-portrait {
  border-radius: var(--rad-orb);
  flex-shrink: 0;
  height: 28px;
  object-fit: cover;
  width: 28px;
}

.vaped-facts {
  color: var(--clr-faint);
  display: inline;
  font-size: var(--ts-petite);
}

.vaped-handle {
  color: var(--clr-key);
  text-decoration: none;
}

.vaped-handle:hover { color: var(--clr-accent-pressed); text-decoration: underline; }

.vaped-duty { color: var(--clr-faint); }

/* ------------------------------------------------------------------ zodufaz — legal */
.zodufaz-eyebrow {
  color: var(--clr-key);
  display: block;
  font-size: var(--ts-tiny);
  letter-spacing: var(--ls-loose);
  margin-block-end: var(--sp-xs);
  text-transform: uppercase;
}

.zodufaz-lead {
  color: var(--clr-text);
  font-family: var(--ff-head);
  font-size: var(--ts-md-2);
  font-style: italic;
  line-height: var(--lh-normal);
}

.zodufaz-part { margin-block-start: var(--sp-md); }

.zodufaz-part h3 {
  font-family: var(--ff-head);
  font-size: var(--ts-h3);
  font-style: italic;
  margin-block-end: var(--sp-xs);
}

.zodufaz-rule {
  background: var(--clr-key);
  border: 0;
  height: var(--rl-base);
  margin: 0 0 var(--sp-sm);
  width: 80px;
}

.zodufaz-part p {
  color: var(--clr-faint);
  line-height: var(--lh-loose);
}

.zodufaz-part > p:first-of-type::first-letter {
  color: var(--clr-key);
  float: inline-start;
  font-family: var(--ff-head);
  font-size: 3em;
  font-weight: var(--wg-heavy);
  line-height: 0.9;
  padding-inline-end: 8px;
}

.zodufaz-chain {
  list-style: none;
  margin: var(--sp-sm) 0 0;
  padding: 0;
}

.zodufaz-line {
  color: var(--clr-faint);
  font-size: var(--ts-petite);
  margin-block-end: var(--sp-2xs);
}

.zodufaz-fine {
  border-top: var(--rl-slim) solid var(--clr-line);
  color: var(--clr-faint);
  display: block;
  font-size: var(--ts-tiny);
  line-height: var(--lh-normal);
  margin-block-start: var(--sp-md);
  padding-block-start: var(--sp-sm);
}

/* ------------------------------------------------------------------ reduced motion */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation: none !important;
    transition: none !important;
  }
  html { scroll-behavior: auto; }
  [data-reveal] {
    opacity: 1;
    transform: none;
  }
}

/* ------------------------------------------------------------------ offer button */
.zamuq-act {
  align-items: center;
  background: #C026D3;
  border-radius: var(--rad-lozenge);
  color: #FFFFFF;
  display: inline-flex;
  font-family: var(--ff-head);
  font-weight: var(--wg-heavy);
  justify-content: center;
  letter-spacing: var(--ls-loose);
  max-width: 100%;
  min-height: 48px;
  overflow: hidden;
  padding: var(--sp-xs) var(--sp-md);
  position: relative;
  text-align: center;
  text-decoration: none;
  text-transform: uppercase;
  transition: background var(--tm-calm) var(--bz-smooth), color var(--tm-calm) var(--bz-smooth);
  animation: zamuq-pulse calc(var(--tm-calm) * 5) linear infinite;
}

.zamuq-act.zamuq-act { color: #FFFFFF; text-decoration: none; }

.zamuq-act::after {
  animation: zamuq-sheen calc(var(--tm-calm) * 5) ease-in-out infinite;
  background-image: linear-gradient(100deg, transparent 38%, rgba(255, 255, 255, 0.42) 50%, transparent 62%);
  background-position: 130% 0;
  background-repeat: no-repeat;
  background-size: 260% 100%;
  content: "";
  inset: 0;
  pointer-events: none;
  position: absolute;
  transform: none;
  width: 100%;
}

.zamuq-act:hover {
  animation: none;
  background: #A21CAF;
  color: #FFFFFF;
}

.zamuq-act.zamuq-act:hover { color: #FFFFFF; text-decoration: none; }

.zamuq-act:hover::after { animation: none; }

.zamuq-act:active { background: #86198F; color: #FFFFFF; }

.zamuq-act:focus-visible { outline: 3px solid #060D27; outline-offset: 3px; }

.rime .zamuq-act { box-shadow: 0 0 0 3px var(--clr-surface); }

@keyframes zamuq-pulse {
  0% { transform: scale(1); animation-timing-function: cubic-bezier(0.25, 0.8, 0.35, 1); }
  23.158% { transform: scale(1.035); animation-timing-function: cubic-bezier(0.45, 0.05, 0.55, 0.95); }
  60.526%, 100% { transform: scale(1); }
}

@keyframes zamuq-sheen {
  0%, 3.158% { background-position: 130% 0; }
  52.632%, 100% { background-position: -30% 0; }
}

@media (prefers-reduced-motion: reduce) {
  .zamuq-act,
  .zamuq-act::after {
    animation: none !important;
    transition: none !important;
  }
}

/* ------------------------------------------------------------------ nav wrappers */
.gapo-band--top { padding-block-end: var(--sp-xs); }

.gapo-legal-index { max-width: 100%; }

.rezu-flyout-index { display: block; }

/* ------------------------------------------------------------------ narrow-desktop header steps */
@media (min-width: 1000px) and (max-width: 1259px) {
  .rezu-logo-figure { height: 44px; }
  .rezu-bar .zamuq-act {
    font-size: 13px;
    letter-spacing: 0.04em;
    padding-inline: var(--sp-sm);
  }
}

/* ------------------------------------------------------------------ featured card layout */
.bofoteb-lead {
  align-items: center;
  column-gap: var(--sp-md);
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  row-gap: var(--sp-sm);
}

.bofoteb-lead-part { flex: 1 1 420px; }

.bofoteb-lead-bar {
  flex: 0 0 auto;
  display: flex;
  justify-content: flex-start;
}

/* ------------------------------------------------------------------ anchor clearance */
[id] { scroll-margin-top: calc(var(--hd-height-mobile) + var(--sp-lg)); }

@media (min-width: 800px) {
  [id] { scroll-margin-top: calc(var(--hd-h-lg) + var(--sp-sm)); }
}

@media (max-width: 1011px) {
  .rezu-index,
  .rezu-chain { display: none !important; }
  .rezu-menu-opener { display: flex !important; }
}

/* nojs guard 28.09.2026: без JS контент виден */
html.no-js [data-reveal]{opacity:1!important;transform:none!important;visibility:visible!important;clip-path:none!important}
