/* A dedicated touch layout, served on the same URL below 701px. */
:root {
  --mobile-gutter: clamp(20px, 5.6vw, 36px);
  --mobile-header: calc(72px + env(safe-area-inset-top, 0px));
}
html { scroll-padding-top: calc(var(--mobile-header) + 20px); }
body { padding-bottom: calc(76px + env(safe-area-inset-bottom, 0px)); }
body.menu-open { overflow: hidden; }
button:focus-visible, a:focus-visible, [tabindex]:focus-visible { outline-offset: 3px; }
.header {
  height: var(--mobile-header);
  padding: env(safe-area-inset-top, 0px) var(--mobile-gutter) 0;
  position: sticky;
  top: 0;
  background: rgba(16, 17, 16, .96);
  backdrop-filter: blur(16px);
}
.wordmark { font-size: 1.75rem; }
.desktop-nav, .header-link { display: none; }
.menu-toggle {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 7px;
  width: 48px;
  height: 48px;
  margin-right: -10px;
  background: none;
  border: 0;
  cursor: pointer;
}
.menu-toggle span { width: 24px; height: 1px; background: var(--text); transition: transform .2s; }
.menu-toggle[aria-expanded="true"] span:first-child { transform: translateY(4px) rotate(45deg); }
.menu-toggle[aria-expanded="true"] span:last-child { transform: translateY(-4px) rotate(-45deg); }
.mobile-nav:not([hidden]) {
  display: flex;
  flex-direction: column;
  position: fixed;
  inset: var(--mobile-header) 0 auto;
  height: calc(100dvh - var(--mobile-header));
  padding: 26px var(--mobile-gutter) max(30px, env(safe-area-inset-bottom));
  background: var(--bg);
  overflow-y: auto;
  overscroll-behavior: contain;
}
.mobile-menu-label { font-size: .75rem; letter-spacing: .1em; color: var(--muted); margin: 0 0 28px; }
.mobile-nav a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  min-height: 82px;
  padding: 22px 0;
  border-top: 1px solid var(--line);
  font-family: var(--kr);
  font-size: clamp(21px, 6vw, 30px);
  letter-spacing: -1px;
}
.mobile-nav a span { font-family: var(--font); font-size: .875rem; color: var(--lime); }
.mobile-menu-note { margin: auto 0 0; padding-top: 38px; font-size: 2rem; line-height: 1.2; letter-spacing: -.05em; }
.hero { height: auto; min-height: 0; max-height: none; }
.hero-content { padding: 32px var(--mobile-gutter) 30px; }
.hero-eyebrow { font-size: .625rem; letter-spacing: .075em; gap: 8px; }
.tiny-cross { font-size: 1.125rem; }
.hero h1 {
  font-size: clamp(30px, 10.8vw, 72px);
  line-height: 1.08;
  letter-spacing: -.065em;
  margin: 24px 0 0;
}
.hero h1 > span { color: var(--lime); }
.hero-art {
  inset: 124px 0 auto;
  height: clamp(300px, 87vw, 520px);
  background-size: auto 100%;
  background-position: 72% center;
  background-repeat: no-repeat;
  opacity: 1;
  mask-image: linear-gradient(180deg, transparent, #000 15%, #000 78%, transparent);
}
.hero-shade {
  background: linear-gradient(180deg, #101110 0%, transparent 27%, transparent 48%, #101110 73%);
}
.hero-description { margin-top: clamp(210px, 59vw, 350px); }
.hero-description p { font-size: 1.125rem; line-height: 1.75; letter-spacing: -.5px; margin: 0 0 10px; }
.hero-subline { font-size: .75rem; color: var(--muted); }
.primary-link { width: 100%; min-height: 56px; justify-content: space-between; padding: 12px 16px 12px 20px; margin-top: 24px; font-size: .9375rem; }
.primary-link:hover { transform: none; }
.hero-bottom { position: relative; inset: auto; margin: 0 var(--mobile-gutter); padding: 0 0 24px; }
.hero-bottom > span { font-size: .625rem; letter-spacing: .055em; }
.hero-bottom .hero-index { display: none; }
.hero-bottom > a { min-height: 44px; font-size: .625rem; gap: 10px; letter-spacing: .035em; }
.hero-bottom > a span { font-size: 1rem; }
.discipline-strip { display: grid; grid-template-columns: 1fr 1fr; padding: 22px var(--mobile-gutter); gap: 20px 10px; font-size: .75rem; letter-spacing: -.2px; }
.discipline-strip i { display: none; }
.discipline-strip span { display: flex; align-items: center; gap: 7px; }
.discipline-strip span::before { content: '+'; color: var(--lime); font-size: 1rem; }
.section { padding: 68px var(--mobile-gutter); }
.section-label { font-size: .6875rem; letter-spacing: .07em; }
.section-number { margin-right: 12px; }
h2 { font-size: clamp(25px, 6.8vw, 42px); letter-spacing: -.065em; line-height: 1.6; word-break: keep-all; }
.section-intro { display: block; }
.section-intro .section-label { padding: 0; margin-bottom: 28px; }
.about-copy > p { margin-top: 20px; font-size: .9375rem; line-height: 1.9; }
.desktop-break { display: none; }
.name-grid { grid-template-columns: 1fr; margin-top: 34px; }
.name-part, .name-part:first-child, .name-part:last-child {
  display: grid;
  grid-template-columns: 72px minmax(0, 1fr);
  column-gap: 20px;
  border: 0;
  border-top: 1px solid var(--line);
  padding: 28px 0;
}
.name-part:last-child { padding-bottom: 0; }
.name-part-top { grid-row: span 2; display: block; }
.name-letter { font-size: 2.75rem; letter-spacing: -.08em; line-height: 1.1; }
.small-index { display: block; padding-top: 12px; font-size: .625rem; }
.name-part h3 { font-size: .875rem; line-height: 1.5; margin: 0 0 10px; letter-spacing: -.03em; }
.name-part p { font-size: .875rem; line-height: 1.85; }
.name-part p br { display: none; }
.research-heading { display: block; margin: 28px 0; }
.research-heading p { max-width: none; margin: 18px 0 0; font-size: .9375rem; line-height: 1.9; }
.research-heading p br { display: none; }
.research-layout { display: flex; flex-direction: column; gap: 20px; min-width: 0; }
.research-tabs {
  display: flex;
  gap: 10px;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  border: 0;
  padding: 4px 3px 12px;
  margin: 0 -3px;
  scrollbar-width: thin;
  scrollbar-color: #596347 transparent;
}
.research-tab {
  width: auto;
  min-height: 48px;
  flex: 0 0 auto;
  padding: 13px 16px;
  gap: 10px;
  border: 1px solid #41483a;
  border-radius: 4px;
  font-size: .875rem;
  letter-spacing: -.02em;
  white-space: nowrap;
}
.tab-number { font-size: .625rem; opacity: .75; }
.tab-arrow { display: none; }
.research-tab.active { background: var(--lime); border-color: var(--lime); color: var(--bg); }
.research-panel { display: flex; flex-direction: column; min-height: 0; border-radius: 8px; }
.panel-top { padding: 20px; gap: 14px; font-size: .625rem; line-height: 1.6; letter-spacing: .065em; }
.panel-top span:first-child { max-width: 70%; }
.panel-top span:last-child { flex-shrink: 0; }
.intelligence-diagram { order: 2; height: 190px; margin: 0 20px 24px; }
.orbit { width: 176px; height: 120px; }
.orbit-three { width: 148px; height: 148px; }
.diagram-core { font-size: 2.75rem; }
.diagram-core span { font-size: .5625rem; letter-spacing: .06em; }
.diagram-label { top: auto; bottom: 8px; font-size: .625rem; letter-spacing: .07em; }
.label-input { left: 0; }
.label-output { right: 0; }
.panel-copy { order: 1; padding: 8px 20px 24px; }
.panel-copy h3 { font-size: 1.125rem; line-height: 1.65; letter-spacing: -.045em; word-break: keep-all; }
.panel-copy p { font-size: .9375rem; line-height: 1.9; min-height: 0; }
.panel-tags { margin-top: 22px; gap: 8px; }
.panel-tags span { font-size: .6875rem; padding: 7px 10px; }
.vision-note { display: none; }
.vision h2 { font-size: clamp(40px, 11vw, 60px); line-height: 1.35; margin-top: 32px; letter-spacing: -.07em; }
.vision-summary { gap: 18px; margin-top: 20px; }
.vision-summary p { font-size: .9375rem; line-height: 1.9; margin: 0; }
.vision-summary p br { display: none; }
.vision-symbol { display: none; }
.motion-steps { grid-template-columns: 1fr; margin-top: 34px; }
.motion-steps article, .motion-steps article:first-child, .motion-steps article:last-child {
  display: grid;
  grid-template-columns: 26px 1fr;
  column-gap: 16px;
  border: 0;
  border-top: 1px solid var(--line);
  padding: 25px 0;
}
.motion-steps article:last-child { padding-bottom: 0; }
.step-top { grid-row: span 2; display: block; padding-top: 5px; color: var(--lime); font-size: .625rem; }
.step-top span:last-child { display: none; }
.motion-steps h3 { display: flex; flex-wrap: wrap; align-items: baseline; gap: 12px; margin: 0 0 10px; font-size: 1.5rem; letter-spacing: -.04em; }
.motion-steps h3 > span { font-size: .75rem; margin: 0; }
.motion-steps p { font-size: .9375rem; line-height: 1.8; margin: 0; }
.motion-steps p br { display: none; }
.philosophy { padding: 30px var(--mobile-gutter); }
.philosophy-top { font-size: .625rem; letter-spacing: .08em; }
.philosophy-top span:last-child { display: none; }
.philosophy h2 { font-size: 9.1vw; line-height: 1.16; letter-spacing: -.065em; margin: 34px 0; }
.philosophy-period { margin-left: 5px; }
.philosophy-bottom { display: block; padding-top: 22px; }
.philosophy-bottom p { font-size: .8125rem; line-height: 1.8; }
.philosophy-bottom a { justify-content: space-between; min-height: 48px; margin-top: 12px; font-size: .875rem; }
.footer { padding: 38px var(--mobile-gutter) 24px; }
.footer-top { grid-template-columns: 1fr auto; gap: 24px; padding-bottom: 28px; }
.footer-top p { grid-column: 1 / -1; grid-row: 2; font-size: .8125rem; }
.back-top { font-size: .5625rem; gap: 8px; min-height: 44px; letter-spacing: .04em; }
.back-top span { width: 36px; height: 36px; }
.footer-bottom { flex-direction: column; gap: 8px; padding-top: 22px; font-size: .6875rem; }
.footer-bottom span:last-child { display: none; }
.mobile-dock {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  position: fixed;
  z-index: 19;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 8px max(12px, env(safe-area-inset-right)) calc(8px + env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left));
  border-top: 1px solid var(--line);
  background: rgba(16, 17, 16, .96);
  backdrop-filter: blur(18px);
}
.mobile-dock a { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 7px; min-height: 58px; color: #a1a49b; font-family: var(--kr); font-size: .6875rem; }
.mobile-dock svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.4; stroke-linecap: round; stroke-linejoin: round; }
.mobile-dock a[aria-current="location"] { color: var(--lime); }
body.menu-open .mobile-dock { visibility: hidden; }
@media (max-width: 360px) {
  .hero-eyebrow { font-size: .5625rem; letter-spacing: .025em; }
  .hero-bottom > span { max-width: 42%; line-height: 1.7; }
  .name-part, .name-part:first-child, .name-part:last-child { grid-template-columns: 60px minmax(0, 1fr); gap: 14px; }
  .name-letter { font-size: 2.25rem; }
  .panel-top, .panel-copy { padding-left: 16px; padding-right: 16px; }
}
@media (prefers-reduced-motion: reduce) { .research-tabs { scroll-behavior: auto; } }
