/* Editorial Framework visual system v2 — The Living Editorial Atelier */

:root,
[data-theme='light'] {
  --v2-canvas: #fbfcfa;
  --v2-paper: #ffffff;
  --v2-ink: #172933;
  --v2-ink-soft: #52616a;
  --v2-blue: #25677a;
  --v2-blue-soft: #dcecef;
  --v2-plum: #264b5d;
  --v2-plum-soft: #dfe9e7;
  --v2-coral: #a96f2c;
  --v2-coral-soft: #f1e5cf;
  --v2-yellow: #e2ba58;
  --v2-mint: #cbdcd4;
  --v2-bright: #68afbf;
  /* Fixed ink colors for cream, tan, white, and pale panels in every theme. */
  --v2-on-light: #172933;
  --v2-on-light-soft: #52616a;
  --v2-line: rgba(23, 41, 51, 0.16);
  --v2-shadow: 0 24px 70px rgba(49, 48, 38, 0.12);
  --color-bg: var(--v2-canvas);
  --color-surface: var(--v2-paper);
  --color-surface-2: #ffffff;
  --color-surface-offset: #f0f4f2;
  --color-surface-offset-2: #e6ece9;
  --color-divider: #d8e1dd;
  --color-border: #c6d1cc;
  --color-text: var(--v2-ink);
  --color-text-muted: var(--v2-ink-soft);
  --color-text-faint: #6e756f;
  --color-primary: var(--v2-blue);
  --color-primary-hover: #19475c;
  --color-primary-active: #123a4c;
  --color-primary-highlight: var(--v2-blue-soft);
  --radius-sm: 0.55rem;
  --radius-md: 0.9rem;
  --radius-lg: 1.25rem;
  --radius-xl: 1.75rem;
}

[data-theme='mineral'] {
  --v2-canvas: #f5fbfb;
  --v2-paper: #ffffff;
  --v2-ink: #12313b;
  --v2-ink-soft: #48636b;
  --v2-blue: #216b7a;
  --v2-blue-soft: #d9edf0;
  --v2-plum: #315d66;
  --v2-plum-soft: #dceae7;
  --v2-coral: #9a6227;
  --v2-coral-soft: #f0e2c8;
  --v2-yellow: #e7bf52;
  --v2-mint: #d1e5dc;
  --v2-bright: #5eb0bf;
  --v2-line: rgba(18,49,59,.18);
  --v2-shadow: 0 24px 70px rgba(33,73,80,.12);
  --color-bg: var(--v2-canvas);
  --color-surface: var(--v2-paper);
  --color-surface-2: #f9fdfd;
  --color-surface-offset: #eaf3f1;
  --color-surface-offset-2: #deebe8;
  --color-divider: #cfddda;
  --color-border: #b9cbc7;
  --color-text: var(--v2-ink);
  --color-text-muted: var(--v2-ink-soft);
  --color-text-faint: #66797c;
  --color-primary: var(--v2-blue);
  --color-primary-hover: #174c59;
  --color-primary-active: #103e49;
  --color-primary-highlight: var(--v2-blue-soft);
}

[data-theme='research'] {
  --v2-canvas: #edf5f7;
  --v2-paper: #fbfdfe;
  --v2-ink: #17313f;
  --v2-ink-soft: #4e6672;
  --v2-blue: #315f7d;
  --v2-blue-soft: #d8e8ef;
  --v2-plum: #3d6470;
  --v2-plum-soft: #dce9eb;
  --v2-coral: #8c6030;
  --v2-coral-soft: #eee2cf;
  --v2-yellow: #dcb959;
  --v2-mint: #cedfd8;
  --v2-bright: #6daabd;
  --v2-line: rgba(23,49,63,.2);
  --v2-shadow: 0 20px 60px rgba(28,63,79,.13);
  --color-bg: var(--v2-canvas);
  --color-surface: var(--v2-paper);
  --color-surface-2: #f5fafc;
  --color-surface-offset: #e2edf1;
  --color-surface-offset-2: #d5e4e9;
  --color-divider: #c5d7de;
  --color-border: #afc5ce;
  --color-text: var(--v2-ink);
  --color-text-muted: var(--v2-ink-soft);
  --color-text-faint: #657984;
  --color-primary: var(--v2-blue);
  --color-primary-hover: #244b65;
  --color-primary-active: #1c3e54;
  --color-primary-highlight: var(--v2-blue-soft);
}

[data-theme='contrast'] {
  --v2-canvas: #ffffff;
  --v2-paper: #ffffff;
  --v2-ink: #080b0d;
  --v2-ink-soft: #30383c;
  --v2-blue: #005a78;
  --v2-blue-soft: #d7eff8;
  --v2-plum: #173f49;
  --v2-plum-soft: #dcecea;
  --v2-coral: #784100;
  --v2-coral-soft: #f5e4c5;
  --v2-yellow: #ffdf66;
  --v2-mint: #d6ebe1;
  --v2-bright: #42a6bc;
  --v2-line: rgba(8,11,13,.38);
  --v2-shadow: 0 0 0 2px rgba(8,11,13,.18);
  --color-bg: #ffffff;
  --color-surface: #ffffff;
  --color-surface-2: #ffffff;
  --color-surface-offset: #f0f2f3;
  --color-surface-offset-2: #e3e7e9;
  --color-divider: #6b7478;
  --color-border: #3d464a;
  --color-text: var(--v2-ink);
  --color-text-muted: var(--v2-ink-soft);
  --color-text-faint: #424a4e;
  --color-primary: var(--v2-blue);
  --color-primary-hover: #003f55;
  --color-primary-active: #003444;
  --color-primary-highlight: var(--v2-blue-soft);
}

[data-theme='dark'] {
  --v2-canvas: #18252c;
  --v2-paper: #22323a;
  --v2-ink: #fff7e9;
  --v2-ink-soft: #d4c8d2;
  --v2-blue: #84c4d2;
  --v2-blue-soft: #2b4650;
  --v2-plum: #78b9c2;
  --v2-plum-soft: #304a50;
  --v2-coral: #dda64f;
  --v2-coral-soft: #4c3c25;
  --v2-yellow: #ecc96f;
  --v2-mint: #3d5a50;
  --v2-bright: #82cbd6;
  --v2-line: rgba(255, 247, 233, 0.17);
  --v2-shadow: 0 24px 70px rgba(7, 4, 10, 0.28);
  --color-bg: var(--v2-canvas);
  --color-surface: var(--v2-paper);
  --color-surface-2: #2a3c45;
  --color-surface-offset: #203139;
  --color-surface-offset-2: #2b4048;
  --color-divider: #3c525c;
  --color-border: #526a74;
  --color-text: var(--v2-ink);
  --color-text-muted: var(--v2-ink-soft);
  --color-text-faint: #b3a7b3;
  --color-text-inverse: #18252c;
  --color-primary: var(--v2-blue);
  --color-primary-hover: #a4d8e6;
  --color-primary-active: #bce5ef;
  --color-primary-highlight: var(--v2-blue-soft);
}

html { scroll-padding-top: 7.5rem; }
body {
  background:
    radial-gradient(circle at 8% 2%, color-mix(in srgb, var(--v2-bright) 6%, transparent), transparent 25rem),
    var(--v2-canvas);
}

/* Compact institutional rhythm: text-only layouts size to their content. */
body:not(.page-index) main > section {
  padding-block: clamp(3.25rem, 5.5vw, 5.75rem);
}
body:not(.page-index) main > .section-tight {
  padding-block: clamp(2.5rem, 4vw, 4.25rem);
}
body:not(.page-index) .hero-page {
  min-height: 0;
  padding-block: clamp(4rem, 6vw, 6rem);
}
body:not(.page-index) .card { min-height: 0; }

.container { max-width: 1320px; }

.btn {
  border-radius: 999px;
  padding-inline: 1.3rem;
  font-weight: 600;
}

.btn-light {
  background: #fff9ec;
  color: var(--v2-on-light);
  border: 1px solid rgba(255,255,255,.45);
}
.btn-light:hover { background: #fff; color: var(--v2-on-light); transform: translateY(-2px); }

/* ---------- Signature institution navigation ---------- */
.site-header-v2 {
  display: block;
  height: auto;
  padding: 0;
  border-bottom: 1px solid var(--v2-line);
  background: color-mix(in srgb, var(--v2-canvas) 88%, transparent);
  backdrop-filter: blur(20px) saturate(1.2);
}

.institution-rail {
  display: flex;
  justify-content: space-between;
  padding: .38rem clamp(1.25rem, 4vw, 3.5rem);
  background: var(--v2-ink);
  color: var(--v2-canvas);
  font: 600 .64rem/1.2 var(--font-body);
  letter-spacing: .16em;
  text-transform: uppercase;
}

.nav-shell {
  min-height: 78px;
  display: grid;
  grid-template-columns: minmax(250px,1fr) auto minmax(250px,1fr);
  align-items: center;
  gap: 1.5rem;
  padding: .72rem clamp(1.25rem, 4vw, 3.5rem);
}

.logo-lockup-v2 { min-width: 0; color: var(--v2-ink); }
.logo-lockup-v2 picture { flex: 0 0 auto; }
.logo-lockup-v2 img { width: 42px; height: 42px; object-fit: contain; }
.logo-lockup-v2 .logo-wordmark { line-height: 1; letter-spacing: -.015em; }
.logo-lockup-v2 .logo-wordmark small {
  display: block;
  margin-top: .35rem;
  font: 600 .52rem/1 var(--font-body);
  color: var(--v2-ink-soft);
  letter-spacing: .13em;
  text-transform: uppercase;
}

.main-nav-v2 { display: block; }
.main-nav-v2 .main-nav__list { display: flex; gap: clamp(1rem, 2vw, 2rem); }
.main-nav-v2 a {
  position: relative;
  padding: .5rem 0;
  color: var(--v2-ink);
  font-size: .82rem;
  letter-spacing: .02em;
}
.main-nav-v2 a::after {
  content: '';
  position: absolute;
  left: 0; right: 100%; bottom: .2rem;
  height: 2px;
  background: var(--v2-coral);
  transition: right 220ms var(--ease-out);
}
.main-nav-v2 a:hover::after,
.main-nav-v2 a[aria-current='page']::after { right: 0; }

.nav-actions-v2 { justify-content: flex-end; }
.nav-toggle-v2 { width: auto; padding-inline: .75rem; gap: .45rem; }
.nav-toggle-v2 span { font: 600 .72rem/1 var(--font-body); text-transform: uppercase; letter-spacing: .1em; }

.explore-menu { position: relative; }
.explore-menu summary {
  list-style: none;
  cursor: pointer;
  min-height: 42px;
  display: inline-flex;
  align-items: center;
  gap: .6rem;
  padding: .65rem 1rem;
  border: 1px solid var(--v2-line);
  border-radius: 999px;
  color: var(--v2-ink);
  font: 600 .78rem/1 var(--font-body);
  letter-spacing: .04em;
}
.explore-menu summary::-webkit-details-marker { display: none; }
.explore-menu summary span { font-size: 1.1rem; transition: transform 180ms ease; }
.explore-menu[open] summary span { transform: rotate(45deg); }
.explore-menu[open] summary { background: var(--v2-ink); color: var(--v2-canvas); }

.explore-panel {
  position: fixed;
  z-index: 20;
  left: clamp(1rem, 3vw, 2.5rem);
  right: clamp(1rem, 3vw, 2.5rem);
  top: 106px;
  display: grid;
  grid-template-columns: 1.35fr repeat(4, 1fr);
  gap: 0;
  overflow: hidden;
  background: var(--v2-paper);
  border: 1px solid var(--v2-line);
  border-radius: 1.5rem;
  box-shadow: var(--v2-shadow);
  animation: panel-in 220ms var(--ease-out) both;
}
@keyframes panel-in { from { opacity: 0; transform: translateY(-10px) scale(.99); } }

.explore-intro {
  padding: clamp(1.5rem, 3vw, 2.5rem);
  background:
    radial-gradient(circle at 15% 20%, rgba(255,255,255,.2), transparent 11rem),
    var(--v2-plum);
  color: #fff8ef;
}
.explore-kicker { font: 700 .68rem/1 var(--font-body); letter-spacing: .15em; text-transform: uppercase; }
.explore-intro > p:nth-child(2) { max-width: 28ch; margin: 1rem 0 1.5rem; font: 400 1.3rem/1.35 var(--font-display); }
.explore-group { padding: 1.75rem 1.25rem; border-left: 1px solid var(--v2-line); }
.explore-group > p { margin-bottom: 1rem; color: var(--v2-coral); font: 700 .62rem/1 var(--font-body); letter-spacing: .12em; text-transform: uppercase; }
.explore-group a { display: flex; justify-content: space-between; gap: .5rem; padding: .7rem 0; border-bottom: 1px solid var(--v2-line); color: var(--v2-ink); font: 500 .86rem/1.25 var(--font-body); }
.explore-group a:hover { color: var(--v2-plum); padding-left: .25rem; }
.explore-group small { padding: .2rem .4rem; border-radius: 999px; background: var(--v2-coral-soft); color: var(--v2-coral); font-size: .55rem; white-space: nowrap; }

.room-menu { position: relative; }
.room-menu summary {
  list-style: none;
  cursor: pointer;
  min-height: 42px;
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  padding: .65rem .85rem;
  border: 1px solid var(--v2-line);
  border-radius: 999px;
  color: var(--v2-ink);
  background: color-mix(in srgb, var(--v2-paper) 72%, transparent);
  font: 600 .68rem/1 var(--font-body);
  letter-spacing: .04em;
}
.room-menu summary::-webkit-details-marker { display: none; }
.room-menu[open] summary { background: var(--v2-ink); color: var(--v2-canvas); }
.room-panel {
  position: fixed;
  z-index: 24;
  top: 106px;
  right: clamp(1rem,3vw,2.5rem);
  width: min(390px, calc(100vw - 2rem));
  overflow: hidden;
  border: 1px solid var(--v2-line);
  border-radius: 1.25rem;
  background: var(--v2-paper);
  box-shadow: var(--v2-shadow);
  animation: panel-in 190ms var(--ease-out) both;
}
.room-panel__intro { padding: 1.25rem 1.3rem 1rem; border-bottom: 1px solid var(--v2-line); }
.room-panel__intro p { color: var(--v2-ink); font: 600 1.45rem/1 var(--font-display); }
.room-panel__intro span { display: block; margin-top: .45rem; color: var(--v2-ink-soft); font: 400 .78rem/1.45 var(--font-body); }
.room-options { padding: .5rem; }
.room-option {
  width: 100%;
  display: grid;
  grid-template-columns: 44px 1fr 18px;
  gap: .8rem;
  align-items: center;
  padding: .75rem;
  border: 1px solid transparent;
  border-radius: .85rem;
  color: var(--v2-ink);
  background: transparent;
  text-align: left;
  cursor: pointer;
}
.room-option:hover { background: var(--color-surface-offset); }
.room-option.is-selected { border-color: var(--v2-line); background: var(--color-surface-offset); }
.room-option__swatch { width: 44px; height: 30px; border: 1px solid rgba(12,30,37,.18); border-radius: .55rem; box-shadow: inset 0 0 0 2px rgba(255,255,255,.25); }
.room-option--light .room-option__swatch { background: linear-gradient(135deg,#fff 0 50%,#172933 50% 74%,#e2ba58 74%); }
.room-option--mineral .room-option__swatch { background: linear-gradient(135deg,#f5fbfb 0 48%,#216b7a 48% 72%,#e7bf52 72%); }
.room-option--archive .room-option__swatch { background: linear-gradient(135deg,#18252c 0 52%,#fff7e9 52% 73%,#dda64f 73%); }
.room-option--research .room-option__swatch { background: linear-gradient(135deg,#edf5f7 0 48%,#315f7d 48% 72%,#3f6255 72%); }
.room-option--contrast .room-option__swatch { background: linear-gradient(135deg,#fff 0 48%,#080b0d 48% 78%,#ffdf66 78%); }
.room-option strong { display: block; font: 600 .82rem/1.2 var(--font-body); }
.room-option small { display: block; margin-top: .2rem; color: var(--v2-ink-soft); font: 500 .6rem/1.2 var(--font-body); letter-spacing: .05em; text-transform: uppercase; }
.room-option i { opacity: 0; color: var(--v2-blue); font-style: normal; font-weight: 700; }
.room-option.is-selected i { opacity: 1; }

.mobile-room-selector { margin-top: 1rem; padding: 1rem; border: 1px solid var(--v2-line); background: var(--v2-paper); }
.mobile-room-selector > p { margin-bottom: .75rem; color: var(--v2-coral); font: 700 .63rem/1 var(--font-body); letter-spacing: .13em; text-transform: uppercase; }
.mobile-room-options { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: .45rem; }
.mobile-room-options .room-option { display: flex; justify-content: center; padding: .5rem; }
.mobile-room-options .room-option__swatch { width: 100%; min-width: 34px; }
.mobile-room-options .room-option > span:nth-child(2),
.mobile-room-options .room-option i { display: none; }

/* ---------- Mobile navigation as an editorial map ---------- */
.mobile-drawer-v2 {
  background:
    radial-gradient(circle at 100% 0, color-mix(in srgb, var(--v2-coral) 30%, transparent), transparent 25rem),
    var(--v2-canvas);
  color: var(--v2-ink);
}
.mobile-map {
  display: grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 1px;
  margin-top: 1.5rem;
  background: var(--v2-line);
  border: 1px solid var(--v2-line);
}
.mobile-map > div { padding: clamp(1.25rem, 4vw, 2rem); background: var(--v2-paper); }
.mobile-map p { margin-bottom: 1rem; color: var(--v2-coral); font: 700 .65rem/1 var(--font-body); letter-spacing: .13em; text-transform: uppercase; }
.mobile-map a { display: block; padding: .4rem 0; color: var(--v2-ink); font: 500 clamp(1.25rem,4vw,2rem)/1.15 var(--font-display); }
.mobile-map small { font: 600 .55rem/1 var(--font-body); letter-spacing: .08em; text-transform: uppercase; color: var(--v2-coral); }

/* ---------- Homepage: a living editorial atelier ---------- */
.home-v2 { overflow: hidden; }
.home-stage {
  min-height: 0;
  padding: clamp(3.25rem, 5.5vw, 5.75rem) 0 clamp(2.75rem, 4.5vw, 4.5rem);
  position: relative;
}
.home-stage::before {
  content: '';
  position: absolute;
  width: 25rem; height: 25rem;
  right: -8rem; top: 2rem;
  border-radius: 50%;
  background: var(--v2-yellow);
  opacity: .38;
  filter: blur(2px);
}
.home-stage__grid {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0,1.15fr) minmax(360px,.85fr);
  gap: clamp(2rem, 6vw, 7rem);
  align-items: center;
}
.home-stage__copy { position: relative; z-index: 1; }
.stage-kicker { display: flex; align-items: center; gap: .8rem; color: var(--v2-plum); font: 700 .72rem/1 var(--font-body); letter-spacing: .15em; text-transform: uppercase; }
.stage-kicker::before { content: ''; width: 2.5rem; height: .42rem; border-radius: 1rem; background: var(--v2-coral); }
.home-stage h1 {
  max-width: 11ch;
  margin-top: 1.6rem;
  color: var(--v2-ink);
  font-size: clamp(3.75rem, 7.6vw, 8.6rem);
  line-height: .86;
  letter-spacing: -.055em;
}
.home-stage h1 em { display: block; color: var(--v2-plum); font-weight: 400; }
.stage-lede { max-width: 58ch; margin-top: 2rem; color: var(--v2-ink-soft); font: 400 clamp(1.08rem,1.5vw,1.32rem)/1.65 var(--font-serif); }
.stage-actions { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 2rem; }
.stage-note { margin-top: 1.3rem; color: var(--v2-ink-soft); font: 600 .68rem/1.4 var(--font-body); letter-spacing: .08em; text-transform: uppercase; }

.home-stage__folio {
  position: relative;
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: 235px auto;
  gap: .85rem;
  min-height: 0;
}
.folio-card {
  position: relative;
  overflow: hidden;
  border-radius: 1.6rem;
  padding: 1.35rem;
  color: #fff9ef;
  box-shadow: var(--v2-shadow);
}
.folio-card::after { content: ''; position: absolute; inset: 0; pointer-events: none; border: 1px solid rgba(255,255,255,.2); border-radius: inherit; }
.folio-card--image { grid-column: 1 / -1; grid-row: 1; min-height: 235px; padding: 0; }
.folio-card--image img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.78) contrast(.95); }
.folio-card--image .folio-caption { position: absolute; inset: auto .8rem .8rem; padding: 1rem; border-radius: 1rem; background: rgba(26,37,43,.78); backdrop-filter: blur(10px); }
.folio-card--plum { background: #294d60; }
.folio-card--blue { background: var(--v2-blue); }
[data-theme='dark'] .folio-card--blue { color: #18252c; }
.folio-card .tag { color: inherit; opacity: .75; }
.folio-card h2 { margin-top: .65rem; font-size: clamp(1.25rem,1.7vw,1.75rem); line-height: 1.08; }
.folio-card p:not(.tag) { margin-top: .75rem; font-family: var(--font-serif); line-height: 1.45; opacity: .86; }
.folio-card a { position: absolute; inset: 0; z-index: 2; }
.folio-card:hover { transform: translateY(-4px) rotate(.25deg); }

.audience-doors { padding: 0 0 clamp(4rem,8vw,8rem); }
.audience-intro { display: grid; grid-template-columns: .6fr 1.4fr; gap: 2rem; align-items: end; margin-bottom: 1.5rem; }
.audience-intro h2 { max-width: 14ch; font-size: clamp(2.2rem,4vw,4.5rem); line-height: .98; color: var(--v2-ink); }
.audience-intro p { max-width: 54ch; justify-self: end; color: var(--v2-ink-soft); font-family: var(--font-serif); line-height: 1.65; }
.door-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: .8rem; }
.door {
  min-height: 310px;
  padding: clamp(1.5rem,3vw,2.5rem);
  display: flex;
  flex-direction: column;
  border-radius: 1.6rem;
  color: var(--v2-ink);
  transition: transform 240ms var(--ease-out), box-shadow 240ms var(--ease-out);
}
.door:nth-child(1) { background: var(--v2-blue-soft); }
.door:nth-child(2) { background: var(--v2-plum-soft); }
.door:nth-child(3) { background: var(--v2-coral-soft); }
.door:hover { transform: translateY(-6px); box-shadow: var(--v2-shadow); }
.door-number { font: 700 .65rem/1 var(--font-body); letter-spacing: .15em; text-transform: uppercase; }
.door h3 { margin-top: auto; font-size: clamp(2rem,3vw,3.25rem); line-height: 1; }
.door p { max-width: 34ch; margin-top: .8rem; font-family: var(--font-serif); line-height: 1.5; color: var(--v2-ink-soft); }
.door span:last-child { margin-top: 1.25rem; font: 700 .72rem/1 var(--font-body); letter-spacing: .08em; text-transform: uppercase; }

.motion-study {
  padding-block: clamp(3.75rem,7vw,7rem);
  background: #ffffff;
  color: var(--v2-on-light);
  border-block: 1px solid var(--v2-line);
}
.motion-study .section-label {
  display: inline-flex;
  align-items: center;
  gap: .65rem;
  padding: .55rem .9rem;
  border: 1px solid var(--v2-line);
  border-radius: 999px;
  color: var(--v2-blue);
  background: var(--v2-blue-soft);
  font: 700 .68rem/1 var(--font-body);
  letter-spacing: .13em;
  text-transform: uppercase;
}
.motion-study .section-label::before { content: '↗'; font-size: .9rem; }
.motion-head { display: grid; grid-template-columns: 1.1fr .9fr; gap: 3rem; align-items: end; }
.motion-head h2 { max-width: 12ch; font-size: clamp(3rem,6vw,6.8rem); line-height: .9; letter-spacing: -.04em; }
.motion-head h2 em { color: var(--v2-blue); font-weight: 400; }
.motion-head p { max-width: 48ch; justify-self: end; color: var(--v2-on-light-soft); font-family: var(--font-serif); font-size: 1.1rem; line-height: 1.65; }
.motion-grid { display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: auto auto; gap: .9rem; margin-top: 2.4rem; }
.motion-tile { position: relative; min-height: 225px; padding: clamp(1.35rem,2.5vw,2rem); border-radius: 1.5rem; overflow: hidden; color: #fff9ed; border: 1px solid rgba(255,255,255,.16); }
.motion-tile:nth-child(1) { min-height: 225px; background: #223f50; }
.motion-tile:nth-child(2) { background: #4f91a3; }
.motion-tile:nth-child(3) { background: #8a4a36; }
.motion-tile:nth-child(4) { background: #3f6255; }
.motion-tile p:first-child { font: 700 .63rem/1 var(--font-body); letter-spacing: .14em; text-transform: uppercase; opacity: .75; }
.motion-tile h3 { max-width: 18ch; margin-top: 1rem; font-size: clamp(1.65rem,2.6vw,2.7rem); line-height: 1.03; }
.motion-tile p:last-of-type { max-width: 38ch; margin-top: .8rem; font-family: var(--font-serif); line-height: 1.5; opacity: .78; }
.motion-tile a { position: absolute; inset: 0; }

.framework-rhythm { padding-block: clamp(4rem,8vw,8rem); }
.rhythm-grid { display: grid; grid-template-columns: .78fr 1.22fr; gap: clamp(2rem,7vw,8rem); align-items: start; }
.rhythm-sticky { position: sticky; top: 9rem; }
.rhythm-sticky h2 { margin-top: 1rem; font-size: clamp(2.8rem,5vw,5.7rem); line-height: .92; }
.rhythm-sticky p { margin-top: 1.5rem; color: var(--v2-ink-soft); font-family: var(--font-serif); font-size: 1.1rem; line-height: 1.65; }
.principle-list { border-top: 1px solid var(--v2-line); }
.principle { display: grid; grid-template-columns: 70px 1fr; gap: 1rem; padding: 1.8rem 0; border-bottom: 1px solid var(--v2-line); }
.principle > span { color: var(--v2-coral); font: 700 .72rem/1 var(--font-body); }
.principle h3 { font-size: clamp(1.5rem,2.3vw,2.4rem); line-height: 1.05; }
.principle p { margin-top: .5rem; color: var(--v2-ink-soft); font-family: var(--font-serif); line-height: 1.55; }

.current-window { padding-block: clamp(4rem,8vw,8rem); background: var(--v2-yellow); color: #27333a; }
.window-head { display: flex; justify-content: space-between; gap: 2rem; align-items: end; }
.window-head h2 { max-width: 15ch; font-size: clamp(2.6rem,5vw,5.5rem); line-height: .92; }
.window-head p { max-width: 43ch; font-family: var(--font-serif); line-height: 1.6; }
.window-grid { display: grid; grid-template-columns: 1.2fr .8fr; gap: .9rem; margin-top: 2.5rem; }
.window-feature, .window-side { border-radius: 1.5rem; background: rgba(255,253,248,.72); }
.window-feature { display: grid; grid-template-columns: 1fr 1fr; overflow: hidden; }
.window-feature img { width: 100%; height: 100%; min-height: 370px; object-fit: cover; }
.window-copy { padding: clamp(1.5rem,3vw,2.5rem); display: flex; flex-direction: column; }
.window-copy .tag { color: #88402f; }
.window-copy h3 { margin-top: auto; font-size: clamp(2rem,3.5vw,3.7rem); line-height: .98; }
.window-copy p { margin-top: 1rem; font-family: var(--font-serif); line-height: 1.55; }
.window-copy a { margin-top: 1.4rem; color: #27333a; font-weight: 700; }
.window-side { padding: clamp(1.5rem,3vw,2.5rem); display: flex; flex-direction: column; }
.status-pill { align-self: flex-start; padding: .4rem .7rem; border: 1px solid rgba(39,51,58,.25); border-radius: 999px; font: 700 .62rem/1 var(--font-body); letter-spacing: .1em; text-transform: uppercase; }
.window-side h3 { margin-top: auto; font-size: clamp(2rem,3vw,3.2rem); line-height: 1; }
.window-side p { margin-top: 1rem; font-family: var(--font-serif); line-height: 1.55; }
.window-side a { margin-top: 1.4rem; color: #27333a; font-weight: 700; }

.home-v2 .newsletter { border-radius: 1.7rem; border: 0; background: var(--v2-plum); color: #fff8ef; box-shadow: var(--v2-shadow); }
.home-v2 .newsletter .muted, .home-v2 .newsletter-fineprint { color: rgba(255,248,239,.72); }
.home-v2 .newsletter .eyebrow { color: var(--v2-yellow); }
.home-v2 .newsletter input { background: #fffdf8; color: #172933; border-color: transparent; }

/* ---------- Page identity: shared system, distinct openings ---------- */
body:not(.page-index) .hero-page { position: relative; overflow: hidden; border-bottom: 1px solid var(--v2-line); }
body:not(.page-index) .hero-page::after {
  content: 'EDITORIAL / FIELD';
  position: absolute;
  width: min(330px,27vw);
  min-height: 178px;
  right: clamp(1.5rem,5vw,5rem);
  top: 50%;
  display: flex;
  align-items: flex-end;
  padding: 1.25rem;
  border: 1px solid color-mix(in srgb,var(--page-accent) 34%,transparent);
  border-radius: 1.2rem;
  background:
    linear-gradient(90deg,color-mix(in srgb,var(--page-accent) 18%,transparent) 1px,transparent 1px) 0 0 / 34px 34px,
    linear-gradient(color-mix(in srgb,var(--page-accent) 18%,transparent) 1px,transparent 1px) 0 0 / 34px 34px,
    var(--page-accent-soft,var(--v2-blue-soft));
  color: var(--v2-on-light);
  font: 700 .64rem/1.5 var(--font-body);
  letter-spacing: .14em;
  white-space: pre-line;
  transform: translateY(-50%) rotate(.5deg);
}
body:not(.page-index) .hero-page .container { position: relative; z-index: 1; padding-right: clamp(1rem,30vw,24rem); }
.page-framework { --page-accent: var(--v2-coral); --page-accent-soft: var(--v2-coral-soft); }
.page-library { --page-accent: var(--v2-blue); --page-accent-soft: var(--v2-blue-soft); }
.page-journal { --page-accent: var(--v2-plum); --page-accent-soft: var(--v2-plum-soft); }
.page-research { --page-accent: #46715c; --page-accent-soft: var(--v2-mint); }
.page-studio { --page-accent: #b14b37; --page-accent-soft: var(--v2-coral-soft); }
.page-academy { --page-accent: #486f78; --page-accent-soft: var(--v2-plum-soft); }
.page-software { --page-accent: #315f7d; --page-accent-soft: var(--v2-blue-soft); }
.page-community { --page-accent: #9b682d; --page-accent-soft: #f2e2bc; }
.page-store { --page-accent: #8b3f3f; --page-accent-soft: var(--v2-coral-soft); }
.page-about { --page-accent: #315344; --page-accent-soft: var(--v2-mint); }
.page-contact { --page-accent: #315f7d; --page-accent-soft: var(--v2-blue-soft); }
body:not(.page-index) .hero-page .eyebrow { color: var(--page-accent, var(--v2-coral)); }

.page-framework .hero-page::after { content: '01  STRUCTURE\A 02  PSYCHOLOGY\A 03  CRAFT\A 04  ATTENTION'; background: repeating-linear-gradient(90deg,transparent 0 47px,color-mix(in srgb,var(--page-accent) 22%,transparent) 48px),var(--page-accent-soft); }
.page-library .hero-page::after { content: 'A — M\A THIRTEEN FIELDS\A ONE DISCIPLINE'; background: repeating-linear-gradient(0deg,var(--page-accent-soft) 0 25px,color-mix(in srgb,var(--page-accent) 22%,var(--page-accent-soft)) 26px 28px); }
.page-journal .hero-page::after { content: '“\A NOTES FROM\A THE WORK'; align-items: center; font: 500 1rem/1.35 var(--font-display); background: linear-gradient(135deg,var(--page-accent-soft),color-mix(in srgb,var(--page-accent-soft) 60%,var(--v2-paper))); }
.page-research .hero-page::after { content: 'METHOD\A EVIDENCE\A FINDING'; background: linear-gradient(155deg,transparent 45%,color-mix(in srgb,var(--page-accent) 24%,transparent) 46% 47%,transparent 48%),var(--page-accent-soft); }
.page-academy .hero-page::after { content: 'FOUNDATION  01\A PRACTICE     02\A MASTERY      03'; background: linear-gradient(to top right,color-mix(in srgb,var(--page-accent) 22%,transparent) 0 33%,transparent 33% 66%,color-mix(in srgb,var(--page-accent) 12%,transparent) 66%),var(--page-accent-soft); }
.page-software .hero-page::after { content: 'INPUT  →  EVIDENCE\A EVIDENCE  →  DECISION\A DECISION  →  MEMORY'; background: linear-gradient(90deg,transparent 49%,color-mix(in srgb,var(--page-accent) 28%,transparent) 50%,transparent 51%),var(--page-accent-soft); }
.page-community .hero-page::after { content: 'LISTEN  /  EXCHANGE\A PRACTICE  /  RETURN'; background: radial-gradient(circle at 34% 45%,transparent 0 35px,color-mix(in srgb,var(--page-accent) 22%,transparent) 36px 37px,transparent 38px),radial-gradient(circle at 62% 45%,transparent 0 35px,color-mix(in srgb,var(--page-accent) 22%,transparent) 36px 37px,transparent 38px),var(--page-accent-soft); }
.page-about .hero-page::after { content: 'INDEPENDENT\A INTERDISCIPLINARY\A BUILT FOR THE LONG TERM'; background: linear-gradient(135deg,transparent 0 47%,color-mix(in srgb,var(--page-accent) 20%,transparent) 48% 52%,transparent 53%),var(--page-accent-soft); }
.page-contact .hero-page::after { content: 'BEGIN\A A CONVERSATION  →'; background: repeating-linear-gradient(0deg,transparent 0 31px,color-mix(in srgb,var(--page-accent) 18%,transparent) 32px),var(--page-accent-soft); }
.page-store .hero-page::after { content: 'IN PREPARATION\A RELEASE WINDOW  /  SOON'; background: repeating-linear-gradient(135deg,transparent 0 12px,color-mix(in srgb,var(--page-accent) 18%,transparent) 13px 25px),var(--page-accent-soft); }
[data-theme='dark'] body:not(.page-index) .hero-page::after { color: var(--v2-ink); }

/* ---------- Studio: an active editorial workbench ---------- */
.page-studio { --page-accent: #25677a; --page-accent-soft: #dcecef; }
.page-studio .hero-page::after { content: none; }
.page-studio .studio-hero {
  padding-block: clamp(3.25rem, 6vw, 6.25rem);
  background:
    linear-gradient(90deg, rgba(37,103,122,.08) 1px, transparent 1px) 0 0 / 38px 38px,
    linear-gradient(rgba(37,103,122,.08) 1px, transparent 1px) 0 0 / 38px 38px,
    #f8faf7;
}
.studio-hero__grid { display: grid; grid-template-columns: minmax(0,.9fr) minmax(420px,1.1fr); gap: clamp(2.5rem,6vw,7rem); align-items: center; }
.studio-hero__copy h1 { max-width: 10ch; margin-top: 1.25rem; font-size: clamp(3.8rem,7vw,7.8rem); line-height: .88; letter-spacing: -.055em; }
.studio-hero__copy h1 em { display: block; color: var(--v2-blue); font-weight: 400; }
.studio-hero__copy .hero__lede { max-width: 54ch; margin-top: 1.6rem; }
.studio-hero__moves { display: flex; flex-wrap: wrap; align-items: center; gap: .65rem; margin-top: 1.5rem; color: var(--v2-ink); font: 700 .68rem/1 var(--font-body); letter-spacing: .12em; text-transform: uppercase; }
.studio-hero__moves span { padding: .55rem .75rem; border: 1px solid rgba(23,41,51,.22); border-radius: 999px; background: #fff9ec; color: var(--v2-on-light); }
.studio-hero__moves i { color: var(--v2-coral); font-style: normal; }

.studio-workbench { position: relative; min-height: 520px; margin: 0; overflow: hidden; border: 10px solid #24424f; border-radius: 1.5rem; background: #24424f; box-shadow: var(--v2-shadow); transform: rotate(.35deg); }
.studio-workbench picture, .studio-workbench > picture img { position: absolute; inset: 0; width: 100%; height: 100%; }
.studio-workbench > picture img { object-fit: cover; filter: saturate(.66) contrast(.9) brightness(.72); }
.studio-workbench figcaption { position: absolute; top: 1rem; left: 1rem; z-index: 2; padding: .5rem .75rem; border: 1px solid rgba(255,255,255,.32); border-radius: 999px; background: rgba(20,38,47,.76); color: #fffdf8; font: 700 .61rem/1 var(--font-body); letter-spacing: .12em; text-transform: uppercase; backdrop-filter: blur(8px); }
.manuscript-sheet { position: absolute; z-index: 2; top: 13%; right: 6%; width: min(74%,430px); padding: clamp(1.35rem,3vw,2.25rem); border-radius: .15rem; background: #fffdf8; color: #1b303b; box-shadow: 0 24px 55px rgba(9,25,32,.35); transform: rotate(-2.2deg); }
.manuscript-sheet::before { content: ''; position: absolute; inset: 0; pointer-events: none; background: repeating-linear-gradient(transparent 0 31px, rgba(37,103,122,.08) 32px); }
.manuscript-sheet__meta { position: relative; display: flex; justify-content: space-between; padding-bottom: .85rem; border-bottom: 1px solid #cbd8dc; color: #55707c; font: 700 .58rem/1 var(--font-body); letter-spacing: .12em; text-transform: uppercase; }
.manuscript-sheet__line { position: relative; margin-top: 1.25rem; font: 400 1rem/1.65 var(--font-serif); }
.manuscript-sheet__line--marked { text-decoration: underline; text-decoration-color: #c17d32; text-decoration-thickness: 3px; text-underline-offset: 4px; }
.manuscript-sheet aside { position: relative; margin: 1.25rem -3rem 0 18%; padding: .85rem 1rem; border-left: 4px solid #c17d32; background: #f1e5cf; color: #344a54; font: 400 .88rem/1.45 var(--font-serif); transform: rotate(1.5deg); }
.manuscript-sheet aside strong { display: block; margin-bottom: .2rem; color: #996020; font: 700 .56rem/1 var(--font-body); letter-spacing: .12em; text-transform: uppercase; }
.manuscript-sheet__status { position: relative; display: flex; align-items: center; gap: .5rem; margin-top: 1.4rem; color: #3f6255; font: 700 .6rem/1 var(--font-body); letter-spacing: .1em; text-transform: uppercase; }
.manuscript-sheet__status span { width: .55rem; height: .55rem; border-radius: 50%; background: #4e856f; box-shadow: 0 0 0 4px rgba(78,133,111,.14); }

.studio-standard { background: #fff; border-bottom: 1px solid var(--v2-line); }
.studio-standard .container { display: grid; grid-template-columns: minmax(260px,.7fr) minmax(0,1.3fr); gap: clamp(2rem,6vw,7rem); align-items: start; }
.studio-standard__intro h2 { max-width: 13ch; margin-top: .9rem; font-size: clamp(2.35rem,4vw,4.5rem); line-height: .96; }
.studio-standard__rules { border-top: 1px solid var(--v2-line); }
.studio-standard__rules > div { display: grid; grid-template-columns: 42px minmax(130px,.55fr) 1fr; gap: 1rem; align-items: baseline; padding: 1.15rem 0; border-bottom: 1px solid var(--v2-line); }
.studio-standard__rules span { color: var(--v2-coral); font: 700 .65rem/1 var(--font-body); }
.studio-standard__rules strong { font: 600 1.35rem/1.15 var(--font-display); }
.studio-standard__rules p { color: var(--v2-ink-soft); font: 400 .94rem/1.5 var(--font-serif); }

.studio-process { background: #254452; color: #fffdf8; }
.studio-process .eyebrow { color: #e2ba58; }
.studio-process .section-head > p { color: rgba(255,253,248,.7); }
.studio-process__track { position: relative; display: grid; grid-template-columns: repeat(3,1fr); gap: .75rem; }
.studio-process__track::before { content: ''; position: absolute; top: 2rem; left: 8%; right: 8%; height: 1px; background: rgba(255,255,255,.25); }
.studio-process__step { position: relative; min-height: 0; padding: 1.5rem; border: 1px solid rgba(255,255,255,.18); border-radius: 1.25rem; background: rgba(255,255,255,.07); backdrop-filter: blur(8px); }
.studio-process__number { position: relative; display: grid; place-items: center; width: 4rem; height: 4rem; border: 1px solid rgba(255,255,255,.3); border-radius: 50%; background: #254452; color: #e2ba58; font: 700 .7rem/1 var(--font-body); }
.studio-process__verb { margin-top: 2.2rem; color: #86c2cf; font: 700 .65rem/1 var(--font-body); letter-spacing: .14em; text-transform: uppercase; }
.studio-process__step h3 { margin-top: .55rem; font-size: clamp(1.75rem,2.5vw,2.7rem); line-height: 1; }
.studio-process__step > p:last-child { margin-top: 1rem; color: rgba(255,253,248,.72); font: 400 .95rem/1.6 var(--font-serif); }

.studio-systems { background: #f4f7f4; }
.studio-systems .section-head > p { max-width: 40ch; }
.studio-system-group { display: grid; grid-template-columns: minmax(240px,.38fr) minmax(0,1.62fr); gap: clamp(1.5rem,3.5vw,3.25rem); padding: 1.6rem 0; border-top: 1px solid var(--v2-line); }
.studio-system-group:last-child { border-bottom: 1px solid var(--v2-line); }
.studio-system-group__heading { align-self: start; position: sticky; top: 8.5rem; }
.studio-system-group__heading span { color: var(--v2-blue); font: 700 .63rem/1 var(--font-body); letter-spacing: .14em; text-transform: uppercase; }
.studio-system-group__heading h3 { max-width: 12ch; margin-top: .7rem; padding-right: .75rem; font-size: clamp(1.75rem,2.45vw,2.65rem); line-height: 1; }
.studio-system-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .75rem; }
.studio-system-card { position: relative; min-height: 0; padding: 1.35rem; overflow: hidden; border: 1px solid #d4dedb; border-radius: .9rem; background: #fff; box-shadow: 0 10px 24px rgba(23,41,51,.05); }
.studio-system-card::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 5px; background: var(--studio-stage-color,#25677a); }
.studio-system-group--1 { --studio-stage-color: #a96f2c; }
.studio-system-group--2 { --studio-stage-color: #4f91a3; }
.studio-system-group--3 { --studio-stage-color: #3f6255; }
.studio-system-card__topline { display: flex; justify-content: space-between; gap: 1rem; color: #687c83; font: 700 .54rem/1 var(--font-body); letter-spacing: .1em; text-transform: uppercase; }
.studio-system-card h3 { margin-top: 1.25rem; font-size: clamp(1.6rem,2.2vw,2.25rem); line-height: 1.03; }
.studio-system-card > p { margin-top: .75rem; color: var(--v2-ink-soft); font: 400 .94rem/1.55 var(--font-serif); }
.studio-system-card__outcome { margin-top: 1rem; padding-top: .85rem; border-top: 1px dashed #c8d3d0; color: #465c64; font: 400 .82rem/1.5 var(--font-serif); }
.studio-system-card__outcome strong { color: var(--studio-stage-color); font: 700 .58rem/1 var(--font-body); letter-spacing: .08em; text-transform: uppercase; }

.studio-diagnosis { background: #fff; }
.diagnosis-board { display: grid; grid-template-columns: minmax(0,.72fr) auto minmax(0,1.28fr); gap: clamp(1rem,3vw,2.5rem); align-items: center; padding: clamp(1.5rem,4vw,3.5rem); border-radius: 1.5rem; background: #1f3946; }
.diagnosis-note { padding: clamp(1.35rem,2.5vw,2rem); background: #fffdf8; color: #203741; box-shadow: 0 18px 35px rgba(4,18,24,.2); }
.diagnosis-note--before { transform: rotate(-1.5deg); }
.diagnosis-note--after { border-top: 7px solid #e2ba58; transform: rotate(.65deg); }
.diagnosis-note > span { color: #627880; font: 700 .6rem/1 var(--font-body); letter-spacing: .12em; text-transform: uppercase; }
.diagnosis-note p { margin-top: 1rem; font: 400 clamp(1.05rem,1.7vw,1.35rem)/1.55 var(--font-serif); }
.diagnosis-note small { display: block; margin-top: 1.25rem; padding-top: .75rem; border-top: 1px solid #d9e1df; color: #a96f2c; font: 700 .56rem/1 var(--font-body); letter-spacing: .1em; text-transform: uppercase; }
.diagnosis-board__arrow { display: grid; place-items: center; width: 3rem; height: 3rem; border-radius: 50%; background: #68afbf; color: #17303b; font-size: 1.4rem; }

.studio-closing { padding-block: clamp(3.25rem,5vw,5rem); background: #dcecef; }
.studio-closing__grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: clamp(2rem,7vw,8rem); align-items: center; }
.studio-closing blockquote { max-width: 18ch; color: #1e3c49; font: 400 clamp(2.5rem,4.5vw,5rem)/.98 var(--font-display); letter-spacing: -.035em; }
.studio-closing__store { padding: clamp(1.5rem,3vw,2.5rem); border-radius: 1.2rem; background: #fff; }
.studio-closing__store h2 { margin-top: .65rem; font-size: clamp(2rem,3vw,3.2rem); line-height: 1; }
.studio-closing__store > p:not(.eyebrow) { margin-top: 1rem; color: var(--v2-ink-soft); font-family: var(--font-serif); line-height: 1.55; }
.studio-closing__store .btn { margin-top: 1.35rem; }

[data-theme='dark'] .page-studio .studio-hero { background-color: #1b2b33; }
[data-theme='dark'] .studio-standard,
[data-theme='dark'] .studio-diagnosis { background: var(--v2-paper); }
[data-theme='dark'] .studio-systems { background: #1a2930; }
[data-theme='dark'] .studio-system-card,
[data-theme='dark'] .studio-closing__store { background: #263941; border-color: rgba(255,255,255,.12); }
[data-theme='dark'] .studio-system-card__topline,
[data-theme='dark'] .studio-system-card > p,
[data-theme='dark'] .studio-system-card__outcome,
[data-theme='dark'] .studio-closing__store > p:not(.eyebrow) { color: rgba(242,241,234,.68); }

/* ---------- Software Wing: EIF in motion ---------- */
.page-software .software-hero::after { content: none; }
.page-software .software-hero .container { padding-right: clamp(1rem,4vw,3rem); }
.software-hero { background: linear-gradient(135deg,color-mix(in srgb,var(--v2-blue-soft) 54%,transparent),transparent 55%),var(--v2-canvas); }
.software-hero__grid { display: grid; grid-template-columns: minmax(330px,.78fr) minmax(540px,1.22fr); gap: clamp(2rem,5vw,5rem); align-items: center; }
.software-hero__copy h1 { max-width: 10ch; margin-top: 1.1rem; font-size: clamp(3.7rem,6.4vw,7rem); line-height: .89; letter-spacing: -.05em; }
.software-hero__copy h1 em { display: block; color: var(--v2-blue); font-weight: 400; }
.software-hero__copy .hero__lede { max-width: 52ch; margin-top: 1.4rem; }
.software-hero__actions { display: flex; flex-wrap: wrap; gap: .7rem; margin-top: 1.45rem; }
.software-hero__status { display: flex; align-items: center; gap: .55rem; margin-top: 1rem; color: var(--v2-ink-soft); font: 700 .59rem/1.4 var(--font-body); letter-spacing: .09em; text-transform: uppercase; }
.software-hero__status span { width: .55rem; height: .55rem; border-radius: 50%; background: var(--v2-coral); box-shadow: 0 0 0 4px color-mix(in srgb,var(--v2-coral) 16%,transparent); }

.eif-console { overflow: hidden; border: 1px solid #44616b; border-radius: 1.3rem; background: #172a33; color: #fff9ed; box-shadow: 0 30px 80px rgba(12,29,37,.26); transform: rotate(.25deg); }
.eif-console__bar { display: grid; grid-template-columns: 1fr auto auto; gap: 1rem; align-items: center; padding: .75rem 1rem; border-bottom: 1px solid rgba(255,255,255,.12); color: rgba(255,249,237,.68); font: 600 .55rem/1 var(--font-body); letter-spacing: .08em; text-transform: uppercase; }
.eif-console__bar span:first-child { color: #8dcbd5; }
.eif-console__bar i { padding: .3rem .5rem; border: 1px solid rgba(255,255,255,.18); border-radius: 999px; color: #f2d585; font-style: normal; }
.eif-console__body { display: grid; grid-template-columns: 122px 1fr; min-height: 455px; }
.eif-console__nav { padding: 1.1rem .7rem; border-right: 1px solid rgba(255,255,255,.1); background: rgba(255,255,255,.025); }
.eif-console__nav strong, .eif-console__nav span { display: flex; justify-content: space-between; gap: .4rem; margin-bottom: .35rem; padding: .62rem .55rem; border-radius: .55rem; color: rgba(255,249,237,.55); font: 600 .59rem/1.2 var(--font-body); }
.eif-console__nav strong { margin-bottom: 1rem; color: #fff9ed; font-family: var(--font-display); font-size: 1rem; }
.eif-console__nav .is-active { background: #315665; color: #fff; }
.eif-console__nav i { display: grid; place-items: center; min-width: 1.1rem; height: 1.1rem; border-radius: 50%; background: #e2ba58; color: #1b303a; font: 700 .5rem/1 var(--font-body); }
.eif-finding { padding: clamp(1.2rem,2.5vw,2rem); }
.eif-finding__meta { display: flex; justify-content: space-between; gap: 1rem; align-items: center; color: #85c3cf; font: 700 .55rem/1 var(--font-body); letter-spacing: .1em; text-transform: uppercase; }
.confidence-pill { padding: .38rem .55rem; border-radius: 999px; background: #315c50; color: #d7f0e5; }
.eif-finding h2 { max-width: 16ch; margin-top: 1rem; font-size: clamp(1.75rem,2.5vw,2.65rem); line-height: 1; }
.eif-finding__summary { max-width: 58ch; margin-top: .75rem; color: rgba(255,249,237,.7); font: 400 .88rem/1.55 var(--font-serif); }
.evidence-strip { display: grid; grid-template-columns: 1fr 1fr; gap: .6rem; margin-top: 1.1rem; }
.evidence-strip > div { padding: .8rem; border: 1px solid rgba(255,255,255,.12); border-radius: .65rem; background: rgba(255,255,255,.045); }
.evidence-strip span { color: #e2ba58; font: 700 .5rem/1 var(--font-body); letter-spacing: .09em; text-transform: uppercase; }
.evidence-strip p { margin-top: .45rem; font: 400 .8rem/1.4 var(--font-serif); }
.reasoning-note { margin-top: .7rem; padding: .8rem; border-left: 3px solid #68afbf; background: rgba(104,175,191,.08); }
.reasoning-note strong { color: #9ed4dc; font: 700 .53rem/1 var(--font-body); letter-spacing: .09em; text-transform: uppercase; }
.reasoning-note p { margin-top: .35rem; color: rgba(255,249,237,.68); font: 400 .76rem/1.45 var(--font-serif); }
.decision-row { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: .85rem; }
.decision-row span { padding: .45rem .65rem; border: 1px solid rgba(255,255,255,.16); border-radius: 999px; color: rgba(255,249,237,.8); font: 600 .53rem/1 var(--font-body); }
.decision-row span:first-child { background: #e2ba58; color: #1a303a; border-color: #e2ba58; }
.eif-console__caption { padding: .65rem 1rem; border-top: 1px solid rgba(255,255,255,.1); color: rgba(255,249,237,.48); font: 600 .52rem/1.4 var(--font-body); letter-spacing: .08em; text-align: center; text-transform: uppercase; }

.software-audience { background: #fff; border-bottom: 1px solid var(--v2-line); }
.software-audience__head { display: grid; grid-template-columns: .55fr 1.45fr; gap: 2rem; align-items: end; }
.software-audience__head h2 { max-width: 16ch; justify-self: end; font-size: clamp(2.35rem,4vw,4.6rem); line-height: .95; }
.software-role-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: .65rem; margin-top: 1.8rem; }
.software-role-grid article { min-height: 205px; padding: 1.25rem; display: flex; flex-direction: column; border-radius: 1rem; color: var(--v2-on-light); }
.software-role-grid article:nth-child(1) { background: #dcecef; }
.software-role-grid article:nth-child(2) { background: #dfe9e7; }
.software-role-grid article:nth-child(3) { background: #f1e5cf; }
.software-role-grid article:nth-child(4) { background: #cbdcd4; }
.software-role-grid span { color: #6d5523; font: 700 .58rem/1 var(--font-body); }
.software-role-grid h3 { margin-top: auto; font-size: clamp(1.55rem,2vw,2.2rem); line-height: 1; }
.software-role-grid p { margin-top: .65rem; color: var(--v2-on-light-soft); font: 400 .85rem/1.5 var(--font-serif); }

.software-flow { background: #234653; color: #fff9ed; }
.software-flow .eyebrow { color: #f4d987; }
.software-flow .section-head > p { color: rgba(255,249,237,.68); }
.software-flow__track { display: grid; grid-template-columns: repeat(8,1fr); margin: 0; padding: 0; list-style: none; border: 1px solid rgba(255,255,255,.16); border-radius: 1rem; overflow: hidden; }
.software-flow__track li { position: relative; min-height: 155px; padding: 1rem .8rem; border-right: 1px solid rgba(255,255,255,.14); }
.software-flow__track li:last-child { border-right: 0; }
.software-flow__track li::after { content: '→'; position: absolute; right: -.45rem; top: 50%; z-index: 2; display: grid; place-items: center; width: .9rem; height: .9rem; border-radius: 50%; background: #234653; color: #e2ba58; font-size: .75rem; }
.software-flow__track li:last-child::after { content: none; }
.software-flow__track span { color: #e2ba58; font: 700 .56rem/1 var(--font-body); }
.software-flow__track strong { display: block; margin-top: 3rem; font: 600 1.05rem/1 var(--font-display); }
.software-flow__track small { display: block; margin-top: .45rem; color: rgba(255,249,237,.58); font: 500 .58rem/1.35 var(--font-body); }

.eif-boundary { background: var(--v2-canvas); }
.boundary-ledger { border: 1px solid var(--v2-line); border-radius: 1.2rem; overflow: hidden; }
.boundary-ledger > div { display: grid; grid-template-columns: 1fr 1fr; }
.boundary-ledger__head { background: var(--v2-ink); color: var(--v2-canvas); }
.boundary-ledger__head span { padding: .9rem 1.25rem; font: 700 .65rem/1 var(--font-body); letter-spacing: .13em; text-transform: uppercase; }
.boundary-ledger > div:not(.boundary-ledger__head) { border-top: 1px solid var(--v2-line); }
.boundary-ledger p { padding: 1rem 1.25rem; font: 400 clamp(.95rem,1.4vw,1.15rem)/1.45 var(--font-serif); }
.boundary-ledger p:first-child { color: var(--v2-ink-soft); background: color-mix(in srgb,var(--v2-coral-soft) 44%,transparent); }
.boundary-ledger p:last-child { border-left: 1px solid var(--v2-line); color: var(--v2-ink); background: color-mix(in srgb,var(--v2-blue-soft) 48%,transparent); }

.software-reasoning { background: var(--color-surface-offset); }
.reasoning-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: .7rem; }
.reasoning-grid article { min-height: 180px; padding: 1.25rem; border: 1px solid var(--v2-line); border-radius: .9rem; background: var(--v2-paper); }
.reasoning-grid span { color: var(--v2-coral); font: 700 .58rem/1 var(--font-body); letter-spacing: .11em; text-transform: uppercase; }
.reasoning-grid h3 { margin-top: 1.5rem; font-size: clamp(1.4rem,2vw,2rem); line-height: 1.05; }
.reasoning-grid p { margin-top: .65rem; color: var(--v2-ink-soft); font: 400 .86rem/1.5 var(--font-serif); }

.software-foundation { background: #e2ba58; color: #24333a; }
.software-foundation__grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(2rem,7vw,8rem); align-items: center; }
.software-foundation h2 { max-width: 13ch; margin-top: .8rem; font-size: clamp(2.5rem,4.5vw,5rem); line-height: .93; }
.software-foundation p:not(.eyebrow) { max-width: 53ch; margin-top: 1.2rem; font: 400 1rem/1.6 var(--font-serif); }
.software-foundation .btn-text { display: inline-block; margin-top: 1.3rem; color: #24333a; border-color: rgba(36,51,58,.35); }
.foundation-map { display: grid; grid-template-columns: repeat(5,1fr); overflow: hidden; border: 1px solid rgba(36,51,58,.25); border-radius: 1rem; background: rgba(255,255,255,.42); }
.foundation-map > div { min-height: 190px; padding: 1rem .75rem; display: flex; flex-direction: column; border-right: 1px solid rgba(36,51,58,.18); }
.foundation-map > div:last-child { border-right: 0; background: #244b58; color: #fff9ed; }
.foundation-map span { font: 700 .55rem/1 var(--font-body); }
.foundation-map strong { margin-top: auto; font: 600 1.05rem/1 var(--font-display); }
.foundation-map small { margin-top: .45rem; font: 500 .58rem/1.35 var(--font-body); opacity: .7; }

.software-private { background: var(--v2-plum); color: #fff9ed; }
.software-private__grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem,6vw,7rem); align-items: center; }
.software-private .eyebrow { color: #f4d987; }
.software-private h2 { margin-top: .7rem; font-size: clamp(2.4rem,4vw,4.4rem); line-height: .95; }
.software-private p { margin-top: 1rem; color: rgba(255,249,237,.72); font: 400 .96rem/1.6 var(--font-serif); }
.software-private__guide { padding-top: 1rem; border-top: 1px solid rgba(255,249,237,.18); }
.software-private__guide strong { color: #fff9ed; }
.software-private .btn { margin-top: 1.2rem; }

[data-theme='dark'] .software-audience { background: #1b2b33; }
[data-theme='dark'] .software-private { background: #214855; }

/* ---------- Footer as an institution map ---------- */
.site-footer-v2,
[data-theme='dark'] .site-footer-v2 { padding: 0; background: #222432; color: #fff8ef; }
.footer-invitation { padding: clamp(2.75rem,4.5vw,4.5rem) clamp(1.25rem,5vw,5rem); background: var(--v2-plum); }
[data-theme='dark'] .footer-invitation { background: #2b6573; }
.footer-invitation > p { font: 700 .68rem/1 var(--font-body); letter-spacing: .15em; text-transform: uppercase; color: var(--v2-yellow); }
[data-theme='dark'] .footer-invitation > p { color: #f4d987; }
.footer-invitation h2 { max-width: 15ch; margin-top: 1rem; font-size: clamp(2.75rem,5.5vw,5.75rem); line-height: .9; letter-spacing: -.04em; }
.footer-invitation > div { display: flex; align-items: center; gap: 1.5rem; margin-top: 1.5rem; }
.site-footer-v2 .footer-invitation .btn-light,
[data-theme='dark'] .site-footer-v2 .footer-invitation .btn-light {
  background: #fff9ec;
  color: var(--v2-on-light);
  border-color: rgba(23,41,51,.12);
}
.site-footer-v2 .footer-invitation .btn-light:hover,
[data-theme='dark'] .site-footer-v2 .footer-invitation .btn-light:hover {
  background: #ffffff;
  color: #0f2530;
}
.footer-text-link { color: #fff8ef; border-bottom: 1px solid rgba(255,255,255,.4); }
.footer-map { display: grid; grid-template-columns: 1.6fr repeat(3,1fr); gap: 2rem; padding: clamp(2.5rem,3.5vw,3.75rem) clamp(1.25rem,5vw,5rem); border-bottom: 1px solid rgba(255,255,255,.14); }
.footer-brand-v2 { max-width: 32ch; }
.footer-mark { display: inline-block; }
.footer-mark img { width: 58px; height: 58px; object-fit: contain; filter: brightness(0) invert(1); }
.footer-brand-v2 p { margin-top: 1.2rem; font: 400 1.45rem/1.3 var(--font-display); }
.footer-brand-v2 span { display: block; margin-top: 1rem; color: rgba(255,248,239,.58); font: 600 .62rem/1.55 var(--font-body); letter-spacing: .1em; text-transform: uppercase; }
.site-footer-v2 .footer-col h3 { margin-bottom: 1rem; color: var(--v2-yellow); font: 700 .65rem/1 var(--font-body); letter-spacing: .14em; text-transform: uppercase; }
.site-footer-v2 .footer-col a { display: block; width: fit-content; padding: .36rem 0; color: rgba(255,248,239,.82); font-size: .88rem; }
.site-footer-v2 .footer-col a:hover { color: #fff; transform: translateX(.2rem); }
.site-footer-v2 .footer-col small { color: var(--v2-coral); font-size: .55rem; text-transform: uppercase; }
.footer-wordmark { display: flex; justify-content: center; overflow: hidden; padding: .5rem 1rem .15rem; text-align: center; color: rgba(255,255,255,.07); font: 500 clamp(4rem,10.5vw,10.5rem)/.82 var(--font-display); letter-spacing: -.055em; white-space: nowrap; }
.footer-bottom-v2 { padding: 1rem clamp(1.25rem,5vw,5rem); border-top: 1px solid rgba(255,255,255,.1); }
.footer-bottom-v2 p, .footer-bottom-v2 a { color: rgba(255,248,239,.56); font-size: .68rem; }
.footer-bottom-v2 > div { display: flex; gap: 1.2rem; }

@media (max-width: 1120px) {
  .nav-shell { grid-template-columns: 1fr auto; }
  .main-nav-v2 { display: none; }
  .explore-menu { display: none; }
  .nav-toggle-v2 { display: inline-flex; }
  .home-stage__grid { grid-template-columns: 1fr .85fr; gap: 2rem; }
  .software-flow__track { grid-template-columns: repeat(4,1fr); }
  .software-flow__track li:nth-child(4) { border-right: 0; }
  .software-flow__track li:nth-child(-n+4) { border-bottom: 1px solid rgba(255,255,255,.14); }
  .footer-map { grid-template-columns: 1.4fr repeat(3,1fr); }
}

@media (max-width: 820px) {
  .institution-rail span:last-child { display: none; }
  .nav-shell { min-height: 68px; padding-block: .55rem; }
  .logo-lockup-v2 .logo-wordmark { font-size: .9rem; }
  .home-stage { min-height: 0; }
  .home-stage__grid { grid-template-columns: 1fr; }
  .home-stage h1 { max-width: 9ch; }
  .home-stage__folio { min-height: 0; grid-template-columns: 1fr 1fr; }
  .folio-card--image { min-height: 235px; }
  .audience-intro, .motion-head, .rhythm-grid, .window-grid { grid-template-columns: 1fr; }
  .audience-intro p, .motion-head p { justify-self: start; }
  .door-grid { grid-template-columns: 1fr; }
  .door { min-height: 230px; }
  .motion-grid { grid-template-columns: 1fr 1fr; }
  .motion-tile:nth-child(1) { min-height: 225px; }
  .rhythm-sticky { position: static; }
  .window-feature { grid-template-columns: 1fr; }
  .window-feature img { min-height: 260px; max-height: 320px; }
  body:not(.page-index) .hero-page .container { padding-right: clamp(1rem,4vw,3rem); }
  body:not(.page-index) .hero-page::after { display: none; }
  .studio-hero__grid, .studio-standard .container, .studio-closing__grid { grid-template-columns: 1fr; }
  .studio-hero__copy h1 { max-width: 9ch; }
  .studio-workbench { min-height: 490px; }
  .studio-process__track { grid-template-columns: 1fr; }
  .studio-process__track::before { top: 2rem; bottom: 2rem; left: 3.5rem; right: auto; width: 1px; height: auto; }
  .studio-process__step { display: grid; grid-template-columns: 4rem 1fr; column-gap: 1.2rem; }
  .studio-process__verb, .studio-process__step h3, .studio-process__step > p:last-child { grid-column: 2; }
  .studio-process__verb { margin-top: 0; }
  .studio-system-group { grid-template-columns: 1fr; }
  .studio-system-group__heading { position: static; }
  .studio-system-group__heading h3 { max-width: none; }
  .diagnosis-board { grid-template-columns: 1fr; }
  .diagnosis-board__arrow { margin: -.25rem auto; transform: rotate(90deg); }
  .software-hero__grid, .software-foundation__grid, .software-private__grid { grid-template-columns: 1fr; }
  .software-hero__copy h1 { max-width: 9ch; }
  .software-audience__head { grid-template-columns: 1fr; }
  .software-audience__head h2 { justify-self: start; }
  .software-role-grid { grid-template-columns: 1fr 1fr; }
  .reasoning-grid { grid-template-columns: 1fr 1fr; }
  .footer-map { grid-template-columns: 1.4fr 1fr 1fr; }
  .footer-map .footer-col:last-child { grid-column: 2 / -1; }
}

@media (max-width: 560px) {
  .institution-rail { justify-content: center; }
  .nav-shell { gap: .5rem; }
  .logo-lockup-v2 img { width: 36px; height: 36px; }
  .logo-lockup-v2 .logo-wordmark small { display: none; }
  .theme-toggle { display: none; }
  .room-menu { display: none; }
  .nav-toggle-v2 { padding-inline: .55rem; }
  .home-stage h1 { font-size: clamp(3.5rem,18vw,5.5rem); }
  .home-stage__folio { grid-template-columns: 1fr; grid-template-rows: 260px auto auto; }
  .folio-card--image { grid-row: auto; min-height: 300px; }
  .folio-card--plum, .folio-card--blue { min-height: 190px; }
  .motion-grid { grid-template-columns: 1fr; }
  .principle { grid-template-columns: 45px 1fr; }
  .studio-hero__copy h1 { font-size: clamp(3.35rem,17vw,5rem); }
  .studio-workbench { min-height: 430px; border-width: 7px; }
  .manuscript-sheet { top: 15%; right: 4%; width: 88%; padding: 1.15rem; }
  .manuscript-sheet aside { margin-right: -1.5rem; margin-left: 8%; }
  .studio-standard__rules > div { grid-template-columns: 34px 1fr; }
  .studio-standard__rules p { grid-column: 2; }
  .studio-process__step { grid-template-columns: 3.25rem 1fr; padding: 1.2rem; }
  .studio-process__number { width: 3.25rem; height: 3.25rem; }
  .studio-process__track::before { left: 2.825rem; }
  .studio-system-grid { grid-template-columns: 1fr; }
  .studio-system-card__topline { align-items: flex-start; flex-direction: column; gap: .35rem; }
  .diagnosis-board { padding: 1.1rem; }
  .eif-console__bar { grid-template-columns: 1fr auto; }
  .eif-console__bar span:nth-child(2) { display: none; }
  .eif-console__body { grid-template-columns: 1fr; }
  .eif-console__nav { display: flex; gap: .25rem; overflow-x: auto; border-right: 0; border-bottom: 1px solid rgba(255,255,255,.1); }
  .eif-console__nav strong { display: none; }
  .eif-console__nav span { flex: 0 0 auto; margin: 0; }
  .evidence-strip { grid-template-columns: 1fr; }
  .software-role-grid, .reasoning-grid { grid-template-columns: 1fr; }
  .software-flow__track { grid-template-columns: 1fr 1fr; }
  .software-flow__track li:nth-child(2n) { border-right: 0; }
  .software-flow__track li { border-bottom: 1px solid rgba(255,255,255,.14); }
  .software-flow__track li:nth-last-child(-n+2) { border-bottom: 0; }
  .boundary-ledger__head { display: none !important; }
  .boundary-ledger > div:not(.boundary-ledger__head) { grid-template-columns: 1fr; }
  .boundary-ledger p:last-child { border-left: 0; border-top: 1px solid var(--v2-line); }
  .foundation-map { grid-template-columns: 1fr; }
  .foundation-map > div { min-height: 115px; border-right: 0; border-bottom: 1px solid rgba(36,51,58,.18); }
  .foundation-map > div:last-child { border-bottom: 0; }
  .mobile-map { grid-template-columns: 1fr; max-height: 66vh; overflow-y: auto; }
  .footer-invitation > div { align-items: flex-start; flex-direction: column; }
  .footer-map { grid-template-columns: 1fr 1fr; }
  .footer-brand-v2 { grid-column: 1 / -1; }
  .footer-map .footer-col:last-child { grid-column: auto; }
  .footer-bottom-v2 { align-items: flex-start; flex-direction: column; gap: .65rem; }
}

@media (prefers-reduced-motion: reduce) {
  .explore-panel, .folio-card, .door { animation: none; transition: none; }
}
