/* =============================================================
   MarvisX — justaskmarvis.com page styles
   v2.0 — wired to MarvisX Design System canonical tokens
   (see assets/colors_and_type.css). Light/paper theme.

   Every local --marvis-*, --cream-*, --accent-*, --green-* name
   below is now an ALIAS to a canonical token. Anything that needs
   to change visually changes in colors_and_type.css, not here.
   ============================================================= */

@import url('./colors_and_type.css');
@import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,wght@1,500;1,600&display=swap');

/* Force paper/light theme — this site is always light. */
:root, html { color-scheme: light; }
:root {
  /* Pull in canonical light-theme values directly. The .light selector
     in colors_and_type.css contains these; we duplicate them here so
     they apply without needing a class on <html>. */
  --pir-base:       36 22% 94%;
  --pir-surface-0:  36 20% 90%;
  --pir-surface-1:  36 18% 86%;
  --pir-surface-2:  34 16% 80%;
  --pir-surface-3:  32 14% 73%;

  --pir-accent:    18 95% 44%;
  --pir-secondary: 156 55% 22%;
  --pir-secondary-bright: 156 55% 28%;
  --pir-bone:      34 28% 92%;
  --pir-focus:     156 55% 24%;
  --pir-info:      156 55% 24%;
  --pir-purple:    300 25% 40%;
  --pir-success:   156 55% 24%;
  --pir-warning:    38 90% 38%;
  --pir-error:       4 70% 42%;

  --pir-text-primary:   rgba(28, 22, 16, 0.94);
  --pir-text-secondary: rgba(28, 22, 16, 0.76);
  --pir-text-tertiary:  rgba(28, 22, 16, 0.62);
  --pir-text-muted:     rgba(28, 22, 16, 0.48);

  --pir-border:        rgba(28, 22, 16, 0.14);
  --pir-border-strong: rgba(28, 22, 16, 0.26);
  --pir-border-accent: hsl(20 90% 44% / 0.45);

  /* ===== Local aliases → canonical tokens =====
     Component styles below reference these names. */

  /* warm neutrals — anthracite ink → bone paper */
  --marvis-deep:        hsl(30 30% 8%);                          /* warm graphite ink */
  --marvis-base:        hsl(30 12% 16%);                         /* warm dark surface */
  --marvis-mid:         hsl(var(--bone-700));                    /* mid graphite */
  --marvis-mute:        hsl(var(--bone-600));                    /* warm bone-600 */
  --marvis-soft:        hsl(var(--bone-500));                    /* warm bone-500 */
  --marvis-line:        var(--pir-border);
  --marvis-line-strong: var(--pir-border-strong);
  --cream:              hsl(var(--pir-base));                    /* paper bg */
  --cream-warm:         hsl(var(--bone-100));                    /* warmer card */
  --cream-soft:         hsl(var(--pir-surface-1));               /* raised */
  --paper:              hsl(var(--bone-50));                     /* lightest panel */

  /* accent — TE Riddim orange */
  --accent:        hsl(var(--pir-accent));                       /* canonical accent */
  --accent-hover:  hsl(18 95% 36%);                              /* darker for hover on paper */
  --accent-soft:   hsl(var(--accent-100));
  --accent-mute:   hsl(var(--accent-200));
  --accent-tint:   hsl(var(--pir-accent) / 0.10);

  /* secondary — Riddim forest green */
  --green:         hsl(var(--pir-secondary));
  --green-bright:  hsl(var(--green-400));
  --green-soft:    hsl(var(--green-100));

  /* state channels — all routed through canonical semantic tokens */
  --state-full:    hsl(var(--pir-success));
  --state-partial: hsl(var(--pir-warning));
  --state-vision:  hsl(var(--pir-purple));
  --state-absent:  hsl(var(--bone-500));
  --success:       hsl(var(--pir-success));
  --error:         hsl(var(--pir-error));
  --warning:       hsl(var(--pir-warning));

  /* type — local aliases preserved for back-compat with page styles */
  --font-display: var(--pir-font-display);
  --font-body:    var(--pir-font-sans);
  --font-mono:    var(--pir-font-mono);
  --font-serif:   'Fraunces', Georgia, serif;

  /* layout */
  --content-w:    1120px;
  --content-pad:  clamp(20px, 4vw, 40px);

  /* spacing (density: regular) */
  --section-y:    clamp(44px, 6vw, 84px);
  --card-pad:     clamp(24px, 3vw, 32px);
  --stack-1:      8px;
  --stack-2:      16px;
  --stack-3:      24px;
  --stack-4:      32px;
  --stack-5:      36px;
  --stack-6:      48px;

  /* radii */
  --r-input:  8px;
  --r-card:   12px;
  --r-lg:     16px;
  --r-pill:   9999px;

  /* shadows (sparingly used) */
  --shadow-card:   0 1px 2px rgba(28, 22, 16, 0.04), 0 1px 1px rgba(28, 22, 16, 0.02);
  --shadow-hover:  0 12px 24px -8px rgba(28, 22, 16, 0.10), 0 4px 8px -4px rgba(28, 22, 16, 0.04);
  --shadow-deep:   0 24px 48px -16px hsl(var(--pir-accent) / 0.18), 0 8px 16px -8px rgba(28, 22, 16, 0.08);
}

[data-density="compact"] {
  --section-y: clamp(32px, 4vw, 56px);
  --card-pad:  clamp(20px, 2.4vw, 24px);
  --stack-5:   28px;
  --stack-6:   36px;
}
[data-density="spacious"] {
  --section-y: clamp(72px, 9vw, 120px);
  --card-pad:  clamp(32px, 4vw, 48px);
  --stack-5:   56px;
  --stack-6:   80px;
}

[data-accent="orange"] { --accent:#D04508; --accent-hover:#B43A05; --accent-soft:#FBDDC9; --accent-mute:#F2A77B; --accent-tint:hsl(18 95% 54% / 0.10); }
[data-accent="green"]  { --accent:#1C5C42; --accent-hover:#134630; --accent-soft:#C2DBCE; --accent-mute:#7BB59A; --accent-tint:hsl(156 55% 38% / 0.12); }
[data-accent="amber"]  { --accent:#C9851A; --accent-hover:#A36912; --accent-soft:#F5DCA8; --accent-mute:#E5B86A; --accent-tint:hsl(38 80% 50% / 0.12); }
[data-accent="ink"]    { --accent:#1C1610; --accent-hover:#000;    --accent-soft:#D5CCC0; --accent-mute:#6F6258; --accent-tint:rgba(28,22,16,0.06); }

[data-display="condensed"] { --font-display: 'IBM Plex Sans Condensed', 'IBM Plex Sans', system-ui, sans-serif; }
[data-display="plex"]      { --font-display: 'IBM Plex Sans', system-ui, sans-serif; }
[data-display="fraunces"]  { --font-display: 'Fraunces', Georgia, serif; }

/* =============================================================
   RESET + BASE
   ============================================================= */
*,*::before,*::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  background: var(--cream);
  color: var(--marvis-deep);
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.6;
  font-feature-settings: "ss01", "cv11";
  font-variant-numeric: tabular-nums;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
@media (max-width: 768px) { body { font-size: 15px; } }

a { color: var(--accent); text-decoration: none; }
a:hover { text-decoration: underline; text-underline-offset: 3px; }

h1,h2,h3,h4,h5 {
  font-family: var(--font-display);
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: -0.01em;
  color: var(--marvis-deep);
  margin: 0;
  text-wrap: balance;
}
h1 { font-weight: 700; letter-spacing: -0.02em; }
p { margin: 0; text-wrap: pretty; }
code, pre, kbd { font-family: var(--font-mono); }

/* Marketing-site cascade rule: let text elements inherit container color.
   Overrides the canonical `p { color: var(--pir-text-primary) }` reset so
   dark sections (.manifesto, .blog-featured, .price--dark, .site-footer,
   [data-hero="v3"]) can set `color: var(--cream)` once and have it flow. */
h1, h2, h3, h4, h5, h6, p, blockquote, li {
  color: inherit;
}

img, svg { display: block; max-width: 100%; }

::selection { background: var(--accent); color: white; }

/* =============================================================
   LAYOUT PRIMITIVES
   ============================================================= */
.wrap {
  width: 100%;
  max-width: var(--content-w);
  margin: 0 auto;
  padding-left: var(--content-pad);
  padding-right: var(--content-pad);
}
.section {
  padding-top: var(--section-y);
  padding-bottom: var(--section-y);
}
.section--tight { padding-top: calc(var(--section-y) * 0.6); padding-bottom: calc(var(--section-y) * 0.6); }
.section--first { padding-top: 96px; }
@media (max-width: 768px) { .section--first { padding-top: 64px; } }

.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 14px;
  background: var(--cream-warm);
  border: 1px solid var(--marvis-line);
  border-radius: var(--r-pill);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.01em;
  color: var(--marvis-mid);
  flex-wrap: wrap;
  justify-content: center;
  max-width: 100%;
}
.eyebrow > * { white-space: nowrap; }
.eyebrow .diamond { color: var(--accent); }
.eyebrow .tagline { font-family: var(--font-serif); font-style: italic; color: var(--accent); font-weight: 500; }
.eyebrow .dot { color: var(--marvis-soft); }
@media (max-width: 480px) {
  .eyebrow { font-size: 12px; padding: 5px 12px; }
  .eyebrow .dot { display: none; }
}

.section-header { display: flex; flex-direction: column; gap: 12px; margin-bottom: var(--stack-5); max-width: 720px; }
.section-header__kicker {
  display: flex; align-items: center; gap: 12px;
  font-family: var(--font-mono); font-size: 12px; font-weight: 500;
  letter-spacing: 0.14em; text-transform: uppercase; color: var(--accent);
}
.section-header__kicker::after { content: ""; flex: 1; height: 1px; background: var(--marvis-line); max-width: 80px; }
.section-header__h2 { font-size: clamp(1.75rem, 3.2vw, 2.5rem); }
.section-header__lede { color: var(--marvis-mute); font-size: clamp(1rem, 1.4vw, 1.125rem); max-width: 600px; }

.lede { color: var(--marvis-mute); font-size: clamp(1rem, 1.4vw, 1.125rem); line-height: 1.6; }
.muted { color: var(--marvis-mute); }
.mono  { font-family: var(--font-mono); }
.serif { font-family: var(--font-serif); font-style: italic; }

/* =============================================================
   BUTTONS
   ============================================================= */
.btn {
  display: inline-flex; align-items: center; gap: 8px;
  height: 44px;
  padding: 0 20px;
  border-radius: var(--r-pill);
  font-family: var(--font-body); font-size: 14px; font-weight: 500;
  line-height: 1; text-decoration: none;
  border: 1px solid transparent;
  cursor: pointer;
  transition: transform .15s ease, background-color .15s ease, color .15s ease, border-color .15s ease, box-shadow .15s ease;
  white-space: nowrap;
}
.btn:hover { text-decoration: none; transform: translateY(-1px); }
.btn:active { transform: translateY(0); }

.btn--primary { background: var(--accent); color: white; }
.btn--primary:hover { background: var(--accent-hover); box-shadow: 0 8px 16px -8px var(--accent); }

.btn--outline { background: transparent; color: var(--marvis-deep); border-color: var(--marvis-mid); }
.btn--outline:hover { background: var(--marvis-deep); color: white; border-color: var(--marvis-deep); }

.btn--ghost { background: transparent; color: var(--marvis-deep); }
.btn--ghost:hover { background: var(--marvis-line); }

.btn--dark { background: var(--marvis-deep); color: var(--cream); }
.btn--dark:hover { background: var(--marvis-base); }

.btn--sm { height: 36px; padding: 0 14px; font-size: 13px; }
.btn--lg { height: 52px; padding: 0 24px; font-size: 15px; }
.btn--block { width: 100%; justify-content: center; }

.btn .star {
  display: inline-flex; align-items: center; gap: 5px;
  padding: 2px 8px; margin-left: 4px;
  background: rgba(255,255,255,0.18); border-radius: 999px;
  font-family: var(--font-mono); font-size: 12px; font-weight: 600;
}
.btn--outline .star { background: var(--accent-tint); color: var(--accent); }

.arrow {
  display: inline-block;
  transition: transform .15s ease;
}
.btn:hover .arrow { transform: translateX(3px); }
a.link-arrow { display: inline-flex; align-items: center; gap: 6px; font-weight: 500; }
a.link-arrow:hover { text-decoration: none; }
a.link-arrow:hover .arrow { transform: translateX(3px); }

/* =============================================================
   HEADER (sticky)
   ============================================================= */
.site-header {
  position: sticky; top: 0; z-index: 50;
  background: rgba(245, 240, 232, 0.7);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-bottom: 1px solid transparent;
  transition: background-color .2s ease, border-color .2s ease;
}
.site-header.is-scrolled { background: rgba(245, 240, 232, 0.92); border-bottom-color: var(--marvis-line); }
.site-header__inner {
  display: flex; align-items: center; gap: 32px;
  height: 64px;
}
.site-header__brand { display: flex; align-items: center; color: var(--marvis-deep); }
.site-header__brand:hover { text-decoration: none; }
.site-header__brand .mark { width: auto; height: 36px; color: var(--marvis-deep); }
.footer-col.brand .site-header__brand .mark { color: var(--cream); }

.site-nav { display: flex; align-items: center; gap: 4px; flex: 1; }
.site-nav a {
  padding: 8px 12px; border-radius: 8px;
  color: var(--marvis-mute); font-size: 14px; font-weight: 500;
  transition: color .15s ease, background-color .15s ease;
}
.site-nav a:hover { color: var(--marvis-deep); background: var(--marvis-line); text-decoration: none; }
.site-nav a.is-active { color: var(--marvis-deep); }

.lang-toggle { display: inline-flex; gap: 0; background: var(--marvis-line); border-radius: var(--r-pill); padding: 3px; }
.lang-toggle a {
  padding: 4px 10px; border-radius: var(--r-pill);
  font-family: var(--font-mono); font-size: 11px; font-weight: 600; letter-spacing: 0.04em;
  color: var(--marvis-mute);
}
.lang-toggle a.is-active { background: white; color: var(--marvis-deep); box-shadow: var(--shadow-card); }
.lang-toggle a:hover { text-decoration: none; color: var(--marvis-deep); }

.site-header__actions { display: flex; align-items: center; gap: 12px; }
.mobile-toggle {
  display: none; width: 40px; height: 40px;
  border: 1px solid var(--marvis-line); border-radius: 8px;
  background: transparent; cursor: pointer; align-items: center; justify-content: center;
  color: var(--marvis-deep);
}

@media (max-width: 1023px) {
  .site-nav, .site-header__actions .btn, .site-header__actions .lang-toggle { display: none; }
  .mobile-toggle { display: inline-flex; }
  .site-header__inner { justify-content: space-between; }
}

.mobile-drawer {
  position: fixed; inset: 64px 0 0 0; z-index: 49;
  background: var(--cream);
  padding: 32px var(--content-pad);
  display: none;
  flex-direction: column; gap: 8px;
}
.mobile-drawer.is-open { display: flex; }
.mobile-drawer a { padding: 14px 16px; border-radius: 10px; color: var(--marvis-deep); font-size: 18px; font-weight: 500; border-bottom: 1px solid var(--marvis-line); }
.mobile-drawer a:hover { background: var(--marvis-line); text-decoration: none; }
.mobile-drawer__actions { display: flex; gap: 12px; margin-top: 16px; }
.mobile-drawer__actions .btn { flex: 1; justify-content: center; }

/* =============================================================
   HERO
   ============================================================= */
.hero { padding-top: clamp(56px, 8vw, 96px); padding-bottom: clamp(56px, 8vw, 96px); position: relative; }
.hero__inner { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 28px; }
.hero__h1 {
  font-family: var(--font-display);
  font-size: clamp(2.5rem, 5.2vw, 4.5rem);
  font-weight: 700; letter-spacing: -0.025em; line-height: 1.05;
  max-width: 18ch;
}
.hero__h1 em { font-style: normal; color: var(--accent); }
.hero__sub { max-width: 640px; color: var(--marvis-mute); font-size: clamp(1.0625rem, 1.6vw, 1.25rem); line-height: 1.5; }
.hero__cta { display: flex; gap: 12px; flex-wrap: wrap; justify-content: center; }

.hero__stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; width: 100%; max-width: 960px; margin-top: 24px; }
.stat {
  padding: 20px;
  background: var(--paper);
  border: 1px solid var(--marvis-line);
  border-radius: var(--r-card);
  text-align: left;
  display: flex; flex-direction: column; gap: 6px;
  transition: border-color .15s ease;
}
.stat:hover { border-color: var(--accent-mute); }
.stat__num { font-family: var(--font-display); font-size: 28px; font-weight: 600; color: var(--marvis-deep); letter-spacing: -0.02em; line-height: 1; }
.stat__num.mono { font-family: var(--font-mono); font-size: 22px; font-weight: 500; }
.stat__lbl { font-size: 12px; color: var(--marvis-mute); line-height: 1.4; letter-spacing: 0.01em; }

@media (max-width: 768px) {
  .hero__stats { grid-template-columns: repeat(2, 1fr); }
}

/* HERO VARIANT 2 — split with code panel */
[data-hero="v2"] .hero__inner { display: grid; grid-template-columns: 1.05fr 0.95fr; gap: 56px; text-align: left; align-items: center; }
[data-hero="v2"] .hero__h1 { max-width: none; }
[data-hero="v2"] .hero__cta { justify-content: flex-start; }
[data-hero="v2"] .hero__stats { grid-template-columns: repeat(2, 1fr); margin-top: 0; }
[data-hero="v2"] .hero__visual { display: block; }
[data-hero="v1"] .hero__visual,
[data-hero="v3"] .hero__visual { display: none; }
@media (max-width: 1023px) {
  [data-hero="v2"] .hero__inner { grid-template-columns: 1fr; text-align: center; }
  [data-hero="v2"] .hero__cta { justify-content: center; }
  [data-hero="v2"] .hero__stats { grid-template-columns: repeat(2, 1fr); }
}

/* HERO VARIANT 3 — dark monolith */
[data-hero="v3"] .hero { background: var(--marvis-deep); color: var(--cream); }
[data-hero="v3"] .hero .eyebrow { background: rgba(255,255,255,0.06); border-color: rgba(255,255,255,0.12); color: rgba(245, 240, 232, 0.85); }
[data-hero="v3"] .hero__h1 { color: var(--cream); }
[data-hero="v3"] .hero__sub { color: rgba(245, 240, 232, 0.7); }
[data-hero="v3"] .btn--outline { color: var(--cream); border-color: rgba(255,255,255,0.25); }
[data-hero="v3"] .btn--outline:hover { background: white; color: var(--marvis-deep); border-color: white; }
[data-hero="v3"] .stat { background: rgba(255,255,255,0.04); border-color: rgba(255,255,255,0.08); }
[data-hero="v3"] .stat__num { color: var(--cream); }
[data-hero="v3"] .stat__lbl { color: rgba(245, 240, 232, 0.6); }
[data-hero="v3"] .site-header { background: rgba(28, 22, 16, 0.7); }
[data-hero="v3"] .site-header.is-scrolled { background: rgba(28, 22, 16, 0.92); border-bottom-color: rgba(255,255,255,0.08); }
[data-hero="v3"] .site-header__brand { color: var(--cream); }
[data-hero="v3"] .site-nav a { color: rgba(245, 240, 232, 0.65); }
[data-hero="v3"] .site-nav a:hover { color: var(--cream); background: rgba(255,255,255,0.06); }
[data-hero="v3"] .lang-toggle { background: rgba(255,255,255,0.08); }
[data-hero="v3"] .lang-toggle a { color: rgba(245, 240, 232, 0.6); }
[data-hero="v3"] .lang-toggle a.is-active { background: rgba(255,255,255,0.12); color: var(--cream); }

/* =============================================================
   CARDS (USP)
   ============================================================= */
.usp-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
@media (max-width: 1023px) { .usp-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 768px)  { .usp-grid { grid-template-columns: 1fr; } }

.usp {
  display: flex; flex-direction: column; gap: 16px;
  padding: var(--card-pad);
  background: var(--paper);
  border: 1px solid var(--marvis-line);
  border-radius: var(--r-lg);
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.usp:hover { transform: translateY(-4px); box-shadow: var(--shadow-hover); border-color: var(--accent-mute); }
.usp__glyph {
  width: 44px; height: 44px;
  display: inline-flex; align-items: center; justify-content: center;
  background: var(--accent-tint); color: var(--accent);
  border-radius: 10px;
  font-size: 22px;
}
.usp__h { font-size: 1.25rem; font-weight: 600; line-height: 1.25; color: var(--marvis-deep); }
.usp__quote {
  font-family: var(--font-serif); font-style: italic; font-weight: 500;
  font-size: 1.0625rem; line-height: 1.4; color: var(--marvis-mid);
  padding: 12px 0 12px 16px;
  border-left: 2px solid var(--marvis-line);
}
.usp__body { color: var(--marvis-mid); font-size: 0.9375rem; line-height: 1.55; }
.usp__cta { margin-top: auto; font-family: var(--font-mono); font-size: 13px; font-weight: 500; }

/* =============================================================
   ARCHITECTURE (8 domains)
   ============================================================= */
.arch-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
@media (max-width: 1023px) { .arch-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px)  { .arch-grid { grid-template-columns: 1fr; } }

.arch {
  padding: 20px;
  background: var(--paper);
  border: 1px solid var(--marvis-line);
  border-radius: var(--r-card);
  display: flex; flex-direction: column; gap: 12px;
  transition: border-color .15s ease, transform .15s ease;
}
.arch:hover { border-color: var(--accent-mute); transform: translateY(-2px); }
.arch__head {
  display: flex; align-items: baseline; gap: 8px;
  padding-bottom: 12px;
  border-bottom: 1px dashed var(--marvis-line);
}
.arch__id   { font-family: var(--font-mono); font-size: 12px; font-weight: 600; color: var(--accent); letter-spacing: 0.04em; }
.arch__name { font-family: var(--font-display); font-size: 14px; font-weight: 600; color: var(--marvis-deep); letter-spacing: 0.02em; text-transform: uppercase; }
.arch__list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 6px; }
.arch__list li {
  display: flex; align-items: baseline; gap: 8px;
  font-size: 13px; color: var(--marvis-mid); line-height: 1.4;
  flex-wrap: wrap;
}
.arch__list li::before { content: "·"; color: var(--accent); font-weight: 700; flex: 0 0 auto; }
.arch__list li code {
  font-family: var(--font-mono); font-size: 11px;
  color: var(--accent); background: var(--accent-tint);
  padding: 1px 6px; border-radius: 4px;
  white-space: nowrap;
}

/* =============================================================
   PRICING
   ============================================================= */
.price-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; max-width: 880px; margin: 0 auto; }
@media (max-width: 768px) { .price-grid { grid-template-columns: 1fr; } }

.price {
  padding: 36px;
  background: var(--paper);
  border: 1px solid var(--marvis-line);
  border-radius: var(--r-lg);
  display: flex; flex-direction: column; gap: 20px;
}
.price--dark {
  background: linear-gradient(180deg, var(--marvis-deep) 0%, var(--marvis-base) 100%);
  color: var(--cream);
  border-color: var(--marvis-base);
  box-shadow: var(--shadow-deep);
  position: relative;
}
.price--dark::before {
  content: ""; position: absolute; inset: 0; border-radius: var(--r-lg);
  pointer-events: none; padding: 1px;
  background: linear-gradient(180deg, rgba(165,180,252,0.4), transparent);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor; mask-composite: exclude;
}
.price__tier {
  font-family: var(--font-mono); font-size: 11px; font-weight: 600;
  letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--marvis-mute);
}
.price--dark .price__tier { color: var(--accent-mute); }
.price__name { font-family: var(--font-display); font-size: 1.5rem; font-weight: 600; }
.price--dark .price__name { color: var(--cream); }
.price__amount { display: flex; align-items: baseline; gap: 10px; }
.price__amount__big { font-family: var(--font-display); font-size: 3rem; font-weight: 700; letter-spacing: -0.02em; line-height: 1; }
.price--dark .price__amount__big { color: var(--cream); }
.price__amount__sub { font-size: 14px; color: var(--marvis-mute); }
.price--dark .price__amount__sub { color: rgba(245, 240, 232, 0.7); }
.price__desc { font-size: 14px; color: var(--marvis-mid); }
.price--dark .price__desc { color: rgba(245, 240, 232, 0.7); }
.price__hr { border: 0; border-top: 1px solid var(--marvis-line); margin: 4px 0; }
.price--dark .price__hr { border-top-color: rgba(255,255,255,0.08); }
.price__features { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 10px; }
.price__features li { display: flex; align-items: baseline; gap: 10px; font-size: 14px; line-height: 1.45; color: var(--marvis-base); }
.price--dark .price__features li { color: rgba(245, 240, 232, 0.92); }
.price__features li::before {
  content: ""; flex: 0 0 14px; width: 14px; height: 14px;
  background: var(--state-full); border-radius: 50%;
  -webkit-mask: url("data:image/svg+xml,%3Csvg viewBox='0 0 14 14' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3 7l3 3 5-6' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg viewBox='0 0 14 14' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3 7l3 3 5-6' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;
  transform: translateY(2px);
}
.price__note { font-size: 12px; color: var(--marvis-mute); font-family: var(--font-mono); }
.price--dark .price__note { color: rgba(245, 240, 232, 0.55); }
.price__cta { margin-top: 8px; }

/* Comparison table */
.compare-wrap { margin-top: var(--stack-6); }
.compare-toggle {
  display: flex; align-items: center; gap: 12px;
  padding: 16px 0;
  border-top: 1px solid var(--marvis-line);
  border-bottom: 1px solid var(--marvis-line);
  width: 100%; background: transparent; border-left: 0; border-right: 0;
  font-family: var(--font-display); font-weight: 500; font-size: 14px;
  color: var(--marvis-mid); cursor: pointer;
  letter-spacing: 0.01em;
}
.compare-toggle .chev { transition: transform .2s ease; color: var(--marvis-mute); }
.compare-toggle[aria-expanded="true"] .chev { transform: rotate(180deg); }

.compare-table {
  width: 100%; border-collapse: collapse; margin-top: 24px;
  font-size: 14px;
}
.compare-table thead th {
  text-align: left; padding: 14px 16px;
  background: var(--marvis-deep); color: var(--cream);
  font-family: var(--font-mono); font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase;
}
.compare-table thead th:first-child { border-top-left-radius: 8px; }
.compare-table thead th:last-child  { border-top-right-radius: 8px; }
.compare-table thead th.muted { color: var(--marvis-soft); font-style: italic; font-weight: 500; }
.compare-table tbody td {
  padding: 14px 16px;
  border-bottom: 1px solid var(--marvis-line);
  color: var(--marvis-mid);
  vertical-align: top;
}
.compare-table tbody td:first-child { color: var(--marvis-deep); font-weight: 500; }
.compare-table tbody tr:hover { background: hsl(var(--pir-accent) / 0.04); }
.compare-table tbody td.fase2 { background: rgba(28, 22, 16, 0.025); color: var(--marvis-mute); font-style: italic; }
.compare-table .cap {
  display: inline-flex; align-items: center; gap: 6px;
  font-family: var(--font-mono); font-size: 12px; font-weight: 500;
  padding: 3px 8px; border-radius: 999px;
}
.cap--full   { background: rgba(16,185,129,0.10); color: var(--state-full); }
.cap--part   { background: rgba(245,158,11,0.10); color: var(--state-partial); }
.cap--vis    { background: rgba(139,92,246,0.10); color: var(--state-vision); }
.cap--na     { background: rgba(107,114,128,0.10); color: var(--state-absent); }
.cap--opt    { background: hsl(var(--pir-accent) / 0.10);  color: var(--accent); }
.cap__dot { width: 8px; height: 8px; border-radius: 50%; background: currentColor; }

.compare-legend {
  display: flex; flex-wrap: wrap; gap: 16px;
  margin-top: 20px;
  font-size: 12px; color: var(--marvis-mute);
}
.compare-legend span { display: inline-flex; align-items: center; gap: 6px; }
.compare-legend span::before { content: ""; width: 8px; height: 8px; border-radius: 50%; }
.compare-legend .l-full::before { background: var(--state-full); }
.compare-legend .l-part::before { background: var(--state-partial); }
.compare-legend .l-vis::before  { background: var(--state-vision); }
.compare-legend .l-na::before   { background: var(--state-absent); }

@media (max-width: 768px) {
  .compare-table { font-size: 13px; }
  .compare-table thead th, .compare-table tbody td { padding: 10px 10px; }
}

/* =============================================================
   DEMO (video block + bullets)
   ============================================================= */
.demo-card {
  position: relative;
  aspect-ratio: 16/9; max-width: 960px; margin: 0 auto;
  border-radius: var(--r-lg); overflow: hidden;
  background: linear-gradient(135deg, var(--marvis-deep), var(--marvis-base));
  border: 1px solid var(--marvis-line);
  display: flex; align-items: center; justify-content: center;
  box-shadow: var(--shadow-deep);
}
.demo-card::before {
  content: ""; position: absolute; inset: 0;
  background: radial-gradient(circle at 30% 20%, hsl(var(--pir-accent) / 0.28), transparent 50%),
              radial-gradient(circle at 70% 80%, hsl(var(--pir-secondary-bright) / 0.20), transparent 50%);
  pointer-events: none;
}
.demo-card__play {
  position: relative;
  width: 76px; height: 76px; border-radius: 50%;
  background: var(--accent); color: white;
  display: flex; align-items: center; justify-content: center;
  cursor: pointer;
  transition: transform .2s ease, box-shadow .2s ease;
  box-shadow: 0 0 0 0 hsl(var(--pir-accent) / 0.4);
  animation: pulse 2.4s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}
.demo-card__play:hover { transform: scale(1.05); }
@keyframes pulse {
  0%, 100% { box-shadow: 0 0 0 0 hsl(var(--pir-accent) / 0.4); }
  70% { box-shadow: 0 0 0 24px hsl(var(--pir-accent) / 0); }
}
.demo-card__label {
  position: absolute; bottom: 20px; left: 20px;
  font-family: var(--font-mono); font-size: 11px; color: rgba(245, 240, 232, 0.6);
  letter-spacing: 0.08em; text-transform: uppercase;
}
.demo-card__topright {
  position: absolute; top: 20px; right: 20px;
  display: flex; gap: 6px;
}
.demo-card__topright span { width: 10px; height: 10px; border-radius: 50%; background: rgba(245, 240, 232, 0.18); }

.demo-bullets {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px;
  margin-top: var(--stack-5);
}
@media (max-width: 768px) { .demo-bullets { grid-template-columns: 1fr; } }
.demo-bullet { display: flex; flex-direction: column; gap: 6px; padding-left: 16px; border-left: 2px solid var(--marvis-line); }
.demo-bullet strong { font-family: var(--font-mono); font-size: 12px; font-weight: 600; color: var(--accent); letter-spacing: 0.06em; text-transform: uppercase; }
.demo-bullet span { font-size: 14px; color: var(--marvis-mid); line-height: 1.5; }

.codeline {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 8px 14px;
  background: var(--marvis-deep); color: var(--cream);
  border-radius: 999px;
  font-family: var(--font-mono); font-size: 13px;
}
.codeline .copy {
  display: inline-flex; align-items: center; justify-content: center;
  width: 24px; height: 24px; border-radius: 6px;
  background: rgba(255,255,255,0.1); color: rgba(255,255,255,0.7);
  cursor: pointer; border: 0;
}
.codeline .copy:hover { background: rgba(255,255,255,0.2); color: white; }
.codeline .copy.is-copied { color: var(--state-full); }
.codeline .prompt { color: var(--accent-mute); }

/* =============================================================
   BLOG CARDS
   ============================================================= */
.blog-featured {
  background: var(--marvis-deep); color: var(--cream);
  border-radius: var(--r-lg);
  padding: clamp(28px, 4vw, 48px);
  display: flex; flex-direction: column; gap: 16px;
  position: relative; overflow: hidden;
  border: 1px solid rgba(255,255,255,0.06);
}
.blog-featured::after {
  content: ""; position: absolute; right: -120px; top: -120px;
  width: 360px; height: 360px;
  background: radial-gradient(circle, hsl(var(--pir-accent) / 0.45), transparent 60%);
  pointer-events: none;
}
.blog-featured .badge {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 4px 12px; background: var(--accent); color: white;
  border-radius: 999px;
  font-family: var(--font-mono); font-size: 11px; font-weight: 600;
  letter-spacing: 0.06em; text-transform: uppercase;
  align-self: flex-start;
}
.blog-featured .meta {
  font-family: var(--font-mono); font-size: 12px; color: rgba(245, 240, 232, 0.6);
  letter-spacing: 0.04em;
}
.blog-featured h3 {
  font-size: clamp(1.5rem, 2.6vw, 2rem);
  color: var(--cream); font-weight: 600; line-height: 1.2;
  max-width: 720px;
}
.blog-featured .footer { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 16px; margin-top: 8px; position: relative; z-index: 1; }
.blog-featured .footer .read { color: var(--accent-mute); font-family: var(--font-mono); font-size: 13px; }

.blog-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-top: 20px; }
@media (max-width: 768px) { .blog-grid { grid-template-columns: 1fr; } }
.blog-card {
  padding: var(--card-pad);
  background: var(--paper);
  border: 1px solid var(--marvis-line);
  border-radius: var(--r-card);
  display: flex; flex-direction: column; gap: 12px;
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
  text-decoration: none; color: inherit;
}
.blog-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-hover); border-color: var(--accent-mute); text-decoration: none; }
.blog-card .meta { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--accent); }
.blog-card h4 { font-size: 1.125rem; line-height: 1.3; color: var(--marvis-deep); font-weight: 600; }
.blog-card p { font-size: 14px; color: var(--marvis-mute); line-height: 1.5; }
.blog-card .read { margin-top: auto; font-family: var(--font-mono); font-size: 12px; color: var(--accent); }

/* =============================================================
   ABOUT (quote-style)
   ============================================================= */
.about-card {
  background: var(--cream-warm);
  border: 1px solid var(--marvis-line);
  border-left: 4px solid var(--accent-mute);
  border-radius: var(--r-lg);
  padding: clamp(28px, 4vw, 48px);
  max-width: 760px; margin: 0 auto;
  font-size: clamp(1rem, 1.3vw, 1.125rem); line-height: 1.7;
  color: var(--marvis-mid);
}
.about-card p + p { margin-top: 16px; }
.about-card .sig {
  margin-top: 24px;
  font-family: var(--font-serif); font-style: italic; font-weight: 500;
  color: var(--marvis-deep); text-align: right;
  font-size: 1.0625rem;
}

/* =============================================================
   FOOTER
   ============================================================= */
.site-footer { background: var(--marvis-deep); color: rgba(245, 240, 232, 0.75); padding-top: 80px; padding-bottom: 32px; margin-top: 80px; }
.site-footer h5 { font-family: var(--font-mono); font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--accent-mute); margin-bottom: 16px; }
.footer-grid { display: grid; grid-template-columns: 1.2fr 1fr 1fr 1fr 1fr; gap: 32px; padding-bottom: 56px; }
@media (max-width: 1023px) { .footer-grid { grid-template-columns: 1fr 1fr; gap: 32px 24px; } }
@media (max-width: 480px)  { .footer-grid { grid-template-columns: 1fr; } }
.footer-col ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 10px; }
.footer-col a { color: rgba(245, 240, 232, 0.7); font-size: 14px; }
.footer-col a:hover { color: var(--cream); text-decoration: underline; text-underline-offset: 3px; }
.footer-col.brand p { font-size: 13px; color: rgba(245, 240, 232, 0.55); margin-top: 12px; max-width: 240px; line-height: 1.5; }
.footer-col.brand .site-header__brand { color: var(--cream); }
.footer-col.brand .site-header__brand .word { color: var(--cream); }

.site-footer__contact {
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: var(--r-lg);
  padding: clamp(28px, 4vw, 40px);
  margin-bottom: 40px;
}
.site-footer__contact h3 { color: var(--cream); font-size: 1.5rem; margin-bottom: 8px; }
.site-footer__contact p.lede { color: rgba(245, 240, 232, 0.7); margin-bottom: 24px; }

.form-row { display: flex; flex-direction: column; gap: 6px; margin-bottom: 16px; }
.form-row label { font-family: var(--font-mono); font-size: 11px; font-weight: 500; letter-spacing: 0.08em; text-transform: uppercase; color: rgba(245, 240, 232, 0.55); }
.form-row label .req { color: var(--accent-mute); }
.form-row input,
.form-row textarea,
.form-row select {
  background: rgba(28, 22, 16, 0.6);
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: var(--r-input);
  padding: 12px 14px;
  color: var(--cream);
  font: 14px var(--font-body);
  width: 100%;
  transition: border-color .15s ease, background-color .15s ease;
}
.form-row textarea { resize: vertical; min-height: 100px; line-height: 1.5; }
.form-row input::placeholder, .form-row textarea::placeholder { color: rgba(245, 240, 232, 0.35); }
.form-row input:focus, .form-row textarea:focus, .form-row select:focus {
  outline: none; border-color: var(--accent);
  background: rgba(28, 22, 16, 0.8);
}
.form-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
@media (max-width: 600px) { .form-cols { grid-template-columns: 1fr; } }

.radio-group { display: flex; gap: 8px; flex-wrap: wrap; }
.radio-pill {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 8px 16px;
  position: relative;
  background: rgba(28, 22, 16, 0.6);
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: var(--r-pill);
  font-size: 13px; color: rgba(245, 240, 232, 0.8); cursor: pointer;
  transition: all .15s ease;
}
.radio-pill input { position: absolute; opacity: 0; pointer-events: none; width: 0; height: 0; inset: 0; }
.radio-pill:hover { border-color: rgba(255,255,255,0.25); }
.radio-pill:has(input:checked) { background: var(--accent); color: white; border-color: var(--accent); }
.radio-pill__dot { width: 14px; height: 14px; border-radius: 50%; border: 2px solid rgba(245, 240, 232, 0.4); transition: all .15s ease; }
.radio-pill:has(input:checked) .radio-pill__dot { background: white; border-color: white; box-shadow: inset 0 0 0 3px var(--accent); }

.enterprise-fields { display: none; padding-top: 8px; }
.enterprise-fields.is-visible { display: block; animation: fadeIn .2s ease; }
@keyframes fadeIn { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }

.form-status { font-size: 13px; padding: 12px 14px; border-radius: 8px; margin-top: 8px; display: none; }
.form-status.is-success { display: block; background: rgba(16,185,129,0.12); border: 1px solid rgba(16,185,129,0.3); color: #6EE7B7; }
.form-status.is-error   { display: block; background: rgba(220,38,38,0.12); border: 1px solid rgba(220,38,38,0.3); color: #FCA5A5; }

.site-footer__bottom {
  display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap;
  padding-top: 24px;
  border-top: 1px solid rgba(255,255,255,0.08);
  font-size: 13px; color: rgba(245, 240, 232, 0.55);
  font-family: var(--font-mono);
}
.site-footer__bottom .left { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.site-footer__bottom .left .pipe { color: rgba(255,255,255,0.18); }
.site-footer__bottom .left .badge { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.1); border-radius: 999px; }
.socials { display: flex; gap: 8px; }
.socials a {
  display: inline-flex; align-items: center; justify-content: center;
  width: 36px; height: 36px; border-radius: 50%;
  background: rgba(255,255,255,0.06); color: rgba(245, 240, 232, 0.7);
  transition: all .15s ease;
}
.socials a:hover { background: var(--accent); color: white; text-decoration: none; }
.socials svg { width: 16px; height: 16px; }

/* =============================================================
   COOKIE BANNER
   ============================================================= */
.cookie-banner {
  position: fixed; left: 16px; right: 16px; bottom: 16px; z-index: 60;
  background: var(--marvis-deep); color: var(--cream);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: var(--r-lg);
  padding: 20px 24px;
  display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap;
  box-shadow: 0 16px 48px -8px rgba(0,0,0,0.4);
  transform: translateY(120%); opacity: 0;
  transition: transform .35s cubic-bezier(0.2, 0, 0, 1), opacity .35s ease;
  max-width: 880px; margin: 0 auto;
}
.cookie-banner.is-visible { transform: translateY(0); opacity: 1; }
.cookie-banner p { font-size: 13px; color: rgba(245, 240, 232, 0.8); max-width: 540px; line-height: 1.5; }
.cookie-banner p strong { color: var(--cream); font-weight: 600; }
.cookie-banner__actions { display: flex; gap: 8px; flex-wrap: wrap; }
.cookie-banner__actions .btn--outline { color: var(--cream); border-color: rgba(255,255,255,0.25); height: 38px; padding: 0 16px; font-size: 13px; }
.cookie-banner__actions .btn--outline:hover { background: rgba(255,255,255,0.08); color: var(--cream); border-color: rgba(255,255,255,0.4); }
.cookie-banner__actions .btn--primary { height: 38px; padding: 0 16px; font-size: 13px; }
@media (max-width: 600px) {
  .cookie-banner { flex-direction: column; align-items: stretch; padding: 16px; }
  .cookie-banner__actions .btn { flex: 1; justify-content: center; }
}

/* =============================================================
   PAGE-HEADER (standalone pages)
   ============================================================= */
.page-hero {
  padding-top: clamp(48px, 7vw, 80px);
  padding-bottom: clamp(40px, 5vw, 56px);
  border-bottom: 1px solid var(--marvis-line);
}
.page-hero h1 { font-size: clamp(2rem, 4.2vw, 3.5rem); letter-spacing: -0.02em; max-width: 18ch; }
.page-hero p.lede { margin-top: 16px; max-width: 640px; }
.page-hero .crumb {
  font-family: var(--font-mono); font-size: 12px;
  color: var(--marvis-mute); letter-spacing: 0.04em;
  display: inline-flex; align-items: center; gap: 8px;
  margin-bottom: 20px;
}
.page-hero .crumb a { color: var(--marvis-mute); }
.page-hero .crumb a:hover { color: var(--accent); }

/* =============================================================
   TWEAKS PANEL
   ============================================================= */
.tweaks {
  position: fixed; right: 16px; bottom: 16px; z-index: 70;
  width: 296px;
  background: var(--paper);
  border: 1px solid var(--marvis-line);
  border-radius: var(--r-lg);
  box-shadow: 0 24px 48px -8px rgba(28, 22, 16, 0.18);
  display: none; flex-direction: column;
  font-family: var(--font-body);
  overflow: hidden;
}
.tweaks.is-visible { display: flex; }
.tweaks__head {
  display: flex; align-items: center; justify-content: space-between;
  padding: 14px 16px;
  background: var(--marvis-deep); color: var(--cream);
  cursor: grab;
  user-select: none;
}
.tweaks__head:active { cursor: grabbing; }
.tweaks__head h6 { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--cream); margin: 0; font-weight: 600; }
.tweaks__close { width: 24px; height: 24px; border: 0; background: rgba(255,255,255,0.1); color: var(--cream); border-radius: 6px; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; }
.tweaks__close:hover { background: rgba(255,255,255,0.2); }
.tweaks__body { padding: 16px; display: flex; flex-direction: column; gap: 18px; max-height: calc(100vh - 120px); overflow-y: auto; }
.tweak { display: flex; flex-direction: column; gap: 8px; }
.tweak__lbl { font-family: var(--font-mono); font-size: 10px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--marvis-mute); }
.tweak__row { display: grid; gap: 6px; }
.tweak__row--3 { grid-template-columns: 1fr 1fr 1fr; }
.tweak__row--4 { grid-template-columns: 1fr 1fr 1fr 1fr; }
.tweak-opt {
  padding: 8px 10px; border-radius: 8px;
  border: 1px solid var(--marvis-line);
  background: var(--paper); cursor: pointer;
  font-family: var(--font-body); font-size: 12px; color: var(--marvis-mid);
  text-align: center;
  transition: all .15s ease;
}
.tweak-opt:hover { border-color: var(--accent-mute); color: var(--marvis-deep); }
.tweak-opt[aria-pressed="true"] { background: var(--accent); border-color: var(--accent); color: white; }
.tweak-swatch {
  width: 100%; aspect-ratio: 1; border-radius: 8px;
  border: 2px solid transparent;
  cursor: pointer;
  transition: all .15s ease;
  position: relative;
}
.tweak-swatch[aria-pressed="true"] { border-color: var(--marvis-deep); box-shadow: 0 0 0 2px white inset; }

@media (max-width: 768px) {
  .tweaks { right: 8px; bottom: 8px; left: 8px; width: auto; }
  .tweaks__body { max-height: 50vh; }
}
