/* ============ TOKENS ============ */
:root {
  --text-xs: clamp(0.75rem, 0.7rem + 0.25vw, 0.875rem);
  --text-sm: clamp(0.875rem, 0.8rem + 0.35vw, 1rem);
  --text-base: clamp(1rem, 0.95rem + 0.25vw, 1.125rem);
  --text-lg: clamp(1.125rem, 1rem + 0.75vw, 1.5rem);
  --text-xl: clamp(1.5rem, 1.2rem + 1.25vw, 2.25rem);
  --text-2xl: clamp(2rem, 1.2rem + 2.5vw, 3.5rem);
  --text-3xl: clamp(2.4rem, 1.4rem + 1.8vw, 3.6rem);

  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-5: 1.25rem;
  --space-6: 1.5rem;
  --space-8: 2rem;
  --space-10: 2.5rem;
  --space-12: 3rem;
  --space-16: 4rem;
  --space-20: 5rem;
  --space-24: 6rem;
  --space-32: 8rem;

  --ds-radius: 1;
  --ds-type: 1;
  --ds-density: 1;
  --ds-wash: 1;
  --radius-sm: calc(0.375rem * var(--ds-radius));
  --radius-md: calc(0.625rem * var(--ds-radius));
  --radius-lg: calc(1rem * var(--ds-radius));
  --radius-xl: calc(1.5rem * var(--ds-radius));
  --radius-2xl: calc(2rem * var(--ds-radius));
  --radius-full: 9999px;

  --transition-interactive: 180ms cubic-bezier(0.16, 1, 0.3, 1);

  --content-narrow: 640px;
  --content-default: 960px;
  --content-wide: 1200px;

  --font-display: 'Boska', Georgia, serif;
  --font-body: 'Switzer', 'Helvetica Neue', Arial, sans-serif;
}

:root,
[data-theme='light'] {
  --color-bg: #f8f5ef;
  --color-surface: #fcfaf5;
  --color-surface-2: #f1ece1;
  --color-divider: #e5dfd2;
  --color-border: #dbd3c3;

  --color-text: #292620;
  --color-text-muted: #6e695f;
  --color-text-faint: #9b968a;
  --color-text-inverse: #f6f3ea;

  --color-primary: #34613f;
  --color-primary-hover: #294f33;
  --color-primary-active: #1f3e28;
  --color-primary-highlight: #dbe4d6;

  --color-rose: #a34e63;
  --color-rose-hover: #8a3e53;
  --color-rose-highlight: #eddade;

  --color-deep: #24331f;
  --color-deep-2: #1c2818;

  --shadow-sm: 0 1px 2px oklch(0.25 0.02 130 / 0.06), 0 4px 14px oklch(0.25 0.02 130 / 0.04);
  --shadow-md: 0 2px 4px oklch(0.25 0.02 130 / 0.07), 0 10px 28px oklch(0.25 0.02 130 / 0.07);
  --shadow-lg: 0 12px 40px oklch(0.25 0.02 130 / 0.13);

  --wash-sage: color-mix(in oklab, var(--color-primary) calc(8% * var(--ds-wash)), var(--color-bg));
  --wash-rose: color-mix(in oklab, var(--color-rose) calc(8% * var(--ds-wash)), var(--color-bg));
  --wash-sand: color-mix(in oklab, var(--color-text) calc(5% * var(--ds-wash)), var(--color-bg));
  --card-on-wash: color-mix(in oklab, white 62%, var(--color-bg));
}

[data-theme='dark'] {
  --color-bg: #161813;
  --color-surface: #1b1e18;
  --color-surface-2: #21241d;
  --color-divider: #272b23;
  --color-border: #3a3e34;

  --color-text: #d5d2c7;
  --color-text-muted: #9b9889;
  --color-text-faint: #6e6c60;
  --color-text-inverse: #21241d;

  --color-primary: #8cba97;
  --color-primary-hover: #a5cbae;
  --color-primary-active: #6fa37c;
  --color-primary-highlight: #2c3a2e;

  --color-rose: #d795a5;
  --color-rose-hover: #e2abb8;
  --color-rose-highlight: #3c2c30;

  --color-deep: #1d2a19;
  --color-deep-2: #172112;

  --shadow-sm: 0 1px 2px oklch(0 0 0 / 0.25);
  --shadow-md: 0 4px 12px oklch(0 0 0 / 0.35);
  --shadow-lg: 0 12px 32px oklch(0 0 0 / 0.45);

  --wash-sage: color-mix(in oklab, var(--color-primary) calc(7% * var(--ds-wash)), var(--color-bg));
  --wash-rose: color-mix(in oklab, var(--color-rose) calc(7% * var(--ds-wash)), var(--color-bg));
  --wash-sand: color-mix(in oklab, #d7cfae calc(5% * var(--ds-wash)), var(--color-bg));
  --card-on-wash: color-mix(in oklab, white 5%, var(--color-bg));
}

/* ============ GENERAL ============ */
.container {
  max-width: var(--content-wide);
  margin-inline: auto;
  padding-inline: clamp(var(--space-4), 4vw, var(--space-8));
}
.container--narrow { max-width: var(--content-narrow); }
.container--default { max-width: var(--content-default); }

.skip-link {
  position: absolute;
  left: var(--space-4);
  top: -100%;
  z-index: 100;
  padding: var(--space-2) var(--space-4);
  background: var(--color-primary);
  color: var(--color-text-inverse);
  border-radius: var(--radius-md);
  text-decoration: none;
}
.skip-link:focus-visible { top: var(--space-4); }

.eyebrow {
  font-size: var(--text-xs);
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--color-rose);
  margin-bottom: var(--space-4);
}
.eyebrow--light { color: color-mix(in oklab, var(--color-rose) 55%, white); }

.sans-plus {
  font-family: var(--font-body);
  font-weight: 500;
  font-size: 0.85em;
}

.section-head {
  max-width: 640px;
  margin-bottom: clamp(var(--space-10), 6vw, var(--space-16));
}
.section-head h2 {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: calc(var(--text-2xl) * var(--ds-type));
  letter-spacing: -0.015em;
  line-height: 1.04;
  text-wrap: balance;
}
.section-head p {
  margin-top: var(--space-3);
  color: var(--color-text-muted);
}

/* Buttons */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  min-height: 48px;
  padding: var(--space-3) var(--space-6);
  border-radius: var(--radius-full);
  font-size: var(--text-sm);
  font-weight: 600;
  text-decoration: none;
  text-align: center;
}
.btn--sm { min-height: 40px; padding: var(--space-2) var(--space-5); }
.btn {
  transition: background-color 160ms cubic-bezier(0, 0, 0.2, 1), color 160ms cubic-bezier(0, 0, 0.2, 1), transform 200ms cubic-bezier(0.16, 1, 0.3, 1), box-shadow 200ms cubic-bezier(0.16, 1, 0.3, 1);
}
.btn--primary {
  background: var(--color-primary);
  color: var(--color-text-inverse);
  box-shadow: 0 14px 30px -16px oklch(from var(--color-primary) l c h / 0.75);
}
.btn--primary:hover {
  background: var(--color-primary-hover);
  transform: translateY(-2px);
  box-shadow: 0 20px 38px -16px oklch(from var(--color-primary) l c h / 0.8);
}
.btn--primary:active { background: var(--color-primary-active); transform: translateY(0); }
.btn--ghost {
  border: 1px solid oklch(from var(--color-text) l c h / 0.22);
  color: var(--color-text);
}
.btn--ghost:hover { background: oklch(from var(--color-text) l c h / 0.06); }
.btn--ghost:active { transform: translateY(1px); }
.btn--light {
  background: var(--color-text-inverse, #f6f3ea);
  background: #f6f3ea;
  color: #24331f;
}
.btn--light:hover { background: #fffdf6; }
.btn--light:active { transform: translateY(1px); }

/* ============ HEADER ============ */
.header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: oklch(from var(--color-bg) l c h / 0.85);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-bottom: 1px solid oklch(from var(--color-text) l c h / 0.08);
}
.header__inner {
  max-width: var(--content-wide);
  margin-inline: auto;
  padding: var(--space-3) clamp(var(--space-4), 4vw, var(--space-8));
  display: flex;
  align-items: center;
  gap: var(--space-6);
}
.brand {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  color: var(--color-text);
  text-decoration: none;
}
.brand__mark { color: var(--color-primary); flex-shrink: 0; }
.brand__name {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 1.25rem;
  letter-spacing: 0.01em;
  white-space: nowrap;
}
.brand__tld { color: var(--color-rose); font-weight: 500; }
.nav {
  display: flex;
  gap: var(--space-5);
  margin-inline: auto;
}
.nav a {
  color: var(--color-text-muted);
  text-decoration: none;
  font-size: var(--text-sm);
  font-weight: 500;
  padding: var(--space-2) 0;
}
.nav a:hover { color: var(--color-text); }
.header__actions {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  margin-left: auto;
}
.burger {
  display: none;
  position: relative;
  width: 40px;
  height: 40px;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  background: none;
  border: 1px solid oklch(from var(--color-text) l c h / 0.16);
  border-radius: var(--radius-full);
  cursor: pointer;
  color: var(--color-text);
}
.burger span {
  display: block;
  width: 16px;
  height: 1.6px;
  background: currentColor;
  border-radius: 2px;
  transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.2s;
}
.burger[aria-expanded="true"] span:nth-child(1) { transform: translateY(3.8px) rotate(45deg); }
.burger[aria-expanded="true"] span:nth-child(2) { transform: translateY(-3.8px) rotate(-45deg); }

.mobile-menu {
  display: none;
  flex-direction: column;
  padding: var(--space-2) var(--space-4) var(--space-5);
  border-top: 1px solid oklch(from var(--color-text) l c h / 0.08);
}
.mobile-menu a:not(.btn) {
  font-family: var(--font-display);
  font-size: var(--text-lg);
  color: var(--color-text);
  text-decoration: none;
  padding: var(--space-3) var(--space-1);
  border-bottom: 1px solid oklch(from var(--color-text) l c h / 0.06);
}
.mobile-menu a:not(.btn):last-of-type { border-bottom: none; }
.mobile-menu__cta {
  margin-top: var(--space-3);
  justify-content: center;
}

.theme-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: var(--radius-full);
  color: var(--color-text-muted);
}
.theme-toggle:hover { color: var(--color-text); background: oklch(from var(--color-text) l c h / 0.06); }

/* ============ HERO ============ */
.hero {
  padding-block: calc(clamp(var(--space-12), 8vw, var(--space-24)) * var(--ds-density, 1)) calc(clamp(var(--space-16), 8vw, var(--space-24)) * var(--ds-density, 1));
  background:
    radial-gradient(1100px 500px at 85% -10%, oklch(from var(--color-rose) l c h / 0.07), transparent 65%),
    radial-gradient(900px 600px at -10% 30%, oklch(from var(--color-primary) l c h / 0.06), transparent 60%);
}
.hero__grid {
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap: clamp(var(--space-8), 6vw, var(--space-20));
  align-items: center;
}
.hero__title {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: calc(var(--text-3xl) * var(--ds-type));
  letter-spacing: -0.02em;
  line-height: 1.04;
  text-wrap: balance;
}
.hero__title em {
  font-style: italic;
  color: var(--color-rose);
}
.hero__lead {
  margin-top: var(--space-6);
  font-size: var(--text-base);
  color: var(--color-text-muted);
  max-width: 52ch;
}
.hero__cta {
  margin-top: var(--space-8);
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
}
.hero__proof {
  margin-top: var(--space-8);
  display: flex;
  align-items: center;
  gap: var(--space-4);
  flex-wrap: wrap;
}
.hero__proof-label {
  font-size: var(--text-xs);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--color-text-faint);
}
.chips {
  display: flex;
  gap: var(--space-2);
  flex-wrap: wrap;
}
.chips li {
  font-size: var(--text-xs);
  font-weight: 600;
  padding: var(--space-1) var(--space-3);
  border: 1px solid oklch(from var(--color-text) l c h / 0.15);
  border-radius: var(--radius-full);
  color: var(--color-text-muted);
  background: var(--color-surface);
}
.hero__stats {
  margin-top: var(--space-10);
  display: flex;
  gap: clamp(var(--space-6), 4vw, var(--space-12));
  border-top: 1px solid var(--color-divider);
  padding-top: var(--space-6);
}
.hero__stats dt {
  font-family: var(--font-display);
  font-size: var(--text-xl);
  font-weight: 500;
  color: var(--color-text);
}
.hero__stats dd {
  font-size: var(--text-xs);
  color: var(--color-text-muted);
}
.hero__visual { margin: 0; }

/* ============ HERO: видео + скролл-скраб ============ */
.hero-pin { height: 280vh; }
.hero-pin .hero {
  position: sticky;
  top: 0;
  min-height: 100vh;
  display: flex;
  align-items: center;
  padding-block: calc(var(--space-8) + 76px) var(--space-8);
}
.hero-pin .hero > .container { width: 100%; }
.hero-video-frame {
  position: relative;
  z-index: 2;
  width: fit-content;
  margin-inline: auto;
  border-radius: var(--radius-xl);
  overflow: hidden;
  box-shadow: var(--shadow-lg);
  background: var(--color-surface);
  translate: 0 calc(var(--ds-hero-lift, -28px) * 1px);
}

/* Левитирующие элементы */
.float-el {
  position: absolute;
  z-index: 3;
  width: calc(var(--fw) * var(--ds-float-scale, 1));
  pointer-events: none;
  filter: drop-shadow(0 22px 32px oklch(from var(--color-text) l c h / 0.22));
  animation: floatDrift calc(var(--fdur) / var(--ds-float-speed, 1)) ease-in-out infinite alternate;
}
.float-el--peony { --fw: 150px; --fdur: 5.4s; top: 2%; left: 2%; }
.float-el--rose { --fw: 112px; --fdur: 6.6s; bottom: 16%; right: 4%; animation-delay: -2.2s; }
.float-el--petals { --fw: 118px; --fdur: 7.2s; bottom: 4%; left: 8%; animation-delay: -3.6s; }
@keyframes floatDrift {
  from { transform: translateY(-12px) rotate(-4deg); }
  to { transform: translateY(14px) rotate(5deg); }
}
:root[data-float-peony='off'] .float-el--peony,
:root[data-float-rose='off'] .float-el--rose,
:root[data-float-petals='off'] .float-el--petals { display: none; }
[data-motion='off'] .float-el { animation: none; }
[data-motion='calm'] .float-el { animation-duration: calc(var(--fdur) * 1.8 / var(--ds-float-speed, 1)); }
@media (prefers-reduced-motion: reduce) {
  .float-el { animation: none; }
}
:root[data-theme='dark'] .hero-video-frame {
  outline: 1px solid rgb(255 255 255 / 0.09);
}
.hero-video {
  display: block;
  height: min(72vh, 640px);
  width: auto;
  max-width: 100%;
  border-radius: var(--radius-xl);
  background: #f4efe6; /* тон фона ролика — без чёрных вспышек при перемотке */
}
/* Мобильный скраб: покадровый canvas вместо видео (создаётся скриптом) */
.hero-canvas {
  display: block;
  aspect-ratio: 720 / 1280;
  height: auto;
  width: min(78vw, 360px);
  max-width: 100%;
  border-radius: var(--radius-xl);
  background: #f4efe6;
}
@media (max-width: 1024px) {
  .hero-pin { height: auto; }
  .hero-pin .hero { position: static; min-height: 0; display: block; padding-block: calc(clamp(var(--space-12), 8vw, var(--space-24)) * var(--ds-density, 1)) calc(clamp(var(--space-16), 8vw, var(--space-24)) * var(--ds-density, 1)); }
  .hero-video { height: auto; width: min(78vw, 360px); }
  .hero-video-frame { translate: 0 0; }
  .float-el { width: calc(var(--fw) * 0.62 * var(--ds-float-scale, 1)); }
  .float-el--peony { left: 0; top: 0; }
  .float-el--rose { right: 0; }
  .float-el--petals { left: 2%; }
}
@media (prefers-reduced-motion: reduce) {
  .hero-pin { height: auto; }
  .hero-pin .hero { position: static; min-height: 0; }
}
.hero__caption {
  margin-top: var(--space-3);
  text-align: center;
  font-size: 0.875rem;
  color: var(--color-text-muted);
}

/* ============ BEFORE/AFTER SLIDER ============ */
.ba-slider {
  --pos: 50%;
  position: relative;
  aspect-ratio: 3 / 4;
  border-radius: var(--radius-xl);
  overflow: hidden;
  box-shadow: var(--shadow-lg);
  isolation: isolate;
  touch-action: pan-y;
}
.ba-slider img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  user-select: none;
  -webkit-user-drag: none;
}
.ba-slider__before-wrap {
  position: absolute;
  inset: 0;
  clip-path: inset(0 calc(100% - var(--pos)) 0 0);
  z-index: 1;
}
.ba-slider__handle {
  position: absolute;
  top: 0;
  bottom: 0;
  left: var(--pos);
  width: 2px;
  margin-left: -1px;
  background: #f6f3ea;
  z-index: 2;
  pointer-events: none;
}
.ba-slider__handle span {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 40px;
  height: 40px;
  border-radius: var(--radius-full);
  background: #f6f3ea;
  box-shadow: var(--shadow-md);
}
.ba-slider__handle span::before,
.ba-slider__handle span::after {
  content: '';
  position: absolute;
  top: 50%;
  width: 0;
  height: 0;
  border-block: 5px solid transparent;
}
.ba-slider__handle span::before {
  left: 9px;
  transform: translateY(-50%);
  border-right: 6px solid #24331f;
}
.ba-slider__handle span::after {
  right: 9px;
  transform: translateY(-50%);
  border-left: 6px solid #24331f;
}
.ba-slider__range {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  cursor: ew-resize;
  z-index: 3;
  -webkit-appearance: none;
  appearance: none;
}
.ba-slider__tag {
  position: absolute;
  top: var(--space-4);
  z-index: 2;
  font-size: var(--text-xs);
  font-weight: 600;
  letter-spacing: 0.04em;
  padding: var(--space-1) var(--space-3);
  border-radius: var(--radius-full);
  pointer-events: none;
}
.ba-slider__tag--before {
  left: var(--space-4);
  background: oklch(0.98 0.01 90 / 0.9);
  color: #3d3a31;
}
.ba-slider__tag--after {
  right: var(--space-4);
  background: oklch(from #24331f l c h / 0.85);
  color: #f6f3ea;
}

/* ============ QUOTE ============ */
.quote {
  padding-block: calc(clamp(var(--space-16), 8vw, var(--space-24)) * var(--ds-density, 1));
  background: var(--wash-rose);
}
.quote blockquote p {
  font-family: var(--font-display);
  font-size: var(--text-lg);
  font-weight: 400;
  font-style: italic;
  line-height: 1.5;
  color: var(--color-text);
}
.quote__source {
  margin-top: var(--space-5);
  font-size: var(--text-xs);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--color-text-faint);
}

/* ============ HOW ============ */
.how { padding-block: calc(clamp(var(--space-16), 9vw, var(--space-32)) * var(--ds-density, 1)); }
.steps {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(var(--space-6), 3vw, var(--space-10));
}
.step {
  position: relative;
  padding-top: var(--space-6);
  border-top: 1px solid var(--color-divider);
}
.step:nth-child(2) { transform: translateY(var(--space-5)); }
.step:nth-child(3) { transform: translateY(var(--space-10)); }
.step__num {
  font-family: var(--font-display);
  font-size: var(--text-xl);
  font-style: italic;
  color: var(--color-rose);
}
.step h3 {
  margin-top: var(--space-3);
  font-size: var(--text-lg);
  font-weight: 600;
}
.step p {
  margin-top: var(--space-2);
  color: var(--color-text-muted);
  font-size: var(--text-sm);
}

/* ============ EXAMPLES ============ */
.examples {
  padding-block: calc(clamp(var(--space-16), 9vw, var(--space-32)) * var(--ds-density, 1));
  background: var(--wash-sage);
}
.examples__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(var(--space-5), 3vw, var(--space-8));
  align-items: start;
}
.example { margin: 0; }
.example figcaption {
  margin-top: var(--space-4);
  font-size: var(--text-sm);
  color: var(--color-text-muted);
}
.example figcaption strong { color: var(--color-text); }
.example--note {
  align-self: stretch;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: var(--space-4);
  padding: clamp(var(--space-6), 3vw, var(--space-10));
  background: var(--card-on-wash);
  border-radius: var(--radius-2xl);
  box-shadow: var(--shadow-sm);
}
.example--note h3 {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: var(--text-xl);
}
.example--note p { color: var(--color-text-muted); font-size: var(--text-sm); }
.example--note .btn { align-self: flex-start; margin-top: var(--space-2); }

/* ============ VIDEO ============ */
.video {
  background: var(--color-deep);
  color: #e8e5da;
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  align-items: center;
}
.video__media { height: 100%; min-height: 420px; }
.video__media video {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.video__copy {
  padding-block: calc(clamp(var(--space-12), 6vw, var(--space-20)) * var(--ds-density, 1));
  max-width: 560px;
}
.video__copy h2 {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: var(--text-2xl);
  color: #f6f3ea;
}
.video__copy > p {
  margin-top: var(--space-4);
  color: oklch(0.88 0.015 110 / 0.85);
}
.video__features {
  margin-block: var(--space-6) var(--space-8);
  display: grid;
  gap: var(--space-3);
}
.video__features li {
  position: relative;
  padding-left: var(--space-6);
  font-size: var(--text-sm);
  color: oklch(0.88 0.015 110 / 0.85);
}
.video__features li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0.5em;
  width: 14px;
  height: 2px;
  background: var(--color-rose);
}

/* ============ BENEFITS ============ */
.benefits { padding-block: calc(clamp(var(--space-16), 9vw, var(--space-32)) * var(--ds-density, 1)); }
.benefits__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(var(--space-5), 3vw, var(--space-8));
}
.benefit {
  padding: clamp(var(--space-6), 3vw, var(--space-8));
  background: var(--color-surface);
  border: 1px solid oklch(from var(--color-text) l c h / 0.08);
  border-radius: var(--radius-2xl);
  transition: transform 200ms cubic-bezier(0.16, 1, 0.3, 1), box-shadow 200ms cubic-bezier(0.16, 1, 0.3, 1);
}
.benefit:hover { transform: translateY(-3px); box-shadow: var(--shadow-sm); }
.benefit--wide {
  position: relative;
  grid-column: span 3;
  display: grid;
  grid-template-columns: minmax(0, 1.9fr) minmax(0, 1.1fr);
  gap: var(--space-8);
  align-items: center;
  background: var(--wash-sage);
  border: none;
  overflow: visible;
}
.benefit--wide:hover { transform: none; box-shadow: none; }
.benefit--wide h3 { font-size: calc(var(--text-xl) * var(--ds-type)); }
.benefit--wide p { margin-top: var(--space-3); max-width: 56ch; }
.benefit__peek {
  justify-self: end;
  width: min(240px, 100%);
  aspect-ratio: 3 / 4;
  object-fit: cover;
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-md);
  transform: rotate(3deg) translateY(calc(var(--space-6) * -1 + var(--py, 0px)));
  margin-bottom: calc(var(--space-10) * -1);
  will-change: transform;
}
.benefit h3 {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: var(--text-xl);
  letter-spacing: -0.01em;
}
.benefit p {
  margin-top: var(--space-3);
  color: var(--color-text-muted);
  font-size: var(--text-sm);
}
.benefit--wide p { font-size: var(--text-base); margin-top: 0; }

/* ============ COMPARE ============ */
.compare {
  padding-block: calc(clamp(var(--space-16), 8vw, var(--space-24)) * var(--ds-density, 1));
  background: var(--wash-sage);
}
.compare__table-wrap {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  border-radius: var(--radius-2xl);
  background: var(--card-on-wash);
  box-shadow: var(--shadow-sm);
}
.compare__table { min-width: 560px; width: 100%; }
.compare__hint {
  display: none;
  margin-top: var(--space-2);
  font-size: var(--text-xs);
  color: var(--color-text-muted);
}
.compare__table th,
.compare__table td {
  padding: var(--space-4) var(--space-6);
  text-align: left;
  font-size: var(--text-sm);
  border-bottom: 1px solid var(--color-divider);
}
.compare__table thead th {
  font-size: var(--text-xs);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-text-muted);
}
.compare__table tbody tr:last-child th,
.compare__table tbody tr:last-child td { border-bottom: none; }
.compare__table tbody th { font-weight: 500; color: var(--color-text-muted); }
.compare__table td.is-accent,
.compare__table th.is-accent {
  color: var(--color-primary);
  font-weight: 600;
  background: oklch(from var(--color-primary) l c h / 0.06);
}

/* ============ PRICING ============ */
.pricing { padding-block: calc(clamp(var(--space-16), 9vw, var(--space-32)) * var(--ds-density, 1)); }
.pricing__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--space-5);
  align-items: stretch;
}
.plan {
  display: flex;
  flex-direction: column;
  padding: var(--space-8) var(--space-6);
  background: var(--color-surface);
  border: 1px solid oklch(from var(--color-text) l c h / 0.09);
  border-radius: var(--radius-2xl);
  transition: transform 200ms cubic-bezier(0.16, 1, 0.3, 1), box-shadow 200ms cubic-bezier(0.16, 1, 0.3, 1);
}
.plan:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); }
.plan--featured {
  background: var(--color-deep);
  color: #ece9de;
  border: none;
  box-shadow: var(--shadow-lg);
}
.plan__badge {
  align-self: flex-start;
  font-size: var(--text-xs);
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #eab6c2;
  border: 1px solid oklch(from var(--color-rose) l c h / 0.55);
  padding: var(--space-1) var(--space-3);
  border-radius: var(--radius-full);
  margin-bottom: var(--space-4);
}
.plan h3 {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: var(--text-xl);
}
.plan--featured h3 { color: #f6f3ea; }
.plan__desc {
  margin-top: var(--space-1);
  font-size: var(--text-xs);
  color: var(--color-text-muted);
}
.plan--featured .plan__desc { color: oklch(0.85 0.015 110 / 0.7); }
.plan__price {
  margin-block: var(--space-5);
  font-family: var(--font-display);
  font-size: var(--text-2xl);
  font-weight: 500;
  line-height: 1;
}
.plan ul {
  display: grid;
  gap: var(--space-2);
  margin-bottom: var(--space-8);
}
.plan ul li {
  position: relative;
  padding-left: var(--space-5);
  font-size: var(--text-sm);
  color: var(--color-text-muted);
}
.plan--featured ul li { color: oklch(0.88 0.015 110 / 0.85); }
.plan ul li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0.55em;
  width: 12px;
  height: 2px;
  background: var(--color-primary);
}
.plan--featured ul li::before { background: var(--color-rose); }
.plan__cta { margin-top: auto; }
.plan--featured .btn--primary {
  background: #f6f3ea;
  color: #24331f;
}
.plan--featured .btn--primary:hover { background: #fffdf6; }

.done-for-you {
  margin-top: var(--space-8);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-8);
  padding: clamp(var(--space-6), 3vw, var(--space-10));
  background: var(--wash-rose);
  border-radius: var(--radius-2xl);
}
.done-for-you h3 {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: var(--text-xl);
}
.done-for-you p {
  margin-top: var(--space-2);
  color: var(--color-text-muted);
  font-size: var(--text-sm);
  max-width: 60ch;
}
.done-for-you .btn { flex-shrink: 0; }

/* ============ ECOSYSTEM ============ */
.ecosystem {
  padding-block: calc(clamp(var(--space-16), 8vw, var(--space-24)) * var(--ds-density, 1));
  background: var(--wash-sand);
}
.ecosystem__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-5);
}
.eco-card {
  display: block;
  padding: clamp(var(--space-6), 3vw, var(--space-10));
  background: var(--card-on-wash);
  border-radius: var(--radius-2xl);
  box-shadow: var(--shadow-sm);
  text-decoration: none;
  color: var(--color-text);
  transition: transform 200ms cubic-bezier(0.16, 1, 0.3, 1), box-shadow 200ms cubic-bezier(0.16, 1, 0.3, 1);
}
.eco-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-md);
}
.eco-card__label {
  font-size: var(--text-xs);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--color-text-faint);
}
.eco-card h3 {
  margin-top: var(--space-2);
  font-family: var(--font-display);
  font-weight: 500;
  font-size: var(--text-xl);
}
.eco-card p:not(.eco-card__label) {
  margin-top: var(--space-3);
  font-size: var(--text-sm);
  color: var(--color-text-muted);
}
.eco-card__link {
  display: inline-block;
  margin-top: var(--space-5);
  font-size: var(--text-sm);
  font-weight: 600;
  color: var(--color-primary);
}

/* ============ FAQ ============ */
.faq { padding-block: calc(clamp(var(--space-16), 9vw, var(--space-32)) * var(--ds-density, 1)); }
.faq__list { display: grid; gap: var(--space-3); }
.faq__item {
  background: var(--color-surface);
  border: 1px solid oklch(from var(--color-text) l c h / 0.09);
  border-radius: var(--radius-lg);
  overflow: hidden;
}
.faq__item summary {
  padding: var(--space-5) var(--space-6);
  font-weight: 600;
  font-size: var(--text-base);
  cursor: pointer;
  list-style: none;
  position: relative;
  padding-right: var(--space-12);
}
.faq__item summary::-webkit-details-marker { display: none; }
.faq__item summary::after {
  content: '+';
  position: absolute;
  right: var(--space-6);
  top: 50%;
  transform: translateY(-50%);
  font-family: var(--font-body);
  font-size: 1.5rem;
  font-weight: 300;
  line-height: 1;
  color: var(--color-rose);
  transition: transform var(--transition-interactive);
}
.faq__item[open] summary::after { transform: translateY(-50%) rotate(45deg); }
.faq__item p {
  padding: 0 var(--space-6) var(--space-5);
  color: var(--color-text-muted);
  font-size: var(--text-sm);
}

/* ============ FINAL CTA ============ */
.final-cta {
  padding-block: calc(clamp(var(--space-20), 10vw, var(--space-32)) * var(--ds-density, 1));
  background: var(--color-deep-2);
  text-align: center;
}
.final-cta h2 {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: var(--text-2xl);
  color: #f6f3ea;
}
.final-cta p {
  margin: var(--space-4) auto var(--space-8);
  color: oklch(0.88 0.015 110 / 0.75);
  max-width: 48ch;
}

/* ============ FOOTER ============ */
.footer {
  background: var(--color-bg);
  border-top: 1px solid var(--color-divider);
  padding-block: calc(clamp(var(--space-10), 5vw, var(--space-16)) * var(--ds-density, 1)) var(--space-8);
}
.footer__inner {
  display: grid;
  grid-template-columns: 1.2fr 1fr 1fr;
  gap: var(--space-8);
}
.footer__brand p {
  margin-top: var(--space-2);
  font-size: var(--text-xs);
  color: var(--color-text-muted);
}
.footer__nav,
.footer__eco {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}
.footer__nav a,
.footer__eco a {
  color: var(--color-text-muted);
  text-decoration: none;
  font-size: var(--text-sm);
}
.footer__nav a:hover,
.footer__eco a:hover { color: var(--color-text); }
.footer__eco p {
  font-size: var(--text-xs);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--color-text-faint);
}
.footer__note {
  margin-top: var(--space-10);
  font-size: var(--text-xs);
  color: var(--color-text-faint);
}

/* ============ REVEAL ============ */
.reveal {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.6s cubic-bezier(0, 0, 0.2, 1), transform 0.6s cubic-bezier(0, 0, 0.2, 1);
  transition-delay: var(--reveal-delay, 0ms);
}
html, body { overflow-x: clip; }
.reveal--left { transform: translate(-22px, 12px) rotate(-1.5deg); }
.reveal--right { transform: translate(22px, 12px) rotate(1.5deg); }
.reveal.is-visible {
  opacity: 1;
  transform: none;
}
[data-motion='calm'] .reveal { transform: translateY(10px); transition-duration: 0.4s; transition-delay: 0ms; }
@media (prefers-reduced-motion: reduce) {
  .reveal { opacity: 1 !important; transform: none !important; transition: none !important; }
  [data-parallax] { transform: none !important; }
}
[data-motion='off'] .reveal { opacity: 1 !important; transform: none !important; transition: none !important; }
[data-motion='off'] [data-parallax] { transform: none !important; }

/* ============ RESPONSIVE ============ */
@media (max-width: 1024px) {
  .pricing__grid { grid-template-columns: repeat(2, 1fr); }
  .examples__grid { grid-template-columns: 1fr 1fr; }
  .example--note { grid-column: span 2; }
  .video { grid-template-columns: 1fr; }
  .video__copy {
    max-width: none;
    padding-inline: clamp(var(--space-4), 4vw, var(--space-8));
  }
  .video__media { min-height: 320px; }
}

@media (max-width: 820px) {
  .nav { display: none; }
  .burger { display: inline-flex; }
  .header.menu-open .mobile-menu { display: flex; animation: menuIn 0.35s cubic-bezier(0.16, 1, 0.3, 1); }
  @keyframes menuIn {
    from { opacity: 0; transform: translateY(-6px); }
    to { opacity: 1; transform: none; }
  }
  .header__inner { gap: var(--space-3); padding-inline: var(--space-4); }
  .brand__name { font-size: 1.05rem; }
  .header .btn {
    min-height: 40px;
    padding: var(--space-2) var(--space-4);
    font-size: var(--text-xs);
  }
  .theme-toggle { width: 40px; height: 40px; }
  .compare__table th,
  .compare__table td { padding: var(--space-3) var(--space-4); }
  .hero__grid { grid-template-columns: 1fr; }
  .hero__visual { max-width: 480px; margin-inline: auto; width: 100%; }
  .steps { grid-template-columns: 1fr; }
  .step:nth-child(2),
  .step:nth-child(3) { transform: none; }
  .benefits__grid { grid-template-columns: 1fr; }
  .benefit--wide {
    grid-column: span 1;
    grid-template-columns: 1fr;
    gap: var(--space-3);
  }
  .ecosystem__grid { grid-template-columns: 1fr; }
  .done-for-you { flex-direction: column; align-items: flex-start; }
  .footer__inner { grid-template-columns: 1fr; }
}

@media (max-width: 640px) {
  .examples__grid { grid-template-columns: 1fr; }
  .example--note { grid-column: span 1; }
  .pricing__grid { grid-template-columns: 1fr; }
  .hero__stats { flex-wrap: wrap; gap: var(--space-5); }
  .compare__table { min-width: 500px; }
  .compare__table th,
  .compare__table td { padding: var(--space-3); font-size: var(--text-xs); }
  .compare__hint { display: block; }

  .header__inner { gap: var(--space-2); padding-inline: var(--space-3); }
  .header__actions { gap: var(--space-2); }
  .brand__name { font-size: 0.95rem; }
  .brand__mark { width: 24px; height: 24px; }
  .header .btn--sm {
    min-height: 38px;
    padding: var(--space-2) var(--space-3);
    font-size: 0.72rem;
  }
  .theme-toggle { width: 38px; height: 38px; }
  .burger { width: 38px; height: 38px; }
}

/* ============ CHANNELS ============ */
.channels {
  padding-block: calc(clamp(var(--space-16), 9vw, var(--space-24)) * var(--ds-density, 1));
  background: var(--wash-sand);
}
.channels__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: clamp(var(--space-4), 2vw, var(--space-6));
}
.channel {
  padding: clamp(var(--space-5), 2.5vw, var(--space-8));
  background: var(--card-on-wash);
  border-radius: var(--radius-2xl);
  box-shadow: var(--shadow-sm);
  transition: transform 200ms cubic-bezier(0.16, 1, 0.3, 1), box-shadow 200ms cubic-bezier(0.16, 1, 0.3, 1);
}
.channel:hover { transform: translateY(-3px); box-shadow: var(--shadow-md); }
.channel__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
  flex-wrap: wrap;
  margin-bottom: var(--space-3);
}
.channel__head h3 {
  font-size: var(--text-lg);
  font-weight: 600;
}
.channel__badge {
  font-size: var(--text-xs);
  font-weight: 600;
  letter-spacing: 0.04em;
  padding: var(--space-1) var(--space-3);
  border-radius: var(--radius-full);
  white-space: nowrap;
}
.channel__badge--safe {
  background: var(--color-primary-highlight);
  color: var(--color-primary);
}
.channel__badge--ai {
  background: oklch(from var(--color-primary) l c h / 0.12);
  color: var(--color-primary);
}
.channel__badge--warn {
  background: oklch(from var(--color-rose) l c h / 0.14);
  color: var(--color-rose);
}
.channel p {
  font-size: var(--text-sm);
  color: var(--color-text-muted);
  line-height: 1.6;
}
@media (max-width: 720px) {
  .channels__grid { grid-template-columns: 1fr; }
}

/* ============ CALCULATOR ============ */
.calc { padding-block: calc(clamp(var(--space-16), 9vw, var(--space-24)) * var(--ds-density, 1)); }
.calc__card {
  padding: clamp(var(--space-6), 3vw, var(--space-10));
  background: var(--color-surface);
  border: 1px solid oklch(from var(--color-text) l c h / 0.08);
  border-radius: var(--radius-xl);
}
.calc__controls {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: clamp(var(--space-5), 2.5vw, var(--space-8));
  margin-bottom: var(--space-8);
}
.calc__group {
  border: none;
  padding: 0;
  margin: 0;
}
.calc__group legend {
  font-size: var(--text-xs);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--color-text-faint);
  margin-bottom: var(--space-3);
}
.calc__options {
  display: flex;
  gap: var(--space-2);
  flex-wrap: wrap;
}
.calc__options button {
  font: inherit;
  font-size: var(--text-sm);
  font-weight: 500;
  padding: var(--space-2) var(--space-5);
  border-radius: var(--radius-full);
  border: 1px solid var(--color-border);
  background: transparent;
  color: var(--color-text);
  cursor: pointer;
  transition: all var(--transition-interactive);
}
.calc__options button:hover { border-color: var(--color-primary); }
.calc__options button.is-active {
  background: var(--color-primary);
  border-color: var(--color-primary);
  color: var(--color-text-inverse);
}
.calc__result {
  display: grid;
  gap: var(--space-3);
}
.calc__row {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) auto;
  grid-template-areas: "label value" "note value";
  align-items: center;
  column-gap: var(--space-4);
  padding: var(--space-4) var(--space-5);
  border: 1px solid var(--color-divider);
  border-radius: var(--radius-lg);
}
.calc__row span { grid-area: label; font-size: var(--text-sm); color: var(--color-text-muted); }
.calc__row strong {
  grid-area: value;
  font-family: var(--font-display);
  font-size: var(--text-xl);
  font-weight: 500;
  text-align: right;
  font-variant-numeric: tabular-nums;
}
.calc__row em {
  grid-area: note;
  font-size: var(--text-xs);
  font-style: normal;
  color: var(--color-text-faint);
}
.calc__row--ours {
  background: var(--color-primary-highlight);
  border-color: transparent;
}
.calc__row--ours strong { color: var(--color-primary); }
.calc__total {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--space-4);
  padding: var(--space-5);
  border-radius: var(--radius-lg);
  background: var(--color-primary);
  color: var(--color-text-inverse);
}
.calc__total span { font-size: var(--text-sm); opacity: 0.85; }
.calc__total strong {
  font-family: var(--font-display);
  font-size: var(--text-xl);
  font-weight: 500;
  font-variant-numeric: tabular-nums;
  text-align: right;
}
.calc__note {
  margin-top: var(--space-5);
  font-size: var(--text-xs);
  color: var(--color-text-faint);
  line-height: 1.6;
}
@media (max-width: 720px) {
  .calc__controls { grid-template-columns: 1fr; }
  .calc__row strong, .calc__total strong { font-size: var(--text-lg); }
}

/* ============ HERO FAN PHOTOS ============ */
.hero { overflow: clip; }
.hero__visual { position: relative; }
.hero__visual .ba-slider { position: relative; z-index: 2; }
.hero__visual::before {
  content: '';
  position: absolute;
  inset: -12% -20%;
  z-index: 0;
  background: radial-gradient(closest-side, oklch(from var(--color-rose) l c h / 0.14), transparent 72%);
  pointer-events: none;
}
.fan-photo {
  position: absolute;
  top: 7%;
  width: 45%;
  border: 6px solid var(--color-surface);
  background: var(--color-surface);
  aspect-ratio: 3 / 4;
  object-fit: cover;
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-lg);
  z-index: 1;
  opacity: 0;
  transition: transform 0.8s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.6s cubic-bezier(0, 0, 0.2, 1);
  will-change: transform;
}
.fan-photo--left { left: 0; transform: translate(42%, var(--py, 0px)) scale(0.94); }
.fan-photo--right { right: 0; top: 15%; transform: translate(-42%, var(--py, 0px)) scale(0.94); transition-delay: 90ms; }
.is-fanned .fan-photo { opacity: 1; }
.is-fanned .fan-photo--left { transform: translate(-26%, var(--py, 0px)) rotate(-9deg); }
.is-fanned .fan-photo--right { transform: translate(26%, var(--py, 0px)) rotate(7deg); }
:root[data-theme='dark'] .fan-photo {
  border-color: color-mix(in oklab, var(--color-surface) 82%, white);
  outline: 1px solid rgb(255 255 255 / 0.09);
}
[data-motion='calm'] .fan-photo { transition-duration: 0.5s; }
[data-motion='off'] .fan-photo,
[data-motion='off'] .is-fanned .fan-photo--left,
[data-motion='off'] .is-fanned .fan-photo--right {
  opacity: 1;
  transition: none;
}
[data-motion='off'] .is-fanned .fan-photo--left { transform: translate(-26%, 0) rotate(-9deg); }
[data-motion='off'] .is-fanned .fan-photo--right { transform: translate(26%, 0) rotate(7deg); }
@media (prefers-reduced-motion: reduce) {
  .fan-photo { opacity: 1; transition: none; }
  .is-fanned .fan-photo--left { transform: translate(-26%, 0) rotate(-9deg); }
  .is-fanned .fan-photo--right { transform: translate(26%, 0) rotate(7deg); }
}
@media (max-width: 820px) {
  .hero__grid { grid-template-columns: 1fr; }
  .fan-photo { width: 34%; }
  .is-fanned .fan-photo--left { transform: translate(-16%, var(--py, 0px)) rotate(-7deg); }
  .is-fanned .fan-photo--right { transform: translate(16%, var(--py, 0px)) rotate(6deg); }
}
@media (max-width: 640px) {
  .fan-photo { display: none; }
  .hero__visual::before { inset: -6% -8%; }
}

/* ============ BENEFIT PEEK RESPONSIVE ============ */
@media (max-width: 820px) {
  .benefit__peek {
    justify-self: start;
    width: min(200px, 70%);
    transform: rotate(2deg);
    margin-bottom: 0;
  }
}

/* ============ DESIGN SYSTEM PANEL ============ */
.ds-fab {
  position: fixed;
  right: clamp(16px, 3vw, 28px);
  bottom: clamp(16px, 3vw, 28px);
  z-index: 95;
  width: 52px;
  height: 52px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--radius-full);
  background: var(--color-surface);
  color: var(--color-primary);
  border: 1px solid oklch(from var(--color-text) l c h / 0.14);
  box-shadow: var(--shadow-md);
  cursor: pointer;
  transition: transform 180ms cubic-bezier(0.16, 1, 0.3, 1), box-shadow 180ms cubic-bezier(0.16, 1, 0.3, 1), color 160ms cubic-bezier(0, 0, 0.2, 1);
}
.ds-fab:hover { transform: translateY(-2px); box-shadow: var(--shadow-lg); color: var(--color-rose); }
.ds-fab[aria-expanded='true'] { color: var(--color-rose); }

.ds-panel {
  position: fixed;
  right: clamp(12px, 2.5vw, 24px);
  bottom: clamp(80px, 12vh, 96px);
  z-index: 94;
  width: min(340px, calc(100vw - 24px));
  max-height: min(72vh, 640px);
  display: flex;
  flex-direction: column;
  background: var(--color-surface);
  border: 1px solid oklch(from var(--color-text) l c h / 0.12);
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-lg);
  overflow: hidden;
}
.ds-panel[hidden] { display: none; }
.ds-panel:not([hidden]) { animation: dsIn 0.3s cubic-bezier(0, 0, 0.2, 1); }
@keyframes dsIn {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: reduce) {
  .ds-panel:not([hidden]) { animation: none; }
}
.ds-panel__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--space-3);
  padding: var(--space-5) var(--space-5) var(--space-3);
}
.ds-panel__head h2 {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: var(--text-lg);
}
.ds-panel__head p {
  margin-top: 2px;
  font-size: var(--text-xs);
  color: var(--color-text-muted);
}
.ds-panel__close {
  flex-shrink: 0;
  width: 34px;
  height: 34px;
  border-radius: var(--radius-full);
  background: none;
  border: 1px solid oklch(from var(--color-text) l c h / 0.14);
  color: var(--color-text-muted);
  font-size: 1.2rem;
  line-height: 1;
  cursor: pointer;
  transition: color 150ms cubic-bezier(0, 0, 0.2, 1), background-color 150ms cubic-bezier(0, 0, 0.2, 1);
}
.ds-panel__close:hover { color: var(--color-text); background: oklch(from var(--color-text) l c h / 0.06); }
.ds-panel__body {
  overflow-y: auto;
  padding: 0 var(--space-5) var(--space-4);
  display: grid;
  gap: var(--space-5);
}
.ds-group h3 {
  font-size: var(--text-xs);
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--color-text-faint);
  margin-bottom: var(--space-3);
}
.ds-field {
  display: grid;
  gap: var(--space-1);
  margin-bottom: var(--space-3);
}
.ds-field:last-child { margin-bottom: 0; }
.ds-field > span {
  font-size: var(--text-xs);
  font-weight: 500;
  color: var(--color-text-muted);
  display: flex;
  justify-content: space-between;
  align-items: baseline;
}
.ds-field output {
  font-variant-numeric: tabular-nums;
  color: var(--color-text);
  font-weight: 600;
}
.ds-field select {
  font: inherit;
  font-size: var(--text-sm);
  padding: var(--space-2) var(--space-3);
  border-radius: var(--radius-md);
  border: 1px solid var(--color-border);
  background: var(--color-surface-2);
  color: var(--color-text);
  cursor: pointer;
}
.ds-field select:focus-visible,
.ds-field input:focus-visible {
  outline: 2px solid var(--color-primary);
  outline-offset: 2px;
}
.ds-field--color {
  grid-template-columns: 1fr auto;
  align-items: center;
}
.ds-field--color input {
  width: 52px;
  height: 32px;
  padding: 2px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: var(--color-surface-2);
  cursor: pointer;
}
.ds-field--range input {
  width: 100%;
  accent-color: var(--color-primary);
  cursor: pointer;
}
.ds-field--check {
  grid-template-columns: 1fr auto;
  align-items: center;
}
.ds-field--check input {
  width: 18px;
  height: 18px;
  accent-color: var(--color-primary);
  cursor: pointer;
}
.ds-panel__foot {
  display: flex;
  justify-content: space-between;
  gap: var(--space-3);
  padding: var(--space-4) var(--space-5);
  border-top: 1px solid var(--color-divider);
  background: var(--color-surface-2);
}
.ds-panel__foot .btn { flex: 1; }

/* ===== Внутренние страницы ===== */
.subpage-main { padding-top: 72px; }
.page-hero {
  padding: clamp(var(--space-12), 8vw, var(--space-20)) 0 clamp(var(--space-8), 5vw, var(--space-12));
}
.page-hero h1 {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: clamp(2.2rem, 5.4vw, 3.6rem);
  letter-spacing: -0.015em;
  line-height: 1.05;
  text-wrap: balance;
  max-width: 18ch;
}
.page-hero h1 em { font-style: italic; color: var(--color-rose); }
.page-hero__lead {
  margin-top: var(--space-4);
  max-width: 56ch;
  color: var(--color-text-muted);
  font-size: var(--text-base);
}

/* Статьи: сетка карточек */
.articles-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: var(--space-5);
  padding-bottom: clamp(var(--space-12), 8vw, var(--space-20));
}
.article-card {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: var(--space-6);
  text-decoration: none;
  color: inherit;
  transition: transform 0.2s cubic-bezier(0, 0, 0.2, 1), border-color 0.15s, box-shadow 0.2s cubic-bezier(0, 0, 0.2, 1);
}
.article-card:hover {
  transform: translateY(-3px);
  border-color: color-mix(in oklab, var(--color-primary) 35%, var(--color-border));
  box-shadow: 0 2px 6px oklch(from var(--color-text) l c h / 0.05), 0 14px 32px oklch(from var(--color-text) l c h / 0.08);
}
.article-card__tag {
  font-size: var(--text-xs);
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--color-rose);
}
.article-card h2 {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: var(--text-lg);
  line-height: 1.15;
  letter-spacing: -0.01em;
}
.article-card p { color: var(--color-text-muted); font-size: var(--text-sm); flex-grow: 1; }
.article-card__meta {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: var(--text-sm);
  color: var(--color-text-faint);
}
.article-card__meta .read { color: var(--color-primary); font-weight: 600; transition: color 0.15s; }
.article-card:hover .read { color: var(--color-primary-hover); }

/* Статья: текст */
.article-body {
  max-width: 680px;
  padding-bottom: clamp(var(--space-12), 8vw, var(--space-20));
}
.article-body .article-date { color: var(--color-text-faint); font-size: var(--text-sm); margin-bottom: var(--space-8); display: block; }
.article-body h2 {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: var(--text-xl);
  letter-spacing: -0.01em;
  line-height: 1.12;
  margin: var(--space-10) 0 var(--space-4);
}
.article-body h3 {
  font-weight: 600;
  font-size: var(--text-base);
  margin: var(--space-8) 0 var(--space-3);
}
.article-body p { margin-bottom: var(--space-4); line-height: 1.65; }
.article-body ul, .article-body ol { margin: 0 0 var(--space-4) var(--space-6); line-height: 1.65; }
.article-body li { margin-bottom: var(--space-2); }
.article-body a:not(.btn) { color: var(--color-primary); text-underline-offset: 3px; }
.article-body a:not(.btn):hover { color: var(--color-primary-hover); }
.article-body strong { font-weight: 600; }
.article-body blockquote {
  border-left: 3px solid var(--color-rose);
  padding: var(--space-2) 0 var(--space-2) var(--space-5);
  margin: var(--space-6) 0;
  color: var(--color-text-muted);
  font-style: italic;
}
.article-cta {
  margin-top: var(--space-10);
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: var(--space-8);
}
.article-cta h2 { margin: 0 0 var(--space-2); font-size: var(--text-lg); }
.article-cta p { color: var(--color-text-muted); margin-bottom: var(--space-5); }
.breadcrumbs {
  display: flex;
  gap: var(--space-2);
  font-size: var(--text-sm);
  color: var(--color-text-faint);
  margin-bottom: var(--space-6);
}
.breadcrumbs a { color: var(--color-text-muted); text-decoration: none; }
.breadcrumbs a:hover { color: var(--color-primary); }

/* Сделаем за вас */
.mfy-hero { text-align: left; }
.mfy-badge {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  font-size: var(--text-xs);
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--color-primary);
  background: color-mix(in oklab, var(--color-primary) 10%, transparent);
  border: 1px solid color-mix(in oklab, var(--color-primary) 25%, transparent);
  border-radius: 999px;
  padding: var(--space-2) var(--space-4);
  margin-bottom: var(--space-5);
}
.mfy-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: var(--space-5);
  margin: var(--space-10) 0;
}
.mfy-card {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: var(--space-6);
}
.mfy-card__icon {
  width: 44px; height: 44px;
  display: grid; place-items: center;
  border-radius: var(--radius-md);
  background: color-mix(in oklab, var(--color-primary) 10%, transparent);
  color: var(--color-primary);
  margin-bottom: var(--space-4);
}
.mfy-card h3 { font-weight: 600; font-size: var(--text-base); margin-bottom: var(--space-2); }
.mfy-card p { color: var(--color-text-muted); font-size: var(--text-sm); }
.mfy-price {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: var(--space-3);
  margin: var(--space-8) 0;
}
.mfy-price strong {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: clamp(2rem, 4.5vw, 2.8rem);
  letter-spacing: -0.01em;
}
.mfy-price span { color: var(--color-text-muted); }
.mfy-form-wrap {
  max-width: 560px;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-xl);
  padding: clamp(var(--space-6), 4vw, var(--space-10));
  margin-bottom: clamp(var(--space-12), 8vw, var(--space-20));
}
.mfy-form-wrap h2 {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: var(--text-xl);
  letter-spacing: -0.01em;
  margin-bottom: var(--space-2);
}
.mfy-form-wrap > p { color: var(--color-text-muted); margin-bottom: var(--space-6); }
.mfy-form { display: grid; gap: var(--space-4); }
.mfy-form label { font-size: var(--text-sm); font-weight: 600; display: grid; gap: var(--space-2); }
.mfy-form input, .mfy-form textarea {
  font: inherit;
  color: var(--color-text);
  background: var(--color-bg);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  padding: var(--space-4);
  transition: border-color 0.15s, box-shadow 0.15s;
}
.mfy-form input:focus-visible, .mfy-form textarea:focus-visible {
  outline: none;
  border-color: var(--color-primary);
  box-shadow: 0 0 0 3px color-mix(in oklab, var(--color-primary) 18%, transparent);
}
.mfy-form .btn { justify-self: start; }
.mfy-form__note { font-size: var(--text-sm); color: var(--color-text-faint); }
@media (max-width: 640px) {
  .articles-grid { grid-template-columns: 1fr; }
}

/* Сделаем за вас: hero с «до/после» */
.mfy-hero-grid {
  display: grid;
  grid-template-columns: 1.15fr 0.85fr;
  gap: clamp(var(--space-8), 5vw, var(--space-16));
  align-items: center;
}
.mfy-ba { margin: 0; max-width: 380px; justify-self: end; width: 100%; }
.mfy-ba figcaption {
  margin-top: var(--space-3);
  font-size: var(--text-sm);
  color: var(--color-text-muted);
}
@media (max-width: 900px) {
  .mfy-hero-grid { grid-template-columns: 1fr; }
  .mfy-ba { justify-self: start; max-width: 340px; }
}

/* Сделаем за вас: слайдер слева, форма справа */
.mfy-hero .container { padding-bottom: 0; }
.mfy-top {
  display: grid;
  grid-template-columns: 0.9fr 1.1fr;
  gap: clamp(var(--space-8), 5vw, var(--space-16));
  align-items: start;
  padding-top: var(--space-10);
}
.mfy-top .mfy-ba { max-width: 440px; justify-self: start; }
.mfy-top .mfy-form-wrap { margin: 0; max-width: none; }
.mfy-top .mfy-price { margin: 0 0 var(--space-6); }
.mfy-benefits { padding-top: var(--space-12); }
@media (max-width: 900px) {
  .mfy-top { grid-template-columns: 1fr; }
  .mfy-top .mfy-ba { max-width: 340px; }
}

/* Подвал с колонками */
.footer__grid {
  display: grid;
  grid-template-columns: 1.4fr 1.2fr 0.8fr 0.8fr;
  gap: clamp(var(--space-8), 4vw, var(--space-12));
  align-items: start;
}
.footer__support { margin-top: var(--space-4); font-size: var(--text-sm); color: var(--color-text-muted); }
.footer__support a { color: var(--color-primary); text-decoration: none; }
.footer__support a:hover { text-decoration: underline; }
.footer__col { display: flex; flex-direction: column; gap: var(--space-2); }
.footer__col h4 {
  font-family: var(--font-body);
  font-size: var(--text-xs);
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-text-muted);
  margin: 0 0 var(--space-2);
}
.footer__col a {
  color: var(--color-text);
  text-decoration: none;
  font-size: var(--text-sm);
  transition: color 0.15s;
}
.footer__col a:hover { color: var(--color-primary); }
.footer__more { color: var(--color-primary) !important; }
.footer__legal {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3) var(--space-6);
  padding-top: var(--space-6);
  margin-top: var(--space-8);
  border-top: 1px solid var(--color-border);
}
.footer__legal a {
  color: var(--color-text-muted);
  text-decoration: none;
  font-size: var(--text-xs);
  transition: color 0.15s;
}
.footer__legal a:hover { color: var(--color-primary); }
@media (max-width: 900px) {
  .footer__grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 560px) {
  .footer__grid { grid-template-columns: 1fr; }
}

/* Юридические страницы и вход */
.legal-body { padding-top: var(--space-8); padding-bottom: var(--space-12); }
.login-wrap { max-width: 560px; padding-top: var(--space-8); padding-bottom: var(--space-12); }
.login-wrap .mfy-form-wrap { margin: 0; max-width: none; }

/* Страница входа */
/* =========================================================
   AUTH PAGES & FORMS (LOGIN / REGISTER / FORGOT)
   ========================================================= */
.auth-page {
  margin: 0;
  min-height: 100vh;
  background: var(--color-bg);
}
.auth {
  display: grid;
  grid-template-columns: minmax(320px, 1.15fr) minmax(360px, 0.85fr);
  min-height: 100vh;
  height: 100vh;
  overflow: hidden;
}
.auth__panel {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(var(--space-4), 4vw, var(--space-10));
  max-width: 520px;
  width: 100%;
  margin: 0 auto;
  overflow-y: auto;
  position: relative;
}
.auth__theme {
  position: absolute;
  top: var(--space-4);
  left: var(--space-4);
  z-index: 10;
}
.auth__brand {
  align-self: flex-start;
  margin-bottom: var(--space-4);
}
.auth__title {
  font-family: var(--font-display);
  font-size: clamp(1.8rem, 3.5vw, 2.3rem);
  line-height: 1.15;
  margin: 0;
}
.auth__lead {
  color: var(--color-text-muted);
  font-size: var(--text-sm);
  margin: var(--space-1) 0 0;
}
.auth__form {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  margin-top: var(--space-5);
}
.auth__form label {
  display: flex;
  flex-direction: column;
  gap: 6px;
  font-size: var(--text-sm);
  font-weight: 600;
  color: var(--color-text);
}
.auth__form input[type='text'],
.auth__form input[type='email'],
.auth__form input[type='password'] {
  font: inherit;
  font-weight: 400;
  padding: 0.75rem 1rem;
  border-radius: 12px;
  border: 1px solid var(--color-border);
  background: var(--color-surface);
  color: var(--color-text);
  transition: border-color 0.15s, box-shadow 0.15s;
  width: 100%;
  box-sizing: border-box;
}
.auth__form input:focus-visible {
  outline: none;
  border-color: var(--color-primary);
  box-shadow: 0 0 0 3px color-mix(in oklab, var(--color-primary) 20%, transparent);
}
.auth__check {
  flex-direction: row !important;
  align-items: flex-start;
  gap: 8px !important;
  font-weight: 400 !important;
  color: var(--color-text-muted);
  font-size: var(--text-xs) !important;
  line-height: 1.45;
  cursor: pointer;
}
.auth__check input {
  margin-top: 3px;
  accent-color: var(--color-primary);
}
.auth__check a {
  color: var(--color-primary);
  text-decoration: underline;
}
.auth__submit {
  margin-top: var(--space-2);
  width: 100%;
  padding: 0.85rem 1.5rem;
  font-size: 1rem;
}
.auth__demo {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  width: 100%;
  padding: 0.75rem 1rem;
  border-radius: 12px;
  background: color-mix(in oklab, var(--color-primary) 8%, var(--color-surface));
  border: 1px solid color-mix(in oklab, var(--color-primary) 35%, transparent);
  color: var(--color-primary);
  font-weight: 600;
  font-size: var(--text-sm);
  text-decoration: none;
  transition: background 0.15s, border-color 0.15s;
}
.auth__demo:hover {
  background: color-mix(in oklab, var(--color-primary) 14%, var(--color-surface));
  border-color: var(--color-primary);
}
.auth__switch {
  font-size: var(--text-sm);
  text-align: center;
  margin: var(--space-3) 0 0;
  color: var(--color-text-muted);
}
.auth__switch a {
  color: var(--color-primary);
  font-weight: 600;
  text-decoration: none;
}
.auth__switch a:hover {
  text-decoration: underline;
}
.auth__forgot {
  text-align: center;
  margin: var(--space-1) 0 0;
}
.auth__forgot a {
  color: var(--color-text-muted);
  font-size: var(--text-xs);
  text-decoration: none;
}
.auth__forgot a:hover {
  color: var(--color-primary);
  text-decoration: underline;
}
.auth__note {
  font-size: var(--text-sm);
  color: var(--color-text-muted);
  line-height: 1.5;
}
.auth__done .btn {
  align-self: flex-start;
  margin-top: var(--space-4);
}

/* RIGHT VISUAL PANEL */
.auth__visual {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--space-6);
  background:
    radial-gradient(80% 90% at 20% 15%, color-mix(in oklab, var(--color-rose) 14%, transparent), transparent 60%),
    linear-gradient(160deg, color-mix(in oklab, var(--color-primary) 12%, var(--color-bg)), var(--color-bg-alt));
  height: 100vh;
  box-sizing: border-box;
}
.auth__visual-card {
  max-width: 380px;
  width: 100%;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: 20px;
  padding: var(--space-6);
  text-align: center;
  box-shadow: 0 2px 8px color-mix(in oklab, var(--color-primary) 8%, transparent), 0 20px 50px color-mix(in oklab, var(--color-primary) 12%, transparent);
}
.auth__visual-card img {
  width: 100%;
  height: 270px;
  object-fit: cover;
  object-position: center 75%;
  border-radius: 14px;
  margin-bottom: var(--space-4);
  display: block;
}
.auth__visual-card h2 {
  font-family: var(--font-display);
  font-size: 1.35rem;
  line-height: 1.25;
  margin: 0 0 var(--space-2);
}
.auth__visual-card p {
  color: var(--color-text-muted);
  font-size: 0.88rem;
  line-height: 1.45;
  margin: 0;
}

@media (max-width: 860px) {
  .auth {
    grid-template-columns: 1fr;
    height: auto;
    min-height: 100vh;
    overflow: visible;
  }
  .auth__visual {
    display: none;
  }
  .auth__panel {
    padding: var(--space-6) var(--space-4);
    height: auto;
  }
}
