/* Source: site-fonts.css?v=3.33 */
/* Same licensed typefaces already included by this project. No external font request. */
@font-face{font-family:Inter;src:url('./feedback/fonts/inter-latin.woff2') format('woff2');font-style:normal;font-weight:100 900;font-display:swap}
@font-face{font-family:Anton;src:url('./feedback/fonts/anton-latin.woff2') format('woff2');font-style:normal;font-weight:400;font-display:swap}
.avatar-poster{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none}
.avatar-load-status{position:absolute;z-index:14;left:50%;bottom:62px;transform:translateX(-50%);max-width:80%;margin:0;padding:6px 12px;border-radius:18px;background:#050608b8;color:#c8bad8;font-size:10px;line-height:1.5;text-align:center;pointer-events:none}
.avatar-load-status[hidden]{display:none!important}

/* Source: styles.css */

:root {
  --black: #050608;
  --black-soft: #0a0b0f;
  --white: #eef1f4;
  --paper: #eef1f3;
  --ink: #0a0b0e;
  --muted: #9ca1aa;
  --line: rgba(255, 255, 255, 0.22);
  --line-dark: rgba(8, 9, 12, 0.18);
  --purple: #7f55ff;
  --pink: #ff3abf;
  --orange: #ff9d5c;
  --radius-lg: 44px;
  --page: clamp(24px, 4vw, 68px);
  --max: 1800px;
}

* {
  box-sizing: border-box;
}

html {
  overflow-x: clip;
  scroll-behavior: smooth;
  scrollbar-gutter: stable;
  background: var(--black);
}

body {
  margin: 0;
  background: var(--black);
  color: var(--white);
  font-family: "Inter", Arial, sans-serif;
  overflow-x: clip;
}

body.is-loaded [data-reveal] {
  transition:
    opacity 0.85s cubic-bezier(.2,.72,.2,1),
    transform 0.9s cubic-bezier(.2,.72,.2,1),
    filter 0.9s cubic-bezier(.2,.72,.2,1);
}

[data-reveal] {
  opacity: 1;
  transform: none;
  filter: none;
}

body.is-loaded [data-reveal] {
  opacity: 0;
  transform: translateY(32px);
  filter: blur(8px);
}

body.is-loaded [data-reveal].is-visible {
  opacity: 1;
  transform: translateY(0);
  filter: blur(0);
}

a {
  color: inherit;
  text-decoration: none;
}

button,
input,
textarea {
  font: inherit;
}

img,
model-viewer {
  display: block;
}

.theme-dark {
  background: var(--black);
  color: var(--white);
}

.theme-light {
  background: var(--paper);
  color: var(--ink);
}

.cursor-glow {
  position: fixed;
  z-index: 999;
  width: 240px;
  height: 240px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(132, 84, 255, .09), transparent 67%);
  transform: translate(-50%, -50%);
  pointer-events: none;
  opacity: 0;
  transition: opacity .25s ease;
  mix-blend-mode: screen;
}

/* HERO */

.hero {
  position: relative;
  min-height: 100svh;
  max-height: 1050px;
  overflow: hidden;
  isolation: isolate;
  padding: 18px var(--page) 28px;
}

.hero::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -4;
  background:
    radial-gradient(circle at 50% 52%, rgba(98, 64, 136, .14), transparent 24%),
    linear-gradient(#050608, #050608);
}

.hero-nav {
  position: relative;
  z-index: 20;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  align-items: center;
  padding: 6px 4.5% 4px;
  font-size: 12px;
  font-weight: 900;
  line-height: 1;
}

.hero-nav a {
  position: relative;
  width: fit-content;
  padding-block: 8px;
}

.hero-nav a:nth-child(1) { justify-self: start; }
.hero-nav a:nth-child(2) { justify-self: center; }
.hero-nav a:nth-child(3) { justify-self: center; }
.hero-nav a:nth-child(4) { justify-self: end; }

.hero-nav a::after {
  content: "";
  position: absolute;
  left: 0;
  right: 100%;
  bottom: 2px;
  height: 1px;
  background: currentColor;
  transition: right .2s ease;
}

.hero-nav a:hover::after,
.hero-nav a:focus-visible::after {
  right: 0;
}

.hero-title,
.section-title,
.contact-title {
  font-family: "Anton", Impact, Haettenschweiler, "Arial Narrow Bold", sans-serif;
  font-weight: 400;
  text-transform: uppercase;
}

.hero-title {
  position: absolute;
  z-index: 2;
  top: 100px;
  left: 50%;
  transform: translateX(-50%);
  width: max-content;
  margin: 0;
  color: #d9dde2;
  font-size: clamp(105px, 13.2vw, 218px);
  line-height: .82;
  letter-spacing: -.015em;
  white-space: nowrap;
  user-select: none;
}

.hero-title[data-reveal] {
  transform: translate(-50%, 32px);
}

.hero-title[data-reveal].is-visible {
  transform: translate(-50%, 0);
}

.hero-copy {
  position: absolute;
  z-index: 12;
  top: 39%;
  left: var(--page);
  max-width: 260px;
  margin: 0;
  font-size: clamp(14px, 1.08vw, 18px);
  font-weight: 900;
  line-height: 1.42;
  letter-spacing: -.04em;
}

.avatar-stage {
  --avatar-safe-top: clamp(96px, 8vh, 118px);
  position: absolute;
  z-index: 8;
  left: 50%;
  top: -42vh;
  bottom: -65vh;
  width: min(50vw, 760px);
  height: auto;
  transform: translateX(-50%);
  pointer-events: none;
}

.avatar-halo {
  position: absolute;
  z-index: -1;
  left: 50%;
  top: 39%;
  width: 56%;
  aspect-ratio: 1;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  border: 1px dashed rgba(255, 255, 255, .08);
  background:
    radial-gradient(circle, rgba(111, 73, 157, .18), rgba(77, 46, 109, .055) 45%, transparent 70%);
  filter: blur(.2px);
}

.avatar-model {
  position: absolute;
  inset: 0 -25% -8%;
  width: 150%;
  height: 108%;
  background: transparent;
  --poster-color: transparent;
  filter: drop-shadow(0 32px 28px rgba(0,0,0,.42));
  transform:
    translate3d(
      var(--model-x, 0px),
      calc(var(--model-y, 0px) + var(--avatar-safe-top)),
      0
    )
    scale(1.28);
  transform-origin: 50% 66%;
  transition: transform .16s ease-out;
}

/* V3.19: the mesh stays visible; skeletal clips blend inside one viewer.
   No CSS opacity crossfade / duplicate silhouette during a CTA transition. */
.hero-cta {
  position: absolute;
  z-index: 15;
  top: 42%;
  right: clamp(7%, 10vw, 180px);
}

.gradient-button {
  --tx: 0px;
  --ty: 0px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-width: 188px;
  padding: 16px 22px;
  border: 2px solid transparent;
  border-radius: 999px;
  background:
    linear-gradient(var(--black), var(--black)) padding-box,
    linear-gradient(105deg, var(--purple), var(--pink), var(--orange)) border-box;
  box-shadow:
    0 0 34px rgba(180, 60, 255, .14),
    inset 0 0 25px rgba(255,255,255,.02);
  color: var(--white);
  font-size: 13px;
  font-weight: 900;
  transform: translate(var(--tx), var(--ty));
  transition: filter .2s ease, box-shadow .2s ease, transform .1s linear;
}

.gradient-button:hover,
.gradient-button:focus-visible {
  filter: brightness(1.14);
  box-shadow:
    0 0 44px rgba(181, 63, 255, .23),
    0 0 84px rgba(255, 56, 191, .08);
}

.hero-meta {
  position: absolute;
  z-index: 14;
  left: var(--page);
  right: var(--page);
  bottom: 24px;
  display: flex;
  justify-content: space-between;
  gap: 20px;
  padding-top: 12px;
  border-top: 1px solid rgba(255,255,255,.11);
  color: rgba(255,255,255,.43);
  font-size: 8px;
  font-weight: 700;
  letter-spacing: .15em;
}

/* CLIENTS / LOGOS */

.clients {
  position: relative;
  padding: 105px 0 125px;
  overflow: hidden;
  border-top: 1px solid rgba(255,255,255,.08);
}

.clients-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 0 var(--page) 42px;
}

.section-kicker {
  margin: 0;
  color: rgba(255,255,255,.58);
  font-family: "Inter", Arial, sans-serif;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .15em;
}

.logo-motion-toggle {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  flex-shrink: 0;
  padding: 10px 0 10px 12px;
  border: 0;
  background: transparent;
  color: rgba(255,255,255,.48);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .1em;
  cursor: pointer;
  transition: color .2s ease;
}

.logo-motion-toggle[hidden],
.logo-motion-icon--play {
  display: none;
}

.logo-motion-toggle:hover {
  color: var(--white);
}

.logo-motion-toggle:focus-visible {
  outline: 2px solid var(--white);
  outline-offset: 5px;
}

.logo-motion-toggle[aria-pressed="true"] .logo-motion-icon--pause {
  display: none;
}

.logo-motion-toggle[aria-pressed="true"] .logo-motion-icon--play {
  display: block;
}

.logo-marquee {
  --logo-gap: clamp(26px, 3.2vw, 54px);
  width: 100%;
  overflow: hidden;
  -webkit-mask-image: linear-gradient(to right, transparent, black 7%, black 93%, transparent);
  mask-image: linear-gradient(to right, transparent, black 7%, black 93%, transparent);
}

.logo-track {
  display: flex;
  width: max-content;
  /* A shared dark backdrop lets the Hio screenshot blend without a black box. */
  background: var(--black);
  animation: marquee 48s linear infinite;
}

.logo-group {
  display: flex;
  align-items: center;
  justify-content: space-around;
  flex-shrink: 0;
  gap: var(--logo-gap);
  min-width: 100vw;
  margin: 0;
  padding: 0 calc(var(--logo-gap) / 2);
  list-style: none;
}

.logo-marquee.is-paused .logo-track {
  animation-play-state: paused;
}

/* The logo slots are invisible layout helpers: no borders, cards or backgrounds. */
.logo-item {
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  width: var(--logo-width, clamp(104px, 10vw, 146px));
  height: 96px;
  padding: 10px 4px;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  opacity: .78;
  transition: opacity .25s ease, transform .25s ease;
}

.logo-item:hover {
  opacity: 1;
  transform: translateY(-3px);
}

.company-logo {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
  filter: brightness(0) invert(1);
}

.logo-item--lcmd .company-logo {
  max-width: 150px;
  max-height: 52px;
}

.logo-item--ffuf .company-logo {
  max-width: 136px;
  max-height: 38px;
  /* Original white vector mark from Greg's presentation; no backdrop to remove. */
  filter: none;
}

.logo-item--diconium .company-logo {
  /* The supplied historic lockup has two lines; do not flatten the subtitle. */
  max-width: 196px;
  max-height: 67px;
}

.logo-item--hio {
  /* Blend at the slot level so its opacity does not isolate the black backdrop. */
  mix-blend-mode: screen;
}

.logo-item--hio .company-logo {
  max-width: 88px;
  max-height: 76px;
  filter: none;
}

.logo-item--greg .company-logo {
  max-width: 52px;
  max-height: 62px;
  filter: none;
}

.logo-item--yourwork .company-logo {
  /* The original app-icon tile is part of the logo, not an added UI container. */
  max-width: 68px;
  max-height: 68px;
  filter: none;
}

/* This is a network-failure label, not a simulated/recreated brand logo. */
.logo-fallback {
  max-width: 100%;
  color: var(--white);
  text-align: center;
  font-family: "Inter", Arial, sans-serif;
  font-size: clamp(19px, 2vw, 25px);
  font-weight: 600;
  line-height: 1.25;
}

.company-logo[hidden],
.logo-fallback[hidden] {
  display: none;
}

@keyframes marquee {
  to { transform: translateX(-50%); }
}

@media (max-width: 760px) {
  .clients {
    padding: 76px 0 86px;
  }

  .clients-heading {
    padding-bottom: 28px;
  }

  .logo-item {
    height: 84px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .logo-motion-toggle {
    display: none;
  }

  .logo-marquee {
    -webkit-mask-image: none;
    mask-image: none;
  }

  .logo-track {
    width: 100%;
    animation: none;
    transform: none;
  }

  .logo-group {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    min-width: 0;
    width: 100%;
    gap: 20px clamp(20px, 3vw, 48px);
    padding-inline: var(--page);
  }

  .logo-group .logo-item {
    width: 100%;
    max-width: 280px;
    justify-self: center;
  }

  .logo-group[aria-hidden="true"] {
    display: none;
  }
}

/* GLOBAL HEADINGS */

.section-title {
  margin: 0;
  font-size: clamp(88px, 12vw, 195px);
  line-height: .86;
  letter-spacing: -.015em;
}

.section-title--center {
  text-align: center;
}

.section-title--dark {
  color: var(--ink);
  text-align: center;
}

/* PROJECT STACK — native sticky siblings, no scroll hijacking */

.projects {
  position: relative;
  isolation: isolate;
  overflow: visible;
  padding: 120px var(--page) 100px;
}

.projects-heading-wrap {
  max-width: var(--max);
  margin: 0 auto 80px;
}

.projects-intro {
  max-width: 520px;
  margin: 32px auto 0;
  color: rgba(255,255,255,.52);
  text-align: center;
  font-size: 14px;
  line-height: 1.7;
}

.project-stack {
  --stack-top: clamp(20px, 3.2svh, 44px);
  --stack-tab: clamp(62px, 9svh, 100px);
  --stack-offset: var(--stack-tab);
  --stack-bottom: 24px;
  /* V3.16: 25% taller than V3.15; cap only on very short viewports. */
  --card-base-height: min(720px, calc(100svh - var(--stack-top) - (var(--stack-count) - 1) * var(--stack-offset) - var(--stack-bottom)));
  --card-height: min(calc(var(--card-base-height) * 1.25), calc(100svh - var(--stack-top) - var(--stack-bottom)));
  max-width: 1440px;
  margin: 0 auto;
  --stack-tail: clamp(110px, 22svh, 280px);
  padding-bottom: 0;
}

/* A real in-flow spacer extends the sticky containing block. Padding alone
   is outside its content box and lets the last card unpin too early. */
.project-stack::after { content: ""; display: block; height: var(--stack-tail); }

/* This element (not its child) must be sticky: all five cards need the SAME
   containing block. A separate short parent per card prevents real overlap. */
.project-step {
  position: sticky;
  top: calc(var(--stack-top) + var(--index) * var(--stack-offset));
  z-index: calc(10 + var(--index));
  height: var(--card-height);
  margin-bottom: clamp(48px, 10svh, 110px);
  scroll-margin-top: calc(var(--stack-top) + var(--index) * var(--stack-offset));
}

.project-step:last-child { margin-bottom: 0; }

.project-card {
  height: 100%;
  display: grid;
  grid-template-rows: calc(var(--stack-tab) - 2px) minmax(0, 1fr);
  padding: 0 clamp(16px, 1.8vw, 28px) clamp(16px, 1.8vw, 28px);
  border: 2px solid rgba(230,234,239,.66);
  border-radius: var(--radius-lg);
  background: var(--black);
  overflow: hidden;
  box-shadow: 0 -12px 30px rgba(0,0,0,.12);
}

.project-card__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-width: 0;
  gap: 20px;
}

.project-card__identity {
  display: flex;
  align-items: center;
  min-width: 0;
  gap: clamp(14px, 1.35vw, 22px);
}

.project-number {
  flex-shrink: 0;
  font-family: "Anton", Impact, "Arial Narrow", sans-serif;
  font-size: calc(var(--stack-tab) * .7);
  font-weight: 400;
  line-height: 1;
  letter-spacing: -.035em;
  color: #dce1e7;
  font-variant-numeric: tabular-nums;
}

.project-card__identity div { display: grid; gap: 5px; min-width: 0; }
.project-card__identity h3 {
  margin: 0;
  font-size: clamp(13px, 1.1vw, 16px);
  font-weight: 900;
  line-height: 1.15;
  text-transform: uppercase;
}
.project-card__identity span:not(.project-number) {
  color: rgba(255,255,255,.55);
  font-size: 10px;
  line-height: 1.25;
}

.outline-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  gap: 12px;
  min-width: 180px;
  padding: 11px 22px;
  border: 2px solid rgba(255,255,255,.76);
  border-radius: 999px;
  background: transparent;
  color: var(--white);
  text-align: center;
  font-size: 12px;
  line-height: 1.15;
  font-weight: 900;
  cursor: pointer;
  transition: background .2s ease, color .2s ease;
}
.outline-button:hover { background: var(--white); color: var(--ink); }
.outline-button:focus-visible,
.case-dialog button:focus-visible {
  outline: 3px solid #b7a0ff;
  outline-offset: 4px;
}

.project-mosaic {
  display: grid;
  grid-template-columns: 2fr 1fr;
  grid-template-rows: minmax(0, 1fr) minmax(0, 1fr);
  min-height: 0;
  min-width: 0;
  gap: 12px;
  border-radius: 26px;
}

.project-visual {
  position: relative;
  min-width: 0;
  min-height: 0;
  margin: 0;
  overflow: hidden;
  border-radius: 24px;
  background: #111116;
}
.project-visual--main { grid-row: 1 / span 2; }
.project-visual img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.project-step--playjoob .project-visual--main img { object-position: 66% 20%; }
.project-step--playjoob .project-visual--secondary { background: #19181e; }
.project-step--playjoob .project-visual--secondary img { object-fit: contain; }
.project-step--lcmd .project-visual--main { background: #000; }
.project-step--lcmd .project-visual--main img { object-fit: contain; }
.project-step--lcmd .project-visual--secondary img { object-position: 60% 30%; }
.project-step--hyo .project-visual--main { background: #eff3f9; }
.project-step--hyo .project-visual--main img { object-fit: contain; }
.project-step--hyo .project-visual--secondary { background: #0d141c; }
.project-step--hyo .project-visual--secondary img { object-fit: contain; }
.project-step--yourwork .project-visual--main { background: #f3f3f3; }
.project-step--yourwork .project-visual--main img { object-fit: contain; }
.project-step--yourwork .project-visual--secondary { background: #151e23; }
.project-step--yourwork .project-visual--secondary img { object-fit: contain; }
.project-step--ffuf .project-visual { background: #0d0c12; }
.project-step--ffuf .project-visual:not(.project-visual--main) img { object-fit: contain; }

.project-insight {
  container-type: size;
  min-width: 0;
  min-height: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
  padding: clamp(14px, 2.4svh, 26px) clamp(16px, 2vw, 28px);
  border-radius: 24px;
  background: #131019;
  overflow: hidden;
}
.project-step--lcmd .project-insight { background: #101b1b; }
.project-step--hyo .project-insight { background: #18131b; }
.project-step--yourwork .project-insight { background: #131c18; }
.insight-label {
  font-size: 10px;
  line-height: 1.3;
  font-weight: 700;
  letter-spacing: .12em;
  color: #a39aaf;
}
.insight-value {
  margin: 0;
  font-family: "Anton", Impact, sans-serif;
  font-size: clamp(30px, 34cqh, 72px);
  line-height: 1.05;
  font-weight: 400;
  letter-spacing: -.025em;
  color: #d8c9ff;
}
.project-insight--nps .insight-value {
  font-size: clamp(26px, 29cqh, 62px);
  white-space: nowrap;
  color: #73d5c6;
}
.project-insight--statement .insight-value {
  font-family: "Inter", Arial, sans-serif;
  font-size: clamp(20px, 17cqh, 35px);
  line-height: 1.14;
  font-weight: 700;
  letter-spacing: -.04em;
}
.project-step--hyo .insight-value { color: #f5cedb; }
.project-step--yourwork .insight-value { color: #cfebd5; }
.insight-note {
  max-width: 34ch;
  margin: 0;
  color: #b3adb9;
  font-size: 11px;
  line-height: 1.55;
}
@container (max-height: 125px) {
  .insight-note { display: none; }
  .insight-value { font-size: clamp(28px, 45cqh, 52px); }
  .project-insight--statement .insight-value { font-size: clamp(19px, 25cqh, 27px); }
  .insight-label { font-size: 9px; letter-spacing: .07em; }
}

/* Case studies open above the existing page; closing returns to the same stack. */
html.case-open { overflow: hidden; }
.case-dialog {
  position: fixed;
  inset: 0;
  width: min(1180px, calc(100% - 48px));
  max-width: none;
  height: auto;
  max-height: calc(100svh - 48px);
  margin: auto;
  padding: 0;
  border: 1px solid #47434d;
  border-radius: 28px;
  background: #0d0e12;
  color: var(--white);
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
}
.case-dialog::backdrop { background: rgba(0,0,0,.82); backdrop-filter: blur(6px); }
.case-dialog__bar {
  position: sticky;
  top: 0;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 74px;
  padding: 14px clamp(20px, 4vw, 48px);
  border-bottom: 1px solid #29282f;
  background: #0d0e12;
}
.case-dialog__counter { color: #a8a5ae; font-size: 10px; letter-spacing: .12em; font-weight: 700; }
.case-dialog__controls { display: flex; align-items: center; gap: 8px; }
.case-dialog button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 40px;
  border: 1px solid #4c4853;
  background: transparent;
  color: var(--white);
  border-radius: 999px;
  cursor: pointer;
}
.case-nav { width: 40px; font-size: 18px; }
.case-close { padding-inline: 18px; margin-left: 8px; gap: 16px; font-size: 10px; font-weight: 800; }
.case-close span { font-size: 24px; line-height: 1; font-weight: 400; }
.case-dialog button:hover:not(:disabled) { background: var(--white); color: var(--ink); }
.case-dialog button:disabled { opacity: .28; cursor: default; }
.case-detail { padding: 40px clamp(20px, 4vw, 48px) 48px; }
.case-detail__category { margin: 0 0 18px; color: #afa4c1; font-size: 12px; }
.case-detail__title {
  margin: 0;
  font-family: "Anton", Impact, sans-serif;
  font-size: clamp(56px, 7vw, 100px);
  line-height: 1.08;
  letter-spacing: -.02em;
  font-weight: 400;
}
.case-detail__meta { display: flex; flex-wrap: wrap; gap: 24px 64px; margin: 30px 0; }
.case-detail__meta span { color: #8d8897; font-size: 9px; letter-spacing: .14em; }
.case-detail__meta p { margin: 8px 0 0; font-size: 12px; color: #d6d2dd; }
.case-detail__lead { max-width: 850px; margin: 0; font-size: clamp(17px, 1.7vw, 21px); line-height: 1.65; color: #e3dfea; }
.case-story { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; margin-top: 38px; }
.case-story h3, .case-tools h3 { margin: 0 0 12px; font-size: 16px; line-height: 1.4; }
.case-story p { margin: 0; font-size: 14px; line-height: 1.8; color: #b4afbf; }
.case-tools { margin-block: 32px 40px; }
.case-tools ul { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; padding: 0; margin: 0; }
.case-tools li { padding: 8px 12px; border-radius: 8px; background: #202027; color: #d9d5e1; font-size: 11px; }
.case-gallery { display: grid; gap: 32px; }
.case-gallery__item { margin: 0; }
.case-gallery__item img { width: 100%; height: auto; border-radius: 16px; background: #111; }
.case-gallery__item figcaption { display: grid; gap: 6px; margin-top: 14px; }
.case-gallery__item strong { font-size: 13px; font-weight: 700; }
.case-gallery__item span { font-size: 11px; line-height: 1.5; color: #95909e; }


/* Click-to-load video: local poster first, no YouTube request before consent. */
.case-story p.case-story__milestone { margin-top: 16px; color: #e2d5ff; }
.case-story__milestone strong { font-weight: 600; }
.case-video { margin: 0 0 40px; }
.case-video__heading { display: flex; justify-content: space-between; align-items: flex-end; gap: 20px; margin-bottom: 18px; }
.case-video__eyebrow { margin: 0 0 8px; font-size: 10px; font-weight: 700; letter-spacing: .14em; color: #a39aaf; }
.case-video__heading h3 { margin: 0; font-size: clamp(18px, 2.2vw, 25px); font-weight: 600; line-height: 1.3; letter-spacing: -.025em; }
.case-video__external { flex-shrink: 0; display: inline-flex; align-items: center; gap: 10px; padding-block: 6px; font-size: 12px; color: #c9c2d7; text-decoration: underline; text-underline-offset: 4px; }
.case-video__external:hover { color: #fff; }
.case-video__frame { position: relative; width: 100%; aspect-ratio: 16 / 9; min-height: 200px; overflow: hidden; border-radius: 18px; background: #141318; }
.case-video--yourwork .case-video__frame { background: #f3f3f3; }
.case-video__poster { display: block; width: 100%; height: 100%; position: absolute; inset: 0; object-fit: cover; }
.case-video--yourwork .case-video__poster { object-fit: contain; }
.case-video__play { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px; background: rgba(0,0,0,.22); color: #fff; font-size: 11px; font-weight: 800; letter-spacing: .12em; text-shadow: 0 2px 12px #000; cursor: pointer; transition: background .2s ease; }
.case-video__play:hover { background: rgba(0,0,0,.12); }
.case-video__play-icon { display: grid; place-items: center; width: 76px; height: 76px; border-radius: 50%; background: #eef1f4; color: #131019; box-shadow: 0 8px 40px rgba(0,0,0,.25); transition: transform .2s ease; }
.case-video__play-icon svg { margin-left: 3px; }
.case-video__play:hover .case-video__play-icon { transform: scale(1.07); }
.case-video__play:focus-visible { outline: 3px solid #cbb8ff; outline-offset: -5px; }
.case-video__external:focus-visible { outline: 3px solid #cbb8ff; outline-offset: 4px; border-radius: 4px; }
.case-video__frame iframe { position: absolute; inset: 0; display: block; width: 100%; height: 100%; border: 0; background: #000; }
.case-video__frame iframe:focus-visible { outline: 3px solid #cbb8ff; outline-offset: -3px; }
.case-video__note, .case-video__local-note { margin: 12px 0 0; color: #a5a0af; font-size: 11px; line-height: 1.6; }
.case-video__local-note { color: #d7caeb; }
.case-video__local-note[hidden] { display: none; }
.case-video__local-note code { font-size: inherit; color: #eee4ff; }
@media (max-width: 700px) {
  .case-video__heading { align-items: flex-start; flex-direction: column; gap: 8px; }
  .case-video__frame { border-radius: 12px; }
  .case-video__play-icon { width: 62px; height: 62px; }
  .case-video__external { font-size: 11px; }
}
@media (prefers-reduced-motion: reduce) {
  .case-video__play, .case-video__play-icon { transition: none; }
  .case-video__play:hover .case-video__play-icon { transform: none; }
}

@media (max-width: 760px) {
  .project-stack {
    --stack-top: 14px;
    --stack-tab: clamp(60px, 8svh, 70px);
    --stack-bottom: 16px;
    --stack-tail: clamp(110px, 16svh, 200px);
  }
  .project-step { margin-bottom: 8svh; }
  .project-card {
    border-width: 1.5px;
    border-radius: 26px;
    padding: 0 12px 12px;
  }
  .project-card__header { gap: 10px; }
  .project-card__identity { gap: 9px; }
  .project-number { font-size: 35px; }
  .project-card__identity h3 { font-size: 11px; line-height: 1.12; }
  .project-card__identity span:not(.project-number) { font-size: 8px; line-height: 1.35; }
  .outline-button { min-width: 96px; min-height: 36px; padding: 9px 11px; gap: 5px; font-size: 9px; border-width: 1.5px; }
  .project-mosaic { grid-template-columns: 1fr 1fr; grid-template-rows: minmax(0, 1.4fr) minmax(0, 1fr); gap: 8px; border-radius: 16px; }
  .project-visual, .project-insight { border-radius: 16px; }
  .project-visual--main { grid-column: 1 / -1; grid-row: auto; }
  .project-step--ffuf .project-visual:not(.project-visual--main) img { object-fit: cover; object-position: center; }
  .project-insight { padding: 14px 12px; gap: 6px; }
  .insight-label { font-size: 8px; letter-spacing: .08em; }
  .insight-note { font-size: 9px; line-height: 1.45; }
  .project-insight--nps .insight-value { font-size: clamp(22px, 7vw, 38px); }
  .project-insight--statement .insight-value { font-size: clamp(17px, 4vw, 26px); }
  .case-dialog { width: calc(100% - 16px); max-height: calc(100svh - 16px); border-radius: 20px; }
  .case-dialog__bar { min-height: 66px; padding: 12px 16px; gap: 8px; }
  .case-dialog__counter { font-size: 8px; letter-spacing: .06em; }
  .case-dialog__controls { gap: 6px; }
  .case-nav { width: 34px; }
  .case-dialog button { height: 36px; }
  .case-close { margin-left: 2px; padding-inline: 12px; gap: 9px; }
  .case-detail { padding: 28px 20px 32px; }
  .case-detail__title { font-size: clamp(48px, 11vw, 74px); overflow-wrap: break-word; }
  .case-detail__meta { gap: 18px 24px; margin: 24px 0; }
  .case-detail__meta p { line-height: 1.5; }
  .case-story { grid-template-columns: 1fr; gap: 26px; margin-top: 28px; }
  .case-story p { font-size: 13px; }
  .case-gallery { gap: 26px; }
  .case-gallery__item img { border-radius: 10px; }
}

/* Keep a real overlap on short/landscape screens, but use a single pinning
   position so five header tabs cannot consume the whole viewport. */
@media (max-height: 580px) {
  .project-stack { --stack-top: 12px; --stack-offset: 0px; --stack-tab: 58px; --stack-bottom: 16px; }
  .project-card { border-radius: 26px; }
  .project-number { font-size: 40px; }
  .project-mosaic { grid-template-columns: 2fr 1fr; grid-template-rows: minmax(0, 1fr) minmax(0, 1fr); }
  .project-visual--main { grid-column: 1; grid-row: 1 / span 2; }
}

@media (prefers-reduced-motion: reduce) {
  /* Native positioning remains functional; there is no animated scale/parallax. */
  .project-card { transition: none; }
}

/* TESTIMONIALS */

.testimonials {
  position: relative;
  min-height: 760px;
  padding: 130px var(--page) 150px;
  overflow: hidden;
}

.testimonial-title {
  margin: 0;
  font-family: "Anton", Impact, sans-serif;
  font-size: clamp(70px, 7vw, 118px);
  line-height: .92;
  letter-spacing: -.01em;
  text-align: center;
}

.emoji-float {
  position: absolute;
  right: 15%;
  top: 160px;
  font-size: clamp(56px, 6vw, 96px);
  filter: saturate(.9);
  animation: emoji-bob 4.8s ease-in-out infinite;
}

@keyframes emoji-bob {
  50% { transform: translateY(-14px) rotate(5deg); }
}

.testimonial-grid {
  max-width: 1500px;
  margin: 90px auto 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
}

.testimonial-card {
  min-height: 260px;
  margin: 0;
  padding: 26px;
  border: 2px solid rgba(255,255,255,.62);
  border-radius: 34px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  background: rgba(255,255,255,.012);
}

.testimonial-card p {
  margin: 0;
  color: rgba(255,255,255,.77);
  font-size: 14px;
  line-height: 1.58;
}

.testimonial-card footer {
  display: flex;
  align-items: center;
  gap: 13px;
}

.avatar-placeholder {
  width: 54px;
  aspect-ratio: 1;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: #d8dce0;
  color: #202126;
  font-weight: 900;
}

.testimonial-card footer div {
  display: grid;
  gap: 4px;
}

.testimonial-card footer strong {
  font-size: 11px;
}

.testimonial-card footer small {
  color: rgba(255,255,255,.43);
  font-size: 8px;
}

/* SERVICES */

.services {
  padding: 110px var(--page) 135px;
}

.service-list {
  max-width: 1320px;
  margin: 78px auto 0;
  border-top: 1px solid var(--line-dark);
}

.service-row {
  display: grid;
  grid-template-columns: 140px 1fr;
  gap: 34px;
  padding: 34px 0;
  border-bottom: 1px solid var(--line-dark);
  transition: padding-left .25s ease, background .25s ease;
}

.service-row:hover {
  padding-left: 18px;
  background: rgba(9,10,13,.025);
}

.service-number {
  font-family: "Anton", Impact, sans-serif;
  font-size: 52px;
  line-height: 1;
}

.service-row h3 {
  margin: 0 0 8px;
  font-size: 18px;
  font-weight: 900;
}

.service-row p {
  max-width: 680px;
  margin: 0;
  color: rgba(10,11,14,.55);
  font-size: 14px;
  line-height: 1.55;
}

/* ABOUT */

.about {
  position: relative;
  min-height: 820px;
  padding: 150px var(--page);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.about-copy {
  position: relative;
  z-index: 3;
  max-width: 760px;
  margin: 46px auto 32px;
  color: rgba(255,255,255,.86);
  font-size: clamp(20px, 2vw, 31px);
  font-weight: 800;
  line-height: 1.42;
  letter-spacing: -.035em;
  text-align: center;
}

.about-shape {
  position: absolute;
  z-index: 1;
  display: block;
  filter: drop-shadow(0 20px 30px rgba(0,0,0,.35));
  user-select: none;
  animation: shape-float 6s ease-in-out infinite;
}

.about-shape--one {
  left: 4%;
  top: 14%;
  color: #d8dde8;
  font-size: 110px;
}

.about-shape--two {
  right: 6%;
  top: 14%;
  color: #645cff;
  font-size: 120px;
  animation-delay: -.9s;
}

.about-shape--three {
  left: 2%;
  bottom: 16%;
  color: #ef4055;
  font-size: 115px;
  animation-delay: -2.1s;
}

.about-shape--four {
  right: 8%;
  bottom: 23%;
  color: #ad58ec;
  font-size: 105px;
  animation-delay: -3.4s;
}

@keyframes shape-float {
  50% { transform: translateY(-18px) rotate(6deg); }
}

/* CONTACT — V3.20. Scoped typography; no form, avatar or third-party widgets. */

.contact {
  padding: clamp(76px, 7.5vw, 120px) var(--page) clamp(80px, 8vw, 128px);
  scroll-margin-top: 20px;
}

.contact-inner {
  width: 100%;
  max-width: var(--max);
  margin-inline: auto;
  min-width: 0;
}

.contact-title {
  margin: 0;
  font-size: clamp(60px, 8.55vw, 150px);
  line-height: 1.08;
  letter-spacing: -.025em;
}

.contact-title__mask {
  display: inline-block;
  overflow: hidden;
  vertical-align: top;
  /* Reserve the complete glyph box so masks cannot clip tall accents. */
  padding-bottom: .08em;
  margin-bottom: -.08em;
  max-width: 100%;
}
.contact-title__mask--first { display: block; }
.contact-title__mask--third { margin-left: -.04em; }
.contact-title__line { display: block; }

/* Baseline is visible. Only a successfully initialized observer arms motion. */
.contact.contact-motion-ready .contact-title__line {
  transform: translateY(112%);
  transition: transform 700ms cubic-bezier(.2,.72,.2,1);
}
.contact.contact-motion-ready .contact-title__mask--second .contact-title__line,
.contact.contact-motion-ready .contact-title__mask--third .contact-title__line {
  transition-delay: 100ms;
}
.contact.contact-motion-ready.is-contact-visible .contact-title__line {
  transform: translateY(0);
}
.contact.contact-motion-static .contact-title__line {
  transform: none;
  transition: none;
}

.contact-intro {
  margin: clamp(26px, 3vw, 44px) 0 0;
  max-width: 54ch;
  font-size: clamp(16px, 1.45vw, 21px);
  line-height: 1.65;
  color: rgba(10, 11, 14, .72);
}

.contact-links {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 14px clamp(28px, 4.5vw, 76px);
  margin-top: clamp(24px, 3vw, 40px);
  width: fit-content;
  max-width: 100%;
}
.contact-link {
  display: inline-flex;
  align-items: center;
  gap: .5em;
  min-width: 44px;
  min-height: 52px;
  padding-block: 8px;
  font-size: clamp(23px, 2.4vw, 36px);
  font-weight: 700;
  line-height: 1.25;
  color: var(--ink);
  text-decoration: none;
}
.contact-link__label {
  text-decoration-line: underline;
  text-decoration-color: rgba(10, 11, 14, .26);
  text-decoration-thickness: 1px;
  text-underline-offset: .23em;
  transition: text-decoration-color 180ms ease;
}
.contact-link--primary .contact-link__label { text-decoration-color: currentColor; }
.contact-link__arrow {
  display: inline-block;
  font-size: .86em;
  transition: transform 180ms ease;
}
.contact-link:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 6px;
  border-radius: 2px;
}
.contact-link:focus-visible .contact-link__label { text-decoration-color: currentColor; }
.contact-link:focus-visible .contact-link__arrow { transform: translate(3px, -3px); }
@media (hover: hover) and (pointer: fine) {
  .contact-link:hover .contact-link__label { text-decoration-color: currentColor; }
  .contact-link:hover .contact-link__arrow { transform: translate(3px, -3px); }
}
.contact-email {
  margin: 24px 0 0;
  width: fit-content;
  max-width: 100%;
  font-size: clamp(14px, 1.1vw, 16px);
  line-height: 1.6;
  color: rgba(10, 11, 14, .68);
  overflow-wrap: anywhere;
  -webkit-user-select: text;
  user-select: text;
}

@media (max-width: 760px) {
  .contact-title { font-size: clamp(44px, 13.3vw, 88px); }
  .contact-title__mask { display: block; width: fit-content; margin-left: 0; }
  .contact.contact-motion-ready .contact-title__mask--third .contact-title__line {
    transition-delay: 200ms;
  }
  .contact-intro { max-width: 39ch; }
  .contact-intro__break { display: none; }
  .contact-links { flex-direction: column; align-items: flex-start; gap: 10px; }
  .contact-link { min-height: 52px; font-size: 28px; }
}
@media (prefers-reduced-motion: reduce) {
  .contact.contact-motion-ready .contact-title__line,
  .contact-link .contact-link__arrow {
    transform: none !important;
    transition: none !important;
  }
}

/* FOOTER */

.site-footer {
  min-height: 310px;
  padding: 62px var(--page);
  border-radius: 42px 42px 0 0;
  display: grid;
  grid-template-columns: 1fr .35fr .55fr;
  gap: 44px;
  align-items: start;
}

.footer-mark {
  width: fit-content;
  font-family: "Anton", Impact, sans-serif;
  font-size: 84px;
  line-height: .8;
  color: transparent;
  -webkit-text-stroke: 1px rgba(255,255,255,.55);
}

.footer-column {
  min-width: 0;
  overflow-wrap: anywhere;
  display: grid;
  gap: 8px;
  font-size: 12px;
}

.footer-column strong {
  margin-bottom: 8px;
  font-size: 10px;
}

.footer-column a,
.footer-column span {
  color: rgba(255,255,255,.72);
}

/* RESPONSIVE */



/*
  Avatar vertical framing is driven primarily by viewport aspect ratio.
  Taller / squarer windows need less offset; wide / short windows need more.
*/
@media (min-aspect-ratio: 4/3) {
  .avatar-stage {
    --avatar-safe-top: clamp(118px, 10vh, 142px);
  }
}

@media (min-aspect-ratio: 3/2) {
  .avatar-stage {
    --avatar-safe-top: clamp(145px, 13vh, 176px);
  }
}

@media (min-aspect-ratio: 5/3) {
  .avatar-stage {
    --avatar-safe-top: clamp(172px, 16vh, 208px);
  }
}

@media (min-aspect-ratio: 16/9) {
  .avatar-stage {
    --avatar-safe-top: clamp(188px, 18vh, 228px);
  }
}


@media (max-width: 1000px) and (min-width: 761px) {
  .hero-title {
    top: clamp(132px, 15vw, 190px);
  }
}

@media (max-width: 1000px) {
  .hero-title {
    font-size: clamp(88px, 14vw, 150px);
  }

  .avatar-stage {
    width: min(58vw, 650px);
  }

  .hero-copy {
    top: 44%;
  }

  .hero-cta {
    right: 6%;
    top: 45%;
  }

  .testimonial-grid {
    grid-template-columns: 1fr;
  }

  .testimonial-card {
    min-height: 210px;
  }

}

@media (max-width: 760px) {
  :root {
    --page: 18px;
    --radius-lg: 28px;
  }

  .cursor-glow {
    display: none;
  }

  .hero {
    min-height: 920px;
    max-height: none;
  }

  .hero-nav {
    grid-template-columns: repeat(2, 1fr);
    gap: 8px 20px;
    padding-inline: 0;
  }

  .hero-nav a:nth-child(n) {
    justify-self: start;
  }

  .hero-nav a:nth-child(even) {
    justify-self: end;
  }

  .hero-title {
    top: 92px;
    left: var(--page);
    width: calc(100% - 36px);
    transform: none;
    white-space: normal;
    font-size: clamp(82px, 22vw, 132px);
    line-height: .86;
  }

  .hero-title[data-reveal],
  .hero-title[data-reveal].is-visible {
    transform: translateY(0);
  }

  .hero-copy {
    top: 355px;
    max-width: 230px;
    font-size: 13px;
  }

  .avatar-stage {
    --avatar-safe-top: clamp(132px, 13vh, 172px);
    left: 54%;
    top: -180px;
    bottom: -260px;
    width: min(96vw, 600px);
    height: auto;
  }

  .avatar-model {
    transform:
      translate3d(
        var(--model-x, 0px),
        calc(var(--model-y, 0px) + var(--avatar-safe-top)),
        0
      )
      scale(1.23);
  }

  .hero-cta {
    top: auto;
    right: 18px;
    bottom: 185px;
  }

  .hero-meta {
    bottom: 20px;
    flex-direction: column;
    gap: 6px;
  }

  .clients {
    padding-block: 80px 95px;
  }

  .projects {
    padding: 90px 18px 110px;
  }

  .section-title {
    font-size: clamp(76px, 20vw, 120px);
  }

  .testimonials {
    padding: 100px 18px 110px;
  }

  .emoji-float {
    right: 7%;
    top: 205px;
  }

  .service-row {
    grid-template-columns: 70px 1fr;
    gap: 18px;
  }

  .service-number {
    font-size: 40px;
  }

  .about {
    min-height: 720px;
  }

  .about-shape {
    opacity: .76;
  }

  .about-copy {
    font-size: 21px;
  }

  .contact {
    padding: 76px var(--page) 80px;
  }


  .site-footer {
    grid-template-columns: 1fr;
    min-height: 420px;
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
  }

  [data-reveal] {
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
  }
}


/* V3.17 — factual positioning and compact editorial additions.
   Existing typography, avatar, animations, stack geometry and logo styles stay intact. */
.hero-positioning {
  position: absolute;
  z-index: 12;
  top: 39%;
  left: var(--page);
  width: 260px;
  max-width: calc(100% - 2 * var(--page));
}
.hero-positioning .hero-copy { position: static; max-width: none; }
.hero-context {
  margin: 16px 0 0;
  color: var(--muted);
  font-size: 11px;
  font-weight: 500;
  line-height: 1.65;
  letter-spacing: 0;
}
/* The added sentence uses space inside the existing card, not a taller sticky tab.
   This preserves every exposed title/button and the V3.16 card-height formula. */
.project-card { grid-template-rows: calc(var(--stack-tab) - 2px) auto minmax(0, 1fr); }
.project-card__summary {
  max-width: 80ch;
  margin: 0 0 14px;
  color: #b2b4bd;
  font-size: 12px;
  line-height: 1.5;
}
.project-card__identity span:not(.project-number) { color: #a8a9b0; }
.case-context { margin-top: 4px; }
.case-context h3 { margin: 0 0 12px; font-size: 16px; line-height: 1.4; }
.case-story { gap: 28px 36px; margin-top: 30px; }
.case-story p { line-height: 1.65; }
.case-story__my-role, .case-story__key-decisions { grid-column: 1 / -1; }
.case-story__my-role p { max-width: 100ch; }
.case-story__key-decisions {
  padding: 24px 0;
  border-top: 1px solid #302c38;
  border-bottom: 1px solid #302c38;
}
.case-story__key-decisions > h3 { color: #d8c9ff; margin-bottom: 20px; }
.case-decisions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 22px 32px;
  margin: 0;
  padding: 0;
  list-style: none;
  counter-reset: decisions;
}
.case-detail--lcmd .case-decisions { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.case-decisions li { min-width: 0; counter-increment: decisions; }
.case-decisions li::before {
  content: counter(decisions, decimal-leading-zero);
  display: block;
  margin-bottom: 10px;
  color: #a396bd;
  font-size: 10px;
  letter-spacing: .12em;
}
.case-decisions h4 { margin: 0 0 8px; font-size: 14px; font-weight: 700; line-height: 1.4; }
.case-story .case-decisions p { font-size: 13px; }
.case-impact-metric { display: grid; gap: 8px; margin: 0 0 16px; }
.case-impact-metric strong {
  font-family: "Anton", Impact, sans-serif;
  font-size: clamp(42px, 4.5vw, 62px);
  line-height: 1.1;
  font-weight: 400;
  letter-spacing: -.025em;
  color: #d8c9ff;
}
.case-detail--lcmd .case-impact-metric strong { color: #73d5c6; }
.case-impact-metric span { color: #d3ccd9; font-size: 11px; line-height: 1.5; }
.case-story p.case-output-label { color: #d8c9ff; font-size: 11px; margin-bottom: 10px; }
.testimonials--employer { min-height: 0; padding-block: 110px 120px; }
.testimonial-grid--employer { grid-template-columns: 1fr; max-width: 880px; margin-top: 64px; }
.testimonial-card--employer { min-height: 0; padding: clamp(26px, 3.5vw, 44px); gap: 28px; }
.testimonial-card--employer > p:first-child { font-size: clamp(16px, 1.5vw, 21px); line-height: 1.6; }
.testimonial-card--employer footer strong { font-size: 12px; }
.testimonial-card--employer footer small { font-size: 10px; color: #aaa6b0; }
.testimonial-card p.testimonial-adaptation { font-size: 10px; line-height: 1.5; color: #aaa6b0; }
/* Scope the longer heading; all original heading font families remain unchanged. */
.section-title--product-teams { font-size: clamp(62px, 7.8vw, 122px); line-height: .95; }
.design-ai { padding: 84px var(--page) 56px; }
.design-ai__inner {
  display: grid;
  grid-template-columns: .65fr 1.35fr;
  gap: 24px 54px;
  max-width: 1320px;
  margin: 0 auto;
}
.design-ai__inner > h2 { margin-top: 7px; line-height: 1.6; }
.design-ai__copy {
  max-width: 38ch;
  margin: 0;
  font-size: clamp(22px, 2.3vw, 32px);
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: -.03em;
  color: #e3dfea;
}
.design-ai__workflow {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 14px 0;
  margin: 28px 0 0;
  padding: 0;
  list-style: none;
  font-size: 11px;
  line-height: 1.5;
  color: #bfb5d1;
}
.design-ai__workflow li { white-space: nowrap; }
.design-ai__workflow li:not(:last-child)::after { content: "→"; margin: 0 13px; color: #7f768e; }
.about-experience {
  position: relative;
  z-index: 3;
  max-width: 680px;
  margin: -8px auto 32px;
  color: #b4afbf;
  text-align: center;
  font-size: 14px;
  line-height: 1.7;
}
@media (max-width: 1000px) {
  .hero-positioning { top: 44%; }
  .design-ai__inner { grid-template-columns: 1fr; gap: 20px; }
  .design-ai__copy { max-width: 44ch; }
}
@media (max-width: 760px) {
  .hero-positioning { top: 355px; width: 230px; }
  .hero-context { font-size: 10px; margin-top: 14px; }
  .project-card__summary { font-size: 11px; line-height: 1.5; margin-bottom: 12px; }
  .project-card__identity span:not(.project-number) { font-size: 9px; }
  .case-decisions, .case-detail--lcmd .case-decisions { grid-template-columns: 1fr; gap: 22px; }
  .case-story { gap: 24px; }
  .case-story__key-decisions { padding-block: 20px; }
  .case-impact-metric strong { font-size: 46px; }
  .testimonials--employer { padding-block: 90px; }
  .testimonial-grid--employer { margin-top: 56px; }
  .section-title--product-teams { font-size: clamp(42px, 11vw, 76px); }
  .service-row h3 { font-size: 16px; line-height: 1.35; }
  .design-ai { padding-block: 64px 32px; }
  .design-ai__workflow { font-size: 11px; row-gap: 12px; }
  .design-ai__workflow li:not(:last-child)::after { margin-inline: 10px; }
  .about-experience { max-width: 38ch; font-size: 13px; }
}

/* Keep the longer employer heading and added experience copy clear on phones.
   The floating shapes retain their original size, colour and animation. */
@media (max-width: 760px) {
  .testimonials--employer .testimonial-title { font-size: clamp(50px, 16vw, 70px); }
  .testimonials--employer .emoji-float { top: calc(90px + clamp(50px, 16vw, 70px) * 1.84); }
  .about-shape--three, .about-shape--four { bottom: 28px; }
}


/* V3.18 — two source-backed employer cards and subtle overlap depth.
   No change to sticky geometry, card dimensions, hero, avatar or type families. */
.testimonial-grid--employer {
  max-width: 1440px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(16px, 2vw, 28px);
  align-items: stretch;
}
.testimonial-card--employer {
  display: grid;
  grid-template-rows: 1fr auto auto;
  min-width: 0;
  gap: 24px;
  padding: clamp(26px, 2.8vw, 40px);
}
.testimonial-card--employer > p:first-child {
  font-size: clamp(16px, 1.35vw, 20px);
  line-height: 1.6;
}
.employer-logo {
  display: grid;
  place-items: center;
  flex: 0 0 76px;
  width: 76px;
  height: 48px;
  background: transparent;
  border: 0;
}
.employer-logo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.employer-logo--lcmd img { width: 44px; height: 46px; }
.employer-logo--ffuf img { width: 76px; height: auto; }
.testimonial-card--employer footer div { min-width: 0; }

/* JS supplies only a 0..1 overlap value. The opaque card background stays
   opaque; no opacity/scale/transform can leak the underlying card through it.
   Titles and buttons stay sharp. Blur is confined to the receding imagery. */
.project-card {
  --stack-depth: 0;
  border-color: rgba(230, 234, 239, calc(.52 - var(--stack-depth) * .23));
  filter: brightness(calc(1 - var(--stack-depth) * .22));
  box-shadow: 0 -14px 38px rgba(0, 0, 0, .2);
}
.project-card .project-mosaic {
  filter: blur(calc(var(--stack-depth) * 1.4px));
}
/* Restore full legibility when a keyboard user returns to a covered header. */
.project-card:focus-within {
  filter: none;
  border-color: rgba(230, 234, 239, .64);
}
.project-card:focus-within .project-mosaic { filter: none; }

@media (max-width: 900px) {
  .testimonial-grid--employer { grid-template-columns: 1fr; max-width: 680px; }
}
@media (max-width: 760px) {
  .testimonial-card--employer { padding: 26px; gap: 22px; }
  .project-card .project-mosaic { filter: blur(calc(var(--stack-depth) * .8px)); }
}
@media (prefers-reduced-motion: reduce) {
  .project-card, .project-card .project-mosaic { filter: none; }
}

/* V3.21 — targeted Hero composition and a tighter, scroll-responsive logo strip. */
.hero-positioning {
  left: auto;
  right: calc(50% + clamp(140px, 12vw, 230px));
  width: clamp(260px, 22vw, 350px);
  top: 44%;
}
.hero-positioning .hero-copy { top: auto; right: auto; bottom: auto; left: auto; }
.hero-copy-line { display: block; text-wrap: balance; }
.hero-cta {
  left: calc(50% + clamp(184px, 16vw, 292px));
  right: auto;
  top: 48%;
  min-width: clamp(216px, 17vw, 270px);
  min-height: 64px;
  padding: 19px 28px;
  gap: 13px;
  font-size: clamp(14px, 1.05vw, 16px);
}
.hero-meta { border-top: 0; }
.hero-meta::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 1px;
  background: linear-gradient(90deg,
    rgba(255,255,255,.11) 0%, rgba(255,255,255,.11) 28%,
    transparent 40%, transparent 64%,
    rgba(255,255,255,.11) 76%, rgba(255,255,255,.11) 100%);
  pointer-events: none;
}
.logo-item--diconium { --logo-width: clamp(154px, 14vw, 196px); }
.logo-item--fieldbots { --logo-width: clamp(158px, 14.5vw, 204px); }
.logo-item--propops { --logo-width: clamp(142px, 13vw, 184px); }
.logo-item--fieldbots .company-logo { max-height: 44px; }
.logo-item--propops .company-logo { max-height: 52px; }
.logo-marquee.is-scroll-driven .logo-track {
  animation: none;
  will-change: transform;
}
@media (min-width: 761px) and (max-width: 1100px) {
  .hero-positioning { left: var(--page); right: auto; width: 248px; }
  .hero-cta { left: auto; right: 5%; min-width: 210px; padding-inline: 22px; }
}
@media (max-width: 760px) {
  .hero-positioning { left: var(--page); right: auto; top: 355px; width: 230px; }
  .hero-cta { left: auto; right: 18px; top: auto; min-width: 212px; min-height: 60px; padding: 17px 24px; }
}
@media (prefers-reduced-motion: reduce) {
  .logo-marquee.is-scroll-driven .logo-track { transform: none !important; will-change: auto; }
}

/* V3.21 — editorial block wipe. Original text/line breaks are never replaced.
   The absolute covers do not participate in layout or the accessibility tree.
   The existing Anton/Inter families and dark/light palettes remain untouched. */
.text-wipe__cover {
  position: absolute;
  display: block;
  z-index: 1;
  pointer-events: none;
  user-select: none;
  background: var(--wipe-surface, var(--black));
  contain: paint;
}
.text-wipe__block {
  position: absolute;
  inset: 0;
  display: block;
  background: var(--wipe-accent, var(--purple));
  transform: scaleX(0);
  transform-origin: left center;
  will-change: transform;
}
.theme-light [data-text-wipe] { --wipe-surface: var(--paper); }
.projects-intro, .design-ai__copy { --wipe-accent: #c4a6f5; }
@media (prefers-reduced-motion: reduce) {
  .text-wipe__cover { display: none !important; }
}

/* V3.23 — tactile film surface. No site-level off switch; OS motion/contrast
 * preferences still win. Only decorative layers move, never the page content. */
:root {
  --film-grain-opacity: .047;
  --film-edge-opacity: .052;
  --film-scroll: 0;
}
.film-overlay {
  position: fixed;
  inset: 0;
  z-index: 9999;
  pointer-events: none;
  overflow: hidden;
  user-select: none;
  contain: strict;
}
.film-overlay::before {
  content: "";
  position: absolute;
  inset: -20px;
  background-image: url("data:image/png;base64,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");
  background-size: 160px 160px;
  background-repeat: repeat;
  opacity: calc(var(--film-grain-opacity) + var(--film-scroll) * .018);
  animation: film-grain-drift 1.08s steps(1, end) infinite;
  transition: opacity .22s linear;
  will-change: transform;
}
.film-overlay::after {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 50% 48%, transparent 50%, rgba(20, 12, 5, var(--film-edge-opacity)) 100%);
}
.film-defects {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  pointer-events: none;
}
@keyframes film-grain-drift {
  0%, 100% { transform: translate3d(0, 0, 0); }
  20% { transform: translate3d(-12px, 8px, 0); }
  40% { transform: translate3d(9px, -14px, 0); }
  60% { transform: translate3d(-6px, -4px, 0); }
  80% { transform: translate3d(13px, 10px, 0); }
}
/* A native dialog is in the top layer. Paint only its copy while open. */
html.case-open body > .film-overlay { visibility: hidden; }
.film-sleeping .film-overlay::before { animation-play-state: paused; }

/* A small speaker next to Stuttgart / Remote, not a floating preferences dock. */
.hero-meta { align-items: center; }
.hero-meta__location {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  white-space: nowrap;
}
.hero-meta__location .sound-toggle {
  margin-block: -15px;
  margin-right: -10px;
}
.sound-toggle,
.case-dialog .sound-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 44px;
  width: 44px;
  height: 44px;
  min-width: 44px;
  min-height: 44px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  box-shadow: none;
  color: #a8a7ae;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  transition: color .18s ease, background-color .18s ease;
}
.sound-toggle[hidden],
.case-dialog .sound-toggle[hidden] { display: none; }
.sound-toggle:hover,
.case-dialog .sound-toggle:hover:not(:disabled) {
  color: #f0edf6;
  background: rgba(255, 255, 255, .045);
}
.sound-toggle:focus-visible,
.case-dialog .sound-toggle:focus-visible {
  outline: 2px solid #cdbaff;
  outline-offset: 1px;
}
.sound-icon { display: block; flex: none; }
.sound-icon__waves { display: none; }
.sound-icon__slash { display: block; }
[data-music-toggle][data-state="on"] .sound-icon__waves { display: block; }
[data-music-toggle][data-state="on"] .sound-icon__slash { display: none; }
/* Keep controls inside the native modal usable when the page behind it is inert. */
.case-dialog__controls { flex-shrink: 0; }
@media (max-width: 600px) {
  .hero-meta { align-items: flex-start; }
  .hero-meta__location { align-self: flex-end; }
  .hero-meta__location .sound-toggle { margin-block: -13px; }
  .case-dialog__bar { column-gap: 6px; }
  .case-dialog__counter { min-width: 0; }
  .case-dialog__controls { gap: 4px; }
  .case-dialog .case-close { margin-left: 0; padding-inline: 10px; gap: 8px; }
}
@media (prefers-reduced-motion: reduce) {
  .film-overlay::before { animation: none; transform: none; will-change: auto; opacity: var(--film-grain-opacity); transition: none; }
  .film-defects { display: none; }
  .sound-toggle, .case-dialog .sound-toggle { transition: none; }
}
@media (prefers-contrast: more), (forced-colors: active) {
  .film-overlay { display: none; }
  .sound-toggle { color: CanvasText; }
}
@media print {
  .film-overlay, .sound-toggle { display: none !important; }
}

/* V3.26 — actual vector arrows (never platform emoji), with the same ink as
   their control. Dark on the Contact surface; light on dark buttons. */
.ui-arrow {
  display: inline-block;
  width: 1em;
  height: 1em;
  flex: none;
  vertical-align: middle;
  fill: none;
  stroke: currentColor;
  pointer-events: none;
}
.contact-link__arrow { display: inline-flex; align-items: center; }
.gradient-button .ui-arrow { width: 1.2em; height: 1.2em; }

/* Mobile-only composition. The fixed scene box decouples the 3D framing from
   the browser's expanding/collapsing chrome. Camera/rig/animation are untouched.
   Title-sized offsets keep Greg's head next to the second heading line. */
@media (max-width: 760px) {
  .hero {
    --mobile-title-size: clamp(82px, 22vw, 132px);
    --mobile-avatar-width: min(96vw, 600px);
    min-height: max(760px, 100svh, calc(500px + var(--mobile-title-size) * 2.5));
    max-height: none;
  }
  .hero-title {
    font-size: var(--mobile-title-size);
    width: max-content;
    max-width: calc(100% - 2 * var(--page));
    line-height: 1.06;
  }
  .hero-title__line { display: block; white-space: nowrap; }
  .avatar-stage {
    --avatar-safe-top: 154px;
    left: 75%;
    /* Preserve the existing projection size and compensate for its aspect
       framing as the viewport changes, instead of tying the head to vh. */
    top: calc(-400px + (var(--mobile-title-size) - 85.8px) * 1.06 + (var(--mobile-avatar-width) - 374.4px) * .67);
    bottom: auto;
    width: var(--mobile-avatar-width);
    height: 1360px;
  }
  .hero-positioning {
    top: calc(132px + var(--mobile-title-size) * 2.45);
    left: var(--page);
    right: auto;
    width: clamp(146px, 44vw, 252px);
  }
  .hero-positioning .hero-copy { font-size: 13px; line-height: 1.5; }
  .hero .hero-cta {
    top: auto;
    bottom: calc(100px + env(safe-area-inset-bottom, 0px));
    left: var(--page);
    right: var(--page);
    width: max-content;
    max-width: calc(100% - 2 * var(--page));
    margin-inline: auto;
    min-width: min(240px, calc(100% - 2 * var(--page)));
    min-height: 60px;
  }
}

/* Source: portfolio-update.css */
/* Classflow / biography update to the recovered V3.26 site.
   All existing styles, rig, audio and case handlers are left in place. */
.hero-tagline { margin: 14px 0 0; max-width: 34ch; color: #d1ced8; font-size: 12px; line-height: 1.65; font-weight: 500; }
.hero-positioning .hero-context { margin-top: 12px; }
.about-experience--bio { margin-top: -8px; }
.about-experience a { color: #e2d5ff; text-underline-offset: 4px; }
.about-experience a:hover { color: #fff; }
.about-experience a:focus-visible, .classflow-outro a:focus-visible, .case-page-bar a:focus-visible { outline: 3px solid #b7a0ff; outline-offset: 5px; border-radius: 4px; }
.project-step--classflow .project-visual--main { background: #e8e9ed; }
.project-step--classflow .project-visual--main img { object-fit: contain; }
.project-step--classflow .project-visual--secondary { background: #18191b; }
.project-step--classflow .project-visual--secondary img { object-fit: contain; }
.project-step--classflow .project-insight { background: #18201a; }
.project-step--classflow .insight-value { color: #dbeec0; }
.classflow-overview { margin-top: 30px; }
.classflow-workflow { padding-block: 30px; margin-top: 36px; border-top: 1px solid #302c38; border-bottom: 1px solid #302c38; }
.classflow-eyebrow { margin: 0 0 12px; font-size: 10px; line-height: 1.5; letter-spacing: .12em; color: #a69caf; }
.classflow-workflow h3, .classflow-outro h3 { margin: 0; font-size: clamp(19px, 2.2vw, 25px); line-height: 1.35; font-weight: 600; letter-spacing: -.025em; }
.classflow-workflow blockquote { margin: 24px 0; max-width: 820px; padding: 4px 0 4px 20px; border-left: 2px solid #d8c9ff; color: #e3dfea; font-size: clamp(17px, 1.8vw, 22px); line-height: 1.55; }
.classflow-steps { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 24px; list-style: none; margin: 28px 0 0; padding: 0; }
.classflow-steps li { min-width: 0; }
.classflow-steps span { display: block; color: #a396bd; font-size: 10px; letter-spacing: .12em; margin-bottom: 10px; }
.classflow-steps h4 { font-size: 14px; margin: 0 0 8px; line-height: 1.4; }
.classflow-steps p { color: #b4afbf; font-size: 13px; line-height: 1.65; margin: 0; }
.classflow-note { color: #95909e; font-size: 11px; line-height: 1.6; margin: 24px 0 0; }
.classflow-outro { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 24px; border-top: 1px solid #302c38; margin-top: 40px; padding-top: 30px; }
.classflow-outro .outline-button { min-height: 48px; }
/* Standalone case uses the same content and same modal editorial styles. */
body.classflow-case-page { background: #0d0e12; color: var(--white); }
.classflow-case-page main { max-width: 1180px; margin: auto; }
.case-page-bar { position: sticky; top: 0; z-index: 5; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 24px clamp(20px,4vw,48px); background: #0d0e12; border-bottom: 1px solid #29282f; }
.case-page-bar a { color: #d6d2dd; font-size: 11px; line-height: 1.5; text-decoration: none; }
.case-page-bar a:hover { color: #fff; }
@media (max-width:760px) {
 .hero-tagline { font-size: 11px; line-height: 1.55; margin-top: 12px; }
 .hero-positioning .hero-context { font-size: 10px; margin-top: 10px; }
 .classflow-steps { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 22px; }
 .classflow-workflow blockquote { padding-left: 14px; }
 .classflow-overview { margin-top: 24px; }
 .classflow-outro { align-items: flex-start; flex-direction: column; }
}

/* Source: project-results.css */
/* V3.28 — scoped project-card height and outcome snippets.
   No framework, no fonts/assets added; the detailed case studies are unchanged. */
.project-stack {
  /* Preserve the old baseline, then increase it by exactly 18% on laptop screens.
     The baseline uses tab height, not offset, to avoid a circular CSS variable. */
  --card-base-height: min(720px, calc(100svh - var(--stack-top) - (var(--stack-count) - 1) * var(--stack-tab) - var(--stack-bottom)));
  --card-height: min(calc(var(--card-base-height) * 1.475), calc(100svh - var(--stack-top) - var(--stack-bottom)));
  /* Taller cards need smaller exposed tabs, otherwise the last card gets clipped. */
  --stack-offset: min(var(--stack-tab), max(0px, calc((100svh - var(--stack-top) - var(--stack-bottom) - var(--card-height)) / (var(--stack-count) - 1))));
}
.project-step { --result-accent: #d7c6ff; --result-surface: #17131f; }
.project-step--classflow { --result-accent: #d5edb3; --result-surface: #171d17; }
.project-step--playjoob { --result-accent: #d0bfff; --result-surface: #1b1626; }
.project-step--lcmd { --result-accent: #8ad9ca; --result-surface: #111e1d; }
.project-step--hyo { --result-accent: #efc6db; --result-surface: #211821; }
.project-step--yourwork { --result-accent: #c3e8cf; --result-surface: #141e18; }
.project-step--ffuf { --result-accent: #f0c4a7; --result-surface: #201a17; }
.project-mosaic { grid-template-columns: 2fr 1fr; grid-template-rows: minmax(0,1.07fr) minmax(0,1fr); }
.project-result {
  container-type: size;
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  min-width: 0;
  min-height: 0;
  padding: clamp(16px,2svh,24px) clamp(18px,1.8vw,28px);
  gap: 9px;
  border: 1px solid rgba(255,255,255,.045);
  border-radius: 24px;
  background: var(--result-surface);
  overflow: hidden;
  isolation: isolate;
}
.result-head, .result-footer { display: flex; align-items: center; justify-content: space-between; gap: 8px; flex-shrink: 0; }
.result-eyebrow { color: #b8b5bf; font-size: 9px; font-weight: 700; line-height: 1.35; letter-spacing: .14em; }
.result-case-link, .result-replay {
  appearance: none; display: grid; place-items: center; padding: 0;
  border: 0; border-radius: 50%; background: transparent; color: #aba7b3;
  cursor: pointer; flex: 0 0 25px; width: 25px; height: 25px;
  transition: color 160ms ease, background 160ms ease, transform 180ms ease;
}
.result-case-link { margin: -4px -5px -4px 0; }
.result-case-link svg { width: 15px; height: 15px; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.result-replay { margin: -5px -5px -5px 0; }
.result-replay svg { width: 15px; height: 15px; stroke: currentColor; stroke-width: 1.4; stroke-linecap: round; stroke-linejoin: round; }
.result-case-link:hover, .result-replay:hover { color: var(--result-accent); background: rgba(255,255,255,.08); }
.result-case-link:hover { transform: translate(1px,-1px); }
.result-case-link:focus-visible, .result-replay:focus-visible { outline: 2px solid var(--result-accent); outline-offset: 3px; }
.result-main { display: flex; min-width: 0; flex: 1 1 auto; align-items: center; }
.result-main--build, .result-main--nps { flex-direction: column; align-items: flex-start; justify-content: center; gap: 6px; }
.result-kpi { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.result-number, .result-build-number {
  display: inline-block; font-family: "Inter", Arial, sans-serif;
  font-size: clamp(42px,29cqh,90px); line-height: .96; font-weight: 600;
  letter-spacing: -.065em; font-variant-numeric: tabular-nums; color: var(--result-accent);
}
.result-number { white-space: nowrap; }
.result-descriptor { display: block; font-size: clamp(12px,5.8cqh,16px); line-height: 1.35; font-weight: 500; letter-spacing: -.02em; color: #eeeaf1; }
.result-secondary { display: block; margin-top: 5px; font-size: 10px; line-height: 1.5; color: #c0bbc7; }
.result-footer { color: #b8b2bf; font-size: 9px; line-height: 1.5; }
.result-footer > span { min-width: 0; }
/* Product-building milestone. 0 → 1 is not a performance metric. */
.result-build-number { display: flex; align-items: center; gap: 22px; font-size: clamp(43px,28cqh,85px); }
.result-origin { color: #7b8870; }
.result-build-arrow { display: inline-block; font-size: .6em; font-weight: 400; color: #a4b494; }
.result-build-track { display: flex; align-items: center; gap: 8px; padding-block: 3px; min-height: 26px; }
.result-build-node { font-size: 10px; font-weight: 500; line-height: 1.4; color: var(--result-accent); white-space: nowrap; }
.result-build-track i { height: 1px; flex: 1; background: #515c46; transform-origin: left; }
/* Every dot represents one of the 200 registrations, not a synthetic trend. */
.result-main--users { justify-content: space-between; gap: 12px; }
.result-user-grid { display: grid; grid-template-columns: repeat(20,minmax(0,1fr)); gap: 3px; width: min(40%,128px); flex-shrink: 0; }
.result-user-dot { display: block; width: 100%; aspect-ratio: 1; border-radius: 50%; background: var(--result-accent); opacity: .9; }
.result-context { display: flex; align-items: baseline; flex-wrap: wrap; gap: 5px; font-size: 10px; color: #c2b9d0; line-height: 1.4; }
.result-context strong { font-size: 17px; font-weight: 600; color: var(--result-accent); letter-spacing: -.04em; }
.result-context b { color: #dfd5eb; font-weight: 600; }
.result-context-separator { width: 1px; height: 9px; margin-inline: 4px; background: #5b506b; }
/* NPS: full-domain endpoint comparison, with the zero line retained. */
.result-kpi--horizontal { flex-direction: row; align-items: baseline; gap: 9px; }
.result-unit { color: var(--result-accent); font-size: 19px; font-weight: 500; letter-spacing: -.03em; }
.result-nps { width: 100%; }
.result-nps-labels { display: flex; justify-content: space-between; gap: 14px; font-size: 10px; color: #b3c9c4; }
.result-nps-labels b { color: #e7f2ee; font-weight: 600; margin-right: 5px; }
.result-nps-labels > span:last-child b { color: var(--result-accent); }
.result-nps-plot { display: block; width: 100%; height: 34px; overflow: visible; }
.result-axis { stroke: #40514e; stroke-width: 1; }
.result-zero { stroke: #91a59d; stroke-width: 1; }
.result-nps-move { stroke: var(--result-accent); stroke-width: 2.8; stroke-linecap: round; }
.result-nps-before { fill: var(--result-surface); stroke: #c0cdc6; stroke-width: 1.5; }
.result-nps-after { fill: var(--result-accent); stroke: var(--result-surface); stroke-width: 2; transform-origin: 174.8px 13px; }
.result-nps-plot text { font-family: "Inter",Arial,sans-serif; font-size: 9px; fill: #afc0b9; }
/* Design scope is clearly labelled, never disguised as business performance. */
.result-main--scope { gap: 22px; }
.result-scope-copy { min-width: 0; }
.result-mode-list { display: flex; gap: 9px; flex-wrap: wrap; }
.result-mode { display: inline-flex; align-items: center; gap: 5px; color: var(--result-accent); font-size: 10px; line-height: 1.4; }
.result-mode svg { width: 17px; height: 17px; stroke: currentColor; stroke-width: 1.2; stroke-linecap: round; stroke-linejoin: round; }
.result-flow { display: flex; align-items: center; justify-content: space-between; gap: 6px; }
.result-flow-step { display: grid; gap: 4px; color: #d4ddd3; font-size: 10px; line-height: 1.3; }
.result-flow-step b { font-size: 9px; font-weight: 600; letter-spacing: .05em; color: var(--result-accent); }
.result-flow > i { font-size: 14px; font-style: normal; color: #7f9a83; padding-right: 4px; }
.result-deliveries { display: flex; flex-wrap: wrap; gap: 7px 14px; }
.result-delivery { display: inline-flex; align-items: center; gap: 6px; color: #ead5c5; font-size: 10px; line-height: 1.45; }
.result-delivery svg { width: 17px; height: 17px; flex-shrink: 0; stroke: var(--result-accent); stroke-width: 1.25; stroke-linecap: round; stroke-linejoin: round; }
.result-delivery circle { opacity: .4; }
.project-step--ffuf .project-insight { background: #1b1817; }
.project-step--ffuf .insight-value { color: var(--result-accent); }
.project-step--lcmd .project-insight--statement .insight-value { color: var(--result-accent); }
/* Entrance is triggered only when the metric is actually visible, not just
   when its sticky wrapper intersects behind another card. No endless loops. */
.results-ready .project-result:not(.has-result-played) .result-user-dot { opacity: .12; }
.results-ready .project-result:not(.has-result-played) .result-nps-move { stroke-dasharray: 1; stroke-dashoffset: 1; }
.project-result.is-result-active .result-build-node,
.project-result.is-result-active .result-mode,
.project-result.is-result-active .result-flow-step,
.project-result.is-result-active .result-delivery {
  animation: result-enter 600ms cubic-bezier(.2,.75,.3,1) both;
  animation-delay: calc(160ms + var(--reveal-order,0) * 150ms);
}
.project-result.is-result-active .result-build-track i { animation: result-connect 750ms cubic-bezier(.2,.75,.3,1) 250ms both; }
.project-result.is-result-active .result-destination { animation: result-land 850ms cubic-bezier(.2,.75,.3,1) 170ms both; }
.project-result.is-result-active .result-build-arrow { animation: result-arrow 900ms cubic-bezier(.2,.75,.3,1) 90ms both; }
.project-result.is-result-active .result-user-dot { animation: result-dot 430ms ease-out both; animation-delay: calc(80ms + var(--dot-order) * 4ms); }
.project-result.is-result-active .result-nps-move { stroke-dasharray: 1; animation: result-draw 1150ms cubic-bezier(.22,.68,.28,1) 140ms both; }
.project-result.is-result-active .result-nps-after { animation: result-land 550ms cubic-bezier(.2,.75,.3,1) 800ms both; }
.project-result.is-result-active .result-check-stroke { stroke-dasharray: 1; animation: result-draw 550ms ease-out 480ms both; }
.project-result.is-result-active .result-context { animation: result-enter 550ms ease-out 500ms both; }
@keyframes result-enter { from { opacity: 0; transform: translateY(9px); } to { opacity: 1; transform: translateY(0); } }
@keyframes result-land { from { opacity: 0; transform: translateY(10px) scale(.94); } to { opacity: 1; transform: translateY(0) scale(1); } }
@keyframes result-arrow { from { opacity: 0; transform: translateX(-12px); } to { opacity: 1; transform: translateX(0); } }
@keyframes result-connect { from { transform: scaleX(0); } to { transform: scaleX(1); } }
@keyframes result-dot { from { opacity: .12; transform: scale(.5); } to { opacity: .9; transform: scale(1); } }
@keyframes result-draw { from { stroke-dashoffset: 1; } to { stroke-dashoffset: 0; } }
/* Short desktop viewports: use one pin position, prioritizing usable content. */
@media (min-width: 761px) and (max-height: 700px) {
  .project-stack { --stack-top: 12px; --stack-tab: 58px; --stack-offset: 0px; --stack-bottom: 16px; --card-height: calc(100svh - 28px); }
  .project-card { border-radius: 28px; }
  .project-number { font-size: 40px; }
}
@media (max-width: 760px) {
  .project-mosaic { grid-template-columns: 1fr 1fr; grid-template-rows: minmax(0,1.08fr) minmax(0,1fr); gap: 8px; }
  .project-visual--main { grid-column: 1 / -1; grid-row: 1; }
  .project-result, .project-insight { border-radius: 16px; }
  .project-result { padding: 14px 12px; gap: 8px; }
  .project-insight { padding: 16px 12px; }
  .project-insight--statement .insight-value { font-size: clamp(18px,4.4vw,26px); }
  .insight-note { font-size: 10px; }
  .result-case-link, .result-replay { flex-basis: 26px; width: 26px; height: 26px; }
  .result-eyebrow { font-size: 8px; line-height: 1.4; letter-spacing: .08em; }
  .result-footer { font-size: 9px; }
}
@container (max-width: 230px) {
  .result-user-grid { display: none; }
  .result-main--scope { flex-direction: column; align-items: flex-start; justify-content: center; gap: 7px; }
  .result-number { font-size: clamp(40px,28cqw,62px); }
  .result-build-number { font-size: clamp(36px,29cqw,58px); gap: 10px; }
  .result-descriptor { font-size: 12px; }
  .result-secondary { margin-top: 3px; font-size: 9px; }
  .result-context { gap: 3px 4px; font-size: 9px; }
  .result-context strong { font-size: 15px; }
  .result-context-separator { display: none; }
  .result-context > span:last-child { flex-basis: 100%; margin-top: 3px; }
  .result-mode-list { flex-direction: column; gap: 5px; }
  .result-mode { font-size: 9px; }
  .result-nps-plot { display: none; }
  .result-nps-labels { font-size: 9px; gap: 6px; flex-direction: column; }
  .result-nps-labels b { display: inline-block; min-width: 27px; }
  .result-flow { gap: 3px; }
  .result-flow > i { display: none; }
  .result-flow-step { max-width: 33%; font-size: 8px; gap: 3px; }
  .result-deliveries { gap: 5px; }
  .result-delivery { font-size: 9px; gap: 5px; }
  .result-delivery svg { width: 14px; height: 14px; }
  .result-build-track { gap: 4px; }
  .result-build-node { font-size: 9px; }
  .result-unit { font-size: 15px; }
  .result-kpi--horizontal { gap: 6px; }
}
/* A small portrait must scroll normally rather than trap content below a pin. */
@media (max-width: 760px) and (max-height: 700px) {
  .project-stack { --stack-top: 12px; --stack-offset: 0px; --stack-tab: 60px; --stack-tail: 40px; }
  .project-step { position: relative; top: auto; height: auto; margin-bottom: 32px; }
  .project-card { min-height: 680px; height: auto; grid-template-rows: 60px auto minmax(530px,1fr); }
  .project-mosaic { min-height: 530px; }
}
@media (prefers-reduced-motion: reduce) {
  .project-result *, .project-result *::before, .project-result *::after { animation: none !important; transition: none !important; }
  .result-user-dot { opacity: .9 !important; transform: none !important; }
  .result-nps-move, .result-check-stroke { stroke-dashoffset: 0 !important; }
  .result-replay { display: none; }
}
/* Very short landscape windows scroll naturally; shrinking the data isn't useful. */
@media (min-width: 761px) and (max-height: 520px) {
  .project-step { position: relative; top: auto; height: auto; margin-bottom: 40px; }
  .project-card { min-height: 580px; height: auto; grid-template-rows: 58px auto minmax(420px,1fr); }
  .project-stack { --stack-tail: 40px; }
}
/* Size editorial copy by the tile width as well as its height. This keeps
   narrow tablets and landscape windows from clipping multi-line statements. */
.project-insight--statement .insight-value {
  font-size: clamp(20px, min(17cqh, 8cqw), 35px);
}
@container (max-width: 230px) {
  .project-insight--statement .insight-value { font-size: clamp(18px,10cqw,24px); }
}
@media (max-width: 360px) and (max-height: 700px) {
  .project-card { min-height: 724px; grid-template-rows: 60px auto minmax(574px,1fr); }
  .project-mosaic { min-height: 574px; }
}

/* Source: case-stories.css */
/* V3.29 — Editorial case-study layout and source-backed visual stories.
   Scoped to case-detail/dialog; project cards and the rest of the portfolio are untouched.
   Static end states are the default. Motion is a progressive enhancement. */
.case-dialog {
  width: min(1580px, calc(100vw - 48px));
  height: calc(100svh - 32px);
  max-height: calc(100svh - 32px);
  border-radius: 28px;
  scroll-behavior: auto;
  scrollbar-color: #5b5763 #121216;
}
.case-dialog__bar {
  min-height: 76px;
  padding-inline: clamp(28px, 4.3vw, 68px);
  z-index: 5;
}
.case-dialog__bar::after {
  content: ""; position: absolute; bottom: -1px; left: 0;
  width: 100%; height: 2px; background: var(--case-progress-color, #d0bfff);
  transform: scaleX(var(--case-read-progress, 0)); transform-origin: left;
  pointer-events: none;
}
.case-detail {
  --cv-accent: #d0bfff; --cv-surface: #191621; --cv-line: #35303f;
  --cv-text: #eeeaf2; --cv-muted: #b1abba;
  padding: clamp(40px, 4.2vw, 68px) clamp(28px, 4.3vw, 68px) 88px;
}
.case-detail--classflow { --cv-accent: #d5edb3; --cv-surface: #151c17; --cv-line: #354034; }
.case-detail--playjoob { --cv-accent: #d0bfff; --cv-surface: #1b1626; --cv-line: #3a314c; }
.case-detail--lcmd { --cv-accent: #8ad9ca; --cv-surface: #111e1d; --cv-line: #2b4440; }
.case-detail--hyo { --cv-accent: #efc6db; --cv-surface: #211821; --cv-line: #463640; }
.case-detail--yourwork { --cv-accent: #c3e8cf; --cv-surface: #141e18; --cv-line: #304636; }
.case-detail--ffuf { --cv-accent: #f0c4a7; --cv-surface: #201a17; --cv-line: #46372d; }
.case-detail__category { font-size: 13px; margin-bottom: 22px; color: var(--cv-accent); }
.case-detail__title { font-size: clamp(64px, 8.3vw, 120px); line-height: 1.08; }
.case-detail__meta { gap: 28px 72px; margin: 40px 0 54px; }
.case-detail__meta span { font-size: 10px; letter-spacing: .14em; color: #a39dac; }
.case-detail__meta p { font-size: 13px; line-height: 1.7; max-width: 45ch; margin-top: 10px; }
.case-context h3, .case-story h3, .case-tools h3 { font-size: 17px; margin-bottom: 18px; }
.case-context { max-width: 1000px; }
.case-detail__lead { max-width: 70ch; font-size: clamp(20px, 1.7vw, 25px); line-height: 1.7; }
.classflow-overview { margin-top: 46px; }
.case-story { gap: 48px 64px; margin-top: 56px; align-items: start; }
.case-story > section { min-width: 0; }
.case-story > section > p { max-width: 66ch; }
.case-story p { font-size: 15px; line-height: 1.8; }
.case-story__my-role p { max-width: 88ch !important; }
.case-story__key-decisions { padding: 40px 0; }
.case-story__key-decisions > h3 { margin-bottom: 30px; color: var(--cv-accent); }
.case-decisions, .case-detail--lcmd .case-decisions { gap: 32px 48px; }
.case-decisions h4 { font-size: 16px; line-height: 1.45; margin-bottom: 12px; }
.case-decisions li::before { margin-bottom: 14px; color: var(--cv-accent); font-size: 11px; }
.case-story .case-decisions p { font-size: 14px; line-height: 1.8; max-width: 58ch; }
.case-tools { margin-block: 56px 42px; }
.case-gallery { gap: 52px; }
.case-gallery__item figcaption { margin-top: 20px; gap: 8px; }
.case-gallery__item strong { font-size: 15px; line-height: 1.5; }
.case-gallery__item span { font-size: 12px; line-height: 1.7; }
.case-gallery__item img { border-radius: 20px; }
.case-video { margin-block: 48px; }
.classflow-workflow { margin-top: 56px; padding-block: 40px; }
.classflow-steps { gap: 32px; margin-top: 36px; }
.classflow-steps h4 { font-size: 16px; }
.classflow-steps p { font-size: 14px; line-height: 1.8; }
.classflow-case-page main { max-width: 1580px; }
.classflow-case-page .case-page-bar { padding-inline: clamp(28px,4.3vw,68px); }

/* Shared editorial figure language. */
.case-viz {
  grid-column: 1 / -1; position: relative; margin: 8px 0;
  padding: clamp(26px, 3.2vw, 44px);
  border: 1px solid var(--cv-line); border-radius: 24px;
  background: var(--cv-surface); isolation: isolate;
  min-width: 0; overflow: hidden;
}
.cv-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 24px; margin: 0 0 36px; }
.cv-heading > div { min-width: 0; }
.case-viz .cv-eyebrow { font-size: 10px; letter-spacing: .16em; line-height: 1.5; font-weight: 600; color: var(--cv-accent); margin: 0 0 15px; }
.case-viz .cv-heading h3 { font-size: clamp(22px, 2.2vw, 32px); line-height: 1.24; letter-spacing: -.035em; font-weight: 600; color: var(--cv-text); margin: 0; max-width: 38ch; text-wrap: balance; }
.case-dialog .cv-replay, .cv-replay {
  appearance: none; display: grid; place-items: center; width: 36px; height: 36px;
  min-width: 36px; flex: 0 0 36px; border: 1px solid var(--cv-line); border-radius: 50%;
  padding: 0; background: transparent; color: var(--cv-muted); cursor: pointer;
  transition: border-color .2s ease, color .2s ease, background .2s ease;
}
.case-dialog .cv-replay:hover:not(:disabled), .cv-replay:hover { background: #ffffff09; color: var(--cv-accent); border-color: var(--cv-accent); }
.case-dialog .cv-replay:focus-visible, .cv-replay:focus-visible { outline: 2px solid var(--cv-accent); outline-offset: 4px; }
.cv-replay .cv-icon { width: 16px; height: 16px; }
.cv-icon { width: 26px; height: 26px; flex-shrink: 0; color: var(--cv-accent); }
.cv-canvas { min-width: 0; }
.case-viz .cv-footnote { display: flex; gap: 9px; align-items: baseline; margin: 30px 0 0; padding-top: 19px; border-top: 1px solid var(--cv-line); color: #aba9b0; font-size: 11px; line-height: 1.65; max-width: none; }
.cv-footnote-dot { flex: 0 0 4px; width: 4px; height: 4px; border-radius: 50%; background: var(--cv-accent); position: relative; top: -2px; }
.case-viz h4 { margin: 0 0 10px; font-size: 17px; letter-spacing: -.02em; line-height: 1.4; font-weight: 600; }
.case-viz p { color: var(--cv-muted); font-size: 13px; line-height: 1.7; margin: 0; }
.cv-small-label { display: block; color: var(--cv-accent); font-size: 10px; letter-spacing: .13em; line-height: 1.6; margin-bottom: 12px; }

/* Connected steps. Line grows, then nodes arrive sequentially. */
.cv-flow { list-style: none; display: grid; grid-template-columns: repeat(var(--cv-columns, 4), minmax(0,1fr)); gap: 30px; padding: 0; margin: 0; position: relative; }
.cv-step { min-width: 0; position: relative; }
.cv-step:not(:last-child)::after { content: ""; position: absolute; height: 1px; left: 60px; right: -30px; top: 27px; background: var(--cv-line); transform-origin: left; }
.cv-step-mark { position: relative; display: grid; place-items: center; border: 1px solid var(--cv-line); border-radius: 16px; width: 56px; height: 56px; background: var(--cv-surface); margin-bottom: 28px; z-index: 1; }
.cv-step:last-child .cv-step-mark { border-color: var(--cv-accent); background: #ffffff06; }
.cv-step-index { display: block; font-size: 10px; letter-spacing: .12em; color: #8e8b95; margin-bottom: 9px; }
.cv-step > strong { display: block; font-size: 16px; line-height: 1.5; font-weight: 600; margin-bottom: 9px; }
.cv-step-note { display: block; max-width: 26ch; color: var(--cv-muted); font-size: 13px; line-height: 1.7; }
.cv-flow--loop { padding-bottom: 30px; }
.cv-flow--loop::after { content: ""; position: absolute; bottom: 0; left: 28px; right: 28px; height: 13px; border: 1px dashed var(--cv-line); border-top: 0; border-radius: 0 0 9px 9px; }
.cv-flow--loop::before { content: "↺"; position: absolute; bottom: -8px; left: calc(50% - 18px); padding-inline: 12px; background: var(--cv-surface); color: var(--cv-accent); z-index: 1; font-size: 17px; }

/* Branching role graph. */
.cv-role-map { display: grid; grid-template-columns: minmax(0,.9fr) minmax(0,1.1fr); gap: 9%; align-items: center; padding-block: 4px; }
.cv-role-anchor { position: relative; display: flex; align-items: flex-start; gap: 24px; padding: 32px; border-radius: 18px; border: 1px solid var(--cv-accent); background: #ffffff04; }
.cv-role-anchor > .cv-icon { width: 36px; height: 36px; margin-top: 4px; }
.cv-role-anchor strong { display: block; color: var(--cv-accent); font-size: clamp(20px,2.1vw,28px); letter-spacing: -.04em; line-height: 1.2; margin: 0 0 14px; }
.cv-role-anchor::after { content: ""; position: absolute; width: 11.1%; left: 100%; top: 50%; height: 1px; background: var(--cv-line); }
.cv-role-branches { display: grid; gap: 16px; position: relative; }
.cv-role-branches::before { content: ""; position: absolute; left: -9%; top: 16.6%; height: 66.6%; border-left: 1px solid var(--cv-line); }
.cv-pair { display: flex; align-items: flex-start; gap: 18px; min-width: 0; padding: 20px 24px; border: 1px solid var(--cv-line); border-radius: 16px; position: relative; background: #ffffff02; }
.cv-pair strong { display: block; font-weight: 600; font-size: 15px; line-height: 1.5; margin: 0 0 6px; }
.cv-pair p { max-width: 43ch; }
.cv-small-icon { display: grid; place-items: center; flex: 0 0 30px; padding-top: 2px; }
.cv-small-icon .cv-icon { width: 24px; height: 24px; }
.cv-role-branches .cv-pair::before { content: ""; position: absolute; left: -9%; width: 9%; height: 1px; background: var(--cv-line); top: 50%; }

/* Stage: the dotted future stage is intentionally not displayed as completed. */
.cv-stage-layout { display: grid; grid-template-columns: .9fr 1.1fr; gap: 8%; align-items: center; }
.cv-stage-number { display: flex; flex-wrap: wrap; column-gap: 20px; align-items: center; color: var(--cv-accent); font-weight: 500; font-size: clamp(70px,8vw,114px); line-height: 1; letter-spacing: -.06em; }
.cv-stage-number > span:first-child { color: #78846f; }
.cv-stage-number .cv-stage-arrow { font-size: .6em; letter-spacing: 0; }
.cv-stage-number p { flex-basis: 100%; margin-top: 24px; color: var(--cv-text); font-size: 16px; letter-spacing: -.01em; }
.cv-stage-track { margin: 0; padding: 0; list-style: none; display: grid; gap: 0; }
.cv-stage-item { position: relative; padding: 10px 0 26px 38px; }
.cv-stage-item:not(:last-child)::after { content: ""; position: absolute; top: 23px; bottom: -9px; left: 6px; border-left: 1px solid var(--cv-line); }
.cv-stage-item--current::after { border-left-style: dashed !important; }
.cv-stage-dot { position: absolute; left: 0; top: 15px; width: 13px; height: 13px; border: 1px solid var(--cv-accent); background: var(--cv-accent); border-radius: 50%; z-index: 1; }
.cv-stage-item--current .cv-stage-dot { box-shadow: 0 0 0 5px #d5edb312; }
.cv-stage-item--next .cv-stage-dot { border-style: dashed; background: var(--cv-surface); opacity: .7; }
.cv-stage-item small { display: block; color: #b1b5aa; font-size: 9px; letter-spacing: .1em; line-height: 1.5; margin-bottom: 8px; }
.cv-stage-item strong { display: block; font-size: 16px; font-weight: 500; line-height: 1.5; }
.cv-stage-item--current small, .cv-stage-item--current strong { color: var(--cv-accent); }
.cv-stage-item--next strong { color: var(--cv-muted); }

/* PlayJoob schematic and explicit population count. */
.cv-map-board { background: #ffffff02; border: 1px solid var(--cv-line); border-radius: 16px; margin-bottom: 30px; }
.cv-map-svg { display: block; width: 100%; max-height: 208px; overflow: visible; }
.cv-map-guide { fill: none; stroke: var(--cv-line); stroke-width: 1; stroke-dasharray: 4 5; }
.cv-draw { fill: none; stroke: var(--cv-accent); stroke-width: 1.5; stroke-dasharray: 1; stroke-dashoffset: 0; }
.cv-map-node { transform-box: fill-box; transform-origin: center; }
.cv-map-node path { fill: var(--cv-surface); stroke: var(--cv-accent); stroke-width: 1.3; }
.cv-map-node circle { fill: var(--cv-accent); }
.cv-pillars { display: grid; gap: 24px; }
.cv-pillars--3 { grid-template-columns: repeat(3,minmax(0,1fr)); }
.cv-pillar { min-width: 0; padding: 8px 24px 8px 0; }
.cv-pillar + .cv-pillar { border-left: 1px solid var(--cv-line); padding-left: 28px; }
.cv-pillar-icon { display: inline-flex; margin-bottom: 21px; }
.cv-pillar p { max-width: 30ch; }
.cv-users-layout { display: grid; grid-template-columns: .9fr 1.1fr; align-items: center; gap: 10%; padding-block: 8px; }
.cv-big-value { display: block; font-size: clamp(70px, 8.8vw, 124px); line-height: 1; font-weight: 500; color: var(--cv-accent); letter-spacing: -.07em; font-variant-numeric: tabular-nums; }
.cv-users-number h4, .cv-nps-total h4 { font-size: 20px; margin: 20px 0 0; font-weight: 500; }
.cv-user-secondary { display: grid; grid-template-columns: 1fr 1fr; margin-top: 34px; gap: 24px; }
.cv-user-secondary > div + div { border-left: 1px solid var(--cv-line); padding-left: 28px; }
.cv-user-secondary strong { display: block; font-weight: 500; font-size: 32px; line-height: 1.2; letter-spacing: -.04em; margin-bottom: 9px; }
.cv-user-secondary span { display: block; color: var(--cv-muted); font-size: 12px; line-height: 1.7; }
.cv-user-grid { display: grid; grid-template-columns: repeat(20,1fr); gap: clamp(5px,1vw,12px); padding-block: 12px; }
.cv-user-grid i { display: block; width: 100%; max-width: 9px; aspect-ratio: 1; background: var(--cv-accent); border-radius: 50%; }
.case-viz .cv-grid-key { color: #aaa6b1; font-size: 11px; line-height: 1.6; margin-top: 20px; }

/* Shared system branches, no implied product-performance metric. */
.cv-foundation-source { width: fit-content; max-width: 100%; margin: 0 auto; display: flex; align-items: center; gap: 24px; padding: 26px 40px; border: 1px solid var(--cv-accent); border-radius: 17px; }
.cv-foundation-source > .cv-icon { width: 36px; height: 36px; }
.cv-foundation-source strong { font-size: 25px; font-weight: 500; color: var(--cv-accent); line-height: 1.3; display: block; letter-spacing: -.035em; margin-bottom: 8px; }
.cv-foundation-source .cv-small-label { margin-bottom: 8px; }
.cv-foundation-output { padding-top: 42px; position: relative; }
.cv-foundation-output::before { content: ""; position: absolute; height: 22px; width: 1px; background: var(--cv-line); top: 0; left: 50%; }
.cv-foundation-output::after { content: ""; position: absolute; height: 20px; border: 1px solid var(--cv-line); border-bottom: 0; border-radius: 12px 12px 0 0; top: 21px; left: 15%; right: 15%; }
.cv-foundation .cv-pillar { border: 1px solid var(--cv-line); border-radius: 16px; padding: 24px; }

/* Honest NPS endpoint comparison: fixed full scale [-100, +100]. */
.cv-nps-layout { display: grid; grid-template-columns: .75fr 1.25fr; align-items: center; gap: 50px; padding-block: 16px; }
.cv-nps-total p { margin-top: 10px; }
.cv-nps-chart { min-width: 0; padding: 0 4px; }
.cv-nps-plot { position: relative; height: 158px; }
.cv-nps-axis { position: absolute; height: 1px; background: #5c6a67; top: 118px; width: 100%; }
.cv-nps-zero { position: absolute; height: 100px; bottom: 0; border-left: 1px dashed #526360; left: 50%; }
.cv-nps-change { position: absolute; left: 35%; width: 20%; height: 4px; top: 116.5px; background: var(--cv-accent); transform-origin: left; }
.cv-nps-marker { position: absolute; top: 111px; width: 15px; height: 15px; margin-left: -7.5px; border-radius: 50%; border: 2px solid var(--cv-accent); background: var(--cv-surface); }
.cv-nps-marker--before { left: 35%; }
.cv-nps-marker--after { left: 55%; background: var(--cv-accent); }
.cv-nps-marker > span { position: absolute; display: grid; gap: 8px; bottom: 28px; left: 50%; transform: translateX(-50%); }
.cv-nps-marker small { font-size: 9px; letter-spacing: .12em; color: var(--cv-muted); text-align: center; }
.cv-nps-marker strong { font-size: 27px; font-weight: 500; line-height: 1; letter-spacing: -.035em; white-space: nowrap; }
.cv-nps-marker--after strong { color: var(--cv-accent); }
.cv-nps-ticks { display: flex; justify-content: space-between; font-size: 11px; color: #adbab6; }

/* hyo: abstract floor plan / two meeting modes. */
.cv-split { display: grid; grid-template-columns: 1.1fr .9fr; gap: 40px; align-items: center; }
.cv-office { display: grid; grid-template-columns: 1.4fr 1fr; gap: 12px; padding: 16px; position: relative; border: 1px solid var(--cv-line); border-radius: 16px; background: #ffffff02; }
.cv-office-room { height: 184px; position: relative; border: 1px solid #6c5364; border-radius: 8px; padding: 18px; }
.cv-office-room--small { border-color: #55404e; }
.cv-room-label { color: #b79ead; font-size: 9px; letter-spacing: .12em; }
.cv-desks { display: grid; grid-template-columns: 1fr 1fr; gap: 23px 18px; width: 80%; margin-top: 28px; }
.cv-desks span { display: block; width: 100%; height: 22px; border: 1px solid #735a6b; border-radius: 5px; background: #ffffff03; }
.cv-round-table { width: 64px; height: 64px; border: 1px solid #735a6b; border-radius: 50%; margin: 22px auto 0; }
.cv-colleague { position: absolute; width: 12px; height: 12px; border-radius: 50%; border: 3px solid var(--cv-surface); box-shadow: 0 0 0 1px var(--cv-accent); background: var(--cv-accent); }
.cv-colleague--a { top: 72px; left: 25%; }
.cv-colleague--b { top: 118px; left: 58%; }
.cv-colleague--c { top: 88px; left: 67%; }
.cv-presence { grid-column: 1/-1; display: flex; align-items: center; gap: 10px; margin-top: 6px; font-size: 11px; color: #d5becb; }
.cv-presence-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--cv-accent); }
.cv-explainer { display: grid; gap: 16px; }
.cv-explainer .cv-pair { padding: 20px 0; border: 0; border-radius: 0; background: transparent; }
.cv-explainer .cv-pair + .cv-pair { border-top: 1px solid var(--cv-line); }
.cv-conversations { display: grid; grid-template-columns: 1fr .5fr 1fr; align-items: center; gap: 26px; }
.cv-conversation { border: 1px solid var(--cv-line); border-radius: 17px; padding: 28px; min-width: 0; align-self: stretch; }
.cv-conversation > .cv-icon { margin: 10px 0 28px; width: 34px; height: 34px; }
.cv-conversation-join { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 16px; color: var(--cv-accent); font-size: 12px; line-height: 1.7; position: relative; }
.cv-conversation-join::before, .cv-conversation-join::after { content: ""; position: absolute; width: 28px; height: 1px; background: var(--cv-line); top: 13px; }
.cv-conversation-join::before { right: 100%; }
.cv-conversation-join::after { left: 100%; }
.cv-output-layout { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 50px; padding-block: 10px; }
.cv-output-word { display: block; color: var(--cv-accent); font-size: clamp(36px,4.5vw,64px); font-weight: 500; line-height: 1.1; letter-spacing: -.055em; margin-bottom: 24px; }
.cv-output-label p { max-width: 35ch; }
.cv-output-cards { display: grid; gap: 16px; }
.cv-capabilities .cv-pillar { border: 1px solid var(--cv-line); border-radius: 17px; padding: 28px; }
.cv-capabilities .cv-pillar-icon { margin-bottom: 40px; }
.cv-capabilities .cv-icon { width: 38px; height: 38px; }

/* Two separate client projects, never joined into one system. */
.cv-dual-context { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; }
.cv-context-card { padding: 30px; border: 1px solid var(--cv-line); border-radius: 18px; position: relative; }
.cv-context-index { display: block; font-size: 57px; letter-spacing: -.06em; font-weight: 500; color: var(--cv-accent); line-height: 1; margin-bottom: 36px; }
.cv-context-card > .cv-icon { position: absolute; top: 32px; right: 28px; width: 32px; height: 32px; }
.cv-context-card h4 { font-size: 21px; }
.cv-context-tag { display: inline-block; margin-top: 28px; padding: 8px 11px; border: 1px solid var(--cv-line); border-radius: 6px; font-size: 8px; line-height: 1.5; letter-spacing: .1em; color: var(--cv-accent); }
.cv-task-lanes { display: grid; gap: 18px; }
.cv-task-lane { display: grid; grid-template-columns: minmax(180px,.8fr) 2fr; gap: 28px; align-items: center; padding: 24px; border: 1px solid var(--cv-line); border-radius: 16px; }
.cv-task-lane > strong { display: flex; align-items: center; gap: 15px; font-size: 14px; font-weight: 500; }
.cv-task-lane > div { display: grid; grid-template-columns: repeat(3,1fr); gap: 12px; }
.cv-task-chip { padding: 18px 12px; text-align: center; border-radius: 9px; background: #ffffff05; border: 1px solid var(--cv-line); color: #e0d5cc; font-size: 12px; line-height: 1.7; }

/* Finite scroll/replay animations. Static content stays readable without JS. */
.cm-armed:not(.cm-played):not(.cm-playing) .cv-reveal,
.cm-armed:not(.cm-played):not(.cm-playing) .cv-pop { opacity: 0; }
.cm-armed:not(.cm-played):not(.cm-playing) .cv-draw { stroke-dashoffset: 1; }
.cm-armed:not(.cm-played):not(.cm-playing) .cv-bar { transform: scaleX(0); }
.cm-playing .cv-reveal { animation: cv-rise .7s cubic-bezier(.2,.7,.15,1) both; animation-delay: calc(var(--cv-i,0) * 115ms); }
.cm-playing .cv-pop { animation: cv-pop .6s cubic-bezier(.2,.75,.2,1) both; animation-delay: calc(var(--cv-i,0) * 100ms); }
.cm-playing .cv-draw { animation: cv-draw 1.4s cubic-bezier(.3,.5,.3,1) both; }
.cm-playing .cv-bar { animation: cv-grow 1.15s cubic-bezier(.2,.7,.2,1) both; }
.cm-playing .cv-step::after { animation: cv-grow .85s cubic-bezier(.2,.7,.15,1) both; animation-delay: calc(var(--cv-i,0) * 130ms + 130ms); }
.cm-playing .cv-foundation-output::before, .cm-playing .cv-foundation-output::after { animation: cv-rise .8s ease both; }
.cm-playing .cv-role-branches::before { animation: cv-grow-y 1s ease both; transform-origin: top; }
.cm-playing .cv-role-branches .cv-pair::before { animation: cv-grow .65s ease both; transform-origin: left; }
.cm-playing .cv-replay .cv-icon { animation: cv-replay-spin .6s ease; }
@keyframes cv-rise { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: translateY(0); } }
@keyframes cv-pop { from { opacity: 0; transform: scale(.6); } to { opacity: 1; transform: scale(1); } }
@keyframes cv-draw { from { stroke-dashoffset: 1; } to { stroke-dashoffset: 0; } }
@keyframes cv-grow { from { transform: scaleX(0); } to { transform: scaleX(1); } }
@keyframes cv-grow-y { from { transform: scaleY(0); } to { transform: scaleY(1); } }
@keyframes cv-replay-spin { to { transform: rotate(-360deg); } }

@media (min-width:1800px) { .case-detail { padding-inline: 76px; } .case-dialog__bar { padding-inline: 76px; } }
@media (max-width:1050px) {
 .case-story { gap: 38px 38px; }
 .case-detail--lcmd .case-decisions { grid-template-columns: 1fr; gap: 28px; }
 .case-detail--lcmd .case-decisions p { max-width: 76ch; }
 .cv-role-map { gap: 7%; }
 .cv-role-anchor { padding: 26px 22px; gap: 15px; }
 .cv-flow { gap: 22px; }
 .cv-step:not(:last-child)::after { right: -22px; }
 .cv-step-note { font-size: 12px; }
 .cv-split { grid-template-columns: 1fr 1fr; gap: 24px; }
 .cv-conversations { gap: 18px; grid-template-columns: 1fr .4fr 1fr; }
 .cv-conversation { padding: 24px; }
 .cv-conversation-join::before, .cv-conversation-join::after { width: 18px; }
 .cv-task-lane { grid-template-columns: 1fr; gap: 22px; }
 .cv-nps-layout { gap: 30px; }
}
@media (max-width:760px) {
 .case-dialog { width: calc(100vw - 16px); height: calc(100svh - 16px); max-height: calc(100svh - 16px); border-radius: 20px; }
 .case-dialog__bar { min-height: 66px; padding: 12px 18px; gap: 8px; }
 .case-detail { padding: 34px 22px 54px; }
 .case-detail__category { font-size: 12px; margin-bottom: 18px; }
 .case-detail__title { font-size: clamp(49px,11.4vw,80px); }
 .case-detail__meta { gap: 22px 30px; margin: 30px 0 38px; }
 .case-detail__meta p { font-size: 12px; }
 .case-detail__lead { font-size: 19px; line-height: 1.7; }
 .case-story { grid-template-columns: 1fr; gap: 32px; margin-top: 36px; }
 .case-story p { font-size: 14px; }
 .case-story__key-decisions { padding-block: 30px; }
 .case-decisions { grid-template-columns: 1fr; gap: 28px; }
 .case-context h3, .case-story h3 { font-size: 16px; margin-bottom: 14px; }
 .case-tools { margin-block: 38px 30px; }
 .case-gallery { gap: 36px; }
 .case-gallery__item img { border-radius: 13px; }
 .case-gallery__item figcaption { margin-top: 14px; }
 .case-gallery__item strong { font-size: 14px; }
 .case-gallery__item span { font-size: 11px; }
 .classflow-overview { margin-top: 30px; }
 .classflow-workflow { padding-block: 30px; margin-top: 38px; }
 .classflow-steps { gap: 24px; }
 .classflow-case-page .case-page-bar { padding-inline: 22px; }
 .case-viz { padding: 24px; border-radius: 18px; margin: 4px 0; }
 .cv-heading { gap: 12px; margin-bottom: 30px; }
 .case-viz .cv-heading h3 { font-size: 24px; line-height: 1.28; }
 .case-viz .cv-eyebrow { font-size: 9px; letter-spacing: .11em; margin-bottom: 12px; }
 .case-dialog .cv-replay, .cv-replay { width: 32px; min-width: 32px; flex-basis: 32px; height: 32px; }
 .case-viz p { font-size: 12px; line-height: 1.7; }
 .case-viz .cv-footnote { font-size: 10px; margin-top: 26px; padding-top: 16px; }
 .cv-flow { grid-template-columns: 1fr; gap: 26px; }
 .cv-step { padding-left: 76px; min-height: 88px; }
 .cv-step-mark { position: absolute; left: 0; top: 0; width: 50px; height: 50px; margin: 0; border-radius: 14px; }
 .cv-step:not(:last-child)::after { width: 1px; height: auto; top: 56px; bottom: -20px; left: 25px; right: auto; transform-origin: top; }
 .cv-step > strong { margin-bottom: 6px; }
 .cv-step-index { margin-bottom: 5px; }
 .cv-step-note { max-width: 42ch; font-size: 12px; }
 .cm-playing .cv-step::after { animation-name: cv-grow-y; }
 .cv-flow--loop { padding-bottom: 20px; }
 .cv-flow--loop::after { left: 25px; right: 0; }
 .cv-role-map { grid-template-columns: 1fr; gap: 28px; }
 .cv-role-anchor { padding: 24px; }
 .cv-role-anchor::after { left: 24px; top: 100%; width: 1px; height: 28px; }
 .cv-role-branches { padding-left: 24px; gap: 12px; }
 .cv-role-branches::before { left: 24px; top: -28px; height: calc(83.4% + 28px); }
 .cv-role-branches .cv-pair::before { left: -17px; width: 17px; }
 .cv-role-branches .cv-pair { margin-left: 16px; padding: 18px 16px; gap: 12px; }
 .cv-role-branches .cv-small-icon { flex-basis: 24px; }
 .cv-role-anchor strong { font-size: 24px; }
 .cv-stage-layout, .cv-users-layout, .cv-nps-layout, .cv-split, .cv-output-layout { grid-template-columns: 1fr; gap: 34px; }
 .cv-stage-number { font-size: 86px; gap: 18px; }
 .cv-stage-number p { font-size: 14px; margin-top: 20px; }
 .cv-stage-item strong { font-size: 15px; }
 .cv-stage-item:last-child { padding-bottom: 0; }
 .cv-map-svg { min-height: 130px; }
 .cv-pillars--3 { grid-template-columns: 1fr; gap: 18px; }
 .cv-pillar, .cv-pillar + .cv-pillar { padding: 0 0 18px; border-left: 0; border-bottom: 1px solid var(--cv-line); }
 .cv-pillar:last-child { border-bottom: 0; padding-bottom: 0; }
 .cv-pillar-icon { margin-bottom: 14px; }
 .cv-pillar p { max-width: 48ch; }
 .cv-big-value { font-size: 90px; }
 .cv-users-number h4, .cv-nps-total h4 { font-size: 18px; margin-top: 18px; }
 .cv-user-secondary { margin-top: 28px; }
 .cv-user-grid { gap: 8px; }
 .cv-user-grid i { max-width: 8px; }
 .cv-foundation-source { padding: 22px; gap: 18px; width: 100%; }
 .cv-foundation-source > .cv-icon { width: 28px; height: 28px; }
 .cv-foundation-source strong { font-size: 23px; }
 .cv-foundation-output { padding-top: 30px; }
 .cv-foundation-output::after { display: none; }
 .cv-foundation-output::before { height: 30px; }
 .cv-foundation .cv-pillar { padding: 22px; }
 .cv-nps-plot { height: 138px; }
 .cv-nps-axis { top: 100px; }
 .cv-nps-change { top: 98.5px; }
 .cv-nps-marker { top: 93px; }
 .cv-nps-marker strong { font-size: 22px; }
 .cv-nps-marker--before > span { left: auto; right: 50%; transform: none; text-align: right; }
 .cv-nps-marker--after > span { left: 50%; transform: none; }
 .cv-nps-marker small { font-size: 8px; }
 .cv-office { padding: 12px; gap: 10px; }
 .cv-office-room { height: 164px; padding: 13px; }
 .cv-explainer { gap: 6px; }
 .cv-explainer .cv-pair { padding-block: 16px; }
 .cv-conversations { grid-template-columns: 1fr; gap: 22px; }
 .cv-conversation { padding: 24px; }
 .cv-conversation > .cv-icon { margin-block: 5px 22px; }
 .cv-conversation-join { flex-direction: row; justify-content: center; padding: 12px; gap: 14px; }
 .cv-conversation-join::before, .cv-conversation-join::after { width: 1px; height: 22px; left: 50%; right: auto; }
 .cv-conversation-join::before { top: -22px; }
 .cv-conversation-join::after { top: 100%; }
 .cv-conversation-join br { display: none; }
 .cv-output-word { font-size: 50px; }
 .cv-capabilities .cv-pillar { padding: 24px; }
 .cv-capabilities .cv-pillar-icon { margin-bottom: 28px; }
 .cv-dual-context { grid-template-columns: 1fr; gap: 20px; }
 .cv-context-card { padding: 26px; }
 .cv-context-card h4 { font-size: 21px; }
 .cv-context-index { font-size: 50px; margin-bottom: 26px; }
 .cv-task-lane { padding: 22px; gap: 20px; }
 .cv-task-lane > div { grid-template-columns: 1fr; gap: 10px; }
 .cv-task-chip { text-align: left; padding: 14px 16px; }
}
@media (max-width:400px) {
 .case-detail { padding-inline: 18px; }
 .case-viz { padding: 20px; }
 .case-viz .cv-heading h3 { font-size: 22px; }
 .cv-heading { gap: 8px; }
 .cv-step { padding-left: 66px; }
 .cv-user-grid { gap: 5px; }
 .cv-role-anchor { padding: 20px; gap: 14px; }
 .cv-role-anchor > .cv-icon { width: 26px; }
 .cv-round-table { width: 48px; height: 48px; }
 .cv-office-room { padding: 10px; }
 .cv-pair { padding: 18px; gap: 14px; }
 .cv-small-label { font-size: 9px; }
}
@media (prefers-reduced-motion:reduce) {
 .case-detail *, .case-detail *::before, .case-detail *::after { animation: none !important; transition: none !important; }
 .cm-armed .cv-reveal, .cm-armed .cv-pop { opacity: 1 !important; transform: none !important; }
 .cm-armed .cv-draw { stroke-dashoffset: 0 !important; }
 .cm-armed .cv-bar { transform: none !important; }
 .case-dialog__bar::after { transition: none; }
}
/* Author display rules must not override the hidden attribute. */
.case-dialog .cv-replay[hidden], .cv-replay[hidden] { display: none !important; }

/* Source: design-ai.css */
/* v3.30 — Scoped final polish. Existing project cards / case stories are untouched.
   No typefaces, frameworks, imagery or dependencies are added. */
.design-ai {
  --aiw-accent: #d3b6f6;
  --aiw-text: #eee9f3;
  --aiw-muted: #b1aabf;
  --aiw-line: rgba(211,182,246,.21);
  --aiw-surface: #121017;
  padding-block: clamp(90px, 8vw, 128px);
}
.design-ai__inner {
  max-width: 1440px;
  grid-template-columns: .62fr 1.38fr;
  column-gap: clamp(28px, 4vw, 64px);
  row-gap: clamp(48px, 5vw, 80px);
}
.design-ai__inner > h2 { margin-block: 7px 0; }
.design-ai__intro { min-width: 0; }
.design-ai__copy {
  max-width: 41ch;
  font-size: clamp(24px, 2.65vw, 38px);
  line-height: 1.43;
  letter-spacing: -.035em;
  text-wrap: pretty;
}
.aiw {
  grid-column: 1 / -1;
  position: relative;
  min-width: 0;
  isolation: isolate;
  margin: 0;
  padding: clamp(28px, 3.4vw, 48px);
  border: 1px solid var(--aiw-line);
  border-radius: 28px;
  background: var(--aiw-surface);
  color: var(--aiw-text);
}
.aiw-heading {
  display: flex;
  gap: 24px;
  align-items: center;
  justify-content: space-between;
  margin-bottom: clamp(36px, 4vw, 54px);
}
.aiw-heading > #aiw-caption { font-size: 10px; line-height: 1.7; letter-spacing: .16em; color: var(--aiw-accent); font-weight: 600; }
.aiw-heading__controls { display: flex; align-items: center; gap: 24px; flex: 0 0 auto; }
.aiw-progress { display: flex; gap: 8px; font-size: 11px; letter-spacing: .08em; font-variant-numeric: tabular-nums; color: #8f869c; }
.aiw-progress b { color: var(--aiw-accent); font-weight: 500; min-width: 1.5em; }
.aiw-replay {
  display: grid; place-items: center; width: 36px; height: 36px; padding: 0;
  flex: 0 0 36px; border: 1px solid var(--aiw-line); border-radius: 50%;
  background: transparent; color: var(--aiw-muted); cursor: pointer;
  transition: color .2s ease, border-color .2s ease, background .2s ease;
}
.aiw-replay[hidden] { display: none; }
.aiw-replay:hover { color: var(--aiw-accent); border-color: var(--aiw-accent); background: #d3b6f608; }
.aiw-replay:focus-visible { outline: 2px solid var(--aiw-accent); outline-offset: 5px; }
.aiw-replay svg { width: 16px; height: 16px; stroke: currentColor; stroke-width: 1.25; stroke-linecap: round; stroke-linejoin: round; }
.aiw-stages { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 28px; padding: 0; margin: 0; list-style: none; }
.aiw-stage { position: relative; min-width: 0; }
.aiw-stage__mark { position: relative; z-index: 1; display: grid; place-items: center; width: 34px; height: 34px; border: 1px solid var(--aiw-accent); border-radius: 50%; background: var(--aiw-surface); color: var(--aiw-accent); font-size: 10px; font-weight: 500; font-variant-numeric: tabular-nums; letter-spacing: .06em; }
.aiw-stage__body { margin-top: 28px; }
.aiw-stage__visual { height: 112px; width: min(100%, 160px); margin-bottom: 30px; }
.aiw-stage__visual svg { width: 100%; height: 100%; display: block; stroke-width: 1.35; stroke-linecap: round; stroke-linejoin: round; overflow: visible; }
.aiw-stage h3 { margin: 0 0 13px; font-size: clamp(16px, 1.42vw, 21px); line-height: 1.35; font-weight: 600; letter-spacing: -.035em; }
.aiw-stage p { max-width: 25ch; margin: 0; color: var(--aiw-muted); font-size: 13px; font-weight: 500; line-height: 1.8; }
.aiw-connector { position: absolute; left: 46px; right: -16px; top: 16px; height: 1px; background: var(--aiw-line); transform-origin: left; }
.aiw-connector i { display: block; width: 100%; height: 100%; background: var(--aiw-accent); opacity: .65; transform-origin: left; }
.aiw-connector::after { content: ''; position: absolute; right: 0; top: -2px; width: 5px; height: 5px; border-top: 1px solid var(--aiw-accent); border-right: 1px solid var(--aiw-accent); transform: rotate(45deg); opacity: .65; }
.aiw-stage:last-child .aiw-connector { display: none; }
.aiw-guide { stroke: var(--aiw-line); }
.aiw-draw { stroke: var(--aiw-accent); stroke-dasharray: 1; stroke-dashoffset: 0; opacity: .85; }
.aiw-bright { stroke-width: 1.65; opacity: 1; }
.aiw-node { fill: var(--aiw-surface); stroke: var(--aiw-accent); }
.aiw-soft { fill: #d3b6f607; stroke: #766786; }
.aiw-fill { fill: var(--aiw-accent); }
.aiw-muted-fill { fill: #81718f; }
.aiw-cursor { fill: var(--aiw-accent); stroke: var(--aiw-surface); stroke-width: 1.7; }
.aiw-pop { transform-box: fill-box; transform-origin: center; }
.aiw-scan { stroke: var(--aiw-accent); stroke-width: 1.4; opacity: 0; }
.aiw-loop { position: relative; margin: 39px 15px 0 16px; height: 44px; color: var(--aiw-muted); }
.aiw-loop > svg { position: absolute; width: 100%; height: 32px; }
.aiw-loop__guide { stroke: var(--aiw-line); stroke-width: 1; stroke-dasharray: 3 5; vector-effect: non-scaling-stroke; }
.aiw-loop__trace { stroke: var(--aiw-accent); stroke-width: 1; stroke-dasharray: 1; stroke-dashoffset: 0; opacity: .45; }
.aiw-loop > span { position: absolute; left: 50%; top: 12px; transform: translateX(-50%); background: var(--aiw-surface); display: flex; align-items: center; gap: 9px; padding: 0 18px; white-space: nowrap; font-size: 11px; letter-spacing: .01em; line-height: 24px; }
.aiw-loop > span svg { width: 14px; height: 14px; stroke: var(--aiw-accent); stroke-width: 1; stroke-linecap: round; stroke-linejoin: round; }
.aiw-note { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; border-top: 1px solid var(--aiw-line); padding-top: 25px; margin-top: 32px; color: var(--aiw-muted); font-size: 11px; line-height: 1.7; }
.aiw-note__support { display: flex; gap: 10px; align-items: center; color: var(--aiw-accent); }
.aiw-note__support svg { width: 17px; height: 17px; stroke: currentColor; stroke-width: 1; }

/* Motion is enhancement only: the unarmed/no-JS view is the finished diagram. */
.aiw.is-motion-ready .aiw-stage:not(.is-active):not(.is-complete) .aiw-stage__mark { color: #a69aad; border-color: var(--aiw-line); }
.aiw.is-motion-ready .aiw-stage:not(.is-active):not(.is-complete) .aiw-stage__visual { opacity: .42; }
.aiw.is-motion-ready .aiw-stage:not(.is-active):not(.is-complete) .aiw-connector i { transform: scaleX(0); }
.aiw.is-motion-ready:not(.is-complete) .aiw-loop__trace { stroke-dashoffset: 1; }
.aiw-stage.is-active .aiw-stage__mark { animation: aiw-mark 1.3s ease-out both; }
.aiw-stage.is-active .aiw-stage__visual { animation: aiw-rise .8s cubic-bezier(.2,.7,.2,1) both; }
.aiw-stage.is-active .aiw-draw { animation: aiw-draw 1.1s cubic-bezier(.3,.65,.2,1) .18s both; }
.aiw-stage.is-active .aiw-pop { animation: aiw-pop .7s cubic-bezier(.2,.75,.25,1) calc(var(--part,0) * 90ms) both; }
.aiw-stage.is-active .aiw-connector i { animation: aiw-connect .78s cubic-bezier(.3,.7,.2,1) .3s both; }
.aiw-stage.is-active .aiw-scan { animation: aiw-scan 1.35s ease-in-out both; }
.aiw.is-motion-ready.is-complete .aiw-loop__trace { animation: aiw-draw 1.1s ease-out both; }
@keyframes aiw-mark { 0% { border-color: var(--aiw-line); box-shadow: 0 0 0 0 #d3b6f612; } 35% { box-shadow: 0 0 0 7px #d3b6f609; } 100% { border-color: var(--aiw-accent); box-shadow: 0 0 0 12px #d3b6f600; } }
@keyframes aiw-rise { from { opacity: .3; transform: translateY(7px); } to { opacity: 1; transform: none; } }
@keyframes aiw-draw { from { stroke-dashoffset: 1; } to { stroke-dashoffset: 0; } }
@keyframes aiw-pop { from { opacity: .15; transform: translateY(5px) scale(.94); } to { opacity: 1; transform: none; } }
@keyframes aiw-connect { from { transform: scaleX(0); } to { transform: scaleX(1); } }
@keyframes aiw-scan { 0% { opacity: 0; transform: translateY(-5px); } 20%,65% { opacity: .85; } 100% { opacity: 0; transform: translateY(25px); } }

/* Exact same top and bottom padding, with no minimum-height surplus. */
.site-footer { min-height: 0; min-block-size: 0; padding-block: 62px; align-content: start; }

@media (max-width: 1100px) and (min-width: 901px) {
  .aiw { padding-inline: 30px; }
  .aiw-stages { gap: 20px; }
  .aiw-connector { right: -8px; }
  .aiw-stage h3 { font-size: 15px; letter-spacing: -.04em; }
  .aiw-stage p { font-size: 11px; }
  .aiw-stage__visual { height: 100px; }
}
@media (max-width: 1000px) {
  .design-ai__inner { grid-template-columns: 1fr; row-gap: 28px; }
  .design-ai__copy { max-width: 43ch; font-size: clamp(25px,3.7vw,36px); }
  .aiw { margin-top: 25px; }
}
@media (max-width: 900px) {
  .design-ai { padding-block: 84px; }
  .aiw { padding: 32px; }
  .aiw-heading { margin-bottom: 40px; }
  .aiw-stages { grid-template-columns: 1fr; gap: 36px; }
  .aiw-stage { display: grid; grid-template-columns: 34px minmax(0,1fr); column-gap: 24px; }
  .aiw-stage__mark { margin-top: 4px; }
  .aiw-stage__body { margin: 0; display: grid; grid-template-columns: minmax(0,1fr) 160px; gap: 8px 28px; align-items: center; }
  .aiw-stage__visual { grid-column: 2; grid-row: 1 / 3; width: 160px; height: 112px; margin: 0; }
  .aiw-stage h3 { grid-column: 1; grid-row: 1; align-self: end; margin: 0; font-size: 22px; }
  .aiw-stage p { grid-column: 1; grid-row: 2; align-self: start; font-size: 13px; }
  .aiw-connector { left: 16px; right: auto; width: 1px; top: 50px; bottom: -25px; height: auto; }
  .aiw-connector i { transform-origin: top; }
  .aiw-connector::after { top: auto; bottom: 0; left: -2px; transform: rotate(135deg); }
  .aiw.is-motion-ready .aiw-stage:not(.is-active):not(.is-complete) .aiw-connector i { transform: scaleY(0); }
  .aiw-stage.is-active .aiw-connector i { animation-name: aiw-connect-vertical; }
  .aiw-loop { margin: 34px 0 0 58px; }
  .aiw-loop > svg { display: none; }
  .aiw-loop > span { left: 0; transform: none; padding-left: 0; }
  .aiw-note { margin-top: 20px; }
}
@keyframes aiw-connect-vertical { from { transform: scaleY(0); } to { transform: scaleY(1); } }
@media (max-width: 600px) {
  .design-ai { padding-block: 72px 80px; }
  .design-ai__inner { row-gap: 24px; }
  .design-ai__copy { font-size: clamp(24px,6.2vw,31px); line-height: 1.48; }
  .aiw { border-radius: 23px; padding: 27px 23px; margin-top: 20px; }
  .aiw-heading { gap: 14px; align-items: flex-start; margin-bottom: 42px; }
  .aiw-heading > #aiw-caption { font-size: 9px; max-width: 21ch; }
  .aiw-heading__controls { gap: 12px; }
  .aiw-progress { font-size: 10px; gap: 5px; margin-top: 9px; }
  .aiw-replay { width: 32px; height: 32px; flex-basis: 32px; }
  .aiw-stages { gap: 38px; }
  .aiw-stage { grid-template-columns: 30px minmax(0,1fr); column-gap: 18px; }
  .aiw-stage__mark { width: 30px; height: 30px; font-size: 9px; margin-top: 0; }
  .aiw-stage__body { grid-template-columns: minmax(0,1fr) 102px; gap: 11px 8px; }
  .aiw-stage h3 { grid-column: 1 / -1; align-self: center; min-height: 30px; display: flex; align-items: center; font-size: 18px; }
  .aiw-stage p { grid-column: 1; grid-row: 2; align-self: center; font-size: 11px; line-height: 1.75; }
  .aiw-stage p br { display: none; }
  .aiw-stage__visual { grid-column: 2; grid-row: 2; width: 102px; height: 78px; }
  .aiw-connector { left: 14px; top: 42px; bottom: -26px; }
  .aiw-loop { margin-left: 48px; }
  .aiw-loop > span { font-size: 10px; gap: 7px; padding-right: 0; }
  .aiw-note { flex-direction: column; align-items: flex-start; gap: 10px; padding-top: 23px; font-size: 10px; }
  .site-footer { padding-block: 44px; }
}
@media (max-width: 360px) {
  .aiw { padding-inline: 18px; }
  .aiw-heading__controls { gap: 9px; }
  .aiw-heading > #aiw-caption { font-size: 8px; }
  .aiw-stage { column-gap: 14px; }
  .aiw-stage__body { grid-template-columns: minmax(0,1fr) 86px; }
  .aiw-stage__visual { width: 86px; }
  .aiw-stage p { font-size: 10px; }
  .aiw-loop { margin-left: 44px; }
}
@media (prefers-reduced-motion: reduce) {
  .aiw *, .aiw *::before, .aiw *::after { animation: none !important; transition: none !important; }
  .aiw-stage__visual, .aiw-draw, .aiw-pop { opacity: 1 !important; transform: none !important; stroke-dashoffset: 0 !important; }
  .aiw-connector i { transform: none !important; }
  .aiw-loop__trace { stroke-dashoffset: 0 !important; }
  .aiw-replay { display: none; }
}
