:root {
  --font-sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --font-display: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;

  /* Noir editorial color system */
  --black: #000000;
  --ink: #080808;
  --ink-2: #101010;
  --surface-dark: #151515;
  --surface-dark-2: #1D1D1D;
  --white: #FFFFFF;
  --paper: #F4F4F4;
  --gray-soft: #E8E8E8;
  --gray: #A6A6A6;
  --gray-muted: #6E6E6E;
  --red: #B3261E;
  --red-deep: #8F1D18;
  --red-soft: rgba(179, 38, 30, 0.16);
  --line-dark: rgba(255, 255, 255, 0.12);
  --line-dark-soft: rgba(255, 255, 255, 0.07);
  --line-light: rgba(0, 0, 0, 0.12);
  --shadow-dark: rgba(0, 0, 0, 0.35);

  /* Legacy aliases retained for existing selectors, remapped to the noir system. */
  --color-ink: var(--white);
  --color-ink-soft: var(--gray);
  --color-bg: var(--black);
  --color-surface: var(--surface-dark);
  --color-surface-alt: var(--surface-dark-2);
  --color-lavender: var(--red);
  --color-lavender-soft: var(--surface-dark-2);
  --color-mint: var(--gray-muted);
  --color-mint-soft: var(--ink);
  --color-warm-gray: var(--surface-dark);
  --color-line: var(--line-dark);
  --color-line-soft: var(--line-dark-soft);
  --ink-soft: var(--gray);
  --ink-muted: var(--gray-muted);
  --muted: var(--gray);
  --bg-page: var(--black);
  --bg-secondary: var(--ink);
  --bg-warm: var(--surface-dark);
  --bg-cool: var(--ink-2);
  --bg-soft: var(--ink);
  --surface: var(--surface-dark);
  --surface-clean: var(--ink);
  --surface-raised: var(--surface-dark-2);
  --surface-highlight: var(--surface-dark-2);
  --bg-card: var(--surface-dark);
  --bg-card-2: var(--paper);
  --petrol: var(--ink-2);
  --navy-green: var(--ink-2);
  --teal-deep: var(--gray-muted);
  --teal: var(--gray);
  --turquoise-muted: var(--gray-muted);
  --mint: var(--gray-muted);
  --mint-pale: var(--ink);
  --blue-dust: var(--ink-2);
  --cream: var(--surface-dark);
  --ivory: var(--ink-2);
  --mustard: var(--red);
  --gold-soft: var(--gray-muted);
  --orange: var(--red);
  --burnt-orange: var(--red-deep);
  --terracotta: var(--red-deep);
  --coral-brick: var(--red);
  --red-brick: var(--red);
  --burgundy-soft: var(--red-deep);
  --deep-red: var(--red-deep);
  --accent: var(--red);
  --accent-warm: var(--red);
  --accent-soft: var(--red-soft);
  --accent-coral: var(--red);
  --accent-salvia: var(--gray-muted);
  --accent-mostaza: var(--gray-muted);
  --accent-blue: var(--gray);
  --accent-rose-dust: var(--red-deep);
  --line: var(--line-dark);
  --line-soft: var(--line-dark-soft);
  --line-warm: var(--line-dark);
  --line-cool: var(--line-dark-soft);
  --shadow-soft-raw: var(--shadow-dark);
  --bg-dark: var(--black);
  --bg-dark-2: var(--ink);
  --glow-dark: rgba(255, 255, 255, 0.08);
  --color-text: var(--white);
  --color-muted: var(--gray);
  --color-line-cool: var(--line-dark);
  --glow-cool: 0 0 0 4px var(--red-soft);
  --color-warm: var(--red);
  --color-warm-soft: var(--red-soft);
  --color-cool-soft: var(--surface-dark-2);
  --color-accent-cool: var(--gray-muted);
  --color-navy-soft: var(--ink-2);
  --color-dark: var(--ink-2);
  --shadow-soft: 0 22px 58px var(--shadow-dark);
  --shadow-editorial: 0 24px 64px var(--shadow-dark);
  --radius-xl: 34px;
  --radius-lg: 24px;
  --container: 1120px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 92px; }
body {
  margin: 0;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--color-text);
  background: var(--color-bg);
  line-height: 1.55;
}
body::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  opacity: 0.18;
  background-image: none;
  background-size: 64px 64px;
  transform: translateZ(0);
  mask-image: none;
}
a { color: inherit; text-decoration: none; }
.container { width: min(100% - 2rem, var(--container)); margin-inline: auto; }
.section { padding: clamp(2.65rem, 4.6vw, 4.4rem) 0; position: relative; }
.section--tight { padding-top: clamp(2.15rem, 3.75vw, 3.3rem); }
.section--tight-after { padding-bottom: clamp(2.25rem, 3.9vw, 3.45rem); }
.section--compact { padding-block: clamp(2.35rem, 4vw, 3.55rem); }
.section--soft { background: var(--mint-pale); border-block: 1px solid rgba(10,98,104,.18); }
.eyebrow { position: relative; display: inline-flex; align-items: center; gap: .62rem; margin: 0 0 0.9rem; color: var(--color-warm); font-size: 0.72rem; font-weight: 850; letter-spacing: 0.18em; text-transform: uppercase; }
.eyebrow::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--color-warm); box-shadow: 0 0 0 4px var(--color-warm-soft), 0 0 18px rgba(175,163,191,.16); }
h1, h2, h3, p { margin-top: 0; }
h1, h2 { color: var(--color-ink); line-height: 0.98; letter-spacing: -0.055em; }
h1 { max-width: 780px; margin-bottom: 1.18rem; font-size: clamp(3.05rem, 6.1vw, 5.45rem); text-wrap: balance; }
h2 { max-width: 690px; margin-bottom: 1rem; font-size: clamp(2.05rem, 3.9vw, 3.35rem); text-wrap: balance; }
h3 { margin-bottom: 0.45rem; color: var(--color-ink); font-size: 1.02rem; letter-spacing: -0.025em; }
p { color: var(--color-muted); }

.site-header { position: sticky; top: 0; z-index: 20; border-bottom: 1px solid transparent; background: rgba(227, 236, 231, 0.94); backdrop-filter: blur(18px); transition: border-color .25s ease, background .25s ease, box-shadow .25s ease; }
.site-header.is-scrolled { border-color: var(--line-soft); background: rgba(217, 215, 211, .96); box-shadow: 0 12px 32px rgba(16,19,24,.055); }
.navbar { display: flex; align-items: center; justify-content: space-between; min-height: clamp(60px, 5vw, 68px); gap: clamp(1rem, 2.2vw, 1.8rem); }
.logo { display: inline-flex; align-items: center; justify-content: flex-start; width: auto; min-width: 0; max-width: none; height: auto; min-height: 0; flex: 0 0 auto; overflow: visible; transition: transform .22s ease, filter .22s ease; }
.logo img { display: block; width: clamp(130px, 11vw, 165px); max-width: none; height: auto; max-height: none; object-fit: contain; object-position: left center; transform: none; transform-origin: left center; filter: none; }
.logo:hover, .logo:focus-visible { transform: translateY(-1px); filter: saturate(1.05); }
.nav-menu { display: flex; align-items: center; gap: .15rem; margin: 0; padding: .3rem; list-style: none; border: 1px solid var(--line-soft); border-radius: 999px; background: var(--color-mint-soft); }
.nav-menu a { position: relative; display: inline-flex; padding: .52rem .78rem; border-radius: 999px; color: var(--ink-soft); font-size: .86rem; font-weight: 760; transition: color .2s ease, background .2s ease, transform .2s ease; }
.nav-menu a::after { content: ""; position: absolute; left: .8rem; right: .8rem; bottom: .36rem; height: 1px; background: var(--color-mint); opacity: 0; transform: scaleX(.35); transition: opacity .22s ease, transform .22s ease; }
.nav-menu a:hover, .nav-menu a:focus-visible { color: var(--color-ink); background: var(--color-cool-soft); transform: translateY(-1px); }
.nav-menu a:hover::after, .nav-menu a:focus-visible::after { opacity: .7; transform: scaleX(1); }
.nav-toggle { display: none; width: 42px; height: 42px; border: 1px solid var(--color-line); border-radius: 999px; background: var(--color-surface); cursor: pointer; }
.nav-toggle__line { display: block; width: 17px; height: 2px; margin: 4px auto; background: var(--color-ink); }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

.hero { min-height: min(610px, calc(100vh - 78px)); display: grid; align-items: start; overflow: hidden; padding-top: clamp(.75rem, 1.6vw, 1.35rem); padding-bottom: clamp(1.65rem, 3vw, 2.55rem); }
.hero::before { content: none; }
.hero__grid { position: absolute; inset: 7% 5% 5%; border: 1px solid rgba(37, 61, 74, .07); border-radius: var(--radius-xl); opacity: .58; background: rgba(227,236,231,.26); }
.hero__grid::before, .hero__grid::after { content:""; position:absolute; background:rgba(37,61,74,.075); }
.hero__grid span { position: absolute; width: 7px; height: 7px; border-radius: 50%; background: var(--color-accent-cool); box-shadow: var(--glow-cool); opacity: .62; }
.hero__grid span:nth-child(1) { left: 68%; top: 18%; }
.hero__grid span:nth-child(2) { left: 18%; top: 52%; background: var(--mint); }
.hero__grid span:nth-child(3) { right: 12%; bottom: 18%; }
.hero__grid::before { left: 68%; top: 0; bottom: 0; width: 1px; }
.hero__grid::after { left: 0; right: 0; top: 52%; height: 1px; }
.hero__shape--one { position: absolute; right: 10%; top: 16%; width: 122px; aspect-ratio: 1; border: 1px solid rgba(96,113,124,.24); border-radius: 50%; box-shadow: 0 0 58px rgba(255,255,255,.18); }
.hero__shape--one::after { content:""; position:absolute; inset: 32px; border-radius: 50%; background: var(--color-lavender-soft); }
.hero__content { display: grid; grid-template-columns: minmax(0, 1fr) minmax(330px, 410px); gap: clamp(2rem, 5vw, 4.3rem); align-items: center; padding-block: clamp(2.35rem, 4.4vw, 4.15rem); }
.hero__copy { position: relative; max-width: 800px; }
.hero__copy::after { content: ""; display: block; width: clamp(72px, 9vw, 112px); height: 1px; margin-top: 1.2rem; background: var(--color-lavender); opacity: .72; }
.hero__text { max-width: 590px; margin-bottom: 0; font-size: clamp(1.02rem, 1.75vw, 1.22rem); color: #405365; }
.hero__actions { display: flex; flex-wrap: wrap; gap: .72rem; width: fit-content; margin-top: 1.38rem; padding: 0; }
.button { position: relative; isolation: isolate; overflow: hidden; display: inline-flex; align-items: center; justify-content: center; min-height: 46px; padding: .82rem 1.18rem; border: 1px solid transparent; border-radius: 999px; font-weight: 850; transition: transform .24s ease, box-shadow .24s ease, background .24s ease, border-color .24s ease, filter .24s ease; }
.button::after { content: ""; position: absolute; inset: -1px; z-index: -1; background: var(--color-mint); opacity: 0; transform: translateX(-28%); transition: opacity .24s ease, transform .38s ease; }
.button:hover, .button:focus-visible { transform: translateY(-2px); filter: saturate(1.04); box-shadow: 0 16px 34px rgba(16,19,24,.13); }
.button:hover::after, .button:focus-visible::after { opacity: 1; transform: translateX(28%); }
.button--primary { color: #fff; background: var(--color-ink); box-shadow: 0 12px 30px rgba(16,19,24,.12); }
.button--primary:hover, .button--primary:focus-visible { border-color: rgba(96,113,124,.34); box-shadow: 0 18px 38px rgba(16,19,24,.18), 0 0 0 4px rgba(96,113,124,.10); }
.button--secondary { color: var(--color-ink); border-color: rgba(175,163,191,.22); background: rgba(247,251,250,.72); box-shadow: inset 0 0 0 1px rgba(96,113,124,.10); }
.button--secondary:hover, .button--secondary:focus-visible { border-color: rgba(175,163,191,.38); background: rgba(241,234,216,.58); box-shadow: inset 0 0 0 1px rgba(96,113,124,.14), 0 0 0 4px rgba(175,163,191,.07); }
.hero__panel { position: relative; overflow: hidden; align-self: stretch; min-height: 410px; display: flex; flex-direction: column; justify-content: space-between; padding: clamp(1.55rem, 2.5vw, 2.15rem); border: 1px solid rgba(37, 61, 74, .11); border-radius: calc(var(--radius-xl) + 6px); background: var(--ivory); box-shadow: 0 30px 74px rgba(16,19,24,.085), inset 0 1px 0 rgba(255,255,255,.86), 0 0 0 1px rgba(255,255,255,.36); backdrop-filter: blur(18px); }
.hero__panel::before { content: ""; position: absolute; inset: .65rem; border: 1px solid rgba(96,113,124,.16); border-top-color: rgba(217,154,32,.58); border-right-color: rgba(10,98,104,.28); border-radius: 26px; pointer-events: none; }
.hero__panel::after { content: ""; position: absolute; right: -28px; top: -30px; width: 118px; aspect-ratio: 1; border: 1px solid rgba(96,113,124,.26); border-radius: 50%; background: var(--color-lavender-soft); box-shadow: -28px 42px 78px rgba(96,113,124,.12); }
.panel-topline { position: relative; z-index: 1; display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-bottom: 1.35rem; }
.panel-kicker { display: block; color: var(--color-warm); font-size: .68rem; font-weight: 850; letter-spacing: .13em; text-transform: uppercase; }
.panel-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--color-warm); box-shadow: 0 0 0 4px var(--color-warm-soft), 0 0 20px rgba(175,163,191,.16); }
.hero__panel p { position: relative; max-width: 315px; margin-bottom: 0; color: var(--color-ink); font-size: clamp(1.35rem, 2vw, 1.62rem); font-weight: 850; line-height: 1.06; letter-spacing: -.045em; z-index: 1; }
.elevator-scene { position: relative; isolation: isolate; cursor: pointer; touch-action: manipulation; min-height: 222px; margin-top: 1.5rem; border-block: 1px solid rgba(174,193,199,.58); border-top-color: rgba(175,163,191,.22); background: var(--color-mint-soft); background-size: 54px 100%, 100% 40px; z-index: 1; }
.elevator-scene::before { content:""; position:absolute; inset: 18px 22px; border: 1px solid rgba(96,113,124,.13); border-radius: 24px; background: var(--color-mint-soft); pointer-events:none; }
.elevator-scene:focus-visible { outline: 2px solid rgba(175,163,191,.42); outline-offset: 5px; border-radius: 24px; }
.elevator-scene::after { content:""; position:absolute; right: 34px; top: 35px; width: 52px; aspect-ratio: 1; border: 1px solid rgba(96,113,124,.20); border-radius: 50%; background: rgba(227,236,231,.26); pointer-events:none; }
.elevator-visual { position: relative; z-index: 1; display: block; width: 100%; height: 222px; overflow: visible; }
.elevator-rails path, .elevator-level path, .elevator-arrow path, .elevator-directory path { fill: none; stroke: rgba(16,24,32,.23); stroke-width: 1.2; stroke-linecap: round; }
.elevator-rails path:nth-child(3), .elevator-rails path:nth-child(4) { stroke: rgba(96,113,124,.38); }
.elevator-level circle { fill: var(--color-accent-cool); opacity: .62; }
.elevator-level--top circle { fill: var(--color-warm); }
.elevator-directory--hint { opacity: .22; }
.elevator-directory__line { stroke: rgba(96,113,124,.24); stroke-width: .8; }
.elevator-directory--hint circle { fill: rgba(227,236,231,.82); stroke: rgba(96,113,124,.36); stroke-width: .75; }
.elevator-arrow path { stroke: url(#elevatorWarm); stroke-width: 1.5; opacity: .72; }
.elevator-cabin { transform-box: fill-box; transform-origin: center; }
.elevator-cabin__back { fill: url(#elevatorCabin); stroke: rgba(16,24,32,.30); stroke-width: 1.2; filter: drop-shadow(0 18px 26px rgba(16,19,24,.10)); }
.elevator-door { fill: rgba(247,251,250,.76); stroke: rgba(96,113,124,.28); stroke-width: 1; transform-box: fill-box; }
.elevator-door--left { transform-origin: left center; }
.elevator-door--right { transform-origin: right center; }
.elevator-cabin__split, .elevator-cabin__shine, .elevator-indicator path { fill: none; stroke: rgba(96,113,124,.42); stroke-width: 1.1; stroke-linecap: round; }
.elevator-indicator circle { fill: var(--color-warm); opacity: .76; }
.elevator-passenger, .elevator-person, .elevator-thought { transform-box: view-box; transform-origin: center; }
.elevator-passenger { opacity: 1; transform: translate3d(92px, 164px, 0); }
.elevator-thought { filter: drop-shadow(0 13px 18px rgba(16,19,24,.065)); transition: filter .24s ease, transform .24s ease; }
.elevator-scene:hover .elevator-thought, .elevator-scene:focus-visible .elevator-thought { filter: drop-shadow(0 16px 22px rgba(16,19,24,.09)); }
.elevator-scene.is-cta-ready { cursor: pointer; }
.elevator-scene.is-cta-ready .elevator-thought { transform: translate3d(0, -1px, 0); }
.elevator-thought__shape { fill: rgba(227,236,231,.94); stroke: rgba(175,163,191,.38); stroke-width: .95; }
.elevator-thought__text { fill: var(--color-ink); font-size: 12.35px; font-weight: 920; letter-spacing: .006em; transition: fill .22s ease, opacity .22s ease; }
.elevator-thought__text.is-cta { fill: var(--color-warm); cursor: pointer; text-decoration: underline; text-decoration-thickness: .62px; text-underline-offset: 2px; }
.elevator-scene.is-cta-ready:hover .elevator-thought__text.is-cta, .elevator-scene.is-cta-ready:focus-visible .elevator-thought__text.is-cta { fill: var(--color-lavender); }
.elevator-thought__cursor { opacity: .62; font-weight: 650; animation: elevator-cursor-blink 920ms ease-in-out infinite; }
.elevator-thought__text tspan { dominant-baseline: middle; }
.elevator-thought__shape { transition: stroke .24s ease, fill .24s ease, filter .24s ease; }
.elevator-scene.is-cta-ready .elevator-thought__shape { fill: rgba(227,236,231,.98); stroke: rgba(175,163,191,.62); filter: drop-shadow(0 0 14px rgba(175,163,191,.08)); }
.elevator-scene.is-cta-ready:hover .elevator-thought__shape, .elevator-scene.is-cta-ready:focus-visible .elevator-thought__shape { stroke: rgba(175,163,191,.78); filter: drop-shadow(0 0 18px rgba(175,163,191,.13)); }
.elevator-thought-bubbles circle { fill: rgba(227,236,231,.94); stroke: rgba(96,113,124,.36); stroke-width: .65; filter: drop-shadow(0 5px 9px rgba(16,19,24,.045)); }
.elevator-person__head { fill: var(--color-ink); }
.elevator-person__torso, .elevator-person__arm, .elevator-person__leg { fill: none; stroke: var(--color-ink); stroke-width: 1.35; stroke-linecap: round; stroke-linejoin: round; transform-box: view-box; }
.elevator-person__figure { transform-box: fill-box; transform-origin: center bottom; }
.elevator-person__arm { transform-origin: 0 14px; }
.elevator-person__leg { transform-origin: 0 24px; }
.elevator-person__warm-detail { fill: var(--color-warm); opacity: .78; }
.panel-message { position: relative; z-index: 1; margin-top: .9rem; color: var(--color-ink); font-size: .86rem; font-weight: 900; letter-spacing: -.015em; }
.panel-footer { position: relative; z-index: 1; display:grid; gap:.54rem; margin-top: 1.25rem; padding: .95rem 1rem .98rem 1.08rem; border: 1px solid rgba(174,193,199,.52); border-radius: 18px; background: rgba(223,242,235,.58); color: rgba(16,19,24,.64); font-size: clamp(.72rem, 1.15vw, .8rem); font-weight: 780; letter-spacing: .045em; text-transform: uppercase; box-shadow: inset 0 1px 0 rgba(255,255,255,.62); }
.panel-levels::before { content:""; position: absolute; left: 1.64rem; top: 1.28rem; bottom: 1.28rem; width: 1px; background: var(--color-lavender); }
.panel-level { position: relative; display:flex; align-items:baseline; gap:.62rem; min-height: 1.35rem; padding-left: 1.38rem; transition: color .35s ease, transform .35s ease; }
.panel-level::before { content:""; position: absolute; left: .33rem; top: 50%; width: 7px; height: 7px; border-radius: 50%; background: rgba(227,236,231,.98); border: 1px solid rgba(96,113,124,.56); box-shadow: 0 0 0 3px rgba(96,113,124,.08); transform: translate(-50%, -50%); transition: border-color .35s ease, background-color .35s ease, box-shadow .35s ease, transform .35s ease; }
.panel-level strong { min-width: 4.9rem; color: var(--color-ink); font-size: .88em; font-weight: 950; letter-spacing: .075em; }

.section-heading { max-width: 760px; margin-bottom: clamp(1.45rem, 2.6vw, 2rem); }
.services-section .section-heading { max-width: 820px; }
.services-section .section-heading h2 { max-width: 780px; }
.services-section .section-heading h2 span { white-space: nowrap; }
.services-section::before, .cases-section::before { content: ""; position: absolute; left: max(1rem, calc((100% - var(--container)) / 2)); top: 0; width: 1px; height: 54px; background: var(--color-mint); opacity: .55; }

.services-deck { position: relative; isolation: isolate; padding-top: .2rem; }
.services-deck::before { content:""; position:absolute; inset: 3.1rem -1.2rem -1.4rem; z-index:-1; border-radius: 38px; background: var(--color-mint-soft); border: 1px solid rgba(10,98,104,.12); opacity: .95; }
.services-deck__trigger { display: inline-flex; align-items: center; gap: .68rem; margin-bottom: clamp(1rem, 2vw, 1.45rem); padding: .72rem 1.05rem .7rem; border: 1px solid rgba(16,24,32,.14); border-radius: 999px; background: var(--color-mint-soft); color: rgba(16,19,24,.74); font-size: .68rem; font-weight: 950; letter-spacing: .155em; text-transform: uppercase; cursor: pointer; box-shadow: 0 16px 38px rgba(16,24,32,.055), inset 0 1px 0 rgba(255,255,255,.84); transition: color .24s ease, border-color .24s ease, transform .24s ease, box-shadow .24s ease, opacity .24s ease; }
.services-deck__trigger::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--color-warm); box-shadow: 0 0 0 5px rgba(175,163,191,.08), 0 0 18px rgba(175,163,191,.24); opacity: .9; }
.services-deck__trigger:hover, .services-deck__trigger:focus-visible { color: var(--color-ink); border-color: rgba(175,163,191,.34); transform: translateY(-1px); box-shadow: 0 18px 44px rgba(16,24,32,.075), inset 0 1px 0 rgba(255,255,255,.9); }
.services-deck__trigger:focus-visible, .service-card:focus-visible { outline: 2px solid rgba(175,163,191,.52); outline-offset: 4px; }
.services-deck.is-revealed .services-deck__trigger { pointer-events: none; opacity: .62; }
.services-deck.is-acknowledging .service-card { transform: translateY(-2px) rotate(0deg); }
.services-grid { --card-h: clamp(238px, 24vw, 292px); display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(.9rem, 1.55vw, 1.12rem); perspective: 1600px; transform-style: preserve-3d; }
.service-card { --rest-x: 0px; --rest-y: 0px; --rest-rotate: 0deg; --shuffle-x1: 0px; --shuffle-y1: 0px; --shuffle-r1: 0deg; --shuffle-x2: 0px; --shuffle-y2: 0px; --shuffle-r2: 0deg; position: relative; min-height: var(--card-h); padding: 0; border: 0; border-radius: 25px; background: transparent; cursor: pointer; transform: translate3d(var(--rest-x), var(--rest-y), 0) rotate(var(--rest-rotate)); transform-origin: 50% 66%; transition: transform 520ms cubic-bezier(.22,1,.36,1), filter .32s ease, z-index .1s linear; z-index: calc(10 - var(--card-index)); }
.service-card:nth-child(1) { --card-bg: #CDC0D9; --suit: var(--color-ink-soft); }
.service-card:nth-child(2) { --card-bg: #C7BBD2; --suit: var(--color-ink-soft); }
.service-card:nth-child(3) { --card-bg: #B6D9CE; --suit: var(--color-ink-soft); }
.service-card:nth-child(4) { --card-bg: #E3ECE7; --suit: var(--color-ink-soft); }
.service-card:nth-child(5) { --card-bg: #D9D7D3; --suit: var(--color-ink-soft); }
.service-card:nth-child(6) { --card-bg: #CDC0D9; --suit: var(--color-ink-soft); }
.service-card:hover { z-index: 22; transform: translate3d(var(--rest-x), calc(var(--rest-y) - 10px), 0) rotate(calc(var(--rest-rotate) * .75)); filter: drop-shadow(0 22px 34px rgba(16,24,32,.12)); }
.service-card__inner { position: absolute; inset: 0; display: block; border-radius: inherit; transform-style: preserve-3d; transition: transform 760ms cubic-bezier(.2,.72,.16,1); transition-delay: 0ms; }
.service-card__face { position: absolute; inset: 0; display: flex; flex-direction: column; overflow: hidden; border-radius: inherit; backface-visibility: hidden; -webkit-backface-visibility: hidden; }
.service-card__back { align-items: center; justify-content: center; border: 1px solid rgba(236,244,243,.18); background: #101820; box-shadow: inset 0 1px 0 rgba(255,255,255,.13), inset 0 -22px 48px rgba(0,0,0,.16), 0 24px 60px rgba(16,24,32,.16); }
.service-card__back::before { content:""; position:absolute; inset: 13px; border: 1px solid rgba(239,247,246,.28); border-radius: 18px; background: rgba(205,192,217,.10); background-size: 18px 18px, 18px 18px, 100% 100%; box-shadow: inset 0 0 0 5px rgba(10,20,28,.28), inset 0 0 0 6px rgba(175,163,191,.22); opacity: .9; }
.service-card__back::after { content:""; position:absolute; inset: 34px; border: 1px solid rgba(239,247,246,.18); border-radius: 999px; transform: rotate(-21deg); opacity: .95; }
.service-card__monogram { position: relative; z-index: 1; display:grid; place-items:center; width: 58px; height: 58px; border: 1px solid rgba(239,247,246,.25); border-radius: 50%; color: rgba(247,250,249,.9); font-size: .82rem; font-weight: 950; letter-spacing: .22em; text-transform: uppercase; box-shadow: 0 0 0 9px rgba(255,255,255,.025); }
.service-card__backline { position: relative; z-index: 1; width: 54px; height: 1px; margin-top: 1rem; background: var(--color-lavender); }
.service-card__front { justify-content: space-between; padding: clamp(1.16rem, 2vw, 1.48rem); border: 1px solid rgba(96,113,124,.28); background: var(--card-bg, var(--surface)); background-size: 18px 18px, auto; color: var(--color-ink); box-shadow: 0 24px 58px rgba(16,24,32,.11), inset 0 1px 0 rgba(255,255,255,.92); transform: rotateY(180deg); }
.service-card__front::before { content:""; position:absolute; inset: 12px; border: 1px solid rgba(16,24,32,.13); border-radius: 18px; pointer-events:none; box-shadow: inset 0 0 0 5px rgba(255,255,255,.20); }
.service-card__front::after { content:""; position:absolute; left: 1.18rem; right: 1.18rem; bottom: 1.08rem; height: 2px; background: var(--suit); opacity: .78; }
.services-deck.is-shuffling .service-card { animation: service-shuffle 900ms cubic-bezier(.2,.72,.16,1) both; animation-delay: calc(var(--card-index) * 34ms); }
.services-deck.is-revealed .service-card { transform: translate3d(0, 0, 0) rotate(0deg); cursor: default; z-index: 1; }
.services-deck.is-revealed .service-card__inner { transform: rotateY(180deg); transition-delay: calc(180ms + (var(--card-index) * 130ms)); }
.services-deck.is-revealed .service-card:hover { transform: translateY(-6px) rotate(0deg); filter: drop-shadow(0 24px 35px rgba(16,24,32,.10)); }
.service-card__index { display: block; position: relative; z-index: 1; color: rgba(16,19,24,.42); font-size: .72rem; font-weight: 950; letter-spacing: .18em; }
.service-card__index::after { content:""; display:block; width: 28px; height: 1px; margin-top: .72rem; background: rgba(175,163,191,.72); }
.service-card__title { display: block; position: relative; z-index: 1; max-width: 12rem; margin-top: auto; margin-bottom: .72rem; font-family: var(--font-display); font-size: clamp(1.42rem, 2.35vw, 1.78rem); line-height: .96; letter-spacing: -.057em; }
.service-card__text { display: block; position: relative; z-index: 1; max-width: 15rem; color: rgba(16,24,32,.66); font-size: .97rem; line-height: 1.45; }
.icon { position: absolute; right: 1.45rem; top: 1.35rem; width: 34px; height: 34px; border: 1px solid rgba(16,19,24,.16); border-radius: 50%; background: rgba(255,255,255,.24); transition: border-color .22s ease, transform .22s ease, box-shadow .22s ease; }
.service-card:hover .icon { border-color: rgba(175,163,191,.42); transform: rotate(-8deg) scale(1.04); box-shadow: 0 0 0 7px rgba(175,163,191,.08); }
.icon::before { content:""; position:absolute; inset: 10px; border: 2px solid var(--color-accent-cool); border-radius: 4px; }
.icon--ads::before { border-radius: 50%; }
.icon--data::before { border-width: 0 0 2px 2px; transform: rotate(-45deg); }
.icon--auto::before { border-radius: 50%; border-style: dashed; }
.icon--custom::before { background: var(--color-accent-cool); border: 0; clip-path: polygon(50% 0,100% 40%,82% 100%,18% 100%,0 40%); }
@keyframes service-shuffle { 0% { transform: translate3d(var(--rest-x), var(--rest-y), 0) rotate(var(--rest-rotate)); } 30% { transform: translate3d(var(--shuffle-x1), var(--shuffle-y1), 42px) rotate(var(--shuffle-r1)); } 58% { transform: translate3d(var(--shuffle-x2), var(--shuffle-y2), 16px) rotate(var(--shuffle-r2)); } 82% { transform: translate3d(0, 0, 0) rotate(calc(var(--rest-rotate) * -.45)); } 100% { transform: translate3d(0, 0, 0) rotate(0deg); } }

.experience-band { overflow: hidden; background: var(--bg-dark); color: #fff; padding-block: clamp(3.3rem, 5vw, 4.7rem); }
.section-overlap { margin-top: clamp(.5rem, 1.6vw, 1.2rem); }
.experience-band::before { content:""; position:absolute; inset:0; background: var(--bg-dark); background-size: auto, auto, 64px 64px; }
.experience-band::after { content:""; position:absolute; left: 0; right: 0; bottom: 0; height: 1px; background: rgba(205,192,217,.44); }
.experience-panel { display: grid; grid-template-columns: minmax(0, .96fr) minmax(420px, 1.04fr); gap: clamp(2.2rem, 5vw, 4.2rem); align-items: end; }
.experience-panel h2, .experience-panel .eyebrow { color: #fff; }
.experience-machine { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) 74px; gap: 1rem; align-items: stretch; padding: clamp(1rem, 1.9vw, 1.25rem); border: 1px solid rgba(96,113,124,.26); border-radius: 30px; background: rgba(205,192,217,.08); box-shadow: inset 0 1px 0 rgba(255,255,255,.08), 0 24px 64px rgba(0,0,0,.14); overflow: hidden; }
.experience-machine::before { content:""; position:absolute; inset:0; background: transparent; background-size: 54px 100%, auto; pointer-events:none; opacity:.9; }
.experience-machine__header { position: relative; z-index:1; grid-column: 1 / -1; display:flex; align-items:center; justify-content:space-between; gap:1rem; padding-bottom:.72rem; border-bottom:1px solid rgba(96,113,124,.18); color: rgba(232,238,242,.74); font-size:.66rem; font-weight:850; letter-spacing:.15em; text-transform:uppercase; }
.experience-machine__header small { color: rgba(175,163,191,.82); font-size:.62rem; letter-spacing:.14em; }
.experience-metrics { position: relative; z-index:1; display: grid; gap: .62rem; }
.experience-metrics .metric-item { position: relative; display:grid; grid-template-columns: minmax(7.4rem, auto) 1fr; align-items:baseline; gap: clamp(.85rem, 1.8vw, 1.2rem); padding: clamp(1rem, 1.7vw, 1.22rem) clamp(1rem, 1.8vw, 1.3rem); border: 1px solid rgba(96,113,124,.18); border-radius: 19px; background: rgba(227,236,231,.08); transition: border-color .34s ease, background .34s ease, box-shadow .34s ease, transform .34s ease; }
.experience-metrics .metric-item::before { content: ""; position: absolute; left: .88rem; top: .86rem; width: 5px; height: 5px; border-radius: 50%; background: var(--mint); opacity: .7; box-shadow: 0 0 18px rgba(96,113,124,.24); }
.experience-metrics .metric-item.is-settled { border-color: rgba(175,163,191,.32); background: rgba(205,192,217,.12); box-shadow: 0 0 0 1px rgba(175,163,191,.055), 0 16px 36px rgba(0,0,0,.10); transform: translateY(-1px); }
.experience-metrics .metric-item.is-settled::before { background: var(--color-warm); box-shadow: 0 0 18px rgba(175,163,191,.24); }
.experience-metrics strong { display: flex; align-items: baseline; justify-content: flex-end; color: #fff; font-variant-numeric: tabular-nums; font-size: clamp(2.85rem, 5.4vw, 4.65rem); line-height: .86; letter-spacing: -.075em; min-width: 6.7rem; }
.metric-prefix { margin-right: .04em; }
.metric-value { display:inline-block; min-width: 1.18em; text-align:left; will-change: transform, opacity; }
.experience-machine.is-rolling .metric-value { animation: metric-roll 150ms linear infinite; }
.experience-metrics span:not(.metric-prefix):not(.metric-value) { display: block; color: rgba(216,222,231,.86); font-size: .88rem; font-weight: 780; letter-spacing: .012em; }
.experience-lever { position: relative; z-index:1; align-self: stretch; width: 74px; min-height: 100%; border: 1px solid rgba(96,113,124,.22); border-radius: 999px; background: rgba(205,192,217,.10); cursor: pointer; box-shadow: inset 0 1px 0 rgba(255,255,255,.09); }
.experience-lever:focus-visible { outline: 2px solid rgba(175,163,191,.52); outline-offset: 4px; }
.experience-lever__rail { position:absolute; left:50%; top: 1.35rem; bottom: 1.35rem; width:1px; background: var(--color-lavender-soft); transform: translateX(-50%); }
.experience-lever__arm { position:absolute; left:50%; top: 1.15rem; width: 2px; height: calc(100% - 3.1rem); background: var(--color-lavender); border-radius:999px; transform: translateX(-50%) rotate(-8deg); transform-origin: 50% 84%; transition: transform 560ms cubic-bezier(.22,1,.36,1); }
.experience-lever__arm span { position:absolute; left:50%; top:-.52rem; width: 23px; aspect-ratio:1; border-radius:50%; background: var(--color-mint); border:1px solid rgba(240,248,248,.32); box-shadow: 0 10px 24px rgba(0,0,0,.22), 0 0 0 5px rgba(96,113,124,.08); transform: translateX(-50%); }
.experience-machine.is-pulling .experience-lever__arm { transform: translateX(-50%) rotate(15deg); }
@keyframes metric-roll { 0% { transform: translateY(-.32em); opacity:.52; } 50% { opacity:1; } 100% { transform: translateY(.32em); opacity:.52; } }

.split-layout, .about { display: grid; grid-template-columns: .86fr 1.14fr; gap: clamp(1.8rem, 4.8vw, 3.8rem); align-items: start; }
.section-heading--sticky { position: sticky; top: 104px; }
.cases-section .section-heading { position: static; transform: none; transition: opacity .45s ease; }
.cases-section .section-heading.reveal { transform: none; }
.cases-section .section-heading.reveal.is-visible { transform: none; }
.case-list { display: grid; gap: .25rem; border-top: 1px solid var(--color-line); }
.case-item { position: relative; display: grid; grid-template-columns: 60px 1fr; gap: .68rem 1.1rem; padding: 1.08rem 0; border-bottom: 1px solid var(--color-line); transition: padding-left .2s ease, background .2s ease, border-color .2s ease; }
.case-item::before { content:""; position:absolute; left:0; top:0; bottom:0; width:2px; background: var(--color-lavender); opacity:0; transform: scaleY(.35); transform-origin: center; transition: opacity .2s ease, transform .2s ease; }
.case-item:hover { padding-left: .7rem; border-color: rgba(96,113,124,.30); background: var(--color-lavender-soft); }
.case-item:hover::before { opacity: 1; transform: scaleY(1); }
.case-item span { grid-row: span 2; color: var(--color-warm); font-weight: 900; }
.case-item p { max-width: 520px; margin-bottom: 0; }
.case-item h3 { margin-bottom: 0; }
.about { align-items: center; max-width: 960px; }
.about__mark { position: relative; display: grid; width: min(100%, 330px); min-height: 182px; padding: clamp(1.5rem, 3vw, 2rem) clamp(1.15rem, 2.6vw, 1.75rem) clamp(1.9rem, 3vw, 2.35rem); place-items: center; border: 1px solid rgba(16,19,24,.11); border-radius: 30px; background: var(--ivory); box-shadow: 0 24px 60px rgba(16,19,24,.07); overflow: hidden; }
.about__mark::before { content:""; position:absolute; inset: 12px; border: 1px solid rgba(96,113,124,.18); border-radius: 22px; pointer-events: none; }
.about__mark::after { content:""; position:absolute; right: 1.05rem; top: 1.05rem; width: 42px; aspect-ratio: 1; border: 1px solid rgba(175,163,191,.18); border-radius: 50%; background: var(--color-lavender-soft); opacity: .8; pointer-events: none; }
.about__mark img { position: relative; z-index: 1; width: min(100%, 270px); height: auto; object-fit: contain; filter: drop-shadow(0 10px 18px rgba(16,19,24,.09)); }
.about__mark small { position: absolute; z-index: 1; left: clamp(1.45rem, 3vw, 1.9rem); bottom: 1rem; color: rgba(16,19,24,.38); font-size: .58rem; font-weight: 900; letter-spacing: .18em; text-transform: uppercase; }
.about p { max-width: 540px; font-size: 1.02rem; }
.contact__content { position: relative; overflow: hidden; display: grid; grid-template-columns: minmax(0, 1fr) minmax(220px, auto); gap: 1.8rem 3rem; align-items: center; padding: clamp(2.5rem, 5vw, 4.35rem); border: 1px solid rgba(255,255,255,.16); border-radius: calc(var(--radius-xl) + 4px); background: var(--bg-dark); color: #fff; box-shadow: 0 28px 76px rgba(16,19,24,.16); }
.contact__content::before { content:""; position:absolute; inset:0; background: transparent; background-size: auto, auto, 64px 64px; pointer-events: none; }
.contact__content::after { content:""; position:absolute; right: clamp(1.4rem, 4vw, 3rem); top: clamp(1.2rem, 3vw, 2.4rem); width: 96px; aspect-ratio: 1; border: 1px solid rgba(96,113,124,.34); border-radius: 50%; background: var(--color-lavender); pointer-events: none; }
.contact__content > * { position: relative; z-index: 1; }
.contact__copy { max-width: 690px; }
.contact__content .eyebrow, .contact__content h2 { color: #fff; }
.contact__content h2 { margin-bottom: 0; }
.button--light { justify-self: end; color: var(--color-ink); background: var(--bg-card-2); border-color: rgba(255,255,255,.24); box-shadow: 0 16px 42px rgba(0,0,0,.16); }
.button--light:hover, .button--light:focus-visible { background: var(--color-cool-soft); border-color: rgba(96,113,124,.46); box-shadow: 0 20px 46px rgba(0,0,0,.2), 0 0 0 4px rgba(96,113,124,.12); }
.site-footer { padding: 1.55rem 0; border-top: 1px solid var(--color-line); background: rgba(227,236,231,.90); }
.footer__content { display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.footer__content p { margin:0; } .footer__content a { color:var(--color-warm); font-weight:850; }
.reveal { opacity: 1; transform: translateY(0); }
.js .reveal { opacity: 0; transform: translateY(36px); transition: opacity 860ms cubic-bezier(0.22, 1, 0.36, 1), transform 860ms cubic-bezier(0.22, 1, 0.36, 1); transition-delay: var(--reveal-delay, 0ms); will-change: opacity, transform; }
.js .reveal.is-visible { opacity: 1; transform: translateY(0); }
.reveal-static, .js .reveal-static, .js .reveal-static.is-visible { transform: none; }
.reveal-delay-1 { --reveal-delay: 120ms; }
.reveal-delay-2 { --reveal-delay: 240ms; }
.reveal-delay-3 { --reveal-delay: 360ms; }
.reveal-group > * { opacity: 1; transform: translateY(0); }
.js .reveal-group > * { opacity: 0; transform: translateY(36px); transition: opacity 940ms cubic-bezier(0.22, 1, 0.36, 1), transform 940ms cubic-bezier(0.22, 1, 0.36, 1); transition-delay: calc(var(--item-index, 0) * 120ms); will-change: opacity, transform; }
.js .reveal-group.is-visible > * { opacity: 1; transform: translateY(0); }

@media (prefers-reduced-motion: no-preference) {
  .hero::before { content: none; }
  .hero__shape--one { animation: float-orbit 8.5s ease-in-out infinite; }
  .hero__grid span { animation: node-breathe 5.8s ease-in-out infinite; animation-delay: calc(var(--item-index, 0) * -1.2s); }
  .hero__panel.is-visible { animation: panel-float 8.5s ease-in-out infinite; }
  .hero__panel::after, .contact__content::after { animation: soft-pulse 7s ease-in-out infinite; }
  .elevator-cabin { animation: elevator-rise 10s cubic-bezier(.65,0,.35,1) infinite; }
  .elevator-door--left { animation: elevator-door-left 10s cubic-bezier(.65,0,.35,1) infinite; }
  .elevator-door--right { animation: elevator-door-right 10s cubic-bezier(.65,0,.35,1) infinite; }
  .elevator-passenger { animation: elevator-passenger-route 10s linear infinite; }
  .elevator-person__figure { animation: elevator-walk-bob 10s ease-in-out infinite; }
  .elevator-person__leg--front, .elevator-person__arm--back { animation: elevator-walk-forward 10s ease-in-out infinite; }
  .elevator-person__leg--back, .elevator-person__arm--front { animation: elevator-walk-back 10s ease-in-out infinite; }
  .elevator-thought__text { animation: elevator-word-breathe 10s ease-in-out infinite; }
  .elevator-thought-bubbles circle { animation: thought-bubble-pulse 10s ease-in-out infinite; animation-delay: calc(var(--bubble-index, 0) * 120ms); }
  .elevator-arrow { animation: elevator-arrow-pulse 10s ease-in-out infinite; }
  .panel-level--base { animation: panel-level-base 10s ease-in-out infinite; }
  .panel-level--middle { animation: panel-level-middle 10s ease-in-out infinite; }
  .panel-level--top { animation: panel-level-top 10s ease-in-out infinite; }
  .panel-level--base::before { animation: panel-level-dot-base 10s ease-in-out infinite; }
  .panel-level--middle::before { animation: panel-level-dot-middle 10s ease-in-out infinite; }
  .panel-level--top::before { animation: panel-level-dot-top 10s ease-in-out infinite; }
  .contact__content::before { animation: glow-drift 10s ease-in-out infinite; }
  .elevator-scene.is-paused .elevator-cabin,
  .elevator-scene.is-paused .elevator-door--left,
  .elevator-scene.is-paused .elevator-door--right,
  .elevator-scene.is-paused .elevator-passenger,
  .elevator-scene.is-paused .elevator-person__figure,
  .elevator-scene.is-paused .elevator-person__leg--front,
  .elevator-scene.is-paused .elevator-person__arm--back,
  .elevator-scene.is-paused .elevator-person__leg--back,
  .elevator-scene.is-paused .elevator-person__arm--front,
  .elevator-scene.is-paused .elevator-thought-bubbles circle,
  .elevator-scene.is-paused .elevator-arrow { animation-play-state: paused; }
  .elevator-scene.is-paused .elevator-thought__text { animation: none; }
  .elevator-scene.is-paused .elevator-thought__cursor { animation: elevator-cursor-blink 920ms ease-in-out infinite; }
}
@keyframes panel-float {
  0%, 100% { transform: translate3d(0, 0, 0); }
  50% { transform: translate3d(0, -9px, 0); }
}
@keyframes node-breathe {
  0%, 100% { opacity: .45; transform: translate3d(0, 0, 0) scale(1); }
  50% { opacity: .82; transform: translate3d(0, -2px, 0) scale(1.22); }
}
@keyframes diagram-node {
  0%, 100% { filter: saturate(1); transform: translate3d(0, 0, 0) scale(1); }
  50% { filter: saturate(1.28); transform: translate3d(0, -2px, 0) scale(1.06); }
}
@keyframes diagram-line {
  0%, 100% { opacity: .72; filter: saturate(1); transform: rotate(-12deg) scaleX(1); }
  50% { opacity: 1; filter: saturate(1.35); transform: rotate(-12deg) scaleX(1.025); }
}
@keyframes elevator-rise {
  0%, 36% { opacity: 1; transform: translate3d(0, 0, 0); }
  52%, 88% { opacity: 1; transform: translate3d(0, -120px, 0); }
  92% { opacity: 0; transform: translate3d(0, -120px, 0); }
  96% { opacity: 0; transform: translate3d(0, 0, 0); }
  100% { opacity: 1; transform: translate3d(0, 0, 0); }
}
@keyframes elevator-door-left {
  0%, 24% { transform: scaleX(.18); opacity: .68; }
  34%, 58% { transform: scaleX(1); opacity: .96; }
  68%, 88% { transform: scaleX(.18); opacity: .70; }
  92%, 96% { transform: scaleX(.18); opacity: 0; }
  100% { transform: scaleX(.18); opacity: .68; }
}
@keyframes elevator-door-right {
  0%, 24% { transform: scaleX(.18); opacity: .68; }
  34%, 58% { transform: scaleX(1); opacity: .96; }
  68%, 88% { transform: scaleX(.18); opacity: .70; }
  92%, 96% { transform: scaleX(.18); opacity: 0; }
  100% { transform: scaleX(.18); opacity: .68; }
}
@keyframes elevator-passenger-route {
  0%, 6% { opacity: 1; transform: translate3d(92px, 164px, 0); }
  14% { opacity: 1; transform: translate3d(118px, 164px, 0); }
  23% { opacity: 1; transform: translate3d(148px, 164px, 0); }
  28% { opacity: 1; transform: translate3d(160px, 164px, 0); }
  32%, 63% { opacity: 0; transform: translate3d(164px, 164px, 0); }
  67% { opacity: 0; transform: translate3d(164px, 44px, 0); }
  72%, 77% { opacity: 1; transform: translate3d(164px, 44px, 0); }
  84% { opacity: 1; transform: translate3d(198px, 44px, 0); }
  91% { opacity: 1; transform: translate3d(236px, 44px, 0); }
  96%, 100% { opacity: 0; transform: translate3d(258px, 44px, 0); }
}
@keyframes elevator-walk-bob {
  0%, 5%, 32%, 71%, 96%, 100% { transform: translateY(0); }
  10%, 18%, 25%, 80%, 88% { transform: translateY(-1.4px); }
  14%, 22%, 28%, 84%, 92% { transform: translateY(.4px); }
}
@keyframes elevator-walk-forward {
  0%, 5%, 32%, 71%, 96%, 100% { transform: rotate(0deg); }
  10%, 25%, 80%, 92% { transform: rotate(14deg); }
  17%, 28%, 86% { transform: rotate(-10deg); }
}
@keyframes elevator-walk-back {
  0%, 5%, 32%, 71%, 96%, 100% { transform: rotate(0deg); }
  10%, 25%, 80%, 92% { transform: rotate(-10deg); }
  17%, 28%, 86% { transform: rotate(14deg); }
}
@keyframes elevator-word-breathe {
  0%, 82% { opacity: 1; transform: translateY(0); }
  88% { opacity: .82; transform: translateY(-1px); }
  94%, 100% { opacity: 0; transform: translateY(-3px); }
}
@keyframes elevator-cursor-blink {
  0%, 100% { opacity: .18; }
  45% { opacity: .72; }
}
@keyframes thought-bubble-pulse {
  0%, 100% { opacity: .78; transform: scale(1); }
  14%, 82% { opacity: .96; transform: scale(1.04); }
  94% { opacity: 0; transform: scale(.92); }
}
@keyframes elevator-arrow-pulse {
  0%, 32%, 62%, 100% { opacity: .42; transform: translate3d(0, 0, 0); }
  40%, 52% { opacity: .96; transform: translate3d(0, -6px, 0); }
}
@keyframes panel-level-base {
  0%, 34%, 96%, 100% { color: var(--color-ink); transform: translate3d(2px, 0, 0); }
  42%, 92% { color: rgba(16,19,24,.54); transform: translate3d(0, 0, 0); }
}
@keyframes panel-level-middle {
  0%, 34%, 62%, 100% { color: rgba(16,19,24,.54); transform: translate3d(0, 0, 0); }
  42%, 56% { color: var(--color-ink); transform: translate3d(2px, 0, 0); }
}
@keyframes panel-level-top {
  0%, 58%, 96%, 100% { color: rgba(16,19,24,.54); transform: translate3d(0, 0, 0); }
  68%, 90% { color: var(--color-ink); transform: translate3d(2px, 0, 0); }
}
@keyframes panel-level-dot-base {
  0%, 34%, 96%, 100% { background: rgba(175,163,191,.16); border-color: rgba(175,163,191,.74); box-shadow: 0 0 0 4px rgba(175,163,191,.08), 0 0 14px rgba(175,163,191,.18); transform: translate(-50%, -50%) scale(1.18); }
  42%, 92% { background: rgba(227,236,231,.98); border-color: rgba(96,113,124,.56); box-shadow: 0 0 0 3px rgba(96,113,124,.08); transform: translate(-50%, -50%) scale(1); }
}
@keyframes panel-level-dot-middle {
  0%, 34%, 62%, 100% { background: rgba(227,236,231,.98); border-color: rgba(96,113,124,.56); box-shadow: 0 0 0 3px rgba(96,113,124,.08); transform: translate(-50%, -50%) scale(1); }
  42%, 56% { background: rgba(175,163,191,.16); border-color: rgba(175,163,191,.74); box-shadow: 0 0 0 4px rgba(175,163,191,.08), 0 0 14px rgba(175,163,191,.18); transform: translate(-50%, -50%) scale(1.18); }
}
@keyframes panel-level-dot-top {
  0%, 58%, 96%, 100% { background: rgba(227,236,231,.98); border-color: rgba(96,113,124,.56); box-shadow: 0 0 0 3px rgba(96,113,124,.08); transform: translate(-50%, -50%) scale(1); }
  68%, 90% { background: rgba(175,163,191,.16); border-color: rgba(175,163,191,.74); box-shadow: 0 0 0 4px rgba(175,163,191,.08), 0 0 14px rgba(175,163,191,.18); transform: translate(-50%, -50%) scale(1.18); }
}

@keyframes glow-drift {
  0%, 100% { transform: translate3d(0, 0, 0); opacity: 1; }
  50% { transform: translate3d(10px, -6px, 0); opacity: .86; }
}
@keyframes float-orbit {
  0%, 100% { transform: translate3d(0, 0, 0); }
  50% { transform: translate3d(8px, -10px, 0); }
}
@keyframes hero-glow-breathe {
  0%, 100% { opacity: .78; transform: rotate(-12deg) scale(1); }
  50% { opacity: .94; transform: rotate(-12deg) scale(1.035); }
}
@keyframes soft-pulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: .78; transform: scale(1.035); }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .js .reveal, .js .reveal-group > * { opacity: 1; transform: none; transition: none; }
  .elevator-cabin { transform: translate3d(0, -120px, 0); }
  .elevator-passenger { opacity: 1; transform: translate3d(236px, 44px, 0); }
  .elevator-thought__text, .elevator-thought-bubbles circle { opacity: 1; transform: none; }
  .elevator-door--left, .elevator-door--right { transform: scaleX(.18); opacity: .74; }
  .elevator-directory--hint { opacity: .22; }
  .panel-level--top { color: var(--color-ink); transform: translate3d(2px, 0, 0); }
  .panel-level--top::before { background: rgba(175,163,191,.16); border-color: rgba(175,163,191,.74); box-shadow: 0 0 0 4px rgba(175,163,191,.08), 0 0 14px rgba(175,163,191,.18); transform: translate(-50%, -50%) scale(1.18); }
  .experience-machine.is-rolling .metric-value { animation: none; }
  .services-deck.is-shuffling .service-card { animation: none; }
  .service-card__inner { transition: none; }
}

@media (max-width: 860px) {
  .nav-toggle { display:block; }
  .nav-menu { position:absolute; inset:78px 1rem auto; display:none; flex-direction:column; align-items:stretch; border-radius:20px; background:var(--color-mint-soft); box-shadow:var(--shadow-soft); }
  .nav-menu.is-open { display:flex; }
  .nav-menu a { width:100%; }
  .nav-menu a::after { left: .78rem; right: auto; width: 34px; }
  .hero { min-height: auto; }
  .hero__content, .experience-panel, .split-layout, .about { grid-template-columns:1fr; align-items:start; }
  .hero__grid::before { display:none; }
  .hero__content { padding-block: clamp(1.65rem, 4vw, 2.75rem); }
  .hero__panel { max-width: 460px; min-height: 390px; }
  .elevator-scene { min-height: 206px; }
  .elevator-visual { height: 206px; }
  .services-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); --card-h: 250px; }
  .service-card:nth-child(1) { --card-bg: #CDC0D9; --suit: var(--color-ink-soft); }
  .service-card:nth-child(2) { --card-bg: #C7BBD2; --suit: var(--color-ink-soft); }
  .service-card:nth-child(3) { --card-bg: #B6D9CE; --suit: var(--color-ink-soft); }
  .service-card:nth-child(4) { --card-bg: #E3ECE7; --suit: var(--color-ink-soft); }
  .service-card:nth-child(5) { --card-bg: #D9D7D3; --suit: var(--color-ink-soft); }
  .service-card:nth-child(6) { --card-bg: #CDC0D9; --suit: var(--color-ink-soft); }
  .experience-machine { width: 100%; }
  .section-heading--sticky { position:static; }
  .about__mark { width: min(100%, 300px); min-height: 156px; padding-block: 1.3rem 1.9rem; }
  .about__mark img { width: min(100%, 244px); }
  .contact__content { grid-template-columns: 1fr; align-items: start; }
  .button--light { justify-self: start; }
}
@media (max-width: 560px) {
  .about__mark { width: 100%; min-height: 138px; padding: 1.2rem 1rem 1.75rem; border-radius: 24px; }
  .about__mark::before { inset: 10px; border-radius: 18px; }
  .about__mark::after { width: 32px; right: .9rem; top: .9rem; }
  .about__mark img { width: min(100%, 232px); }
  .about__mark small { left: 1.25rem; bottom: .85rem; font-size: .54rem; }
  .elevator-thought__text { font-size: 9.1px; }
  .container { width: min(100% - 1.25rem, var(--container)); }
  h1 { font-size: clamp(2.45rem, 12.6vw, 3.8rem); }
  .hero { padding-top: .35rem; }
  .hero__content { padding-block: 2.25rem; }
  .hero__grid { inset: 8% .75rem 6%; }
  .hero__shape--one { right: 1rem; top: 14%; width: 92px; }
  .navbar { min-height: 74px; }
  .nav-menu { inset: 74px .625rem auto; }
  .logo { width: auto; min-width: 0; max-width: none; flex-basis: auto; height: auto; min-height: 0; }
  .logo img { width: clamp(105px, 34vw, 135px); height: auto; max-width: none; max-height: none; transform: none; }
  .hero__actions { width: 100%; }
  .button { width: 100%; }
  .hero__panel { padding: 1.25rem; }
  .elevator-scene { margin-top: 1.15rem; min-height: 194px; }
  .elevator-visual { height: 194px; }
  .services-grid { grid-template-columns:1fr; --card-h: 214px; gap: .72rem; }
  .experience-machine { grid-template-columns: 1fr; padding: 1rem; border-radius: 24px; }
  .experience-metrics .metric-item { grid-template-columns: 1fr; gap: .34rem; }
  .experience-metrics strong { justify-content: flex-start; font-size: clamp(3rem, 16vw, 4.2rem); }
  .experience-lever { width: 100%; min-height: 64px; }
  .experience-lever__rail { left: 1.25rem; right: 1.25rem; top: 50%; bottom: auto; width: auto; height: 1px; transform: translateY(-50%); }
  .experience-lever__arm { left: 18%; top: 50%; width: 48%; height: 2px; transform: translateY(-50%) rotate(0deg); transform-origin: 92% 50%; }
  .experience-lever__arm span { left: 0; top: 50%; transform: translate(-50%, -50%); }
  .experience-machine.is-pulling .experience-lever__arm { transform: translateY(-50%) rotate(7deg); }
  .service-card { min-height: var(--card-h); }
  .service-card:nth-child(1) { --card-bg: #CDC0D9; --suit: var(--color-ink-soft); }
  .service-card:nth-child(2) { --card-bg: #C7BBD2; --suit: var(--color-ink-soft); }
  .service-card:nth-child(3) { --card-bg: #B6D9CE; --suit: var(--color-ink-soft); }
  .service-card:nth-child(4) { --card-bg: #E3ECE7; --suit: var(--color-ink-soft); }
  .service-card:nth-child(5) { --card-bg: #D9D7D3; --suit: var(--color-ink-soft); }
  .service-card:nth-child(6) { --card-bg: #CDC0D9; --suit: var(--color-ink-soft); }
  .services-deck.is-shuffling .service-card { animation-duration: 760ms; }
  .services-deck__trigger { width: 100%; justify-content: center; }
  .case-item { grid-template-columns: 44px 1fr; }
  .footer__content { align-items:flex-start; flex-direction:column; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *, *::before, *::after { animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important; }
  .reveal, .reveal-group > * { opacity:1; transform:none; transition:none!important; }
}


.experience-orbit { position:absolute; right: max(1rem, calc((100% - var(--container)) / 2)); top: 1.4rem; width: 160px; aspect-ratio: 1; border: 1px solid rgba(96,113,124,.18); border-radius: 50%; opacity: .55; pointer-events:none; }
.experience-orbit span { position:absolute; width: 7px; height: 7px; border-radius:50%; background: var(--mint); box-shadow: 0 0 22px rgba(96,113,124,.34); }
.experience-orbit span:first-child { left: 18%; top: 24%; }
.experience-orbit span:last-child { right: 16%; bottom: 18%; background: var(--color-warm); }
.case-item h3 { margin-bottom: .25rem; }
.contact__constellation { position:absolute; inset:auto clamp(1.4rem,4vw,3rem) clamp(1.35rem,3vw,2rem) auto; width: 190px; height: 86px; opacity:.72; pointer-events:none; }
.contact__constellation::before { content:""; position:absolute; left:16px; right:18px; top:42px; height:1px; background: var(--color-lavender); transform: rotate(-10deg); }
.contact__constellation span { position:absolute; width:7px; height:7px; border-radius:50%; background: var(--mint); box-shadow:0 0 20px rgba(96,113,124,.34); }
.contact__constellation span:nth-child(1){ left:12px; top:52px; }
.contact__constellation span:nth-child(2){ left:86px; top:30px; background:var(--bg-card-2); }
.contact__constellation span:nth-child(3){ right:12px; top:20px; background:var(--color-warm); }
@media (prefers-reduced-motion: no-preference) { .experience-orbit { animation: float-orbit 10s ease-in-out infinite; } }
@media (max-width: 860px) { .experience-orbit { right: 1rem; opacity:.28; } .contact__constellation { display:none; } }

/* Curaduría cromática editorial */
.hero h1::after { content: ""; display: block; width: clamp(88px, 11vw, 142px); height: 5px; margin-top: .55rem; border-radius: 999px; background: var(--color-lavender); opacity: .78; }
.button--primary:hover, .button--primary:focus-visible { background: var(--color-ink); }
.nav-menu a:nth-child(odd):hover, .nav-menu a:nth-child(odd):focus-visible { background: var(--color-lavender-soft); }
.nav-menu li:nth-child(2n) a::after { background: var(--color-lavender); }
.service-card:nth-child(1) { --card-bg: #CDC0D9; --suit: var(--color-ink-soft); }
.service-card:nth-child(2) { --card-bg: #C7BBD2; --suit: var(--color-ink-soft); }
.service-card:nth-child(3) { --card-bg: #B6D9CE; --suit: var(--color-ink-soft); }
.service-card:nth-child(4) { --card-bg: #E3ECE7; --suit: var(--color-ink-soft); }
.service-card:nth-child(5) { --card-bg: #D9D7D3; --suit: var(--color-ink-soft); }
.service-card:nth-child(6) { --card-bg: #CDC0D9; --suit: var(--color-ink-soft); }
.service-card__index, .service-card__index::after, .icon::before { color: var(--suit); background-color: var(--suit); border-color: var(--suit); }
.icon--strategy::before, .icon--ads::before, .icon--data::before, .icon--auto::before { background: transparent; }
.icon { background: rgba(255,255,255,.36); border-color: rgba(175,163,191,.34); box-shadow: 0 0 0 6px rgba(175,163,191,.08); }
.case-list { border-top-color: rgba(10,105,112,.26); }
.case-item { border-bottom-color: rgba(96,113,124,.20); }
.case-item h3::after { content:""; display:block; width:34px; height:2px; margin-top:.38rem; border-radius:999px; background:var(--color-mint); opacity:.62; }
.case-item:nth-child(2n) span { color: var(--teal-deep); }
.case-item:nth-child(3n) span { color: var(--mustard); }
.about-target__board { filter: saturate(1.08) contrast(1.02); }
.contact__content.is-lit .contact__lamp-bulb { filter: drop-shadow(0 0 12px rgba(182,217,206,.58)) drop-shadow(0 0 24px rgba(155,207,189,.22)); }

/* Contact lamp ignition scene */
.contact__content {
  min-height: clamp(350px, 34vw, 440px);
  grid-template-columns: minmax(0, 1fr) minmax(260px, 38%);
}
.contact__lamp-scene {
  position: absolute;
  inset: 0 0 0 52%;
  pointer-events: none;
  z-index: 0;
}
.contact__lamp-scene::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(16,24,32,.56);
  opacity: .88;
  transition: opacity 520ms ease;
  z-index: 0;
}
.contact__content.is-lit .contact__lamp-scene::after { opacity: .22; }
.contact__lamp-fixture {
  --lamp-size: clamp(78px, 8.4vw, 112px);
  --beam-length: clamp(245px, 27vw, 360px);
  position: absolute;
  top: clamp(.7rem, 1.8vw, 1.2rem);
  left: 50%;
  width: var(--lamp-size);
  height: calc(var(--lamp-size) * 1.17 + var(--beam-length));
  transform: translateX(-50%);
  z-index: 5;
}
.contact__lamp-fixture::before {
  content: "";
  position: absolute;
  left: 50%;
  top: calc(var(--lamp-size) * .54);
  width: calc(var(--lamp-size) * 1.62);
  aspect-ratio: 1;
  border-radius: 50%;
  background: var(--color-mint);
  filter: blur(20px);
  opacity: 0;
  transform: translateX(-50%) scale(.72);
  transition: opacity 460ms ease, transform 560ms cubic-bezier(.22,1,.36,1);
  z-index: 3;
}
.contact__lamp,
.contact-lamp {
  position: absolute;
  inset: 0 auto auto 0;
  width: 100%;
  overflow: visible;
  filter: drop-shadow(0 18px 24px rgba(0,0,0,.16));
  opacity: .72;
  z-index: 6;
}
.contact__lamp-cable,
.contact__lamp-shade,
.contact__lamp-rim {
  fill: none;
  stroke: rgba(166, 184, 190, .42);
  stroke-width: 1.35;
  stroke-linecap: round;
  stroke-linejoin: round;
  transition: stroke 420ms ease, filter 420ms ease;
}
.contact__lamp-shade {
  fill: rgba(247, 250, 249, .018);
  stroke: rgba(166, 184, 190, .40);
}
.contact__lamp-bulb {
  fill: rgba(145, 160, 166, .16);
  stroke: rgba(198, 212, 216, .16);
  stroke-width: 1;
  opacity: .38;
  transform-box: fill-box;
  transform-origin: center;
  transition: fill 420ms ease, filter 520ms ease, opacity 360ms ease, transform 520ms cubic-bezier(.22,1,.36,1);
}
.contact__lamp-switch {
  position: absolute;
  top: clamp(.95rem, 2vw, 1.45rem);
  right: clamp(1rem, 3vw, 2rem);
  z-index: 6;
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  padding: .32rem .4rem .32rem .54rem;
  border: 1px solid rgba(230,239,240,.12);
  border-radius: 999px;
  color: rgba(226,235,237,.48);
  background: rgba(247,250,249,.038);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.055), 0 10px 24px rgba(0,0,0,.12);
  cursor: pointer;
  backdrop-filter: blur(14px);
  transition: color 320ms ease, border-color 320ms ease, background 320ms ease, box-shadow 320ms ease, transform 320ms ease;
}
.contact__lamp-switch:hover,
.contact__lamp-switch:focus-visible {
  color: rgba(247,250,249,.9);
  border-color: rgba(230,239,240,.28);
  outline: none;
  transform: translateY(-1px);
}
.contact__lamp-switch-label {
  font-size: .56rem;
  font-weight: 850;
  letter-spacing: .13em;
  text-transform: uppercase;
}
.contact__lamp-switch-track {
  position: relative;
  width: 31px;
  height: 16px;
  border-radius: 999px;
  background: rgba(16,23,32,.74);
  box-shadow: inset 0 0 0 1px rgba(230,239,240,.12);
}
.contact__lamp-switch-track span {
  position: absolute;
  top: 3px;
  left: 3px;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: rgba(190,203,207,.76);
  box-shadow: 0 3px 8px rgba(0,0,0,.22);
  transition: transform 360ms cubic-bezier(.22,1,.36,1), background 320ms ease, box-shadow 320ms ease;
}
.contact__lamp-switch[aria-pressed="true"] {
  color: rgba(232,244,247,.82);
  border-color: rgba(232,244,247,.22);
  background: rgba(232,244,247,.075);
}
.contact__lamp-switch[aria-pressed="true"] .contact__lamp-switch-track span {
  transform: translateX(15px);
  background: rgba(239,248,250,.94);
  box-shadow: 0 0 14px rgba(199,224,230,.28), 0 3px 8px rgba(0,0,0,.22);
}
.contact__light-cone,
.contact-light {
  position: absolute;
  left: 50%;
  top: calc(var(--lamp-size) * .66);
  width: min(42vw, 420px);
  height: var(--beam-length);
  background: rgba(227,236,231,.22);
  clip-path: polygon(48% 0, 52% 0, 88% 100%, 12% 100%);
  filter: blur(18px);
  mix-blend-mode: screen;
  opacity: .012;
  transform: translate3d(-50%, -5px, 0) scaleY(.42);
  transform-origin: 50% 0;
  transition: opacity 440ms cubic-bezier(.22,1,.36,1), transform 560ms cubic-bezier(.22,1,.36,1), filter 560ms ease;
  z-index: 1;
}
.contact__light-cone::after {
  content: "";
  position: absolute;
  inset: 0 20%;
  background: rgba(227,236,231,.18);
  clip-path: polygon(48% 0, 52% 0, 78% 100%, 22% 100%);
  filter: blur(10px);
}
.contact__light-pool {
  position: absolute;
  left: 50%;
  top: calc(var(--lamp-size) * .66 + var(--beam-length) * .60);
  width: min(46vw, 500px);
  height: clamp(112px, 14vw, 164px);
  border-radius: 50%;
  background: var(--color-mint);
  filter: blur(18px);
  opacity: 0;
  transform: translateX(-50%) scale(.86);
  transition: opacity 500ms cubic-bezier(.22,1,.36,1), transform 560ms cubic-bezier(.22,1,.36,1);
  z-index: 1;
}
.contact__copy p:not(.eyebrow) {
  max-width: 560px;
  margin: .95rem 0 0;
  color: rgba(226, 235, 237, .72);
}
.contact__cta-panel {
  position: absolute;
  right: clamp(2.2rem, 6vw, 5.8rem);
  bottom: clamp(2.2rem, 4.5vw, 3.8rem);
  z-index: 4;
  display: flex;
  justify-content: flex-end;
  padding: 0;
  margin: 0;
  background: transparent;
  border: 0;
  box-shadow: none;
  overflow: visible;
  isolation: isolate;
  transition: transform 520ms cubic-bezier(.22,1,.36,1);
}
.contact__cta-panel::before,
.contact__cta-panel::after { content: none; }
.contact__cta-panel .button--light {
  padding-inline: clamp(1.15rem, 2vw, 1.55rem);
  min-height: 48px;
  border-color: rgba(235, 246, 249, .30);
  box-shadow: 0 16px 38px rgba(0,0,0,.22), 0 0 0 1px rgba(255,255,255,.08);
}
.contact__content.is-lit .contact__lamp-cable,
.contact__content.is-lit .contact__lamp-shade,
.contact__content.is-lit .contact__lamp-rim {
  stroke: rgba(242,248,248,.82);
  filter: drop-shadow(0 0 9px rgba(209,228,233,.12));
}
.contact__content.is-lit .contact__lamp-bulb {
  fill: rgba(242, 250, 252, .94);
  opacity: 1;
  filter: drop-shadow(0 0 10px rgba(220, 238, 242, .46)) drop-shadow(0 0 22px rgba(96,113,124,.18));
  transform: scale(1.08);
}
.contact__content.is-lit .contact__lamp-fixture::before { opacity: .72; transform: translateX(-50%) scale(1); }
.contact__content.is-lit .contact__light-cone { opacity: .78; transform: translate3d(-50%, 0, 0) scaleY(1); filter: blur(18px); }
.contact__content.is-lit .contact__light-pool { opacity: .66; transform: translateX(-50%) scale(1); }
.contact__content.is-lit .contact__cta-panel { transform: translateY(-2px); }
.contact__content.is-lit .button--light { background: var(--color-mint-soft); border-color: rgba(226,240,243,.50); box-shadow: 0 18px 44px rgba(0,0,0,.22), 0 0 26px rgba(199,224,230,.16), 0 0 0 1px rgba(255,255,255,.10); }
@media (prefers-reduced-motion: no-preference) {
  .contact__content.is-lit .contact__lamp-bulb { animation: lamp-warm-settle 560ms cubic-bezier(.22,1,.36,1) both; }
  .contact__content.is-lit .contact__cta-panel .button--light { animation: contact-cta-confirm 5.6s ease-in-out infinite; }
}
@keyframes lamp-warm-settle {
  0% { opacity: .58; transform: scale(.92); filter: none; }
  58% { opacity: 1; transform: scale(1.14); }
  100% { opacity: 1; transform: scale(1.08); }
}
@keyframes contact-cta-confirm {
  0%, 62%, 100% { box-shadow: 0 18px 44px rgba(0,0,0,.22), 0 0 26px rgba(199,224,230,.16), 0 0 0 1px rgba(255,255,255,.10); transform: translateZ(0) scale(1); }
  70% { box-shadow: 0 19px 46px rgba(0,0,0,.22), 0 0 29px rgba(199,224,230,.18), 0 0 0 4px rgba(235,246,249,.045); transform: translateZ(0) scale(1.008); }
  82% { box-shadow: 0 18px 44px rgba(0,0,0,.22), 0 0 26px rgba(199,224,230,.16), 0 0 0 1px rgba(255,255,255,.10); transform: translateZ(0) scale(1); }
}
@media (max-width: 860px) {
  .contact__content { grid-template-columns: 1fr; min-height: 430px; padding-bottom: 8.9rem; }
  .contact__lamp-scene { inset: 0; }
  .contact__lamp-fixture { --lamp-size: 76px; --beam-length: 300px; left: auto; right: clamp(2rem, 18vw, 7rem); top: .7rem; transform: none; }
  .contact__lamp { opacity: .72; }
  .contact__lamp-switch { right: 1.05rem; top: .95rem; }
  .contact__lamp-scene::after { left: 34%; }
  .contact__light-cone { width: 72vw; clip-path: polygon(47.5% 0, 52.5% 0, 96% 100%, 8% 100%); }
  .contact__light-pool { width: 92vw; }
  .contact__cta-panel { right: auto; left: 1.15rem; bottom: 1.35rem; }
}
@media (max-width: 560px) {
  .contact__content { padding: 2.35rem 1.15rem 8.4rem; min-height: 455px; }
  .contact__lamp-fixture { --lamp-size: 58px; --beam-length: 260px; right: .82rem; top: .5rem; }
  .contact__lamp-switch { top: .78rem; right: 4.75rem; padding-inline: .5rem .42rem; }
  .contact__lamp-switch-label { font-size: .56rem; }
  .contact__light-cone { width: 82vw; filter: blur(20px); clip-path: polygon(47% 0, 53% 0, 98% 100%, 6% 100%); }
  .contact__copy { padding-top: 1.7rem; }
  .contact__cta-panel { left: 1.15rem; bottom: 1.1rem; }
}
@media (prefers-reduced-motion: reduce) {
  .contact__lamp-bulb,
  .contact__lamp-scene::before,
  .contact__light-cone,
  .contact__light-pool,
  .contact__lamp-scene::after,
  .contact__cta-panel,
  .contact__lamp-switch,
  .contact__lamp-switch-track span,
  .contact__cta-panel .button--light { transition-duration: 1ms; animation: none; }
}

/* Sobre brunito: juego de beneficios editorial */
.about__mark.about-target {
  --aim-x: 50%;
  --aim-y: 43%;
  --align-x: 0px;
  --align-y: 0px;
  appearance: none;
  cursor: none;
  isolation: isolate;
  overflow: hidden;
  width: min(100%, 390px);
  min-height: 430px;
  padding: clamp(1.05rem, 3vw, 1.45rem);
  border: 1px solid rgba(27,36,48,.10);
  border-radius: 34px;
  background: rgba(227,236,231,.22);
  box-shadow: 0 28px 74px rgba(27,36,48,.10), inset 0 1px 0 rgba(255,255,255,.92);
  transition: transform .28s ease, box-shadow .28s ease, filter .28s ease;
}
.about__mark.about-target::before { content:""; position:absolute; inset:0; z-index:0; background-image: none; background-size: 13px 13px; opacity:.13; pointer-events:none; }
.about__mark.about-target::after { content:""; position:absolute; left:14%; right:14%; top:64%; z-index:1; height:18px; border-radius:50%; background:rgba(27,36,48,.08); filter:blur(12px); pointer-events:none; }
.about-target:hover, .about-target:focus-visible, .about-target.is-aiming { transform: translateY(-2px); filter:saturate(1.04); box-shadow: 0 34px 86px rgba(27,36,48,.13), 0 0 0 7px rgba(175,163,191,.055), inset 0 1px 0 rgba(255,255,255,.96); }
.about-target:focus-visible { outline: 3px solid rgba(175,163,191,.42); outline-offset: 7px; }
.about-target__grain { display:none; }
.about-target__intro { position:absolute; left:50%; top:1.05rem; z-index:5; display:grid; gap:.16rem; width:max-content; max-width:86%; transform:translateX(-50%); text-align:center; color:rgba(27,36,48,.74); pointer-events:none; }
.about-target__intro strong { font-size:.68rem; font-weight:950; letter-spacing:.18em; }
.about-target__intro em { color:rgba(96,113,124,.92); font-family:Georgia,'Times New Roman',serif; font-size:.86rem; font-style:italic; letter-spacing:-.02em; }
.about-target__status { position:absolute; right:1.15rem; top:1.15rem; z-index:6; padding:.34rem .58rem; border:1px solid rgba(27,36,48,.10); border-radius:999px; background:rgba(227,236,231,.82); color:rgba(27,36,48,.62); font-size:.58rem; font-weight:900; letter-spacing:.12em; text-transform:uppercase; }
.about-target__board { position:absolute; left:50%; top:43%; z-index:2; width:72%; aspect-ratio:1; border-radius:50%; transform:translate(-50%,-50%) translate(calc(var(--align-x) * -.18), calc(var(--align-y) * -.18)); background: var(--color-lavender-soft); box-shadow:0 24px 48px rgba(27,36,48,.12), inset 0 0 0 1px rgba(27,36,48,.15), inset 0 0 0 9px rgba(227,236,231,.28); transition:transform .2s ease; }
.about-target__segments { position:absolute; inset:0; border-radius:50%; background: transparent; }
.about-target__rings { position:absolute; inset:0; border-radius:50%; background: transparent; }
.about-target__labels span { position:absolute; z-index:3; display:grid; place-items:center; width:22px; aspect-ratio:1; border-radius:50%; background:rgba(227,236,231,.74); color:rgba(27,36,48,.62); font-size:.58rem; font-weight:950; }
.about-target__labels span:nth-child(1){left:50%;top:50%;transform:translate(-50%,-50%);} .about-target__labels span:nth-child(2){left:49%;top:34%;} .about-target__labels span:nth-child(3){right:22%;top:46%;} .about-target__labels span:nth-child(4){left:22%;bottom:28%;} .about-target__labels span:nth-child(5){right:13%;bottom:17%;}
.about-target__center-dot { position:absolute; left:50%; top:50%; width:7.5%; aspect-ratio:1; border:1px solid rgba(227,236,231,.74); border-radius:50%; transform:translate(-50%,-50%); box-shadow:0 0 0 8px rgba(227,236,231,.30); }
.about-target__feedback { position:absolute; left:50%; bottom:4.9rem; z-index:5; min-width:168px; padding:.42rem .72rem; border:1px solid rgba(175,163,191,.20); border-radius:999px; background:rgba(227,236,231,.88); color:rgba(27,36,48,.66); font-size:.63rem; font-weight:900; letter-spacing:.11em; text-align:center; text-transform:uppercase; transform:translateX(-50%); pointer-events:none; }
.about-target__signature { position:absolute; left:50%; bottom:1.18rem; z-index:5; display:grid; place-items:center; gap:.18rem; transform:translateX(-50%); pointer-events:none; }
.about-target__signature img { width:128px; max-width:none; filter:drop-shadow(0 8px 14px rgba(27,36,48,.08)); }
.about-target__signature em { color:rgba(96,113,124,.82); font-family:Georgia,'Times New Roman',serif; font-size:.75rem; font-style:italic; }
.about-target__crosshair { position:absolute; left:var(--aim-x); top:var(--aim-y); z-index:7; width:70px; aspect-ratio:1; border:1px solid rgba(175,163,191,.72); border-radius:50%; opacity:0; transform:translate(-50%,-50%) scale(.9); pointer-events:none; transition:opacity .14s ease, transform .14s ease; box-shadow:0 0 0 5px rgba(175,163,191,.055), inset 0 0 0 12px rgba(227,236,231,.18); }
.about-target__crosshair::before, .about-target__crosshair::after { content:""; position:absolute; background:rgba(27,36,48,.38); } .about-target__crosshair::before { left:50%; top:-10px; bottom:-10px; width:1px; transform:translateX(-50%); } .about-target__crosshair::after { top:50%; left:-10px; right:-10px; height:1px; transform:translateY(-50%); }
.about-target:hover .about-target__crosshair, .about-target:focus-visible .about-target__crosshair, .about-target.is-aiming .about-target__crosshair { opacity:1; transform:translate(-50%,-50%) scale(1); }
.about-target.is-complete { cursor: default; }
.about-target__impact { position:absolute; z-index:6; width:12px; aspect-ratio:1; border:1px solid rgba(27,36,48,.42); border-radius:50%; background:var(--accent-coral); box-shadow:0 0 0 4px rgba(175,163,191,.10); transform:translate(-50%,-50%); pointer-events:none; }
.about-target__impact::after { content:attr(data-discount); position:absolute; left:50%; bottom:120%; padding:.2rem .38rem; border:1px solid rgba(27,36,48,.10); border-radius:999px; background:rgba(227,236,231,.96); color:var(--accent-coral); font-size:.58rem; font-weight:950; transform:translateX(-50%); white-space:nowrap; }
.about-target__impact::before { content:""; position:absolute; inset:-10px; border:1px solid rgba(175,163,191,.24); border-radius:50%; animation:impact-ring 760ms ease-out forwards; }
.about-target__impact.is-best { background:var(--petrol); box-shadow:0 0 0 6px rgba(216,181,106,.20); }
.prize-modal[hidden] { display: none; }
.prize-modal { position: fixed; inset: 0; z-index: 80; display: grid; place-items: center; padding: 1rem; }
.prize-modal__backdrop { position: absolute; inset: 0; background: rgba(12,20,27,.42); backdrop-filter: blur(8px); }
.prize-modal__panel { position: relative; width: min(100%, 520px); padding: clamp(1.35rem, 4vw, 2.25rem); border: 1px solid rgba(255,255,255,.62); border-radius: 30px; background: var(--color-bg); box-shadow: 0 30px 90px rgba(16,19,24,.22); }
.prize-modal__brand img { width:132px; margin-bottom:.7rem; }
.prize-modal__close { position: absolute; right: 1rem; top: 1rem; width: 38px; height: 38px; border: 1px solid rgba(96,113,124,.22); border-radius: 50%; background: rgba(255,255,255,.58); color: var(--color-ink); font-size: 1.35rem; cursor: pointer; }
.prize-modal__discount { margin:.3rem 0 .45rem; color:var(--accent-coral); font-size:clamp(2.4rem, 8vw, 4.4rem); font-weight:950; line-height:.9; letter-spacing:-.06em; }
.prize-modal__code { display: inline-flex; margin: .35rem 0 .75rem; padding: .62rem .9rem; border: 1px dashed rgba(175,163,191,.44); border-radius: 999px; color: var(--color-warm); background: rgba(175,163,191,.07); font-weight: 900; letter-spacing: .08em; }
.prize-modal__feedback { min-height: 1.2em; margin-bottom: .7rem; color: var(--color-accent-cool); font-size: .9rem; font-weight: 800; }
.prize-modal__actions { display: flex; flex-wrap: wrap; gap: .65rem; }
.button--ghost { border-color: rgba(96,113,124,.28); color: var(--color-ink); background: rgba(255,255,255,.42); }
@keyframes impact-ring { to { opacity: 0; transform: scale(1.85); } }
@media (max-width: 860px) { .about__mark.about-target { width: min(100%, 360px); min-height: 420px; } }
@media (max-width: 560px) { .about__mark.about-target { width: min(100%, 330px); min-height: 400px; margin-inline:auto; padding:1rem; cursor:pointer; } .about-target__status { right: .85rem; top: .85rem; } .about-target__intro { top:.9rem; } .about-target__intro strong { font-size:.56rem; } .about-target__intro em { font-size:.76rem; } .about-target__board { width:76%; top:42%; } .about-target__feedback { bottom:4.4rem; font-size:.56rem; min-width:150px; } .about-target__signature img { width:116px; } .about-target__crosshair { display:none; } .prize-modal__actions .button { width:100%; } }
@media (prefers-reduced-motion: reduce) { .about__mark.about-target, .about-target__crosshair, .about-target__board { transition:none; } .about-target__impact::before { animation:none; opacity:.4; } }

/* Corrección cromática pastel: colores planos, sin degradados visibles */
:root {
  --ink: #101820;
  --ink-soft: #42505C;
  --muted: #42505C;
  --pastel-pink: #CDC0D9;
  --pastel-peach: #D9D7D3;
  --pastel-lavender: #CDC0D9;
  --pastel-butter: #B6D9CE;
  --pastel-aqua: #B6D9CE;
  --cream-base: #E3ECE7;
  --paper: #E3ECE7;
  --surface: #D9D7D3;
  --line: rgba(16, 24, 32, 0.14);
  --line-soft: rgba(16, 24, 32, 0.08);
  --shadow-soft-raw: rgba(16, 24, 32, 0.10);
  --pastel-rose: var(--pastel-pink);
  --pastel-rose-50: #CDC0D9;
  --pastel-rose-600: #AFA3BF;
  --pastel-peach-50: #D9D7D3;
  --pastel-peach-600: #AFA3BF;
  --pastel-lavender-50: #CDC0D9;
  --pastel-lavender-600: #AFA3BF;
  --pastel-butter-50: #E3ECE7;
  --pastel-butter-600: #AFA3BF;
  --pastel-aqua-50: #E3ECE7;
  --pastel-aqua-600: #42505C;
  --bg-page: #E3ECE7;
  --surface-clean: #E3ECE7;
  --surface-raised: #CDC0D9;
  --color-text: var(--ink);
  --color-ink: var(--ink);
  --color-muted: var(--ink-soft);
  --color-surface: var(--paper);
  --color-line: var(--line);
  --color-warm: #AFA3BF;
  --color-warm-soft: rgba(205, 192, 217, .36);
  --color-cool-soft: rgba(182, 217, 206, .50);
  --color-accent-cool: var(--pastel-aqua-600);
  --color-dark: #101820;
  --color-navy-soft: #101820;
}
body,
.section:not(.experience-band):not(.contact-section),
.section--soft,
.hero,
.services-deck::before {
  background: var(--paper);
}
body::before,
.hero::before,
.hero__shape--one,
.hero__shape--one::after,
.contact__content::before,
.contact__content::after,
.contact__light-pool {
  background: none;
  opacity: 0;
}
.site-header,
.site-header.is-scrolled {
  background: rgba(227, 236, 231, .96);
  border-bottom-color: var(--line-soft);
}
.nav-menu {
  background: var(--surface);
  border-color: var(--line-soft);
}
.nav-menu a::after,
.nav-menu li:nth-child(2n) a::after {
  background: var(--pastel-pink);
}
.nav-menu a:hover,
.nav-menu a:focus-visible {
  background: var(--pastel-aqua);
  color: var(--ink);
}
.eyebrow { color: var(--pastel-rose-600); }
.eyebrow::before,
.panel-dot {
  background: var(--pastel-pink);
  box-shadow: 0 0 0 4px rgba(205, 192, 217, .24);
}
.hero__grid {
  background: var(--cream-base);
  border-color: var(--line-soft);
}
.hero__grid span:nth-child(1) { background: var(--pastel-aqua); }
.hero__grid span:nth-child(2) { background: var(--pastel-pink); }
.hero__grid span:nth-child(3) { background: var(--pastel-butter); }
.hero h1::after {
  width: clamp(104px, 13vw, 168px);
  height: 6px;
  border-radius: 999px;
  background: var(--pastel-pink);
  box-shadow: 46px 0 0 var(--pastel-butter), 92px 0 0 var(--pastel-aqua);
  opacity: 1;
}
.hero__copy::after { background: var(--pastel-aqua); }
.hero__panel {
  background: var(--pastel-aqua-50);
  border-color: var(--line-soft);
}
.hero__panel::after {
  background: var(--pastel-lavender);
  opacity: .42;
}
.hero__panel::before {
  border-color: var(--line-soft);
  border-top-color: var(--pastel-butter);
  border-right-color: var(--pastel-aqua);
  border-bottom-color: var(--pastel-pink);
}
.elevator-scene,
.elevator-scene::before,
.panel-footer {
  background: var(--surface);
  border-color: var(--line-soft);
}
.elevator-scene { border-top-color: var(--pastel-pink); }
.elevator-cabin__back { fill: var(--pastel-aqua); }
.elevator-arrow path { stroke: var(--pastel-pink); }
.elevator-thought__shape { fill: var(--paper); stroke: var(--pastel-rose-600); }
.elevator-person__warm-detail,
.elevator-indicator circle { fill: var(--pastel-pink); }
.button::after { background: transparent; }
.button--primary,
.button--primary:hover,
.button--primary:focus-visible {
  background: var(--ink);
  color: #fff;
}
.button--secondary,
.button--secondary:hover,
.button--secondary:focus-visible {
  background: var(--paper);
  border-color: var(--pastel-pink);
  color: var(--ink);
}
.button--secondary:hover,
.button--secondary:focus-visible { background: var(--color-mint); }
.services-deck__trigger { background: var(--pastel-butter-50); border-color: var(--line); }
.service-card__back,
.service-card__front,
.service-card__back::before {
  background-image: none;
}
.service-card:nth-child(1) { --card-bg: #CDC0D9; --suit: var(--color-ink-soft); }
.service-card:nth-child(2) { --card-bg: #C7BBD2; --suit: var(--color-ink-soft); }
.service-card:nth-child(3) { --card-bg: #B6D9CE; --suit: var(--color-ink-soft); }
.service-card:nth-child(4) { --card-bg: #E3ECE7; --suit: var(--color-ink-soft); }
.service-card:nth-child(5) { --card-bg: #D9D7D3; --suit: var(--color-ink-soft); }
.service-card:nth-child(6) { --card-bg: #CDC0D9; --suit: var(--color-ink-soft); }
.service-card__back {
  background-color: var(--card-bg);
  border-color: rgba(16, 24, 32, .16);
}
.service-card__back::before {
  background-color: rgba(255, 255, 255, .24);
  box-shadow: inset 0 0 0 5px rgba(16, 24, 32, .06);
}
.service-card__backline,
.service-card__index::after {
  background: var(--suit);
}
.service-card__front {
  background: var(--surface-raised);
  border-color: var(--line-soft);
  border-top: 6px solid var(--suit);
}
.service-card__front::after { background: var(--pastel-butter); }
.service-card__index { color: var(--suit); }
.icon { background: var(--pastel-butter-50); border-color: var(--suit); box-shadow: none; }
.icon::before { background-color: var(--suit); border-color: var(--suit); }
.experience-band,
.experience-band::before,
.experience-machine,
.experience-machine::before,
.experience-metrics .metric-item,
.experience-metrics .metric-item.is-settled,
.experience-lever,
.experience-lever__rail,
.experience-lever__arm,
.experience-lever__arm span {
  background-image: none;
}
.experience-band { background-color: #101820; }
.experience-band::before { background-color: rgba(182, 217, 206, .04); opacity: 1; }
.experience-band::after { background: var(--pastel-aqua); opacity: .32; }
.experience-machine { background-color: rgba(255, 255, 255, .045); border-color: rgba(182, 217, 206, .30); }
.experience-metrics .metric-item { background-color: rgba(8, 14, 20, .44); }
.experience-metrics .metric-item.is-settled { background-color: rgba(205, 192, 217, .08); border-color: rgba(205, 192, 217, .42); }
.experience-metrics .metric-item::before { background: var(--pastel-aqua); }
.experience-metrics .metric-item.is-settled::before { background: var(--pastel-pink); }
.experience-machine__header small { color: var(--pastel-butter); }
.experience-lever { background-color: rgba(255, 255, 255, .06); }
.experience-lever__rail { background: rgba(182, 217, 206, .46); }
.experience-lever__arm { background: var(--pastel-aqua); }
.experience-lever__arm span { background: var(--pastel-pink); }
.case-list { border-top-color: var(--pastel-lavender); }
.case-item { border-bottom-color: var(--line-soft); }
.case-item span { color: var(--pastel-rose-600); }
.case-item::before { background: var(--pastel-aqua); }
.case-item:hover { background: var(--pastel-butter-50); }
.case-item h3::after { background: var(--pastel-lavender); }
.about__mark.about-target,
.about__mark.about-target::before,
.about__mark::after,
.about-target__board,
.about-target__segments,
.about-target__rings,
.about-target__feedback,
.about-target__status {
  background-image: none;
}
.about__mark.about-target {
  background-color: var(--color-warm-gray);
  border-color: var(--line-soft);
}
.about__mark.about-target::before { background-color: rgba(227, 236, 231, .34); opacity: 1; }
.about__mark::after { background-color: var(--pastel-butter); }
.about-target__board {
  background: var(--pastel-pink);
  box-shadow:
    0 24px 48px rgba(16, 24, 32, .12),
    inset 0 0 0 22px var(--color-mint),
    inset 0 0 0 46px var(--color-warm-gray),
    inset 0 0 0 72px var(--color-lavender-soft),
    inset 0 0 0 98px var(--color-mint-soft),
    inset 0 0 0 104px rgba(16, 24, 32, .12);
}
.about-target__segments { background: transparent; }
.about-target__rings { border: 1px solid rgba(16, 24, 32, .16); }
.about-target__feedback,
.about-target__status { background: var(--paper); border-color: var(--pastel-pink); }
.prize-modal__dialog { background: var(--paper); border-color: var(--line); }
.contact__content,
.contact__content::before,
.contact__content::after,
.contact__light-cone,
.contact__light-pool,
.contact__content.is-lit .button--light,
.button--light,
.site-footer {
  background-image: none;
}
.contact__content { background-color: #101820; }
.contact__content::before { background-color: rgba(182, 217, 206, .035); opacity: 1; }
.contact__constellation::before { background: var(--pastel-aqua); }
.contact__constellation span:nth-child(1) { background: var(--pastel-aqua); }
.contact__constellation span:nth-child(2) { background: var(--pastel-lavender); }
.contact__constellation span:nth-child(3) { background: var(--pastel-butter); }
.contact__lamp-switch[aria-pressed="true"] { background: rgba(182, 217, 206, .14); border-color: rgba(182, 217, 206, .48); }
.contact__lamp-switch[aria-pressed="true"] .contact__lamp-switch-track span { background: var(--pastel-butter); }
.contact__light-cone { background-color: rgba(182, 217, 206, .14); }
.contact__content.is-lit .button--light,
.button--light { background: var(--pastel-butter-50); border-color: rgba(182, 217, 206, .56); }
.site-footer { background: var(--paper); }

/* Dirección de arte refinada: base editorial neutra y acentos pastel quirúrgicos */
:root {
  --ink: #101820;
  --ink-soft: #43505A;
  --ink-muted: #6B7580;
  --paper: #FAF8F4;
  --white: #FFFFFF;
  --lavender: #CDC0D9;
  --lavender-deep: #AFA3BF;
  --mint: #B6D9CE;
  --mint-soft: #E3ECE7;
  --warm-gray: #D9D7D3;
  --line: rgba(16,24,32,0.10);
  --line-soft: rgba(16,24,32,0.06);
  --shadow-soft: 0 22px 58px rgba(16,24,32,0.08);
  --shadow-soft-raw: rgba(16,24,32,0.08);
  --color-ink: var(--ink);
  --color-ink-soft: var(--ink-soft);
  --color-muted: var(--ink-soft);
  --color-text: var(--ink);
  --color-bg: var(--paper);
  --color-surface: var(--white);
  --color-line: var(--line);
  --color-line-soft: var(--line-soft);
  --color-lavender: var(--lavender);
  --color-lavender-soft: var(--lavender);
  --color-mint: var(--mint);
  --color-mint-soft: var(--mint-soft);
  --color-warm-gray: var(--warm-gray);
  --color-warm: var(--lavender-deep);
  --color-warm-soft: rgba(205,192,217,.30);
  --color-cool-soft: var(--mint-soft);
  --color-accent-cool: var(--mint);
  --bg-page: var(--paper);
  --bg-dark: var(--ink);
  --bg-dark-2: #16222B;
  --surface: var(--white);
  --surface-clean: var(--white);
  --surface-raised: var(--white);
  --surface-highlight: var(--mint-soft);
  --accent: var(--lavender-deep);
  --accent-coral: var(--lavender-deep);
  --petrol: var(--ink);
}
body { background: var(--paper); color: var(--ink); }
body::before, .hero::before, .hero__shape--one, .contact__content::before, .contact__content::after { content: none; background: none; }
h1, h2, h3 { color: var(--ink); }
p { color: var(--ink-soft); }
.section:not(.experience-band):not(.contact) { background: var(--paper); }
.services-section, #sobre-mi { background: var(--white) !important; }
.cases-section, .hero { background: var(--paper) !important; }
.site-header, .site-header.is-scrolled { background: var(--paper); border-bottom: 1px solid var(--line-soft); box-shadow: none; }
.nav-menu { background: var(--white); border: 1px solid var(--line); box-shadow: none; }
.nav-menu a { color: var(--ink-soft); }
.nav-menu a:hover, .nav-menu a:focus-visible { color: var(--ink); background: var(--mint-soft); }
.nav-menu a.is-active, .nav-menu a[aria-current="page"] { color: var(--ink); background: var(--lavender); }
.nav-menu a::after, .nav-menu li:nth-child(2n) a::after { background: var(--lavender-deep); }
.nav-toggle { background: var(--white); border-color: var(--line); }
.eyebrow, .panel-kicker { color: var(--lavender-deep); }
.eyebrow::before, .panel-dot { background: var(--lavender-deep); box-shadow: 0 0 0 4px rgba(205,192,217,.22); }
.hero__grid { background: var(--white); border-color: var(--line-soft); opacity: .36; }
.hero__grid::before, .hero__grid::after { background: var(--line-soft); }
.hero__grid span { background: var(--warm-gray); box-shadow: none; opacity: .7; }
.hero__grid span:nth-child(2) { background: var(--mint); }
.hero__grid span:nth-child(3) { background: var(--lavender); }
.hero__copy::after { width: 112px; height: 2px; background: var(--lavender); box-shadow: 58px 0 0 var(--mint); opacity: 1; }
.hero h1::after { display: none; }
.hero__text { color: var(--ink-soft); }
.button::after { content: none; }
.button--primary, .button--primary:hover, .button--primary:focus-visible { background: var(--ink); color: var(--white); border-color: var(--ink); }
.button--secondary { background: var(--white); color: var(--ink); border-color: var(--line); box-shadow: none; }
.button--secondary:hover, .button--secondary:focus-visible { background: var(--mint-soft); border-color: var(--line); }
.hero__panel { background: var(--white); border: 1px solid rgba(175,163,191,.22); box-shadow: 0 26px 60px rgba(16,24,32,.08); backdrop-filter: none; }
.hero__panel::before { border-color: rgba(175,163,191,.18); }
.hero__panel::after { right: 18px; top: 18px; width: 54px; background: transparent; border-color: rgba(175,163,191,.35); box-shadow: none; opacity: .55; }
.hero__panel p, .panel-message { color: var(--ink); }
.elevator-scene { background: var(--white); border-block-color: rgba(217,215,211,.72); }
.elevator-scene::before { background: var(--paper); border-color: var(--line-soft); }
.elevator-scene::after { background: transparent; border-color: rgba(205,192,217,.28); }
.elevator-arrow path { stroke: var(--lavender-deep); }
.elevator-cabin__back { fill: var(--mint-soft); stroke: rgba(16,24,32,.25); }
.elevator-level circle { fill: var(--warm-gray); opacity: 1; }
.elevator-level--top circle, .elevator-indicator circle, .elevator-person__warm-detail { fill: var(--lavender-deep); }
.elevator-thought__shape { fill: var(--white); stroke: rgba(175,163,191,.45); }
.elevator-thought__text { fill: var(--ink); }
.panel-footer { background: var(--white); border-color: var(--line-soft); color: var(--ink-muted); box-shadow: none; }
.panel-levels::before { background: var(--warm-gray); }
.panel-level::before { background: var(--mint-soft); border-color: rgba(16,24,32,.22); box-shadow: none; }
.services-deck::before { background: var(--paper); border: 1px solid var(--line-soft); opacity: 1; }
.services-deck__trigger { background: var(--white); border: 1px solid rgba(175,163,191,.35); color: var(--ink-soft); box-shadow: none; }
.services-deck__trigger:hover, .services-deck__trigger:focus-visible { background: var(--mint-soft); }
.service-card { filter: drop-shadow(0 18px 26px rgba(16,24,32,.10)); }
.service-card:nth-child(1) { --card-bg: var(--lavender); --front-bg: var(--white); --suit: var(--ink); }
.service-card:nth-child(2) { --card-bg: var(--mint); --front-bg: var(--mint-soft); --suit: var(--ink); }
.service-card:nth-child(3) { --card-bg: var(--warm-gray); --front-bg: var(--white); --suit: var(--ink); }
.service-card:nth-child(4) { --card-bg: var(--mint-soft); --front-bg: var(--warm-gray); --suit: var(--ink); }
.service-card:nth-child(5) { --card-bg: #BFB3CC; --front-bg: #F3EEF6; --suit: var(--ink); }
.service-card:nth-child(6) { --card-bg: var(--white); --front-bg: var(--white); --suit: var(--lavender-deep); }
.service-card__back { background: var(--card-bg); border: 1px solid rgba(16,24,32,.18); box-shadow: inset 0 0 0 8px rgba(255,255,255,.30), inset 0 0 0 10px rgba(16,24,32,.08), 0 24px 58px rgba(16,24,32,.13); }
.service-card__back::before { background: transparent; border-color: rgba(16,24,32,.18); box-shadow: inset 0 0 0 5px rgba(255,255,255,.22); }
.service-card__monogram { color: var(--ink); border-color: rgba(16,24,32,.18); background: rgba(255,255,255,.28); }
.service-card__front { background: var(--front-bg); border: 1px solid rgba(16,24,32,.14); border-top: 5px solid var(--lavender); box-shadow: 0 24px 58px rgba(16,24,32,.11); }
.experience-band, .experience-band::before { background: var(--ink); }
.experience-panel h2 { color: var(--white); }
.experience-panel .eyebrow { color: var(--mint); }
.experience-machine { background: #16222B; border-color: rgba(205,192,217,.18); }
.experience-metrics .metric-item { background: rgba(255,255,255,.045); border-color: rgba(182,217,206,.16); }
.experience-metrics .metric-item.is-settled { background: rgba(205,192,217,.10); border-color: rgba(205,192,217,.34); }
.experience-lever { background: rgba(255,255,255,.055); border-color: rgba(205,192,217,.20); }
.experience-lever__rail { background: rgba(182,217,206,.38); }
.experience-lever__arm, .experience-lever__arm span { background: var(--lavender); }
.case-list { border-top: 1px solid var(--line-soft); }
.case-item { background: var(--white); border-bottom-color: var(--line-soft); }
.case-item span, .case-item:nth-child(2n) span, .case-item:nth-child(3n) span { color: var(--lavender-deep); }
.case-item:hover { background: var(--mint-soft); }
.case-item::before, .case-item h3::after { background: var(--lavender-deep); }
.about__mark.about-target { background: #F4EFE6; border: 1px solid rgba(175,163,191,.25); box-shadow: 0 26px 62px rgba(16,24,32,.08), inset 0 1px 0 rgba(255,255,255,.88); }
.about__mark.about-target::before { content: none; }
.about__mark.about-target::after { background: rgba(16,24,32,.08); filter: blur(12px); opacity: 1; }
.about-target__board { background: var(--lavender); box-shadow: 0 24px 48px rgba(16,24,32,.12), inset 0 0 0 22px rgba(182,217,206,.78), inset 0 0 0 46px var(--warm-gray), inset 0 0 0 72px rgba(205,192,217,.72), inset 0 0 0 98px var(--white), inset 0 0 0 104px rgba(16,24,32,.10); }
.about-target__center-dot, .about-target__impact.is-best { background: var(--lavender-deep); }
.about-target__feedback, .about-target__status { background: var(--white); border-color: rgba(175,163,191,.28); color: var(--ink-soft); }
.about-target__impact { background: var(--lavender-deep); }
.about-target__impact::after, .prize-modal__discount { color: var(--lavender-deep); }
.prize-modal__panel { background: var(--paper); border-color: rgba(175,163,191,.28); }
.contact, .contact__content { background: var(--ink); }
.contact__content { border-color: rgba(205,192,217,.16); box-shadow: 0 28px 76px rgba(16,24,32,.18); }
.contact__content h2 { color: var(--white); }
.contact__content .eyebrow { color: var(--mint); }
.contact__copy p:not(.eyebrow) { color: rgba(255,255,255,.75); }
.contact__lamp-fixture::before, .contact__light-pool { background: var(--mint); opacity: 0; }
.contact__light-cone, .contact__light-cone::after { background: rgba(182,217,206,.14); }
.button--light, .contact__content.is-lit .button--light { background: var(--white); color: var(--ink); border-color: var(--white); }
.button--light:hover, .button--light:focus-visible { background: var(--mint-soft); color: var(--ink); }
.site-footer { background: var(--paper); border-top: 1px solid var(--line-soft); }
.footer__content p { color: var(--ink-soft); }
.footer__content a { color: var(--lavender-deep); }
.footer__content a:hover, .footer__content a:focus-visible { color: var(--ink); }
@media (max-width: 860px) { .nav-menu { background: var(--white); box-shadow: var(--shadow-soft); } }

/* Dirección final: sistema editorial monocromático con acento rojo quirúrgico */
:root {
  --black: #000000;
  --ink: #101010;
  --ink-soft: #2A2A2A;
  --ink-muted: #666666;
  --white: #FFFFFF;
  --paper: #F4F4F4;
  --surface: #FAFAFA;
  --surface-soft: #EDEDED;
  --gray: #A6A6A6;
  --gray-soft: #D9D9D9;
  --line: rgba(0, 0, 0, 0.12);
  --line-soft: rgba(0, 0, 0, 0.07);
  --red: #B3261E;
  --red-deep: #8F1D18;
  --red-soft: rgba(179, 38, 30, 0.12);
  --shadow-soft: 0 22px 58px rgba(0, 0, 0, 0.10);
  --shadow-card: 0 24px 64px rgba(0, 0, 0, 0.16);
  --shadow-soft-raw: rgba(0, 0, 0, 0.10);
  --color-ink: var(--ink);
  --color-ink-soft: var(--ink-soft);
  --color-text: var(--ink);
  --color-muted: var(--ink-muted);
  --color-bg: var(--paper);
  --color-surface: var(--surface);
  --color-surface-alt: var(--surface-soft);
  --color-line: var(--line);
  --color-line-soft: var(--line-soft);
  --color-warm-gray: var(--gray-soft);
  --color-warm: var(--red);
  --color-warm-soft: var(--red-soft);
  --color-cool-soft: var(--surface-soft);
  --color-accent-cool: var(--gray);
  --color-lavender: var(--red);
  --color-lavender-soft: var(--surface-soft);
  --color-mint: var(--gray);
  --color-mint-soft: var(--surface-soft);
  --bg-page: var(--paper);
  --bg-secondary: var(--surface-soft);
  --bg-warm: var(--surface-soft);
  --bg-cool: var(--surface-soft);
  --bg-soft: var(--surface-soft);
  --bg-dark: var(--ink);
  --bg-dark-2: var(--black);
  --surface-clean: var(--surface);
  --surface-raised: var(--white);
  --surface-highlight: var(--surface-soft);
  --bg-card: var(--surface);
  --bg-card-2: var(--surface-soft);
  --muted: var(--ink-muted);
  --accent: var(--red);
  --accent-warm: var(--red);
  --accent-soft: var(--red-soft);
  --accent-coral: var(--red);
  --accent-salvia: var(--gray);
  --accent-mostaza: var(--gray-soft);
  --accent-blue: var(--gray);
  --accent-rose-dust: var(--red);
  --teal-deep: var(--ink-soft);
  --teal: var(--gray);
  --turquoise-muted: var(--gray);
  --mint: var(--gray);
  --mint-pale: var(--surface-soft);
  --blue-dust: var(--gray-soft);
  --cream: var(--paper);
  --ivory: var(--surface);
  --mustard: var(--gray);
  --gold-soft: var(--gray-soft);
  --orange: var(--gray);
  --burnt-orange: var(--gray);
  --terracotta: var(--gray);
  --coral-brick: var(--red);
  --red-brick: var(--red);
  --burgundy-soft: var(--red-deep);
  --deep-red: var(--red-deep);
}

body { background: var(--paper); color: var(--ink); }
body::before, .hero::before, .hero__shape--one, .hero__shape--one::after,
.contact__content::before, .contact__content::after { content: none; background: none; }
h1, h2, h3 { color: var(--ink); }
p, .hero__text { color: var(--ink-soft); }
.section:not(.experience-band):not(.contact) { background: var(--paper); }
.section--soft, .services-section, #sobre-mi { background: var(--surface) !important; border-block: 1px solid var(--line-soft); }
.cases-section, .hero { background: var(--paper) !important; border-bottom: 1px solid var(--line-soft); }

.site-header, .site-header.is-scrolled { background: rgba(250,250,250,.96); border-bottom: 1px solid var(--line-soft); box-shadow: none; }
.nav-menu { background: var(--white); border: 1px solid var(--line); box-shadow: none; }
.nav-menu a { color: var(--ink-soft); }
.nav-menu a:hover, .nav-menu a:focus-visible { color: var(--ink); background: var(--surface-soft); outline: 2px solid transparent; }
.nav-menu a.is-active, .nav-menu a[aria-current="page"] { color: var(--ink); background: var(--white); }
.nav-menu a::after, .nav-menu li:nth-child(2n) a::after { background: var(--red); }
.nav-toggle { background: var(--white); border-color: var(--line); }
.logo img { filter: none; }

.eyebrow, .panel-kicker { color: var(--red); letter-spacing: .2em; }
.eyebrow::before, .panel-dot { background: var(--red); box-shadow: 0 0 0 4px var(--red-soft); }
.hero__grid { background: var(--surface); border-color: var(--line-soft); opacity: .42; }
.hero__grid::before, .hero__grid::after { background: var(--line-soft); }
.hero__grid span, .hero__grid span:nth-child(2), .hero__grid span:nth-child(3) { background: var(--gray); box-shadow: none; opacity: .8; }
.hero__grid span:nth-child(1) { background: var(--red); }
.hero__copy::after { width: 152px; height: 2px; background: var(--ink); box-shadow: 64px 0 0 var(--red); opacity: 1; }
.hero h1::after { display: none; }
.button::after { content: none; }
.button--primary, .button--primary:hover, .button--primary:focus-visible { background: var(--ink); color: var(--white); border-color: var(--ink); }
.button--primary:hover, .button--primary:focus-visible { background: var(--black); box-shadow: 0 18px 38px rgba(0,0,0,.18), 0 0 0 4px var(--red-soft); }
.button--secondary { background: var(--white); color: var(--ink); border-color: var(--line); box-shadow: none; }
.button--secondary:hover, .button--secondary:focus-visible { background: var(--surface-soft); border-color: var(--ink); box-shadow: 0 0 0 4px var(--red-soft); }

.hero__panel { background: var(--surface); border: 1px solid var(--line); box-shadow: var(--shadow-soft); backdrop-filter: none; }
.hero__panel::before { border-color: var(--line-soft); }
.hero__panel::after { background: transparent; border-color: var(--line); box-shadow: none; opacity: .8; }
.elevator-scene { background: var(--white); border-block-color: var(--line-soft); }
.elevator-scene::before { background: var(--surface-soft); border-color: var(--line-soft); }
.elevator-scene::after { background: transparent; border-color: var(--line); }
.elevator-scene:focus-visible { outline: 2px solid var(--red); }
.elevator-rails path, .elevator-level path, .elevator-directory path { stroke: rgba(0,0,0,.24); }
.elevator-arrow path { stroke: var(--red); }
.elevator-cabin__back { fill: var(--surface); stroke: rgba(0,0,0,.32); }
.elevator-door { fill: var(--white); stroke: rgba(0,0,0,.24); }
.elevator-level circle { fill: var(--gray); opacity: 1; }
.elevator-level--top circle, .elevator-indicator circle, .elevator-person__warm-detail { fill: var(--red); }
.elevator-thought__shape { fill: var(--white); stroke: var(--line); }
.elevator-thought__text { fill: var(--ink); }
.elevator-thought__text.is-cta, .elevator-scene.is-cta-ready:hover .elevator-thought__text.is-cta, .elevator-scene.is-cta-ready:focus-visible .elevator-thought__text.is-cta { fill: var(--red); }
.elevator-scene.is-cta-ready .elevator-thought__shape, .elevator-scene.is-cta-ready:hover .elevator-thought__shape, .elevator-scene.is-cta-ready:focus-visible .elevator-thought__shape { stroke: var(--red); filter: drop-shadow(0 0 16px var(--red-soft)); }
.panel-footer { background: var(--white); border-color: var(--line); color: var(--ink-muted); box-shadow: none; }
.panel-levels::before { background: var(--gray-soft); }
.panel-level::before { background: var(--gray-soft); border-color: var(--gray); box-shadow: none; }
.panel-level.is-active::before, .panel-level[aria-current="true"]::before { background: var(--red); border-color: var(--red); box-shadow: 0 0 0 4px var(--red-soft); }

.services-section::before, .cases-section::before { background: var(--red); opacity: .8; }
.services-deck::before { background: var(--paper); border: 1px solid var(--line-soft); opacity: 1; }
.services-deck__trigger { background: var(--white); border: 1px solid var(--line); color: var(--ink); box-shadow: none; }
.services-deck__trigger:hover, .services-deck__trigger:focus-visible { background: var(--surface-soft); border-color: var(--red); box-shadow: 0 0 0 4px var(--red-soft); }
.service-card { filter: drop-shadow(0 18px 26px rgba(0,0,0,.10)); }
.service-card:nth-child(n) { --card-bg: var(--ink); --front-bg: var(--white); --suit: var(--red); }
.service-card__back { background: var(--card-bg); border: 1px solid rgba(255,255,255,.16); box-shadow: inset 0 0 0 8px rgba(255,255,255,.06), inset 0 0 0 10px rgba(0,0,0,.22), var(--shadow-card); }
.service-card__back::before { background: transparent; border-color: rgba(255,255,255,.22); box-shadow: inset 0 0 0 5px rgba(255,255,255,.06); }
.service-card__monogram { color: var(--white); border-color: rgba(255,255,255,.22); background: rgba(255,255,255,.06); }
.service-card__backline, .service-card__index::after { background: var(--red); }
.service-card__front { background: var(--front-bg); border: 1px solid var(--line); border-top: 4px solid var(--red); box-shadow: var(--shadow-card); }
.service-card__front::after { background: var(--surface-soft); }
.service-card__index { color: var(--red); }
.icon { background: var(--surface-soft); border-color: var(--line); box-shadow: none; }
.icon::before { background-color: var(--red); border-color: var(--red); }

.experience-band, .experience-band::before { background: var(--ink); }
.experience-band::after { background: var(--red); opacity: .18; }
.experience-panel h2, .experience-machine__header h3 { color: var(--white); }
.experience-panel p, .experience-metrics .metric-item span, .experience-machine__header p { color: rgba(255,255,255,.72); }
.experience-panel .eyebrow, .experience-machine__header small { color: var(--red); }
.experience-machine { background: #080808; border-color: rgba(255,255,255,.14); }
.experience-metrics .metric-item { background: rgba(255,255,255,.045); border-color: rgba(255,255,255,.13); }
.experience-metrics .metric-item.is-settled { background: rgba(179,38,30,.10); border-color: rgba(179,38,30,.45); }
.experience-metrics .metric-item::before { background: var(--gray); box-shadow: none; }
.experience-metrics .metric-item.is-settled::before { background: var(--red); box-shadow: 0 0 0 4px var(--red-soft); }
.experience-metrics strong { color: var(--white); }
.experience-lever { background: rgba(255,255,255,.055); border-color: rgba(255,255,255,.18); }
.experience-lever__rail { background: rgba(255,255,255,.24); }
.experience-lever__arm { background: var(--gray-soft); }
.experience-lever__arm span { background: var(--white); border-color: rgba(255,255,255,.4); }
.experience-lever.is-active .experience-lever__arm, .experience-lever[aria-pressed="true"] .experience-lever__arm { background: var(--red); }
.experience-lever.is-active .experience-lever__arm span, .experience-lever[aria-pressed="true"] .experience-lever__arm span { background: var(--red); }

.case-list { border-top: 1px solid var(--line); }
.case-item { background: var(--surface); border-bottom-color: var(--line-soft); }
.case-item span, .case-item:nth-child(2n) span, .case-item:nth-child(3n) span { color: var(--red); }
.case-item:hover { background: var(--surface-soft); }
.case-item::before, .case-item h3::after { background: var(--red); }

.about__mark.about-target { background: var(--surface); border: 1px solid var(--line); box-shadow: var(--shadow-soft); }
.about__mark.about-target::before { content: none; }
.about__mark.about-target::after { background: rgba(0,0,0,.08); filter: blur(12px); opacity: 1; }
.about-target__board { background: var(--white); box-shadow: 0 24px 48px rgba(0,0,0,.12), inset 0 0 0 22px var(--surface-soft), inset 0 0 0 46px var(--gray-soft), inset 0 0 0 72px var(--surface), inset 0 0 0 98px var(--white), inset 0 0 0 104px var(--line); }
.about-target__rings { border-color: var(--line); }
.about-target__center-dot, .about-target__impact, .about-target__impact.is-best { background: var(--red); }
.about-target__impact { border-color: var(--red-deep); box-shadow: 0 0 0 4px var(--red-soft); }
.about-target__impact::after, .prize-modal__discount { color: var(--red); }
.about-target__feedback, .about-target__status { background: var(--white); border-color: var(--line); color: var(--ink-soft); }
.prize-modal__panel, .prize-modal__dialog { background: var(--surface); border-color: var(--line); color: var(--ink); }
.prize-modal__code { background: var(--white); border-color: var(--line); color: var(--ink); }

.contact, .contact__content { background: var(--black); }
.contact__content { border-color: rgba(255,255,255,.14); box-shadow: 0 28px 76px rgba(0,0,0,.28); }
.contact__content h2 { color: var(--white); }
.contact__content .eyebrow { color: var(--red); }
.contact__copy p:not(.eyebrow) { color: rgba(255,255,255,.76); }
.contact__constellation::before { background: var(--gray); }
.contact__constellation span, .contact__constellation span:nth-child(1), .contact__constellation span:nth-child(2), .contact__constellation span:nth-child(3) { background: var(--gray-soft); box-shadow: none; }
.contact__lamp-switch[aria-pressed="true"] { background: var(--red-soft); border-color: var(--red); }
.contact__lamp-switch[aria-pressed="true"] .contact__lamp-switch-track span { background: var(--red); }
.contact__lamp-fixture::before, .contact__light-pool { background: var(--white); opacity: 0; }
.contact__light-cone, .contact__light-cone::after { background: rgba(255,255,255,.13); }
.button--light, .contact__content.is-lit .button--light { background: var(--white); color: var(--black); border-color: var(--white); }
.button--light:hover, .button--light:focus-visible { background: var(--surface-soft); color: var(--ink); box-shadow: 0 0 0 4px var(--red-soft); }

.site-footer { background: var(--paper); border-top: 1px solid var(--line-soft); }
.footer__content p { color: var(--ink-muted); }
.footer__content a { color: var(--red); }
.footer__content a:hover, .footer__content a:focus-visible { color: var(--ink); }

:focus-visible { outline: 2px solid var(--red); outline-offset: 3px; }
@media (max-width: 860px) { .nav-menu { background: var(--white); box-shadow: var(--shadow-soft); } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto; } }

/* Dirección visual noir editorial: negro dominante, blanco de contraste y rojo quirúrgico. */
body {
  background: var(--black);
  color: var(--white);
}
body::before {
  opacity: .34;
  background-image: linear-gradient(rgba(255,255,255,.025) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.025) 1px, transparent 1px);
  background-size: 56px 56px;
}
.section { background: var(--black); }
.section--soft,
.services-section,
.about-section { background: var(--ink); border-block: 1px solid var(--line-dark-soft); }
.cases-section,
.experience-band { background: var(--black); color: var(--white); }
h1, h2, h3 { color: var(--white); }
p, .hero__text, .about p, .case-item p { color: var(--gray-soft); }
.eyebrow { color: var(--red); }
.eyebrow::before { background: var(--red); box-shadow: 0 0 0 4px var(--red-soft); }

.site-header,
.site-header.is-scrolled { background: rgba(0,0,0,.94); border-bottom-color: var(--line-dark-soft); box-shadow: 0 12px 32px rgba(0,0,0,.28); }
.logo img { filter: none; }
.nav-menu { background: var(--surface-dark); border-color: var(--line-dark); }
.nav-menu a { color: var(--gray-soft); }
.nav-menu a::after, .nav-menu li:nth-child(2n) a::after { background: var(--red); }
.nav-menu a:hover, .nav-menu a:focus-visible,
.nav-menu a:nth-child(odd):hover, .nav-menu a:nth-child(odd):focus-visible { color: var(--white); background: var(--surface-dark-2); }
.nav-toggle { background: var(--surface-dark); border-color: var(--line-dark); }
.nav-toggle__line { background: var(--white); }

.hero { background: var(--black); color: var(--white); }
.hero__grid { border-color: var(--line-dark-soft); background: rgba(255,255,255,.018); }
.hero__grid::before, .hero__grid::after { background: var(--line-dark-soft); }
.hero__grid span { background: var(--gray-muted); box-shadow: 0 0 0 4px rgba(255,255,255,.035); }
.hero__grid span:nth-child(2), .hero__grid span:nth-child(3) { background: var(--red); box-shadow: 0 0 0 4px var(--red-soft); }
.hero__shape--one { border-color: var(--line-dark); box-shadow: 0 0 58px rgba(255,255,255,.08); }
.hero__shape--one::after { background: var(--surface-dark); }
.hero__copy::after { background: linear-gradient(90deg, var(--gray-soft) 0 68%, var(--red) 68% 100%); }
.hero h1::after { background: linear-gradient(90deg, var(--white) 0 78%, var(--red) 78% 100%); opacity: .9; }
.button::after { background: transparent; }
.button--primary,
.button--primary:hover,
.button--primary:focus-visible { background: var(--white); color: var(--black); border-color: var(--white); box-shadow: 0 18px 38px rgba(0,0,0,.28); }
.button--primary:hover, .button--primary:focus-visible { background: var(--gray-soft); }
.button--secondary { background: transparent; color: var(--white); border-color: var(--line-dark); box-shadow: inset 0 0 0 1px var(--line-dark-soft); }
.button--secondary:hover, .button--secondary:focus-visible { background: var(--surface-dark); color: var(--white); border-color: var(--red); box-shadow: 0 0 0 4px var(--red-soft); }

.hero__panel { background: var(--surface-dark); border-color: var(--line-dark); box-shadow: 0 30px 74px rgba(0,0,0,.38), inset 0 1px 0 rgba(255,255,255,.06); }
.hero__panel::before { border-color: var(--line-dark-soft); border-top-color: var(--red); border-right-color: var(--line-dark); }
.hero__panel::after, .contact__content::after { background: var(--surface-dark-2); border-color: var(--line-dark); box-shadow: none; }
.panel-kicker, .panel-dot { color: var(--red); background: var(--red); }
.panel-dot { box-shadow: 0 0 0 4px var(--red-soft); }
.hero__panel p, .panel-message, .panel-level strong { color: var(--white); }
.elevator-scene { background: var(--ink-2); border-block-color: var(--line-dark); }
.elevator-scene::before { background: var(--ink-2); border-color: var(--line-dark-soft); }
.elevator-scene::after { background: transparent; border-color: var(--line-dark); }
.elevator-scene:focus-visible { outline-color: var(--red); }
.elevator-rails path, .elevator-level path, .elevator-arrow path, .elevator-directory path,
.elevator-cabin__split, .elevator-cabin__shine, .elevator-indicator path { stroke: rgba(255,255,255,.22); }
.elevator-level circle, .elevator-indicator circle { fill: var(--gray-muted); }
.elevator-level--top circle, .elevator-person__warm-detail { fill: var(--red); }
.elevator-cabin__back { fill: var(--surface-dark-2); stroke: rgba(255,255,255,.24); filter: drop-shadow(0 18px 26px rgba(0,0,0,.34)); }
.elevator-door { fill: rgba(255,255,255,.12); stroke: rgba(255,255,255,.26); }
.elevator-thought__shape, .elevator-scene.is-cta-ready .elevator-thought__shape { fill: var(--black); stroke: var(--line-dark); }
.elevator-scene.is-cta-ready:hover .elevator-thought__shape, .elevator-scene.is-cta-ready:focus-visible .elevator-thought__shape { stroke: var(--red); filter: drop-shadow(0 0 14px rgba(179,38,30,.16)); }
.elevator-thought__text { fill: var(--white); }
.elevator-thought__text.is-cta, .elevator-scene.is-cta-ready:hover .elevator-thought__text.is-cta { fill: var(--red); }
.elevator-thought-bubbles circle { fill: var(--black); stroke: var(--line-dark); }
.elevator-person__head { fill: var(--white); }
.elevator-person__torso, .elevator-person__arm, .elevator-person__leg { stroke: var(--white); }
.panel-footer { background: var(--ink-2); border-color: var(--line-dark); color: var(--gray); box-shadow: none; }
.panel-levels::before { background: var(--gray-muted); }
.panel-level::before { background: var(--gray-muted); border-color: var(--line-dark); box-shadow: none; }

.services-section::before, .cases-section::before { background: var(--red); }
.services-deck::before { background: var(--surface-dark); border-color: var(--line-dark-soft); }
.services-deck__trigger { background: var(--surface-dark); color: var(--white); border-color: var(--line-dark); box-shadow: none; }
.services-deck__trigger::before { background: var(--red); box-shadow: 0 0 0 5px var(--red-soft); }
.services-deck__trigger:hover, .services-deck__trigger:focus-visible { color: var(--white); border-color: var(--red); box-shadow: 0 0 0 4px var(--red-soft); }
.services-deck__trigger:focus-visible, .service-card:focus-visible { outline-color: var(--red); }
.service-card:nth-child(n) { --card-bg: var(--surface-dark-2); --suit: var(--red); }
.service-card:hover, .services-deck.is-revealed .service-card:hover { filter: drop-shadow(0 24px 35px rgba(0,0,0,.34)); }
.service-card__back { background: var(--black); border-color: var(--line-dark); }
.service-card__back::before { background: repeating-linear-gradient(45deg, rgba(255,255,255,.055) 0 1px, transparent 1px 10px); border-color: var(--line-dark); box-shadow: inset 0 0 0 5px rgba(255,255,255,.025); }
.service-card__back::after { border-color: var(--red); opacity: .34; }
.service-card__monogram { color: var(--white); border-color: var(--line-dark); }
.service-card__backline { background: var(--red); }
.service-card__front { background: var(--surface-dark-2); color: var(--white); border-color: var(--line-dark); box-shadow: 0 24px 58px rgba(0,0,0,.32), inset 0 1px 0 rgba(255,255,255,.05); }
.service-card__front::before { border-color: var(--line-dark-soft); box-shadow: none; }
.service-card__front::after { background: var(--red); }
.service-card__index { color: var(--red); }
.service-card__index::after { background: var(--red); }
.service-card__text { color: var(--gray-soft); }
.icon { background: rgba(255,255,255,.04); border-color: var(--line-dark); box-shadow: none; }
.icon::before { border-color: var(--gray); background-color: transparent; }
.icon--custom::before { background: var(--red); }
.service-card:hover .icon { border-color: var(--red); box-shadow: 0 0 0 6px var(--red-soft); }

.experience-band::before { background: var(--black); }
.experience-band::after { background: var(--line-dark); }
.experience-panel h2 { color: var(--white); }
.experience-panel .eyebrow { color: var(--red); }
.experience-machine { background: var(--surface-dark); border-color: var(--line-dark); box-shadow: 0 24px 64px rgba(0,0,0,.32); }
.experience-machine__header { border-bottom-color: var(--line-dark-soft); color: var(--gray); }
.experience-machine__header small { color: var(--red); }
.experience-metrics .metric-item { background: var(--ink-2); border-color: var(--line-dark-soft); }
.experience-metrics .metric-item::before { background: var(--gray-muted); box-shadow: none; }
.experience-metrics .metric-item.is-settled { background: var(--surface-dark-2); border-color: rgba(179,38,30,.42); box-shadow: 0 16px 36px rgba(0,0,0,.22); }
.experience-metrics .metric-item.is-settled::before { background: var(--red); box-shadow: 0 0 0 4px var(--red-soft); }
.experience-metrics span:not(.metric-prefix):not(.metric-value) { color: var(--gray); }
.experience-lever { background: var(--ink-2); border-color: var(--line-dark); }
.experience-lever:focus-visible { outline-color: var(--red); }
.experience-lever__rail { background: var(--gray-muted); }
.experience-lever__arm { background: var(--red); }
.experience-lever__arm span { background: var(--white); border-color: var(--gray-soft); }
.experience-orbit { border-color: var(--line-dark); }
.experience-orbit span { background: var(--gray-muted); box-shadow: none; }
.experience-orbit span:last-child { background: var(--red); }

.case-list { border-top-color: var(--line-dark); }
.case-item { border-bottom-color: var(--line-dark); }
.case-item::before { background: var(--red); }
.case-item:hover { background: var(--surface-dark); border-color: var(--line-dark); }
.case-item span { color: var(--red); }

.about__mark { background: var(--surface-dark); border-color: var(--line-dark); box-shadow: 0 24px 60px rgba(0,0,0,.28); }
.about__mark::before { border-color: var(--line-dark-soft); }
.about__mark::after { background: var(--red); border-color: var(--red); opacity: .84; }
.about__mark img { filter: invert(1) grayscale(1) contrast(1.08) drop-shadow(0 10px 18px rgba(0,0,0,.3)); }
.about__mark small { color: var(--gray); }

.contact__content { background: var(--black); border-color: var(--line-dark); color: var(--white); box-shadow: 0 28px 76px rgba(0,0,0,.34); }
.contact__content .eyebrow { color: var(--red); }
.button--light { background: var(--white); color: var(--black); border-color: var(--white); box-shadow: 0 16px 42px rgba(0,0,0,.22); }
.button--light:hover, .button--light:focus-visible { background: var(--gray-soft); border-color: var(--red); box-shadow: 0 0 0 4px var(--red-soft); }
.contact__constellation::before { background: var(--gray-muted); }
.contact__constellation span { background: var(--gray-muted); box-shadow: none; }
.contact__constellation span:nth-child(2) { background: var(--white); }
.contact__constellation span:nth-child(3) { background: var(--red); }

.site-footer { background: var(--black); border-top-color: var(--line-dark-soft); }
.footer__content p { color: var(--gray); }
.footer__content a { color: var(--red); }

@media (max-width: 860px) {
  .nav-menu { background: var(--surface-dark); border-color: var(--line-dark); box-shadow: var(--shadow-soft); }
}

/* Piezas interactivas y modales en clave monocromática. */
.about__mark.about-target { background: var(--surface-dark); border-color: var(--line-dark); box-shadow: 0 24px 60px rgba(0,0,0,.3); }
.about__mark.about-target::before { content: none; }
.about__mark.about-target::after { background: var(--red); filter: none; opacity: .82; }
.about-target__board { background: var(--ink-2); box-shadow: 0 24px 48px rgba(0,0,0,.26), inset 0 0 0 22px var(--surface-dark-2), inset 0 0 0 46px var(--gray-muted), inset 0 0 0 72px var(--surface-dark), inset 0 0 0 98px var(--ink-2), inset 0 0 0 104px var(--line-dark); }
.about-target__rings { border-color: var(--line-dark); }
.about-target__center-dot, .about-target__impact, .about-target__impact.is-best { background: var(--red); }
.about-target__impact { border-color: var(--red-deep); box-shadow: 0 0 0 4px var(--red-soft); }
.about-target__impact::after { background: var(--black); border-color: var(--line-dark); color: var(--red); }
.about-target__feedback, .about-target__status { background: var(--black); border-color: var(--line-dark); color: var(--gray-soft); }
.prize-modal__panel, .prize-modal__dialog { background: var(--surface-dark); border-color: var(--line-dark); color: var(--white); }
.prize-modal__discount { color: var(--red); }
.prize-modal__code { background: var(--black); border-color: var(--line-dark); color: var(--white); }
.contact__content.is-lit .button--light { background: var(--white); color: var(--black); border-color: var(--white); box-shadow: 0 0 0 4px var(--red-soft), 0 18px 44px rgba(0,0,0,.24); }
.contact__lamp-switch[aria-pressed="true"] { background: var(--red-soft); border-color: var(--red); }
.contact__lamp-switch[aria-pressed="true"] .contact__lamp-switch-track span { background: var(--red); }
.contact__light-cone, .contact__light-cone::after { background: rgba(255,255,255,.13); }
.contact__lamp-fixture::before, .contact__light-pool { background: var(--white); }

/* Ajuste prioritario de contraste del hero: columna izquierda sólida y lectura máxima. */
.hero__copy--intro {
  max-width: 800px;
  padding: clamp(2rem, 4.2vw, 3.65rem);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: calc(var(--radius-xl) + 4px);
  background: #080808;
  box-shadow: 0 28px 70px rgba(0, 0, 0, 0.34), inset 0 1px 0 rgba(255, 255, 255, 0.05);
}

.hero__copy--intro .eyebrow {
  color: var(--red);
}

.hero__copy--intro .eyebrow::before {
  background: var(--red);
  box-shadow: 0 0 0 4px var(--red-soft), 0 0 18px rgba(179, 38, 30, 0.2);
}

.hero__copy--intro h1 {
  color: #FFFFFF;
  text-shadow: 0 1px 18px rgba(0, 0, 0, 0.22);
}

.hero__copy--intro .hero__text {
  color: #D9D9D9;
}

.hero__copy--intro::after {
  background: linear-gradient(90deg, rgba(255, 255, 255, 0.72) 0 68%, var(--red) 68% 100%);
  box-shadow: none;
}

.hero__copy--intro .button--primary,
.hero__copy--intro .button--primary:hover,
.hero__copy--intro .button--primary:focus-visible {
  background: #FFFFFF;
  color: #000000;
  border-color: #FFFFFF;
  box-shadow: 0 18px 38px rgba(0, 0, 0, 0.32);
}

.hero__copy--intro .button--primary:hover,
.hero__copy--intro .button--primary:focus-visible {
  background: #D9D9D9;
  border-color: #D9D9D9;
}

.hero__copy--intro .button--secondary {
  background: transparent;
  color: #FFFFFF;
  border-color: rgba(255, 255, 255, 0.38);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.08);
}

.hero__copy--intro .button--secondary:hover,
.hero__copy--intro .button--secondary:focus-visible {
  background: rgba(255, 255, 255, 0.06);
  border-color: var(--red);
  box-shadow: 0 0 0 4px var(--red-soft);
}

@media (max-width: 560px) {
  .hero__copy--intro {
    padding: 1.5rem;
  }
}

/* Rediseño editorial estricto: base clara, monocromo y acento rojo. */
:root {
  --black: #000000;
  --ink: #0B0B0B;
  --ink-2: #161616;
  --surface-dark: #0B0B0B;
  --surface-dark-2: #181818;
  --white: #FFFFFF;
  --paper: #FAFAFA;
  --surface: #FFFFFF;
  --surface-clean: #FFFFFF;
  --surface-raised: #FAFAFA;
  --surface-highlight: #F4F4F4;
  --gray-soft: #E5E5E5;
  --gray: #D9D9D9;
  --gray-muted: #3A3A3A;
  --red: #C61E1E;
  --red-deep: #9F1717;
  --red-soft: rgba(198, 30, 30, .12);
  --line: #E5E5E5;
  --line-soft: #EFEFEF;
  --line-light: rgba(0, 0, 0, .10);
  --line-dark: rgba(255, 255, 255, .16);
  --line-dark-soft: rgba(255, 255, 255, .09);
  --color-bg: var(--paper);
  --color-text: var(--ink);
  --color-ink: var(--ink);
  --color-ink-soft: #3A3A3A;
  --color-muted: #3A3A3A;
  --color-line: var(--line);
  --color-warm: var(--red);
  --color-warm-soft: var(--red-soft);
  --color-lavender: var(--red);
  --color-lavender-soft: var(--red-soft);
  --color-mint: #D9D9D9;
  --color-mint-soft: #FAFAFA;
  --bg-page: var(--paper);
  --bg-secondary: var(--white);
  --bg-soft: var(--paper);
  --bg-dark: var(--black);
  --shadow-soft: 0 18px 44px rgba(0, 0, 0, .07);
  --shadow-editorial: 0 24px 64px rgba(0, 0, 0, .09);
}

html, body { background: var(--paper); color: var(--ink); }
body::before, .hero::before, .hero__shape, .hero__shape--one, .contact__content::before, .contact__content::after { content: none !important; background: none !important; }
.section, .section--soft, .services-section, .cases-section, .experience-band, .contact { background: var(--paper) !important; color: var(--ink); border-color: var(--line-soft); }
h1, h2, h3, .hero h1, .section-heading h2, .cases-section h2, .about h2 { color: var(--ink) !important; text-shadow: none !important; }
p, .hero__text, .about p, .case-item p { color: #3A3A3A !important; }
.eyebrow, .experience-panel .eyebrow, .contact__content .eyebrow { color: var(--red) !important; }
.eyebrow::before { background: var(--red) !important; box-shadow: 0 0 0 4px var(--red-soft) !important; }

.site-header, .site-header.is-scrolled { background: rgba(255,255,255,.94) !important; border-bottom-color: var(--line) !important; box-shadow: 0 10px 30px rgba(0,0,0,.05) !important; }
.logo img { filter: none !important; }
.nav-menu { background: rgba(255,255,255,.9) !important; border-color: var(--line) !important; }
.nav-menu a { color: var(--ink) !important; }
.nav-menu a:hover, .nav-menu a:focus-visible { background: #F4F4F4 !important; color: var(--black) !important; }
.nav-menu a::after { background: var(--red) !important; }
.nav-toggle { background: var(--white) !important; border-color: var(--line) !important; }
.nav-toggle__line { background: var(--ink) !important; }

.button { border-radius: 999px; }
.button::after, .hero__copy::after, .hero h1::after { content: none !important; background: none !important; }
.button--primary, .hero__copy--intro .button--primary, .button--primary:hover, .button--primary:focus-visible { background: var(--black) !important; color: var(--white) !important; border-color: var(--black) !important; box-shadow: 0 14px 34px rgba(0,0,0,.12) !important; }
.button--primary:hover, .button--primary:focus-visible { box-shadow: 0 0 0 4px var(--red-soft), 0 16px 36px rgba(0,0,0,.13) !important; }
.button--secondary, .hero__copy--intro .button--secondary, .button--ghost { background: var(--white) !important; color: var(--black) !important; border-color: var(--black) !important; box-shadow: none !important; }
.button--secondary:hover, .button--secondary:focus-visible, .button--ghost:hover, .button--ghost:focus-visible { border-color: var(--red) !important; box-shadow: 0 0 0 4px var(--red-soft) !important; }

.hero { border-bottom: 1px solid var(--line-soft); }
.hero__grid { border-color: var(--line-soft) !important; background: transparent !important; opacity: .75; }
.hero__grid::before, .hero__grid::after { background: var(--line-soft) !important; }
.hero__grid span { background: var(--red) !important; box-shadow: 0 0 0 4px var(--red-soft) !important; }
.hero__copy--intro { padding: 0 !important; border: 0 !important; background: transparent !important; box-shadow: none !important; }
.hero__copy--intro h1 { color: var(--ink) !important; }
.hero__copy--intro .hero__text { color: #3A3A3A !important; }
.hero__panel { background: var(--black) !important; border: 1px solid var(--black) !important; color: var(--white) !important; box-shadow: 0 24px 58px rgba(0,0,0,.16) !important; }
.hero__panel::before { border-color: var(--line-dark-soft) !important; border-top-color: var(--red) !important; }
.panel-kicker { color: var(--red) !important; background: transparent !important; }
.panel-dot { background: var(--red) !important; }
.hero__panel p, .panel-message, .panel-level strong { color: var(--white) !important; }
.elevator-scene { background: #111 !important; border-block-color: var(--line-dark) !important; }
.elevator-scene::before { background: transparent !important; border-color: var(--line-dark-soft) !important; }
.elevator-scene::after { background: transparent !important; }
.elevator-thought__shape { fill: var(--white) !important; stroke: var(--line-dark) !important; }
.elevator-thought__text { fill: var(--ink) !important; }
.elevator-thought__text.is-cta { fill: var(--red) !important; }
.panel-footer { background: #111 !important; border-color: var(--line-dark) !important; color: #D9D9D9 !important; box-shadow: none !important; }

.services-deck::before { background: var(--white) !important; border: 1px solid var(--line) !important; box-shadow: var(--shadow-soft); }
.services-deck__trigger { background: var(--black) !important; color: var(--white) !important; border-color: var(--black) !important; box-shadow: none !important; }
.services-deck__trigger::before { background: var(--red) !important; box-shadow: 0 0 0 4px var(--red-soft) !important; }
.service-card:nth-child(n) { --card-bg: #FFFFFF; --suit: var(--red); }
.service-card__back { background: var(--black) !important; border-color: var(--line-dark) !important; }
.service-card__back::before { background: none !important; border-color: var(--red) !important; }
.service-card__back::after { border-color: var(--red) !important; }
.service-card__front { background: var(--white) !important; color: var(--ink) !important; border: 1px solid var(--line) !important; box-shadow: var(--shadow-soft) !important; }
.service-card__title { color: var(--ink) !important; }
.service-card__text { color: #3A3A3A !important; }
.service-card__index { color: var(--red) !important; }
.icon { background: #FAFAFA !important; border-color: var(--line) !important; }

.experience-panel { align-items: center; }
.experience-panel h2 { color: var(--ink) !important; }
.experience-machine { background: var(--black) !important; border-color: var(--black) !important; box-shadow: 0 24px 58px rgba(0,0,0,.15) !important; }
.experience-machine__header { color: #D9D9D9 !important; border-bottom-color: var(--line-dark) !important; }
.experience-machine__header small { color: var(--red) !important; }
.experience-metrics .metric-item { background: #111 !important; border-color: var(--line-dark-soft) !important; }
.experience-metrics strong { color: var(--white) !important; }
.experience-metrics span:not(.metric-prefix):not(.metric-value) { color: #D9D9D9 !important; }
.experience-metrics .metric-item.is-settled { background: #161616 !important; border-color: rgba(198,30,30,.55) !important; }
.experience-lever { background: #111 !important; border-color: var(--line-dark) !important; }
.experience-lever__rail { background: #3A3A3A !important; }
.experience-lever__arm { background: var(--red) !important; }
.experience-lever__arm span { background: var(--white) !important; border-color: var(--white) !important; }
.experience-orbit { border-color: var(--line) !important; }
.experience-orbit span { background: var(--red) !important; box-shadow: none !important; }

.case-list { border-top: 1px solid var(--line) !important; }
.case-item { border-bottom: 1px solid var(--line) !important; }
.case-item:hover { background: #FFFFFF !important; border-color: var(--line) !important; }
.case-item span { color: var(--red) !important; }
.case-item h3 { color: var(--ink) !important; }
.case-item p { color: #3A3A3A !important; }

.about { align-items: center; }
.about__mark.about-target { background: var(--white) !important; border: 1px solid var(--line) !important; box-shadow: var(--shadow-editorial) !important; }
.about__mark.about-target::before, .about-target__grain, .about-target__segments { content: none !important; display: none !important; background: none !important; }
.about__mark.about-target::after { background: rgba(0,0,0,.06) !important; filter: blur(12px) !important; opacity: 1 !important; }
.about-target__intro strong { color: var(--red) !important; }
.about-target__intro em { color: #3A3A3A !important; }
.about-target__status { background: var(--white) !important; color: var(--ink) !important; border-color: var(--line) !important; }
.about-target__board { background: var(--red) !important; border: 1px solid var(--black) !important; box-shadow: 0 20px 42px rgba(0,0,0,.13), inset 0 0 0 28px var(--black), inset 0 0 0 58px var(--white), inset 0 0 0 88px var(--black), inset 0 0 0 118px var(--white) !important; }
.about-target__rings { border-color: transparent !important; }
.about-target__center-dot { width: 17%; background: var(--red) !important; border: 2px solid var(--white); box-shadow: 0 0 0 1px var(--black); }
.about-target__labels span { color: var(--ink) !important; text-shadow: none !important; font-weight: 950; }
.about-target__labels span:nth-child(1), .about-target__labels span:nth-child(3) { color: var(--white) !important; }
.about-target__labels span:nth-child(2), .about-target__labels span:nth-child(4) { color: var(--ink) !important; }
.about-target__labels span:nth-child(5) { color: var(--white) !important; }
.about-target__feedback { background: var(--white) !important; color: var(--ink) !important; border: 1px solid var(--line) !important; }
.about-target__signature { padding: .55rem .9rem; border: 1px solid var(--line); border-radius: 999px; background: #FAFAFA; }
.about-target__signature img { width: 122px; filter: none !important; }
.about-target__signature em { color: #3A3A3A !important; }
.about-target__crosshair { border-color: var(--red) !important; box-shadow: 0 0 0 5px var(--red-soft) !important; }
.about-target__crosshair::before, .about-target__crosshair::after { background: var(--red) !important; }
.about-target__impact, .about-target__impact.is-best { background: var(--red) !important; border-color: var(--red-deep) !important; }
.about-target__impact::after { background: var(--white) !important; border-color: var(--line) !important; color: var(--red) !important; }

.contact__content { background: var(--black) !important; border: 1px solid var(--black) !important; color: var(--white) !important; box-shadow: 0 24px 58px rgba(0,0,0,.16) !important; }
.contact__content h2 { color: var(--white) !important; }
.contact__copy p:not(.eyebrow) { color: #D9D9D9 !important; }
.button--light, .contact__content.is-lit .button--light { background: var(--white) !important; color: var(--black) !important; border-color: var(--white) !important; }
.contact__light-cone, .contact__light-cone::after { background: rgba(255,255,255,.16) !important; }
.contact__lamp-fixture::before, .contact__light-pool { background: var(--white) !important; }
.contact__constellation span, .contact__constellation span:nth-child(1), .contact__constellation span:nth-child(2), .contact__constellation span:nth-child(3) { background: var(--red) !important; box-shadow: none !important; }

.prize-modal__panel { background: var(--white) !important; color: var(--ink) !important; border-color: var(--line) !important; }
.prize-modal__panel h2 { color: var(--ink) !important; }
.prize-modal__discount { color: var(--red) !important; }
.prize-modal__code { background: #FAFAFA !important; color: var(--ink) !important; border-color: var(--red) !important; }
.site-footer { background: var(--paper) !important; border-top: 1px solid var(--line) !important; }
.footer__content p { color: #3A3A3A !important; }
.footer__content a { color: var(--red) !important; }

@media (max-width: 860px) {
  .nav-menu { background: var(--white) !important; border-color: var(--line) !important; }
}

/* Dirección visual estricta: negro dominante, piezas blancas y acento rojo. */
:root {
  --black: #000000;
  --ink: #050505;
  --ink-2: #0B0B0B;
  --surface-dark: #111111;
  --surface-dark-2: #0B0B0B;
  --white: #FFFFFF;
  --paper: #F7F7F7;
  --gray-soft: #D8D8D8;
  --gray: #D8D8D8;
  --gray-muted: #3A3A3A;
  --red: #C61E1E;
  --red-deep: #9F1717;
  --red-soft: rgba(198, 30, 30, .18);
  --line: rgba(0, 0, 0, .14);
  --line-soft: rgba(0, 0, 0, .10);
  --line-dark: rgba(255, 255, 255, .22);
  --line-dark-soft: rgba(255, 255, 255, .12);
  --color-bg: var(--black);
  --color-text: var(--white);
  --color-ink: var(--white);
  --color-ink-soft: var(--gray-soft);
  --color-muted: var(--gray-soft);
  --color-line: var(--line-dark);
  --color-warm: var(--red);
  --color-warm-soft: var(--red-soft);
  --color-lavender: var(--red);
  --color-lavender-soft: var(--surface-dark);
  --color-mint: var(--gray-soft);
  --color-mint-soft: var(--surface-dark);
  --bg-page: var(--black);
  --bg-secondary: var(--surface-dark);
  --bg-soft: var(--black);
  --bg-dark: var(--black);
}

html, body { background: var(--black) !important; color: var(--white) !important; }
body::before, .hero::before, .hero__shape, .hero__shape--one, .button::after, .hero__copy::after, .hero h1::after, .services-deck::before, .experience-band::after, .contact__content::before, .contact__content::after, .about-target__grain, .about-target__segments { content: none !important; display: none !important; background: none !important; }
.section, .services-section, .cases-section, .experience-band, .contact { background: var(--black) !important; color: var(--white) !important; border-color: var(--line-dark-soft) !important; }
.section--soft { background: var(--black) !important; }
h1, h2, h3, .hero h1, .section-heading h2, .cases-section h2, .experience-panel h2, .contact__content h2 { color: var(--white) !important; text-shadow: none !important; }
p, .hero__text, .section-heading p:not(.eyebrow), .experience-copy p:not(.eyebrow), .case-item p, .contact__copy p:not(.eyebrow), .panel-message { color: var(--gray-soft) !important; }
.eyebrow, .panel-kicker, .experience-machine__header small { color: var(--red) !important; }
.eyebrow::before, .panel-dot { background: var(--red) !important; box-shadow: 0 0 0 4px var(--red-soft) !important; }

.site-header, .site-header.is-scrolled { background: rgba(0,0,0,.96) !important; border-bottom-color: var(--line-dark-soft) !important; box-shadow: 0 12px 32px rgba(0,0,0,.34) !important; }
.logo img { filter: none !important; }
.nav-menu { background: var(--surface-dark) !important; border-color: var(--line-dark) !important; box-shadow: none !important; }
.nav-menu a { color: var(--white) !important; }
.nav-menu a:hover, .nav-menu a:focus-visible { background: var(--black) !important; color: var(--white) !important; }
.nav-menu a::after, .nav-menu li:nth-child(2n) a::after { background: var(--red) !important; }
.nav-toggle { background: var(--surface-dark) !important; border-color: var(--line-dark) !important; }
.nav-toggle__line { background: var(--white) !important; }

.button--primary, .hero__copy--intro .button--primary { background: var(--white) !important; color: var(--black) !important; border-color: var(--white) !important; box-shadow: none !important; }
.button--primary:hover, .button--primary:focus-visible { background: var(--red) !important; color: var(--white) !important; border-color: var(--red) !important; box-shadow: 0 0 0 4px var(--red-soft) !important; }
.button--secondary, .hero__copy--intro .button--secondary, .button--ghost { background: transparent !important; color: var(--white) !important; border-color: rgba(255,255,255,.56) !important; box-shadow: none !important; }
.button--secondary:hover, .button--secondary:focus-visible, .button--ghost:hover, .button--ghost:focus-visible { background: var(--surface-dark) !important; color: var(--white) !important; border-color: var(--red) !important; box-shadow: 0 0 0 4px var(--red-soft) !important; }

.hero { background: var(--black) !important; border-bottom: 1px solid var(--line-dark-soft) !important; }
.hero__grid { background: transparent !important; border-color: var(--line-dark-soft) !important; opacity: 1 !important; }
.hero__grid::before { background: var(--line-dark-soft) !important; }
.hero__grid::after { content: none !important; display: none !important; }
.hero__grid span, .hero__grid span:nth-child(n) { background: var(--red) !important; box-shadow: none !important; }
.hero__copy--intro { background: transparent !important; border: 0 !important; box-shadow: none !important; }
.hero__copy--intro h1, .hero__copy--intro .hero__text { color: inherit !important; }
.hero__copy--intro .hero__text { color: var(--gray-soft) !important; }
.hero__panel { background: var(--surface-dark) !important; border-color: var(--line-dark) !important; color: var(--white) !important; box-shadow: 0 28px 70px rgba(0,0,0,.42) !important; }
.hero__panel--intro { justify-self: center; width: min(100%, 410px); }
.hero__panel::before { border-color: var(--line-dark-soft) !important; border-top-color: var(--red) !important; }
.hero__panel::after { background: transparent !important; border-color: var(--line-dark) !important; }
.hero__panel p, .panel-message { color: var(--white) !important; }
.elevator-scene { background: var(--black) !important; border-block-color: var(--line-dark) !important; }
.elevator-scene::before, .elevator-scene::after { background: transparent !important; border-color: var(--line-dark-soft) !important; }
.elevator-rails path, .elevator-level path, .elevator-directory path, .elevator-directory circle, .elevator-arrow path { stroke: var(--gray-soft) !important; opacity: .85 !important; }
.elevator-cabin__back, .elevator-door { fill: var(--surface-dark) !important; stroke: var(--line-dark) !important; }
.elevator-cabin__shine, .elevator-cabin__split, .elevator-indicator path { stroke: var(--white) !important; opacity: .75 !important; }
.elevator-level circle, .elevator-indicator circle, .elevator-person__warm-detail { fill: var(--red) !important; }
.elevator-person__head { fill: var(--white) !important; }
.elevator-person__torso, .elevator-person__arm, .elevator-person__leg { stroke: var(--white) !important; }
.elevator-thought__shape { fill: var(--white) !important; stroke: var(--red) !important; }
.elevator-thought__text { fill: var(--black) !important; }
.elevator-thought__text.is-cta { fill: var(--red) !important; }
.elevator-thought-bubbles circle { fill: var(--white) !important; }
.panel-footer { background: var(--black) !important; border-color: var(--line-dark) !important; color: var(--gray-soft) !important; }
.panel-levels { gap: .58rem; padding-left: 1.12rem; }
.panel-levels::before { background: rgba(255,255,255,.22) !important; }
.panel-level { color: var(--gray-soft); align-items: center; gap: .74rem; letter-spacing: .055em; }
.panel-level strong { color: inherit; min-width: 5.15rem; }
.panel-level::before { background: var(--gray-muted); border-color: rgba(255,255,255,.36); box-shadow: none; }
@keyframes panel-level-base {
  0%, 34%, 96%, 100% { color: var(--red); transform: translate3d(2px, 0, 0); }
  42%, 92% { color: var(--gray-soft); transform: translate3d(0, 0, 0); }
}
@keyframes panel-level-middle {
  0%, 34%, 62%, 100% { color: var(--gray-soft); transform: translate3d(0, 0, 0); }
  42%, 56% { color: var(--red); transform: translate3d(2px, 0, 0); }
}
@keyframes panel-level-top {
  0%, 58%, 96%, 100% { color: var(--gray-soft); transform: translate3d(0, 0, 0); }
  68%, 90% { color: var(--red); transform: translate3d(2px, 0, 0); }
}
@keyframes panel-level-dot-base {
  0%, 34%, 96%, 100% { background: var(--red); border-color: var(--red); box-shadow: 0 0 0 4px var(--red-soft); transform: translate(-50%, -50%) scale(1.16); }
  42%, 92% { background: var(--gray-muted); border-color: rgba(255,255,255,.36); box-shadow: none; transform: translate(-50%, -50%) scale(1); }
}
@keyframes panel-level-dot-middle {
  0%, 34%, 62%, 100% { background: var(--gray-muted); border-color: rgba(255,255,255,.36); box-shadow: none; transform: translate(-50%, -50%) scale(1); }
  42%, 56% { background: var(--red); border-color: var(--red); box-shadow: 0 0 0 4px var(--red-soft); transform: translate(-50%, -50%) scale(1.16); }
}
@keyframes panel-level-dot-top {
  0%, 58%, 96%, 100% { background: var(--gray-muted); border-color: rgba(255,255,255,.36); box-shadow: none; transform: translate(-50%, -50%) scale(1); }
  68%, 90% { background: var(--red); border-color: var(--red); box-shadow: 0 0 0 4px var(--red-soft); transform: translate(-50%, -50%) scale(1.16); }
}

.services-section .section-heading h2, .services-section .section-heading span { color: var(--white) !important; }
.services-deck__trigger { background: var(--surface-dark) !important; color: var(--white) !important; border-color: var(--red) !important; box-shadow: none !important; }
.services-deck__trigger::before { background: var(--red) !important; box-shadow: 0 0 0 4px var(--red-soft) !important; }
.service-card:nth-child(n) { --card-bg: var(--black) !important; --front-bg: var(--surface-dark) !important; --suit: var(--red) !important; }
.service-card__back, .service-card__front { background: var(--surface-dark) !important; color: var(--white) !important; border-color: var(--line-dark) !important; box-shadow: none !important; }
.service-card__back::before { background: none !important; border-color: var(--red) !important; }
.service-card__back::after, .service-card__backline { border-color: var(--red) !important; background: var(--red) !important; }
.service-card__title, .service-card__text, .service-card__monogram { color: var(--white) !important; }
.service-card__text { color: var(--gray-soft) !important; }
.service-card__index { color: var(--red) !important; }
.icon { background: var(--black) !important; border-color: var(--line-dark) !important; }

.experience-panel { align-items: center !important; }
.experience-panel h2 { color: var(--white) !important; }
.experience-machine { background: var(--surface-dark) !important; border-color: var(--line-dark) !important; box-shadow: 0 28px 70px rgba(0,0,0,.38) !important; }
.experience-machine__header { color: var(--gray-soft) !important; border-bottom-color: var(--line-dark) !important; }
.experience-metrics .metric-item { background: var(--black) !important; border-color: var(--line-dark-soft) !important; }
.experience-metrics .metric-item::before { background: var(--red) !important; box-shadow: none !important; }
.experience-metrics strong, .metric-prefix, .metric-value { color: var(--white) !important; }
.experience-metrics span:not(.metric-prefix):not(.metric-value) { color: var(--gray-soft) !important; }
.experience-metrics .metric-item.is-settled { background: #111111 !important; border-color: rgba(198,30,30,.7) !important; }
.experience-lever { background: var(--black) !important; border-color: var(--line-dark) !important; }
.experience-lever__rail { background: var(--gray-muted) !important; }
.experience-lever__arm { background: var(--red) !important; }
.experience-lever__arm span { background: var(--white) !important; border-color: var(--white) !important; }
.experience-orbit { border-color: var(--line-dark-soft) !important; }
.experience-orbit span { background: var(--red) !important; box-shadow: none !important; }

.case-list { border-top-color: var(--line-dark) !important; }
.case-item { border-bottom-color: var(--line-dark) !important; color: var(--white) !important; }
.case-item:hover { background: var(--surface-dark) !important; border-color: var(--line-dark) !important; }
.case-item::before, .case-item h3::after { background: var(--red) !important; }
.case-item span, .case-item:nth-child(n) span { color: var(--red) !important; }
.case-item h3 { color: var(--white) !important; }
.case-item p { color: var(--gray-soft) !important; }

.about { align-items: center !important; color: var(--white) !important; }
.about h2 { color: var(--white) !important; }
.about p:not(.eyebrow) { color: var(--gray-soft) !important; }
.about__mark.about-target { background: var(--white) !important; color: var(--black) !important; border-color: var(--white) !important; box-shadow: 0 28px 70px rgba(0,0,0,.35) !important; }
.about__mark.about-target::after { content: none !important; display: none !important; }
.about-target__intro strong { color: var(--red) !important; }
.about-target__intro em { color: var(--gray-muted) !important; }
.about-target__status, .about-target__feedback { background: var(--white) !important; color: var(--black) !important; border-color: var(--line) !important; }
.about-target__board { background: var(--red) !important; border: 1px solid var(--black) !important; box-shadow: 0 22px 44px rgba(0,0,0,.16), inset 0 0 0 30px var(--black), inset 0 0 0 60px var(--white), inset 0 0 0 90px var(--black), inset 0 0 0 120px var(--white) !important; }
.about-target__rings { border-color: transparent !important; }
.about-target__center-dot, .about-target__impact, .about-target__impact.is-best { background: var(--red) !important; border-color: var(--red-deep) !important; }
.about-target__labels span { color: var(--black) !important; text-shadow: none !important; font-weight: 950 !important; }
.about-target__labels span:nth-child(1), .about-target__labels span:nth-child(3), .about-target__labels span:nth-child(5) { color: var(--white) !important; }
.about-target__labels span:nth-child(2), .about-target__labels span:nth-child(4) { color: var(--black) !important; }
.about-target__signature { background: var(--paper) !important; border-color: var(--line) !important; }
.about-target__signature img { filter: none !important; }
.about-target__signature em { color: var(--gray-muted) !important; }
.about-target__crosshair, .about-target__crosshair::before, .about-target__crosshair::after { border-color: var(--red) !important; background: var(--red) !important; }
.about-target__impact::after { background: var(--white) !important; color: var(--red) !important; border-color: var(--line) !important; }

.contact__content { background: var(--surface-dark) !important; border-color: var(--line-dark) !important; color: var(--white) !important; box-shadow: 0 28px 70px rgba(0,0,0,.38) !important; }
.contact__content h2 { color: var(--white) !important; }
.contact__copy p:not(.eyebrow) { color: var(--gray-soft) !important; }
.button--light, .contact__content.is-lit .button--light { background: var(--white) !important; color: var(--black) !important; border-color: var(--white) !important; box-shadow: none !important; }
.button--light:hover, .button--light:focus-visible { background: var(--red) !important; color: var(--white) !important; border-color: var(--red) !important; box-shadow: 0 0 0 4px var(--red-soft) !important; }
.contact__lamp-cable, .contact__lamp-shade, .contact__lamp-rim { stroke: var(--white) !important; }
.contact__lamp-bulb { fill: var(--white) !important; stroke: var(--red) !important; }
.contact__light-cone, .contact__light-cone::after { background: rgba(255,255,255,.16) !important; }
.contact__lamp-fixture::before, .contact__light-pool { background: var(--white) !important; }
.contact__constellation::before, .contact__constellation span, .contact__constellation span:nth-child(n) { background: var(--red) !important; box-shadow: none !important; }
.contact__lamp-switch { background: var(--black) !important; color: var(--white) !important; border-color: var(--line-dark) !important; }
.contact__lamp-switch-label { color: var(--white) !important; }
.contact__lamp-switch-track { background: var(--surface-dark) !important; border-color: var(--line-dark) !important; }
.contact__lamp-switch-track span, .contact__lamp-switch[aria-pressed="true"] .contact__lamp-switch-track span { background: var(--red) !important; }

.prize-modal__panel { background: var(--white) !important; color: var(--black) !important; border-color: var(--line) !important; }
.prize-modal__panel h2, .prize-modal__panel p:not(.eyebrow) { color: var(--black) !important; }
.prize-modal__discount { color: var(--red) !important; }
.prize-modal__code { background: var(--paper) !important; color: var(--black) !important; border-color: var(--red) !important; }
.prize-modal__actions .button--secondary, .prize-modal__actions .button--ghost { color: var(--black) !important; border-color: var(--black) !important; }

.site-footer { background: var(--black) !important; border-top-color: var(--line-dark-soft) !important; }
.footer__content p { color: var(--gray-soft) !important; }
.footer__content a { color: var(--red) !important; }

@media (max-width: 860px) {
  .nav-menu { background: var(--surface-dark) !important; border-color: var(--line-dark) !important; }
}


/* Correcciones puntuales: centrado del panel del ascensor y casos editoriales oscuros. */
.hero__content { grid-template-columns: minmax(0, 1fr) minmax(360px, 430px); gap: clamp(2.2rem, 5.4vw, 4.8rem); }
.hero__panel--intro { justify-self: center; width: min(100%, 400px); }
.hero__grid::before { left: 68% !important; opacity: .82; }
.hero__grid span:nth-child(1) { left: 68% !important; }
.hero__grid span:nth-child(3) { right: 10% !important; }
.elevator-scene { margin-inline: auto; width: 100%; }
.elevator-visual { max-width: 340px; margin-inline: auto; transform: translateX(10px); }

.cases-section { position: relative; overflow: hidden; }
.cases-section::after { content: ""; position: absolute; inset: 0 max(1rem, calc((100% - var(--container)) / 2)); z-index: 0; pointer-events: none; background: linear-gradient(90deg, transparent 0 49.95%, rgba(255,255,255,.045) 49.95% 50.05%, transparent 50.05% 100%); opacity: .38; }
.cases-section > .container { position: relative; z-index: 1; }
.case-list { gap: 0 !important; border-top: 1px solid var(--line-dark) !important; background: transparent !important; }
.case-item { grid-template-columns: 4.65rem minmax(0, 1fr); gap: .38rem 1.15rem; align-items: start; padding: 1.42rem 0 1.5rem !important; background: transparent !important; border-bottom: 1px solid var(--line-dark-soft) !important; color: var(--white) !important; transition: padding-left .24s ease, background-color .24s ease, border-color .24s ease; }
.case-item::before { left: 0; top: 1.15rem; bottom: 1.15rem; width: 2px; background: var(--red) !important; opacity: .28; transform: scaleY(.42); }
.case-item span { grid-row: span 2; align-self: start; color: var(--red) !important; font-size: .78rem; font-weight: 950; letter-spacing: .18em; line-height: 1.2; }
.case-item h3 { margin: 0 !important; color: var(--white) !important; font-size: clamp(1.05rem, 1.8vw, 1.28rem); line-height: 1.08; letter-spacing: -.025em; }
.case-item h3::after { width: 30px; height: 1px; margin-top: .58rem; background: var(--red) !important; opacity: .58; transform-origin: left center; transition: width .24s ease, opacity .24s ease; }
.case-item p { max-width: 540px; color: var(--gray-soft) !important; font-size: .98rem; line-height: 1.55; }
.case-item:hover { padding-left: .55rem !important; background: rgba(255,255,255,.035) !important; border-color: rgba(255,255,255,.22) !important; }
.case-item:hover::before { opacity: 1; transform: scaleY(1); }
.case-item:hover h3::after { width: 48px; opacity: 1; }

@media (max-width: 860px) {
  .hero__content { grid-template-columns: 1fr; }
  .hero__grid::before, .hero__grid span:nth-child(1) { left: 50% !important; }
  .hero__panel--intro { width: min(100%, 430px); }
  .cases-section::after { content: none; }
  .case-item { grid-template-columns: 3.8rem 1fr; }
}

@media (max-width: 560px) {
  .case-item { grid-template-columns: 1fr; gap: .45rem; padding: 1.25rem 0 1.35rem !important; }
  .case-item span { grid-row: auto; }
}

/* Surgical refinement: Sobre brunito target card */
#sobre-mi.section--soft {
  background: var(--black) !important;
  color: var(--white) !important;
}

#sobre-mi .about {
  align-items: center !important;
}

#sobre-mi .about .eyebrow {
  color: var(--red) !important;
}

#sobre-mi .about h2 {
  color: var(--white) !important;
}

#sobre-mi .about p:not(.eyebrow) {
  color: #D8D8D8 !important;
}

#sobre-mi .about__mark.about-target {
  position: relative;
  display: grid;
  justify-items: center;
  width: min(100%, 390px);
  min-height: 520px;
  padding: 1.45rem 1.35rem 1.25rem;
  overflow: hidden;
  background: var(--white) !important;
  color: var(--black) !important;
  border: 1px solid rgba(0, 0, 0, .10) !important;
  border-radius: 34px;
  box-shadow: 0 24px 60px rgba(0, 0, 0, .18) !important;
  cursor: crosshair;
}

#sobre-mi .about__mark.about-target::before,
#sobre-mi .about__mark.about-target::after,
#sobre-mi .about-target__grain,
#sobre-mi .about-target__segments {
  content: none !important;
  display: none !important;
}

#sobre-mi .about-target__intro {
  position: static;
  display: grid;
  gap: .42rem;
  width: 100%;
  max-width: none;
  transform: none;
  text-align: left;
  padding-right: 8rem;
  pointer-events: none;
}

#sobre-mi .about-target__intro strong {
  color: var(--red) !important;
  font-size: .7rem;
  font-weight: 900;
  letter-spacing: .22em;
  line-height: 1.25;
}

#sobre-mi .about-target__intro em {
  color: #3A3A3A !important;
  font-size: .78rem;
  font-style: normal;
  line-height: 1.35;
}

#sobre-mi .about-target__status {
  position: absolute;
  top: 1.35rem;
  right: 1.35rem;
  z-index: 8;
  padding: .38rem .64rem;
  background: var(--white) !important;
  color: var(--black) !important;
  border: 1px solid rgba(0, 0, 0, .14) !important;
  border-radius: 999px;
  font-size: .56rem;
  font-weight: 900;
  letter-spacing: .13em;
  line-height: 1;
  text-transform: uppercase;
}

#sobre-mi .about-target__board {
  position: absolute;
  left: 50%;
  top: 47%;
  z-index: 2;
  width: min(74%, 286px);
  aspect-ratio: 1;
  transform: translate(-50%, -50%) translate(calc(var(--align-x) * -.12), calc(var(--align-y) * -.12));
  background: var(--red) !important;
  border: 1px solid var(--black) !important;
  border-radius: 50%;
  box-shadow:
    0 20px 42px rgba(0, 0, 0, .13),
    inset 0 0 0 28px var(--black),
    inset 0 0 0 58px var(--white),
    inset 0 0 0 88px var(--black),
    inset 0 0 0 118px var(--white) !important;
}

#sobre-mi .about-target__rings {
  position: absolute;
  inset: 0;
  border: 0 !important;
  border-radius: 50%;
  background: transparent !important;
}

#sobre-mi .about-target__center-dot {
  position: absolute;
  left: 50%;
  top: 50%;
  z-index: 2;
  display: block;
  width: 18%;
  aspect-ratio: 1;
  overflow: hidden;
  transform: translate(-50%, -50%);
  background: var(--red) !important;
  border: 2px solid var(--white) !important;
  border-radius: 50%;
  box-shadow: 0 0 0 1px var(--black) !important;
  color: transparent !important;
  font-size: 0 !important;
  line-height: 0 !important;
}

#sobre-mi .about-target__labels span {
  position: absolute;
  z-index: 4;
  display: grid;
  place-items: center;
  width: 28px;
  aspect-ratio: 1;
  background: transparent !important;
  border: 0;
  border-radius: 50%;
  font-size: .68rem;
  font-weight: 950 !important;
  line-height: 1;
  text-shadow: none !important;
}

#sobre-mi .about-target__labels span:nth-child(1) { left: 50%; top: 50%; transform: translate(-50%, -50%); color: var(--white) !important; }
#sobre-mi .about-target__labels span:nth-child(2) { left: 50%; top: 35%; transform: translate(-50%, -50%); color: var(--black) !important; }
#sobre-mi .about-target__labels span:nth-child(3) { left: 69%; top: 50%; transform: translate(-50%, -50%); color: var(--white) !important; }
#sobre-mi .about-target__labels span:nth-child(4) { left: 32%; top: 66%; transform: translate(-50%, -50%); color: var(--black) !important; }
#sobre-mi .about-target__labels span:nth-child(5) { left: 79%; top: 77%; transform: translate(-50%, -50%); color: var(--white) !important; }

#sobre-mi .about-target__feedback {
  position: absolute;
  left: 50%;
  bottom: 4.75rem;
  z-index: 5;
  min-width: 220px;
  padding: .56rem .86rem;
  transform: translateX(-50%);
  background: var(--white) !important;
  color: var(--black) !important;
  border: 1px solid rgba(0, 0, 0, .12) !important;
  border-radius: 999px;
  font-size: .64rem;
  font-weight: 900;
  letter-spacing: .1em;
  line-height: 1;
  text-align: center;
  text-transform: uppercase;
  pointer-events: none;
}

#sobre-mi .about-target__feedback strong {
  color: var(--red);
}

#sobre-mi .about-target__signature {
  position: absolute;
  left: 50%;
  bottom: 1.2rem;
  z-index: 5;
  display: grid;
  place-items: center;
  gap: .22rem;
  padding: 0;
  transform: translateX(-50%);
  background: transparent !important;
  border: 0 !important;
  pointer-events: none;
}

#sobre-mi .about-target__signature img {
  width: 132px;
  filter: none !important;
}

#sobre-mi .about-target__signature em {
  color: #3A3A3A !important;
  font-size: .72rem;
  font-style: normal;
  letter-spacing: .02em;
}

#sobre-mi .about-target__crosshair {
  position: absolute;
  left: var(--aim-x, 50%);
  top: var(--aim-y, 47%);
  z-index: 7;
  width: 38px;
  aspect-ratio: 1;
  transform: translate(-50%, -50%) scale(.96);
  background: transparent !important;
  border: 1px solid var(--red) !important;
  border-radius: 50%;
  box-shadow: none !important;
  opacity: 0;
  pointer-events: none;
  transition: opacity .14s ease, transform .14s ease;
}

#sobre-mi .about-target__crosshair::before,
#sobre-mi .about-target__crosshair::after {
  content: "";
  position: absolute;
  background: var(--red) !important;
  border: 0 !important;
  opacity: .64;
}

#sobre-mi .about-target__crosshair::before {
  left: 50%;
  top: 4px;
  width: 1px;
  height: 6px;
  transform: translateX(-50%);
  box-shadow: 0 24px 0 var(--red);
}

#sobre-mi .about-target__crosshair::after {
  top: 50%;
  left: 4px;
  width: 6px;
  height: 1px;
  transform: translateY(-50%);
  box-shadow: 24px 0 0 var(--red);
}

#sobre-mi .about-target:hover .about-target__crosshair,
#sobre-mi .about-target:focus-visible .about-target__crosshair,
#sobre-mi .about-target.is-aiming .about-target__crosshair {
  opacity: .58;
  transform: translate(-50%, -50%) scale(1);
}

#sobre-mi .about-target.is-complete .about-target__crosshair {
  opacity: 0;
}

#sobre-mi .about-target__impact,
#sobre-mi .about-target__impact.is-best {
  position: absolute;
  z-index: 6;
  width: 18px;
  aspect-ratio: 1;
  transform: translate(-50%, -50%);
  background: transparent !important;
  border: 1.5px solid var(--red) !important;
  border-radius: 50%;
  box-shadow: none !important;
  pointer-events: none;
}

#sobre-mi .about-target__impact::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 4px;
  aspect-ratio: 1;
  transform: translate(-50%, -50%);
  background: var(--red);
  border: 0;
  border-radius: 50%;
  animation: none;
}

#sobre-mi .about-target__impact::after {
  content: attr(data-discount);
  position: absolute;
  left: 50%;
  bottom: calc(100% + 6px);
  padding: .24rem .42rem;
  transform: translateX(-50%);
  background: var(--white) !important;
  color: var(--red) !important;
  border: 1px solid rgba(0, 0, 0, .12) !important;
  border-radius: 999px;
  font-size: .56rem;
  font-weight: 950;
  line-height: 1;
  white-space: nowrap;
}

@media (max-width: 560px) {
  #sobre-mi .about__mark.about-target {
    width: min(100%, 340px);
    min-height: 470px;
    padding: 1.25rem 1rem 1.15rem;
  }

  #sobre-mi .about-target__intro {
    padding-right: 7rem;
  }

  #sobre-mi .about-target__board {
    width: 76%;
    top: 47%;
  }

  #sobre-mi .about-target__feedback {
    bottom: 4.45rem;
    min-width: 200px;
    font-size: .58rem;
  }

  #sobre-mi .about-target__crosshair {
    display: none;
  }
}

/* Final surgical layout pass: hero elevator alignment + premium target card refinement */
.hero__content {
  grid-template-columns: minmax(0, 1fr) minmax(360px, 430px) !important;
  gap: clamp(2.35rem, 5.8vw, 5rem) !important;
}

.hero__panel--intro {
  justify-self: end !important;
  width: min(100%, 408px) !important;
  transform: translateX(18px);
}

.hero__grid {
  background: transparent !important;
  border-color: rgba(255,255,255,.07) !important;
}

.hero__grid::before {
  left: 69.25% !important;
  background: rgba(255,255,255,.09) !important;
}

.hero__grid::after {
  content: none !important;
  display: none !important;
  background: none !important;
}

.hero__grid span:nth-child(1) { left: 69.25% !important; }
.hero__grid span:nth-child(2) { background: var(--gray-muted) !important; box-shadow: none !important; opacity: .4 !important; }
.hero__grid span:nth-child(3) { right: 9% !important; box-shadow: none !important; opacity: .45 !important; }

.elevator-scene {
  border-block-color: rgba(255,255,255,.11) !important;
}

.elevator-scene::after {
  content: none !important;
  display: none !important;
}

.elevator-visual {
  max-width: 346px !important;
  transform: translateX(13px) !important;
}

.panel-footer {
  background: rgba(0,0,0,.72) !important;
  border-color: rgba(255,255,255,.12) !important;
  color: rgba(255,255,255,.68) !important;
}

.panel-levels::before {
  background: rgba(255,255,255,.18) !important;
}

.panel-level {
  color: rgba(255,255,255,.72);
}

.panel-level strong {
  color: inherit;
}

.panel-level::before {
  background: rgba(255,255,255,.30);
  border-color: rgba(255,255,255,.26);
}

@media (prefers-reduced-motion: no-preference) {
  .panel-level--base { animation: panel-level-base 10s ease-in-out infinite !important; }
  .panel-level--middle { animation: panel-level-middle 10s ease-in-out infinite !important; }
  .panel-level--top { animation: panel-level-top 10s ease-in-out infinite !important; }
  .panel-level--base::before { animation: panel-level-dot-base 10s ease-in-out infinite !important; }
  .panel-level--middle::before { animation: panel-level-dot-middle 10s ease-in-out infinite !important; }
  .panel-level--top::before { animation: panel-level-dot-top 10s ease-in-out infinite !important; }
}

#sobre-mi .about__mark.about-target {
  grid-template-rows: auto auto 1fr auto auto;
  row-gap: 1.05rem;
  width: min(100%, 408px) !important;
  min-height: 548px !important;
  padding: 1.55rem 1.45rem 1.35rem !important;
  overflow: hidden !important;
  border-color: rgba(0,0,0,.08) !important;
  border-radius: 32px !important;
  box-shadow: 0 26px 62px rgba(0,0,0,.22), 0 1px 0 rgba(255,255,255,.9) inset !important;
}

#sobre-mi .about-target__intro {
  align-self: start;
  padding-right: 7.4rem !important;
  min-height: 50px;
}

#sobre-mi .about-target__status {
  top: 1.55rem !important;
  right: 1.45rem !important;
  background: #F7F7F7 !important;
  color: var(--black) !important;
}

#sobre-mi .about-target__board {
  position: relative !important;
  left: auto !important;
  top: auto !important;
  grid-row: 3;
  align-self: center;
  width: min(78%, 292px) !important;
  margin: .35rem auto .55rem;
  transform: translate(calc(var(--align-x) * -.10), calc(var(--align-y) * -.10)) !important;
  box-shadow:
    0 22px 44px rgba(0,0,0,.14),
    inset 0 0 0 29px var(--black),
    inset 0 0 0 59px var(--white),
    inset 0 0 0 89px var(--black),
    inset 0 0 0 119px var(--white) !important;
}

#sobre-mi .about-target__labels,
#sobre-mi .about-target__labels span {
  content: none !important;
  display: none !important;
  visibility: hidden !important;
}

#sobre-mi .about-target__feedback {
  position: relative !important;
  left: auto !important;
  bottom: auto !important;
  grid-row: 4;
  min-width: min(100%, 250px) !important;
  max-width: 100%;
  transform: none !important;
  background: #F7F7F7 !important;
  white-space: nowrap;
}

#sobre-mi .about-target__impact::after {
  content: none !important;
  display: none !important;
}

#sobre-mi .about-target__signature {
  position: relative !important;
  left: auto !important;
  bottom: auto !important;
  grid-row: 5;
  transform: none !important;
  margin-top: -.15rem;
}

#sobre-mi .about-target__crosshair {
  width: 30px !important;
  border-color: rgba(179,38,30,.58) !important;
  box-shadow: 0 0 14px rgba(179,38,30,.08) !important;
  opacity: 0;
}

#sobre-mi .about-target__crosshair::before,
#sobre-mi .about-target__crosshair::after {
  background: rgba(179,38,30,.62) !important;
}

#sobre-mi .about-target__crosshair::before {
  top: 3px !important;
  height: 5px !important;
  box-shadow: 0 19px 0 rgba(179,38,30,.62) !important;
}

#sobre-mi .about-target__crosshair::after {
  left: 3px !important;
  width: 5px !important;
  box-shadow: 19px 0 0 rgba(179,38,30,.62) !important;
}

#sobre-mi .about-target:hover .about-target__crosshair,
#sobre-mi .about-target:focus-visible .about-target__crosshair,
#sobre-mi .about-target.is-aiming .about-target__crosshair {
  opacity: .72 !important;
}

@media (max-width: 860px) {
  .hero__panel--intro {
    justify-self: center !important;
    transform: none;
  }
}

@media (max-width: 560px) {
  #sobre-mi .about__mark.about-target {
    min-height: 500px !important;
  }

  #sobre-mi .about-target__intro {
    padding-right: 6.7rem !important;
  }

  #sobre-mi .about-target__board {
    width: min(78%, 258px) !important;
  }

  #sobre-mi .about-target__feedback {
    white-space: normal;
    line-height: 1.25;
  }
}

/* Surgical design refinements: hero continuity, prize card cleanup, services modular grid. */
.hero__grid::before,
.hero__grid::after {
  content: none !important;
  display: none !important;
}

.hero__grid span:nth-child(1) {
  opacity: 0 !important;
}

.hero__panel--intro {
  isolation: isolate;
}

.elevator-scene {
  border-block-color: transparent !important;
}

.elevator-scene::before {
  border-color: rgba(255,255,255,.055) !important;
}

#sobre-mi .about__mark.about-target {
  grid-template-rows: auto 1fr auto auto;
  row-gap: 1.05rem;
  padding-top: 1.45rem !important;
}

#sobre-mi .about-target__intro {
  display: none !important;
}

#sobre-mi .about-target__status {
  position: relative !important;
  inset: auto !important;
  justify-self: center;
  grid-row: 1;
  width: fit-content;
  margin: 0 auto .1rem;
  padding: .42rem .76rem !important;
  letter-spacing: .14em;
}

#sobre-mi .about-target__board {
  grid-row: 2;
  margin-top: .15rem;
  margin-bottom: .45rem;
}

#sobre-mi .about-target__feedback {
  grid-row: 3;
}

#sobre-mi .about-target__signature {
  grid-row: 4;
}

#sobre-mi .about-target__crosshair {
  width: 28px !important;
  border-color: rgba(179,38,30,.5) !important;
  background: transparent !important;
  box-shadow: none !important;
}

#sobre-mi .about-target__crosshair::before,
#sobre-mi .about-target__crosshair::after {
  background: rgba(179,38,30,.46) !important;
}

#sobre-mi .about-target:hover .about-target__crosshair,
#sobre-mi .about-target:focus-visible .about-target__crosshair,
#sobre-mi .about-target.is-aiming .about-target__crosshair {
  opacity: .62 !important;
}

.services-grid {
  --card-h: clamp(252px, 24vw, 286px);
  gap: clamp(1rem, 1.65vw, 1.25rem) !important;
  align-items: stretch;
}

.service-card {
  height: var(--card-h);
  min-height: var(--card-h);
}

.service-card__front {
  justify-content: flex-start !important;
  padding: clamp(1.18rem, 1.75vw, 1.42rem) !important;
}

.service-card__front::after {
  left: clamp(1.18rem, 1.75vw, 1.42rem) !important;
  right: clamp(1.18rem, 1.75vw, 1.42rem) !important;
  bottom: clamp(1rem, 1.5vw, 1.16rem) !important;
  height: 1px !important;
  background: var(--red) !important;
  opacity: .62 !important;
}

.service-card__index {
  min-height: 2.1rem;
  margin-bottom: clamp(1.45rem, 2.4vw, 2.05rem);
}

.service-card__index::after {
  width: 34px !important;
  height: 2px !important;
  margin-top: .62rem !important;
  background: var(--red) !important;
  opacity: .9;
}

.service-card__title {
  min-height: 3.45em;
  max-width: 12.5rem !important;
  margin: 0 0 .78rem !important;
  display: flex !important;
  align-items: flex-end;
  color: var(--white) !important;
}

.service-card__text {
  max-width: 14.25rem !important;
  margin-top: 0;
  color: rgba(255,255,255,.72) !important;
}

.icon {
  top: 1.18rem !important;
  right: 1.18rem !important;
}

@media (max-width: 560px) {
  .service-card__title {
    min-height: auto;
  }

  #sobre-mi .about__mark.about-target {
    grid-template-rows: auto 1fr auto auto;
  }
}

/* Surgical services card refinement: premium playing-card language. */
.services-deck {
  max-width: 1020px;
  margin-inline: auto;
}

.services-deck__trigger {
  margin-inline: auto !important;
  margin-bottom: clamp(1.15rem, 2vw, 1.65rem) !important;
  padding-inline: 1.12rem !important;
  border-color: rgba(179,38,30,.72) !important;
  letter-spacing: .16em !important;
}

.services-grid {
  --card-w: minmax(0, 1fr);
  --card-h: auto !important;
  grid-template-columns: repeat(3, var(--card-w)) !important;
  gap: clamp(1rem, 1.8vw, 1.35rem) !important;
  align-items: stretch !important;
}

.service-card {
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  aspect-ratio: 5 / 7 !important;
  border-radius: clamp(18px, 1.8vw, 24px) !important;
  filter: drop-shadow(0 20px 30px rgba(0,0,0,.24));
}

.service-card__inner {
  border-radius: inherit !important;
  transition: transform 820ms cubic-bezier(.18,.82,.2,1) !important;
}

.service-card__face {
  border-radius: inherit !important;
}

.service-card__back,
.service-card__front {
  background: var(--black) !important;
  border: 1px solid rgba(255,255,255,.22) !important;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.035), 0 24px 58px rgba(0,0,0,.28) !important;
}

.service-card__back {
  align-items: center !important;
  justify-content: center !important;
  color: var(--white) !important;
}

.service-card__back::before {
  inset: clamp(12px, 1.35vw, 18px) !important;
  border: 1px solid rgba(255,255,255,.44) !important;
  border-radius: calc(clamp(18px, 1.8vw, 24px) - 7px) !important;
  background: none !important;
  box-shadow:
    inset 0 0 0 5px var(--black),
    inset 0 0 0 6px rgba(255,255,255,.16),
    inset 0 0 0 13px var(--black),
    inset 0 0 0 14px rgba(255,255,255,.10) !important;
  opacity: 1 !important;
}

.service-card__back::after {
  inset: 23% 27% !important;
  border: 1px solid rgba(255,255,255,.32) !important;
  border-radius: 999px !important;
  background: transparent !important;
  box-shadow:
    0 0 0 9px var(--black),
    0 0 0 10px rgba(255,255,255,.13),
    inset 0 0 0 10px var(--black),
    inset 0 0 0 11px rgba(179,38,30,.62) !important;
  transform: none !important;
  opacity: 1 !important;
}

.service-card__monogram {
  width: clamp(52px, 5.4vw, 66px) !important;
  height: clamp(52px, 5.4vw, 66px) !important;
  border: 1px solid rgba(255,255,255,.52) !important;
  background: var(--black) !important;
  color: var(--white) !important;
  font-size: clamp(.72rem, .9vw, .84rem) !important;
  letter-spacing: .24em !important;
  box-shadow: 0 0 0 7px var(--black), 0 0 0 8px rgba(255,255,255,.18) !important;
}

.service-card__monogram::before,
.service-card__monogram::after {
  content: "";
  position: absolute;
  left: 50%;
  width: 1px;
  height: clamp(34px, 4.2vw, 48px);
  background: rgba(255,255,255,.28);
  transform: translateX(-50%);
}

.service-card__monogram::before { bottom: calc(100% + 16px); }
.service-card__monogram::after { top: calc(100% + 16px); }

.service-card__backline {
  position: absolute !important;
  z-index: 1 !important;
  inset: 50% auto auto 50% !important;
  width: clamp(5px, .55vw, 7px) !important;
  height: clamp(5px, .55vw, 7px) !important;
  margin: 0 !important;
  border-radius: 50% !important;
  background: var(--red) !important;
  transform: translate(-50%, -50%) !important;
  box-shadow: 0 -28px 0 rgba(179,38,30,.72), 0 28px 0 rgba(179,38,30,.72) !important;
}

.service-card__front {
  display: grid !important;
  grid-template-rows: auto minmax(0, 1fr) auto auto !important;
  justify-items: center !important;
  align-content: stretch !important;
  padding: clamp(1.05rem, 1.8vw, 1.42rem) !important;
  text-align: center !important;
  color: var(--white) !important;
}

.service-card__front::before {
  inset: clamp(10px, 1.2vw, 14px) !important;
  border: 1px solid rgba(255,255,255,.12) !important;
  border-radius: calc(clamp(18px, 1.8vw, 24px) - 7px) !important;
  box-shadow: inset 0 0 0 5px rgba(255,255,255,.025) !important;
}

.service-card__front::after {
  left: 50% !important;
  right: auto !important;
  top: clamp(1.12rem, 1.7vw, 1.36rem) !important;
  bottom: auto !important;
  width: 38px !important;
  height: 2px !important;
  background: var(--red) !important;
  transform: translateX(-50%) !important;
  opacity: .92 !important;
}

.service-card__index {
  z-index: 1 !important;
  min-height: 0 !important;
  margin: clamp(.46rem, .75vw, .64rem) 0 0 !important;
  color: var(--red) !important;
  font-size: .68rem !important;
  line-height: 1 !important;
  letter-spacing: .18em !important;
}

.service-card__index::after {
  content: none !important;
}

.service-card__title {
  z-index: 1 !important;
  align-self: end !important;
  display: block !important;
  min-height: 0 !important;
  max-inline-size: 11.4rem !important;
  margin: 0 0 clamp(.78rem, 1.1vw, .95rem) !important;
  color: var(--white) !important;
  font-size: clamp(1.38rem, 2.08vw, 1.78rem) !important;
  font-weight: 850 !important;
  line-height: .98 !important;
  letter-spacing: -.045em !important;
  text-wrap: balance;
}

.service-card__text {
  z-index: 1 !important;
  max-inline-size: 13.2rem !important;
  margin: 0 !important;
  color: rgba(255,255,255,.74) !important;
  font-size: clamp(.88rem, 1.08vw, .98rem) !important;
  line-height: 1.42 !important;
  text-wrap: balance;
}

.service-card .icon {
  position: relative !important;
  top: auto !important;
  right: auto !important;
  z-index: 1 !important;
  align-self: end !important;
  width: 28px !important;
  height: 28px !important;
  margin-top: clamp(1.05rem, 1.7vw, 1.35rem) !important;
  background: transparent !important;
  border-color: rgba(179,38,30,.58) !important;
  opacity: .68 !important;
  box-shadow: none !important;
}

.services-deck.is-shuffling .service-card {
  animation-duration: 780ms !important;
  animation-timing-function: cubic-bezier(.18,.82,.2,1) !important;
}

.services-deck.is-revealed .service-card__inner {
  transition-delay: calc(120ms + (var(--card-index) * 95ms)) !important;
}

@media (max-width: 860px) {
  .services-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 560px) {
  .services-grid {
    grid-template-columns: 1fr !important;
    gap: .9rem !important;
    max-width: 320px;
    margin-inline: auto;
  }

  .service-card__title {
    max-inline-size: 12rem !important;
  }
}

/* Definitive services deck: monochrome premium playing cards. */
.services-section {
  overflow: clip;
}

.services-section .container {
  max-width: min(var(--container), 1120px);
}

.services-section .section-heading {
  margin-bottom: clamp(1.35rem, 3vw, 2.25rem) !important;
}

.services-deck {
  max-width: 1040px !important;
  margin-inline: auto !important;
  padding-top: 0 !important;
}

.services-deck::before {
  content: none !important;
}

.services-deck__trigger {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: .72rem !important;
  margin: 0 auto clamp(1.35rem, 2.4vw, 2rem) !important;
  padding: .76rem 1.06rem .74rem !important;
  border: 1px solid rgba(255,255,255,.24) !important;
  border-radius: 999px !important;
  background: #050505 !important;
  color: var(--white) !important;
  font-size: .68rem !important;
  font-weight: 900 !important;
  letter-spacing: .17em !important;
  text-transform: uppercase !important;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.035) !important;
}

.services-deck__trigger::before {
  width: 6px !important;
  height: 6px !important;
  background: var(--red) !important;
  box-shadow: 0 0 0 4px rgba(179,38,30,.14) !important;
}

.services-deck__trigger:hover,
.services-deck__trigger:focus-visible {
  border-color: rgba(179,38,30,.78) !important;
  background: #080808 !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 0 0 4px rgba(179,38,30,.10) !important;
}

.services-deck.is-revealed .services-deck__trigger {
  pointer-events: auto !important;
  opacity: .74 !important;
}

.services-grid {
  --card-h: auto !important;
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: clamp(1rem, 1.75vw, 1.45rem) !important;
  align-items: stretch !important;
  perspective: 1800px !important;
}

.service-card {
  aspect-ratio: 5 / 7 !important;
  min-height: 0 !important;
  border-radius: clamp(18px, 1.8vw, 24px) !important;
  transform-origin: 50% 58% !important;
  filter: drop-shadow(0 24px 34px rgba(0,0,0,.30)) !important;
}

.service-card:hover,
.services-deck.is-revealed .service-card:hover {
  transform: translateY(-7px) rotate(0deg) !important;
  filter: drop-shadow(0 30px 42px rgba(0,0,0,.42)) !important;
}

.service-card__inner {
  transition: transform 860ms cubic-bezier(.18,.82,.2,1) !important;
  transform-style: preserve-3d !important;
}

.service-card__face {
  border-radius: inherit !important;
  backface-visibility: hidden !important;
  -webkit-backface-visibility: hidden !important;
}

.service-card__back,
.service-card__front {
  background: #030303 !important;
  border: 1px solid rgba(255,255,255,.24) !important;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.035), 0 28px 64px rgba(0,0,0,.34) !important;
}

.service-card__back {
  align-items: center !important;
  justify-content: center !important;
  overflow: hidden !important;
}

.service-card__back::before {
  inset: clamp(12px, 1.2vw, 17px) !important;
  border: 1px solid rgba(255,255,255,.54) !important;
  border-radius: calc(clamp(18px, 1.8vw, 24px) - 7px) !important;
  background:
    radial-gradient(circle at 50% 18%, rgba(255,255,255,.18) 0 1px, transparent 2px),
    radial-gradient(circle at 50% 82%, rgba(255,255,255,.18) 0 1px, transparent 2px),
    repeating-linear-gradient(90deg, transparent 0 12px, rgba(255,255,255,.035) 12px 13px, transparent 13px 24px) !important;
  box-shadow: inset 0 0 0 5px #030303, inset 0 0 0 6px rgba(255,255,255,.20), inset 0 0 0 14px #030303, inset 0 0 0 15px rgba(255,255,255,.12) !important;
}

.service-card__back::after {
  inset: 21% 25% !important;
  border: 1px solid rgba(255,255,255,.34) !important;
  border-radius: 999px !important;
  background: linear-gradient(180deg, transparent 0 46%, rgba(255,255,255,.18) 46% 47%, transparent 47% 53%, rgba(255,255,255,.18) 53% 54%, transparent 54%) !important;
  box-shadow: 0 0 0 10px #030303, 0 0 0 11px rgba(255,255,255,.13), inset 0 0 0 12px #030303, inset 0 0 0 13px rgba(179,38,30,.62) !important;
  transform: none !important;
}

.service-card__monogram {
  width: clamp(50px, 5vw, 62px) !important;
  height: clamp(50px, 5vw, 62px) !important;
  z-index: 2 !important;
  border-color: rgba(255,255,255,.58) !important;
  background: #030303 !important;
  color: var(--white) !important;
  font-size: clamp(.7rem, .86vw, .82rem) !important;
  letter-spacing: .24em !important;
  box-shadow: 0 0 0 8px #030303, 0 0 0 9px rgba(255,255,255,.20) !important;
}

.service-card__backline {
  z-index: 3 !important;
  width: 6px !important;
  height: 6px !important;
  border-radius: 999px !important;
  background: var(--red) !important;
  box-shadow: 0 -30px 0 rgba(179,38,30,.62), 0 30px 0 rgba(179,38,30,.62) !important;
}

.service-card__front {
  display: grid !important;
  grid-template-rows: auto 1fr auto auto !important;
  justify-items: center !important;
  padding: clamp(1rem, 1.65vw, 1.38rem) !important;
  color: var(--white) !important;
  text-align: center !important;
  transform: rotateY(180deg) !important;
}

.service-card__front::before {
  inset: clamp(10px, 1.1vw, 14px) !important;
  border: 1px solid rgba(255,255,255,.14) !important;
  border-radius: calc(clamp(18px, 1.8vw, 24px) - 7px) !important;
  box-shadow: inset 0 0 0 5px rgba(255,255,255,.025) !important;
}

.service-card__front::after {
  width: 34px !important;
  height: 2px !important;
  top: clamp(1.05rem, 1.55vw, 1.28rem) !important;
  background: var(--red) !important;
}

.service-card__index {
  margin-top: clamp(.48rem, .7vw, .62rem) !important;
  color: var(--red) !important;
  font-size: .66rem !important;
  font-weight: 950 !important;
  letter-spacing: .18em !important;
}

.service-card__graphic {
  z-index: 1;
  align-self: center;
  display: grid;
  place-items: center;
  width: min(76%, 188px);
  margin-top: clamp(.65rem, 1.25vw, 1rem);
  color: rgba(255,255,255,.78);
}

.service-card__graphic svg {
  display: block;
  width: 100%;
  height: auto;
  overflow: visible;
}

.service-card__graphic path,
.service-card__graphic rect,
.service-card__graphic circle {
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  vector-effect: non-scaling-stroke;
}

.service-card__graphic .accent,
.service-card__graphic .accent-stroke {
  stroke: var(--red);
}

.service-card__graphic .accent-fill {
  fill: var(--red);
  stroke: var(--red);
}

.service-card__title {
  max-inline-size: 11.8rem !important;
  margin: 0 0 .72rem !important;
  color: var(--white) !important;
  font-size: clamp(1.24rem, 1.85vw, 1.62rem) !important;
  font-weight: 860 !important;
  line-height: 1 !important;
  letter-spacing: -.04em !important;
  text-wrap: balance;
}

.service-card__text {
  max-inline-size: 13rem !important;
  margin: 0 0 clamp(.48rem, .75vw, .62rem) !important;
  color: rgba(255,255,255,.72) !important;
  font-size: clamp(.84rem, .98vw, .94rem) !important;
  line-height: 1.42 !important;
  text-wrap: balance;
}

@media (max-width: 900px) {
  .services-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}

@media (max-width: 560px) {
  .services-grid {
    grid-template-columns: 1fr !important;
    max-width: 330px !important;
    margin-inline: auto !important;
  }

  .services-deck__trigger { width: 100% !important; }
}

@media (prefers-reduced-motion: reduce) {
  .services-deck.is-shuffling .service-card { animation: none !important; }
  .service-card,
  .service-card__inner { transition: none !important; }
  .services-deck.is-revealed .service-card__inner { transform: rotateY(180deg) !important; }
}

/* Premium services playing-card deck: reference-backed reverse + white editorial faces. */
.services-section {
  padding-block: clamp(3.3rem, 6vw, 6.4rem) !important;
  background: var(--black) !important;
}

.services-section .container {
  max-width: min(100% - 2rem, 1140px) !important;
}

.services-section .section-heading {
  max-width: 820px !important;
  margin-bottom: clamp(1.55rem, 3.4vw, 2.65rem) !important;
}

.services-section .section-heading h2,
.services-section .section-heading h2 span {
  color: var(--white) !important;
}

.services-deck {
  max-width: 1080px !important;
}

.services-deck__trigger {
  margin-bottom: clamp(1.55rem, 3vw, 2.35rem) !important;
  padding: .78rem 1.14rem .76rem !important;
  border-color: rgba(255,255,255,.28) !important;
  background: #050505 !important;
  color: var(--white) !important;
  font-size: .67rem !important;
  letter-spacing: .18em !important;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.04) !important;
}

.services-deck__trigger:hover,
.services-deck__trigger:focus-visible {
  border-color: rgba(179,38,30,.82) !important;
  box-shadow: 0 0 0 4px rgba(179,38,30,.12) !important;
}

.services-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: clamp(1.05rem, 2vw, 1.65rem) !important;
}

.service-card {
  aspect-ratio: 5 / 7 !important;
  border-radius: clamp(18px, 1.7vw, 23px) !important;
  filter: drop-shadow(0 24px 40px rgba(0,0,0,.42)) !important;
}

.service-card:hover,
.services-deck.is-revealed .service-card:hover {
  transform: translateY(-8px) rotate(0deg) !important;
  filter: drop-shadow(0 30px 48px rgba(0,0,0,.52)) !important;
}

.service-card__back,
.service-card__front {
  border-radius: inherit !important;
}

.service-card__back {
  background: #000 url("../images/cards/card-back-reference.png") center / cover no-repeat !important;
  border: 1px solid rgba(255,255,255,.70) !important;
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.45), 0 28px 68px rgba(0,0,0,.46) !important;
}

.service-card__back::before,
.service-card__back::after,
.service-card__monogram,
.service-card__backline {
  content: none !important;
  display: none !important;
}

.service-card__front {
  grid-template-rows: auto minmax(105px, 1fr) auto auto !important;
  align-items: center !important;
  justify-items: center !important;
  padding: clamp(1.08rem, 1.75vw, 1.55rem) !important;
  background: #fbfbf8 !important;
  color: var(--ink) !important;
  border: 1px solid rgba(0,0,0,.22) !important;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.82), 0 28px 68px rgba(0,0,0,.36) !important;
}

.service-card__front::before {
  inset: clamp(10px, 1.05vw, 14px) !important;
  border: 1px solid rgba(0,0,0,.16) !important;
  box-shadow: inset 0 0 0 5px rgba(0,0,0,.025) !important;
}

.service-card__front::after {
  left: 50% !important;
  right: auto !important;
  top: auto !important;
  bottom: clamp(1rem, 1.45vw, 1.24rem) !important;
  width: 28px !important;
  height: 2px !important;
  background: var(--red) !important;
  transform: translateX(-50%) !important;
}

.service-card__index {
  justify-self: start !important;
  margin: clamp(.42rem, .65vw, .56rem) 0 0 clamp(.28rem, .45vw, .42rem) !important;
  color: var(--red) !important;
  font-size: .64rem !important;
  letter-spacing: .19em !important;
}

.service-card__index::after {
  width: 24px !important;
  margin-top: .58rem !important;
  background: rgba(179,38,30,.72) !important;
}

.service-card__graphic {
  width: min(76%, 188px) !important;
  margin: clamp(.45rem, 1vw, .82rem) 0 clamp(.65rem, 1.25vw, 1rem) !important;
  color: #111 !important;
}

.service-card__graphic path,
.service-card__graphic rect,
.service-card__graphic circle {
  stroke: currentColor !important;
  stroke-width: 1.75 !important;
}

.service-card__graphic .accent,
.service-card__graphic .accent-stroke {
  stroke: var(--red) !important;
}

.service-card__graphic .accent-fill {
  fill: var(--red) !important;
  stroke: var(--red) !important;
}

.service-card__title {
  max-inline-size: 12.4rem !important;
  min-height: 2.7em !important;
  display: grid !important;
  place-items: end center !important;
  margin: 0 0 .58rem !important;
  color: #050505 !important;
  font-size: clamp(1.2rem, 1.75vw, 1.55rem) !important;
  font-weight: 900 !important;
  line-height: 1.02 !important;
  letter-spacing: -.045em !important;
  text-align: center !important;
  text-wrap: balance !important;
}

.service-card__text {
  max-inline-size: 13rem !important;
  min-height: 2.9em !important;
  margin: 0 0 clamp(.78rem, 1.1vw, 1rem) !important;
  color: #343434 !important;
  font-size: clamp(.82rem, .95vw, .92rem) !important;
  line-height: 1.42 !important;
  text-align: center !important;
  text-wrap: balance !important;
}

.services-deck.is-revealed .service-card__inner {
  transform: rotateY(180deg) !important;
  transition-delay: calc(150ms + (var(--card-index) * 115ms)) !important;
}

@media (max-width: 900px) {
  .services-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 560px) {
  .services-section {
    padding-block: clamp(2.8rem, 12vw, 4.5rem) !important;
  }

  .services-grid {
    grid-template-columns: 1fr !important;
    max-width: min(100%, 335px) !important;
    margin-inline: auto !important;
    gap: 1rem !important;
  }

  .service-card__front {
    grid-template-rows: auto minmax(112px, 1fr) auto auto !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .services-deck.is-shuffling .service-card {
    animation: none !important;
  }

  .service-card,
  .service-card__inner {
    transition: none !important;
  }
}

/* Rediseño editorial claro para la sección Casos. */
#casos.cases-section {
  --cases-paper: #fffefc;
  --cases-ink: #050505;
  --cases-muted: rgba(5, 5, 5, .66);
  --cases-line: rgba(5, 5, 5, .12);
  --cases-line-strong: rgba(5, 5, 5, .18);
  background: var(--cases-paper) !important;
  color: var(--cases-ink) !important;
  padding-block: clamp(5.2rem, 8.2vw, 8rem) !important;
  border-block: 1px solid rgba(255, 255, 255, .08) !important;
  overflow: hidden;
}

#casos.cases-section::before {
  width: clamp(52px, 7vw, 86px) !important;
  height: 1px !important;
  background: var(--red) !important;
  opacity: 1 !important;
  top: clamp(2rem, 3.4vw, 3.1rem) !important;
}

#casos.cases-section::after {
  content: none !important;
  display: none !important;
}

#casos.cases-section > .container {
  position: relative;
  z-index: 1;
}

#casos .split-layout {
  grid-template-columns: minmax(270px, .82fr) minmax(0, 1.18fr);
  gap: clamp(3rem, 8vw, 7rem);
  align-items: start;
}

#casos .section-heading {
  max-width: 470px;
  padding-top: .15rem;
}

#casos .eyebrow {
  margin-bottom: clamp(1.05rem, 1.8vw, 1.4rem);
  color: var(--red) !important;
  font-size: .72rem;
  letter-spacing: .22em;
}

#casos .eyebrow::before {
  width: 8px;
  height: 8px;
  background: var(--red) !important;
  box-shadow: 0 0 0 4px rgba(179, 38, 30, .12) !important;
}

#casos .section-heading h2 {
  max-width: 460px;
  margin: 0 !important;
  color: var(--cases-ink) !important;
  font-size: clamp(2.65rem, 5.3vw, 5.05rem);
  line-height: .94;
  letter-spacing: -.07em;
  text-wrap: balance;
}

#casos .section-heading p:not(.eyebrow) {
  max-width: 40ch;
  margin: clamp(1.45rem, 2.6vw, 2.15rem) 0 0 !important;
  color: var(--cases-muted) !important;
  font-size: clamp(1rem, 1.35vw, 1.1rem);
  line-height: 1.58;
  text-wrap: balance;
}

#casos .case-list {
  display: grid;
  gap: 0 !important;
  width: 100%;
  border-top: 1px solid var(--cases-line-strong) !important;
  background: transparent !important;
}

#casos .case-item {
  position: relative;
  display: grid;
  grid-template-columns: clamp(3.9rem, 6vw, 5.15rem) minmax(0, 1fr);
  gap: .48rem clamp(1.15rem, 2.6vw, 1.9rem);
  align-items: start;
  padding: clamp(1.5rem, 2.55vw, 2.05rem) 0 clamp(1.55rem, 2.6vw, 2.15rem) !important;
  border-bottom: 1px solid var(--cases-line) !important;
  background: transparent !important;
  color: var(--cases-ink) !important;
  transition: transform .24s ease, border-color .24s ease, opacity .24s ease;
}

#casos .case-item::before {
  content: "";
  position: absolute;
  left: 0;
  top: clamp(1.55rem, 2.55vw, 2.05rem);
  bottom: auto;
  width: 26px;
  height: 2px;
  background: var(--red) !important;
  opacity: .72;
  transform: scaleX(.72);
  transform-origin: left center;
  transition: transform .24s ease, opacity .24s ease;
}

#casos .case-item span {
  grid-row: 1 / span 2;
  align-self: start;
  padding-top: .14em;
  padding-left: clamp(2.25rem, 3.4vw, 3rem);
  color: var(--red) !important;
  font-size: .76rem;
  font-weight: 950;
  letter-spacing: .18em;
  line-height: 1.1;
  font-variant-numeric: tabular-nums;
}

#casos .case-item h3 {
  margin: 0 !important;
  color: var(--cases-ink) !important;
  font-size: clamp(1.38rem, 2.45vw, 2.05rem);
  font-weight: 880;
  line-height: 1.02;
  letter-spacing: -.045em;
  text-wrap: balance;
  transition: transform .24s ease, color .24s ease;
}

#casos .case-item h3::after {
  content: "";
  display: block;
  width: 34px;
  height: 1px;
  margin-top: .72rem;
  background: var(--red) !important;
  opacity: .62;
  transform-origin: left center;
  transition: width .24s ease, opacity .24s ease;
}

#casos .case-item p {
  max-width: 560px;
  margin: 0 !important;
  color: var(--cases-muted) !important;
  font-size: clamp(.98rem, 1.35vw, 1.08rem);
  line-height: 1.58;
}

#casos .case-item:hover {
  transform: translateX(.32rem);
  padding-left: 0 !important;
  background: transparent !important;
  border-color: var(--cases-line-strong) !important;
}

#casos .case-item:hover::before {
  opacity: 1;
  transform: scaleX(1.18);
}

#casos .case-item:hover h3 {
  color: var(--black) !important;
  transform: translateX(.12rem);
}

#casos .case-item:hover h3::after {
  width: 54px;
  opacity: 1;
}

@media (max-width: 860px) {
  #casos.cases-section {
    padding-block: clamp(4rem, 9vw, 5.5rem) !important;
  }

  #casos .split-layout {
    grid-template-columns: 1fr;
    gap: clamp(2.2rem, 5.8vw, 3.4rem);
  }

  #casos .section-heading {
    max-width: 660px;
  }

  #casos .section-heading h2 {
    max-width: 650px;
  }

  #casos .case-item {
    grid-template-columns: 4.25rem minmax(0, 1fr);
  }
}

@media (max-width: 560px) {
  #casos.cases-section {
    padding-block: 3.65rem !important;
  }

  #casos .section-heading h2 {
    font-size: clamp(2.35rem, 13vw, 3.35rem);
  }

  #casos .case-item {
    grid-template-columns: 3.45rem minmax(0, 1fr);
    gap: .44rem .9rem;
    padding: 1.35rem 0 1.45rem !important;
  }

  #casos .case-item::before {
    width: 18px;
    top: 1.45rem;
  }

  #casos .case-item span {
    padding-left: 1.6rem;
    font-size: .72rem;
  }

  #casos .case-item h3 {
    font-size: clamp(1.22rem, 7vw, 1.55rem);
  }

  #casos .case-item p {
    font-size: .96rem;
  }

  #casos .case-item:hover {
    transform: none;
  }
}

/* Trayectoria editorial wheel */
.trajectory-section {
  position: relative;
  overflow: hidden;
  scroll-margin-top: calc(var(--header-h, 82px) + 1.25rem);
  padding-block: clamp(2.65rem, 4.2vw, 4.9rem);
  background: var(--black);
  border-block: 1px solid rgba(255, 255, 255, .08);
}

.trajectory-section::before {
  content: "";
  position: absolute;
  left: max(1rem, calc((100% - var(--container)) / 2));
  top: clamp(1.35rem, 2.15vw, 2.1rem);
  width: clamp(44px, 5vw, 74px);
  height: 1px;
  background: var(--red);
}

.trajectory-shell { position: relative; z-index: 1; }
.trajectory-heading { max-width: 620px; margin-bottom: clamp(1.25rem, 2.6vw, 2.4rem); }
.trajectory-heading .eyebrow { margin-bottom: clamp(.28rem, .48vw, .48rem); color: var(--red); }
.trajectory-heading h2 { max-width: 620px; margin: 0 0 clamp(.8rem, 1.2vw, 1.125rem); color: var(--white); font-size: clamp(2.7rem, 4.2vw, 4.8rem) !important; line-height: .92; letter-spacing: -.03em; text-wrap: balance; }
.trajectory-heading p { max-width: 620px; margin: 0; color: rgba(255,255,255,.68); font-size: clamp(1rem, 1.15vw, 1.15rem); line-height: 1.45; text-wrap: balance; }

.trajectory-layout { display: grid; grid-template-columns: minmax(360px, .95fr) minmax(360px, .85fr); gap: clamp(2rem, 4vw, 4.5rem); align-items: start; }
.trajectory-wheel-panel { display: grid; justify-items: center; align-content: start; gap: clamp(.62rem, .9vw, .85rem); min-width: 0; padding-top: clamp(.2rem, .8vw, .75rem); }
.trajectory-wheel-wrap { position: relative; width: min(100%, clamp(300px, 29vw, 420px)); aspect-ratio: 1; display: grid; place-items: center; }
.trajectory-wheel { width: 100%; height: 100%; transform: rotate(var(--trajectory-rotation, 0deg)); transition: transform 2400ms cubic-bezier(.12,.82,.16,1); will-change: transform; filter: drop-shadow(0 18px 34px rgba(0,0,0,.38)); }
.trajectory-wheel svg { display: block; width: 100%; height: 100%; overflow: visible; }
.trajectory-segment { stroke: rgba(255,255,255,.24); stroke-width: .65; }
.trajectory-segment--dark { fill: #050505; }
.trajectory-segment--light { fill: #F5F5F5; }
.trajectory-label-group { pointer-events: none; }
.trajectory-label-object { pointer-events: none; overflow: visible; }
.trajectory-label { width: 100%; height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1px; font-size: 6.6px; font-weight: 950; line-height: 1; letter-spacing: .035em; text-align: center; text-transform: uppercase; }
.trajectory-label--medium { font-size: 6px; letter-spacing: .025em; }
.trajectory-label--long { font-size: 5.25px; letter-spacing: .012em; line-height: .98; }
.trajectory-label span { display: block; max-width: 100%; white-space: nowrap; }
.trajectory-label--light { color: #050505; }
.trajectory-label--dark { color: #FFFFFF; text-shadow: 0 1px 2px rgba(0,0,0,.45); }
.trajectory-dial-line { stroke: rgba(255,255,255,.32); stroke-width: .55; }
.trajectory-outer-ring, .trajectory-inner-ring { fill: none; stroke: rgba(255,255,255,.62); stroke-width: .8; }
.trajectory-inner-ring { stroke: rgba(179,38,30,.78); stroke-width: 1; }
.trajectory-center { position: absolute; width: 33%; aspect-ratio: 1; display: grid; place-items: center; align-content: center; gap: .22rem; border-radius: 50%; border: 1px solid rgba(255,255,255,.72); background: var(--black); color: var(--white); box-shadow: inset 0 0 0 7px #080808; pointer-events: none; }
.trajectory-center strong { color: var(--red); font-size: clamp(1.55rem, 2.8vw, 2.15rem); line-height: .9; letter-spacing: -.08em; }
.trajectory-center span { font-size: clamp(.46rem, .8vw, .58rem); font-weight: 900; letter-spacing: .16em; }
.trajectory-pointer { position: absolute; top: -3px; left: 50%; z-index: 3; width: 2px; height: clamp(34px, 3.5vw, 44px); background: var(--red); transform: translateX(-50%); box-shadow: 0 0 0 1px rgba(0,0,0,.35); }
.trajectory-pointer::before { content: ""; position: absolute; left: 50%; top: -2px; width: 13px; height: 13px; background: var(--red); clip-path: polygon(50% 100%, 0 0, 100% 0); transform: translateX(-50%); }
.trajectory-spin { min-width: clamp(178px, 14vw, 204px); justify-content: center; padding-block: .72rem; margin-top: clamp(.15rem, .5vw, .38rem); }
.trajectory-spin[disabled] { cursor: wait; opacity: .72; }
.trajectory-note { max-width: 28ch; margin: 0; color: rgba(255,255,255,.58); font-size: .66rem; font-weight: 780; line-height: 1.35; letter-spacing: .12em; text-align: center; text-transform: uppercase; }

.trajectory-card { --trajectory-card-ink: #050505; --trajectory-card-copy: #252525; --trajectory-card-muted: #3A3A3A; --trajectory-card-red: #C61E1E; --trajectory-card-line: rgba(0,0,0,.10); position: relative; width: clamp(360px, 34vw, 500px); max-width: 100%; overflow: visible; justify-self: end; align-self: start; box-sizing: border-box; padding: clamp(1.5rem, 2vw, 2.25rem); border: 1px solid rgba(5,5,5,.1); border-radius: 28px; background: #FFFFFF; color: var(--trajectory-card-ink) !important; display: flex; flex-direction: column; box-shadow: 0 28px 70px rgba(0,0,0,.22); }
.trajectory-card::before { content: ""; position: absolute; left: clamp(1.5rem, 2vw, 2.25rem); right: clamp(1.5rem, 2vw, 2.25rem); top: clamp(1.05rem, 1.45vw, 1.35rem); height: 1px; background: rgba(198,30,30,.88); }
.trajectory-card.is-updating { animation: trajectory-card-pulse 420ms ease; }
.trajectory-card__eyebrow, .trajectory-card__meta span, .trajectory-card__block span { margin: 0; color: var(--trajectory-card-red) !important; font-size: .58rem; font-weight: 950; letter-spacing: .16em; line-height: 1.1; text-transform: uppercase; }
.trajectory-card__title, .trajectory-card h3[data-trajectory-name] { max-width: 12ch; margin: clamp(.72rem, 1vw, .9rem) 0 clamp(.48rem, .8vw, .68rem); color: var(--trajectory-card-ink) !important; font-size: clamp(2rem, 2.7vw, 3.2rem); line-height: .92; letter-spacing: -.03em; text-wrap: balance; }
.trajectory-card__meta, .trajectory-card__block { margin-top: clamp(.42rem, .72vw, .58rem); padding-top: clamp(.48rem, .76vw, .62rem); border-top: 1px solid var(--trajectory-card-line); }
.trajectory-card__meta strong { display: block; margin-top: .28rem; color: var(--trajectory-card-ink) !important; font-size: clamp(.86rem, .95vw, .96rem); line-height: 1.25; letter-spacing: -.01em; }
.trajectory-card__block p { margin: .28rem 0 0; color: var(--trajectory-card-copy) !important; font-size: clamp(.84rem, .94vw, .95rem); line-height: 1.34; }
.trajectory-card__closing { margin: clamp(.58rem, .92vw, .78rem) 0 0; padding-left: .75rem; border-left: 2px solid var(--trajectory-card-red); color: var(--trajectory-card-muted) !important; font-size: clamp(.84rem, .94vw, .95rem); font-weight: 850; line-height: 1.3; }

@keyframes trajectory-card-pulse { 0% { transform: translateY(6px); } 100% { transform: translateY(0); } }

@media (prefers-reduced-motion: reduce) { .trajectory-wheel { transition-duration: 1ms; } .trajectory-card.is-updating { animation: none; } }

@media (max-width: 1280px) {
  .trajectory-section { padding-block: clamp(2.25rem, 3.8vw, 3.75rem); }
  .trajectory-section::before { top: 1.15rem; }
  .trajectory-heading { margin-bottom: clamp(1rem, 1.8vw, 1.45rem); }
  .trajectory-heading h2 { font-size: clamp(2.55rem, 4vw, 3.7rem) !important; }
  .trajectory-heading p { font-size: .98rem; line-height: 1.4; }
  .trajectory-layout { grid-template-columns: minmax(320px, .95fr) minmax(340px, .85fr); gap: clamp(1.7rem, 3.5vw, 3.1rem); }
  .trajectory-wheel-wrap { width: min(100%, clamp(300px, 28vw, 360px)); }
  .trajectory-card { width: clamp(340px, 34vw, 450px); padding: clamp(1.28rem, 1.7vw, 1.65rem); border-radius: 24px; }
  .trajectory-card::before { left: clamp(1.28rem, 1.7vw, 1.65rem); right: clamp(1.28rem, 1.7vw, 1.65rem); }
  .trajectory-card__title, .trajectory-card h3[data-trajectory-name] { font-size: clamp(1.85rem, 2.35vw, 2.75rem); }
  .trajectory-card__block p, .trajectory-card__meta strong, .trajectory-card__closing { font-size: .84rem; line-height: 1.28; }
}

@media (max-width: 1024px) {
  .trajectory-section { padding-block: clamp(3.1rem, 6vw, 4.5rem); }
  .trajectory-layout { grid-template-columns: 1fr; gap: clamp(1.45rem, 3.6vw, 2.35rem); }
  .trajectory-heading { max-width: 700px; }
  .trajectory-wheel-panel { padding-top: 0; }
  .trajectory-wheel-wrap { width: min(82vw, 390px); }
  .trajectory-card { justify-self: center; width: min(100%, 640px); overflow: visible; padding: clamp(1.45rem, 3vw, 2rem); }
}

@media (max-width: 640px) {
  .trajectory-section { padding-block: 3rem; }
  .trajectory-heading { margin-bottom: 1.15rem; }
  .trajectory-heading h2 { font-size: clamp(2.25rem, 10.2vw, 3rem) !important; line-height: .94; }
  .trajectory-heading p { font-size: .9rem; line-height: 1.4; }
  .trajectory-wheel-panel { gap: .62rem; }
  .trajectory-wheel-wrap { width: min(84vw, 340px); }
  .trajectory-label { font-size: 5.95px; letter-spacing: .025em; }
  .trajectory-label--medium { font-size: 5.45px; }
  .trajectory-label--long { font-size: 4.9px; letter-spacing: .006em; }
  .trajectory-pointer { height: 36px; }
  .trajectory-card { width: 100%; padding: 1.35rem; border-radius: 22px; }
  .trajectory-card::before { left: 1.35rem; right: 1.35rem; }
  .trajectory-card__title, .trajectory-card h3[data-trajectory-name] { font-size: clamp(1.9rem, 8.8vw, 2.55rem); }
}

/* Contact benefit light reveal */
.contact__lamp-scene {
  inset: 0 0 0 50% !important;
  overflow: hidden;
}
.contact__lamp-scene::after {
  background: linear-gradient(90deg, rgba(5,5,5,0), rgba(5,5,5,.70) 30%, rgba(5,5,5,.94)) !important;
  opacity: .98 !important;
}
.contact__content.is-lit .contact__lamp-scene::after { opacity: .34 !important; }
.contact__lamp-fixture {
  --beam-length: clamp(270px, 27vw, 365px);
  left: 48% !important;
  z-index: 5;
}
.contact__lamp-fixture::before {
  background: rgba(255,255,255,.62) !important;
  filter: blur(14px) !important;
  opacity: 0 !important;
}
.contact__content.is-lit .contact__lamp-fixture::before { opacity: .24 !important; }
.contact__light-cone,
.contact__light-cone::after {
  background: rgba(255,255,255,.16) !important;
}
.contact__light-cone {
  width: min(30vw, 330px) !important;
  clip-path: polygon(49% 0, 51% 0, 76% 100%, 24% 100%) !important;
  filter: blur(9px) !important;
  opacity: 0 !important;
  transform: translate3d(-50%, -5px, 0) scaleY(.30) !important;
}
.contact__content.is-lit .contact__light-cone {
  opacity: .52 !important;
  transform: translate3d(-50%, 0, 0) scaleY(1) !important;
}
.contact__light-pool {
  top: calc(var(--lamp-size) * .66 + var(--beam-length) * .60) !important;
  width: min(31vw, 360px) !important;
  height: clamp(92px, 10vw, 126px) !important;
  background: rgba(255,255,255,.20) !important;
  filter: blur(18px) !important;
}
.contact__content.is-lit .contact__light-pool { opacity: .18 !important; }
.contact__benefit-card {
  position: absolute;
  left: 48%;
  top: clamp(9rem, 12.8vw, 11.6rem);
  z-index: 4;
  width: min(82%, 360px);
  padding: clamp(1.05rem, 1.9vw, 1.4rem);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 22px;
  background: rgba(255,255,255,.035);
  color: var(--white);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.035);
  opacity: .11;
  transform: translate3d(-50%, 8px, 0);
  transition: opacity 560ms ease, transform 620ms cubic-bezier(.22,1,.36,1), filter 560ms ease, border-color 560ms ease, background 560ms ease;
  filter: blur(.7px) saturate(.75) brightness(.52);
  pointer-events: none;
}
.contact__benefit-card::before {
  content: "";
  position: absolute;
  left: clamp(1rem, 1.8vw, 1.35rem);
  right: clamp(1rem, 1.8vw, 1.35rem);
  top: 0;
  height: 2px;
  border-radius: 999px;
  background: var(--red);
  opacity: .18;
  transition: opacity 560ms ease;
}
.contact__content.is-lit .contact__benefit-card {
  opacity: 1;
  transform: translate3d(-50%, 0, 0);
  filter: blur(0) saturate(1) brightness(1);
  border-color: rgba(255,255,255,.18);
  background: rgba(255,255,255,.055);
}
.contact__content.is-lit .contact__benefit-card::before { opacity: .88; }
.contact__benefit-eyebrow {
  margin: 0 0 .7rem;
  color: var(--red) !important;
  font-size: .64rem;
  font-weight: 950;
  letter-spacing: .18em;
  text-transform: uppercase;
}
.contact__benefit-card h3 {
  margin: 0;
  color: var(--white) !important;
  font-family: var(--font-display);
  font-size: clamp(1.42rem, 2.2vw, 1.9rem);
  line-height: .98;
  letter-spacing: -.055em;
  text-wrap: balance;
}
.contact__benefit-card p:not(.contact__benefit-eyebrow) {
  margin: .72rem 0 0;
  color: rgba(255,255,255,.72) !important;
  font-size: .94rem;
  line-height: 1.45;
}
.contact__benefit-card small {
  display: block;
  margin-top: .92rem;
  padding-top: .82rem;
  border-top: 1px solid rgba(255,255,255,.10);
  color: rgba(255,255,255,.66);
  font-size: .68rem;
  font-weight: 850;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.contact__cta-panel {
  z-index: 7;
  right: clamp(2.6rem, 6.2vw, 6.2rem) !important;
  bottom: clamp(1.35rem, 3vw, 2.15rem) !important;
}
.contact__cta-panel .button--light { background: var(--white) !important; color: var(--black) !important; border-color: var(--white) !important; }
.contact__cta-panel .button--light:hover,
.contact__cta-panel .button--light:focus-visible { background: var(--red) !important; color: var(--white) !important; border-color: var(--red) !important; }

@media (max-width: 860px) {
  .contact__lamp-scene { inset: 0 !important; }
  .contact__lamp-fixture { left: auto !important; right: clamp(2rem, 18vw, 7rem) !important; }
  .contact__benefit-card {
    left: auto;
    right: clamp(1.15rem, 15vw, 6.2rem);
    top: auto;
    bottom: 6.9rem;
    width: min(78vw, 330px);
    transform: translate3d(0, 8px, 0);
  }
  .contact__content.is-lit .contact__benefit-card { transform: translate3d(0, 0, 0); }
  .contact__cta-panel { right: clamp(1.15rem, 15vw, 6.2rem) !important; left: auto !important; bottom: 1.55rem !important; }
}
@media (max-width: 560px) {
  .contact__content { padding-bottom: 18rem !important; min-height: 610px !important; }
  .contact__lamp-switch { right: 4.75rem !important; }
  .contact__benefit-card {
    left: 1.15rem;
    right: 1.15rem;
    bottom: 6.6rem;
    width: auto;
  }
  .contact__cta-panel { left: 1.15rem !important; right: auto !important; bottom: 1.25rem !important; }
  .contact__light-cone { width: 64vw !important; filter: blur(11px) !important; }
  .contact__light-pool { width: 72vw !important; }
}
@media (prefers-reduced-motion: reduce) {
  .contact__benefit-card,
  .contact__benefit-card::before { transition-duration: 1ms !important; }
}

/* Contact premium envelope voucher reveal */
.contact__reveal-envelope {
  position: absolute;
  left: 48%;
  top: clamp(9.2rem, 13vw, 11.6rem);
  z-index: 6;
  display: grid;
  place-items: center;
  width: min(84%, 380px);
  min-height: 228px;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--white);
  cursor: pointer;
  opacity: .16;
  filter: saturate(.55) brightness(.42);
  transform: translate3d(-50%, 10px, 0);
  transition: opacity 520ms ease, filter 520ms ease, transform 620ms cubic-bezier(.22,1,.36,1);
}
.contact__reveal-envelope:focus-visible {
  outline: 2px solid var(--red);
  outline-offset: 8px;
  border-radius: 24px;
}
.contact__envelope-shell {
  position: absolute;
  inset: auto 7% 0;
  height: 154px;
  border: 1px solid rgba(255,255,255,.10);
  border-radius: 22px;
  background: linear-gradient(145deg, #080808, #141414 58%, #0B0B0B);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.055), 0 22px 46px rgba(0,0,0,.35);
  overflow: hidden;
  transition: border-color 520ms ease, box-shadow 520ms ease, transform 520ms ease;
}
.contact__envelope-flap,
.contact__envelope-front,
.contact__envelope-seal { position: absolute; pointer-events: none; }
.contact__envelope-flap {
  inset: 0 0 auto;
  height: 88px;
  background: linear-gradient(160deg, rgba(255,255,255,.055), rgba(255,255,255,.012));
  clip-path: polygon(0 0, 100% 0, 50% 100%);
  transform-origin: 50% 0;
  transition: transform 520ms cubic-bezier(.22,1,.36,1), opacity 360ms ease;
}
.contact__envelope-front {
  inset: auto 0 0;
  height: 92px;
  background:
    linear-gradient(32deg, transparent 49.4%, rgba(255,255,255,.09) 50%, transparent 50.6%),
    linear-gradient(-32deg, transparent 49.4%, rgba(255,255,255,.09) 50%, transparent 50.6%),
    linear-gradient(180deg, rgba(255,255,255,.025), rgba(255,255,255,.05));
}
.contact__envelope-seal {
  left: 50%;
  top: 73px;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: var(--red);
  box-shadow: 0 0 0 8px rgba(198,30,30,.10);
  transform: translateX(-50%);
}
.contact__voucher {
  position: relative;
  z-index: 2;
  display: grid;
  gap: .62rem;
  width: min(100%, 340px);
  padding: clamp(1rem, 1.85vw, 1.28rem);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 20px;
  background: linear-gradient(145deg, rgba(18,18,18,.98), rgba(6,6,6,.98));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.08), 0 20px 42px rgba(0,0,0,.38);
  text-align: left;
  opacity: 0;
  transform: translate3d(0, 34px, 0) scale(.965);
  transition: opacity 430ms ease, transform 560ms cubic-bezier(.22,1,.36,1), border-color 430ms ease;
}
.contact__voucher::before {
  content: "";
  position: absolute;
  left: 1rem;
  right: 1rem;
  top: .8rem;
  height: 2px;
  border-radius: 999px;
  background: var(--red);
}
.contact__voucher strong {
  margin-top: .32rem;
  color: var(--white);
  font-family: var(--font-display);
  font-size: clamp(1.42rem, 2vw, 1.82rem);
  line-height: .98;
  letter-spacing: -.055em;
}
.contact__voucher span:not(.contact__benefit-eyebrow):not(.contact__voucher-code) {
  color: rgba(255,255,255,.76);
  font-size: .93rem;
  line-height: 1.42;
}
.contact__voucher-code {
  justify-self: start;
  padding: .48rem .66rem .44rem;
  border: 1px solid rgba(198,30,30,.58);
  border-radius: 999px;
  background: rgba(198,30,30,.14);
  color: var(--white);
  font-size: .74rem;
  font-weight: 950;
  letter-spacing: .14em;
}
.contact__voucher small {
  color: rgba(255,255,255,.58);
  font-size: .72rem;
  font-weight: 800;
}
.contact__content.is-lit .contact__reveal-envelope {
  opacity: 1;
  filter: saturate(1) brightness(1);
  transform: translate3d(-50%, 0, 0);
}
.contact__content.is-lit .contact__envelope-shell {
  border-color: rgba(255,255,255,.22);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.08), 0 26px 58px rgba(0,0,0,.42), 0 0 36px rgba(255,255,255,.06);
}
.contact__content.is-voucher-open .contact__envelope-shell { transform: translateY(28px) scale(.98); }
.contact__content.is-voucher-open .contact__envelope-flap { transform: rotateX(72deg); opacity: .55; }
.contact__content.is-voucher-open .contact__envelope-seal { opacity: .32; }
.contact__content.is-voucher-open .contact__voucher {
  opacity: 1;
  transform: translate3d(0, -22px, 0) scale(1);
  border-color: rgba(255,255,255,.22);
}
.contact__content.is-voucher-open .contact__light-pool { opacity: .26 !important; }

@media (max-width: 860px) {
  .contact__reveal-envelope {
    left: auto;
    right: clamp(1.15rem, 15vw, 6.2rem);
    top: auto;
    bottom: 5.95rem;
    width: min(78vw, 350px);
    transform: translate3d(0, 10px, 0);
  }
  .contact__content.is-lit .contact__reveal-envelope { transform: translate3d(0, 0, 0); }
}
@media (max-width: 560px) {
  .contact__content { padding-bottom: 21.5rem !important; min-height: 660px !important; }
  .contact__reveal-envelope {
    left: 1.15rem;
    right: 1.15rem;
    bottom: 5.85rem;
    width: auto;
    min-height: 244px;
  }
  .contact__envelope-shell { inset-inline: 4%; }
  .contact__voucher { width: min(100%, 318px); }
}
@media (prefers-reduced-motion: reduce) {
  .contact__reveal-envelope,
  .contact__envelope-shell,
  .contact__envelope-flap,
  .contact__voucher { transition-duration: 1ms !important; }
}

/* Contact gift voucher refinement */
.contact__gift-stage {
  position: absolute;
  left: 48%;
  top: clamp(8.55rem, 12.2vw, 10.95rem);
  z-index: 6;
  display: grid;
  justify-items: center;
  width: min(86%, 390px);
  min-height: 330px;
  transform: translateX(-50%);
  pointer-events: none;
}
.contact__gift {
  position: relative;
  z-index: 2;
  display: grid;
  justify-items: center;
  gap: .58rem;
  width: clamp(154px, 15vw, 202px);
  padding: .2rem;
  border: 0;
  background: transparent;
  color: var(--white);
  cursor: pointer;
  opacity: .2;
  filter: brightness(.42) saturate(.42);
  transform: translateY(10px);
  transition: opacity 520ms ease, filter 520ms ease, transform 620ms cubic-bezier(.22,1,.36,1);
  pointer-events: auto;
}
.contact__gift:focus-visible {
  outline: 2px solid var(--red);
  outline-offset: 8px;
  border-radius: 22px;
}
.contact__gift-icon {
  display: block;
  width: 100%;
  aspect-ratio: 1;
  overflow: visible;
}
.contact__gift-box,
.contact__gift-top,
.contact__gift-knot,
.contact__gift-bow,
.contact__gift-ribbon {
  vector-effect: non-scaling-stroke;
  stroke: rgba(255,255,255,.42);
  stroke-width: 5;
  stroke-linejoin: round;
  fill: #121212;
  transition: fill 520ms ease, stroke 520ms ease, transform 560ms cubic-bezier(.22,1,.36,1), opacity 360ms ease;
}
.contact__gift-ribbon { fill: #171717; stroke: rgba(255,255,255,.28); }
.contact__gift-accent {
  fill: var(--red);
  opacity: .18;
  transition: opacity 520ms ease, transform 520ms cubic-bezier(.22,1,.36,1);
  transform-origin: 50% 50%;
}
.contact__gift-lid { transform-box: fill-box; transform-origin: 50% 100%; transition: transform 560ms cubic-bezier(.22,1,.36,1), opacity 360ms ease; }
.contact__gift-hint {
  color: rgba(255,255,255,.34);
  font-size: .62rem;
  font-weight: 950;
  letter-spacing: .16em;
  line-height: 1;
  text-transform: uppercase;
  opacity: 0;
  transform: translateY(-4px);
  transition: opacity 420ms ease, transform 520ms cubic-bezier(.22,1,.36,1), color 420ms ease;
}
.contact__content.is-lit .contact__gift {
  opacity: 1;
  filter: brightness(1) saturate(1) drop-shadow(0 22px 36px rgba(0,0,0,.42));
  transform: translateY(0);
}
.contact__content.is-lit .contact__gift-box,
.contact__content.is-lit .contact__gift-top,
.contact__content.is-lit .contact__gift-knot,
.contact__content.is-lit .contact__gift-bow {
  fill: #f2f2f2;
  stroke: rgba(255,255,255,.88);
}
.contact__content.is-lit .contact__gift-ribbon { fill: #d8d8d8; stroke: rgba(5,5,5,.18); }
.contact__content.is-lit .contact__gift-accent { opacity: .92; transform: scale(1); }
.contact__content.is-lit .contact__gift-hint { opacity: 1; transform: translateY(0); color: rgba(255,255,255,.74); }
.contact__content.is-voucher-open .contact__gift-lid { transform: translateY(-28px) rotate(-5deg); }
.contact__content.is-voucher-open .contact__gift-box,
.contact__content.is-voucher-open .contact__gift-ribbon--vertical,
.contact__content.is-voucher-open .contact__gift-ribbon--horizontal { opacity: .64; transform: translateY(52px) scale(.92); }
.contact__content.is-voucher-open .contact__gift-hint { opacity: 0; }
.contact__gift-stage .contact__voucher {
  position: absolute;
  top: clamp(1.25rem, 2vw, 1.8rem);
  z-index: 3;
  width: min(100%, 344px);
  gap: .58rem;
  pointer-events: none;
  transform: translate3d(0, 64px, 0) scale(.96);
}
.contact__gift-stage .contact__voucher .contact__voucher-cta {
  justify-self: stretch;
  margin-top: .2rem;
  padding: .78rem 1rem;
  text-align: center;
}
.contact__content.is-voucher-open .contact__gift-stage .contact__voucher {
  opacity: 1;
  transform: translate3d(0, -10px, 0) scale(1);
  border-color: rgba(255,255,255,.22);
  pointer-events: auto;
}
.contact__content.is-voucher-open .contact__gift { pointer-events: auto; }
.contact__content:not(.is-lit) .contact__gift-stage .contact__voucher { opacity: 0; }
.contact__content.is-lit .contact__light-cone {
  opacity: .5 !important;
  width: min(28vw, 310px) !important;
  clip-path: polygon(49% 0, 51% 0, 72% 100%, 28% 100%) !important;
}
.contact__content.is-lit .contact__light-pool { opacity: .2 !important; }

@media (max-width: 860px) {
  .contact__gift-stage {
    left: auto;
    right: clamp(1.15rem, 15vw, 6.2rem);
    top: auto;
    bottom: 3.15rem;
    width: min(78vw, 360px);
    min-height: 350px;
    transform: none;
  }
  .contact__content { padding-bottom: 18.5rem !important; min-height: 640px !important; }
}
@media (max-width: 560px) {
  .contact__content { padding-bottom: 22rem !important; min-height: 690px !important; }
  .contact__gift-stage {
    left: 1.15rem;
    right: 1.15rem;
    bottom: 2rem;
    width: auto;
    min-height: 370px;
  }
  .contact__gift { width: 166px; }
  .contact__gift-stage .contact__voucher { width: min(100%, 320px); }
  .contact__content.is-lit .contact__light-cone { width: 58vw !important; }
}
@media (prefers-reduced-motion: reduce) {
  .contact__gift,
  .contact__gift-icon *,
  .contact__gift-lid,
  .contact__gift-hint,
  .contact__gift-stage .contact__voucher { transition-duration: 1ms !important; }
}

/* Contact final: concealed gift reveal */
.contact__gift-stage {
  left: 50% !important;
  top: clamp(9rem, 12vw, 10.75rem) !important;
  right: auto !important;
  bottom: auto !important;
  width: min(72%, 330px) !important;
  min-height: 300px !important;
  transform: translateX(-50%) !important;
  pointer-events: none !important;
}
.contact__gift {
  width: clamp(72px, 6.8vw, 104px) !important;
  gap: 0 !important;
  padding: 0 !important;
  opacity: .045 !important;
  filter: brightness(.18) grayscale(1) contrast(.85) !important;
  transform: translate3d(0, 12px, 0) scale(.94) !important;
  pointer-events: none !important;
}
.contact__gift-icon { filter: drop-shadow(0 14px 22px rgba(0,0,0,.22)); }
.contact__gift-box,
.contact__gift-top,
.contact__gift-knot,
.contact__gift-bow,
.contact__gift-ribbon,
.contact__gift-accent {
  stroke-width: 4 !important;
  stroke: rgba(255,255,255,.18) !important;
  fill: #050505 !important;
}
.contact__gift-ribbon,
.contact__gift-accent { fill: #070707 !important; }
.contact__gift-hint { display: none !important; }
.contact__content.is-lit .contact__gift {
  opacity: .94 !important;
  filter: brightness(1) grayscale(0) contrast(1) drop-shadow(0 18px 28px rgba(0,0,0,.34)) !important;
  transform: translate3d(0, 0, 0) scale(1) !important;
  pointer-events: auto !important;
}
.contact__content.is-lit .contact__gift-box,
.contact__content.is-lit .contact__gift-top,
.contact__content.is-lit .contact__gift-knot,
.contact__content.is-lit .contact__gift-bow {
  fill: #ededed !important;
  stroke: rgba(255,255,255,.92) !important;
}
.contact__content.is-lit .contact__gift-ribbon {
  fill: #cfcfcf !important;
  stroke: rgba(15,15,15,.2) !important;
}
.contact__content.is-lit .contact__gift-accent {
  fill: var(--red) !important;
  opacity: .86 !important;
  stroke: rgba(150,0,0,.2) !important;
}
.contact__content.is-voucher-open .contact__gift-lid { transform: translateY(-10px) rotate(-3deg) !important; }
.contact__content.is-voucher-open .contact__gift-box,
.contact__content.is-voucher-open .contact__gift-ribbon--vertical,
.contact__content.is-voucher-open .contact__gift-ribbon--horizontal { opacity: .72 !important; transform: translateY(12px) scale(.96) !important; }
.contact__gift-stage .contact__voucher[hidden] { display: block !important; }
.contact__gift-stage .contact__voucher {
  position: absolute !important;
  top: clamp(6.15rem, 8.7vw, 7.65rem) !important;
  left: 50% !important;
  z-index: 4 !important;
  display: grid !important;
  width: min(100%, 326px) !important;
  gap: .64rem !important;
  padding: 1.05rem !important;
  border: 1px solid rgba(255,255,255,.22) !important;
  border-radius: 22px !important;
  background: rgba(250,250,250,.98) !important;
  color: var(--black) !important;
  box-shadow: 0 24px 54px rgba(0,0,0,.36) !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
  transform: translate3d(-50%, -8px, 0) scale(.96) !important;
  transition: opacity 260ms ease, visibility 260ms ease, transform 360ms cubic-bezier(.22,1,.36,1) !important;
}
.contact__gift-stage .contact__voucher::before { content: none !important; }
.contact__content.is-voucher-open .contact__gift-stage .contact__voucher {
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  transform: translate3d(-50%, 0, 0) scale(1) !important;
}
.contact__benefit-eyebrow { color: var(--red) !important; font-size: .66rem !important; letter-spacing: .18em !important; }
.contact__gift-stage .contact__voucher strong { color: var(--black) !important; font-size: clamp(1.05rem, 1.8vw, 1.28rem) !important; line-height: 1.05 !important; }
.contact__gift-stage .contact__voucher span:not(.contact__benefit-eyebrow):not(.contact__voucher-code) { color: rgba(0,0,0,.72) !important; font-size: .88rem !important; line-height: 1.35 !important; }
.contact__voucher-code { justify-self: start; padding: .4rem .58rem; border: 1px solid rgba(0,0,0,.16); border-radius: 999px; color: var(--black) !important; background: #f2f2f2; font-size: .76rem !important; letter-spacing: .14em !important; }
.contact__gift-stage .contact__voucher small { color: rgba(0,0,0,.52) !important; font-size: .76rem !important; }
.contact__voucher-actions { display: grid; grid-template-columns: 1fr auto; gap: .5rem; align-items: center; margin-top: .18rem; }
.contact__gift-stage .contact__voucher .contact__voucher-cta,
.contact__voucher-copy { min-height: 42px; padding: .72rem .85rem !important; border-radius: 999px !important; font-size: .72rem !important; }
.contact__voucher-copy { background: transparent !important; color: var(--black) !important; border: 1px solid rgba(0,0,0,.2) !important; box-shadow: none !important; }
.contact__voucher-close { position: absolute; top: .42rem; right: .52rem; width: 30px; height: 30px; border: 0; border-radius: 999px; background: transparent; color: rgba(0,0,0,.55); cursor: pointer; font-size: 1.2rem; line-height: 1; }
.contact__voucher-close:focus-visible,
.contact__voucher-copy:focus-visible { outline: 2px solid var(--red); outline-offset: 3px; }
.contact__content.is-lit .contact__light-cone { opacity: .62 !important; width: min(25vw, 280px) !important; filter: blur(10px) !important; clip-path: polygon(49% 0, 51% 0, 74% 100%, 26% 100%) !important; }
.contact__content.is-lit .contact__light-pool { opacity: .16 !important; width: min(24vw, 270px) !important; }
@media (max-width: 860px) {
  .contact__gift-stage { left: auto !important; right: clamp(1.25rem, 15vw, 6.2rem) !important; top: 8.4rem !important; width: min(64vw, 320px) !important; min-height: 310px !important; transform: none !important; }
  .contact__content { padding-bottom: 17rem !important; min-height: 620px !important; }
  .contact__content.is-lit .contact__light-cone { width: min(46vw, 300px) !important; }
}
@media (max-width: 560px) {
  .contact__content { padding-bottom: 19.5rem !important; min-height: 660px !important; }
  .contact__gift-stage { left: 1rem !important; right: 1rem !important; top: auto !important; bottom: 1.45rem !important; width: auto !important; min-height: 315px !important; }
  .contact__gift { width: 82px !important; }
  .contact__gift-stage .contact__voucher { width: min(100%, 312px) !important; top: 5.8rem !important; }
  .contact__voucher-actions { grid-template-columns: 1fr; }
  .contact__content.is-lit .contact__light-cone { width: 58vw !important; }
}
@media (prefers-reduced-motion: reduce) {
  .contact__gift,
  .contact__gift-icon *,
  .contact__gift-stage .contact__voucher { transition-duration: 1ms !important; }
}

/* Contact final: premium voucher revealed by light */
.contact__voucher-stage {
  position: absolute;
  left: 50%;
  top: clamp(9.4rem, 13vw, 12rem);
  z-index: 3;
  width: min(72%, 330px);
  min-height: 210px;
  transform: translateX(-50%);
  pointer-events: none;
}
.contact__voucher-trigger {
  position: relative;
  display: grid;
  gap: .48rem;
  width: min(100%, 286px);
  margin-inline: auto;
  padding: 1.05rem 1.1rem 1rem;
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 18px;
  background: #050505;
  color: rgba(255,255,255,.2);
  text-align: left;
  box-shadow: 0 24px 52px rgba(0,0,0,.25);
  opacity: .075;
  cursor: pointer;
  transform: translateY(12px) scale(.98);
  transition: opacity 360ms ease, border-color 360ms ease, color 360ms ease, transform 420ms cubic-bezier(.22,1,.36,1), box-shadow 360ms ease;
  pointer-events: none;
}
.contact__voucher-trigger::before {
  content: "";
  position: absolute;
  left: 1.1rem;
  right: 1.1rem;
  top: .72rem;
  height: 1px;
  background: var(--red);
  opacity: .18;
}
.contact__scene-eyebrow {
  margin-top: .2rem;
  color: var(--red);
  font-size: .62rem;
  font-weight: 900;
  letter-spacing: .18em;
}
.contact__voucher-trigger strong {
  color: inherit;
  font-family: var(--font-display);
  font-size: clamp(1.12rem, 1.7vw, 1.36rem);
  line-height: 1;
  letter-spacing: -.045em;
}
.contact__scene-code {
  justify-self: start;
  padding: .36rem .52rem;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 999px;
  color: inherit;
  font-size: .68rem;
  font-weight: 900;
  letter-spacing: .14em;
}
.contact__voucher-trigger small {
  color: inherit;
  font-size: .74rem;
}
.contact__content.is-lit .contact__voucher-trigger {
  opacity: 1;
  color: rgba(255,255,255,.92);
  border-color: rgba(255,255,255,.28);
  background: #080808;
  box-shadow: 0 24px 56px rgba(0,0,0,.42), 0 0 42px rgba(255,255,255,.08);
  transform: translateY(0) scale(1);
  pointer-events: auto;
}
.contact__content.is-lit .contact__voucher-trigger::before { opacity: .82; }
.contact__voucher-trigger:hover,
.contact__voucher-trigger:focus-visible {
  border-color: rgba(255,255,255,.5);
  outline: 2px solid var(--red);
  outline-offset: 4px;
}
.contact__content.is-lit .contact__light-cone {
  opacity: .7 !important;
  width: min(34vw, 390px) !important;
  filter: blur(14px) !important;
  clip-path: polygon(48% 0, 52% 0, 82% 100%, 18% 100%) !important;
}
.contact__content.is-lit .contact__light-pool {
  opacity: .2 !important;
  width: min(34vw, 370px) !important;
}
.contact__benefit-modal {
  position: absolute;
  inset: 0;
  z-index: 12;
  display: grid;
  place-items: center;
  padding: clamp(1rem, 3vw, 2rem);
  background: rgba(0,0,0,.58);
  backdrop-filter: blur(8px);
}
.contact__benefit-modal[hidden] { display: none; }
.contact__benefit-dialog {
  position: relative;
  display: grid;
  gap: .78rem;
  width: min(100%, 430px);
  padding: clamp(1.35rem, 2.6vw, 1.9rem);
  border: 1px solid rgba(0,0,0,.1);
  border-radius: 26px;
  background: #fff;
  color: var(--black);
  box-shadow: 0 34px 90px rgba(0,0,0,.42);
}
.contact__benefit-dialog::before {
  content: "";
  position: absolute;
  left: clamp(1.35rem, 2.6vw, 1.9rem);
  right: clamp(1.35rem, 2.6vw, 1.9rem);
  top: clamp(1rem, 2vw, 1.35rem);
  height: 1px;
  background: var(--red);
}
.contact__benefit-dialog h3 {
  margin: .35rem 0 0;
  color: var(--black);
  font-family: var(--font-display);
  font-size: clamp(1.9rem, 3.4vw, 2.7rem);
  line-height: .92;
  letter-spacing: -.07em;
}
.contact__benefit-dialog p { margin: 0; color: rgba(0,0,0,.72); line-height: 1.5; }
.contact__benefit-code {
  justify-self: start;
  padding: .56rem .72rem;
  border: 1px solid rgba(0,0,0,.14);
  border-radius: 999px;
  background: #f5f5f5;
  color: var(--black);
  font-size: .8rem;
  font-weight: 950;
  letter-spacing: .16em;
}
.contact__benefit-dialog small { color: rgba(0,0,0,.54); font-size: .78rem; }
.contact__benefit-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .58rem;
  margin-top: .3rem;
}
.contact__benefit-copy,
.contact__benefit-close {
  background: transparent !important;
  color: var(--black) !important;
  border: 1px solid rgba(0,0,0,.18) !important;
  box-shadow: none !important;
}
.contact__benefit-copy:focus-visible,
.contact__benefit-close:focus-visible,
.contact__benefit-whatsapp:focus-visible { outline: 2px solid var(--red); outline-offset: 3px; }
@media (max-width: 860px) {
  .contact__voucher-stage { left: auto; right: clamp(1.15rem, 15vw, 6.2rem); top: 8.6rem; width: min(64vw, 320px); transform: none; }
  .contact__content { padding-bottom: 15.5rem !important; min-height: 600px !important; }
  .contact__content.is-lit .contact__light-cone { width: min(50vw, 340px) !important; }
}
@media (max-width: 560px) {
  .contact__content { padding-bottom: 18rem !important; min-height: 640px !important; }
  .contact__voucher-stage { left: 1rem; right: 1rem; top: auto; bottom: 2.2rem; width: auto; }
  .contact__voucher-trigger { width: min(100%, 300px); }
  .contact__benefit-actions { display: grid; grid-template-columns: 1fr; }
  .contact__content.is-lit .contact__light-cone { width: 64vw !important; }
}
@media (prefers-reduced-motion: reduce) {
  .contact__voucher-trigger,
  .contact__benefit-modal { transition-duration: 1ms !important; }
}

/* Contact final correction: real premium gift revealed only by the lamp */
.contact__voucher-stage {
  position: absolute !important;
  left: 50% !important;
  top: clamp(8.7rem, 12.4vw, 11.4rem) !important;
  z-index: 3 !important;
  width: min(58vw, 300px) !important;
  min-height: 250px !important;
  transform: translateX(-50%) !important;
  display: grid !important;
  place-items: start center !important;
  pointer-events: none !important;
}
.contact__voucher-trigger {
  position: relative !important;
  display: grid !important;
  place-items: center !important;
  width: clamp(160px, 17vw, 220px) !important;
  min-height: clamp(150px, 16vw, 205px) !important;
  margin: 0 auto !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 28px !important;
  background: transparent !important;
  color: inherit !important;
  box-shadow: none !important;
  opacity: .055 !important;
  filter: brightness(.16) contrast(1.1) grayscale(1) blur(.15px) !important;
  cursor: pointer !important;
  transform: translateY(10px) scale(.98) !important;
  transition: opacity 420ms ease, filter 420ms ease, transform 520ms cubic-bezier(.22,1,.36,1) !important;
  pointer-events: none !important;
}
.contact__voucher-trigger::before,
.contact__scene-eyebrow,
.contact__voucher-trigger strong,
.contact__scene-code,
.contact__voucher-trigger small { display: none !important; }
.contact__gift-image {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
  user-select: none;
  pointer-events: none;
}
.contact__content.is-lit .contact__voucher-trigger {
  opacity: 1 !important;
  filter: brightness(1.08) contrast(1.04) grayscale(0) drop-shadow(0 20px 28px rgba(0,0,0,.38)) drop-shadow(0 0 18px rgba(255,255,255,.18)) !important;
  transform: translateY(0) scale(1) !important;
  pointer-events: auto !important;
}
.contact__voucher-trigger:hover,
.contact__voucher-trigger:focus-visible {
  outline: 2px solid var(--red) !important;
  outline-offset: 8px !important;
  filter: brightness(1.12) contrast(1.04) grayscale(0) drop-shadow(0 22px 30px rgba(0,0,0,.42)) drop-shadow(0 0 22px rgba(255,255,255,.2)) !important;
}
.contact__content.is-lit .contact__light-cone {
  opacity: .62 !important;
  width: min(28vw, 320px) !important;
  filter: blur(10px) !important;
  clip-path: polygon(49% 0, 51% 0, 76% 100%, 24% 100%) !important;
}
.contact__content.is-lit .contact__light-pool {
  opacity: .18 !important;
  width: min(29vw, 320px) !important;
}
.contact__benefit-modal { position: fixed !important; }
.contact__benefit-dialog { color: #050505 !important; background: #fff !important; }
.contact__benefit-eyebrow { color: var(--red) !important; }
.contact__benefit-dialog h3 { color: #050505 !important; }
.contact__benefit-dialog p { color: rgba(0,0,0,.76) !important; }
.contact__benefit-code { color: #050505 !important; border-color: rgba(227,31,38,.35) !important; background: linear-gradient(135deg, #fff, #f4f4f4) !important; }
.contact__benefit-dialog small { color: rgba(0,0,0,.62) !important; }
@media (max-width: 860px) {
  .contact__voucher-stage { left: auto !important; right: clamp(1.4rem, 13vw, 5.6rem) !important; top: 8.8rem !important; width: min(52vw, 285px) !important; transform: none !important; }
  .contact__voucher-trigger { width: clamp(150px, 28vw, 200px) !important; }
  .contact__content.is-lit .contact__light-cone { width: min(44vw, 310px) !important; }
}
@media (max-width: 560px) {
  .contact__content { padding-bottom: 16.8rem !important; min-height: 610px !important; }
  .contact__voucher-stage { left: 50% !important; right: auto !important; top: auto !important; bottom: 3.7rem !important; width: min(78vw, 280px) !important; min-height: 190px !important; transform: translateX(-50%) !important; }
  .contact__voucher-trigger { width: clamp(155px, 48vw, 190px) !important; min-height: 150px !important; }
  .contact__content.is-lit .contact__light-cone { width: 62vw !important; }
  .contact__benefit-dialog { max-height: calc(100svh - 2rem); overflow: auto; }
}
@media (prefers-reduced-motion: reduce) {
  .contact__voucher-trigger,
  .contact__gift-image { transition-duration: 1ms !important; animation: none !important; }
}

/* Contact benefit modal: viewport-level premium overlay correction */
body.is-contact-modal-open {
  overflow: hidden;
}
.contact__benefit-modal {
  position: fixed !important;
  inset: 0 !important;
  z-index: 1000 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100vw !important;
  min-height: 100vh !important;
  min-height: 100svh !important;
  padding: 24px !important;
  background: rgba(0,0,0,.72) !important;
  backdrop-filter: blur(8px) !important;
  overflow: hidden !important;
}
.contact__benefit-modal[hidden] {
  display: none !important;
}
.contact__benefit-dialog {
  position: relative !important;
  display: grid !important;
  gap: clamp(.78rem, 1.5vw, 1rem) !important;
  width: min(92vw, 680px) !important;
  max-height: min(86vh, 760px) !important;
  max-height: min(86svh, 760px) !important;
  padding: clamp(1.65rem, 4vw, 2.7rem) !important;
  padding-top: clamp(2.15rem, 4vw, 3rem) !important;
  border: 1px solid rgba(5,5,5,.10) !important;
  border-radius: 30px !important;
  background: #fff !important;
  color: #050505 !important;
  box-shadow: 0 34px 110px rgba(0,0,0,.38) !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  overscroll-behavior: contain !important;
}
.contact__benefit-dialog::before {
  left: clamp(1.65rem, 4vw, 2.7rem) !important;
  right: clamp(1.65rem, 4vw, 2.7rem) !important;
  top: clamp(1.15rem, 2.4vw, 1.55rem) !important;
  height: 2px !important;
  background: var(--red) !important;
}
.contact__benefit-x {
  position: absolute;
  top: .85rem;
  right: .85rem;
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  border: 1px solid rgba(0,0,0,.14);
  border-radius: 999px;
  background: #fff;
  color: #050505;
  font-size: 1.4rem;
  line-height: 1;
  cursor: pointer;
}
.contact__benefit-eyebrow {
  color: var(--red) !important;
  font-size: .72rem !important;
  font-weight: 950 !important;
  letter-spacing: .22em !important;
  text-transform: uppercase !important;
}
.contact__benefit-dialog h3 {
  max-width: 12ch !important;
  margin: .12rem 0 .05rem !important;
  color: #050505 !important;
  font-size: clamp(2.25rem, 6vw, 4.65rem) !important;
  line-height: .92 !important;
  letter-spacing: -.075em !important;
}
.contact__benefit-dialog p {
  max-width: 54ch !important;
  color: rgba(0,0,0,.76) !important;
  font-size: clamp(1rem, 1.6vw, 1.08rem) !important;
}
.contact__benefit-code {
  justify-self: start !important;
  margin-top: .15rem !important;
  padding: .7rem .95rem !important;
  border: 1px solid rgba(227,31,38,.36) !important;
  border-radius: 999px !important;
  background: #f7f7f7 !important;
  color: #050505 !important;
  font-size: .84rem !important;
  font-weight: 950 !important;
  letter-spacing: .16em !important;
}
.contact__benefit-dialog small {
  color: rgba(0,0,0,.62) !important;
  font-size: .82rem !important;
}
.contact__benefit-actions {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: .72rem !important;
  margin-top: .45rem !important;
}
.contact__benefit-actions .button {
  min-height: 46px !important;
  white-space: normal !important;
}
.contact__benefit-copy,
.contact__benefit-close {
  background: transparent !important;
  color: #050505 !important;
  border: 1px solid rgba(0,0,0,.18) !important;
  box-shadow: none !important;
}
.contact__benefit-x:focus-visible,
.contact__benefit-copy:focus-visible,
.contact__benefit-close:focus-visible,
.contact__benefit-whatsapp:focus-visible {
  outline: 2px solid var(--red) !important;
  outline-offset: 3px !important;
}
@media (max-width: 560px) {
  .contact__benefit-modal {
    padding: 16px !important;
  }
  .contact__benefit-dialog {
    width: calc(100vw - 32px) !important;
    max-height: calc(100vh - 32px) !important;
    max-height: calc(100svh - 32px) !important;
    padding: 1.45rem !important;
    padding-top: 2.4rem !important;
    border-radius: 24px !important;
  }
  .contact__benefit-dialog::before {
    left: 1.45rem !important;
    right: 1.45rem !important;
  }
  .contact__benefit-dialog h3 {
    max-width: 11ch !important;
    font-size: clamp(2.05rem, 14vw, 3.25rem) !important;
  }
  .contact__benefit-actions {
    display: grid !important;
    grid-template-columns: 1fr !important;
  }
  .contact__benefit-actions .button {
    width: 100% !important;
  }
}

/* Contact: keep only the outer canvas white while preserving the dark internal card. */
.contact {
  background: var(--white) !important;
}


/* Surgical copy/layout refinements for clearer commercial messaging. */
.contact__whatsapp-cta {
  width: fit-content;
  margin-top: clamp(1.05rem, 1.8vw, 1.45rem);
  background: var(--white) !important;
  color: var(--black) !important;
  border-color: var(--white) !important;
  box-shadow: 0 14px 34px rgba(0,0,0,.22), 0 0 0 1px rgba(255,255,255,.08) !important;
}

.contact__whatsapp-cta:hover {
  transform: translateY(-2px);
  box-shadow: 0 18px 42px rgba(0,0,0,.28), 0 0 0 4px rgba(179,38,30,.18) !important;
}

.contact__whatsapp-cta:focus-visible {
  outline: 2px solid var(--red) !important;
  outline-offset: 3px !important;
}

@media (max-width: 640px) {
  .contact__whatsapp-cta {
    width: 100%;
    justify-content: center;
  }
}

/* Responsive proportion pass: fluid scale for real laptop, tablet and mobile viewports. */
:root {
  --header-h: clamp(60px, 4.6vw, 68px);
  --section-y: clamp(3rem, 5.6vw, 5.8rem);
  --section-y-tight: clamp(2.7rem, 4.8vw, 4.8rem);
}

html {
  scroll-padding-top: calc(var(--header-h) + 18px);
  overflow-x: clip;
}

body {
  overflow-x: clip;
}

.container {
  width: min(100% - clamp(1.25rem, 4vw, 2rem), var(--container));
}

.section {
  padding-block: var(--section-y);
}

.section--tight,
.section--compact {
  padding-block: var(--section-y-tight);
}

h1 {
  max-width: 12.5ch;
  font-size: clamp(3rem, 5.25vw, 5.25rem);
  line-height: .96;
}

h2,
#casos .section-heading h2 {
  font-size: clamp(2.2rem, 4.6vw, 4.65rem) !important;
  line-height: .94;
}

.navbar {
  min-height: var(--header-h);
  align-items: center;
  padding-block: 0;
}

.logo {
  display: inline-flex;
  align-items: center;
  width: auto;
  min-width: 0;
  max-width: none;
  height: auto;
  min-height: 0;
  flex: 0 0 auto;
}

.logo img {
  width: clamp(130px, 11vw, 165px);
  height: auto;
  max-width: none;
  max-height: none;
  object-fit: contain;
  display: block;
}

.nav-menu a {
  padding: clamp(.4rem, .6vw, .48rem) clamp(.56rem, .95vw, .78rem);
  font-size: clamp(.76rem, .72vw, .86rem);
}

.hero {
  min-height: min(690px, calc(100svh - var(--header-h)));
  padding-block: clamp(1rem, 2.6vw, 2.3rem);
}

.hero__content {
  grid-template-columns: minmax(0, 1fr) minmax(310px, 398px) !important;
  gap: clamp(1.6rem, 3.9vw, 4.2rem) !important;
  align-items: center;
  padding-block: clamp(1rem, 2.8vw, 3rem);
}

.hero__copy {
  max-width: 720px;
}

.hero__text {
  max-width: 52ch;
  font-size: clamp(.98rem, 1.35vw, 1.18rem);
}

.hero__panel {
  min-height: clamp(356px, 42vw, 410px);
  padding: clamp(1.15rem, 2vw, 1.8rem) !important;
}

.hero__panel--intro {
  width: min(100%, 392px) !important;
  transform: none !important;
}

.hero__panel p {
  font-size: clamp(1.16rem, 1.7vw, 1.52rem);
}

.elevator-scene {
  min-height: clamp(178px, 20vw, 222px);
  margin-top: clamp(.9rem, 1.8vw, 1.35rem);
}

.elevator-visual {
  height: clamp(178px, 20vw, 222px);
  max-width: 330px !important;
}

.panel-footer {
  margin-top: clamp(.8rem, 1.5vw, 1.1rem) !important;
  padding: clamp(.72rem, 1.2vw, .92rem) clamp(.8rem, 1.3vw, 1rem) !important;
}

.services-section {
  padding-block: clamp(3rem, 5.4vw, 5.6rem) !important;
}

.services-grid {
  gap: clamp(.85rem, 1.45vw, 1.35rem) !important;
}

.service-card {
  aspect-ratio: 5 / 6.65 !important;
}

.service-card__front {
  grid-template-rows: auto minmax(82px, .9fr) auto auto !important;
  padding: clamp(.9rem, 1.35vw, 1.35rem) !important;
}

.service-card__graphic {
  width: min(68%, 166px) !important;
}

.service-card__title {
  min-height: 2.45em !important;
  font-size: clamp(1.05rem, 1.48vw, 1.45rem) !important;
}

.service-card__text {
  min-height: 2.65em !important;
  font-size: clamp(.78rem, .86vw, .9rem) !important;
}

.experience-band {
  padding-block: clamp(3rem, 5vw, 5.1rem) !important;
}

.experience-panel {
  grid-template-columns: minmax(0, .9fr) minmax(360px, 1.1fr);
  gap: clamp(1.6rem, 4vw, 3.5rem);
}

.experience-metrics strong {
  font-size: clamp(2.35rem, 4.4vw, 4.15rem);
}

.experience-metrics .metric-item {
  padding: clamp(.82rem, 1.35vw, 1.12rem) clamp(.9rem, 1.45vw, 1.2rem);
}

#casos.cases-section {
  padding-block: clamp(3.6rem, 6vw, 6.2rem) !important;
}

#casos .split-layout,
.split-layout,
.about {
  gap: clamp(1.6rem, 4.4vw, 4.8rem);
}

#casos .case-item {
  padding-block: clamp(1.15rem, 1.9vw, 1.75rem) !important;
}

#casos .case-item h3 {
  font-size: clamp(1.2rem, 1.9vw, 1.8rem);
}

#sobre-mi .about__mark.about-target {
  width: min(100%, clamp(340px, 32vw, 392px)) !important;
  min-height: clamp(460px, 46vw, 520px) !important;
}

#sobre-mi .about-target__board {
  width: min(76%, 276px) !important;
}

.contact {
  padding-block: clamp(2.5rem, 4.8vw, 4.8rem) !important;
}

.contact__content {
  min-height: clamp(360px, 31vw, 420px) !important;
  padding: clamp(1.75rem, 3.5vw, 3.5rem) !important;
}

.contact__voucher-stage {
  top: clamp(7.8rem, 11vw, 10.2rem) !important;
}

.site-footer {
  padding-block: clamp(1.2rem, 2vw, 1.7rem) !important;
}

@media (max-width: 1280px) {
  :root { --container: 1040px; }
  h1 { font-size: clamp(2.75rem, 4.65vw, 4.55rem); }
  h2, #casos .section-heading h2 { font-size: clamp(2.05rem, 4.1vw, 4rem) !important; }
  .hero__content { grid-template-columns: minmax(0, 1fr) minmax(300px, 372px) !important; }
  .services-deck { max-width: 960px !important; }
  .service-card { aspect-ratio: 5 / 6.35 !important; }
}

@media (max-width: 1200px) {
  :root { --container: 984px; }
  .hero { min-height: auto; }
  .hero__content { gap: clamp(1.35rem, 3vw, 2.7rem) !important; }
  .hero__panel { min-height: 348px; }
  .elevator-scene { min-height: 170px; }
  .elevator-visual { height: 170px; }
  .services-grid { gap: 1rem !important; }
  .experience-panel { grid-template-columns: minmax(0, .86fr) minmax(340px, 1.14fr); }
}

@media (max-width: 1024px) {
  .nav-menu { gap: 0; padding: .22rem; }
  .hero__content,
  .experience-panel,
  .trajectory-layout,
  #casos .split-layout,
  .split-layout,
  .about {
    grid-template-columns: 1fr !important;
  }
  .hero__panel--intro { justify-self: start !important; width: min(100%, 520px) !important; }
  .services-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; max-width: 720px; margin-inline: auto; }
  .service-card { aspect-ratio: 5 / 6.55 !important; }
  .experience-machine { max-width: 720px; }
  #sobre-mi .about__mark.about-target { justify-self: center; }
}

@media (max-width: 860px) {
  .nav-menu { inset: var(--header-h) 1rem auto; }
}

@media (max-width: 768px) {
  h1 { max-width: 13ch; font-size: clamp(2.45rem, 9vw, 3.8rem); }
  .section-heading { margin-bottom: clamp(1.2rem, 4vw, 1.8rem); }
  .hero__content { padding-block: clamp(1.5rem, 5vw, 2.5rem); }
  .hero__panel--intro { justify-self: center !important; }
  .contact__content { grid-template-columns: 1fr !important; }
}

@media (max-width: 640px) {
  :root { --header-h: 58px; }
  .logo { width: auto; min-width: 0; max-width: none; flex-basis: auto; height: auto; min-height: 0; }
  .logo img { width: clamp(112px, 32vw, 132px); height: auto; max-width: none; max-height: none; object-fit: contain; display: block; }
  .nav-menu { inset: var(--header-h) .625rem auto; }
  .container { width: min(100% - 1.25rem, var(--container)); }
  .services-grid { grid-template-columns: 1fr !important; max-width: min(100%, 340px) !important; }
  .service-card { aspect-ratio: 5 / 6.15 !important; }
  .service-card__graphic { width: min(62%, 150px) !important; }
  .service-card__title { min-height: auto !important; }
  .service-card__text { min-height: auto !important; }
  .contact__content { min-height: 590px !important; }
}

@media (max-width: 480px) {
  h1 { font-size: clamp(2.25rem, 12vw, 3.25rem); }
  h2, #casos .section-heading h2 { font-size: clamp(2rem, 11vw, 3rem) !important; }
  .hero__panel { min-height: 0 !important; }
  .panel-footer { font-size: .68rem !important; }
  #sobre-mi .about__mark.about-target { width: min(100%, 330px) !important; min-height: 470px !important; }
  .contact__benefit-modal { padding: 12px !important; }
}

/* Social links: restrained, editorial access points for the footer. */
.social-links {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: .62rem;
}

.social-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 999px;
  background: #0a0a0a;
  color: inherit;
  line-height: 1;
  transition: transform .24s ease, border-color .24s ease, background-color .24s ease, box-shadow .24s ease;
}

.social-link img {
  width: 20px;
  height: 20px;
  object-fit: contain;
  display: block;
  opacity: 1;
  filter: none;
  mix-blend-mode: normal;
}

.social-link:hover {
  transform: translateY(-2px);
  border-color: rgba(227,31,38,.58);
  background: #000;
  box-shadow: 0 12px 28px rgba(0,0,0,.22);
}

.social-link:focus-visible {
  outline: 2px solid var(--red);
  outline-offset: 3px;
}

.footer__copyright {
  min-width: max-content;
}

.footer__location {
  color: rgba(16, 19, 24, .58);
  font-size: .82rem;
  font-weight: 650;
  letter-spacing: .01em;
  text-align: center;
}

.footer__actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 1rem;
  margin-left: auto;
}

.social-links--footer {
  justify-content: center;
}

.social-links--footer .social-link {
  width: 40px;
  height: 40px;
  border-color: rgba(255,255,255,.16);
  background: #0a0a0a;
}

.social-links--footer .social-link img {
  width: 19px;
  height: 19px;
}

.social-links--footer .social-link:hover {
  background: #000;
  border-color: rgba(227,31,38,.58);
  box-shadow: 0 10px 24px rgba(0,0,0,.13);
}

.footer__top-link {
  white-space: nowrap;
}

@media (max-width: 640px) {
  .footer__content {
    align-items: center !important;
    text-align: center;
    gap: .8rem;
  }

  .footer__copyright {
    min-width: 0;
  }

  .footer__location {
    font-size: .78rem;
  }

  .footer__actions {
    flex-direction: column;
    gap: .65rem;
    margin-left: 0;
  }

  .social-links--footer {
    margin-inline: 0;
  }
}

/* Header/hero spacing correction: remove the oversized empty band before the hero grid/content. */
:root {
  --header-h: clamp(60px, 4.6vw, 68px);
}

.site-header .navbar {
  min-height: var(--header-h);
  padding-block: 0;
}

.hero.section {
  margin-top: 0;
  min-height: min(650px, calc(100svh - var(--header-h)));
  padding-top: clamp(24px, 3vw, 40px);
  padding-bottom: clamp(1.75rem, 3vw, 2.4rem);
}

.hero .hero__grid {
  inset: clamp(.95rem, 2vw, 1.7rem) 5% 5%;
}

.hero .hero__content {
  padding-top: 0;
  padding-bottom: clamp(1.4rem, 2.8vw, 2.65rem);
}

@media (max-width: 768px) {
  .hero.section {
    padding-top: clamp(.55rem, 2.8vw, 1rem);
  }

  .hero .hero__grid {
    inset: clamp(.75rem, 3.5vw, 1.25rem) .75rem 6%;
  }

  .hero .hero__content {
    padding-top: 0;
  }
}

@media (max-width: 640px) {
  :root {
    --header-h: 58px;
  }
}

/* Mobile UX refinement: keep desktop interactions intact while making phone screens direct, compact and optional. */
.trajectory-mobile-spin {
  display: none;
}

@media (max-width: 768px) {
  html,
  body {
    max-width: 100%;
    overflow-x: hidden;
  }

  .section {
    padding-block: clamp(2.6rem, 10vw, 4.2rem);
  }

  .hero.section {
    min-height: auto !important;
    padding-top: clamp(.8rem, 3vw, 1.15rem) !important;
    padding-bottom: clamp(2rem, 7vw, 3rem) !important;
  }

  .hero .hero__content {
    display: block;
    padding-block: clamp(1.1rem, 4vw, 1.8rem) !important;
  }

  .hero__copy {
    max-width: 100%;
  }

  .hero__copy::after,
  .hero__grid,
  .hero__shape,
  .hero__panel,
  .hero__panel--intro {
    display: none !important;
  }

  .hero h1 {
    max-width: 11.5ch;
    font-size: clamp(2.35rem, 10.5vw, 3.35rem) !important;
    line-height: .92;
    letter-spacing: -.07em;
  }

  .hero__text {
    max-width: 31ch;
    margin-top: .9rem;
    font-size: clamp(.98rem, 4vw, 1.08rem) !important;
    line-height: 1.42;
  }

  .hero__actions {
    width: 100%;
    margin-top: 1.15rem;
    gap: .6rem;
  }

  .hero__actions .button {
    flex: 1 1 100%;
    min-height: 48px;
    justify-content: center;
  }

  .services-section {
    padding-block: clamp(2.8rem, 10vw, 4rem) !important;
  }

  .services-deck__trigger {
    display: none !important;
  }

  .services-grid {
    grid-template-columns: 1fr !important;
    max-width: 100% !important;
    gap: .78rem !important;
  }

  .service-card,
  .services-deck.is-revealed .service-card {
    aspect-ratio: auto !important;
    min-height: 0 !important;
    height: auto !important;
    transform: none !important;
    filter: none !important;
    cursor: default;
  }

  .service-card__inner,
  .services-deck.is-revealed .service-card__inner {
    position: relative !important;
    inset: auto !important;
    min-height: 0;
    transform: none !important;
    transition: none !important;
  }

  .service-card__back {
    display: none !important;
  }

  .service-card__front {
    position: relative !important;
    display: grid !important;
    grid-template-columns: auto 1fr !important;
    grid-template-rows: auto auto auto !important;
    align-items: start;
    gap: .15rem .78rem;
    min-height: 0 !important;
    padding: .98rem !important;
    transform: none !important;
    backface-visibility: visible !important;
  }

  .service-card__index {
    grid-column: 1;
    grid-row: 1 / span 3;
    width: 2.35rem;
    height: 2.35rem;
    display: inline-grid;
    place-items: center;
    border: 1px solid rgba(0,0,0,.14);
    border-radius: 999px;
    font-size: .72rem !important;
  }

  .service-card__graphic {
    display: none !important;
  }

  .service-card__title {
    grid-column: 2;
    min-height: 0 !important;
    margin: 0;
    font-size: clamp(1.06rem, 4.7vw, 1.26rem) !important;
    line-height: 1.04 !important;
  }

  .service-card__text {
    grid-column: 2;
    min-height: 0 !important;
    margin-top: .18rem;
    font-size: .9rem !important;
    line-height: 1.35 !important;
  }

  .experience-band {
    padding-block: clamp(2.7rem, 10vw, 4rem) !important;
  }

  .experience-panel {
    gap: 1.25rem !important;
  }

  .experience-machine {
    max-width: 100% !important;
    padding: .95rem !important;
  }

  .experience-machine__header small,
  .experience-lever {
    display: none !important;
  }

  .experience-metrics {
    gap: .58rem !important;
  }

  .experience-metrics .metric-item {
    padding: .78rem .82rem !important;
  }

  .experience-metrics strong {
    font-size: clamp(2rem, 10vw, 3rem) !important;
    line-height: .9;
  }

  .trajectory-section {
    padding-block: clamp(2.9rem, 10vw, 4.3rem) !important;
  }

  .trajectory-layout {
    display: block !important;
  }

  .trajectory-desktop-ui,
  .trajectory-wheel-panel,
  .trajectory-wheel-wrap,
  .trajectory-pointer,
  .trajectory-center {
    display: none !important;
  }

  .trajectory-card {
    width: 100%;
    margin-top: 1.15rem;
    padding: clamp(1rem, 4.5vw, 1.25rem) !important;
    border-radius: 22px !important;
    max-height: none !important;
    overflow: visible !important;
  }

  .trajectory-card__title {
    font-size: clamp(1.55rem, 7.2vw, 2.05rem) !important;
    line-height: 1.02 !important;
  }

  .trajectory-card__block {
    margin-top: .75rem !important;
  }

  .trajectory-card__block p,
  .trajectory-card__meta strong,
  .trajectory-card__closing {
    line-height: 1.42 !important;
  }

  .trajectory-card__closing {
    margin-top: .95rem !important;
  }

  .trajectory-mobile-spin {
    display: inline-flex;
    width: 100%;
    justify-content: center;
    margin-top: .9rem;
  }

  .about {
    display: flex !important;
    flex-direction: column-reverse;
    gap: 1.35rem !important;
  }

  #sobre-mi .about__mark.about-target {
    width: min(100%, 300px) !important;
    min-height: 330px !important;
    padding: .9rem !important;
  }

  #sobre-mi .about-target__board {
    width: min(68%, 190px) !important;
  }

  .contact {
    padding-block: clamp(2.4rem, 9vw, 3.6rem) !important;
  }

  .contact__content {
    display: block !important;
    min-height: 0 !important;
    padding: clamp(1.35rem, 5vw, 1.75rem) !important;
    border-radius: 24px !important;
  }

  .contact__lamp-scene,
  .contact__lamp-switch,
  .contact__voucher-stage,
  .contact__constellation,
  .contact__light-cone,
  .contact__light-pool {
    display: none !important;
  }

  .contact__copy {
    max-width: 100%;
  }

  .contact__copy h2 {
    font-size: clamp(2rem, 10vw, 2.75rem) !important;
    line-height: .98 !important;
  }

  .contact__copy p {
    font-size: .98rem !important;
    line-height: 1.45 !important;
  }

  .contact__whatsapp-cta {
    width: 100%;
    justify-content: center;
    min-height: 50px;
    margin-top: 1rem;
  }

  .site-footer {
    padding-block: 1.1rem !important;
    text-align: center;
  }
}

@media (max-width: 640px) {
  .section-heading h2,
  .experience-panel h2,
  .trajectory-heading h2 {
    font-size: clamp(1.95rem, 9.8vw, 2.65rem) !important;
    line-height: .98 !important;
  }

  .section-heading p,
  .trajectory-heading p {
    font-size: .96rem !important;
    line-height: 1.45 !important;
  }
}

@media (max-width: 480px) {
  .container {
    width: min(100% - 1.1rem, var(--container));
  }

  .hero h1 {
    font-size: clamp(2.12rem, 11.5vw, 2.95rem) !important;
  }

  .hero__actions .button {
    padding-inline: 1rem;
  }

  #casos .case-item {
    padding-block: 1rem !important;
  }
}

@media (max-width: 390px) {
  .hero h1 {
    font-size: clamp(2rem, 11vw, 2.55rem) !important;
  }

  .service-card__front {
    padding: .86rem !important;
  }

  #sobre-mi .about__mark.about-target {
    min-height: 300px !important;
  }
}
