/* === tokens === */
:root {
  --ink-base: #191323;
  --ink-flare: #20c161;
  --ink-key-active: #1da74d;
  --ink-back: #0d0916;
  --ink-panel: #221a30;
  --ink-fg: #ffffff;
  --ink-quiet: #bebcbc;
  --ink-border: #302842;
  --ink-rule-bold: #473c60;
  --ink-fade-top: #fccd15;
  --ink-blend-b: #7e40ee;
  --ink-rg-banner: #9f1239;
  --offer: #ff8a1e;
  --offer-press: #ff7300;
  --offer-ink: #191323;

  --gap-hair: 4px;
  --gap-tiny: 8px;
  --gap-snug: 12px;
  --gap-base: 16px;
  --gap-wide: 24px;
  --gap-roomy: 34px;
  --gap-vast: 52px;
  --gap-huge: 78px;

  --crn-hair: 2px;
  --crn-tiny: 4px;
  --crn-snug: 6px;
  --crn-base: 10px;
  --crn-wide: 16px;
  --crn-roomy: 22px;
  --crn-vast: 28px;
  --crn-huge: 40px;
  --crn-stadium: 999px;
  --crn-orb: 50%;

  --typ-display: 'Montserrat', system-ui, sans-serif;
  --typ-text: 'Montserrat', system-ui, sans-serif;

  --ts-xxl: clamp(1.7rem, 1.15rem + 2.4vw, 2.75rem);
  --ts-display-2: clamp(1.4rem, 1.1rem + 1.4vw, 2.05rem);
  --ts-lg-2: clamp(1.18rem, 1.02rem + 0.7vw, 1.5rem);
  --ts-display-4: clamp(1.08rem, 1rem + 0.4vw, 1.25rem);
  --ts-sm-2: 1.02rem;
  --ts-xs-2: 0.92rem;
  --ts-base: 1rem;
  --ts-fine: 0.875rem;
  --ts-legal: 0.75rem;

  --ln-dense: 1.16;
  --ln-even: 1.6;
  --ln-relaxed: 1.8;

  --wt-base: 400;
  --wt-demi: 600;
  --wt-bold: 700;

  --ls-snug: -0.01em;
  --ls-regular: 0;
  --ls-airy: 0.05em;

  --sh-hair: 0 1px 2px rgba(0,0,0,.25);
  --sh-tiny: 0 2px 6px rgba(0,0,0,.3);
  --sh-snug: 0 6px 16px rgba(0,0,0,.34);
  --sh-base: 0 12px 30px rgba(0,0,0,.4);
  --sh-wide: 0 22px 55px rgba(0,0,0,.48);

  --tm-snap: 181ms;
  --tm-regular: 330ms;
  --tm-gentle: 538ms;
  --bz-out: cubic-bezier(0.26, 0.71, 0.36, 1);
  --bz-start: cubic-bezier(0.41, 0.03, 0.36, 0.94);
  --bz-swing: cubic-bezier(0.41, 0.03, 0.36, 0.94);
  --bz-overshoot: cubic-bezier(0.33, 0.95, 0.55, 1.1);

  --wrp-full: 1040px;
  --wrp-readable: 740px;
  --wrp-narrow: 510px;
  --wrp-pad-lg: 32px;
  --wrp-padding-tablet: 24px;
  --wrp-inset-mobile: 16px;

  --rl-light: 1px;
  --rl-mid: 2px;
  --rl-bold: 3px;

  --top-h-lg: 52px;
  --top-h-sm: 52px;
}

/* === reset / base === */
*, *::before, *::after { box-sizing: border-box; }
html, body { overflow-x: clip; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: var(--typ-text);
  font-size: var(--ts-base);
  line-height: var(--ln-even);
  font-weight: var(--wt-base);
  color: var(--ink-fg);
  background: var(--ink-back);
  scroll-padding-top: calc(var(--top-h-lg) + 96px);
}
img { max-width: 100%; height: auto; display: block; }
a { color: var(--ink-flare); }
h1, h2, h3, h4 { font-family: var(--typ-display); line-height: var(--ln-dense); letter-spacing: var(--ls-snug); overflow-wrap: anywhere; margin: 0 0 var(--gap-base); }
p { margin: 0 0 var(--gap-base); }
ul, ol { margin: 0 0 var(--gap-base); padding-left: 1.25em; }
strong { font-weight: var(--wt-bold); }
:focus-visible { outline: 3px solid var(--ink-flare); outline-offset: 2px; }

/* === helpers === */
.a11y-skip { position: absolute; left: var(--gap-base); z-index: 200; background: var(--ink-flare); color: #06210f; padding: 10px 16px; border-radius: var(--crn-snug); font-weight: var(--wt-bold); }
.a11y-skip:not(:focus) { top: -200px !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; }
.rich { color: var(--ink-flare); text-decoration: underline; text-underline-offset: 3px; }
.rich:hover { color: var(--ink-fade-top); }
.bullets { list-style: none; padding-left: 0; }
.bullets li { position: relative; padding-left: 1.5em; margin-bottom: var(--gap-tiny); }
.bullets li::before { content: '◆'; position: absolute; left: 0; color: var(--ink-flare); font-size: .7em; top: .35em; }

/* offer button — distinct from site palette */
.offer { background: var(--offer); color: var(--offer-ink) !important; }
.offer:hover { background: var(--offer-press); color: var(--offer-ink) !important; }

.rgbar { margin: 0; background: var(--ink-rg-banner); color: #ffffff; text-align: center; padding: 6px 14px; font-size: var(--ts-legal); line-height: 1.35; min-height: var(--top-h-sm); display: flex; align-items: center; justify-content: center; }
.rgbar-copy { display: block; max-width: 70ch; }

/* === header e37 (HEAD-BANNER) === */
.e37 { position: sticky; top: 0; z-index: 60; background: var(--ink-base); border-bottom: var(--rl-light) solid var(--ink-border); box-shadow: var(--sh-tiny); }
.e37-frame { width: 100%; max-width: calc(var(--wrp-full) + 2 * var(--wrp-pad-lg)); margin-inline: auto; padding-inline: var(--wrp-pad-lg); }
.e37-crest { display: flex; align-items: center; gap: var(--gap-base); padding: var(--gap-snug) 0; }
.e37-badge { display: inline-flex; align-items: center; flex-shrink: 0; margin-inline: auto; }
.e37-media { height: 80px; width: auto; display: block; transition: height var(--tm-regular) var(--bz-out); }
.e37.is-stuck .e37-media { height: 60px; }
.e37-deck { flex-shrink: 0; }
.e37-press { display: inline-flex; align-items: center; justify-content: center; white-space: nowrap; flex-shrink: 0; padding: 11px 22px; border-radius: var(--crn-stadium); font-weight: var(--wt-bold); font-size: var(--ts-fine); text-decoration: none; border: none; cursor: pointer; transition: transform var(--tm-snap) var(--bz-out), background var(--tm-snap) var(--bz-out); }
.e37-press { background: var(--offer); color: var(--offer-ink); }
.e37-press:hover { background: var(--offer-press); color: var(--offer-ink); transform: translateY(-2px); }
.e37-lever { display: none; flex-direction: column; gap: 5px; width: 44px; height: 44px; align-items: center; justify-content: center; background: transparent; border: var(--rl-light) solid var(--ink-rule-bold); border-radius: var(--crn-snug); cursor: pointer; flex-shrink: 0; }
.e37-lever span { display: block; width: 20px; height: 2px; background: var(--ink-fg); border-radius: 2px; }
.e37-routes { border-top: var(--rl-light) solid var(--ink-border); }
.e37-routes .e37-run { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--gap-wide); list-style: none; margin: 0; padding: var(--gap-tiny) 0; }
.e37-piece { position: relative; display: flex; align-items: center; }
.e37-routes .e37-piece:not(:last-child)::after { content: '·'; position: absolute; right: calc(var(--gap-wide) / -2); color: var(--ink-rule-bold); }
.e37-hop { position: relative; color: var(--ink-fg); text-decoration: none; font-weight: 600; font-size: 15px; padding: 4px 6px; }
.e37-hop::after { content: ''; position: absolute; left: 50%; right: 50%; bottom: -2px; height: 2px; background: var(--ink-flare); transition: left var(--tm-snap) var(--bz-out), right var(--tm-snap) var(--bz-out); }
.e37-hop:hover::after { left: 0; right: 0; }
.e37-hop[aria-current='page'] { color: var(--ink-flare); }
.e37-hop[aria-current='page']::before { content: ''; position: absolute; left: -8px; top: 50%; transform: translateY(-50%); width: 3px; height: 1.05em; background: var(--ink-flare); border-radius: 2px; }
.e37-tray { display: none; padding: var(--gap-base) 0 var(--gap-wide); border-top: var(--rl-light) solid var(--ink-border); }
.e37-tray.is-open { display: block; }
.e37-tray .e37-run { list-style: none; margin: 0 0 var(--gap-base); padding: 0; max-width: calc(var(--wrp-full) + 2 * var(--wrp-pad-lg)); margin-inline: auto; padding-inline: var(--wrp-pad-lg); }
.e37-tray .e37-piece { border-bottom: var(--rl-light) solid var(--ink-border); }
.e37-tray .e37-hop { display: block; padding: 13px 4px; }
.e37-tray .e37-press { display: block; text-align: center; margin: 0 var(--wrp-pad-lg); }

@media (max-width: 960px) {
  .e37-lever { display: flex; }
  .e37-routes { display: none; }
  .e37-crest .e37-deck { display: none; }
  .e37-badge { margin-inline: 0 auto; }
  .e37-media { height: 60px; }
}

/* === section frame helper === */
.u71-frame, .a33-frame, .w14-frame, .l49-frame, .k26-frame, .r96-frame, .z89-frame,
.c31-frame, .l92-frame, .y53-frame, .v06-frame, .t42-frame, .n48-frame, .a31-frame,
.h89-frame, .l38-frame, .o42-frame, .t42-articles {
  width: 100%;
  max-width: calc(var(--wrp-full) + 2 * var(--wrp-pad-lg));
  margin-inline: auto;
  padding-inline: var(--wrp-pad-lg);
}

/* === hero u71 (HERO-05) === */
.u71 { padding: var(--gap-huge) 0; background: radial-gradient(1200px 600px at 80% -10%, rgba(126,64,238,.28), transparent 60%), var(--ink-back); }
.u71-frame { display: grid; grid-template-columns: 1.05fr 0.95fr; gap: var(--gap-vast); align-items: center; }
.u71-tag { display: inline-block; text-transform: uppercase; letter-spacing: var(--ls-airy); font-size: var(--ts-fine); font-weight: var(--wt-bold); color: var(--ink-flare); margin-bottom: var(--gap-snug); }
.u71-top { font-size: var(--ts-xxl); font-weight: 800; margin-bottom: var(--gap-base); }
.u71-sub { color: var(--ink-quiet); font-size: var(--ts-sm-2); margin-bottom: var(--gap-wide); max-width: 60ch; }
.u71-deck { display: flex; flex-wrap: wrap; gap: var(--gap-base); }
.u71-press, .u71-quiet { display: inline-flex; align-items: center; justify-content: center; padding: 14px 26px; border-radius: var(--crn-stadium); font-weight: var(--wt-bold); text-decoration: none; transition: transform var(--tm-snap) var(--bz-out), background var(--tm-snap) var(--bz-out); }
.u71-press { background: var(--offer); color: var(--offer-ink); box-shadow: var(--sh-snug); }
.u71-press:hover { background: var(--offer-press); color: var(--offer-ink); transform: translateY(-2px); }
.u71-quiet { background: transparent; color: var(--ink-fg); border: var(--rl-mid) solid var(--ink-rule-bold); }
.u71-quiet:hover { border-color: var(--ink-flare); color: var(--ink-flare); }
.u71-media-wrap { border-radius: var(--crn-huge); overflow: hidden; box-shadow: var(--sh-wide); border: var(--rl-light) solid var(--ink-border); }
.u71-media { width: 100%; height: auto; object-fit: cover; }
@media (max-width: 860px) {
  .u71 { padding: var(--gap-vast) 0; }
  .u71-frame { grid-template-columns: 1fr; gap: var(--gap-wide); }
  .u71-media-wrap { order: -1; }
}

/* === breadcrumbs w14 (BREAD-02) === */
.w14 { background: var(--ink-back); border-bottom: var(--rl-light) solid var(--ink-border); }
.w14-run { display: flex; flex-wrap: wrap; gap: var(--gap-tiny); list-style: none; margin: 0; padding: var(--gap-snug) 0; font-size: var(--ts-fine); }
.w14-piece { color: var(--ink-quiet); }
.w14-piece:not(:last-child)::after { content: '›'; margin-left: var(--gap-tiny); color: var(--ink-rule-bold); }
.w14-hop { color: var(--ink-flare); text-decoration: none; }
.w14-hop:hover { text-decoration: underline; }

/* === inline cta l49 (INLINE-CTA-01) === */
.l49 { padding: var(--gap-wide) 0; }
.l49-frame { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--gap-base); background: linear-gradient(120deg, rgba(32,193,97,.14), rgba(126,64,238,.14)); border: var(--rl-light) solid var(--ink-border); border-radius: var(--crn-wide); padding: var(--gap-wide) var(--gap-vast); }
.l49-copy { margin: 0; font-weight: var(--wt-demi); }
.l49-press { display: inline-flex; align-items: center; justify-content: center; padding: 12px 24px; border-radius: var(--crn-stadium); font-weight: var(--wt-bold); text-decoration: none; white-space: nowrap; transition: transform var(--tm-snap) var(--bz-out), background var(--tm-snap) var(--bz-out); }
.l49-press:hover { transform: translateY(-2px); }

/* === prose k26 (PROSE-14) === */
.k26 { padding: var(--gap-vast) 0; }
.k26-piece { padding: var(--gap-snug) 0; }
.k26-piece.is-fill { background: var(--ink-panel); border-radius: var(--crn-wide); padding: var(--gap-wide) 0; }
.k26-copy { margin-inline: auto; padding-inline: var(--gap-base); }
.k26-hdr { font-size: var(--ts-display-2); font-weight: var(--wt-demi); margin-bottom: var(--gap-snug); color: var(--ink-fg); }
.k26-copy p { color: var(--ink-quiet); }
.k26-copy strong { color: var(--ink-fg); }
.k26-copy ol, .k26-copy ul { color: var(--ink-quiet); }

/* === items r96 (GRID-03) === */
.r96 { padding: var(--gap-vast) 0; }
.r96-hdr { font-size: var(--ts-display-2); text-align: center; margin-bottom: var(--gap-wide); }
.r96-run { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--gap-wide); }
.r96-card { background: var(--ink-panel); border: var(--rl-light) solid var(--ink-border); border-radius: var(--crn-wide); padding: var(--gap-wide); transition: box-shadow var(--tm-regular) var(--bz-out), transform var(--tm-regular) var(--bz-out); }
.r96-card:hover { box-shadow: var(--sh-base); transform: translateY(-2px); }
.r96-mark { display: inline-flex; align-items: center; justify-content: center; width: 52px; height: 52px; border-radius: var(--crn-base); background: rgba(32,193,97,.14); margin-bottom: var(--gap-snug); }
.r96-media { width: 28px; height: 28px; fill: var(--ink-flare); }
.r96-top { font-size: var(--ts-lg-2); margin-bottom: var(--gap-tiny); }
.r96-copy { color: var(--ink-quiet); font-size: var(--ts-fine); margin: 0; }
@media (max-width: 900px) { .r96-run { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .r96-run { grid-template-columns: 1fr; } }

/* === reviews z89 (REV-09) === */
.z89 { padding: var(--gap-vast) 0; background: var(--ink-back); }
.z89-hdr { font-size: var(--ts-display-2); text-align: center; margin-bottom: var(--gap-wide); }
.z89-run { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--gap-wide); }
.z89-card { background: var(--ink-panel); border: var(--rl-light) solid var(--ink-border); border-radius: var(--crn-wide); padding: var(--gap-wide); margin: 0; }
.z89-band { display: flex; align-items: center; justify-content: space-between; gap: var(--gap-tiny); margin-bottom: var(--gap-snug); }
.z89-byname { font-weight: var(--wt-bold); }
.z89-extra { color: var(--ink-fade-top); font-size: var(--ts-fine); white-space: nowrap; }
.z89-extra b { color: var(--ink-fg); }
.z89-copy { margin: 0; color: var(--ink-quiet); font-size: var(--ts-fine); border: none; }
@media (max-width: 900px) { .z89-run { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .z89-run { grid-template-columns: 1fr; } }

/* === faq c31 (FAQ-01) === */
.c31 { padding: var(--gap-vast) 0; }
.c31-hdr { font-size: var(--ts-display-2); text-align: center; margin-bottom: var(--gap-wide); }
.c31-run { max-width: var(--wrp-readable); margin-inline: auto; }
.c31-piece { border-bottom: var(--rl-light) solid var(--ink-border); }
.c31-q { margin: 0; font-size: inherit; }
.c31-lever { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: var(--gap-base); background: transparent; border: none; cursor: pointer; padding: var(--gap-base) 0; text-align: left; color: var(--ink-fg); }
.c31-top { font-weight: var(--wt-demi); font-size: var(--ts-lg-2); font-family: var(--typ-display); }
.c31-sign { position: relative; width: 18px; height: 18px; flex-shrink: 0; }
.c31-sign::before, .c31-sign::after { content: ''; position: absolute; background: var(--ink-flare); border-radius: 2px; }
.c31-sign::before { top: 8px; left: 0; width: 18px; height: 2px; }
.c31-sign::after { left: 8px; top: 0; width: 2px; height: 18px; transition: transform var(--tm-regular) var(--bz-out); }
.c31-lever[aria-expanded='true'] .c31-sign::after { transform: scaleY(0); }
.c31-meat { padding: 0 0 var(--gap-base); color: var(--ink-quiet); }
.c31-meat p { margin: 0; }

/* === table l92 (TABLE-05) === */
.l92 { padding: var(--gap-vast) 0; }
.l92-hdr { font-size: var(--ts-display-2); text-align: center; margin-bottom: var(--gap-wide); }
.l92-band { overflow-x: auto; border: var(--rl-light) solid var(--ink-border); border-radius: var(--crn-wide); }
.l92 table { width: 100%; border-collapse: collapse; min-width: 560px; }
.l92 th, .l92 td { padding: 13px 16px; text-align: left; border-bottom: var(--rl-light) solid var(--ink-border); font-size: var(--ts-fine); }
.l92 th { background: var(--ink-panel); font-weight: var(--wt-bold); color: var(--ink-fg); }
.l92 td { color: var(--ink-quiet); }
.l92 tbody tr:last-child td { border-bottom: none; }

/* === cta y53 (CTA-05) === */
.y53 { padding: var(--gap-vast) 0; }
.y53-frame { background: linear-gradient(135deg, var(--ink-panel), rgba(126,64,238,.22)); border: var(--rl-light) solid var(--ink-rule-bold); border-radius: var(--crn-huge); padding: var(--gap-vast); text-align: center; }
.y53-top { font-size: var(--ts-display-2); margin-bottom: var(--gap-snug); }
.y53-copy { color: var(--ink-quiet); max-width: 64ch; margin: 0 auto var(--gap-wide); }
.y53-deck { display: flex; justify-content: center; }
.y53-press { display: inline-flex; align-items: center; justify-content: center; padding: 15px 34px; border-radius: var(--crn-stadium); font-weight: var(--wt-bold); font-size: var(--ts-sm-2); text-decoration: none; box-shadow: var(--sh-snug); transition: transform var(--tm-snap) var(--bz-out), background var(--tm-snap) var(--bz-out); }
.y53-press:hover { transform: translateY(-2px); }
.y53-note { display: block; margin: var(--gap-base) 0 0; font-size: var(--ts-legal); color: var(--ink-quiet); }

/* === byline v06 (BYLINE-04) === */
.v06 { padding: var(--gap-wide) 0 var(--gap-vast); }
.v06-frame { display: flex; align-items: center; gap: var(--gap-base); background: var(--ink-panel); border: var(--rl-light) solid var(--ink-border); border-radius: var(--crn-wide); padding: var(--gap-base) var(--gap-wide); max-width: var(--wrp-readable); }
.v06-portrait { width: 56px; height: 56px; border-radius: var(--crn-orb); object-fit: cover; flex-shrink: 0; border: var(--rl-mid) solid var(--ink-flare); }
.v06-meat { display: flex; flex-direction: column; }
.v06-tag { font-size: var(--ts-legal); text-transform: uppercase; letter-spacing: var(--ls-airy); color: var(--ink-quiet); }
.v06-hop { color: var(--ink-fg); text-decoration: none; }
.v06-hop:hover { color: var(--ink-flare); }
.v06-byname { font-weight: var(--wt-bold); font-family: var(--typ-display); }
.v06-role { font-size: var(--ts-fine); color: var(--ink-quiet); }

/* === author-card t42 (AUTH-08) === */
.t42 { padding: var(--gap-vast) 0; }
.t42-frame { display: grid; grid-template-columns: 180px 1fr; gap: var(--gap-vast); background: var(--ink-panel); border: var(--rl-light) solid var(--ink-border); border-radius: var(--crn-huge); padding: var(--gap-vast); align-items: start; }
.t42-portrait { width: 140px; height: 140px; border-radius: var(--crn-orb); object-fit: cover; border: var(--rl-bold) solid var(--ink-flare); }
.t42-byname { font-size: var(--ts-display-2); margin-bottom: var(--gap-hair); }
.t42-role { color: var(--ink-flare); font-weight: var(--wt-demi); margin-bottom: var(--gap-base); }
.t42-copy { color: var(--ink-quiet); }
.t42-hdr { font-size: var(--ts-lg-2); margin: var(--gap-base) 0 var(--gap-tiny); }
.t42-run { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: var(--gap-tiny); }
.t42-run .t42-piece { background: rgba(32,193,97,.14); color: var(--ink-fg); padding: 6px 13px; border-radius: var(--crn-stadium); font-size: var(--ts-fine); }
.t42-articles { padding-top: var(--gap-wide); }
.t42-articles-hdr { font-size: var(--ts-lg-2); margin-bottom: var(--gap-snug); }
.t42-articles-run { list-style: none; padding: 0; display: grid; gap: var(--gap-tiny); }
.t42-articles-piece { border-bottom: var(--rl-light) solid var(--ink-border); padding: var(--gap-tiny) 0; }
.t42-articles-piece .t42-hop { color: var(--ink-flare); text-decoration: none; font-weight: var(--wt-demi); }
.t42-articles-piece .t42-hop:hover { text-decoration: underline; }
@media (max-width: 720px) {
  .t42-frame { grid-template-columns: 1fr; gap: var(--gap-wide); text-align: center; }
  .t42-portrait { margin-inline: auto; }
  .t42-run { justify-content: center; }
}

/* === contact form n48 (FORM-02) === */
.n48 { padding: var(--gap-vast) 0; }
.n48-frame { max-width: var(--wrp-readable); }
.n48-note { color: var(--ink-quiet); margin-bottom: var(--gap-wide); }
.n48-field { display: flex; flex-direction: column; margin-bottom: var(--gap-base); }
.n48-tag { font-weight: var(--wt-demi); margin-bottom: var(--gap-hair); font-size: var(--ts-fine); }
.n48 input, .n48 textarea { font-family: inherit; font-size: var(--ts-base); padding: 12px 14px; border-radius: var(--crn-base); border: var(--rl-light) solid var(--ink-rule-bold); background: var(--ink-panel); color: var(--ink-fg); }
.n48 input:focus, .n48 textarea:focus { border-color: var(--ink-flare); outline: none; }
.n48-press { display: inline-flex; align-items: center; justify-content: center; padding: 13px 30px; border-radius: var(--crn-stadium); font-weight: var(--wt-bold); background: var(--ink-flare); color: #06210f; border: none; cursor: pointer; transition: background var(--tm-snap) var(--bz-out); }
.n48-press:hover { background: var(--ink-key-active); color: #06210f; }
.n48-ok { margin-top: var(--gap-base); background: rgba(32,193,97,.16); border: var(--rl-light) solid var(--ink-flare); border-radius: var(--crn-base); padding: var(--gap-base); color: var(--ink-fg); }

/* === page-header a31 (PHEAD-05) === */
.a31 { padding: var(--gap-vast) 0 var(--gap-wide); background: radial-gradient(900px 400px at 90% -20%, rgba(126,64,238,.24), transparent 60%), var(--ink-back); }
.a31-top { font-size: var(--ts-xxl); }
.a31-sub { color: var(--ink-quiet); max-width: var(--wrp-readable); font-size: var(--ts-sm-2); }

/* === legal h89 (LEGAL-05) === */
.h89 { padding: var(--gap-wide) 0 var(--gap-vast); }
.h89-frame { max-width: var(--wrp-readable); }
.h89-piece { margin-bottom: var(--gap-wide); }
.h89-hdr { font-size: var(--ts-lg-2); margin-bottom: var(--gap-snug); color: var(--ink-fg); }
.h89-copy p { color: var(--ink-quiet); }
.h89-run { padding-left: 1.2em; }
.h89-run .h89-piece { margin-bottom: var(--gap-tiny); color: var(--ink-quiet); }
.h89-note { font-size: var(--ts-fine); color: var(--ink-quiet); border-top: var(--rl-light) solid var(--ink-border); padding-top: var(--gap-base); }

/* === cookie o42 (COOK-01) === */
.o42 { position: fixed; left: 0; right: 0; bottom: 0; z-index: 90; background: var(--ink-base); border-top: var(--rl-mid) solid var(--ink-flare); box-shadow: var(--sh-wide); }
.o42-frame { display: flex; align-items: center; gap: var(--gap-base); padding-block: var(--gap-base); }
.o42-note { margin: 0; font-size: var(--ts-fine); color: var(--ink-quiet); }
.o42-deck { display: flex; gap: var(--gap-tiny); flex-shrink: 0; }
.o42-ok, .o42-deny { padding: 10px 18px; border-radius: var(--crn-stadium); font-weight: var(--wt-bold); font-size: var(--ts-fine); cursor: pointer; border: var(--rl-light) solid var(--ink-rule-bold); }
.o42-ok { background: var(--ink-flare); color: #06210f; border-color: var(--ink-flare); }
.o42-ok:hover { background: var(--ink-key-active); }
.o42-deny { background: transparent; color: var(--ink-fg); }
.o42-deny:hover { border-color: var(--ink-flare); }
@media (max-width: 720px) {
  .o42-frame { flex-direction: column; align-items: stretch; padding: 12px 14px; gap: 8px; font-size: 13px; }
  .o42-deck { justify-content: stretch; }
  .o42-ok, .o42-deny { flex: 1; min-height: 36px; padding: 8px 14px; font-size: 12px; }
}

/* === error l38 (ERR-07) === */
.l38 { padding: var(--gap-huge) 0; text-align: center; min-height: 46vh; display: flex; align-items: center; }
.l38-top { font-size: var(--ts-xxl); max-width: var(--wrp-narrow); margin-inline: auto; }
.l38-copy { color: var(--ink-quiet); max-width: 56ch; margin: 0 auto var(--gap-wide); }
.l38-press { display: inline-flex; padding: 14px 30px; border-radius: var(--crn-stadium); background: var(--offer); color: var(--offer-ink); font-weight: var(--wt-bold); text-decoration: none; }
.l38-press:hover { background: var(--offer-press); color: var(--offer-ink); }

/* === footer a33 (FOOT-08 editorial masthead) === */
.a33 { background: var(--ink-base); border-top: var(--rl-mid) solid var(--ink-rule-bold); padding: var(--gap-vast) 0 var(--gap-wide); margin-top: var(--gap-vast); }
.a33-masthead { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: var(--gap-base); border-bottom: var(--rl-light) solid var(--ink-border); padding-bottom: var(--gap-base); margin-bottom: var(--gap-wide); }
.a33-media { height: 56px; width: auto; }
.a33-extra { margin: 0; color: var(--ink-quiet); font-size: var(--ts-fine); letter-spacing: var(--ls-airy); text-transform: uppercase; }
.a33-band { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--gap-vast); margin-bottom: var(--gap-wide); }
.a33-hdr { font-size: var(--ts-lg-2); margin-bottom: var(--gap-snug); }
.a33-run { list-style: none; padding: 0; margin: 0; display: grid; gap: var(--gap-tiny); }
.a33-hop { color: var(--ink-quiet); text-decoration: none; }
.a33-hop:hover { color: var(--ink-flare); }
.a33-copy { color: var(--ink-quiet); font-size: var(--ts-fine); margin-bottom: var(--gap-tiny); }
.a33-note { color: var(--ink-quiet); font-size: var(--ts-legal); margin: 0; }
@media (max-width: 640px) { .a33-band { grid-template-columns: 1fr; gap: var(--gap-wide); } }


/* === grid-child / footer extras === */
.u71-meat { min-width: 0; }
.t42-meat { min-width: 0; }
.a33-badge { display: inline-flex; align-items: center; }
.a33-side { min-width: 0; }
.a33-band .a33-piece { display: block; }

/* === responsive padding === */
@media (max-width: 1024px) {
  .u71-frame, .a33-frame, .w14-frame, .l49-frame, .k26-frame, .r96-frame, .z89-frame,
  .c31-frame, .l92-frame, .y53-frame, .v06-frame, .t42-frame, .n48-frame, .a31-frame,
  .h89-frame, .l38-frame, .o42-frame, .e37-frame { padding-inline: var(--wrp-padding-tablet); }
}
@media (max-width: 600px) {
  .u71-frame, .a33-frame, .w14-frame, .l49-frame, .k26-frame, .r96-frame, .z89-frame,
  .c31-frame, .l92-frame, .y53-frame, .v06-frame, .t42-frame, .n48-frame, .a31-frame,
  .h89-frame, .l38-frame, .o42-frame, .e37-frame { padding-inline: var(--wrp-inset-mobile); }
  .l49-frame { flex-direction: column; align-items: stretch; text-align: center; padding: var(--gap-wide); }
  .y53-frame { padding: var(--gap-wide); }
  .t42-frame { padding: var(--gap-wide); }
}

/* === motion off === */
@media (prefers-reduced-motion: reduce) {
  * { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

@media (max-width: 991px) {
	/* Прячем только сам контейнер десктопного меню. Раньше в списке
	   стояли ещё .e37-run/.e37-hop/.e37-press с !important, и они гасли
	   и внутри выдвижного ящика — мобильное меню открывалось пустым. */
	.e37-deck,
	.e37-routes { display: none !important; }
	.e37-lever { display: flex !important; }
}

/* Пульсация офферных кнопок — приём и числа разыграны по домену
   (Site-gen/scripts/cta-style.mjs), добавлено 2026-08-07. */
.e37-press,
.u71-press,
.offer,
.y53-press { animation: breathe_ijtf 2.75s linear infinite; }
.e37-press:hover,
.u71-press:hover,
.offer:hover,
.y53-press:hover { animation: none; }
@keyframes breathe_ijtf{0%{transform:scale(1);animation-timing-function:cubic-bezier(.25,.8,.35,1)}14.545%{transform:scale(1.09);animation-timing-function:cubic-bezier(.45,.05,.55,.95)}52.727%,100%{transform:scale(1)}}
@media (prefers-reduced-motion: reduce) {
	.e37-press,
	.u71-press,
	.offer,
	.y53-press { animation: none !important; }
}

/* ---- картинки внутри страниц ----
   Кадры бывают квадратные и вертикальные, поэтому ограничиваем и по ширине,
   и по высоте, но не режем — картинка вписывается целиком. */
.z89-page-figure,
.k26-page-figure {
	margin: var(--gap-wide) auto;
	max-width: 560px;
	border-radius: var(--crn-roomy);
	overflow: hidden;
	border: var(--rl-light) solid var(--ink-border);
}
.z89-page-figure img,
.k26-page-figure img {
	display: block;
	max-width: 100%;
	max-height: 56vh;
	width: auto;
	height: auto;
	margin-inline: auto;
}
