/* AFyV Legal — v2
   Dark green-black base, light "paper" panels, Newsreader display, Geist UI, Geist Mono labels.
   One accent: mint, used for light, highlights and focus. */

:root {
  --void: #1a4233;
  --deep: #1e4a39;
  --panel: #245542;
  --panel-2: #2c614c;
  --line: rgba(214, 236, 222, 0.12);
  --line-2: rgba(214, 236, 222, 0.22);
  --text: #eaf2ec;
  --text-soft: rgba(234, 242, 236, 0.66);
  --text-dim: rgba(234, 242, 236, 0.42);
  --mint: #9ef0c0;
  --mint-deep: #2f8c5f;

  --paper: #f2efe6;
  --paper-2: #e8e3d6;
  --ink: #0a1a12;
  --ink-soft: #3e4a43;
  --ink-dim: #6f7a73;
  --ink-line: rgba(10, 26, 18, 0.14);
  --ink-line-2: rgba(10, 26, 18, 0.26);

  --ff-serif: "Newsreader", Georgia, "Times New Roman", serif;
  --ff-sans: "Geist", system-ui, -apple-system, "Segoe UI", Arial, sans-serif;
  --ff-mono: "Geist Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;

  --ease-out: cubic-bezier(0.23, 1, 0.32, 1);
  --ease-in-out: cubic-bezier(0.77, 0, 0.175, 1);

  --gutter: clamp(1rem, 4vw, 3.5rem);
  --maxw: 90rem;
  --radius: clamp(1.25rem, 2.4vw, 2.25rem);

  color-scheme: dark;
}

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

html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  background: var(--paper);
}
html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
.lenis.lenis-stopped { overflow: clip; }

body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--ff-sans);
  font-size: 1.0625rem;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: clip;
  -webkit-tap-highlight-color: transparent;
}

img, svg, canvas { display: block; max-width: 100%; }
img { height: auto; }
a { color: inherit; }
p { margin: 0 0 1em; text-wrap: pretty; }
h1, h2, h3, h4 { margin: 0; font-weight: 400; text-wrap: balance; }
button { font: inherit; color: inherit; }

::selection { background: var(--mint); color: var(--ink); }

:focus-visible { outline: 2px solid var(--mint); outline-offset: 3px; }
.light :focus-visible { outline-color: var(--mint-deep); }

/* Film grain over everything */
body::after {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 90;
  pointer-events: none;
  opacity: 0.07;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  mix-blend-mode: overlay;
}

.skip-link {
  position: fixed;
  left: 1rem;
  top: -4rem;
  z-index: 200;
  background: var(--mint);
  color: var(--ink);
  padding: 0.75rem 1rem;
  font-weight: 600;
  text-decoration: none;
}
.skip-link:focus { top: 1rem; }

.visually-hidden {
  position: absolute !important;
  width: 1px; height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}

.wrap { width: min(100% - 2 * var(--gutter), var(--maxw)); margin-inline: auto; }
.wrap--narrow { width: min(100% - 2 * var(--gutter), 48rem); margin-inline: auto; }

/* ───────── Type ───────── */

.mono {
  font-family: var(--ff-mono);
  font-size: 0.75rem;
  line-height: 1.4;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.label {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  font-family: var(--ff-mono);
  font-size: 0.75rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--text-soft);
}
.label::before {
  content: "";
  width: 0.45rem;
  height: 0.45rem;
  border-radius: 50%;
  background: var(--mint);
  box-shadow: 0 0 12px var(--mint);
}
.light .label { color: var(--ink-soft); }
.light .label::before { background: var(--mint-deep); box-shadow: none; }

.display {
  font-family: var(--ff-serif);
  font-size: clamp(3rem, 8.6vw, 9rem);
  line-height: 0.92;
  letter-spacing: -0.04em;
  font-optical-sizing: auto;
}
.title {
  font-family: var(--ff-serif);
  font-size: clamp(2.4rem, 5.6vw, 5.5rem);
  line-height: 0.96;
  letter-spacing: -0.035em;
}
.title-sm {
  font-family: var(--ff-serif);
  font-size: clamp(1.9rem, 3.4vw, 3rem);
  line-height: 1.02;
  letter-spacing: -0.025em;
}
.hl { color: var(--mint); font-style: italic; }
.light .hl { color: var(--mint-deep); }
.lede {
  font-size: clamp(1.125rem, 1.5vw, 1.3125rem);
  line-height: 1.55;
  color: var(--text-soft);
  max-width: 42rem;
}
.light .lede { color: var(--ink-soft); }

/* Masked line reveal produced by SplitText */
.line-mask, .line-mask { overflow: clip; padding: 0.16em 0 0.1em; margin: -0.16em 0 -0.1em; }

/* ───────── Buttons & links ───────── */

.btn {
  --bg: var(--text);
  --fg: var(--ink);
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  min-height: 3.25rem;
  padding: 0 1.6rem;
  border: 0;
  border-radius: 999px;
  background: var(--bg);
  color: var(--fg);
  font: 500 0.9375rem/1 var(--ff-sans);
  text-decoration: none;
  cursor: pointer;
  overflow: hidden;
  isolation: isolate;
  touch-action: manipulation;
  transition: transform 160ms var(--ease-out);
}
.btn::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: var(--mint);
  border-radius: inherit;
  transform: translateY(101%);
  transition: transform 420ms var(--ease-out);
}
.btn:active { transform: scale(0.97); }
.btn__icon {
  display: grid;
  place-items: center;
  width: 1.6rem;
  height: 1.6rem;
  margin-right: -0.7rem;
  border-radius: 50%;
  background: var(--fg);
  color: var(--bg);
  transition: transform 300ms var(--ease-out);
}
.btn__icon svg { width: 0.75rem; height: 0.75rem; }
.btn--dark { --bg: var(--ink); --fg: var(--paper); }
.btn--mint { --bg: var(--mint); --fg: var(--ink); }
.btn--mint::before { background: var(--text); }
.btn--ghost { --bg: transparent; --fg: var(--text); box-shadow: inset 0 0 0 1px var(--line-2); }
.btn--ghost .btn__icon { background: var(--text); color: var(--ink); }
@media (hover: hover) and (pointer: fine) {
  .btn:hover::before { transform: none; }
  .btn:hover { color: var(--ink); }
  .btn:hover .btn__icon { transform: rotate(-45deg); background: var(--ink); color: var(--mint); }
  .btn--mint:hover .btn__icon { color: var(--text); }
}

.paren {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-family: var(--ff-mono);
  font-size: 0.8125rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  text-decoration: none;
  color: inherit;
  padding-block: 0.5rem;
}
.paren::before { content: "("; transition: transform 300ms var(--ease-out); }
.paren::after { content: ")"; transition: transform 300ms var(--ease-out); }
@media (hover: hover) and (pointer: fine) {
  .paren:hover::before { transform: translateX(-4px); }
  .paren:hover::after { transform: translateX(4px); }
  .paren:hover { color: var(--mint); }
  .light .paren:hover { color: var(--mint-deep); }
}

/* ───────── Navigation ───────── */

.nav {
  position: fixed;
  top: 0.9rem;
  left: 0;
  right: 0;
  z-index: 80;
  pointer-events: none;
  transition: transform 500ms var(--ease-out);
}
.nav.is-hidden { transform: translateY(-140%); }
.nav__inner {
  width: min(100% - 2 * clamp(0.75rem, 2vw, 1.5rem), 92rem);
  margin-inline: auto;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 1rem;
}
.nav__inner > * { pointer-events: auto; }
.nav__brand {
  justify-self: start;
  font-family: var(--ff-serif);
  font-size: 1.75rem;
  line-height: 1;
  letter-spacing: -0.02em;
  text-decoration: none;
  padding: 0.5rem 0.25rem;
  mix-blend-mode: difference;
  color: #fff;
}
.nav__pill {
  display: flex;
  align-items: center;
  gap: 0.25rem;
  margin: 0;
  padding: 0.35rem;
  list-style: none;
  border-radius: 999px;
  background: rgba(7, 28, 19, 0.62);
  -webkit-backdrop-filter: blur(16px) saturate(140%);
  backdrop-filter: blur(16px) saturate(140%);
  box-shadow: inset 0 0 0 1px var(--line);
}
.nav__link {
  position: relative;
  display: block;
  padding: 0.55rem 1rem;
  border-radius: 999px;
  font-size: 0.9375rem;
  font-weight: 500;
  color: var(--text-soft);
  text-decoration: none;
  transition: color 200ms ease, background-color 200ms ease;
}
.nav__link[aria-current="page"] { color: var(--ink); background: var(--text); }
@media (hover: hover) and (pointer: fine) {
  .nav__link:not([aria-current="page"]):hover { color: var(--text); background: rgba(234, 242, 236, 0.08); }
}
.nav__cta { justify-self: end; }
.nav__cta .btn { min-height: 2.85rem; }

.menu-btn {
  display: none;
  justify-self: end;
  align-items: center;
  gap: 0.6rem;
  min-height: 2.85rem;
  padding: 0 1.1rem;
  border: 0;
  border-radius: 999px;
  background: rgba(7, 28, 19, 0.7);
  -webkit-backdrop-filter: blur(16px);
  backdrop-filter: blur(16px);
  box-shadow: inset 0 0 0 1px var(--line);
  color: var(--text);
  font-weight: 500;
  cursor: pointer;
  touch-action: manipulation;
}
.menu-btn__icon { position: relative; width: 18px; height: 10px; }
.menu-btn__icon::before, .menu-btn__icon::after {
  content: ""; position: absolute; left: 0; right: 0; height: 1.5px; background: currentColor;
  transition: transform 300ms var(--ease-out);
}
.menu-btn__icon::before { top: 0; }
.menu-btn__icon::after { bottom: 0; }
.menu-open .menu-btn__icon::before { transform: translateY(4.25px) rotate(45deg); }
.menu-open .menu-btn__icon::after { transform: translateY(-4.25px) rotate(-45deg); }

.sheet {
  position: fixed;
  inset: 0;
  z-index: 70;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  gap: 2rem;
  padding: 6rem var(--gutter) calc(2rem + env(safe-area-inset-bottom));
  background: var(--deep);
  overscroll-behavior: contain;
  clip-path: inset(0 0 100% 0);
  visibility: hidden;
  transition: clip-path 600ms var(--ease-in-out), visibility 0s linear 600ms;
}
.menu-open .sheet { clip-path: inset(0); visibility: visible; transition: clip-path 600ms var(--ease-in-out), visibility 0s; }
.sheet__list { list-style: none; margin: 0; padding: 0; }
.sheet__list a {
  display: flex;
  align-items: baseline;
  gap: 1rem;
  padding: 0.5rem 0;
  font-family: var(--ff-serif);
  font-size: clamp(2.6rem, 11vw, 4rem);
  line-height: 1;
  letter-spacing: -0.03em;
  text-decoration: none;
}
.sheet__list a span { font-family: var(--ff-mono); font-size: 0.75rem; letter-spacing: 0.08em; color: var(--text-dim); }
.sheet__list a[aria-current="page"] { color: var(--mint); }
.sheet__foot { display: flex; flex-wrap: wrap; gap: 1rem 2rem; justify-content: space-between; align-items: center; color: var(--text-soft); }

@media (max-width: 62em) {
  .nav__pill, .nav__cta, .nav__inner > nav { display: none; }
  .menu-btn { display: inline-flex; }
  .nav__inner { grid-template-columns: 1fr auto; }
}
@media (min-width: 62.0625em) { .sheet { display: none; } }

/* ───────── Cursor (fine pointers only) ───────── */

.cursor {
  position: fixed;
  top: 0; left: 0;
  z-index: 150;
  width: 2.25rem;
  height: 2.25rem;
  margin: -1.125rem 0 0 -1.125rem;
  border-radius: 50%;
  border: 1px solid #fff;
  pointer-events: none;
  opacity: 0;
  mix-blend-mode: difference;
  transition: width 300ms var(--ease-out), height 300ms var(--ease-out), margin 300ms var(--ease-out), opacity 300ms ease, background-color 300ms ease;
}
.cursor.is-on { opacity: 1; }
.cursor.is-hover { width: 4.5rem; height: 4.5rem; margin: -2.25rem 0 0 -2.25rem; background: #fff; }
@media (hover: none), (pointer: coarse) { .cursor { display: none; } }

/* ───────── Page curtain ───────── */

.curtain {
  position: fixed;
  inset: 0;
  z-index: 160;
  display: grid;
  place-items: center;
  background: var(--deep);
  pointer-events: none;
  clip-path: inset(100% 0 0 0);
}
.curtain__mark { font-family: var(--ff-serif); font-size: clamp(3rem, 10vw, 7rem); letter-spacing: -0.03em; color: var(--text); }
.curtain__count { position: absolute; left: var(--gutter); bottom: 1.5rem; color: var(--text-soft); }
.curtain__tag { position: absolute; right: var(--gutter); bottom: 1.5rem; color: var(--text-soft); }
html.is-loading .curtain { clip-path: inset(0); }

main { display: block; }

/* ───────── Hero ───────── */

.hero {
  position: relative;
  min-height: 100svh;
  display: grid;
  grid-template-rows: 1fr auto;
  overflow: clip;
  isolation: isolate;
  background:
    radial-gradient(60% 80% at 78% -10%, rgba(158, 240, 192, 0.22), transparent 60%),
    radial-gradient(80% 60% at 10% 110%, rgba(47, 140, 95, 0.25), transparent 70%),
    var(--void);
}
.hero__gl { position: absolute; inset: 0; z-index: -1; width: 100%; height: 100%; }
.hero__gl canvas { width: 100%; height: 100%; }
.hero__inner {
  align-self: end;
  padding-top: 8rem;
  padding-bottom: clamp(2rem, 5vw, 4rem);
}
.hero__top { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1rem; margin-bottom: clamp(1.5rem, 4vw, 3rem); }
.hero__title { max-width: 12ch; }
.hero__row {
  display: grid;
  gap: 2rem;
  margin-top: clamp(2rem, 4vw, 3rem);
  align-items: end;
}
@media (min-width: 60em) { .hero__row { grid-template-columns: 1fr auto; } }
.hero__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.5rem; }
.hero__foot {
  border-top: 1px solid var(--line);
  padding-block: 1.1rem;
}
.hero__foot .wrap { display: flex; justify-content: space-between; gap: 1rem 2rem; flex-wrap: wrap; align-items: center; }
.ticker { display: flex; flex-wrap: wrap; gap: 0.25rem 0; font-family: var(--ff-serif); font-size: clamp(1rem, 1.4vw, 1.25rem); color: var(--text-soft); }
.ticker span + span::before { content: "•"; margin-inline: 0.75rem; color: var(--mint); font-size: 0.8em; }
.scroll-cue { display: inline-flex; align-items: center; gap: 0.75rem; color: var(--text-soft); }
.scroll-cue__bar { position: relative; width: 1px; height: 2.25rem; background: var(--line-2); overflow: hidden; }
.scroll-cue__bar::after {
  content: ""; position: absolute; left: 0; top: 0; width: 1px; height: 40%; background: var(--mint);
  animation: cue 1.8s var(--ease-in-out) infinite;
}
@keyframes cue { from { transform: translateY(-100%); } to { transform: translateY(260%); } }

/* Interior hero */
.page-hero {
  position: relative;
  overflow: clip;
  isolation: isolate;
  padding: clamp(9rem, 18vw, 13rem) 0 clamp(4rem, 8vw, 7rem);
  background:
    radial-gradient(55% 90% at 85% -20%, rgba(158, 240, 192, 0.18), transparent 60%),
    var(--void);
}
.page-hero .hero__gl { opacity: 0.85; }
.page-hero__grid { display: grid; gap: 2rem; align-items: end; }
@media (min-width: 60em) { .page-hero__grid { grid-template-columns: 1.3fr 0.7fr; gap: 4rem; } }
.page-hero .label { margin-bottom: 1.75rem; }
.page-hero .lede { margin: 0; }

/* ───────── Sections ───────── */

.section { position: relative; padding-block: clamp(5rem, 11vw, 10rem); }
.section-head { display: grid; gap: 1.5rem; margin-bottom: clamp(3rem, 6vw, 5rem); }
@media (min-width: 60em) { .section-head--split { grid-template-columns: 1fr auto; align-items: end; gap: 3rem; } }
.section-head .lede { margin: 0; }

/* Light panel that slides over the dark page */
.light {
  position: relative;
  z-index: 2;
  background: var(--paper);
  color: var(--ink);
  border-radius: var(--radius) var(--radius) 0 0;
  margin-top: calc(-1 * var(--radius));
  color-scheme: light;
}
.light + .dark-after { margin-top: 0; }
.radius-bottom { border-radius: var(--radius); }

/* Manifesto (scroll-scrubbed words) */
.manifesto { padding-block: clamp(6rem, 14vw, 12rem); }
.manifesto__grid { display: grid; gap: 2rem; }
@media (min-width: 60em) { .manifesto__grid { grid-template-columns: 16rem 1fr; gap: 3rem; } }
.manifesto__text {
  font-family: var(--ff-serif);
  font-size: clamp(1.75rem, 3.5vw, 3.4rem);
  line-height: 1.12;
  letter-spacing: -0.02em;
  margin: 0 0 2.5rem;
}
.js .manifesto__text .word { opacity: 0.16; }

/* Areas list */
.areas { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--ink-line-2); }
.area {
  position: relative;
  text-decoration: none;
  color: inherit;
  display: grid;
  grid-template-columns: 4rem 1fr auto;
  align-items: center;
  gap: 1rem;
  padding: clamp(1.25rem, 2.6vw, 2rem) 0;
  border-bottom: 1px solid var(--ink-line-2);
  isolation: isolate;
}
.area::before {
  content: "";
  position: absolute;
  inset: 0 calc(-1 * var(--gutter));
  z-index: -1;
  background: var(--ink);
  clip-path: inset(100% 0 0 0);
  transition: clip-path 560ms var(--ease-in-out);
}
.area__num { font-family: var(--ff-mono); font-size: 0.75rem; letter-spacing: 0.08em; color: var(--ink-dim); transition: color 300ms ease; }
.area__name {
  font-family: var(--ff-serif);
  font-size: clamp(2.3rem, 7vw, 6.5rem);
  line-height: 0.95;
  letter-spacing: -0.04em;
  transition: color 300ms ease, transform 560ms var(--ease-out);
}
.area__arrow {
  width: clamp(2.5rem, 4vw, 3.5rem);
  height: clamp(2.5rem, 4vw, 3.5rem);
  border-radius: 50%;
  display: grid;
  place-items: center;
  box-shadow: inset 0 0 0 1px var(--ink-line-2);
  transition: transform 560ms var(--ease-out), background-color 300ms ease, color 300ms ease;
}
.area__arrow svg { width: 40%; height: 40%; }
@media (hover: hover) and (pointer: fine) {
  .area:hover::before { clip-path: inset(0); }
  .area:hover .area__name { color: var(--paper); transform: translateX(1rem); }
  .area:hover .area__num { color: var(--mint); }
  .area:hover .area__arrow { background: var(--mint); color: var(--ink); transform: rotate(-45deg); box-shadow: none; }
}

/* Stacked service cards */
.stack { display: grid; gap: clamp(1rem, 2vw, 1.5rem); }
.stack-card {
  position: sticky;
  top: calc(5.5rem + var(--n, 0) * 1.25rem);
  display: grid;
  min-height: min(78svh, 46rem);
  border-radius: var(--radius);
  overflow: hidden;
  transform-origin: 50% 0;
}
@media (min-width: 60em) { .stack-card { grid-template-columns: 1fr 1fr; } }
.stack-card--green { background: var(--panel); color: var(--text); }
.stack-card--paper { background: var(--paper-2); color: var(--ink); }
.stack-card--ink { background: #050d09; color: var(--text); box-shadow: inset 0 0 0 1px var(--line); }
.stack-card__body {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 2rem;
  padding: clamp(1.75rem, 3.5vw, 3.5rem);
}
.stack-card__title { font-family: var(--ff-serif); font-size: clamp(2.4rem, 5vw, 4.75rem); line-height: 0.95; letter-spacing: -0.035em; margin: 1.5rem 0 1.25rem; }
.stack-card__text { max-width: 30rem; font-size: 1.125rem; line-height: 1.6; opacity: 0.78; margin: 0; }
.stack-card__art { position: relative; min-height: 18rem; overflow: hidden; }
.stack-card__art svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.stack-card--paper .stack-card__art { background: radial-gradient(70% 70% at 60% 40%, rgba(47, 140, 95, 0.18), transparent 70%), var(--paper); }
.stack-card--green .stack-card__art { background: radial-gradient(70% 70% at 40% 30%, rgba(158, 240, 192, 0.22), transparent 70%), var(--deep); }
.stack-card--ink .stack-card__art { background: radial-gradient(60% 70% at 50% 50%, rgba(158, 240, 192, 0.16), transparent 70%), #020805; }
.art-line { fill: none; stroke: currentColor; stroke-width: 1.2; vector-effect: non-scaling-stroke; }
.art-glow { fill: var(--mint); filter: drop-shadow(0 0 6px var(--mint)); }
.stack-card--paper .art-glow { fill: var(--mint-deep); filter: none; }
.orbit { transform-origin: 300px 300px; animation: spin 60s linear infinite; }
.orbit--rev { animation-direction: reverse; animation-duration: 90s; }
@keyframes spin { to { transform: rotate(360deg); } }

/* Horizontal team gallery */
.hscroll { position: relative; overflow: clip; }
.hscroll__track { display: flex; gap: clamp(1rem, 2vw, 1.75rem); padding-inline: var(--gutter); width: max-content; }
.member {
  position: relative;
  width: clamp(16rem, 28vw, 25rem);
  flex-shrink: 0;
  text-decoration: none;
  color: inherit;
}
.member__media {
  position: relative;
  aspect-ratio: 4 / 5;
  border-radius: calc(var(--radius) * 0.7);
  overflow: hidden;
  background: var(--panel);
}
.member__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 18%;
  filter: grayscale(1) contrast(1.08) brightness(0.92);
  transform: scale(1.08);
  transition: filter 600ms ease, transform 900ms var(--ease-out);
}
.member__media::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 50%, rgba(4, 17, 11, 0.75));
  mix-blend-mode: multiply;
}
.member__tag { position: absolute; left: 1rem; top: 1rem; z-index: 1; color: var(--text); }
.member__name { margin: 1.1rem 0 0.2rem; font-family: var(--ff-serif); font-size: clamp(1.5rem, 2.2vw, 2rem); line-height: 1.1; letter-spacing: -0.02em; }
.member__role { margin: 0; color: var(--text-soft); font-size: 0.9375rem; }
@media (hover: hover) and (pointer: fine) {
  .member:hover .member__media img { filter: grayscale(0) contrast(1) brightness(1); transform: scale(1.02); }
}
.hscroll__intro { width: clamp(18rem, 30vw, 28rem); flex-shrink: 0; display: flex; flex-direction: column; justify-content: space-between; gap: 2rem; padding-right: 2rem; }

/* Posts */
.posts { display: grid; gap: clamp(2rem, 3vw, 2.5rem) clamp(1.25rem, 2.5vw, 2rem); }
@media (min-width: 45em) { .posts { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 70em) { .posts--3 { grid-template-columns: repeat(3, 1fr); } }
.post-card { position: relative; display: flex; flex-direction: column; gap: 1rem; }
.post-card__media { position: relative; aspect-ratio: 16 / 10; border-radius: calc(var(--radius) * 0.6); overflow: hidden; background: var(--paper-2); }
.post-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 900ms var(--ease-out); }
.post-card__meta { display: flex; flex-wrap: wrap; gap: 0.25rem 1rem; font-family: var(--ff-mono); font-size: 0.7rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ink-dim); }
.post-card__title { font-family: var(--ff-serif); font-size: clamp(1.5rem, 2.1vw, 2rem); line-height: 1.08; letter-spacing: -0.02em; }
.post-card__title a { text-decoration: none; background: linear-gradient(currentColor, currentColor) 0 100% / 0 1px no-repeat; transition: background-size 500ms var(--ease-out); }
.post-card__title a::after { content: ""; position: absolute; inset: 0; }
.post-card__excerpt { margin: 0; color: var(--ink-soft); display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
@media (hover: hover) and (pointer: fine) {
  .post-card:hover .post-card__media img { transform: scale(1.05); }
  .post-card:hover .post-card__title a { background-size: 100% 1px; }
}

/* ───────── Contact ───────── */

.contact {
  position: relative;
  overflow: clip;
  isolation: isolate;
  padding-block: clamp(6rem, 12vw, 10rem) clamp(4rem, 8vw, 6rem);
  background:
    radial-gradient(50% 70% at 15% 0%, rgba(158, 240, 192, 0.16), transparent 70%),
    var(--void);
}
.contact__title {
  font-family: var(--ff-serif);
  font-size: clamp(3.6rem, 13vw, 13rem);
  line-height: 0.88;
  letter-spacing: -0.05em;
  margin-bottom: clamp(3rem, 6vw, 5rem);
}
.contact__grid { display: grid; gap: clamp(3rem, 6vw, 6rem); }
@media (min-width: 60em) { .contact__grid { grid-template-columns: 0.9fr 1.1fr; } }
.contact__details { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line); }
.contact__details li { display: grid; grid-template-columns: 7rem 1fr; gap: 1rem; align-items: baseline; padding-block: 1.1rem; border-bottom: 1px solid var(--line); }
.contact__details .mono { color: var(--text-dim); }
.contact__details a, .contact__details p { margin: 0; font-family: var(--ff-serif); font-size: clamp(1.3rem, 2vw, 1.75rem); line-height: 1.2; text-decoration: none; overflow-wrap: anywhere; }
@media (hover: hover) and (pointer: fine) { .contact__details a:hover { color: var(--mint); } }
.social { display: flex; gap: 0.6rem; margin-top: 2rem; }
.social a {
  display: grid; place-items: center;
  width: 3rem; height: 3rem; border-radius: 50%;
  box-shadow: inset 0 0 0 1px var(--line-2);
  transition: background-color 250ms ease, color 250ms ease, box-shadow 250ms ease;
}
.social svg { width: 18px; height: 18px; }
@media (hover: hover) and (pointer: fine) { .social a:hover { background: var(--mint); color: var(--ink); box-shadow: none; } }

.form { display: grid; gap: 0.5rem; align-content: start; padding: clamp(1.5rem, 3vw, 2.5rem); border-radius: var(--radius); background: rgba(11, 42, 29, 0.55); box-shadow: inset 0 0 0 1px var(--line); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
.form__row { display: grid; gap: 0.5rem 1.25rem; }
@media (min-width: 37.5em) { .form__row { grid-template-columns: 1fr 1fr; } }
.field { position: relative; display: grid; gap: 0.35rem; padding-top: 0.75rem; }
.field label { font-family: var(--ff-mono); font-size: 0.7rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--text-dim); }
.field input, .field textarea {
  width: 100%;
  min-height: 3rem;
  padding: 0.6rem 0;
  border: 0;
  border-bottom: 1px solid var(--line-2);
  border-radius: 0;
  background: transparent;
  color: var(--text);
  font: 400 1.125rem/1.4 var(--ff-sans);
  transition: border-color 250ms ease;
}
.field textarea { min-height: 7rem; resize: vertical; }
.field input::placeholder, .field textarea::placeholder { color: rgba(234, 242, 236, 0.3); }
.field input:focus-visible, .field textarea:focus-visible { outline: none; border-bottom-color: var(--mint); box-shadow: 0 1px 0 0 var(--mint); }
.field [aria-invalid="true"] { border-bottom-color: #ffb4a2; }
.field__error { margin: 0; min-height: 1.2em; font-size: 0.8125rem; color: #ffb4a2; }
.form__actions { display: flex; flex-wrap: wrap; gap: 1rem 1.5rem; align-items: center; margin-top: 1rem; }
.form__status { margin: 0; font-size: 0.9375rem; color: var(--text-soft); }

/* ───────── Footer ───────── */

.footer { position: relative; overflow: clip; background: var(--void); padding-top: clamp(3rem, 6vw, 5rem); border-top: 1px solid var(--line); }
.footer__grid { display: grid; gap: 2.5rem; }
@media (min-width: 60em) { .footer__grid { grid-template-columns: 1.4fr 1fr 1fr 1fr; } }
.footer__col { display: grid; gap: 0.6rem; align-content: start; }
.footer__col .mono { color: var(--text-dim); margin-bottom: 0.5rem; }
.footer__col a { text-decoration: none; color: var(--text-soft); transition: color 200ms ease; width: fit-content; }
@media (hover: hover) and (pointer: fine) { .footer__col a:hover { color: var(--mint); } }
.footer__clock { font-family: var(--ff-mono); font-size: 0.8125rem; letter-spacing: 0.06em; color: var(--text-soft); font-variant-numeric: tabular-nums; }
.footer__mark {
  display: flex;
  margin: clamp(2rem, 5vw, 4rem) 0 0;
  padding: 0.12em 0 0.22em;
  font-family: var(--ff-serif);
  font-size: min(35vw, 34rem);
  line-height: 0.74;
  letter-spacing: 0.01em;
  color: var(--panel-2);
  overflow: clip;
  user-select: none;
  justify-content: center;
}
.footer__mark span { display: inline-block; }
.footer__legal { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 0.75rem 2rem; padding-block: 1.25rem; border-top: 1px solid var(--line); margin-top: 3rem; color: var(--text-dim); }
.footer__legal a { text-decoration: none; }
.footer__legal nav { display: flex; gap: 1.5rem; flex-wrap: wrap; }

/* ───────── Services page ───────── */

.svc { border-top: 1px solid var(--ink-line-2); }
.svc__item {
  display: grid;
  gap: 1.25rem 3rem;
  padding-block: clamp(2.25rem, 5vw, 4rem);
  border-bottom: 1px solid var(--ink-line-2);
}
@media (min-width: 60em) { .svc__item { grid-template-columns: 6rem minmax(0, 1fr) minmax(0, 1.15fr); } }
.svc__num { font-family: var(--ff-mono); font-size: 0.75rem; letter-spacing: 0.08em; color: var(--ink-dim); padding-top: 0.9rem; }
.svc__title { font-family: var(--ff-serif); font-size: clamp(2.2rem, 4.4vw, 4rem); line-height: 0.95; letter-spacing: -0.035em; }
.svc__text { margin: 0; font-size: 1.125rem; line-height: 1.65; color: var(--ink-soft); }
.svc__text + .paren { margin-top: 1rem; }

/* Method — pinned */
.method { position: relative; }
.method__stage { display: grid; gap: 2rem; align-items: center; min-height: 100svh; padding-block: 6rem 3rem; }
@media (min-width: 60em) { .method__stage { grid-template-columns: 1.1fr 0.9fr; gap: 4rem; } }
.method__fig { position: relative; aspect-ratio: 1; max-width: 34rem; width: 100%; margin-inline: auto; perspective: 1400px; }
.method__plates { position: absolute; inset: 0; transform-style: preserve-3d; transform: rotateX(58deg) rotateZ(-38deg); }
.plate {
  position: absolute;
  inset: 18%;
  border-radius: 1.25rem;
  background: linear-gradient(135deg, rgba(158, 240, 192, 0.08), rgba(158, 240, 192, 0.02));
  box-shadow: inset 0 0 0 1px rgba(158, 240, 192, 0.32);
  transition: background 500ms ease, box-shadow 500ms ease;
}
.plate.is-active { background: linear-gradient(135deg, rgba(158, 240, 192, 0.42), rgba(47, 140, 95, 0.2)); box-shadow: inset 0 0 0 1px var(--mint), 0 0 60px rgba(158, 240, 192, 0.35); }
.plate__grid { position: absolute; inset: 0; border-radius: inherit; background-image: linear-gradient(rgba(158, 240, 192, 0.12) 1px, transparent 1px), linear-gradient(90deg, rgba(158, 240, 192, 0.12) 1px, transparent 1px); background-size: 12.5% 12.5%; }
.method__progress { position: relative; height: 2px; background: var(--line); margin-bottom: 2.5rem; overflow: hidden; border-radius: 2px; }
.method__progress span { position: absolute; inset: 0; background: var(--mint); transform-origin: 0 50%; transform: scaleX(0.333); box-shadow: 0 0 12px var(--mint); }
.method__steps { position: relative; display: grid; }
.method__step { grid-area: 1 / 1; }
.method__step-num { font-family: var(--ff-serif); font-size: clamp(5rem, 12vw, 10rem); line-height: 0.8; letter-spacing: -0.05em; color: var(--mint); margin-bottom: 1.5rem; font-variant-numeric: tabular-nums; }
.method__step-title { font-family: var(--ff-serif); font-size: clamp(2rem, 3.6vw, 3.25rem); line-height: 1; letter-spacing: -0.03em; margin-bottom: 1.25rem; }
.method__step p { color: var(--text-soft); font-size: 1.125rem; max-width: 30rem; }
.no-pin .method__step { grid-area: auto; padding-bottom: 2.5rem; }
.no-pin .method__steps { gap: 1rem; }
.no-pin .method__stage { min-height: 0; }

/* Quotes */
.quotes { display: grid; gap: clamp(1.5rem, 3vw, 2rem); }
@media (min-width: 60em) { .quotes { grid-template-columns: 1fr 1fr; } }
.quote { margin: 0; padding: clamp(1.75rem, 3vw, 3rem); border-radius: var(--radius); background: var(--paper-2); display: flex; flex-direction: column; justify-content: space-between; gap: 2.5rem; }
.quote__mark { font-family: var(--ff-serif); font-size: 5rem; line-height: 0.5; color: var(--mint-deep); height: 2.2rem; }
.quote blockquote { margin: 0; font-family: var(--ff-serif); font-size: clamp(1.5rem, 2.4vw, 2.2rem); line-height: 1.18; letter-spacing: -0.02em; }
.quote figcaption { display: flex; justify-content: space-between; gap: 1rem; align-items: end; border-top: 1px solid var(--ink-line-2); padding-top: 1.25rem; }
.quote figcaption strong { display: block; font-weight: 500; }
.quote figcaption span { color: var(--ink-soft); font-size: 0.9375rem; }

/* Statement band */
.band {
  position: relative;
  overflow: clip;
  isolation: isolate;
  padding-block: clamp(7rem, 15vw, 13rem);
  text-align: center;
  background:
    radial-gradient(40% 80% at 50% 0%, rgba(158, 240, 192, 0.22), transparent 70%),
    var(--deep);
}
.band::before {
  content: "";
  position: absolute;
  inset: -20% 30% 30% 30%;
  z-index: -1;
  background: conic-gradient(from 180deg at 50% 0%, transparent 160deg, rgba(158, 240, 192, 0.18) 180deg, transparent 200deg);
  filter: blur(30px);
}
.band__body { display: grid; justify-items: center; gap: 1.75rem; }
.band__title { max-width: 18ch; }
.band .lede { margin: 0 auto; text-align: center; }

/* Plans */
.plan {
  display: grid;
  gap: 1.5rem clamp(2rem, 5vw, 5rem);
  padding-block: clamp(3rem, 7vw, 6rem);
  border-top: 1px solid var(--ink-line-2);
}
@media (min-width: 60em) { .plan { grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); } .plan__head { position: sticky; top: 7rem; align-self: start; } }
.plan__title { font-family: var(--ff-serif); font-size: clamp(2.6rem, 5vw, 4.75rem); line-height: 0.95; letter-spacing: -0.035em; margin-top: 1.25rem; }
.plan__body { font-size: 1.125rem; line-height: 1.7; color: var(--ink-soft); }
.plan__pull { font-family: var(--ff-serif); font-size: clamp(1.5rem, 2.3vw, 2rem); line-height: 1.2; letter-spacing: -0.015em; color: var(--ink); margin: 2rem 0; padding-left: 1.25rem; border-left: 2px solid var(--mint-deep); }
.plan__links { display: flex; flex-wrap: wrap; gap: 0.5rem 2rem; margin-top: 1.5rem; }

.cards-3 { display: grid; gap: clamp(1rem, 2vw, 1.5rem); }
@media (min-width: 60em) { .cards-3 { grid-template-columns: repeat(3, 1fr); } }
.tile {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 3rem;
  min-height: 24rem;
  padding: clamp(1.5rem, 2.5vw, 2.25rem);
  border-radius: var(--radius);
  background: var(--panel);
  box-shadow: inset 0 0 0 1px var(--line);
  overflow: hidden;
  isolation: isolate;
}
.tile::before {
  content: "";
  position: absolute;
  width: 26rem; height: 26rem;
  left: var(--mx, 50%); top: var(--my, 0%);
  z-index: -1;
  border-radius: 50%;
  background: radial-gradient(closest-side, rgba(158, 240, 192, 0.25), transparent);
  transform: translate(-50%, -50%);
  opacity: 0;
  transition: opacity 400ms ease;
}
@media (hover: hover) and (pointer: fine) { .tile:hover::before { opacity: 1; } }
.tile__title { font-family: var(--ff-serif); font-size: clamp(1.9rem, 2.6vw, 2.4rem); line-height: 1.02; letter-spacing: -0.025em; margin-bottom: 1rem; }
.tile p { margin: 0; color: var(--text-soft); }

/* Reasons */
.reasons { display: grid; gap: 0; }
@media (min-width: 60em) { .reasons { grid-template-columns: 0.8fr 1.2fr; gap: 4rem; } }
.reasons__counter { position: sticky; top: 7rem; align-self: start; display: none; }
@media (min-width: 60em) { .reasons__counter { display: block; } }
.reasons__num { display: flex; font-family: var(--ff-serif); font-size: clamp(8rem, 16vw, 15rem); line-height: 1; letter-spacing: -0.06em; color: var(--mint-deep); overflow: clip; height: 1em; font-variant-numeric: tabular-nums; }
.reasons__num-roll { display: flex; flex-direction: column; transition: transform 700ms var(--ease-in-out); }
.reasons__num-roll span { height: 1em; display: block; }
.reasons__list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--ink-line-2); }
.reason { padding-block: clamp(2.5rem, 6vw, 5rem); border-bottom: 1px solid var(--ink-line-2); }
.reason__idx { display: block; margin-bottom: 1rem; color: var(--ink-dim); }
.reason__title { font-family: var(--ff-serif); font-size: clamp(2rem, 3.4vw, 3rem); line-height: 1; letter-spacing: -0.03em; margin-bottom: 1.25rem; }
.reason__text { margin: 0; font-size: 1.125rem; line-height: 1.7; color: var(--ink-soft); max-width: 38rem; }

/* Team page */
.profile { display: grid; gap: clamp(2rem, 5vw, 5rem); padding-block: clamp(3.5rem, 8vw, 7rem); border-top: 1px solid var(--ink-line-2); }
@media (min-width: 60em) {
  .profile { grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr); }
  .profile:nth-child(even) .profile__media { order: 2; }
  .profile__media { position: sticky; top: 7rem; align-self: start; }
}
.profile__media .member__media { max-width: 30rem; }
.profile__media .member__media::after { display: none; }
.profile__name { font-family: var(--ff-serif); font-size: clamp(2.8rem, 6vw, 5.5rem); line-height: 0.92; letter-spacing: -0.04em; }
.profile__area { margin: 1rem 0 2rem; font-family: var(--ff-mono); font-size: 0.8125rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--mint-deep); }
.profile__bio { max-width: 40rem; font-size: 1.1875rem; line-height: 1.65; color: var(--ink-soft); }
.profile__exp { list-style: none; margin: 2.5rem 0 0; padding: 0; border-top: 1px solid var(--ink-line-2); max-width: 40rem; counter-reset: x; }
.profile__exp li { display: flex; gap: 1.25rem; align-items: baseline; padding: 0.9rem 0; border-bottom: 1px solid var(--ink-line-2); font-family: var(--ff-serif); font-size: 1.5rem; line-height: 1.15; letter-spacing: -0.01em; counter-increment: x; }
.profile__exp li::before { content: counter(x, decimal-leading-zero); font-family: var(--ff-mono); font-size: 0.7rem; letter-spacing: 0.08em; color: var(--ink-dim); }
.profile .member__media img { filter: grayscale(1) contrast(1.05); transform: none; }
@media (hover: hover) and (pointer: fine) { .profile .member__media:hover img { filter: grayscale(0); } }

/* Article */
.progress { position: fixed; left: 0; right: 0; top: 0; z-index: 85; height: 3px; background: transparent; }
.progress span { display: block; height: 100%; background: var(--mint); transform-origin: 0 50%; transform: scaleX(0); box-shadow: 0 0 10px var(--mint); }
.article-head { padding: clamp(9rem, 17vw, 12rem) 0 clamp(3rem, 6vw, 5rem); }
.article-head__title { font-family: var(--ff-serif); font-size: clamp(2.6rem, 6vw, 5.75rem); line-height: 0.95; letter-spacing: -0.04em; max-width: 18ch; margin: 2rem 0 2.5rem; }
.byline { display: flex; align-items: center; gap: 0.9rem; color: var(--text-soft); }
.byline img { width: 2.75rem; height: 2.75rem; border-radius: 50%; filter: grayscale(1); }
.byline strong { color: var(--text); font-weight: 500; }
.article-cover { margin: 0 auto calc(-1 * clamp(4rem, 10vw, 8rem)); position: relative; z-index: 3; }
.article-cover img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-radius: var(--radius); box-shadow: 0 40px 80px -30px rgba(0, 0, 0, 0.6); }
.article-body { padding-top: calc(clamp(4rem, 10vw, 8rem) + clamp(3rem, 6vw, 5rem)); }

.prose { font-size: 1.1875rem; line-height: 1.75; color: var(--ink-soft); }
.prose > * + * { margin-top: 1.1em; }
.prose p { margin: 0; }
.prose h2 { margin-top: 2.4em; font-family: var(--ff-serif); font-size: clamp(1.7rem, 2.8vw, 2.3rem); line-height: 1.1; letter-spacing: -0.02em; color: var(--ink); }
.prose h2.caps { font-family: var(--ff-mono); font-size: 0.875rem; line-height: 1.5; letter-spacing: 0.08em; color: var(--mint-deep); font-weight: 500; }
.prose h2 + * { margin-top: 0.8em; }
.prose ul, .prose ol { padding-left: 1.25em; }
.prose li + li { margin-top: 0.5em; }
.prose li::marker { color: var(--mint-deep); }
.prose a { color: var(--mint-deep); text-underline-offset: 0.15em; overflow-wrap: anywhere; }
.prose strong { color: var(--ink); font-weight: 600; }
.prose .table-wrap { overflow-x: auto; margin-block: 2em; border-radius: 1rem; box-shadow: inset 0 0 0 1px var(--ink-line-2); }
.prose table { border-collapse: collapse; width: 100%; min-width: 36rem; font-size: 1rem; line-height: 1.5; }
.prose td { text-align: left; vertical-align: top; padding: 1rem; border-bottom: 1px solid var(--ink-line); }
.prose tr:first-child td { font-family: var(--ff-mono); font-size: 0.75rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ink); background: var(--paper-2); }
.prose tr:first-child strong { font-weight: 500; }
.prose td p { margin: 0; }
.prose--legal h2 { font-family: var(--ff-mono); font-size: 0.875rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--mint-deep); font-weight: 500; line-height: 1.5; }
.article-foot { margin-top: clamp(3rem, 6vw, 5rem); padding-top: 2rem; border-top: 1px solid var(--ink-line-2); display: flex; flex-wrap: wrap; gap: 1rem; justify-content: space-between; align-items: center; }

.light .post-card__meta { color: var(--ink-dim); }
.on-dark-posts .post-card__meta { color: var(--text-dim); }
.on-dark-posts .post-card__excerpt { color: var(--text-soft); }
.on-dark-posts .post-card__media { background: var(--panel); }

/* ───────── Motion preferences ───────── */

@media (prefers-reduced-motion: reduce) {
  .scroll-cue__bar::after, .orbit { animation: none; }
  .btn::before, .area::before, .member__media img, .post-card__media img, .reasons__num-roll { transition-duration: 0ms; }
  .sheet { transition: opacity 200ms ease, visibility 0s linear 200ms; clip-path: none; opacity: 0; }
  .menu-open .sheet { opacity: 1; transition: opacity 200ms ease, visibility 0s; }
  .js .manifesto__text .word { opacity: 1; }
}

.plate__label { position: absolute; left: 1rem; top: 0.85rem; color: var(--mint); opacity: 0.8; }
.plate.is-active .plate__label { opacity: 1; }

.stack-card--green .label, .stack-card--ink .label { color: var(--text-soft); }
.stack-card--green .label::before, .stack-card--ink .label::before { background: var(--mint); box-shadow: 0 0 12px var(--mint); }
.stack-card--green .paren:hover, .stack-card--ink .paren:hover { color: var(--mint); }

@media (max-width: 59.99em) {
  .stack-card { position: relative; top: auto; min-height: 0; }
  .stack-card__art { min-height: 20rem; }
}
@media (max-width: 37.5em) {
  .ticker { display: none; }
  .hero__foot .wrap { justify-content: flex-end; }
}

/* ───────── Chilean flag ───────── */

.hero__place { display: inline-flex; align-items: center; gap: 0.9rem; color: var(--text-soft); }
.flag-cl {
  display: inline-block;
  flex-shrink: 0;
  width: 3.75rem;
  aspect-ratio: 3 / 2;
  border-radius: 0.35rem;
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.08), 0 10px 28px -8px rgba(0, 57, 166, 0.55), 0 6px 18px -10px rgba(213, 43, 30, 0.6);
  transform: perspective(300px) rotateY(-14deg) rotateZ(-2deg);
  transition: transform 500ms var(--ease-out);
}
.flag-cl svg { width: 100%; height: 100%; display: block; border-radius: inherit; }
.flag-cl--sm { width: 1.6rem; margin-left: 0.35rem; box-shadow: 0 0 0 1px var(--ink-line); transform: none; }
.flag-cl__sheen { animation: flag-sheen 5.5s var(--ease-in-out) 1.6s infinite; }
@keyframes flag-sheen { 0% { transform: rotate(20deg) translateX(0); } 30%, 100% { transform: rotate(20deg) translateX(52px); } }
@media (hover: hover) and (pointer: fine) { .hero__place:hover .flag-cl { transform: perspective(300px) rotateY(0deg) rotateZ(0deg) scale(1.06); } }
@media (max-width: 37.5em) { .flag-cl { width: 2.75rem; } .hero__place { gap: 0.7rem; } }

/* ───────── Chile en cifras ───────── */

.cifras { --c-a: #1f7a4d; --c-b: #3f5bd0; padding-top: clamp(4rem, 8vw, 7rem); }
.cifras .label { flex-wrap: wrap; }

.kpis { display: grid; gap: clamp(1rem, 2vw, 1.5rem); margin-bottom: clamp(1rem, 2vw, 1.5rem); }
@media (min-width: 60em) { .kpis { grid-template-columns: repeat(3, 1fr); } }
.kpi {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  padding: clamp(1.5rem, 2.5vw, 2.25rem);
  border-radius: var(--radius);
  background: var(--paper-2);
}
.kpi__label { margin: 0; font-size: 0.9375rem; color: var(--ink-soft); max-width: 24rem; }
.kpi__value {
  margin: 0.25rem 0;
  font-family: var(--ff-sans);
  font-weight: 600;
  font-size: clamp(3rem, 5.4vw, 5rem);
  line-height: 1;
  letter-spacing: -0.045em;
  color: var(--ink);
}
.kpi__meta { margin: 0; font-size: 0.9375rem; line-height: 1.5; color: var(--ink-soft); }
.kpi__meta strong { color: var(--ink); font-weight: 600; }
.kpi__src { margin: auto 0 0; padding-top: 1rem; border-top: 1px solid var(--ink-line); font-family: var(--ff-mono); font-size: 0.6875rem; line-height: 1.5; letter-spacing: 0.04em; color: var(--ink-dim); }

.meter { position: relative; height: 0.5rem; border-radius: 999px; background: #cfe3d6; overflow: hidden; }
.meter__fill { position: absolute; inset: 0 auto 0 0; border-radius: 999px; background: var(--c-a); transform-origin: 0 50%; }

.charts { display: grid; gap: clamp(1rem, 2vw, 1.5rem); }
@media (min-width: 70em) { .charts { grid-template-columns: 1.15fr 0.85fr; } }
.chart {
  position: relative;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 1.75rem;
  padding: clamp(1.5rem, 2.5vw, 2.25rem);
  border-radius: var(--radius);
  background: var(--paper);
  box-shadow: inset 0 0 0 1px var(--ink-line);
}
.chart__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 0.75rem 1.5rem; }
.chart__title { font-family: var(--ff-sans); font-size: 1.125rem; font-weight: 600; letter-spacing: -0.01em; }
.legend { display: flex; flex-wrap: wrap; gap: 0.5rem 1.25rem; margin: 0; padding: 0; list-style: none; font-size: 0.875rem; color: var(--ink-soft); }
.legend li { display: inline-flex; align-items: center; gap: 0.5rem; }
.legend__key { width: 0.75rem; height: 0.75rem; border-radius: 3px; }
.legend__key--a { background: var(--c-a); }
.legend__key--b { background: var(--c-b); }

.chart__rows { display: grid; gap: 1.1rem; }
.chart__row { display: grid; grid-template-columns: 8.5rem 1fr; gap: 1rem; align-items: center; }
@media (max-width: 37.5em) { .chart__row { grid-template-columns: 1fr; gap: 0.4rem; } }
.chart__label { display: flex; flex-direction: column; font-size: 0.9375rem; font-weight: 500; color: var(--ink); line-height: 1.3; }
.chart__label em { font-style: normal; font-family: var(--ff-mono); font-size: 0.6875rem; letter-spacing: 0.06em; text-transform: uppercase; color: var(--ink-dim); }
.chart__track { display: flex; align-items: center; gap: 0.75rem; min-width: 0; }
.chart__bar { display: flex; gap: 2px; height: 24px; transform-origin: 0 50%; min-width: 0; }
.seg { position: relative; display: flex; align-items: center; min-width: 3px; outline-offset: 2px; transition: filter 160ms ease; cursor: default; }
.seg--a { background: var(--c-a); }
.seg--b { background: var(--c-b); border-radius: 0 4px 4px 0; }
.seg__label { padding-left: 0.6rem; font-size: 0.75rem; font-weight: 600; color: #fff; white-space: nowrap; font-variant-numeric: tabular-nums; }
.seg:hover, .seg:focus-visible { filter: brightness(1.15); }
.chart__total { flex-shrink: 0; font-weight: 600; font-size: 0.9375rem; color: var(--ink); font-variant-numeric: tabular-nums; }
.chart__src { margin-top: auto; padding-top: 1rem; border-top: 1px solid var(--ink-line); font-family: var(--ff-mono); font-size: 0.6875rem; line-height: 1.6; letter-spacing: 0.04em; color: var(--ink-dim); }
.chart__src p { margin: 0 0 0.5rem; }
.chart__src ul { margin: 0; padding: 0; list-style: none; }
.chart__src li span { color: var(--ink-soft); margin-right: 0.35rem; }

.chart__tip {
  position: absolute;
  z-index: 5;
  pointer-events: none;
  display: grid;
  gap: 0.15rem;
  padding: 0.6rem 0.8rem;
  border-radius: 0.6rem;
  background: var(--ink);
  color: var(--paper);
  font-size: 0.8125rem;
  white-space: nowrap;
  box-shadow: 0 10px 30px -10px rgba(0, 0, 0, 0.5);
  transform: translate(-50%, calc(-100% - 10px));
}
.chart__tip[hidden] { display: none; }
.chart__tip strong { font-size: 1rem; font-weight: 600; font-variant-numeric: tabular-nums; }
.chart__tip span { color: rgba(242, 239, 230, 0.7); }

.datatable { margin-top: 1.5rem; }
.datatable summary { cursor: pointer; list-style: none; }
.datatable summary::-webkit-details-marker { display: none; }
.datatable table { width: 100%; margin-top: 1.25rem; border-collapse: collapse; font-size: 0.9375rem; }
.datatable caption { text-align: left; font-weight: 600; margin-bottom: 0.5rem; }
.datatable th, .datatable td { text-align: left; padding: 0.6rem 0.75rem 0.6rem 0; border-bottom: 1px solid var(--ink-line); vertical-align: top; }
.datatable td:nth-child(2), .datatable td:nth-child(3), .datatable td:nth-child(4) { font-variant-numeric: tabular-nums; }
.datatable thead th { font-family: var(--ff-mono); font-size: 0.6875rem; letter-spacing: 0.06em; text-transform: uppercase; color: var(--ink-dim); font-weight: 500; }
@media (max-width: 45em) { .datatable { overflow-x: auto; } .datatable table { min-width: 36rem; } }

@media (prefers-reduced-motion: reduce) { .flag-cl__sheen { animation: none; } .flag-cl { transform: none; } }
@media (forced-colors: active) { .seg, .legend__key, .meter__fill { forced-color-adjust: none; } }

/* ═════════ AFyV 2.0 — legal layer ═════════ */

/* Section labels as "Título" headings */
.label--titulo { gap: 0.55rem; }
.label__t { font-family: var(--ff-serif); font-style: italic; font-size: 1rem; letter-spacing: 0; text-transform: none; color: var(--mint); }
.light .label__t { color: var(--mint-deep); }

/* Figure / source references */
.figref { margin: 1rem 0 0; font-size: 0.6875rem; line-height: 1.5; letter-spacing: 0.06em; color: var(--text-dim); }
.light .figref { color: var(--ink-dim); }

/* Pending data chip (visible until the partners define it) */
.pending {
  display: inline-flex; align-items: baseline; gap: 0.4rem;
  padding: 0.05rem 0.5rem; border-radius: 0.35rem;
  border: 1px dashed currentColor; color: #e7b04f; font-size: 0.92em;
}
.pending em { font-style: normal; font-family: var(--ff-mono); font-size: 0.7em; letter-spacing: 0.06em; text-transform: uppercase; opacity: 0.85; }
.light .pending { color: #9a6413; }

/* Ruled legal paper: margin rule + faint lines */
.doc-paper {
  position: relative;
  background:
    linear-gradient(90deg, transparent calc(3.2rem - 1px), rgba(31, 122, 77, 0.35) calc(3.2rem - 1px), rgba(31, 122, 77, 0.35) 3.2rem, transparent 3.2rem),
    #fbf9f3;
  border-radius: var(--radius);
  box-shadow: 0 1px 0 rgba(10, 26, 18, 0.04), 0 30px 60px -40px rgba(10, 26, 18, 0.35), inset 0 0 0 1px var(--ink-line);
}

/* Notarial seal */
.seal { display: inline-block; width: 7.5rem; aspect-ratio: 1; color: var(--mint); flex-shrink: 0; }
.seal svg { width: 100%; height: 100%; overflow: visible; }
.seal__ring { fill: none; stroke: currentColor; stroke-width: 1; opacity: 0.55; }
.seal__text { transform-origin: 60px 60px; animation: spin 40s linear infinite; }
.seal__text text { font-family: var(--ff-mono); font-size: 7.6px; letter-spacing: 1.6px; fill: currentColor; }
.seal__mark { font-family: var(--ff-serif); font-size: 19px; fill: currentColor; letter-spacing: -0.5px; }

/* Signature */
.sign { width: 100%; max-width: 15rem; height: auto; overflow: visible; }
.sign__path { fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }

/* ───────── Hero v3 ───────── */
.hero--v3 .hero__title { display: grid; gap: 1.1rem; max-width: none; }
.hero__machine {
  display: inline-flex; align-items: center; gap: 0.75rem;
  font-size: clamp(0.95rem, 1.6vw, 1.35rem); letter-spacing: 0.04em; text-transform: none;
  color: var(--mint);
}
.hero__machine::after { content: ""; width: 0.6em; height: 1.1em; background: var(--mint); animation: caret 1s steps(1) infinite; box-shadow: 0 0 10px var(--mint); }
@keyframes caret { 50% { opacity: 0; } }
.hero__human {
  display: block;
  font-family: var(--ff-serif);
  font-size: clamp(2.7rem, 6.6vw, 7rem);
  line-height: 0.95;
  letter-spacing: -0.04em;
  max-width: 15ch;
}
.hero--v3 .hero__row { grid-template-columns: 1fr; align-items: center; }
@media (min-width: 60em) { .hero--v3 .hero__row { grid-template-columns: 1fr auto; } }
.hero__sign { display: flex; align-items: center; gap: 1.25rem; color: var(--text); }
.hero__sign .sign { max-width: 13rem; }
.hero__sign .mono { color: var(--text-dim); max-width: 9rem; }
.hero__sign .seal { width: 5.5rem; color: var(--mint); }
@media (max-width: 37.5em) { .hero__sign .seal { display: none; } .hero__sign .sign { max-width: 10rem; } }

/* AI notice */
.aviso-band { position: relative; z-index: 1; background: var(--void); padding-block: 0 clamp(2rem, 4vw, 3rem); }
.aviso-ia {
  display: grid; gap: 0.75rem 2rem; align-items: center;
  padding: clamp(1.1rem, 2vw, 1.5rem) clamp(1.25rem, 2.5vw, 2rem);
  border-radius: calc(var(--radius) * 0.8);
  background: linear-gradient(90deg, rgba(158, 240, 192, 0.1), rgba(158, 240, 192, 0.03));
  box-shadow: inset 0 0 0 1px rgba(158, 240, 192, 0.28);
}
@media (min-width: 60em) { .aviso-ia { grid-template-columns: auto 1fr auto; } }
.aviso-ia p { margin: 0; color: var(--text-soft); font-size: 0.975rem; line-height: 1.55; }
.aviso-ia__tag { display: inline-flex; align-items: center; gap: 0.5rem; color: var(--mint); white-space: nowrap; }
.aviso-ia__tag::before { content: ""; width: 0.5rem; height: 0.5rem; border-radius: 50%; background: var(--mint); box-shadow: 0 0 0 4px rgba(158, 240, 192, 0.18); animation: pulse 2.4s ease-in-out infinite; }
@keyframes pulse { 50% { box-shadow: 0 0 0 9px rgba(158, 240, 192, 0); } }

/* ───────── Clauses (promises) ───────── */
.clauses { list-style: none; margin: 0; padding: clamp(1rem, 2vw, 1.5rem) clamp(1rem, 3vw, 2.5rem) clamp(1rem, 2vw, 1.5rem) 0; }
.clause {
  position: relative;
  display: grid; grid-template-columns: 3.2rem 1fr; gap: 0.5rem 1.25rem; align-items: start;
  padding: clamp(1.4rem, 2.6vw, 2rem) 0;
  border-bottom: 1px solid var(--ink-line);
}
.clause:last-child { border-bottom: 0; }
@media (min-width: 60em) { .clause { grid-template-columns: 3.2rem 1fr 11rem 3rem; } }
.clause__n { font-family: var(--ff-serif); font-style: italic; font-size: 1.25rem; color: var(--mint-deep); text-align: center; padding-top: 0.2rem; }
.clause__t { font-family: var(--ff-serif); font-size: clamp(1.6rem, 2.8vw, 2.4rem); line-height: 1.05; letter-spacing: -0.025em; margin-bottom: 0.5rem; }
.clause p { margin: 0; color: var(--ink-soft); max-width: 40rem; }
.clause__ref { grid-column: 2; color: var(--ink-dim); font-size: 0.6875rem; }
@media (min-width: 60em) { .clause__ref { grid-column: 3; padding-top: 0.75rem; text-align: right; } }
.clause__stamp {
  display: none; place-items: center; width: 2.6rem; height: 2.6rem; border-radius: 50%;
  border: 1.5px solid var(--mint-deep); color: var(--mint-deep); transform: rotate(-12deg) scale(0.6); opacity: 0;
  transition: transform 500ms cubic-bezier(0.34, 1.56, 0.64, 1), opacity 300ms ease;
}
.clause__stamp svg { width: 55%; height: 55%; }
@media (min-width: 60em) { .clause__stamp { display: grid; } }
.clause.is-signed .clause__stamp { opacity: 1; transform: rotate(-12deg) scale(1); }

/* ───────── Review scene ───────── */
.review { position: relative; overflow: clip; background: radial-gradient(60% 60% at 80% 40%, rgba(158, 240, 192, 0.1), transparent 70%), var(--void); }
.review__stage { display: grid; gap: clamp(2.5rem, 5vw, 4rem); align-items: center; padding-block: clamp(5rem, 10vw, 8rem); }
@media (min-width: 60em) { .review__stage { grid-template-columns: 0.85fr 1.15fr; min-height: 100svh; padding-block: 5rem; } }
.review__steps { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.25rem; border-left: 1px solid var(--line-2); }
.review__step { display: grid; gap: 0.2rem; padding: 0.9rem 0 0.9rem 1.5rem; position: relative; color: var(--text-dim); transition: color 400ms ease; }
.review__step::before { content: ""; position: absolute; left: -1px; top: 0; bottom: 0; width: 2px; background: var(--mint); transform: scaleY(0); transform-origin: top; transition: transform 500ms var(--ease-out); box-shadow: 0 0 10px var(--mint); }
.review__step strong { font-family: var(--ff-serif); font-weight: 400; font-size: 1.5rem; line-height: 1.15; color: inherit; }
.review__step .mono { color: var(--mint); opacity: 0.6; }
.review__step.is-active { color: var(--text); }
.review__step.is-active::before { transform: none; }
.review__step.is-active .mono { opacity: 1; }

.doc { position: relative; border-radius: 1.25rem; background: #fbf9f3; color: var(--ink); box-shadow: 0 50px 100px -40px rgba(0, 0, 0, 0.75), 0 0 0 1px rgba(255, 255, 255, 0.06); overflow: hidden; }
.doc__bar { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 0.85rem 1.25rem; border-bottom: 1px solid var(--ink-line); background: #f1eee5; }
.doc__state { position: relative; display: inline-grid; }
.doc__state-i { grid-area: 1 / 1; font-family: var(--ff-mono); font-size: 0.7rem; letter-spacing: 0.08em; text-transform: uppercase; padding: 0.3rem 0.65rem; border-radius: 999px; opacity: 0; transition: opacity 300ms ease; white-space: nowrap; }
.doc__state-i[data-state="0"] { background: rgba(63, 91, 208, 0.12); color: #2c44a8; }
.doc__state-i[data-state="1"] { background: rgba(231, 176, 79, 0.18); color: #8a5a0c; }
.doc__state-i[data-state="2"] { background: rgba(31, 122, 77, 0.14); color: var(--mint-deep); }
.doc[data-state="0"] .doc__state-i[data-state="0"], .doc[data-state="1"] .doc__state-i[data-state="1"], .doc[data-state="2"] .doc__state-i[data-state="2"] { opacity: 1; }
.doc__meta { color: var(--ink-dim); font-size: 0.65rem; }
.doc__body {
  padding: clamp(1.25rem, 2.5vw, 2rem) clamp(1.25rem, 2.5vw, 2rem) clamp(1.25rem, 2.5vw, 2rem) clamp(2.2rem, 4vw, 3.4rem);
  background:
    linear-gradient(90deg, transparent calc(clamp(1.4rem, 2.6vw, 2.3rem) - 1px), rgba(31, 122, 77, 0.3) calc(clamp(1.4rem, 2.6vw, 2.3rem) - 1px), rgba(31, 122, 77, 0.3) clamp(1.4rem, 2.6vw, 2.3rem), transparent clamp(1.4rem, 2.6vw, 2.3rem));
}
.doc__h { font-family: var(--ff-serif); font-size: clamp(1.3rem, 2vw, 1.7rem); letter-spacing: -0.01em; margin: 0 0 1.1rem; text-align: center; text-transform: uppercase; letter-spacing: 0.06em; font-size: clamp(0.95rem, 1.3vw, 1.1rem); }
.doc__line { position: relative; margin: 0 0 0.75rem; padding-right: 2rem; font-size: clamp(0.85rem, 1.1vw, 0.98rem); line-height: 1.6; }
.doc__line strong { font-weight: 600; }
.doc__type { font-family: var(--ff-mono); font-size: 0.92em; color: #2c44a8; transition: color 500ms ease, font-family 0s; }
.doc.is-verified .doc__type { font-family: var(--ff-sans); color: var(--ink-soft); }
.doc__ok { position: absolute; right: 0; top: 0.2rem; width: 1.2rem; height: 1.2rem; color: var(--mint-deep); opacity: 0; transform: scale(0.4); transition: opacity 300ms ease, transform 400ms cubic-bezier(0.34, 1.56, 0.64, 1); }
.doc__line.is-ok .doc__ok { opacity: 1; transform: none; }
.doc__line--bad .doc__type { background: linear-gradient(currentColor, currentColor) 0 55% / 0 1.5px no-repeat; transition: background-size 600ms var(--ease-out), opacity 400ms ease; }
.doc__line--bad.is-struck .doc__type { background-size: 100% 1.5px; color: #b3412e; opacity: 0.55; }
.doc__flag { display: block; margin-top: 0.35rem; font-family: var(--ff-mono); font-size: 0.68rem; letter-spacing: 0.04em; color: #b3412e; opacity: 0; transform: translateY(-4px); transition: opacity 300ms ease, transform 300ms ease; }
.doc__line--bad.is-struck .doc__flag { opacity: 1; transform: none; }
.doc__checks { display: grid; gap: 0.45rem; margin: 1.4rem 0; padding: 1rem; border-radius: 0.75rem; background: rgba(10, 26, 18, 0.035); }
@media (min-width: 45em) { .doc__checks { grid-template-columns: 1fr 1fr; } }
.doc__check { display: flex; align-items: center; gap: 0.55rem; font-size: 0.8rem; color: var(--ink-dim); transition: color 300ms ease; }
.doc__box { display: grid; place-items: center; width: 1.05rem; height: 1.05rem; border-radius: 0.25rem; box-shadow: inset 0 0 0 1.5px var(--ink-line-2); color: #fff; transition: background-color 250ms ease, box-shadow 250ms ease; flex-shrink: 0; }
.doc__box svg { width: 75%; height: 75%; opacity: 0; transition: opacity 200ms ease; }
.doc__check.is-on { color: var(--ink); }
.doc__check.is-on .doc__box { background: var(--mint-deep); box-shadow: none; }
.doc__check.is-on .doc__box svg { opacity: 1; }
.doc__sign { display: flex; justify-content: space-between; align-items: flex-end; gap: 1rem; padding-top: 1rem; border-top: 1px solid var(--ink-line); color: var(--ink); }
.doc__sign .mono { display: block; color: var(--ink-dim); font-size: 0.65rem; margin-bottom: 0.25rem; }
.doc__sign .sign { max-width: 11rem; }
.doc__sign .seal { width: 5.5rem; color: var(--mint-deep); opacity: 0; transform: scale(1.6) rotate(-25deg); }
.doc.is-signed .doc__sign .seal { opacity: 1; transform: scale(1) rotate(-12deg); transition: transform 450ms cubic-bezier(0.34, 1.56, 0.64, 1), opacity 200ms ease; }

/* ───────── Line cards: index with dot leaders ───────── */
.stack-card--paper2 { background: var(--paper-2); color: var(--ink); }
.stack-card--paper2 .stack-card__art { background: radial-gradient(70% 70% at 50% 40%, rgba(31, 122, 77, 0.14), transparent 70%), #ece7da; }
.svc-mini { list-style: none; margin: 1.75rem 0 0; padding: 0; display: grid; gap: 0.6rem; max-width: 30rem; }
.svc-mini li { display: flex; align-items: baseline; gap: 0.5rem; font-size: 0.975rem; }
.svc-mini .dots { flex: 1; border-bottom: 1px dotted currentColor; opacity: 0.35; transform: translateY(-0.25em); min-width: 1rem; }
.price { display: inline-flex; align-items: baseline; gap: 0.35rem; font-family: var(--ff-sans); font-weight: 600; letter-spacing: -0.02em; white-space: nowrap; }
.price--sm { font-size: 1rem; }
.price__pre, .price__post { font-weight: 400; font-size: 0.75em; opacity: 0.7; letter-spacing: 0; }
.price__quote { font-weight: 500; font-size: 0.95em; }

/* ───────── Mini flow ───────── */
.flowmini { position: relative; }
.flowmini__line { position: absolute; left: 0; right: 0; top: 1.15rem; width: 100%; height: 20px; overflow: visible; display: none; }
.flowmini__line path { fill: none; stroke: var(--mint); stroke-width: 1.5; vector-effect: non-scaling-stroke; opacity: 0.5; }
@media (min-width: 70em) { .flowmini__line { display: block; } }
.flowmini__nodes { position: relative; list-style: none; margin: 0; padding: 0; display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr)); }
@media (min-width: 70em) { .flowmini__nodes { grid-template-columns: repeat(9, 1fr); gap: 0.75rem; } }
.flowmini__node { display: grid; gap: 0.35rem; align-content: start; }
.flowmini__dot {
  display: grid; place-items: center; width: 2.6rem; height: 2.6rem; border-radius: 50%;
  background: var(--void); box-shadow: inset 0 0 0 1px var(--line-2); font-family: var(--ff-mono); font-size: 0.8rem; color: var(--text-soft); margin-bottom: 0.5rem;
}
.flowmini__node.is-ai .flowmini__dot { box-shadow: inset 0 0 0 1px rgba(63, 91, 208, 0.9); color: #a9b8ff; }
.flowmini__node.is-key .flowmini__dot { background: var(--mint); color: var(--ink); box-shadow: 0 0 22px rgba(158, 240, 192, 0.5); }
.flowmini__t { font-family: var(--ff-serif); font-size: 1.2rem; line-height: 1.1; }
.flowmini__s { font-size: 0.8125rem; color: var(--text-dim); }
.flowmini__notes { display: flex; flex-wrap: wrap; gap: 0.5rem 2.5rem; margin-top: 2rem; color: var(--text-soft); font-size: 0.95rem; }
.flowmini__notes p { margin: 0; }
.flowmini__arrow { color: var(--mint); margin-right: 0.4rem; }
.light .flowmini__dot { background: var(--paper); box-shadow: inset 0 0 0 1px var(--ink-line-2); color: var(--ink-soft); }
.light .flowmini__s, .light .flowmini__notes { color: var(--ink-dim); }

/* ───────── Absolute limits ───────── */
.limits { display: grid; gap: clamp(0.75rem, 1.5vw, 1rem); }
@media (min-width: 45em) { .limits { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 70em) { .limits { grid-template-columns: repeat(5, 1fr); } }
.limit {
  position: relative; display: flex; flex-direction: column; gap: 0.75rem;
  padding: 1.5rem; border-radius: calc(var(--radius) * 0.7);
  background: rgba(11, 42, 29, 0.6); box-shadow: inset 0 0 0 1px var(--line);
  transition: box-shadow 500ms ease, background-color 500ms ease;
}
.limit.is-locked { box-shadow: inset 0 0 0 1px rgba(158, 240, 192, 0.5), 0 0 40px -18px rgba(158, 240, 192, 0.6); }
.limit__head { display: flex; justify-content: space-between; align-items: center; color: var(--text-dim); }
.limit__lock { width: 1.9rem; height: 1.9rem; color: var(--mint); }
.limit__lock svg { width: 100%; height: 100%; overflow: visible; }
.lock__shackle { transform: translateY(-3px); transition: transform 500ms cubic-bezier(0.34, 1.56, 0.64, 1); }
.limit.is-locked .lock__shackle { transform: none; }
.limit__t { font-family: var(--ff-serif); font-size: 1.45rem; line-height: 1.08; letter-spacing: -0.015em; }
.limit p { margin: 0; color: var(--text-soft); font-size: 0.95rem; }
.limits--light .limit { background: #fbf9f3; box-shadow: inset 0 0 0 1px var(--ink-line); }
.limits--light .limit.is-locked { box-shadow: inset 0 0 0 1px rgba(31, 122, 77, 0.55), 0 20px 40px -28px rgba(31, 122, 77, 0.6); }
.limits--light .limit__head { color: var(--ink-dim); }
.limits--light .limit__lock { color: var(--mint-deep); }
.limits--light .limit p { color: var(--ink-soft); }

/* ───────── Tarifario ───────── */
.anchor { display: block; position: relative; top: -7rem; visibility: hidden; }
.tarifa-bar { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1rem; align-items: center; margin-bottom: 2rem; position: sticky; top: 5.25rem; z-index: 5; padding: 0.6rem; border-radius: 999px; background: rgba(242, 239, 230, 0.82); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); box-shadow: inset 0 0 0 1px var(--ink-line); }
@media (max-width: 45em) { .tarifa-bar { border-radius: 1.25rem; position: static; } }
.filters { display: flex; flex-wrap: wrap; gap: 0.35rem; }
.filter { border: 0; background: transparent; padding: 0.6rem 1rem; border-radius: 999px; font-weight: 500; color: var(--ink-soft); cursor: pointer; transition: background-color 250ms ease, color 250ms ease; touch-action: manipulation; }
.filter.is-on { background: var(--ink); color: var(--paper); }
@media (hover: hover) and (pointer: fine) { .filter:not(.is-on):hover { background: rgba(10, 26, 18, 0.06); color: var(--ink); } }
.iva { position: relative; display: inline-grid; grid-template-columns: 1fr 1fr; padding: 0.25rem; border-radius: 999px; background: rgba(10, 26, 18, 0.06); }
.iva__opt { position: relative; z-index: 1; border: 0; background: none; padding: 0.5rem 1rem; border-radius: 999px; font-weight: 500; font-size: 0.9rem; color: var(--ink-soft); cursor: pointer; transition: color 250ms ease; touch-action: manipulation; }
.iva__opt.is-on { color: var(--paper); }
.iva__knob { position: absolute; top: 0.25rem; bottom: 0.25rem; left: 0.25rem; width: calc(50% - 0.25rem); border-radius: 999px; background: var(--mint-deep); transition: transform 380ms var(--ease-out); }
.iva[data-mode="gross"] .iva__knob { transform: translateX(100%); }

.svc-grid { display: grid; gap: clamp(0.85rem, 1.6vw, 1.25rem); }
@media (min-width: 45em) { .svc-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 75em) { .svc-grid { grid-template-columns: repeat(3, 1fr); } }
.svc-card {
  position: relative; display: flex; flex-direction: column; gap: 0.8rem;
  padding: clamp(1.4rem, 2.2vw, 1.9rem); border-radius: calc(var(--radius) * 0.8);
  background: #fbf9f3; box-shadow: inset 0 0 0 1px var(--ink-line);
  transition: box-shadow 300ms ease, transform 400ms var(--ease-out);
}
.svc-card.is-featured { background: linear-gradient(180deg, rgba(31, 122, 77, 0.08), transparent 45%), #fbf9f3; box-shadow: inset 0 0 0 1px rgba(31, 122, 77, 0.45); }
.svc-card[hidden] { display: none; }
@media (hover: hover) and (pointer: fine) { .svc-card:hover { box-shadow: inset 0 0 0 1px var(--ink-line-2), 0 24px 50px -32px rgba(10, 26, 18, 0.4); transform: translateY(-3px); } }
.svc-card__top { display: flex; justify-content: space-between; gap: 1rem; color: var(--ink-dim); font-size: 0.65rem; }
.svc-card__line { color: var(--mint-deep); }
.svc-card__t { font-family: var(--ff-serif); font-size: clamp(1.5rem, 2.2vw, 1.9rem); line-height: 1.05; letter-spacing: -0.02em; }
.svc-card .price { font-size: clamp(1.9rem, 2.8vw, 2.4rem); color: var(--ink); }
.svc-card__tags { display: flex; flex-wrap: wrap; gap: 0.4rem; min-height: 0; }
.svc-card__tags:empty { display: none; }
.tag { font-family: var(--ff-mono); font-size: 0.65rem; letter-spacing: 0.04em; padding: 0.25rem 0.55rem; border-radius: 999px; background: rgba(10, 26, 18, 0.06); color: var(--ink-soft); }
.svc-card__d { margin: 0; color: var(--ink-soft); font-size: 0.975rem; }
.svc-card__plazo { display: flex; gap: 0.55rem; align-items: flex-start; margin: 0; font-size: 0.875rem; color: var(--ink); }
.svc-card__plazo svg { width: 1rem; height: 1rem; flex-shrink: 0; margin-top: 0.15rem; color: var(--mint-deep); }
.ficha { margin-top: auto; border-top: 1px solid var(--ink-line); }
.ficha summary { display: flex; justify-content: space-between; align-items: center; padding: 0.85rem 0 0.2rem; cursor: pointer; list-style: none; font-family: var(--ff-mono); font-size: 0.72rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ink); }
.ficha summary::-webkit-details-marker { display: none; }
.ficha__plus { position: relative; width: 0.9rem; height: 0.9rem; }
.ficha__plus::before, .ficha__plus::after { content: ""; position: absolute; left: 0; right: 0; top: 50%; height: 1.5px; background: currentColor; transition: transform 300ms var(--ease-out); }
.ficha__plus::after { transform: rotate(90deg); }
details[open] > summary .ficha__plus::after { transform: rotate(0deg); }
.ficha__body { padding-top: 0.75rem; display: grid; gap: 0.6rem; font-size: 0.9rem; }
.ficha__body > .mono { margin: 0; color: var(--ink-dim); font-size: 0.65rem; }
.ficha__body ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.4rem; }
.ficha__body li, .plan-card li { display: flex; gap: 0.5rem; align-items: flex-start; }
.ficha__body li svg, .plan-card li svg { width: 1rem; height: 1rem; color: var(--mint-deep); flex-shrink: 0; margin-top: 0.2rem; }
.ficha__nota { margin: 0; color: var(--ink-dim); font-size: 0.85rem; }
.ficha__sinia { margin: 0; padding: 0.6rem 0.75rem; border-radius: 0.6rem; background: rgba(63, 91, 208, 0.08); font-size: 0.85rem; color: var(--ink-soft); }

.plans { display: grid; gap: clamp(0.85rem, 1.6vw, 1.25rem); }
@media (min-width: 60em) { .plans { grid-template-columns: repeat(3, 1fr); } }
.plan-card { display: flex; flex-direction: column; gap: 0.9rem; padding: clamp(1.5rem, 2.5vw, 2.25rem); border-radius: var(--radius); background: #fbf9f3; box-shadow: inset 0 0 0 1px var(--ink-line); }
.plan-card.is-featured { background: var(--ink); color: var(--paper); box-shadow: none; }
.plan-card.is-featured li svg, .plan-card.is-featured .svc-card__plazo svg { color: var(--mint); }
.plan-card.is-featured .svc-card__plazo { color: var(--paper); }
.plan-card > .mono { margin: 0; color: var(--ink-dim); font-size: 0.7rem; }
.plan-card.is-featured > .mono { color: rgba(242, 239, 230, 0.6); }
.plan-card__t { font-family: var(--ff-serif); font-size: clamp(2rem, 3.2vw, 2.75rem); line-height: 1; letter-spacing: -0.03em; }
.plan-card .price { font-size: clamp(2.1rem, 3.2vw, 2.75rem); }
.plan-card ul { list-style: none; margin: 0.5rem 0; padding: 0; display: grid; gap: 0.55rem; }
.plan-card .svc-card__plazo { margin-top: auto; }
.plans-rules { margin-top: clamp(1rem, 2vw, 1.5rem); padding: clamp(1.25rem, 2.5vw, 2rem) clamp(1.25rem, 2.5vw, 2rem) clamp(1.25rem, 2.5vw, 2rem) 4.2rem; }
.plans-rules dl { margin: 0; display: grid; gap: 1rem 2.5rem; }
@media (min-width: 60em) { .plans-rules dl { grid-template-columns: 1fr 1fr; } }
.plans-rules dt { font-family: var(--ff-serif); font-size: 1.25rem; margin-bottom: 0.25rem; }
.plans-rules dd { margin: 0; color: var(--ink-soft); font-size: 0.95rem; }

/* ───────── IA page ───────── */
.golden { padding-block: clamp(6rem, 13vw, 11rem); background: radial-gradient(50% 80% at 50% 0%, rgba(158, 240, 192, 0.14), transparent 70%), var(--void); text-align: center; }
.golden .label { justify-content: center; }
.golden__text { margin: 2rem auto 0; max-width: 20ch; font-family: var(--ff-serif); font-size: clamp(2.6rem, 7vw, 7rem); line-height: 0.98; letter-spacing: -0.04em; }
.golden__ai { display: block; margin-bottom: 0.75rem; font-size: clamp(1rem, 1.8vw, 1.5rem); letter-spacing: 0.04em; color: var(--mint); }
.js [data-words-light] .word { opacity: 0.14; }

.versus { display: grid; gap: 2rem; }
@media (min-width: 60em) { .versus { grid-template-columns: 1fr auto 1fr; gap: 3rem; } }
.versus__col { padding: clamp(1.5rem, 3vw, 2.5rem); border-radius: var(--radius); background: #fbf9f3; box-shadow: inset 0 0 0 1px var(--ink-line); }
.versus__col:last-child { background: var(--ink); color: var(--paper); box-shadow: none; }
.versus__k { display: flex; align-items: center; gap: 0.6rem; margin: 0 0 1.25rem; color: var(--ink-dim); }
.versus__col:last-child .versus__k { color: rgba(242, 239, 230, 0.65); }
.versus__dot { width: 0.6rem; height: 0.6rem; border-radius: 50%; background: var(--mint); box-shadow: 0 0 10px var(--mint); }
.versus__dot--ai { background: #3f5bd0; box-shadow: 0 0 10px rgba(63, 91, 208, 0.6); }
.versus ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; }
.versus li { padding: 0.9rem 0; border-bottom: 1px solid var(--ink-line); font-family: var(--ff-serif); font-size: clamp(1.2rem, 1.8vw, 1.5rem); line-height: 1.2; }
.versus__col:last-child li { border-color: rgba(242, 239, 230, 0.14); }
.versus__col:last-child .figref { color: rgba(242, 239, 230, 0.5); }
.versus__divider { display: none; position: relative; width: 1px; background: var(--ink-line-2); }
.versus__divider span { position: absolute; left: -4px; top: 0; width: 9px; height: 9px; border-radius: 50%; background: var(--mint-deep); }
@media (min-width: 60em) { .versus__divider { display: block; } }

.flow { position: relative; overflow: clip; background: radial-gradient(40% 60% at 20% 30%, rgba(158, 240, 192, 0.1), transparent 70%), var(--void); }
.flow__stage { padding-block: clamp(5rem, 10vw, 8rem); }
@media (min-width: 60em) { .flow__stage { min-height: 100svh; display: grid; align-content: center; padding-block: 6rem 3rem; } }
.flow__head { margin-bottom: clamp(2.5rem, 5vw, 4rem); max-width: 48rem; }
.flow__track { position: relative; height: 3rem; margin: 0 1.5rem 2.5rem; display: none; }
@media (min-width: 60em) { .flow__track { display: block; } }
.flow__rail { position: absolute; left: 0; right: 0; top: 50%; height: 2px; background: var(--line-2); border-radius: 2px; }
.flow__fill { position: absolute; inset: 0; background: linear-gradient(90deg, var(--mint-deep), var(--mint)); transform-origin: 0 50%; transform: scaleX(0); box-shadow: 0 0 14px var(--mint); }
.flow__node { position: absolute; left: var(--x); top: 50%; translate: -50% -50%; display: grid; place-items: center; width: 2.6rem; height: 2.6rem; border-radius: 50%; background: var(--void); box-shadow: inset 0 0 0 1px var(--line-2); font-family: var(--ff-mono); font-size: 0.8rem; color: var(--text-dim); transition: background-color 300ms ease, color 300ms ease, box-shadow 300ms ease, scale 400ms var(--ease-out); }
.flow__node.is-ai { box-shadow: inset 0 0 0 1px rgba(63, 91, 208, 0.8); }
.flow__node.is-done { color: var(--text); box-shadow: inset 0 0 0 1px var(--mint); }
.flow__node.is-active { background: var(--mint); color: var(--ink); scale: 1.2; box-shadow: 0 0 30px rgba(158, 240, 192, 0.6); }
.flow__cards { list-style: none; margin: 0; padding: 0; display: grid; gap: 1rem; }
@media (min-width: 60em) { .flow__cards { display: grid; } .flow__card { grid-area: 1 / 1; } }
.flow__card { display: grid; grid-template-columns: auto 1fr; gap: 1.25rem 2rem; align-items: start; padding: clamp(1.25rem, 2.5vw, 2.25rem); border-radius: var(--radius); background: rgba(11, 42, 29, 0.55); box-shadow: inset 0 0 0 1px var(--line); }
.flow__card.is-key { box-shadow: inset 0 0 0 1px rgba(158, 240, 192, 0.45); }
.flow__num { font-family: var(--ff-serif); font-size: clamp(3.5rem, 8vw, 7rem); line-height: 0.85; letter-spacing: -0.05em; color: var(--mint); }
.flow__who { margin: 0 0 0.5rem; color: var(--text-dim); }
.flow__t { font-family: var(--ff-serif); font-size: clamp(1.9rem, 3.4vw, 3rem); line-height: 1; letter-spacing: -0.03em; }
.flow__s { margin: 0.35rem 0 0.75rem; color: var(--mint); font-size: 0.95rem; }
.flow__card p:last-child { margin: 0; color: var(--text-soft); max-width: 38rem; font-size: 1.0625rem; }
.flow__notes { display: flex; flex-wrap: wrap; gap: 0.5rem 2.5rem; margin-top: 2rem; color: var(--text-soft); }
.flow__notes p { margin: 0; }
.flow__notes span { color: var(--mint); margin-right: 0.4rem; }

.check-grid { display: grid; gap: clamp(2rem, 5vw, 4rem); }
@media (min-width: 60em) { .check-grid { grid-template-columns: 0.9fr 1.1fr; align-items: start; } .check-grid > div { position: sticky; top: 7rem; } }
.checklist { list-style: none; margin: 0; padding: clamp(0.75rem, 2vw, 1.25rem) clamp(1rem, 2.5vw, 2rem) clamp(0.75rem, 2vw, 1.25rem) 0; }
.checklist li { display: grid; grid-template-columns: 3.2rem auto 1fr; gap: 0.9rem; align-items: start; padding: 1.1rem 0; border-bottom: 1px solid var(--ink-line); font-size: 1.05rem; color: var(--ink-dim); transition: color 400ms ease; }
.checklist li:last-child { border-bottom: 0; }
.checklist__box { justify-self: center; display: grid; place-items: center; width: 1.5rem; height: 1.5rem; border-radius: 0.35rem; box-shadow: inset 0 0 0 1.5px var(--ink-line-2); color: #fff; transition: background-color 300ms ease, box-shadow 300ms ease, transform 400ms cubic-bezier(0.34, 1.56, 0.64, 1); }
.checklist__box svg { width: 72%; height: 72%; opacity: 0; transition: opacity 250ms ease; }
.checklist__n { color: var(--ink-dim); padding-top: 0.2rem; font-size: 0.7rem; }
.checklist li.is-on { color: var(--ink); }
.checklist li.is-on .checklist__box { background: var(--mint-deep); box-shadow: none; transform: scale(1.08); }
.checklist li.is-on .checklist__box svg { opacity: 1; }

.vault { display: grid; gap: clamp(2rem, 5vw, 4rem); align-items: center; margin-bottom: 2rem; }
@media (min-width: 60em) { .vault { grid-template-columns: 0.9fr 1.1fr; } }
.vault__fig { position: relative; display: grid; gap: 0.9rem; perspective: 900px; }
.vault__file { position: relative; display: flex; align-items: center; justify-content: space-between; padding: 1.25rem 1.5rem; border-radius: 1rem; background: rgba(11, 42, 29, 0.7); box-shadow: inset 0 0 0 1px var(--line); transform: rotateX(18deg) translateZ(calc(var(--i) * -10px)); color: var(--text-soft); }
.vault__file::before { content: ""; width: 0.55rem; height: 0.55rem; border-radius: 50%; background: var(--mint); box-shadow: 0 0 10px var(--mint); position: absolute; right: 1.5rem; }
.vault__wall { position: absolute; left: 0; right: 0; bottom: -0.5rem; height: 2px; background: repeating-linear-gradient(90deg, var(--mint) 0 6px, transparent 6px 12px); opacity: 0.55; }
.vault__file:last-of-type .vault__wall { display: none; }
.vault__cap { color: var(--text-dim); margin: 0.5rem 0 0; }
.vault__facts { display: grid; gap: 1rem; }
@media (min-width: 45em) { .vault__facts { grid-template-columns: 1fr 1fr; } }
.vault__facts article { padding: 1.4rem; border-radius: calc(var(--radius) * 0.7); box-shadow: inset 0 0 0 1px var(--line); }
.vault__facts h3 { font-family: var(--ff-serif); font-size: 1.5rem; line-height: 1.1; margin-bottom: 0.5rem; }
.vault__facts p { margin: 0; color: var(--text-soft); font-size: 0.975rem; }
.reqs { border-radius: var(--radius); box-shadow: inset 0 0 0 1px var(--line); padding: 0 clamp(1.25rem, 2.5vw, 2rem); }
.reqs summary { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 1.25rem 0; cursor: pointer; list-style: none; font-family: var(--ff-serif); font-size: clamp(1.25rem, 2vw, 1.6rem); }
.reqs summary::-webkit-details-marker { display: none; }
.reqs ol { margin: 0 0 1rem; padding-left: 1.4rem; display: grid; gap: 0.5rem; color: var(--text-soft); columns: 2 20rem; }
.reqs li::marker { color: var(--mint); font-family: var(--ff-mono); }
.reqs .figref { padding-bottom: 1.25rem; }

.consent { display: grid; gap: clamp(2rem, 5vw, 4rem); align-items: start; }
@media (min-width: 60em) { .consent { grid-template-columns: 0.9fr 1.1fr; } .consent__mock { position: sticky; top: 7rem; } }
.consent__mock { padding: clamp(1.5rem, 3vw, 2.25rem) clamp(1.5rem, 3vw, 2.25rem) clamp(1.5rem, 3vw, 2.25rem) 4.4rem; display: grid; gap: 1.1rem; }
.consent__mock > .mono { margin: 0; color: var(--ink-dim); }
.consent__row { display: flex; align-items: center; gap: 0.8rem; font-size: 1.05rem; }
.consent__box { display: grid; place-items: center; width: 1.4rem; height: 1.4rem; border-radius: 0.3rem; box-shadow: inset 0 0 0 1.5px var(--ink-line-2); color: #fff; flex-shrink: 0; transition: background-color 300ms ease, box-shadow 300ms ease; }
.consent__box svg { width: 72%; height: 72%; opacity: 0; transition: opacity 200ms ease; }
.consent__row--ia { padding: 0.8rem; margin-left: -0.8rem; border-radius: 0.6rem; background: rgba(63, 91, 208, 0.07); }
.consent__box.is-on { background: var(--mint-deep); box-shadow: none; }
.consent__box.is-on svg { opacity: 1; }
.consent__alt { margin: 0; color: var(--ink-soft); }
.consent__log { margin: 0; color: var(--ink-dim); font-size: 0.65rem; }
.consent__facts p { margin: 0 0 1.25rem; font-size: 1.125rem; line-height: 1.6; color: var(--ink-soft); }
.consent__facts strong { color: var(--ink); font-weight: 600; }

.control { margin-top: clamp(1rem, 3vw, 2rem); }
.control__list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line-2); }
.control__item { display: grid; gap: 0.35rem 2rem; padding: 1.25rem 0; border-bottom: 1px solid var(--line); }
@media (min-width: 60em) { .control__item { grid-template-columns: 9rem 1fr 18rem; align-items: baseline; } }
.control__f { color: var(--mint); }
.control__c { font-family: var(--ff-serif); font-size: clamp(1.2rem, 1.9vw, 1.55rem); line-height: 1.2; }
.control__r { color: var(--text-dim); font-size: 0.9rem; }

.principles { list-style: none; margin: 0 0 clamp(3rem, 6vw, 5rem); padding: 0; display: grid; gap: 0; border-top: 1px solid var(--ink-line-2); }
@media (min-width: 60em) { .principles { grid-template-columns: 1fr 1fr; column-gap: 3rem; } }
.principle { display: grid; grid-template-columns: 4rem 1fr; gap: 1rem; padding: 1.5rem 0; border-bottom: 1px solid var(--ink-line-2); }
.principle__n { font-family: var(--ff-serif); font-style: italic; font-size: 1.75rem; line-height: 1; color: var(--mint-deep); }
.principle h3 { font-family: var(--ff-serif); font-size: clamp(1.4rem, 2.2vw, 1.85rem); line-height: 1.08; letter-spacing: -0.02em; margin-bottom: 0.4rem; }
.principle p { margin: 0; color: var(--ink-soft); }
.marco dl { margin: 1.5rem 0 0; display: grid; gap: 1rem; }
@media (min-width: 60em) { .marco dl { grid-template-columns: 1fr 1fr; } }
.marco dl > div { padding: 1.4rem; border-radius: calc(var(--radius) * 0.7); background: #fbf9f3; box-shadow: inset 0 0 0 1px var(--ink-line); }
.marco dt { font-family: var(--ff-serif); font-size: 1.3rem; margin-bottom: 0.35rem; }
.marco dd { margin: 0; color: var(--ink-soft); font-size: 0.975rem; }

/* Footer notes */
.footer__notes { display: grid; gap: 1.5rem; align-items: center; margin-top: clamp(2.5rem, 5vw, 4rem); padding-top: 2rem; border-top: 1px solid var(--line); }
@media (min-width: 45em) { .footer__notes { grid-template-columns: auto 1fr; gap: 2.5rem; } }
.footer__notes p { margin: 0 0 0.45rem; color: var(--text-dim); font-size: 0.875rem; max-width: 60rem; }
.footer__notes strong { color: var(--text-soft); font-weight: 500; }
.footer__notes .seal { width: 6.5rem; color: var(--mint); opacity: 0.8; }

@media (prefers-reduced-motion: reduce) {
  .seal__text, .hero__machine::after, .aviso-ia__tag::before { animation: none; }
  .js [data-words-light] .word { opacity: 1; }
}
.consent__facts .figref { font-size: 0.6875rem; line-height: 1.5; color: var(--ink-dim); }

/* ═════════ v5 — light palette, polish ═════════ */

/* Scopes: .ink (and .light) remap the dark-theme tokens to ink-on-paper */
.ink, .light {
  --text: #0a1a12; --text-soft: #3e4a43; --text-dim: #6a756e;
  --line: rgba(10, 26, 18, 0.12); --line-2: rgba(10, 26, 18, 0.24);
  --mint: #1f7a4d;
  color: var(--text);
  color-scheme: light;
}
.dark { background: var(--void); color: var(--text); }
.ink .btn, .light .btn { --bg: var(--ink); --fg: var(--paper); }
.ink .btn::before, .light .btn::before { background: #1f7a4d; }
.ink .btn--mint, .light .btn--mint { --bg: #1f7a4d; --fg: #fff; }
.ink .btn--mint::before, .light .btn--mint::before { background: var(--ink); }
.ink .btn--ghost, .light .btn--ghost { --bg: transparent; --fg: var(--ink); }
.ink .btn--ghost .btn__icon, .light .btn--ghost .btn__icon { background: var(--ink); color: var(--paper); }
@media (hover: hover) and (pointer: fine) {
  .ink .btn:hover, .light .btn:hover { color: #fff; }
  .ink .btn:hover .btn__icon, .light .btn:hover .btn__icon { background: #fff; color: #1f7a4d; }
}
.ink .label::before, .light .label::before { background: #1f7a4d; box-shadow: 0 0 0 3px rgba(31, 122, 77, 0.15); }

/* Light navigation glass */
.nav__pill, .menu-btn { background: rgba(250, 248, 242, 0.72); box-shadow: inset 0 0 0 1px rgba(10, 26, 18, 0.1), 0 8px 30px -14px rgba(10, 26, 18, 0.25); }
.nav__link { color: #3e4a43; }
.nav__link[aria-current="page"] { color: var(--paper); background: var(--ink); }
@media (hover: hover) and (pointer: fine) { .nav__link:not([aria-current="page"]):hover { color: var(--ink); background: rgba(10, 26, 18, 0.06); } }
.menu-btn { color: var(--ink); }
.nav__cta .btn--mint { --bg: #1f7a4d; --fg: #fff; }
.nav__cta .btn--mint::before { background: var(--ink); }
.nav__cta .btn--mint:hover { color: #fff; }

/* Hero, page heroes and contact on paper */
.hero, .page-hero { background: var(--paper); }
.hero--v3 { min-height: 100svh; }
body::after { opacity: 0.045; mix-blend-mode: multiply; }
.hero__sign { color: var(--ink); }
.hero__sign .seal { color: #1f7a4d; }
.hero__machine::after { box-shadow: none; }
.contact { background: radial-gradient(50% 70% at 12% 0%, rgba(31, 122, 77, 0.08), transparent 70%), var(--paper-2); }
.ink .form { background: #fbf9f3; box-shadow: inset 0 0 0 1px var(--ink-line), 0 30px 60px -40px rgba(10, 26, 18, 0.3); }
.ink .field input::placeholder, .ink .field textarea::placeholder { color: rgba(10, 26, 18, 0.35); }
.ink .field input:focus-visible, .ink .field textarea:focus-visible { border-bottom-color: #1f7a4d; box-shadow: 0 1px 0 0 #1f7a4d; }
.ink .field [aria-invalid="true"] { border-bottom-color: #b3412e; }
.ink .field__error { color: #b3412e; }
@media (hover: hover) and (pointer: fine) { .ink .social a:hover { background: var(--ink); color: var(--paper); } .ink .contact__details a:hover { color: #1f7a4d; } }

/* Hero frame (thin rules that draw in, with corner notes) */
.frame { position: absolute; inset: clamp(4.75rem, 7vw, 5.5rem) clamp(0.75rem, 1.6vw, 1.5rem) clamp(0.75rem, 1.6vw, 1.5rem); pointer-events: none; z-index: 0; }
.frame__l { position: absolute; background: rgba(10, 26, 18, 0.16); }
.frame__l--t, .frame__l--b { left: 0; right: 0; height: 1px; transform-origin: 0 50%; }
.frame__l--t { top: 0; } .frame__l--b { bottom: 0; transform-origin: 100% 50%; }
.frame__l--l, .frame__l--r { top: 0; bottom: 0; width: 1px; transform-origin: 50% 0; }
.frame__l--l { left: 0; } .frame__l--r { right: 0; transform-origin: 50% 100%; }
.frame__c { position: absolute; font-size: 0.65rem; color: rgba(10, 26, 18, 0.5); padding: 0.55rem 0.75rem; white-space: nowrap; }
.frame__c--tl { top: 0; left: 0; } .frame__c--tr { top: 0; right: 0; }
.frame__c--bl { bottom: 0; left: 0; } .frame__c--br { bottom: 0; right: 0; }
.hero--v3 .hero__inner { position: relative; z-index: 1; padding-bottom: clamp(3rem, 6vw, 5rem); }
@media (max-width: 45em) { .frame__c--bl, .frame__c--br { display: none; } .frame__c--tr { display: none; } }

/* Ribbon of values */
.ribbon { position: relative; overflow: hidden; padding-block: 1.5rem; background: var(--paper); border-block: 1px solid var(--ink-line); }
.ribbon__track { display: flex; width: max-content; will-change: transform; }
.ribbon__group { display: flex; flex-shrink: 0; }
.ribbon__group span { display: inline-flex; align-items: center; gap: clamp(2rem, 4vw, 3.5rem); padding-right: clamp(2rem, 4vw, 3.5rem); font-family: var(--ff-serif); font-style: italic; font-size: clamp(1.6rem, 3vw, 2.6rem); line-height: 1; color: var(--ink); white-space: nowrap; }
.ribbon__group span::after { content: ""; width: 0.45rem; height: 0.45rem; border-radius: 50%; background: #1f7a4d; }

/* "Con IA" note */
.ia-note { display: inline-flex; align-items: baseline; gap: 0.65rem; flex-wrap: wrap; margin: 1.5rem 0 0; padding: 0.7rem 1rem; border-radius: 1.1rem; background: rgba(63, 91, 208, 0.07); box-shadow: inset 0 0 0 1px rgba(63, 91, 208, 0.16); font-size: 0.95rem; line-height: 1.45; color: var(--text-soft); max-width: 40rem; }
.ia-note__k { color: #3f5bd0; font-size: 0.68rem; }
.ia-note__dot { position: relative; top: -0.05em; width: 0.5rem; height: 0.5rem; border-radius: 50%; background: #3f5bd0; flex-shrink: 0; box-shadow: 0 0 0 3px rgba(63, 91, 208, 0.18); animation: pulse-b 2.6s ease-in-out infinite; align-self: center; }
@keyframes pulse-b { 50% { box-shadow: 0 0 0 7px rgba(63, 91, 208, 0); } }
.dark .ia-note { background: rgba(169, 184, 255, 0.1); box-shadow: inset 0 0 0 1px rgba(169, 184, 255, 0.22); }
.dark .ia-note__k { color: #b9c5ff; }
.dark .ia-note__dot { background: #b9c5ff; }
.section-head .ia-note { margin-top: 0; justify-self: end; }
@media (max-width: 60em) { .ia-note { border-radius: 1rem; } }

/* AI notice, light version */
.ink .aviso-ia, .light .aviso-ia { background: linear-gradient(90deg, rgba(63, 91, 208, 0.07), rgba(31, 122, 77, 0.05)); box-shadow: inset 0 0 0 1px rgba(63, 91, 208, 0.18); }
.ink .aviso-ia__tag, .light .aviso-ia__tag { color: #3f5bd0; }
.ink .aviso-ia__tag::before, .light .aviso-ia__tag::before { background: #3f5bd0; box-shadow: 0 0 0 4px rgba(63, 91, 208, 0.16); animation-name: pulse-b; }

/* Virtues */
.virtues { display: grid; gap: clamp(0.85rem, 1.6vw, 1.25rem); perspective: 1200px; }
@media (min-width: 45em) { .virtues { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 75em) { .virtues { grid-template-columns: repeat(4, 1fr); } }
.virtue { position: relative; display: flex; flex-direction: column; gap: 0.85rem; min-height: 19rem; padding: clamp(1.4rem, 2.2vw, 1.9rem); border-radius: var(--radius); background: #fbf9f3; box-shadow: inset 0 0 0 1px var(--ink-line); transform-style: preserve-3d; transition: box-shadow 400ms ease; }
.virtue__top { display: flex; justify-content: space-between; align-items: center; color: var(--ink-dim); margin-bottom: auto; padding-bottom: 2rem; }
.virtue__glyph { width: 3rem; height: 3rem; color: #1f7a4d; }
.virtue__glyph svg, .secret__icon svg { width: 100%; height: 100%; overflow: visible; }
.g { fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.virtue__t { font-family: var(--ff-serif); font-size: clamp(1.5rem, 2.1vw, 1.85rem); line-height: 1.05; letter-spacing: -0.02em; }
.virtue p { margin: 0; color: var(--ink-soft); font-size: 0.975rem; }
@media (hover: hover) and (pointer: fine) { .virtue:hover { box-shadow: inset 0 0 0 1px rgba(31, 122, 77, 0.35), 0 30px 60px -38px rgba(10, 26, 18, 0.35); } }

/* Service lines grid */
.lines { display: grid; gap: clamp(0.85rem, 1.6vw, 1.25rem); perspective: 1400px; }
@media (min-width: 60em) { .lines { grid-template-columns: repeat(2, 1fr); } }
.line-card { position: relative; display: flex; flex-direction: column; gap: 0.6rem; padding: clamp(1.6rem, 2.8vw, 2.5rem); border-radius: var(--radius); background: #fbf9f3; box-shadow: inset 0 0 0 1px var(--ink-line); overflow: hidden; isolation: isolate; transform-style: preserve-3d; transition: box-shadow 400ms ease; }
.line-card__link { position: absolute; inset: 0; z-index: 3; border-radius: inherit; }
.line-card__art { position: absolute; right: -4%; top: -6%; width: 46%; aspect-ratio: 1; z-index: -1; color: rgba(31, 122, 77, 0.32); transition: transform 900ms var(--ease-out), color 400ms ease; }
.line-card__art svg { width: 100%; height: 100%; }
.line-card__art .art-glow { fill: #1f7a4d; filter: none; }
.line-card__head { display: flex; justify-content: space-between; align-items: center; color: var(--ink-dim); margin-bottom: clamp(2.5rem, 6vw, 5rem); }
.line-card__arrow { display: grid; place-items: center; width: 2.75rem; height: 2.75rem; border-radius: 50%; box-shadow: inset 0 0 0 1px var(--ink-line-2); color: var(--ink); transition: transform 500ms var(--ease-out), background-color 300ms ease, color 300ms ease; }
.line-card__arrow svg { width: 40%; height: 40%; }
.line-card__t { font-family: var(--ff-serif); font-size: clamp(2.2rem, 4vw, 3.4rem); line-height: 0.95; letter-spacing: -0.035em; }
.line-card__d { margin: 0; color: var(--ink-soft); max-width: 26rem; }
.line-card .svc-mini { margin-top: 1.25rem; max-width: none; }
.line-card__ia { display: flex; gap: 0.6rem; align-items: center; margin: 1.25rem 0 0; padding-top: 1rem; border-top: 1px solid var(--ink-line); font-size: 0.875rem; color: var(--ink-soft); }
@media (hover: hover) and (pointer: fine) {
  .line-card:hover { box-shadow: inset 0 0 0 1px rgba(31, 122, 77, 0.4), 0 40px 70px -45px rgba(10, 26, 18, 0.4); }
  .line-card:hover .line-card__art { transform: rotate(-8deg) scale(1.06); color: rgba(31, 122, 77, 0.55); }
  .line-card:hover .line-card__arrow { background: #1f7a4d; color: #fff; transform: rotate(45deg); box-shadow: none; }
}

/* Organic flow */
.flowo { position: relative; }
.flowo__wave { position: relative; height: 10rem; margin-bottom: 1.5rem; }
.flowo__wave svg { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.flowo__ghost, .flowo__path { fill: none; vector-effect: non-scaling-stroke; stroke-linecap: round; }
.flowo__ghost { stroke: var(--ink-line-2); stroke-width: 1; stroke-dasharray: 2 6; }
.flowo__path { stroke: #1f7a4d; stroke-width: 2; }
.flowo__node { position: absolute; translate: -50% -50%; display: grid; place-items: center; width: 2.8rem; height: 2.8rem; border-radius: 50%; background: #fbf9f3; box-shadow: inset 0 0 0 1.5px #1f7a4d, 0 0 0 6px var(--paper); font-family: var(--ff-mono); font-size: 0.8rem; color: var(--ink); }
.flowo__node.is-ai { box-shadow: inset 0 0 0 1.5px #3f5bd0, 0 0 0 6px var(--paper); color: #2c44a8; }
.flowo__node.is-ai::after { content: ""; position: absolute; inset: -9px; border-radius: 50%; border: 1px dashed rgba(63, 91, 208, 0.55); animation: flowo-spin 14s linear infinite; }
@keyframes flowo-spin { to { rotate: 360deg; } }
@media (prefers-reduced-motion: reduce) { .flowo__node.is-ai::after { animation: none; } }
.flowo__node.is-key { background: #1f7a4d; color: #fff; }
.flowo__steps { list-style: none; margin: 0; padding: 0; display: grid; gap: 1.5rem clamp(1rem, 2vw, 1.5rem); grid-template-columns: repeat(6, 1fr); }
.flowo__step { display: grid; align-content: start; gap: 0.5rem; }
.flowo__num { color: var(--ink-dim); font-size: 0.7rem; }
.flowo__t { font-family: var(--ff-serif); font-size: clamp(1.35rem, 1.8vw, 1.65rem); line-height: 1.05; letter-spacing: -0.02em; }
.flowo__who { justify-self: start; padding: 0.2rem 0.6rem; border-radius: 999px; font-family: var(--ff-mono); font-size: 0.65rem; letter-spacing: 0.05em; text-transform: uppercase; background: rgba(31, 122, 77, 0.1); color: #1f7a4d; }
.flowo__who.is-ai { background: linear-gradient(90deg, rgba(31, 122, 77, 0.12), rgba(63, 91, 208, 0.14)); color: #2c44a8; }
.flowo__step p { margin: 0; color: var(--ink-soft); font-size: 0.925rem; line-height: 1.5; }
@media (max-width: 70em) {
  .flowo__wave { display: none; }
  .flowo__steps { grid-template-columns: 1fr; gap: 0; position: relative; padding-left: 2.5rem; }
  .flowo__steps::before { content: ""; position: absolute; left: 0.7rem; top: 0.5rem; bottom: 0.5rem; width: 2px; background: linear-gradient(#1f7a4d, rgba(31, 122, 77, 0.2)); border-radius: 2px; }
  .flowo__step { position: relative; padding-bottom: 1.75rem; }
  .flowo__step::before { content: ""; position: absolute; left: -2.15rem; top: 0.15rem; width: 0.9rem; height: 0.9rem; border-radius: 50%; background: var(--paper); box-shadow: inset 0 0 0 2px #1f7a4d; }
}

/* Review scene: 4 states, team note and inserted clause */
.review { background: radial-gradient(60% 60% at 80% 40%, rgba(158, 240, 192, 0.12), transparent 70%), var(--void); }
.doc__state-i[data-state="1"] { background: rgba(31, 122, 77, 0.14); color: var(--mint-deep); }
.doc__state-i[data-state="2"] { background: rgba(231, 176, 79, 0.18); color: #8a5a0c; }
.doc__state-i[data-state="3"] { background: rgba(31, 122, 77, 0.18); color: #1f7a4d; }
.doc[data-state="3"] .doc__state-i[data-state="3"] { opacity: 1; }
.doc__body { position: relative; }
.doc__added { display: grid; grid-template-rows: 0fr; transition: grid-template-rows 600ms var(--ease-out); }
.doc__added > div { overflow: hidden; min-height: 0; }
.doc__added .doc__line--new { opacity: 0; transition: opacity 400ms ease 200ms; }
.doc.is-added .doc__added .doc__line--new { opacity: 1; }
.doc.is-added .doc__added { grid-template-rows: 1fr; }
.doc__line--new { margin: 0 0 0.75rem; padding: 0.4rem 0.6rem; border-radius: 0.4rem; background: rgba(31, 122, 77, 0.08); box-shadow: inset 2px 0 0 #1f7a4d; }
.doc__note { position: absolute; right: 1.25rem; top: 6.5rem; width: 13rem; display: grid; gap: 0.25rem; padding: 0.75rem 0.9rem; border-radius: 0.6rem; background: #fff6c9; color: #4a3d07; font-size: 0.8rem; line-height: 1.4; box-shadow: 0 14px 30px -14px rgba(0, 0, 0, 0.4); transform: rotate(2deg) translateY(8px); opacity: 0; transition: opacity 400ms ease, transform 500ms var(--ease-out); pointer-events: none; }
.doc__note .mono { font-size: 0.6rem; color: #7a6510; }
.doc.is-noted .doc__note { opacity: 1; transform: rotate(2deg); }
@media (max-width: 60em) { .doc__note { position: relative; right: auto; top: auto; width: auto; margin: 0 0 1rem; transform: none; } .doc.is-noted .doc__note { transform: none; } }

/* Checklist with descriptions */
.checklist--rich li > span:last-child { display: grid; gap: 0.15rem; }
.checklist--rich strong { font-family: var(--ff-serif); font-weight: 400; font-size: 1.2rem; color: var(--ink); }
.checklist--rich em { font-style: normal; font-size: 0.925rem; color: var(--ink-soft); }

/* Secreto profesional: clear pillars + rules */
.secret { display: grid; gap: clamp(2rem, 4vw, 3rem); margin-bottom: clamp(1.25rem, 2.5vw, 2rem); }
@media (min-width: 60em) { .secret { grid-template-columns: 0.85fr 1.15fr; align-items: end; } }
.secret__head .lede { margin: 1.5rem 0 0; }
.secret__grid { display: grid; gap: clamp(0.75rem, 1.4vw, 1rem); }
@media (min-width: 37.5em) { .secret__grid { grid-template-columns: 1fr 1fr; } }
.secret__card { display: grid; gap: 0.6rem; align-content: start; padding: clamp(1.25rem, 2vw, 1.6rem); border-radius: calc(var(--radius) * 0.75); background: #fbf9f3; box-shadow: inset 0 0 0 1px var(--ink-line); }
.secret__icon { display: grid; place-items: center; width: 3.25rem; height: 3.25rem; padding: 0.7rem; border-radius: 1rem; background: rgba(31, 122, 77, 0.1); color: #1f7a4d; }
.secret__card h3 { font-family: var(--ff-serif); font-size: 1.45rem; line-height: 1.1; margin-top: 0.4rem; }
.secret__card p { margin: 0; color: var(--ink-soft); font-size: 0.95rem; }
.rules { padding: clamp(1.5rem, 3vw, 2.5rem) clamp(1.25rem, 3vw, 2.5rem) clamp(1.5rem, 3vw, 2.5rem) 4.4rem; }
.rules__head { display: flex; align-items: center; gap: 1rem; margin-bottom: 1.5rem; }
.rules__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; }
.rules__list li { display: grid; grid-template-columns: 2.5rem 1fr; gap: 1rem; align-items: start; padding: 1.1rem 0; border-top: 1px solid var(--ink-line); }
.rules__n { display: grid; place-items: center; width: 2rem; height: 2rem; border-radius: 50%; background: #1f7a4d; color: #fff; font-family: var(--ff-mono); font-size: 0.8rem; }
.rules__list p { margin: 0; font-size: 1.05rem; line-height: 1.6; color: var(--ink-soft); padding-top: 0.15rem; }
@media (max-width: 40em) { .rules.doc-paper, .consent .doc-paper, .doc-paper.rules { background: #fbf9f3; } .rules { padding-left: 1.25rem; } .rules__list li { grid-template-columns: 2rem 1fr; gap: 0.85rem; } .rules__list p { font-size: 0.975rem; } }

/* Quality */
.quality { display: grid; gap: 1px; background: var(--line); border-radius: var(--radius); overflow: hidden; box-shadow: inset 0 0 0 1px var(--line); }
@media (min-width: 45em) { .quality { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 70em) { .quality { grid-template-columns: repeat(4, 1fr); } }
.quality__item { display: grid; gap: 0.6rem; align-content: start; padding: clamp(1.5rem, 2.5vw, 2rem); background: var(--void); }
.quality__item .mono { color: var(--mint); }
.quality__item h3 { font-family: var(--ff-serif); font-size: 1.5rem; line-height: 1.1; }
.quality__item p { margin: 0; color: var(--text-soft); font-size: 0.95rem; }

/* Team section and misc on lighter forest */
.hscroll.dark .ia-note { margin-top: 1.5rem; }
.golden { background: radial-gradient(50% 80% at 50% 0%, rgba(31, 122, 77, 0.1), transparent 70%), var(--paper); color: var(--ink); }
.golden .label { color: var(--ink-soft); }
.golden .label::before { background: #1f7a4d; box-shadow: none; }
.golden__ai { color: #3f5bd0; }
.golden [data-words-light] .word { color: var(--ink); }
.band { background: radial-gradient(40% 80% at 50% 0%, rgba(158, 240, 192, 0.2), transparent 70%), var(--deep); color: var(--text); }
.flow { background: radial-gradient(40% 60% at 20% 30%, rgba(158, 240, 192, 0.12), transparent 70%), var(--void); }
.flow__card { background: rgba(255, 255, 255, 0.05); }
.limit { background: rgba(255, 255, 255, 0.05); }
.footer { background: var(--void); color: var(--text); }
.flow__node { background: var(--void); }
.flow__node.is-ai { box-shadow: inset 0 0 0 1px #b9c5ff; }

@media (prefers-reduced-motion: reduce) {
  .ia-note__dot { animation: none; }
  .doc__added, .doc__note { transition: none; }
}

/* ===== v6: sin recuadros negros ===== */
:root { --forest: #1f7a4d; --forest-deep: #17603c; --forest-soft: rgba(31, 122, 77, 0.1); }
.ink .btn, .light .btn { --bg: var(--forest); --fg: #fff; }
.ink .btn::before, .light .btn::before { background: var(--forest-deep); }
.ink .btn--mint::before, .light .btn--mint::before, .nav__cta .btn--mint::before { background: var(--forest-deep); }
.ink .btn--ghost .btn__icon, .light .btn--ghost .btn__icon { background: var(--forest); color: #fff; }
.ink .btn--ghost, .light .btn--ghost { box-shadow: inset 0 0 0 1px rgba(31, 122, 77, 0.35); }
@media (hover: hover) and (pointer: fine) { .ink .btn--ghost:hover, .light .btn--ghost:hover { color: #fff; } .ink .social a:hover { background: var(--forest); } }
.nav__link[aria-current="page"] { color: #fff; background: var(--forest); }
.filter.is-on { background: var(--forest); color: #fff; }
.plan-card.is-featured { background: linear-gradient(160deg, #22704b, #1a5a3c); color: #fff; }
.versus__col:last-child { background: linear-gradient(160deg, #22704b, #1a5a3c); color: #fff; }
.versus__col:last-child * { border-color: rgba(255, 255, 255, 0.16); }
.area::before { background: var(--forest); }
.stack-card--ink { background: var(--panel); }
.cursor { border: 1.5px solid rgba(31, 122, 77, 0.7); mix-blend-mode: normal; background: transparent; }
.cursor.is-hover { background: rgba(31, 122, 77, 0.12); border-color: rgba(31, 122, 77, 0.45); backdrop-filter: blur(1px); }
.dark .cursor, .cursor.on-dark { border-color: rgba(168, 236, 196, 0.8); }

/* ===== v6: portada ===== */
.hero--v6 .hero__human { max-width: 13ch; }
.hero__hl { position: relative; display: inline-block; }
.hero__ul { position: absolute; left: -2%; right: -2%; bottom: -0.08em; width: 104%; height: 0.22em; overflow: visible; }
.hero__ul path, .clause__ul path { fill: none; stroke: #1f7a4d; stroke-width: 3; stroke-linecap: round; vector-effect: non-scaling-stroke; stroke-dasharray: 1; stroke-dashoffset: 1; }
.hero__ul path { stroke-width: 4; opacity: 0.85; }
.hero__lede { max-width: 38rem; margin: clamp(1.25rem, 2.5vw, 2rem) 0 0; font-size: clamp(1.05rem, 1.4vw, 1.25rem); line-height: 1.55; color: var(--ink-soft); }
.hero--v6 .flag-cl { width: 3.4rem; }

/* ===== v6: acceso a IA responsable ===== */
.ia-cta { position: relative; isolation: isolate; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 1rem clamp(1.25rem, 3vw, 2.5rem); margin-top: clamp(1.5rem, 3vw, 2.5rem); padding: clamp(1.25rem, 2.5vw, 1.75rem) clamp(1.25rem, 3vw, 2rem); border-radius: 1.4rem; background: #fbf9f3; color: var(--ink); text-decoration: none; overflow: hidden; box-shadow: 0 24px 50px -36px rgba(10, 26, 18, 0.45); transition: transform 500ms var(--ease-out), box-shadow 500ms var(--ease-out); }
.ia-cta::before { content: ""; position: absolute; inset: 0; z-index: -2; border-radius: inherit; background: conic-gradient(from var(--a, 0deg), rgba(31, 122, 77, 0.15), #1f7a4d, #3f5bd0, rgba(63, 91, 208, 0.15), rgba(31, 122, 77, 0.15)); animation: ia-spin 6s linear infinite; }
.ia-cta::after { content: ""; position: absolute; inset: 1.5px; z-index: -1; border-radius: calc(1.4rem - 1.5px); background: #fbf9f3; }
.ia-cta__glow { position: absolute; z-index: -1; width: 18rem; height: 18rem; left: var(--mx, 80%); top: var(--my, 50%); translate: -50% -50%; border-radius: 50%; background: radial-gradient(closest-side, rgba(31, 122, 77, 0.14), transparent); pointer-events: none; transition: opacity 400ms ease; }
@property --a { syntax: "<angle>"; inherits: false; initial-value: 0deg; }
@keyframes ia-spin { to { --a: 360deg; } }
.ia-cta__k { display: inline-flex; align-items: center; gap: 0.6rem; font-size: 0.72rem; letter-spacing: 0.1em; text-transform: uppercase; color: #2c44a8; white-space: nowrap; }
.ia-cta__t { font-family: var(--ff-serif); font-size: clamp(1.2rem, 1.9vw, 1.6rem); line-height: 1.2; letter-spacing: -0.015em; }
.ia-cta__go { display: inline-flex; align-items: center; gap: 0.75rem; font-weight: 500; white-space: nowrap; }
.ia-cta__go .btn__icon { background: #1f7a4d; color: #fff; transition: transform 400ms var(--ease-out); }
@media (hover: hover) and (pointer: fine) { .ia-cta:hover { transform: translateY(-3px); box-shadow: 0 30px 60px -34px rgba(31, 122, 77, 0.55); } .ia-cta:hover .ia-cta__go .btn__icon { transform: translateX(4px) rotate(-45deg); } }
.ia-cta:focus-visible { outline: 2px solid #1f7a4d; outline-offset: 4px; }
@media (max-width: 52em) { .ia-cta { grid-template-columns: 1fr; } }

/* ===== v6: cinco compromisos ===== */
.clauses-paper { position: relative; overflow: hidden; }
.clauses__rail { position: absolute; left: calc(3.2rem - 1px); top: 0; bottom: 0; width: 2px; pointer-events: none; }
.clauses__rail span { position: absolute; inset: 0; background: linear-gradient(#1f7a4d, #3fae73); transform-origin: top; transform: scaleY(0); box-shadow: 0 0 12px rgba(31, 122, 77, 0.45); }
.clauses__meta { position: absolute; top: 1.1rem; right: clamp(1rem, 3vw, 2.5rem); margin: 0; font-size: 0.68rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--ink-dim); }
.clauses__meta b { display: inline-block; min-width: 1ch; color: #1f7a4d; font-weight: 500; }
.clauses { padding-top: clamp(2.2rem, 3vw, 2.6rem); }
@media (min-width: 60em) { .clause { grid-template-columns: 3.2rem 1fr 3.5rem; } }
.clause::before { content: ""; position: absolute; inset: 0 0 0 3.2rem; z-index: 0; background: linear-gradient(90deg, rgba(31, 122, 77, 0.09), rgba(31, 122, 77, 0) 70%); transform: scaleX(0); transform-origin: left; opacity: 1; pointer-events: none; }
.clause > * { position: relative; z-index: 1; }
.clause.is-signed::before { animation: clause-sweep 1.4s var(--ease-out) forwards; }
@keyframes clause-sweep { 0% { transform: scaleX(0); opacity: 1; } 55% { transform: scaleX(1); opacity: 1; } 100% { transform: scaleX(1); opacity: 0.35; } }
.clause__n { transition: color 400ms ease, transform 600ms var(--ease-out); }
.clause__tw { position: relative; display: inline-block; }
.clause__ul { position: absolute; left: 0; bottom: -0.18em; width: 100%; height: 0.3em; overflow: visible; pointer-events: none; }
.clause__ul path { stroke-width: 2; opacity: 0.7; transition: stroke-dashoffset 900ms cubic-bezier(0.65, 0, 0.35, 1) 250ms; }
.clause.is-signed .clause__ul path { stroke-dashoffset: 0; }
.clause__stamp { transition: transform 600ms cubic-bezier(0.34, 1.56, 0.64, 1) 750ms, opacity 300ms ease 750ms; }
.clause__stamp::after { content: ""; position: absolute; inset: -1px; border-radius: 50%; border: 1.5px solid var(--mint-deep); opacity: 0; }
.clause.is-signed .clause__stamp::after { animation: stamp-ring 900ms var(--ease-out) 800ms; }
@keyframes stamp-ring { from { opacity: 0.8; transform: scale(1); } to { opacity: 0; transform: scale(1.9); } }
.clause__stamp { position: relative; }
.clause p { transition: color 500ms ease; }
@media (hover: hover) and (pointer: fine) { .clause:hover .clause__n { transform: translateX(3px); color: #1f7a4d; } }
@media (prefers-reduced-motion: reduce) { .clause.is-signed::before { animation: none; opacity: 0.35; transform: scaleX(1); } .clause__ul path, .clause__stamp { transition: none; } .clause.is-signed .clause__stamp::after { animation: none; } .ia-cta::before { animation: none; } }

/* ===== v6: equipo ===== */
.team-word { margin: 0; font-family: var(--ff-serif); font-weight: 400; font-size: clamp(4rem, 9vw, 8.5rem); line-height: 0.9; letter-spacing: -0.045em; color: var(--text); overflow: hidden; padding-bottom: 0.08em; }
.team-word .ch { display: inline-block; will-change: transform; }
.hero--v6 .hero__top { justify-content: flex-start; align-items: center; gap: 1.1rem; }
.hero--v6 .hero__top .hero__place { order: -1; }
.hero--v6 .flag-cl { width: 2.6rem; }
.nav__brand { mix-blend-mode: normal; color: var(--forest); padding: 0.5rem 0.95rem; border-radius: 999px; background: rgba(250, 248, 242, 0.72); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); box-shadow: inset 0 0 0 1px rgba(10, 26, 18, 0.1), 0 8px 30px -14px rgba(10, 26, 18, 0.25); font-size: 1.5rem; transition: color 300ms ease; }
@media (hover: hover) and (pointer: fine) { .nav__brand:hover { color: var(--forest-deep); } }
@media (max-width: 40em) { .virtue { min-height: 0; } .virtue__t { margin-top: 0.75rem; } }
.hero__ul path, .clause__ul path { vector-effect: none; }
.clause__ul path { stroke-width: 2.4; }
.hero__ul path { stroke-width: 3.2; }

/* ===== v7 ===== */
.hero--v6 .hero__row { display: flex; flex-wrap: wrap; justify-content: flex-start; margin-top: clamp(1.75rem, 3vw, 2.5rem); }
.flag-cl--line { width: 2.6rem; aspect-ratio: 31 / 21; height: auto; box-shadow: none; background: none; transform: none; border-radius: 0; color: var(--forest); filter: none; }
.flag-cl--line svg { overflow: visible; }
.flag-cl--line .fl { fill: none; stroke: currentColor; stroke-width: 0.9; stroke-linejoin: round; stroke-dasharray: 1; stroke-dashoffset: 0; }
.flag-cl--line.is-drawing .fl { animation: flag-draw 1.6s cubic-bezier(0.65, 0, 0.35, 1) both; }
.flag-cl--line.is-drawing .fl:nth-child(2) { animation-delay: 0.35s; }
.flag-cl--line.is-drawing .fl:nth-child(3) { animation-delay: 0.7s; }
@keyframes flag-draw { from { stroke-dashoffset: 1; } to { stroke-dashoffset: 0; } }
.hero--v6 .hero__place { color: var(--forest); }
@media (prefers-reduced-motion: reduce) { .flag-cl--line.is-drawing .fl { animation: none; } }
.line-card__art { width: min(46%, 16rem); }
.hero--v6 .hero__human { font-size: clamp(3rem, 8.2vw, 7.5rem); }
@media (orientation: portrait) and (min-width: 40em) { .hero--v6 { align-content: center; grid-template-rows: auto; } .hero--v6 .hero__inner { padding-block: 8rem 4rem; } }
@media (max-width: 30em) { .hero--v6 .hero__top { gap: 0.75rem; } .hero--v6 .hero__top .label { font-size: 0.62rem; letter-spacing: 0.06em; } .hero--v6 .flag-cl--line { width: 2.2rem; } }

/* ===== Móvil: áreas táctiles, galería y detalles ===== */
@media (pointer: coarse) {
  .footer__col { gap: 0; }
  .footer__col a { display: inline-flex; align-items: center; min-height: 44px; }
  .footer__legal nav { gap: 0.25rem 1.25rem; }
  .footer__legal a, .page-hero .paren, .reasons a, .prose a.paren { display: inline-flex; align-items: center; min-height: 44px; }
  .contact__details a { display: inline-flex; align-items: center; min-height: 44px; }
  a, button, summary, label { touch-action: manipulation; }
}
@media (max-width: 59.99em) {
  .hscroll { overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scroll-padding-inline: var(--gutter); scrollbar-width: none; -webkit-overflow-scrolling: touch; }
  .hscroll::-webkit-scrollbar { display: none; }
  .hscroll .member, .hscroll__intro { scroll-snap-align: start; }
  .hscroll__track { padding-right: var(--gutter); }
}
@media (max-width: 60em) { .doc.is-added .doc__note { opacity: 1; } }
