:root {
  color-scheme: light;
  --paper: #f3f2ec;
  --surface: #e9e9e3;
  --ink: #090b0d;
  --graphite: #202428;
  --blue: #315fe8;
  --data-blue: #9ab6ff;
  --rule: #c8cbc8;
  --muted: #6b706f;
  --white: #fbfbf7;
  --shell: 1480px;
  --pad: clamp(22px, 4vw, 68px);
  --ease-out: cubic-bezier(.22, 1, .36, 1);
  --ease-ios: cubic-bezier(.32, .72, 0, 1);
  --display: "Arial Narrow", "Aptos Display", "Helvetica Neue", Arial, sans-serif;
  --body: Aptos, Inter, "Helvetica Neue", Arial, sans-serif;
  --mono: "SFMono-Regular", "Roboto Mono", Consolas, monospace;
}

*, *::before, *::after { box-sizing: border-box; }
html { width: 100%; max-width: 100%; scroll-behavior: smooth; background: var(--paper); }
body { width: 100%; max-width: 100%; margin: 0; overflow-x: hidden; overflow-x: clip; background: var(--paper); color: var(--ink); font-family: var(--body); font-size: 16px; line-height: 1.55; text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; }
body.menu-open { overflow: hidden; }
button, a { -webkit-tap-highlight-color: transparent; }
button { font: inherit; }
a { color: inherit; }
img { max-width: 100%; }
::selection { background: var(--blue); color: var(--white); }

.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; z-index: 1000; top: 10px; left: 10px; padding: .8rem 1rem; background: var(--ink); color: white; transform: translateY(-150%); transition: transform 180ms var(--ease-out); }
.skip-link:focus { transform: translateY(0); }
:focus-visible { outline: 2px solid var(--blue); outline-offset: 4px; }
.shell { width: min(calc(100% - (2 * var(--pad))), var(--shell)); margin-inline: auto; }
.section-pad { padding-block: clamp(6.5rem, 11vw, 11rem); }

.scroll-progress { position: fixed; z-index: 120; top: 0; right: 0; left: 0; height: 2px; background: rgba(9, 11, 13, .08); }
.scroll-progress span { display: block; width: 100%; height: 100%; background: var(--blue); transform: scaleX(0); transform-origin: left center; will-change: transform; }

.site-header { position: fixed; z-index: 100; top: 0; right: 0; left: 0; border-bottom: 1px solid transparent; transition: background-color 240ms var(--ease-out), border-color 240ms var(--ease-out), transform 360ms var(--ease-out); }
.site-header.is-scrolled { border-color: rgba(9, 11, 13, .11); background: rgba(243, 242, 236, .9); backdrop-filter: blur(18px); }
.site-header.on-dark { border-color: rgba(255,255,255,.12); background: rgba(8,12,17,.88); }
.site-header.on-dark .brand, .site-header.on-dark .desktop-nav a, .site-header.on-dark .lang-switch { color: rgba(251,251,247,.92); }
.site-header.on-dark .lang-switch, .site-header.on-dark .motion-toggle { border-color: rgba(255,255,255,.22); }
.site-header.on-dark .motion-toggle { color: rgba(231,237,243,.72); }
.site-header.on-dark .menu-toggle > span:not(.sr-only) { background: var(--white); }
.header-inner { display: flex; align-items: center; justify-content: space-between; gap: 2rem; height: 78px; }
.brand { display: inline-flex; align-items: center; gap: .75rem; color: var(--ink); font-family: var(--display); font-size: .83rem; font-weight: 800; letter-spacing: .16em; text-decoration: none; text-transform: uppercase; white-space: nowrap; }
.brand-mark { width: 25px; height: 25px; overflow: visible; fill: var(--blue); stroke: var(--blue); stroke-width: 1.15; }
.brand-mark circle { stroke: none; }
.brand-light { color: var(--white); }
.brand-light .brand-mark { fill: var(--data-blue); stroke: var(--data-blue); }
.desktop-nav { display: flex; align-items: center; gap: clamp(1.25rem, 2.2vw, 2.4rem); margin-left: auto; }
.desktop-nav a, .lang-switch { position: relative; color: #303437; font-size: .76rem; font-weight: 600; text-decoration: none; }
.desktop-nav a::after { position: absolute; right: 0; bottom: -.5rem; left: 0; height: 1px; background: var(--blue); content: ""; transform: scaleX(0); transform-origin: right; transition: transform 220ms var(--ease-out); }
.desktop-nav a:hover::after, .desktop-nav a:focus-visible::after { transform: scaleX(1); transform-origin: left; }
.header-actions { display: flex; align-items: center; gap: .8rem; }
.lang-switch { display: grid; width: 34px; height: 34px; place-items: center; border: 1px solid var(--rule); font-family: var(--mono); font-size: .62rem; letter-spacing: .08em; transition: border-color 180ms var(--ease-out), color 180ms var(--ease-out); }
.lang-switch:hover { border-color: var(--blue); color: var(--blue); }
.motion-toggle { display: inline-flex; min-height: 34px; align-items: center; gap: .5rem; padding: 0 .7rem; border: 1px solid var(--rule); background: transparent; color: var(--muted); font-family: var(--mono); font-size: .55rem; letter-spacing: .04em; text-transform: uppercase; cursor: pointer; transition: border-color 180ms var(--ease-out), color 180ms var(--ease-out); }
.motion-toggle:hover { border-color: var(--blue); color: var(--ink); }
.motion-toggle:active, .menu-toggle:active, .email-reveal:active { transform: scale(.97); }
.motion-toggle-dot { width: 5px; height: 5px; border-radius: 50%; background: var(--blue); box-shadow: 0 0 0 3px rgba(49, 95, 232, .1); }
.motion-toggle[aria-pressed="true"] .motion-toggle-dot { background: var(--muted); box-shadow: none; }
.menu-toggle { display: none; width: 40px; height: 40px; padding: 0; border: 0; background: transparent; cursor: pointer; }
.menu-toggle > span:not(.sr-only) { display: block; width: 22px; height: 1px; margin: 6px auto; background: var(--ink); transition: transform 220ms var(--ease-out); }
.menu-toggle[aria-expanded="true"] > span:nth-child(2) { transform: translateY(3.5px) rotate(45deg); }
.menu-toggle[aria-expanded="true"] > span:nth-child(3) { transform: translateY(-3.5px) rotate(-45deg); }
.mobile-nav { position: fixed; z-index: 98; inset: 78px 0 0; padding: 2rem var(--pad); background: var(--paper); }
.mobile-nav a { display: block; padding: 1rem 0; border-bottom: 1px solid var(--rule); font-family: var(--display); font-size: clamp(2rem, 10vw, 4rem); font-weight: 700; letter-spacing: -.04em; line-height: 1; text-decoration: none; }

.site-header:not(.is-scrolled) .brand,
.site-header:not(.is-scrolled) .desktop-nav a,
.site-header:not(.is-scrolled) .lang-switch { color: rgba(251,251,247,.92); }
.site-header:not(.is-scrolled) .lang-switch,
.site-header:not(.is-scrolled) .motion-toggle { border-color: rgba(255,255,255,.22); }
.site-header:not(.is-scrolled) .motion-toggle { color: rgba(231,237,243,.72); }
.site-header:not(.is-scrolled) .motion-toggle:hover { border-color: rgba(154,182,255,.72); color: white; }
.site-header:not(.is-scrolled) .menu-toggle > span:not(.sr-only) { background: var(--white); }

.eyebrow, .section-label, .section-index, .chapter-kicker, .thesis-meta, .research-map-head, .research-map-foot, .essay-type, .archive-item figcaption span, .timeline > li > span, .footer-nav > div > span { font-family: var(--mono); font-size: .61rem; letter-spacing: .1em; text-transform: uppercase; }
.section-label { margin: 0 0 1.45rem; color: var(--blue); }
.section-head { display: grid; grid-template-columns: minmax(0, 1fr) minmax(250px, 33rem); align-items: end; gap: 3rem; }
.section-head .section-label { grid-column: 1 / -1; }
.section-head h2, .publications-intro h2, .career-intro h2, .concept-copy h2, .contact-copy h2 { margin: 0; font-family: var(--display); font-size: clamp(3.3rem, 6.8vw, 7.8rem); font-stretch: condensed; font-weight: 700; letter-spacing: -.065em; line-height: .88; }
.section-head h2 span, .publications-intro h2 span, .career-intro h2 span, .concept-copy h2 span, .contact-copy h2 span { color: #777d7b; font-weight: 400; }
.section-head > p, .section-head-split > p { max-width: 35rem; margin: 0 0 .6rem; color: #525755; font-size: clamp(1rem, 1.35vw, 1.23rem); line-height: 1.65; }
.section-head-split { grid-template-columns: 1.4fr .6fr; }

.hero { position: relative; min-height: 100svh; overflow: hidden; background: #05090d; color: var(--white); isolation: isolate; }
.hero-background-video { position: absolute; z-index: -6; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 50%; opacity: .35; filter: grayscale(.12) saturate(.72) contrast(1.1) brightness(.88); pointer-events: none; }
.hero-video-wash { position: absolute; z-index: -5; inset: 0; background: linear-gradient(90deg, rgba(2,7,13,.5) 0%, rgba(2,8,15,.27) 43%, rgba(2,8,15,.08) 72%, rgba(2,7,13,.18) 100%), linear-gradient(180deg, rgba(2,7,13,.22), transparent 42%, rgba(2,7,13,.46)); pointer-events: none; }
.hero-film-texture { position: absolute; z-index: -4; inset: 0; opacity: .52; background: radial-gradient(ellipse at center, transparent 34%, rgba(0,3,7,.46) 118%), repeating-linear-gradient(0deg, rgba(255,255,255,.04) 0 1px, transparent 1px 4px), repeating-linear-gradient(90deg, rgba(255,255,255,.022) 0 1px, transparent 1px 7px); mix-blend-mode: soft-light; pointer-events: none; }
.hero-film-texture::after { position: absolute; inset: 0; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.34'/%3E%3C/svg%3E"); background-size: 168px 168px; content: ""; opacity: .46; mix-blend-mode: overlay; }
.hero::before { position: absolute; z-index: -2; inset: 0; background: radial-gradient(circle at 73% 49%, rgba(80,130,255,.14), transparent 22%), radial-gradient(circle at 54% 70%, rgba(49,95,232,.08), transparent 31%); content: ""; }
.hero-grid, .thesis-grid, .contact-grid { position: absolute; z-index: -1; inset: 0; background-image: linear-gradient(rgba(9, 11, 13, .052) 1px, transparent 1px), linear-gradient(90deg, rgba(9, 11, 13, .052) 1px, transparent 1px); background-size: 68px 68px; mask-image: linear-gradient(to bottom, rgba(0,0,0,.55), transparent 90%); }
.hero .hero-grid { background-image: linear-gradient(rgba(214,226,239,.065) 1px, transparent 1px), linear-gradient(90deg, rgba(214,226,239,.065) 1px, transparent 1px); }
.hero-inner { position: relative; min-height: 100svh; padding-top: 78px; }
.hero-copy { position: absolute; z-index: 5; top: 19%; left: 0; width: min(58vw, 870px); }
.hero-eyebrow { display: flex; align-items: center; gap: .7rem; margin: 0 0 2rem; color: rgba(226,234,241,.74); }
.hero-eyebrow span { width: 28px; height: 1px; background: var(--data-blue); }
.hero-name { margin: 0 0 .9rem; font-family: var(--display); font-size: clamp(1rem, 1.3vw, 1.25rem); font-weight: 700; letter-spacing: -.02em; }
.hero h1 { max-width: 12ch; margin: 0; font-family: var(--display); font-size: clamp(4rem, 7.8vw, 8.4rem); font-stretch: condensed; font-weight: 700; letter-spacing: -.075em; line-height: .82; }
.hero h1 > span { display: grid; width: max-content; }
.hero h1 .accent { color: var(--data-blue); font-weight: 400; white-space: nowrap; }
.hero h1.hero-title-long { max-width: 100%; font-size: clamp(2.7rem, 4.25vw, 4.65rem); letter-spacing: -.06em; line-height: .88; }
.hero h1.hero-title-long > span { width: 100%; }
.hero h1.hero-title-long .decode-reserve,
.hero h1.hero-title-long .decode-output { white-space: normal; }
.hero h1.hero-title-long .accent { white-space: normal; }
.text-decode { position: relative; grid-template-areas: "decode"; isolation: isolate; }
.text-decode::after { position: absolute; z-index: 0; inset: .02em -.055em -.03em; border: 1px solid var(--data-blue); background: rgba(49,95,232,.13); box-shadow: 0 0 1.1rem rgba(49,95,232,.15); content: ""; opacity: 0; transform: scaleX(.986); transform-origin: left center; transition: opacity 180ms var(--ease-out), transform 260ms var(--ease-out); pointer-events: none; }
.text-decode.is-decoding::after { opacity: 1; transform: scaleX(1); }
.decode-reserve, .decode-output { grid-area: decode; white-space: pre; }
.decode-reserve { visibility: hidden; }
.decode-output { position: relative; z-index: 1; }
.text-decode-inline { display: inline-grid; max-width: 100%; }
.text-decode-inline .decode-reserve,
.text-decode-inline .decode-output { white-space: normal; }
.text-decode-stable { width: max-content; vertical-align: baseline; }
.text-decode-stable .decode-reserve,
.text-decode-stable .decode-output { white-space: nowrap; }
.text-decode-stable .decode-output { position: absolute; top: 0; left: 0; width: 100%; }
.hero-lead { max-width: 39rem; margin: 2.1rem 0 0; color: rgba(232,237,242,.82); font-size: clamp(1rem, 1.25vw, 1.23rem); line-height: 1.6; text-shadow: 0 1px 18px rgba(0,0,0,.32); }
.hero-actions { display: flex; align-items: center; gap: 1.9rem; margin-top: 2rem; }
.primary-link, .text-link, .inline-arrow, .thesis-link { display: inline-flex; align-items: center; justify-content: space-between; gap: 1.2rem; font-size: .78rem; font-weight: 700; text-decoration: none; }
.primary-link { min-width: 190px; padding: .95rem 1.05rem; background: rgba(251,251,247,.95); color: var(--ink); box-shadow: 0 10px 30px rgba(0,0,0,.18); transition: background-color 180ms var(--ease-out), color 180ms var(--ease-out), transform 180ms var(--ease-out); }
.primary-link:hover { background: var(--blue); color: var(--white); transform: translateY(-2px); }
.primary-link:active { transform: scale(.98); }
.drawn-arrow {
  position: relative;
  display: inline-block;
  width: 14px;
  height: 14px;
  flex: 0 0 14px;
  margin-left: .35rem;
  color: currentColor;
  font-size: 0;
}
.drawn-arrow::before {
  position: absolute;
  top: 6.5px;
  left: 1px;
  width: 12px;
  height: 1px;
  background: currentColor;
  content: "";
  transform: rotate(-45deg);
  transform-origin: center;
}
.drawn-arrow::after {
  position: absolute;
  top: 1px;
  right: 1px;
  width: 7px;
  height: 7px;
  border-top: 1px solid currentColor;
  border-right: 1px solid currentColor;
  content: "";
}
.text-link, .inline-arrow { padding-bottom: .35rem; border-bottom: 1px solid currentColor; transition: color 180ms var(--ease-out), border-color 180ms var(--ease-out); }
.text-link:hover, .inline-arrow:hover { color: var(--blue); }
.hero-visual { position: absolute; z-index: 1; top: 16%; right: -11%; width: min(83vw, 1420px); margin: 0; }
.hands-plane { --hand-travel: 22px; position: relative; width: 100%; aspect-ratio: 1.75 / 1; transform: perspective(1400px) rotateX(0) rotateY(0); transform-style: preserve-3d; transition: transform 420ms var(--ease-out); will-change: transform; }
.hand-layer { position: absolute; inset: 0; transform-origin: 50% 48%; will-change: transform; }
.hand-layer img { display: block; width: 100%; height: 100%; object-fit: contain; }
.hand-layer-data { z-index: 1; clip-path: inset(0 45.25% 0 0); animation: data-hand-drift 19.2s cubic-bezier(.45, 0, .22, 1) infinite; filter: saturate(.9) contrast(1.08) brightness(1.04); }
.hand-layer-human { z-index: 2; clip-path: inset(0 0 0 54.75%); animation: human-hand-drift 19.2s cubic-bezier(.45, 0, .22, 1) infinite; filter: contrast(1.07) brightness(.94); }
.particle-field { position: absolute; z-index: 0; display: block; width: 38%; height: 55%; background-image: radial-gradient(circle, rgba(154,182,255,.48) 0 1px, transparent 1.25px), radial-gradient(circle, rgba(236,244,252,.16) 0 .8px, transparent 1px); background-position: 0 0, 8px 11px; background-size: 17px 17px, 23px 23px; mask-image: radial-gradient(ellipse at center, black 0 22%, transparent 72%); animation: particle-drift 15s linear infinite alternate; }
.particle-field-a { top: 20%; left: 4%; transform: rotate(-6deg); }
.particle-field-b { right: 4%; bottom: 13%; width: 29%; height: 37%; opacity: .5; transform: rotate(8deg); }
.fingertip-dot { position: absolute; z-index: 5; top: 49.17%; width: 5.5px; height: 5.5px; margin: -2.75px 0 0 -2.75px; border-radius: 50%; background: #eef6ff; box-shadow: 0 0 8px 2px rgba(49,95,232,.5), 0 0 24px 5px rgba(49,95,232,.13); pointer-events: none; will-change: transform, opacity; }
.fingertip-dot-data { left: 52.61%; animation: data-dot-contact 19.2s cubic-bezier(.45, 0, .22, 1) infinite; }
.fingertip-dot-human { left: 56.22%; animation: human-dot-contact 19.2s cubic-bezier(.45, 0, .22, 1) infinite; }
.hero-connections { position: absolute; z-index: 3; inset: 0; width: 100%; height: 100%; overflow: visible; }
.connection-base path { fill: none; stroke: rgba(154,182,255,.58); stroke-width: .95; stroke-dasharray: 5 7; vector-effect: non-scaling-stroke; }
.connection-signal path { fill: none; stroke: rgba(255,255,255,.95); stroke-width: 1.05; stroke-linecap: round; opacity: 0; filter: drop-shadow(0 0 2px rgba(255,255,255,.72)) drop-shadow(0 0 6px rgba(154,182,255,.44)); vector-effect: non-scaling-stroke; }
.hero-term { position: absolute; z-index: 6; padding: .25rem .4rem; border: 1px solid rgba(255,255,255,.16); background: rgba(3,9,15,.62); color: rgba(226,235,244,.82); font-family: var(--mono); font-size: .49rem; letter-spacing: .07em; text-transform: uppercase; backdrop-filter: blur(6px); }
.term-communication { top: 15%; left: 25%; transform: translate(-50%, -100%); }
.term-society { top: 59.615%; left: 17.8%; transform: translate(-100%, -50%); }
.term-adaptation { bottom: 6%; left: 30%; }
.term-decision { top: 12%; right: 19%; }
.term-intelligence { top: 65.385%; right: auto; bottom: auto; left: 79.5%; transform: translate(-50%, 0); }
.scroll-cue { position: absolute; z-index: 8; right: 0; bottom: 4.4rem; display: none; color: rgba(226,235,244,.68); font-family: var(--mono); font-size: .55rem; letter-spacing: .08em; text-decoration: none; text-transform: uppercase; }
.scroll-cue i { position: relative; width: 1px; height: 28px; margin-left: .8rem; overflow: hidden; background: var(--rule); }
.scroll-cue i::after { position: absolute; inset: 0; background: var(--blue); content: ""; animation: scroll-cue 1.8s var(--ease-out) infinite; }

@keyframes data-hand-drift { 0%, 100% { transform: translate3d(0, 2px, 0) rotate(-.15deg); } 28%, 42%, 72%, 86% { transform: translate3d(var(--hand-travel), -1px, 0) rotate(.18deg); } 50% { transform: translate3d(5px, 1px, 0) rotate(-.08deg); } }
@keyframes human-hand-drift { 0%, 100% { transform: translate3d(0, -2px, 0); } 28%, 42%, 72%, 86% { transform: translate3d(calc(var(--hand-travel) * -1), -2px, 0); } 50% { transform: translate3d(-5px, -1px, 0); } }
@keyframes data-dot-contact { 0%, 100% { opacity: .5; transform: translate3d(0, 2px, 0) scale(.92); } 28%, 42%, 72%, 86% { opacity: 1; transform: translate3d(var(--hand-travel), -1px, 0) scale(1.12); } 50% { opacity: .64; transform: translate3d(5px, 1px, 0) scale(.98); } }
@keyframes human-dot-contact { 0%, 100% { opacity: .48; transform: translate3d(0, -2px, 0) scale(.92); } 28%, 42%, 72%, 86% { opacity: 1; transform: translate3d(calc(var(--hand-travel) * -1), -1px, 0) scale(1.12); } 50% { opacity: .62; transform: translate3d(-5px, -1px, 0) scale(.98); } }
@keyframes particle-drift { from { transform: translate3d(-7px, 5px, 0) rotate(-5deg); } to { transform: translate3d(10px, -7px, 0) rotate(3deg); } }
@keyframes scroll-cue { 0% { transform: translateY(-100%); } 45%, 100% { transform: translateY(100%); } }

.profile-intro { background: var(--white); }
.profile-grid { display: grid; grid-template-columns: minmax(270px, .42fr) minmax(0, 1fr); gap: clamp(4.5rem, 9vw, 11rem); }
.profile-visual-column { min-width: 0; }
.profile-system-visual { position: relative; width: min(100%, 410px); margin: clamp(2.5rem, 5vw, 5rem) 0 0; overflow: hidden; aspect-ratio: 1122 / 1402; }
.profile-system-visual::after { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(255,255,255,.16), transparent 20% 80%, rgba(255,255,255,.28)); content: ""; pointer-events: none; }
.profile-system-visual img { display: block; width: 100%; height: 100%; object-fit: contain; opacity: .74; filter: contrast(1.08); mix-blend-mode: multiply; }
.section-index { display: flex; flex-direction: column; gap: .65rem; padding-top: .5rem; color: var(--muted); }
.section-index span:first-child { color: var(--blue); }
.display-statement { max-width: 22ch; margin: 0; font-family: var(--display); font-size: clamp(2.55rem, 5vw, 6rem); font-weight: 500; letter-spacing: -.06em; line-height: .98; }
.display-statement em { color: var(--blue); font-style: normal; font-weight: 300; }
.profile-columns { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 5vw, 5rem); margin-top: clamp(3rem, 6vw, 6rem); padding-top: 1.5rem; border-top: 1px solid var(--rule); }
.profile-columns > p { max-width: 38rem; margin: 0; color: #4e5452; font-size: clamp(1rem, 1.2vw, 1.2rem); line-height: 1.7; }
.profile-tags { display: flex; flex-wrap: wrap; align-content: flex-start; gap: .55rem; }
.profile-tags a, .research-chapter li, [data-concept-related] span { padding: .42rem .65rem; border: 1px solid var(--rule); color: #4f5654; font-family: var(--mono); font-size: .58rem; letter-spacing: .04em; text-transform: uppercase; }
.profile-tags a { text-decoration: none; transition: border-color 180ms var(--ease-out), color 180ms var(--ease-out); }
.profile-tags a:hover, .profile-tags a:focus-visible { border-color: var(--blue); color: var(--blue); }
.profile-statement > .inline-arrow { margin-top: 3rem; }

.spin-thesis { position: relative; min-height: 0; background: #080c11; color: var(--white); }
.spin-thesis-sticky { position: relative; height: 100svh; min-height: 720px; max-height: 980px; overflow: hidden; isolation: isolate; }
.spin-thesis-grid { position: absolute; z-index: -2; inset: 0; background-image: linear-gradient(rgba(154,182,255,.055) 1px, transparent 1px), linear-gradient(90deg, rgba(154,182,255,.055) 1px, transparent 1px); background-size: 64px 64px; mask-image: radial-gradient(circle at 58% 48%, black, transparent 82%); }
.spin-thesis-sticky::before { position: absolute; z-index: -1; inset: 0; background: radial-gradient(circle at 61% 48%, rgba(49,95,232,.18), transparent 27%), linear-gradient(130deg, rgba(154,182,255,.05), transparent 40%); content: ""; }
.spin-thesis-inner { position: relative; height: 100%; }
.spin-thesis-head { position: absolute; z-index: 3; top: clamp(6rem, 11vh, 8.5rem); right: 0; left: 0; display: flex; justify-content: space-between; align-items: flex-start; gap: 3rem; }
.spin-thesis-head .section-label { margin: .25rem 0 0; color: var(--data-blue); }
.spin-thesis-head h2 { max-width: 16ch; margin: 0; font-family: var(--display); font-size: clamp(1.25rem, 2.15vw, 2.2rem); font-weight: 500; letter-spacing: -.035em; line-height: 1.05; text-align: right; }
.spin-thesis-head h2 span { color: rgba(232,239,247,.48); font-weight: 300; }
.spin-stage { position: absolute; top: 19%; right: 0; bottom: 12%; left: 0; display: grid; grid-template-columns: minmax(240px, .62fr) minmax(0, 1.38fr); align-items: stretch; gap: clamp(4rem, 9vw, 11rem); isolation: isolate; }
.spin-portrait { position: absolute; z-index: 1; top: -19%; right: -3%; width: min(78vw, 1120px); height: 138%; margin: 0; overflow: hidden; opacity: .62; pointer-events: none; mix-blend-mode: screen; -webkit-mask-image: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.8) 13%, #000 38%, #000 94%, transparent 100%), linear-gradient(180deg, transparent 0%, #000 9%, #000 91%, transparent 100%); -webkit-mask-composite: source-in; mask-image: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.8) 13%, #000 38%, #000 94%, transparent 100%), linear-gradient(180deg, transparent 0%, #000 9%, #000 91%, transparent 100%); mask-composite: intersect; }
.spin-portrait img { width: 100%; height: 100%; object-fit: contain; object-position: right center; filter: contrast(1.06) brightness(.9); }
.spin-copy-stack { position: relative; z-index: 3; align-self: end; min-height: 15rem; padding-top: 1.25rem; border-top: 1px solid rgba(154,182,255,.34); }
.spin-copy-stack::before { position: absolute; top: -1px; left: 0; width: 2.4rem; height: 1px; background: var(--data-blue); content: ""; }
.spin-frame { position: absolute; inset: 1.25rem 0 auto; visibility: hidden; opacity: 0; filter: blur(2px); transform: translate3d(0, -4px, 0); transition: opacity 150ms cubic-bezier(.4,0,1,1), filter 150ms cubic-bezier(.4,0,1,1), transform 150ms cubic-bezier(.4,0,1,1), visibility 0s linear 150ms; will-change: transform, opacity, filter; }
.spin-frame.is-active { visibility: visible; opacity: 1; filter: blur(0); transform: translate3d(0, 0, 0); transition: opacity 280ms cubic-bezier(.16,1,.3,1), filter 280ms cubic-bezier(.16,1,.3,1), transform 280ms cubic-bezier(.16,1,.3,1), visibility 0s linear 0s; }
.spin-frame-index { margin: 0 0 1.5rem; color: var(--data-blue); font-family: var(--mono); font-size: .57rem; letter-spacing: .1em; text-transform: uppercase; }
.spin-frame > p:last-child { max-width: 31rem; margin: 0; color: rgba(226,235,244,.72); font-size: clamp(1rem, 1.3vw, 1.2rem); line-height: 1.65; }
.spin-word-list { position: relative; z-index: 3; align-self: center; margin: 2.5rem 0 0; padding: 0; list-style: none; }
.spin-word-list li { margin: 0; padding: 0; }
.spin-word { position: relative; display: block; width: max-content; max-width: 100%; margin: 0; padding: 0; border: 0; appearance: none; background: transparent; color: rgba(232,239,247,.2); font-family: var(--display); font-size: clamp(4.8rem, 8.65vw, 8.4rem); font-stretch: condensed; font-weight: 700; letter-spacing: -.075em; line-height: .79; text-align: left; cursor: pointer; transition: color 220ms cubic-bezier(.16,1,.3,1); }
@media (hover: hover) and (pointer: fine) {
  .spin-word:hover:not(.is-active) { color: rgba(232,239,247,.46); }
}
.spin-word.is-active { color: rgba(251,251,247,.98); }
.spin-word:focus-visible { outline: 1px solid var(--data-blue); outline-offset: .08em; }
.spin-word::after { position: absolute; right: -.03em; bottom: .02em; left: -.01em; height: .055em; background: linear-gradient(90deg, var(--blue), var(--data-blue)); content: ""; opacity: 0; transform: scaleX(.48); transform-origin: left center; transition: opacity 220ms cubic-bezier(.4,0,1,1), transform 250ms cubic-bezier(.4,0,1,1); }
.spin-word.is-active::after { opacity: .62; transform: scaleX(1); transition-duration: 220ms, 260ms; transition-timing-function: cubic-bezier(.16,1,.3,1); }
.spin-thesis.is-keyboard-switch .spin-frame,
.spin-thesis.is-keyboard-switch .spin-word,
.spin-thesis.is-keyboard-switch .spin-word::after { transition: none; }
.spin-thesis-foot { position: absolute; right: 0; bottom: 2rem; left: 0; display: flex; justify-content: space-between; gap: 2rem; padding-top: .9rem; border-top: 1px solid rgba(255,255,255,.16); color: rgba(214,226,239,.54); font-family: var(--mono); font-size: .55rem; letter-spacing: .08em; text-transform: uppercase; }
.spin-thesis-foot a { text-decoration: none; transition: color 180ms var(--ease-out); }
.spin-thesis-foot a:hover { color: var(--data-blue); }

.programme { position: relative; overflow: hidden; background: var(--surface); }
.programme.section-pad { padding-bottom: clamp(4rem, 6vw, 6.5rem); }
.programme .section-head { position: relative; z-index: 5; }
.programme-system { --programme-media-bleed: clamp(11rem, 17vw, 17rem); position: relative; width: 100vw; max-width: none; height: 560px; margin-top: clamp(4rem, 8vw, 8rem); margin-left: calc(50% - 50vw); overflow: visible; border: 0; background: transparent; isolation: isolate; }
.programme-system::before, .programme-system::after { position: absolute; z-index: 1; top: calc(var(--programme-media-bleed) * -1); right: 0; bottom: calc(var(--programme-media-bleed) * -1); left: 0; pointer-events: none; content: ""; }
.programme-system::before { background-image: linear-gradient(rgba(9,11,13,.04) 1px, transparent 1px), linear-gradient(90deg, rgba(9,11,13,.04) 1px, transparent 1px), repeating-radial-gradient(circle at 30% 20%, rgba(9,11,13,.14) 0 .45px, transparent .55px 2.4px); background-size: 48px 48px, 48px 48px, 3px 3px; opacity: .58; mix-blend-mode: multiply; -webkit-mask-image: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.18) 10%, rgba(0,0,0,.58) 24%, #000 40%, #000 66%, rgba(0,0,0,.58) 82%, rgba(0,0,0,.16) 94%, transparent 100%); mask-image: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.18) 10%, rgba(0,0,0,.58) 24%, #000 40%, #000 66%, rgba(0,0,0,.58) 82%, rgba(0,0,0,.16) 94%, transparent 100%); }
.programme-system::after { background: linear-gradient(180deg, rgba(243,242,236,.24) 0%, rgba(243,242,236,.08) 34%, rgba(243,242,236,.04) 66%, rgba(243,242,236,.26) 100%), linear-gradient(90deg, rgba(243,242,236,.06), transparent 18%, transparent 82%, rgba(243,242,236,.06)); }
.programme-video { position: absolute; z-index: 0; top: calc(var(--programme-media-bleed) * -1); right: 0; bottom: auto; left: 0; width: 100%; height: calc(100% + (var(--programme-media-bleed) * 2)); object-fit: cover; object-position: center; opacity: .6; filter: grayscale(.08) saturate(.76) contrast(1.08) brightness(1.02); -webkit-mask-image: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.12) 7%, rgba(0,0,0,.38) 16%, rgba(0,0,0,.72) 28%, #000 40%, #000 66%, rgba(0,0,0,.72) 79%, rgba(0,0,0,.34) 90%, rgba(0,0,0,.1) 97%, transparent 100%); mask-image: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.12) 7%, rgba(0,0,0,.38) 16%, rgba(0,0,0,.72) 28%, #000 40%, #000 66%, rgba(0,0,0,.72) 79%, rgba(0,0,0,.34) 90%, rgba(0,0,0,.1) 97%, transparent 100%); }
.programme-lines { position: absolute; z-index: 2; inset: 0; width: 100%; height: 100%; }
.programme-lines-mobile { display: none; }
.programme-lines path { fill: none; vector-effect: non-scaling-stroke; }
.programme-path-base { stroke: rgba(49,95,232,.18); stroke-width: 1; }
.programme-path-motion { stroke: rgba(49,95,232,.72); stroke-width: 1.15; stroke-dasharray: 8 16; stroke-linecap: round; opacity: 0; animation: programme-flow 3.8s linear infinite; transition: opacity 800ms var(--ease-out); }
.programme-system.is-visible .programme-path-motion { opacity: 1; }
.programme-node { position: absolute; z-index: 3; width: 174px; min-height: 136px; padding: 1rem; border: 1px solid rgba(9, 11, 13, .1); background: rgba(243, 242, 236, .9); box-shadow: 0 1px 1px rgba(9, 11, 13, .04), 0 12px 38px rgba(9, 11, 13, .05); opacity: 0; filter: blur(8px); transform: translate3d(var(--enter-x), var(--enter-y), 0) scale(.96); backdrop-filter: blur(8px); transition: opacity 720ms var(--ease-out) var(--node-delay), filter 720ms var(--ease-out) var(--node-delay), transform 920ms var(--ease-out) var(--node-delay), border-color 220ms var(--ease-out), box-shadow 300ms var(--ease-out); }
.programme-system.is-visible .programme-node { opacity: 1; filter: blur(0); transform: translate3d(0, 0, 0) scale(1); }
.programme-system.is-visible .programme-node:hover { border-color: var(--blue); transform: translate3d(0, -5px, 0) scale(1); box-shadow: 0 18px 44px rgba(9, 11, 13, .08); }
.programme-node::before { position: absolute; top: -4px; left: -4px; width: 7px; height: 7px; border: 1px solid var(--blue); background: var(--surface); content: ""; }
.programme-node span { color: var(--blue); font-family: var(--mono); font-size: .51rem; letter-spacing: .08em; text-transform: uppercase; }
.programme-node h3 { margin: .45rem 0 .35rem; font-family: var(--display); font-size: 1.45rem; letter-spacing: -.04em; }
.programme-node p { margin: 0; color: var(--muted); font-family: var(--mono); font-size: .54rem; line-height: 1.5; }
.node-research { top: 173px; left: clamp(1.75rem, 4vw, 4.5rem); }.node-market { top: 46px; left: 17.5%; }.node-ip { top: 255px; left: 35%; }.node-spinoff { top: 46px; left: 52.5%; border-color: rgba(49, 95, 232, .58); background: rgba(235,239,255,.94); }.node-validation { top: 255px; left: 70%; }.node-impact { top: 173px; right: clamp(1.75rem, 4vw, 4.5rem); background: rgba(32,36,40,.94); color: var(--white); }.node-impact p { color: rgba(235,240,245,.66); }.node-impact::before { background: var(--graphite); }
@keyframes programme-flow { to { stroke-dashoffset: -96; } }

.research-atlas { padding-bottom: clamp(7rem, 13vw, 13rem); background: var(--paper); }
.research-heading { padding-bottom: clamp(5rem, 8vw, 8rem); }
.research-heading-context { display: grid; align-self: end; gap: 1.35rem; }
.research-heading-context > p { max-width: 35rem; margin: 0 0 .6rem; color: #525755; font-size: clamp(1rem, 1.35vw, 1.23rem); line-height: 1.65; }
.research-heading-media { position: relative; width: min(100%, 31rem); margin: 0; overflow: hidden; aspect-ratio: 4 / 2.55; border-bottom: 1px solid rgba(9,11,13,.14); isolation: isolate; }
.research-heading-media::before { position: absolute; z-index: 1; inset: 0; background: linear-gradient(90deg, var(--paper) 0%, transparent 12%, transparent 92%, var(--paper) 100%); content: ""; pointer-events: none; }
.research-heading-media img { width: 100%; height: 100%; object-fit: contain; object-position: 50% 43%; opacity: .78; filter: grayscale(1) contrast(1.08); mix-blend-mode: multiply; transform: translateY(0) scale(1.34); transform-origin: 50% 46%; }
.research-heading-media figcaption { position: absolute; z-index: 2; right: 0; bottom: .55rem; left: 0; display: flex; justify-content: space-between; color: #656b69; font-family: var(--mono); font-size: .5rem; letter-spacing: .1em; text-transform: uppercase; }
.research-layout { display: grid; grid-template-columns: minmax(0, .84fr) minmax(480px, 1.16fr); gap: clamp(3rem, 8vw, 9rem); align-items: start; }
.research-list { border-top: 1px solid var(--rule); }
.research-chapter { min-height: 70vh; padding: clamp(3rem, 6vw, 6rem) 0; border-bottom: 1px solid var(--rule); opacity: .36; filter: blur(1.5px); transition: opacity 450ms var(--ease-out), filter 450ms var(--ease-out); }
.research-chapter.is-active { opacity: 1; filter: blur(0); }
.chapter-kicker { display: flex; justify-content: space-between; color: var(--muted); }
.chapter-kicker span:first-child { color: var(--blue); }
.research-chapter h3 { max-width: 13ch; margin: clamp(2rem, 4vw, 4rem) 0 1.5rem; font-family: var(--display); font-size: clamp(2.6rem, 4.8vw, 5.6rem); font-weight: 600; letter-spacing: -.06em; line-height: .95; }
.research-chapter p { max-width: 39rem; margin: 0; color: #4e5452; font-size: clamp(1rem, 1.22vw, 1.18rem); line-height: 1.7; }
.research-chapter ul { display: flex; flex-wrap: wrap; gap: .45rem; margin: 2.2rem 0; padding: 0; list-style: none; }
.research-chapter a { display: inline-flex; align-items: center; gap: 1.2rem; padding-bottom: .35rem; border-bottom: 1px solid var(--ink); font-size: .78rem; font-weight: 700; text-decoration: none; transition: color 180ms var(--ease-out), border-color 180ms var(--ease-out); }
.research-chapter a:hover { border-color: var(--blue); color: var(--blue); }
.research-map { position: sticky; top: 104px; scroll-margin-top: 104px; height: min(75vh, 720px); overflow: hidden; border: 1px solid rgba(49,95,232,.2); background: radial-gradient(circle at 50% 52%, rgba(154,182,255,.13), transparent 38%), linear-gradient(145deg, #f1f1eb 0%, #e9eae6 100%); box-shadow: 0 18px 62px rgba(9, 11, 13, .07), inset 0 0 0 1px rgba(255,255,255,.42); isolation: isolate; }
.research-map::after { position: absolute; z-index: 1; inset: 0; background: radial-gradient(circle at 50% 50%, transparent 28%, rgba(243,242,236,.42) 88%), linear-gradient(115deg, transparent 38%, rgba(255,255,255,.24) 49%, transparent 61%); content: ""; pointer-events: none; }
.research-map-head, .research-map-foot { position: absolute; z-index: 3; right: 1.2rem; left: 1.2rem; display: flex; justify-content: space-between; align-items: flex-start; color: var(--muted); }
.research-map-head { top: 1.1rem; padding-bottom: .8rem; border-bottom: 1px solid rgba(9,11,13,.13); }
.research-map-head div { display: flex; flex-direction: column; gap: .35rem; }
.research-map-head strong { color: var(--ink); font-family: var(--body); font-size: .72rem; letter-spacing: 0; text-transform: none; }
.research-map-foot { bottom: 1rem; padding-top: .8rem; border-top: 1px solid rgba(9,11,13,.13); }
.research-canvas-wrap { position: absolute; inset: 0; overflow: hidden; }
.research-canvas-wrap::before { position: absolute; inset: 0; background-image: radial-gradient(circle, rgba(49, 95, 232, .14) 0 1px, transparent 1px); background-size: 18px 18px; mask-image: radial-gradient(circle at center, black, transparent 74%); content: ""; }
.research-canvas-wrap canvas { position: absolute; z-index: 2; inset: 0; width: 100%; height: 100%; }
.canvas-fallback { position: absolute; inset: 18% 8%; display: none; place-items: center; }

.thesis { position: relative; min-height: 850px; overflow: hidden; padding-block: clamp(7rem, 12vw, 13rem); background: var(--ink); color: var(--white); isolation: isolate; }
.thesis::before { position: absolute; z-index: -2; inset: 0; background: radial-gradient(circle at 74% 54%, rgba(49, 95, 232, .24), transparent 31%), radial-gradient(circle at 29% 20%, rgba(154, 182, 255, .08), transparent 22%); content: ""; }
.thesis-grid { background-image: linear-gradient(rgba(154, 182, 255, .055) 1px, transparent 1px), linear-gradient(90deg, rgba(154, 182, 255, .055) 1px, transparent 1px); mask-image: radial-gradient(circle at center, black, transparent 88%); }
.thesis-meta { display: flex; justify-content: space-between; padding-bottom: 1rem; border-bottom: 1px solid rgba(255, 255, 255, .17); color: #7f8ba0; }
.thesis blockquote { max-width: 1320px; margin: clamp(4rem, 8vw, 8rem) 0; }
.thesis blockquote p { margin: 0; font-family: var(--display); font-size: clamp(3.2rem, 6.7vw, 8rem); font-weight: 500; letter-spacing: -.065em; line-height: .91; }
.thesis blockquote em { color: var(--data-blue); font-style: normal; font-weight: 300; }
.authority-flow { display: grid; grid-template-columns: minmax(110px,1fr) 30px minmax(110px,1fr) 30px minmax(110px,1fr) 30px minmax(110px,1fr) 30px minmax(110px,1fr); align-items: center; gap: .7rem; }
.authority-flow > div { position: relative; min-height: 118px; padding: 1rem; border: 1px solid rgba(255,255,255,.16); background: rgba(255,255,255,.025); }
.authority-flow > div.is-human { border-color: var(--data-blue); background: rgba(49, 95, 232, .13); }
.authority-flow span, .authority-flow small { display: block; color: #768298; font-family: var(--mono); font-size: .52rem; letter-spacing: .08em; text-transform: uppercase; }
.authority-flow strong { display: block; margin: 1.05rem 0 .2rem; font-family: var(--display); font-size: 1.45rem; letter-spacing: -.03em; }
.authority-flow > i { position: relative; height: 1px; overflow: hidden; background: rgba(154,182,255,.16); }
.authority-flow > i::after { position: absolute; inset: 0; background: linear-gradient(90deg, transparent 0%, var(--data-blue) 44%, #f3f7ff 51%, var(--data-blue) 58%, transparent 100%); content: ""; opacity: .9; transform: translate3d(-120%,0,0); will-change: transform; }
.authority-flow.is-flow-active > i::after { animation: authority-signal 2.8s linear infinite; }
.authority-flow > i:nth-of-type(2)::after { animation-delay: -.7s; }
.authority-flow > i:nth-of-type(3)::after { animation-delay: -1.4s; }
.authority-flow > i:nth-of-type(4)::after { animation-delay: -2.1s; }
.authority-typewriter { position: relative; width: auto; min-width: 5.2ch; white-space: nowrap; }
.authority-typewriter > span { display: inline; color: inherit; font: inherit; letter-spacing: inherit; line-height: inherit; text-transform: none; white-space: nowrap; }
.authority-typewriter::after { display: inline-block; width: 1px; height: .92em; margin-left: .08em; background: var(--data-blue); content: ""; opacity: 0; vertical-align: -.08em; }
.authority-flow.is-flow-active .authority-typewriter::after { animation: authority-caret-blink .72s steps(1, end) infinite; opacity: 1; }
@keyframes authority-signal { to { transform: translate3d(120%,0,0); } }
@keyframes authority-caret-blink { 0%, 46% { opacity: 1; } 47%, 100% { opacity: 0; } }
.thesis-link { margin-top: 3rem; padding-bottom: .4rem; border-bottom: 1px solid var(--data-blue); color: var(--data-blue); }
.thesis-link-mobile { display: none; }

.visual-archive { background: var(--white); }
.archive-grid { display: grid; grid-template-columns: 1.2fr .8fr; gap: clamp(2rem, 5vw, 5rem); margin-top: clamp(4rem, 8vw, 8rem); align-items: start; }
.archive-item { margin: 0; }
.archive-item a { display: block; text-decoration: none; }
.archive-image, .media-placeholder { position: relative; overflow: hidden; background: var(--surface); }
.archive-image img { display: block; width: 100%; height: 100%; object-fit: cover; filter: grayscale(1) contrast(.95); transform: scale(1.005); transition: filter 500ms var(--ease-out), transform 700ms var(--ease-out); }
.archive-item a:hover .archive-image img { filter: grayscale(.15) contrast(1); transform: scale(1.025); }
.archive-wide .archive-image { aspect-ratio: 16 / 9; }.archive-portrait .media-placeholder { aspect-ratio: 4 / 5; }.archive-landscape .archive-image { aspect-ratio: 1.55 / 1; }.archive-square .media-placeholder { aspect-ratio: 1 / 1; }
.archive-portrait { margin-top: 9rem; }.archive-landscape { width: 88%; margin-left: 12%; }.archive-square { width: 78%; }
.archive-item figcaption { display: grid; grid-template-columns: 1fr auto; gap: .35rem 1rem; padding-top: .9rem; border-top: 1px solid var(--rule); }
.archive-item figcaption strong { grid-column: 1 / -1; font-family: var(--display); font-size: 1.15rem; letter-spacing: -.025em; }
.archive-item figcaption span { color: var(--muted); }
.archive-item figcaption span:last-child { grid-column: 2; grid-row: 1; }
.media-placeholder { display: flex; flex-direction: column; justify-content: flex-end; padding: 1.3rem; background-color: #e3e4df; background-image: linear-gradient(rgba(9,11,13,.05) 1px, transparent 1px), linear-gradient(90deg, rgba(9,11,13,.05) 1px, transparent 1px); background-size: 30px 30px; }
.media-placeholder > span, .media-placeholder > small { position: relative; z-index: 2; color: var(--muted); font-family: var(--mono); font-size: .54rem; letter-spacing: .06em; text-transform: uppercase; }
.media-placeholder > strong { position: relative; z-index: 2; max-width: 13ch; margin: .5rem 0 .3rem; font-family: var(--display); font-size: clamp(1.5rem, 2.5vw, 2.4rem); letter-spacing: -.05em; line-height: 1; }
.placeholder-neural { position: absolute; top: 7%; right: 5%; left: 5%; aspect-ratio: 1 / 1; border: 1px solid rgba(49, 95, 232, .18); border-radius: 50%; background-image: radial-gradient(circle at 30% 30%, var(--blue) 0 2px, transparent 3px), radial-gradient(circle at 64% 24%, var(--ink) 0 2px, transparent 3px), radial-gradient(circle at 75% 58%, var(--blue) 0 2px, transparent 3px), radial-gradient(circle at 38% 70%, var(--ink) 0 2px, transparent 3px), conic-gradient(from 25deg, transparent 0 8%, rgba(49,95,232,.2) 8% 8.3%, transparent 8.3% 20%, rgba(9,11,13,.16) 20% 20.3%, transparent 20.3%); }
.placeholder-bio { position: absolute; top: 13%; right: 10%; left: 10%; display: grid; aspect-ratio: 1/1; place-items: center; }
.placeholder-bio i { position: absolute; width: 52%; aspect-ratio: 1/1; border: 1px solid rgba(49,95,232,.42); border-radius: 50%; }.placeholder-bio i:nth-child(2) { transform: translate(-27%, 22%); border-color: rgba(9,11,13,.25); }.placeholder-bio i:nth-child(3) { transform: translate(27%, 22%); border-color: rgba(49,95,232,.25); }

.publications { background: var(--paper); }
.publications-grid { display: grid; grid-template-columns: minmax(300px, .62fr) minmax(0, 1.38fr); gap: clamp(4rem, 9vw, 10rem); align-items: start; }
.publications-intro { position: sticky; top: 120px; }
.publications-intro h2, .career-intro h2, .concept-copy h2, .contact-copy h2 { font-size: clamp(3rem, 5vw, 6rem); }
.publications-intro > p:not(.section-label), .career-intro > p:not(.section-label), .concept-copy > p:not(.section-label) { max-width: 33rem; margin: 2rem 0; color: #555b59; font-size: 1.05rem; line-height: 1.7; }
.publication-list { border-top: 1px solid var(--rule); }
.publication-row { position: relative; display: grid; grid-template-columns: 115px minmax(0, 1fr) 34px; gap: 1.5rem; align-items: start; padding: 2rem 0; border-bottom: 1px solid var(--rule); }
.pub-meta { display: flex; flex-direction: column; gap: .35rem; color: var(--muted); font-family: var(--mono); font-size: .57rem; letter-spacing: .05em; text-transform: uppercase; }
.pub-meta span:first-child { color: var(--blue); }
.publication-row h3 { margin: 0; font-family: var(--display); font-size: clamp(1.25rem, 2.1vw, 2rem); font-weight: 600; letter-spacing: -.035em; line-height: 1.18; }
.publication-row h3 a { text-decoration: none; }
.pub-arrow { color: var(--blue); font-size: 1.15rem; transition: transform 200ms var(--ease-out); }
.publication-row:hover .pub-arrow { transform: translate(4px, -4px); }
.publication-row::after { position: absolute; right: 0; bottom: -1px; left: 0; height: 1px; background: var(--blue); content: ""; transform: scaleX(0); transform-origin: right; transition: transform 300ms var(--ease-out); }
.publication-row:hover::after { transform: scaleX(1); transform-origin: left; }

.foreword-quote { position: relative; overflow: hidden; border-top: 1px solid var(--rule); background: var(--paper); isolation: isolate; }
.foreword-quote::before { position: absolute; z-index: 0; inset: 0; background-image: linear-gradient(rgba(49,95,232,.045) 1px, transparent 1px), linear-gradient(90deg, rgba(49,95,232,.045) 1px, transparent 1px); background-size: 64px 64px; content: ""; pointer-events: none; -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 48%, #000 100%); mask-image: linear-gradient(90deg, transparent 0%, #000 48%, #000 100%); }
.foreword-quote-inner { position: relative; z-index: 1; }
.foreword-quote blockquote { width: 100%; margin: clamp(4rem, 8vw, 8rem) 0 clamp(5rem, 9vw, 9rem); }
.foreword-quote blockquote p { margin: 0; color: #555b59; font-family: var(--display); font-size: clamp(4.3rem, 9vw, 10.5rem); font-weight: 530; letter-spacing: -.07em; line-height: .88; text-wrap: pretty; }
.foreword-quote blockquote strong { color: var(--ink); font-weight: 650; }
.foreword-book { display: grid; grid-template-columns: minmax(150px, .32fr) minmax(0, 1fr); align-items: baseline; gap: 1.5rem; margin: -3.5rem 0 clamp(3.5rem, 7vw, 6.5rem); padding-top: 1.25rem; border-top: 1px solid var(--rule); }
.foreword-book > span { color: var(--muted); font-family: var(--mono); font-size: .56rem; letter-spacing: .1em; text-transform: uppercase; }
.foreword-book a { display: flex; align-items: baseline; justify-content: space-between; gap: 1.5rem; color: var(--ink); font-family: var(--display); font-size: clamp(1.25rem, 2.4vw, 2.3rem); font-weight: 650; letter-spacing: -.035em; line-height: 1.05; text-decoration: none; }
.foreword-book a::after { position: absolute; right: 0; bottom: -.55rem; left: 0; height: 1px; background: var(--blue); content: ""; transform: scaleX(0); transform-origin: right; transition: transform 320ms var(--ease-out); }
.foreword-book a { position: relative; }
.foreword-book a:hover::after { transform: scaleX(1); transform-origin: left; }
.foreword-book a > span { color: var(--blue); font-size: 1rem; font-style: normal; transition: transform 220ms var(--ease-out); }
.foreword-book a:hover > span { transform: translate(3px, -3px); }
.foreword-attribution { display: flex; align-items: end; justify-content: space-between; gap: 2rem; padding-top: 1.25rem; border-top: 1px solid var(--rule); }
.foreword-attribution > div { display: grid; gap: .15rem; }
.foreword-attribution cite { font-family: var(--display); font-size: clamp(1.15rem, 1.8vw, 1.6rem); font-style: normal; font-weight: 650; letter-spacing: -.025em; }
.foreword-attribution cite.foreword-name-compact { font-size: clamp(.96rem, 1.25vw, 1.18rem); }
.foreword-attribution > div span { color: var(--muted); font-family: var(--mono); font-size: .56rem; letter-spacing: .1em; text-transform: uppercase; }
.foreword-link { display: inline-flex; align-items: center; gap: 1.5rem; min-height: 44px; padding: .75rem 1rem; border: 1px solid var(--ink); background: var(--ink); color: var(--white); font-size: .72rem; font-weight: 650; text-decoration: none; transition: background-color 220ms var(--ease-out), color 220ms var(--ease-out), border-color 220ms var(--ease-out); }
.foreword-link:hover { border-color: var(--blue); background: var(--blue); }
.foreword-link span { color: var(--data-blue); font-size: 1rem; transition: transform 220ms var(--ease-out); }
.foreword-link:hover span { color: var(--white); transform: translateX(4px); }

.essays { border-top: 1px solid var(--rule); background: var(--surface); }
.essay-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; margin-top: clamp(4rem, 8vw, 8rem); overflow: hidden; background: transparent; border: 0; }
.essay-card { position: relative; min-height: 430px; overflow: hidden; padding: clamp(1.5rem, 3vw, 2.6rem); background: var(--ink); color: var(--white); text-decoration: none; isolation: isolate; box-shadow: inset 0 0 0 1px rgba(255,255,255,.035); transform: translate3d(0,0,0); opacity: 1; transition: box-shadow 260ms var(--ease-out); will-change: transform, opacity, filter; }
.essay-card:hover { background: var(--ink); color: var(--white); box-shadow: inset 0 0 0 1px rgba(49,95,232,.72); }
.essay-type { position: relative; color: var(--data-blue); }
.essay-card h3 { position: relative; margin: 4.8rem 0 1.2rem; color: inherit; font-family: var(--display); font-size: clamp(1.8rem, 3vw, 3.25rem); font-weight: 600; letter-spacing: -.05em; line-height: 1; }
.essay-card p { position: relative; margin: 0; color: rgba(255,255,255,.74); font-size: .95rem; line-height: 1.65; }
.essay-card:hover p { color: rgba(255,255,255,.74); }
.essay-card .card-arrow { color: var(--data-blue); }
.card-arrow { position: absolute; right: 1.6rem; bottom: 1.4rem; color: var(--blue); font-size: 1.3rem; transition: transform 220ms var(--ease-out); }
.essay-card:hover .card-arrow { transform: translate(4px, -4px); }
.essays-all { margin-top: 2.5rem; }

.career { background: var(--white); }
.career-grid { display: grid; grid-template-columns: minmax(300px, .72fr) minmax(0, 1.28fr); gap: clamp(4rem, 9vw, 10rem); align-items: start; }
.career-intro { position: sticky; top: 120px; }
.timeline { margin: 0; padding: 0; border-top: 1px solid var(--rule); list-style: none; }
.timeline li { position: relative; display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 2rem; padding: 2.25rem 0 2.5rem 1.3rem; border-bottom: 1px solid var(--rule); }
.timeline li::before { position: absolute; top: 2.6rem; left: -4px; width: 7px; height: 7px; border-radius: 50%; background: var(--blue); box-shadow: 0 0 0 4px rgba(49,95,232,.1); content: ""; }
.timeline > li > span { color: var(--blue); }
.timeline strong { font-family: var(--display); font-size: clamp(1.3rem, 2vw, 2rem); letter-spacing: -.035em; }
.timeline p { max-width: 38rem; margin: .5rem 0 0; color: var(--muted); }

.concept-map-section { position: relative; overflow: hidden; background: var(--paper); isolation: isolate; }
.concept-map-section::before { position: absolute; z-index: 1; inset: 0; background: linear-gradient(90deg, var(--paper) 0%, rgba(243,242,236,.96) 31%, rgba(243,242,236,.26) 57%, transparent 78%), linear-gradient(180deg, var(--paper) 0%, transparent 16%, transparent 84%, var(--paper) 100%); content: ""; pointer-events: none; }
.concept-background { position: absolute; z-index: 0; top: -8%; right: -2%; width: min(56vw, 880px); height: 116%; opacity: .45; pointer-events: none; -webkit-mask-image: radial-gradient(ellipse 74% 88% at 72% 50%, #000 39%, rgba(0,0,0,.88) 61%, transparent 100%); mask-image: radial-gradient(ellipse 74% 88% at 72% 50%, #000 39%, rgba(0,0,0,.88) 61%, transparent 100%); }
.concept-background img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 45%; filter: grayscale(1) contrast(1.05); }
.concept-layout { position: relative; z-index: 2; display: grid; grid-template-columns: .72fr 1.28fr; gap: clamp(3rem, 8vw, 9rem); align-items: center; }
.concept-copy, .concept-cloud { min-width: 0; }
.concept-detail { position: relative; margin-top: 3rem; padding: 1.35rem 1.45rem 1.45rem; border-left: 3px solid var(--blue); background: rgba(243,242,236,.91); box-shadow: 0 0 0 1px rgba(9,11,13,.07), 0 16px 42px rgba(9,11,13,.08); backdrop-filter: blur(10px); }
.concept-detail::before { display: block; margin-bottom: .5rem; color: #707674; font-family: var(--mono); font-size: .5rem; letter-spacing: .11em; text-transform: uppercase; content: "Aktív fogalom"; }
.concept-detail > span { display: block; color: var(--blue); font-family: var(--display); font-size: clamp(1.35rem, 2.2vw, 2rem); font-weight: 700; letter-spacing: -.035em; }
.concept-detail p { margin: .75rem 0 1.25rem; color: #202523; font-size: 1.03rem; line-height: 1.62; }
[data-concept-related] { display: flex; flex-wrap: wrap; gap: .35rem; }
.concept-cloud { position: relative; aspect-ratio: 1.1 / 1; min-height: 580px; }
.concept-cloud svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.concept-cloud svg path { fill: none; stroke: rgba(49,95,232,.54); stroke-width: 1.35; stroke-dasharray: 6 5; filter: drop-shadow(0 0 2px rgba(49,95,232,.18)); }
.concept-node { position: absolute; min-width: 120px; padding: .75rem .9rem; border: 1px solid var(--rule); background: rgba(243,242,236,.94); color: var(--ink); font-family: var(--mono); font-size: .58rem; letter-spacing: .05em; text-transform: uppercase; cursor: pointer; transform: translate(-50%, -50%); transition: background-color 200ms var(--ease-out), color 200ms var(--ease-out), border-color 200ms var(--ease-out), transform 200ms var(--ease-out); }
.concept-node:hover, .concept-node.is-active { border-color: var(--blue); background: var(--blue); color: var(--white); transform: translate(-50%, -50%) scale(1.04); }
.concept-node:active { transform: translate(-50%, -50%) scale(.99); }
.node-center { top: 50%; left: 50%; min-width: 155px; }.node-a { top: 20%; left: 21%; }.node-b { top: 17%; left: 79%; }.node-c { top: 48%; left: 88%; }.node-d { top: 82%; left: 78%; }.node-e { top: 83%; left: 23%; }.node-f { top: 51%; left: 12%; }

.contact { position: relative; overflow: hidden; background: #050607; color: var(--white); isolation: isolate; }
.contact::before { display: none; }
.contact-grid { display: none; }
.contact-media { position: absolute; z-index: 0; top: -22%; right: -1%; bottom: -22%; width: min(56vw, 980px); overflow: hidden; pointer-events: none; -webkit-mask-image: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.22) 12%, #000 31%, #000 69%, rgba(0,0,0,.22) 88%, transparent 100%); mask-image: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.22) 12%, #000 31%, #000 69%, rgba(0,0,0,.22) 88%, transparent 100%); }
.contact-media::after { position: absolute; z-index: 1; inset: 0; background: linear-gradient(90deg, #050607 0%, rgba(5,6,7,.92) 13%, rgba(5,6,7,.3) 42%, transparent 72%); content: ""; }
.contact-background-video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; opacity: .65; filter: grayscale(1) contrast(1.08); }
.contact-inner { position: relative; z-index: 2; display: grid; grid-template-columns: 1.3fr .7fr; gap: 4rem; align-items: end; }
.contact .section-label { color: rgba(255,255,255,.68); }
.contact-copy h2 span { color: var(--data-blue); }
.contact-action { padding-bottom: .7rem; }
.contact-action p { max-width: 30rem; margin: 0 0 2rem; color: rgba(255,255,255,.78); font-size: 1.05rem; }
.email-reveal { display: flex; width: 100%; align-items: center; justify-content: space-between; padding: 1.1rem 0; border: 0; border-top: 1px solid rgba(255,255,255,.38); border-bottom: 1px solid rgba(255,255,255,.38); background: transparent; color: white; font-weight: 700; text-align: left; cursor: pointer; transition: padding 220ms var(--ease-out), border-color 220ms var(--ease-out); }
.email-reveal:hover { padding-inline: .7rem; border-color: white; }
.email-link { display: inline-block; padding-bottom: .3rem; border-bottom: 1px solid white; color: white; font-family: var(--display); font-size: clamp(1.45rem, 3vw, 2.8rem); font-weight: 600; letter-spacing: -.04em; text-decoration: none; }

.site-footer { padding: 5rem 0 1.5rem; background: var(--ink); color: var(--white); }
.footer-main { display: grid; grid-template-columns: .85fr 1.15fr; gap: 5rem; padding-bottom: 5rem; }
.footer-brand p { max-width: 31rem; margin: 2rem 0 0; color: #8d96a2; }
.footer-copy-mobile { display: none; }
.footer-nav { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2rem; }
.footer-nav > div { display: flex; flex-direction: column; gap: .72rem; }
.footer-nav > div > span { margin-bottom: .5rem; color: #687484; }
.footer-nav a { color: #c9cfd7; font-size: .84rem; text-decoration: none; transition: color 180ms var(--ease-out); }
.footer-nav a:hover { color: var(--data-blue); }
.footer-bottom { display: flex; justify-content: space-between; gap: 2rem; padding-top: 1.1rem; border-top: 1px solid rgba(255,255,255,.13); color: #687484; font-family: var(--mono); font-size: .54rem; letter-spacing: .06em; text-transform: uppercase; }
.footer-bottom a { text-decoration: none; }

.reveal { opacity: 0; filter: blur(7px); transform: translateY(22px); transition: opacity 720ms var(--ease-out), filter 720ms var(--ease-out), transform 720ms var(--ease-out); }
.reveal.is-visible { opacity: 1; filter: blur(0); transform: translateY(0); }
.research-chapter.reveal { transform: none; }
.body-motion-ready .hero-copy > * { opacity: 0; filter: blur(5px); transform: translateY(16px); animation: hero-enter 760ms var(--ease-out) forwards; }
.body-motion-ready .hero-copy > *:nth-child(2) { animation-delay: 80ms; }.body-motion-ready .hero-copy > *:nth-child(3) { animation-delay: 150ms; }.body-motion-ready .hero-copy > *:nth-child(4) { animation-delay: 240ms; }.body-motion-ready .hero-copy > *:nth-child(5) { animation-delay: 320ms; }
@keyframes hero-enter { to { opacity: 1; filter: blur(0); transform: translateY(0); } }

body.motion-paused *, body.motion-paused *::before, body.motion-paused *::after { animation-play-state: paused !important; }
body.motion-paused .spin-frame, body.motion-paused .spin-word, body.motion-paused .spin-word::after { transition-duration: .01ms !important; }
.hero:not(.is-visible) .hand-layer, .hero:not(.is-visible) .particle-field, .hero:not(.is-visible) .fingertip-dot, .hero:not(.is-visible) .scroll-cue i::after { animation-play-state: paused; }

@media (max-width: 1180px) {
  .desktop-nav { gap: 1.1rem; }
  .motion-toggle span:last-child { display: none; }
  .hero-copy { top: 18%; width: min(64vw, 780px); }
  .hero h1 { font-size: clamp(3.8rem, 8vw, 7rem); }
  .hero-visual { top: 24%; right: -15%; width: 92vw; }
  .programme-node { width: 156px; }
  .research-layout { grid-template-columns: minmax(0, .9fr) minmax(420px, 1.1fr); gap: 4rem; }
}

@media (max-width: 960px) {
  .desktop-nav { display: none; }.menu-toggle { display: block; }
  .header-actions { margin-left: auto; }
  .hero-inner { min-height: max(100svh, 780px); }
  .hero-copy { top: 16%; width: 88%; }
  .hero h1 { font-size: clamp(3.6rem, 10vw, 6.4rem); }
  .hero-visual { top: 47%; right: -24%; width: 124vw; }
  .scroll-cue { display: flex; align-items: center; }
  .publications-grid, .career-grid, .concept-layout { grid-template-columns: 1fr; }
  .profile-grid { display: flex; flex-direction: column; gap: 0; }
  .profile-visual-column { display: contents; }
  .profile-visual-column .section-index { order: 1; }
  .profile-statement { order: 2; }
  .profile-system-visual { order: 3; width: min(72vw, 390px); margin-top: 3.5rem; }
  .section-index { flex-direction: row; justify-content: space-between; padding-bottom: 1rem; border-bottom: 1px solid var(--rule); }
  .publications-intro, .career-intro { position: static; }
  .foreword-quote blockquote { max-width: 15ch; }
  .programme-system { display: grid; height: auto; padding-block: 2rem; }
  .programme-video { object-position: center; }
  .programme-lines { display: none; }
  .programme-node { position: relative; top: auto; right: auto; bottom: auto; left: auto; width: 100%; margin-top: -1px; }
  .programme-system.is-visible .programme-node:hover { transform: none; }
  .research-layout { display: flex; flex-direction: column; gap: 0; }
  .research-list { order: 2; width: 100%; }
  .research-map { position: sticky; z-index: 6; top: 78px; order: 1; width: 100%; height: min(58svh, 520px); align-self: flex-start; }
  .research-chapter { min-height: 64svh; opacity: .48; filter: none; }
  .research-chapter.is-active { opacity: 1; }
  .authority-flow { grid-template-columns: 1fr; }
  .authority-flow > i { width: 1px; height: 22px; margin-left: 1.4rem; }
  .authority-flow > i::after { background: linear-gradient(180deg, transparent 0%, var(--data-blue) 44%, #f3f7ff 51%, var(--data-blue) 58%, transparent 100%); transform: translate3d(0,-120%,0); }
  .authority-flow.is-flow-active > i::after { animation-name: authority-signal-vertical; }
  @keyframes authority-signal-vertical { to { transform: translate3d(0,120%,0); } }
  .authority-flow > div { min-height: 96px; }
  .archive-grid { gap: 3rem 2rem; }.archive-portrait { margin-top: 5rem; }
  .essay-grid { grid-template-columns: 1fr; }
  .essay-card { min-height: 330px; }
  .footer-main { grid-template-columns: 1fr; }
}

@media (max-width: 700px) {
  :root { --pad: clamp(18px, 5.2vw, 24px); --display: "Avenir Next Condensed", "Helvetica Neue", Arial, sans-serif; --body: "Avenir Next", "Helvetica Neue", Arial, sans-serif; }
  .section-pad { padding-block: clamp(4.8rem, 20vw, 6.2rem); }
  .header-inner { height: 68px; gap: .65rem; }.mobile-nav { inset: 68px 0 0; padding-top: 1rem; }
  .brand { max-width: 43vw; overflow: hidden; font-size: .7rem; letter-spacing: .14em; text-overflow: ellipsis; }.brand-mark { width: 22px; height: 22px; }
  .header-actions { gap: .45rem; }
  .menu-toggle { width: 36px; height: 44px; }
  .mobile-nav a { min-height: 56px; padding: .8rem 0; font-size: clamp(2.15rem, 11vw, 3.4rem); }
  .motion-toggle { width: 34px; justify-content: center; padding-inline: 0; }
  .hero, .hero-inner { min-height: calc(100lvh + env(safe-area-inset-bottom, 0px) + 28px); }
  .hero-inner { padding-top: 68px; }
  .hero-grid { background-size: 42px 42px; }
  .hero-copy { top: 11.5%; width: 100%; max-width: 100%; }
  .hero-eyebrow { margin-bottom: 1.2rem; }
  .hero-name { margin-bottom: .55rem; font-size: .92rem; }
  .hero h1 { max-width: 100%; font-size: clamp(2.85rem, 14.4vw, 4.35rem); font-weight: 650; line-height: .86; }
  html[lang="en"] .hero h1 { font-size: clamp(2.45rem, 12vw, 3.7rem); }
  .hero h1.hero-title-long,
  html[lang="en"] .hero h1.hero-title-long { max-width: 100%; font-size: clamp(1.86rem, 8.2vw, 2.45rem); line-height: .92; }
  .hero h1 > span { width: 100%; min-width: 0; }
  .hero h1 .decode-reserve, .hero h1 .decode-output { white-space: normal; }
  .hero h1 .accent { white-space: normal; text-wrap: balance; }
  .hero-lead { max-width: 32rem; margin-top: 1.35rem; font-size: .92rem; line-height: 1.5; }
  .hero-actions { gap: 1.2rem; margin-top: .6rem; }.primary-link { min-width: auto; padding: .8rem .85rem; }.text-link { font-size: .72rem; }
  .hero-visual { top: auto; right: -31vw; bottom: -.7rem; width: 154vw; }
  .hands-plane { --hand-travel: 12px; transform: none; transition: none; will-change: auto; }
  .hand-layer-data { animation: mobile-data-hand-cycle 19.2s cubic-bezier(.45,0,.22,1) infinite; will-change: transform; }
  .hand-layer-human { animation: mobile-human-hand-cycle 19.2s cubic-bezier(.45,0,.22,1) infinite; will-change: transform; }
  .fingertip-dot-data { animation: mobile-data-dot-cycle 19.2s cubic-bezier(.45,0,.22,1) infinite; will-change: transform, opacity; }
  .fingertip-dot-human { animation: mobile-human-dot-cycle 19.2s cubic-bezier(.45,0,.22,1) infinite; will-change: transform, opacity; }
  @keyframes mobile-data-hand-cycle {
    0%, 16%, 70%, 100% { transform: translate3d(0, 0, 0) rotate(-.12deg); }
    36%, 48% { transform: translate3d(var(--hand-travel), 0, 0) rotate(.12deg); }
  }
  @keyframes mobile-human-hand-cycle {
    0%, 16%, 70%, 100% { transform: translate3d(0, 0, 0) rotate(.08deg); }
    36%, 48% { transform: translate3d(calc(var(--hand-travel) * -1), 0, 0) rotate(-.08deg); }
  }
  @keyframes mobile-data-dot-cycle {
    0%, 16%, 70%, 100% { opacity: .5; transform: translate3d(0, 0, 0) scale(.92); }
    36%, 48% { opacity: 1; transform: translate3d(var(--hand-travel), 0, 0) scale(1.1); }
  }
  @keyframes mobile-human-dot-cycle {
    0%, 16%, 70%, 100% { opacity: .48; transform: translate3d(0, 0, 0) scale(.92); }
    36%, 48% { opacity: 1; transform: translate3d(calc(var(--hand-travel) * -1), 0, 0) scale(1.1); }
  }
  .hero-connections { transform: scale(.72); transform-origin: 54.415% 49.169%; }
  .connection-base path { stroke: rgba(154,182,255,.72); stroke-width: 1.08; }
  .connection-signal path { stroke-width: 1.35; filter: drop-shadow(0 0 3px rgba(255,255,255,.76)) drop-shadow(0 0 8px rgba(154,182,255,.52)); }
  .hero-term { display: block; padding: .16rem .25rem; border-color: rgba(255,255,255,.2); background: rgba(3,9,15,.72); font-size: .39rem; letter-spacing: .045em; backdrop-filter: blur(4px); }
  .term-communication { top: 24.567%; left: 33.235%; transform: translate(-100%, -50%); border-color: rgba(154,182,255,.46); background: rgba(3,9,15,.86); color: rgba(240,246,252,.96); }
  .term-society { top: 56.693%; left: 28.052%; transform: translate(0, -50%); }
  .term-adaptation { top: 78.844%; bottom: auto; left: 38.418%; transform: translate(-50%, 0); }
  .term-decision { top: 25.643%; right: auto; left: 71.396%; transform: translate(-50%, -100%); }
  .term-intelligence { top: calc(60.445% + 1.5px); right: auto; bottom: auto; left: 72.471%; transform: translate(-50%, 0); }
  .scroll-cue { right: auto; bottom: 1.25rem; left: 0; }
  .section-head, .section-head-split { grid-template-columns: 1fr; gap: 1.7rem; }
  .section-head .section-label { grid-column: auto; }
  .section-head h2, .publications-intro h2, .career-intro h2, .concept-copy h2, .contact-copy h2 { max-width: 100%; font-size: clamp(2.65rem, 13.5vw, 4.5rem); line-height: .91; overflow-wrap: break-word; }
  html[lang="en"] .research-heading .section-head h2 { font-size: clamp(2.55rem, 11.2vw, 4.4rem); }
  .profile-intro { overflow: hidden; }
  .profile-statement { padding-top: 2.5rem; }
  .profile-columns { grid-template-columns: 1fr; gap: 2.2rem; margin-top: 2.8rem; }.display-statement { font-size: clamp(2.35rem, 11.5vw, 3.8rem); }
  .display-statement em { font-weight: inherit; }
  .profile-system-visual { display: none; }
  .profile-statement > .inline-arrow { min-height: 44px; margin-top: 2.2rem; }
  .section-index { font-size: .52rem; }
  .spin-thesis { min-height: 0; }
  .spin-thesis-sticky { height: auto; min-height: calc(100lvh + env(safe-area-inset-bottom, 0px) + 28px); max-height: none; padding: 5.15rem 0 1.4rem; }
  .spin-thesis-inner { display: flex; min-height: calc(100lvh + env(safe-area-inset-bottom, 0px) + 28px - 6.55rem); height: auto; flex-direction: column; }
  .spin-thesis-head { position: relative; top: auto; right: auto; left: auto; display: block; }
  .spin-thesis-head h2 { max-width: 22ch; margin-top: .75rem; font-size: clamp(1.55rem, 7vw, 2rem); line-height: .98; text-align: left; }
  .spin-stage { position: relative; top: auto; right: auto; bottom: auto; left: auto; display: grid; min-height: 480px; grid-template-columns: 1fr; grid-template-rows: minmax(285px, 1fr) minmax(11rem, auto); gap: 1rem; margin-top: 1.65rem; }
  .spin-portrait { top: -10%; right: -44vw; width: 160%; height: 116%; opacity: .54; -webkit-mask-image: linear-gradient(90deg, transparent 0%, transparent 25%, rgba(0,0,0,.28) 38%, #000 52%, #000 96%, transparent 100%), linear-gradient(180deg, transparent 0%, #000 8%, #000 92%, transparent 100%); mask-image: linear-gradient(90deg, transparent 0%, transparent 25%, rgba(0,0,0,.28) 38%, #000 52%, #000 96%, transparent 100%), linear-gradient(180deg, transparent 0%, #000 8%, #000 92%, transparent 100%); }
  .spin-word-list { display: grid; width: max-content; max-width: 60%; align-self: start; grid-row: 1; grid-template-columns: 1fr; gap: .08rem; margin: 0; padding: .35rem 0 .6rem; border: 0; }
  .spin-word-list li:last-child { grid-column: auto; }
  .spin-word { width: max-content; min-height: 62px; padding: .08rem 0; font-size: clamp(3.2rem, 15.6vw, 4.5rem); font-weight: 620; line-height: .88; touch-action: manipulation; -webkit-tap-highlight-color: transparent; }
  .spin-word::after { right: 0; bottom: .05rem; }
  .spin-copy-stack { align-self: end; grid-row: 2; min-height: 10.25rem; padding-top: 1.85rem; }
  .spin-frame { inset: .8rem 0 auto; }
  .spin-frame-index { margin-bottom: .8rem; font-size: .5rem; }
  .spin-frame > p:last-child { max-width: 31rem; font-size: .88rem; line-height: 1.48; }
  .spin-thesis-foot { position: relative; right: auto; bottom: auto; left: auto; flex-direction: column; gap: .35rem; margin-top: auto; font-size: .46rem; }
  .programme.section-pad { padding-bottom: 0; }
  .programme-system { --programme-media-bleed: 7rem; display: block; width: 100vw; height: 760px; margin-top: 3.2rem; margin-left: calc(50% - 50vw); padding: 0; overflow: hidden; }
  .programme-lines-mobile { display: block; z-index: 2; inset: 0; }
  .programme-lines-mobile .programme-path-base { stroke: rgba(49,95,232,.34); stroke-width: 1.15; }
  .programme-lines-mobile .programme-path-motion { stroke-width: 1.4; }
  .programme-node { position: absolute; width: 142px; min-height: 88px; margin: 0; padding: .72rem .78rem; border-color: rgba(9,11,13,.14); background: rgba(247,247,242,.88); box-shadow: 0 12px 28px rgba(9,11,13,.09); backdrop-filter: blur(10px); }
  .programme-node::before { top: 50%; left: -4px; transform: translateY(-50%); }
  .programme-node::after { display: none; }
  .programme-node span { font-size: .43rem; }
  .programme-node h3 { margin: .32rem 0 .18rem; font-size: 1.12rem; font-weight: 650; }
  .programme-node p { font-size: .46rem; line-height: 1.35; }
  .programme-system .node-research { top: 60px; left: var(--pad); }
  .programme-system .node-market { top: 160px; right: var(--pad); left: auto; }
  .programme-system .node-ip { top: 280px; left: calc(var(--pad) + 24px); }
  .programme-system .node-spinoff { top: 385px; right: calc(var(--pad) + 4px); left: auto; }
  .programme-system .node-validation { top: 510px; left: calc(var(--pad) + 4px); }
  .programme-system .node-impact { top: 620px; right: var(--pad); left: auto; }
  .programme-system .node-spinoff { border-color: rgba(49,95,232,.42); background: rgba(224,233,255,.94); }
  .programme-system .node-impact { border-color: rgba(9,11,13,.7); background: rgba(39,43,48,.95); color: var(--white); }
  .programme-system .node-impact p { color: rgba(235,240,245,.68); }
  .programme-system .node-impact::before { background: var(--graphite); }
  .research-heading { padding-bottom: 3.7rem; }
  .research-heading .text-decode-stable { display: inline-grid; width: 100%; min-width: 0; }
  .research-heading .text-decode-stable .decode-reserve, .research-heading .text-decode-stable .decode-output { white-space: normal; }
  .research-heading-media { width: 100%; }
  .research-map { top: 68px; width: 100vw; height: clamp(240px, 32svh, 290px); margin-left: calc(50% - 50vw); border-right: 0; border-left: 0; box-shadow: 0 14px 34px rgba(9,11,13,.12); }
  .research-map-head, .research-map-foot { right: .85rem; left: .85rem; font-size: .48rem; }
  .research-map-head { top: .8rem; }.research-map-foot { bottom: .75rem; }
  .research-chapter { min-height: 82svh; padding: calc(clamp(240px, 32svh, 290px) + 2.6rem) 0 4.4rem; scroll-margin-top: calc(68px + 32svh); }
  .research-chapter h3 { max-width: 12ch; font-size: clamp(2.45rem, 11.8vw, 4.1rem); }
  .research-chapter p { font-size: .95rem; line-height: 1.62; }
  .research-chapter a { min-height: 44px; }
  .thesis { min-height: 0; padding: 5.6rem 0 2.4rem; }.thesis-meta span:nth-child(2) { display: none; }.thesis blockquote { margin: 3.5rem 0 4.2rem; }.thesis blockquote p { font-size: clamp(2.5rem, 12.2vw, 4.25rem); }.thesis blockquote em { font-weight: inherit; }
  .authority-flow { display: grid; grid-template-columns: minmax(0,1fr) 18px minmax(0,1fr); grid-template-rows: auto 18px auto 18px auto; gap: .35rem; }
  .authority-flow > div { min-width: 0; min-height: 78px; padding: .72rem .78rem; }
  .authority-flow strong { margin-top: .45rem; font-size: clamp(1.05rem, 5.2vw, 1.3rem); }
  .authority-flow > div:nth-of-type(1) { grid-area: 1 / 1; }
  .authority-flow > i:nth-of-type(1) { grid-area: 1 / 2; width: 100%; height: 1px; margin: 0; }
  .authority-flow > div:nth-of-type(2) { grid-area: 1 / 3; }
  .authority-flow > i:nth-of-type(2) { grid-area: 2 / 3; width: 1px; height: 100%; margin: 0 auto; }
  .authority-flow > div:nth-of-type(3) { grid-area: 3 / 3; }
  .authority-flow > i:nth-of-type(3) { grid-area: 3 / 2; width: 100%; height: 1px; margin: 0; }
  .authority-flow > div:nth-of-type(4) { grid-area: 3 / 1; }
  .authority-flow > i:nth-of-type(4) { grid-area: 4 / 1; width: 1px; height: 100%; margin: 0 auto; }
  .authority-flow > div:nth-of-type(5) { grid-area: 5 / 1; }
  .authority-flow > i:nth-of-type(1)::after, .authority-flow > i:nth-of-type(3)::after { background: linear-gradient(90deg, transparent 0%, var(--data-blue) 44%, #f3f7ff 51%, var(--data-blue) 58%, transparent 100%); transform: translate3d(-120%,0,0); }
  .authority-flow > i:nth-of-type(2)::after, .authority-flow > i:nth-of-type(4)::after { background: linear-gradient(180deg, transparent 0%, var(--data-blue) 44%, #f3f7ff 51%, var(--data-blue) 58%, transparent 100%); transform: translate3d(0,-120%,0); }
  .authority-flow.is-flow-active > i:nth-of-type(1)::after { animation-name: authority-signal; }
  .authority-flow.is-flow-active > i:nth-of-type(2)::after, .authority-flow.is-flow-active > i:nth-of-type(4)::after { animation-name: authority-signal-vertical; }
  .authority-flow.is-flow-active > i:nth-of-type(3)::after { animation-name: authority-signal; animation-direction: reverse; }
  .thesis-link-desktop { display: none; }
  .thesis-link-mobile { position: relative; display: inline-flex; grid-area: 5 / 3; width: auto; min-width: 0; min-height: 0; margin: 0; padding: .72rem .78rem; border: 1px solid rgba(154,182,255,.42); background: rgba(49,95,232,.08); align-self: stretch; }
  .archive-grid { grid-template-columns: 1fr; }.archive-portrait, .archive-landscape, .archive-square { width: 100%; margin: 0; }.archive-portrait { max-width: 78%; margin-left: auto; }
  .publication-row { grid-template-columns: 82px minmax(0,1fr) 22px; gap: .8rem; }.publication-row h3 { font-size: 1.25rem; }
  .foreword-quote::before { background-size: 42px 42px; }
  .foreword-quote blockquote { max-width: none; margin-block: 3.5rem 5rem; }
  .foreword-quote blockquote p { font-size: clamp(3rem, 14.2vw, 4.4rem); line-height: .86; }
  .foreword-quote blockquote strong.text-decode-stable { max-width: calc(100% - .45em); font-size: .84em; letter-spacing: -.078em; white-space: nowrap; }
  .foreword-book { grid-template-columns: 1fr; margin-top: -2.5rem; }
  .foreword-book a { min-height: 44px; }
  .foreword-attribution { align-items: start; flex-direction: column; }
  .essay-card { min-height: 300px; padding: 1.35rem; }
  .essay-card h3 { margin-top: 3.6rem; font-size: clamp(1.85rem, 8vw, 2.65rem); }
  .timeline li { grid-template-columns: 86px minmax(0,1fr); gap: 1rem; padding-left: .8rem; }
  .concept-layout { display: flex; flex-direction: column; gap: 0; align-items: stretch; }
  .concept-copy { display: contents; }
  .concept-copy.reveal { opacity: 1; filter: none; transform: none; }
  .concept-copy > .section-label { order: 1; }
  .concept-copy > h2 { order: 2; margin-top: 1.35rem; }
  .concept-copy > p:not(.section-label) { order: 3; }
  .concept-cloud { order: 4; width: 100%; height: min(112vw, 450px); min-height: 0; margin: 1.45rem 0 0; aspect-ratio: auto; }
  .concept-detail { order: 5; box-sizing: border-box; width: 100%; height: 292px; min-width: 0; margin-top: 2.4rem; padding: 1.1rem 1.15rem 1.2rem; overflow: hidden; }
  .concept-node { width: min(116px, 30vw); min-width: 0; max-width: none; height: 52px; min-height: 52px; padding: .5rem .4rem; font-size: .43rem; line-height: 1.2; }
  .concept-node:hover, .concept-node.is-active, .concept-node:active { transform: translate(-50%, -50%); }
  .node-center { min-width: 0; }.node-a { left: 23%; }.node-b { left: 77%; }.node-c { left: 83%; }.node-d { left: 76%; }.node-e { left: 24%; }.node-f { left: 17%; }
  .contact-media { top: -8%; right: -35%; bottom: -8%; width: 128%; opacity: .72; }
  .contact-media::after { background: linear-gradient(90deg, rgba(5,6,7,.94) 0%, rgba(5,6,7,.6) 42%, rgba(5,6,7,.16) 100%); }
  .contact-inner { grid-template-columns: 1fr; gap: 2.5rem; }
  .email-reveal { min-height: 54px; }
  .email-reveal > .drawn-arrow, .email-reveal > .ui-arrow { display: none !important; }
  .site-footer { padding: 3.2rem 0 1rem; }
  .footer-main { grid-template-columns: 1fr; gap: 2.35rem; padding-bottom: 2.4rem; }
  .footer-brand p { margin-top: 1.35rem; font-size: .88rem; line-height: 1.55; }
  .footer-copy-desktop { display: none; }
  .footer-copy-mobile { display: inline; }
  .footer-nav { grid-template-columns: 1fr 1fr; }.footer-nav > div:last-child { grid-column: 1 / -1; }
  .footer-nav { gap: 1.45rem 1.8rem; }
  .footer-nav > div { gap: .48rem; }
  .footer-nav > div > span { margin-bottom: .2rem; }
  .footer-nav a { display: flex; min-height: 30px; align-items: center; }
  .footer-bottom { flex-direction: row; align-items: center; justify-content: space-between; gap: .75rem; font-size: clamp(.42rem, 1.75vw, .5rem); letter-spacing: .035em; white-space: nowrap; }

  .primary-link > span, .profile-statement > .inline-arrow > span, .thesis-link > span, .foreword-book a > span, .email-reveal > span, .card-arrow { position: relative; display: inline-block; width: 12px; height: 12px; flex: 0 0 12px; overflow: hidden; color: transparent; font-size: 0; }
  .primary-link > span::before, .profile-statement > .inline-arrow > span::before, .thesis-link > span::before, .foreword-book a > span::before, .email-reveal > span::before, .card-arrow::before { position: absolute; top: 1px; right: 1px; width: 7px; height: 7px; border-top: 1px solid currentColor; border-right: 1px solid currentColor; color: var(--blue); content: ""; }
  .primary-link > span::after, .profile-statement > .inline-arrow > span::after, .thesis-link > span::after, .foreword-book a > span::after, .email-reveal > span::after, .card-arrow::after { position: absolute; top: 6px; left: 1px; width: 11px; height: 1px; background: var(--blue); content: ""; transform: rotate(-45deg); transform-origin: center; }
  .primary-link > span::before { color: var(--ink); }.primary-link > span::after { background: var(--ink); }
  .email-reveal > span::before, .card-arrow::before { color: var(--data-blue); }.email-reveal > span::after, .card-arrow::after { background: var(--data-blue); }
  .card-arrow { position: absolute; right: 1.35rem; bottom: 1.25rem; }
  .text-link > span, .essays-all > span, .foreword-link > span, .research-chapter a > span { font-family: var(--mono); font-size: 0; }
  .text-link > span::after, .essays-all > span::after, .foreword-link > span::after, .research-chapter a > span::after { display: inline-block; width: 1.1rem; color: currentColor; font-size: .9rem; content: "\2192"; }
}

@media (max-width: 390px) {
  .lang-switch { width: 32px; height: 32px; }
  .hero, .hero-inner { min-height: calc(100lvh + env(safe-area-inset-bottom, 0px) + 28px); }
  .hero h1 { font-size: clamp(2.65rem, 13.8vw, 3rem); }
  html[lang="en"] .hero h1 { font-size: clamp(2.3rem, 11.8vw, 2.55rem); }
  .hero-actions { align-items: flex-start; flex-direction: column; gap: .8rem; }
  .hero-visual { right: -38vw; bottom: -.55rem; width: 168vw; }
  .archive-portrait { max-width: 90%; }
}

@media (hover: none) and (pointer: coarse) {
  .primary-link:hover, .programme-system.is-visible .programme-node:hover { transform: none; }
  .concept-node:hover, .concept-node.is-active, .concept-node:active { transform: translate(-50%, -50%); }
  .email-reveal:hover { padding-inline: 0; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .reveal { opacity: 1; filter: none; transform: none; }
  .hand-layer, .particle-field, .fingertip-dot { animation: none !important; }
  .hand-layer-data { transform: translateX(0); }.hand-layer-human { transform: translateX(0); }
  .fingertip-dot { opacity: .62; transform: none; }
  .connection-signal { display: none; }
  .programme-video { opacity: .46; }
  .programme-path-motion { display: none; }
  .programme-node { opacity: 1; filter: none; transform: none; }
  .programme-lines path { stroke-dashoffset: 0; }
  .motion-toggle { display: none; }
}

@media (max-width: 700px) and (prefers-reduced-motion: reduce) {
  .hand-layer-data { transform: translate3d(var(--hand-travel), 0, 0); }
  .hand-layer-human { transform: translate3d(calc(var(--hand-travel) * -1), 0, 0); }
  .fingertip-dot-data { opacity: 1; transform: translate3d(var(--hand-travel), 0, 0) scale(1.08); }
  .fingertip-dot-human { opacity: 1; transform: translate3d(calc(var(--hand-travel) * -1), 0, 0) scale(1.08); }
}

/* Mobile navigation and icon system */
.mobile-nav { display: none; }

@media (max-width: 960px) {
  body.menu-open { overflow: hidden; }

  body.menu-open .site-header,
  body.menu-open .site-header:not(.is-scrolled),
  body.menu-open .site-header.on-dark {
    background: rgba(243,242,236,.985);
    box-shadow: 0 1px 0 rgba(9,11,13,.13);
    backdrop-filter: blur(18px);
  }

  body.menu-open .site-header .brand,
  body.menu-open .site-header .lang-switch,
  body.menu-open .site-header .motion-toggle { color: var(--ink); }

  body.menu-open .site-header .lang-switch,
  body.menu-open .site-header .motion-toggle { border-color: rgba(9,11,13,.18); }

  body.menu-open .site-header .menu-toggle > span:not(.sr-only) { background: var(--ink); }

  .mobile-nav {
    position: fixed;
    z-index: 98;
    inset: 78px 0 0;
    display: flex;
    min-height: calc(100lvh - 78px);
    padding: clamp(1.4rem, 5vh, 3.2rem) var(--pad) max(1.5rem, env(safe-area-inset-bottom));
    visibility: hidden;
    align-items: stretch;
    flex-direction: column;
    justify-content: center;
    background:
      linear-gradient(rgba(49,95,232,.055) 1px, transparent 1px),
      linear-gradient(90deg, rgba(49,95,232,.055) 1px, transparent 1px),
      radial-gradient(circle at 88% 16%, rgba(49,95,232,.11), transparent 34%),
      #f3f2ec;
    background-size: 44px 44px, 44px 44px, auto, auto;
    opacity: 0;
    pointer-events: none;
    transform: translate3d(0,-10px,0);
    transition: opacity 200ms var(--ease-out), transform 260ms var(--ease-out), visibility 0s linear 260ms;
    counter-reset: mobile-navigation;
  }

  .mobile-nav.is-open {
    visibility: visible;
    opacity: 1;
    pointer-events: auto;
    transform: translate3d(0,0,0);
    transition-delay: 0s;
  }

  .mobile-nav a {
    display: grid;
    grid-template-columns: 2rem minmax(0,1fr);
    min-height: clamp(58px, 11vh, 82px);
    align-items: center;
    padding: .55rem 0;
    border-bottom: 1px solid rgba(9,11,13,.19);
    color: var(--ink);
    font-family: var(--display);
    font-size: clamp(2rem, 10.5vw, 3.55rem);
    font-weight: 520;
    letter-spacing: -.045em;
    line-height: .92;
    text-decoration: none;
    counter-increment: mobile-navigation;
  }

  .mobile-nav a:first-child { border-top: 1px solid rgba(9,11,13,.19); }
  .mobile-nav a::before {
    align-self: start;
    padding-top: .45rem;
    color: var(--blue);
    content: "0" counter(mobile-navigation);
    font-family: var(--mono);
    font-size: .5rem;
    font-weight: 500;
    letter-spacing: .08em;
  }

  .ui-arrow {
    --arrow-rotation: 0deg;
    position: relative !important;
    display: inline-block !important;
    width: 12px !important;
    height: 12px !important;
    flex: 0 0 12px !important;
    overflow: visible !important;
    color: currentColor !important;
    font-size: 0 !important;
    transform: rotate(var(--arrow-rotation));
  }

  .ui-arrow::before {
    position: absolute !important;
    top: 5.5px !important;
    left: 1px !important;
    display: block !important;
    width: 10px !important;
    height: 1px !important;
    border: 0 !important;
    background: currentColor !important;
    color: inherit !important;
    content: "" !important;
    transform: rotate(-45deg) !important;
    transform-origin: center !important;
  }

  .ui-arrow::after {
    position: absolute !important;
    top: 1px !important;
    right: 1px !important;
    left: auto !important;
    display: block !important;
    width: 6px !important;
    height: 6px !important;
    border: 0 !important;
    border-top: 1px solid currentColor !important;
    border-right: 1px solid currentColor !important;
    background: transparent !important;
    color: inherit !important;
    content: "" !important;
    transform: none !important;
  }

  .ui-arrow--right { --arrow-rotation: 45deg; }
  .ui-arrow--down { --arrow-rotation: 135deg; }
  .ui-arrow--left { --arrow-rotation: 225deg; }
  .ui-arrow--up { --arrow-rotation: -45deg; }
  .card-arrow.ui-arrow { position: absolute !important; right: 1.35rem !important; bottom: 1.25rem !important; }
}

@media (max-width: 700px) {
  .mobile-nav {
    inset: 68px 0 0;
    min-height: calc(100lvh - 68px);
  }
}
