:root {
  --orange: #ff6c0c;
  --orange-dark: #4b1a00;
  --orange-soft: #fff0e6;
  --deep-blue: #003b4c;
  --ink: #002a36;
  --paper: #ffffff;
  --warm: #f6f3ed;
  --soft: #eceae5;
  --gray: #76777b;
  --light-gray: #c8c8c8;
  --stone: #aaa99f;
  --sand: #f1d384;
  --line: rgba(0, 42, 54, .16);
  --mono: "SFMono-Regular", "Cascadia Code", "Roboto Mono", Menlo, Consolas, monospace;
  --sans: "Helvetica Neue", Helvetica, Arial, sans-serif;
  --serif: Georgia, "Times New Roman", serif;
  --max: 1440px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; min-width: 320px; overflow-x: hidden; color: var(--ink); background: var(--paper); font-family: var(--sans); -webkit-font-smoothing: antialiased; }
body.site-locked { overflow: hidden; }
body.site-locked > :not(.access-gate) { visibility: hidden; }
.access-gate { position: fixed; z-index: 2000; inset: 0; display: grid; place-items: center; padding: 1.5rem; background: var(--warm); }
.access-gate__panel { width: min(100%,42rem); padding: clamp(2rem,6vw,5rem); background: #fff; border: 1px solid var(--ink); box-shadow: 12px 12px 0 var(--orange); }
.access-gate .section-label { margin-bottom: clamp(3rem,8vw,6rem); }
.access-gate .section-label .accent { color: var(--orange); }
.access-gate h1 { max-width: 9ch; margin: 0; font-size: clamp(3rem,7vw,6.8rem); font-weight: 500; letter-spacing: -.065em; line-height: .94; }
.access-gate > div > p { max-width: 30rem; margin: 2rem 0 0; color: #555; font-size: 1rem; line-height: 1.6; }
.access-gate__form { margin-top: 3rem; }.access-gate__form label { display: block; margin-bottom: .65rem; color: var(--gray); font: .55rem var(--mono); letter-spacing: .1em; text-transform: uppercase; }.access-gate__form > div { display: flex; }.access-gate__form input { min-width: 0; flex: 1; padding: 1rem; border: 1px solid var(--ink); border-right: 0; border-radius: 0; color: var(--ink); font: 1rem var(--mono); outline-offset: 3px; }.access-gate__form button { padding: 0 1.15rem; color: #fff; background: var(--orange); border: 1px solid var(--orange); cursor: pointer; font: .6rem var(--mono); letter-spacing: .06em; text-transform: uppercase; }.access-gate__form button:hover { color: var(--ink); background: #fff; border-color: var(--ink); }.access-gate__error { margin: .75rem 0 0; color: #b3261e; font-size: .8rem; }
body:not(.site-locked) .access-gate { display: none; }
::selection { color: #fff; background: var(--orange); }
a { color: inherit; }
button { color: inherit; font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
img { display: block; max-width: 100%; }
.skip-link { position: fixed; top: .75rem; left: .75rem; z-index: 1000; padding: .75rem 1rem; color: #fff; background: var(--ink); transform: translateY(-180%); }
.skip-link:focus { transform: translateY(0); }
.scroll-progress { position: fixed; inset: 0 0 auto; z-index: 200; height: 3px; pointer-events: none; }
.scroll-progress span { display: block; width: 0; height: 100%; background: var(--orange); }

.site-header { position: fixed; inset: 0 0 auto; z-index: 100; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; min-height: 6.2rem; padding: 0 clamp(1.25rem,3.5vw,4.5rem); border-bottom: 1px solid transparent; transition: min-height .3s ease,background .3s ease,border-color .3s ease; }
.site-header.scrolled { min-height: 4.8rem; background: rgba(255,255,255,.92); border-color: var(--line); backdrop-filter: blur(18px); }
.brand { display: flex; align-items: center; gap: .85rem; width: max-content; text-decoration: none; }
.brand-symbol { display: grid; place-items: center; width: 2.9rem; height: 2.9rem; color: var(--ink); background: #fff; border: 2px solid var(--ink); font-size: 1.05rem; font-weight: 700; letter-spacing: -.08em; box-shadow: 4px 4px 0 var(--orange); transition: transform .2s ease,box-shadow .2s ease; }
.brand-symbol span { color: var(--orange); }
.brand:hover .brand-symbol { transform: translate(2px,2px); box-shadow: 2px 2px 0 var(--orange); }
.brand-copy { display: flex; flex-direction: column; }
.brand-copy strong { font-size: 1rem; line-height: 1.1; letter-spacing: -.04em; }
.brand-copy sup,.footer-brand sup,.about-address sup { position: relative; top: -.35em; margin-left: .08em; font-size: .65em; letter-spacing: 0; }
.brand-copy small { margin-top: .25rem; color: var(--gray); font-family: var(--mono); font-size: .5rem; letter-spacing: .04em; text-transform: uppercase; }
.site-header nav { display: flex; align-items: center; gap: clamp(1.25rem,2.4vw,2.8rem); }
.site-header nav a,.header-cta { position: relative; text-decoration: none; font-family: var(--mono); font-size: .66rem; letter-spacing: .06em; text-transform: uppercase; }
.site-header nav a::after { content: ""; position: absolute; right: 0; bottom: -.45rem; left: 0; height: 2px; background: var(--orange); transform: scaleX(0); transform-origin: right; transition: transform .25s ease; }
.site-header nav a:hover::after { transform: scaleX(1); transform-origin: left; }
.header-cta { justify-self: end; display: inline-flex; align-items: center; gap: 2rem; padding: 1rem 1.2rem; color: #fff; background: var(--orange); border: 1px solid var(--orange); transition: color .2s ease,background .2s ease,transform .2s ease; }
.header-cta:hover { color: var(--ink); background: #fff; border-color: var(--ink); transform: translate(-3px,-3px); box-shadow: 4px 4px 0 var(--ink); }
.menu-toggle { display: none; }

.hero { position: relative; min-height: auto; max-width: 1040px; margin: auto; padding: clamp(10rem,18vh,15rem) clamp(1.25rem,4vw,5rem) clamp(7rem,12vw,11rem); }
.hero-rule { position: absolute; top: 0; bottom: 0; left: clamp(1.25rem,4vw,5rem); width: 1px; background: var(--line); }
.hero-copy { position: relative; z-index: 2; max-width: 850px; padding-left: clamp(1rem,2.2vw,2.8rem); }
.eyebrow,.section-label { margin: 0; color: var(--gray); font-family: var(--mono); font-size: .63rem; font-weight: 500; letter-spacing: .12em; line-height: 1.5; text-transform: uppercase; }
.eyebrow { display: flex; align-items: center; gap: .75rem; }
.eyebrow span { width: .55rem; height: .55rem; background: var(--orange); border-radius: 50%; box-shadow: 0 0 0 .32rem var(--orange-soft); }
.hero h1 { margin: 0 0 2.2rem; font-size: clamp(3.8rem,8vw,7.35rem); font-weight: 500; letter-spacing: -.072em; line-height: .92; }
.hero h1 .title-caltech,.hero h1 .title-math { display: block; }
.hero h1 .title-caltech { line-height: .88; text-align: left; }
.hero h1 .title-math { line-height: .9; text-align: right; }
.hero h1 .title-math sup { display: inline-block; margin-left: .07em; font-size: .80em; letter-spacing: -.04em; line-height: 0; vertical-align: super; transform: translateY(-.08em); }
.hero h1 .title-math sup.accent { color: var(--orange); }
h1 em,h2 em { font-family: var(--serif); font-weight: 400; }
.hero-intro { max-width: 850px; margin: 0; padding-left: clamp(1rem,7vw,8.5rem); color: #515151; font-size: clamp(1rem,1.4vw,1.25rem); line-height: 1.65; }
.hero-actions { display: flex; align-items: center; gap: 2rem; margin-top: 2.4rem; padding-left: clamp(1rem,7vw,8.5rem); }
.button { display: inline-flex; align-items: center; justify-content: space-between; gap: 3rem; min-height: 3.7rem; padding: 0 1.3rem; text-decoration: none; font-family: var(--mono); font-size: .66rem; letter-spacing: .07em; text-transform: uppercase; }
.button-primary { color: #fff; background: var(--orange); border: 1px solid var(--orange); transition: color .2s ease,background .2s ease,box-shadow .2s ease,transform .2s ease; }
.button-primary:hover { color: var(--ink); background: #fff; border-color: var(--ink); transform: translate(-4px,-4px); box-shadow: 6px 6px 0 var(--ink); }
.text-link { text-underline-offset: .45rem; font-family: var(--mono); font-size: .66rem; text-transform: uppercase; }
.text-link:hover { color: var(--orange); }

.hero-visual { --rx: 0deg; --ry: 0deg; position: relative; align-self: center; min-height: min(66vh,700px); overflow: hidden; color: var(--ink); background: #fff; border: 2px solid var(--ink); box-shadow: 14px 14px 0 var(--orange); transform: perspective(1200px) rotateX(var(--rx)) rotateY(var(--ry)); transition: transform .2s ease-out; }
.hero-visual::before { content: "M+"; position: absolute; right: -1rem; bottom: 1.5rem; color: transparent; font-size: clamp(12rem,22vw,22rem); font-weight: 700; letter-spacing: -.16em; line-height: .7; -webkit-text-stroke: 1px rgba(0,42,54,.06); }
.hero-visual-bar { position: relative; z-index: 4; display: flex; align-items: center; justify-content: space-between; min-height: 3.2rem; padding: 0 1rem; border-bottom: 1px solid var(--ink); font-family: var(--mono); font-size: .56rem; letter-spacing: .08em; }
.live-indicator { display: flex; align-items: center; gap: .5rem; color: var(--gray); text-transform: uppercase; }
.live-indicator i { width: .45rem; height: .45rem; background: var(--orange); border-radius: 50%; animation: statusPulse 1.8s infinite; }
@keyframes statusPulse { 0% { box-shadow: 0 0 0 0 rgba(255,108,12,.45); } 50% { box-shadow: 0 0 0 .4rem rgba(255,108,12,0); } }
.hero-map { position: absolute; inset: 3.2rem 0 5.7rem; width: 100%; height: calc(100% - 8.9rem); color: var(--ink); }
.map-branches path { stroke: rgba(0,42,54,.16); stroke-width: 1.1; }
.map-nodes-muted circle { fill: var(--ink); opacity: .48; }
.agent-path { stroke: var(--orange); stroke-width: 3; stroke-dasharray: 8 8; animation: pathFlow 12s linear infinite; }
.agent-path-shadow { stroke: rgba(255,108,12,.17); stroke-width: 12; }
.map-nodes-active circle { fill: var(--orange); stroke: #fff; stroke-width: 2; filter: drop-shadow(0 0 5px rgba(255,108,12,.45)); }
@keyframes pathFlow { to { stroke-dashoffset: -160; } }
.formula-chip { position: absolute; z-index: 3; display: flex; flex-direction: column; gap: .45rem; padding: .8rem 1rem; background: rgba(255,255,255,.92); border: 1px solid var(--ink); box-shadow: 4px 4px 0 rgba(0,42,54,.1); }
.formula-chip small { color: var(--gray); font-family: var(--mono); font-size: .48rem; letter-spacing: .12em; }
.formula-chip strong { font-family: var(--serif); font-size: .9rem; font-weight: 400; }
.formula-a { top: 23%; left: 6%; animation: floatChip 5s ease-in-out infinite; }.formula-b { top: 56%; right: 5%; animation: floatChip 6s .7s ease-in-out infinite reverse; }
@keyframes floatChip { 50% { transform: translateY(-8px); } }
.hero-telemetry { position: absolute; inset: auto 0 0; z-index: 4; display: grid; grid-template-columns: repeat(3,1fr); min-height: 5.7rem; background: var(--warm); border-top: 1px solid var(--ink); }
.hero-telemetry div { display: flex; flex-direction: column; justify-content: center; padding: 0 1rem; border-right: 1px solid var(--line); }.hero-telemetry div:last-child { border-right: 0; }
.hero-telemetry span { color: var(--gray); font-family: var(--mono); font-size: .46rem; letter-spacing: .1em; }.hero-telemetry strong { margin-top: .45rem; font-family: var(--mono); font-size: .8rem; font-weight: 400; }.orange-text { color: var(--orange); }
.hero-footnote { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr 1fr; align-items: end; padding-left: clamp(1rem,2.2vw,2.8rem); }.hero-footnote span { color: var(--gray); font-family: var(--mono); font-size: .53rem; letter-spacing: .1em; }.hero-footnote p { max-width: 37rem; margin: 0; font-size: .76rem; line-height: 1.5; }

.section { padding: clamp(6rem,11vw,11rem) 0; }
.section-shell { width: min(calc(100% - clamp(2.5rem,8vw,10rem)),var(--max)); margin: auto; }
.section-heading { display: grid; grid-template-columns: .65fr 1.1fr .65fr; gap: 2rem; align-items: start; }.section-heading .section-label { padding-top: .7rem; }
.section-heading h2,.content-heading h2,.people-heading h2,.experiments-intro h2,.experiment-heading h2,.about-copy h2 { margin: 0; font-size: clamp(2.7rem,5vw,5.7rem); font-weight: 500; letter-spacing: -.065em; line-height: .98; }
.section-heading > p:last-child { margin: .7rem 0 0; color: #555; font-size: .94rem; line-height: 1.75; }
.research-grid { display: grid; grid-template-columns: 1.2fr 1fr 1fr; margin-top: clamp(4rem,7vw,7rem); border: 1px solid var(--ink); }
.research-card { position: relative; display: flex; flex-direction: column; min-height: 31rem; padding: 1.6rem; background: #fff; border-right: 1px solid var(--ink); transition: background .25s ease,transform .25s ease,box-shadow .25s ease; }.research-card:last-child { border-right: 0; }
.research-card::after { content: ""; position: absolute; inset: 0 0 auto; height: 5px; background: var(--orange); transform: scaleX(0); transform-origin: left; transition: transform .25s ease; }
.research-card:hover { z-index: 2; background: var(--warm); transform: translate(-6px,-6px); box-shadow: 8px 8px 0 var(--ink); }.research-card:hover::after,.research-card-featured::after { transform: scaleX(1); }
.research-card-featured { background: var(--orange-soft); }
.card-top { display: flex; justify-content: space-between; font-family: var(--mono); font-size: .6rem; }.card-top i { color: var(--orange); font-style: normal; font-size: 1rem; }
.research-glyph { position: relative; width: 100%; height: 10rem; margin: 2.8rem 0 2rem; }
.glyph-tree span { position: absolute; display: block; width: .75rem; height: .75rem; background: var(--orange); border-radius: 50%; }.glyph-tree::before,.glyph-tree::after { content: ""; position: absolute; left: 21%; top: 50%; width: 56%; height: 1px; background: currentColor; opacity: .25; transform: rotate(-24deg); }.glyph-tree::after { transform: rotate(21deg); }
.glyph-tree span:nth-child(1) { left: 4%; top: 48%; }.glyph-tree span:nth-child(2) { left: 29%; top: 20%; }.glyph-tree span:nth-child(3) { left: 47%; top: 62%; }.glyph-tree span:nth-child(4) { left: 70%; top: 10%; }.glyph-tree span:nth-child(5) { right: 4%; top: 49%; }
.glyph-signal { display: flex; align-items: flex-end; gap: .55rem; padding: 1rem 8%; }.glyph-signal span { flex: 1; height: 12%; background: var(--light-gray); }.glyph-signal span:nth-child(2) { height: 21%; }.glyph-signal span:nth-child(3) { height: 18%; }.glyph-signal span:nth-child(4) { height: 31%; }.glyph-signal span:nth-child(5) { height: 96%; background: var(--orange); }
.glyph-proof { display: flex; align-items: center; justify-content: space-around; font: 2.4rem var(--serif); }.glyph-proof span:nth-child(2) { color: var(--orange); }
.research-card h3 { max-width: 11ch; margin: auto 0 1rem; font-size: clamp(1.5rem,2.2vw,2.25rem); font-weight: 500; letter-spacing: -.04em; line-height: 1.05; }.research-card p { min-height: 5.5rem; margin: 0; color: var(--gray); font-size: .87rem; line-height: 1.65; }.research-card small { display: block; margin-top: 1.6rem; padding-top: 1rem; border-top: 1px solid currentColor; opacity: .55; font-family: var(--mono); font-size: .46rem; letter-spacing: .08em; }

.experiments-intro { position: relative; overflow: hidden; padding: clamp(6rem,10vw,10rem) 0; background: var(--warm); border-top: 1px solid var(--ink); border-bottom: 1px solid var(--ink); }
.experiments-intro::before { content: none; }
.experiments-intro-grid { position: relative; display: grid; grid-template-columns: 1fr .8fr; gap: clamp(3rem,10vw,10rem); align-items: end; }.experiments-intro .section-label { margin-bottom: 2rem; }
.experiment-jump-list { border-top: 1px solid var(--ink); }.experiment-jump-list a { display: grid; grid-template-columns: 1fr auto 1rem; gap: 1rem; align-items: center; padding: 1.25rem 0; border-bottom: 1px solid var(--ink); text-decoration: none; transition: color .2s ease,padding .2s ease; }.experiment-jump-list a:hover { padding-left: 1rem; color: var(--orange); }
.experiment-jump-list span,.experiment-jump-list small { color: var(--gray); font-family: var(--mono); font-size: .52rem; text-transform: uppercase; }.experiment-jump-list strong { font-size: 1.05rem; font-weight: 500; }.experiment-jump-list i { font-style: normal; }

.experiment-section { position: relative; padding: clamp(6rem,10vw,10rem) 0; background: #fff; }
.ac-section { background: var(--warm); border-top: 1px solid var(--ink); }
.experiment-heading { display: grid; grid-template-columns: 1.1fr .65fr; gap: clamp(2rem,5vw,6rem); align-items: end; margin-bottom: clamp(4rem,6vw,6rem); }
.experiment-number { align-self: start; color: transparent; font-size: clamp(5rem,10vw,10rem); font-weight: 700; letter-spacing: -.12em; line-height: .75; -webkit-text-stroke: 1px var(--orange); }
.experiment-heading .section-label { margin-bottom: 1.5rem; }.experiment-intro p { margin: 0 0 1.5rem; color: #555; font-size: .94rem; line-height: 1.75; }.experiment-intro a { color: var(--orange); font-family: var(--mono); font-size: .62rem; letter-spacing: .06em; text-transform: uppercase; text-underline-offset: .4rem; }

.demo-lab,.ac-lab { position: relative; overflow: hidden; background: #fff; border: 2px solid var(--ink); box-shadow: 12px 12px 0 var(--orange); }
.ac-lab { box-shadow: 12px 12px 0 var(--ink); }
.demo-toolbar { display: flex; align-items: center; justify-content: space-between; min-height: 3.4rem; padding: 0 1rem; color: var(--ink); background: #fff; border-bottom: 2px solid var(--ink); box-shadow: inset 0 -4px 0 var(--orange-soft); font-family: var(--mono); font-size: .54rem; letter-spacing: .08em; }
.window-label { display: flex; align-items: center; gap: .85rem; }.window-dots { display: flex; gap: .3rem; }.window-dots i { display: block; width: .45rem; height: .45rem; border: 1px solid var(--ink); border-radius: 50%; }.window-dots i:first-child { background: var(--orange); border-color: var(--orange); }
.concept-badge { padding: .4rem .55rem; color: var(--orange); background: var(--orange-soft); border: 1px solid var(--orange); }
.demo-grid { display: grid; grid-template-columns: 15rem minmax(0,1fr) 16rem; min-height: 38rem; }
.demo-controls { display: flex; flex-direction: column; padding: 1.4rem; background: var(--warm); border-right: 1px solid var(--ink); }.control-group { padding-bottom: 1.5rem; }.control-group + .control-group { padding-top: 1.5rem; border-top: 1px solid var(--line); }
.control-label { margin: 0 0 1rem; color: var(--gray); font-family: var(--mono); font-size: .5rem; letter-spacing: .1em; }
.policy-switch { display: grid; gap: .5rem; }.policy-button { display: flex; flex-direction: column; gap: .25rem; width: 100%; padding: .85rem; color: var(--ink); text-align: left; background: #fff; border: 1px solid var(--line); cursor: pointer; }.policy-button span { font-size: .78rem; }.policy-button small { color: var(--gray); font-family: var(--mono); font-size: .46rem; letter-spacing: .06em; text-transform: uppercase; }.policy-button.active { background: var(--orange-soft); border: 2px solid var(--orange); }
.control-objective p:last-child { margin: 1rem 0 0; color: var(--gray); font-size: .69rem; line-height: 1.65; }.objective-formula { display: grid; gap: .55rem; padding: .85rem; background: #fff; border: 1px solid var(--line); font-family: var(--mono); font-size: .6rem; }.objective-formula span { display: flex; justify-content: space-between; }.objective-formula strong { color: var(--orange); font-weight: 500; }
.demo-buttons { display: grid; grid-template-columns: 1fr auto auto; gap: .45rem; margin-top: auto; }.demo-buttons button { min-height: 3rem; padding: 0 .8rem; color: var(--ink); background: #fff; border: 1px solid var(--ink); cursor: pointer; font-family: var(--mono); font-size: .54rem; letter-spacing: .05em; text-transform: uppercase; }.demo-run { display: flex; align-items: center; justify-content: space-between; color: #fff !important; background: var(--orange) !important; border-color: var(--orange) !important; }.demo-buttons button:hover { color: #fff; background: var(--orange-dark); border-color: var(--orange-dark); box-shadow: 3px 3px 0 var(--orange-dark); transform: translate(-2px,-2px); }
.graph-stage { position: relative; min-width: 0; overflow: hidden; background: #fff; }.graph-stage::before { content: ""; position: absolute; inset: 0; opacity: .17; background-image: radial-gradient(circle,var(--gray) 1px,transparent 1px); background-size: 24px 24px; }
.stage-topline { position: relative; z-index: 3; display: flex; justify-content: space-between; min-height: 3.2rem; padding: 1.1rem 1rem 0; color: var(--gray); font-family: var(--mono); font-size: .5rem; letter-spacing: .09em; }
#episode-state,#ac-status { display: flex; align-items: center; gap: .4rem; }#episode-state i,#ac-status i { width: .42rem; height: .42rem; background: var(--gray); border-radius: 50%; }#episode-state.running,#ac-status.running { color: var(--orange); }#episode-state.running i,#ac-status.running i { background: var(--orange); animation: statusPulse 1.4s infinite; }#episode-state.success,#ac-status.success { color: var(--ink); font-weight: 700; }#episode-state.success i,#ac-status.success i { background: var(--orange); }
#hirsch-graph { position: relative; z-index: 2; display: block; width: 100%; height: calc(100% - 3.2rem); min-height: 32rem; }.graph-edge { stroke: rgba(0,42,54,.22); stroke-width: 1.5; }.graph-edge.path { stroke: var(--orange); stroke-width: 3; stroke-dasharray: 7 5; animation: pathFlow 6s linear infinite; }
.graph-node circle { fill: #fff; stroke: var(--ink); stroke-width: 2; }.graph-node text { fill: var(--gray); font-family: var(--mono); font-size: 10px; text-anchor: middle; }.graph-node.active circle { fill: var(--orange); stroke: var(--ink); filter: drop-shadow(3px 3px 0 rgba(0,42,54,.15)); }.graph-node.root circle { fill: var(--ink); stroke: var(--ink); }.graph-node.rejected circle { fill: #fff; stroke: var(--orange); stroke-width: 4; animation: rejectedNode .5s ease both; }
@keyframes rejectedNode { 50% { transform: scale(1.7); } 100% { transform: scale(.4); opacity: 0; } }
.candidate-card { position: absolute; z-index: 5; right: 1rem; bottom: 1rem; display: flex; flex-direction: column; min-width: 13.5rem; padding: .8rem 1rem; background: rgba(255,255,255,.94); border: 1px solid var(--ink); box-shadow: 5px 5px 0 var(--soft); }.candidate-card span { color: var(--gray); font-family: var(--mono); font-size: .44rem; letter-spacing: .1em; }.candidate-card strong { margin: .4rem 0 .25rem; font-family: var(--serif); font-size: 1rem; font-weight: 400; }.candidate-card small { color: var(--gray); font-size: .57rem; }.candidate-card.accepted { border-color: var(--ink); box-shadow: 5px 5px 0 var(--orange); }.candidate-card.rejected { border-color: var(--orange); animation: cardShake .35s ease; }
@keyframes cardShake { 25% { transform: translateX(-5px); } 75% { transform: translateX(5px); } }
.demo-readout { display: flex; flex-direction: column; background: #fff; border-left: 1px solid var(--ink); }.metric-stack { display: grid; grid-template-columns: repeat(2,1fr); }.demo-metric { min-height: 7rem; padding: 1rem; border-right: 1px solid var(--line); border-bottom: 1px solid var(--ink); }.demo-metric:nth-child(2n) { border-right: 0; }.demo-metric span { display: block; color: var(--gray); font-family: var(--mono); font-size: .43rem; letter-spacing: .08em; }.demo-metric strong { display: block; margin-top: .65rem; font-family: var(--mono); font-size: 1.15rem; font-weight: 400; }.demo-metric small { display: block; margin-top: .25rem; color: var(--gray); font-family: var(--mono); font-size: .42rem; }.reward-metric strong { color: var(--orange); font-size: 1.8rem; }.reward-metric.rewarded { background: var(--orange); animation: rewardFlash .75s ease; }.reward-metric.rewarded span,.reward-metric.rewarded strong { color: #fff; }
@keyframes rewardFlash { 50% { box-shadow: inset 0 0 0 6px rgba(255,255,255,.5); } }
.event-log { min-height: 0; padding: 1rem; }.event-log-title { display: flex; justify-content: space-between; padding-bottom: .75rem; color: var(--gray); border-bottom: 1px solid var(--line); font-family: var(--mono); font-size: .46rem; letter-spacing: .08em; }.event-log-title span:last-child { color: var(--orange); }.event-log ol { display: flex; flex-direction: column-reverse; max-height: 15rem; margin: 0; padding: 0; overflow: hidden; list-style: none; }.event-log li { display: grid; grid-template-columns: 1.6rem 1fr; gap: .4rem; padding: .65rem 0; color: #555; border-bottom: 1px solid var(--line); font-family: var(--mono); font-size: .5rem; line-height: 1.45; }.event-log li span { color: var(--gray); }.event-log li p { margin: 0; }.event-log li.success p { color: var(--orange); font-weight: 700; }.event-log li.invalid p { text-decoration: line-through; text-decoration-color: var(--orange); }
.demo-caption { display: grid; grid-template-columns: 1.5fr .5fr; gap: 3rem; padding: 1rem 1.4rem; color: var(--gray); background: var(--warm); border-top: 1px solid var(--ink); font-size: .61rem; line-height: 1.6; }.demo-caption p { margin: 0; }.demo-caption p:first-child { color: #444; }.demo-caption span { margin-right: .6rem; color: var(--orange); font-family: var(--mono); font-size: .48rem; letter-spacing: .08em; }

.ac-grid { display: grid; grid-template-columns: 15rem minmax(0,1fr) 17rem; min-height: 39rem; }.ac-controls { display: flex; flex-direction: column; padding: 1.4rem; background: #fff; border-right: 1px solid var(--ink); }.move-family { border-top: 1px solid var(--ink); }.move-family > div { display: grid; grid-template-columns: 2.5rem 1fr; gap: .5rem; padding: 1rem 0; border-bottom: 1px solid var(--line); }.move-family span { color: var(--orange); font-family: var(--mono); font-size: .55rem; }.move-family p { margin: 0; color: var(--gray); font-size: .7rem; line-height: 1.45; }.ac-primary-actions { display: grid; gap: .5rem; margin-top: auto; }.ac-primary-actions button { min-height: 3.2rem; padding: 0 .8rem; background: #fff; border: 1px solid var(--ink); cursor: pointer; font-family: var(--mono); font-size: .54rem; text-transform: uppercase; }.ac-primary-actions button:first-child { display: flex; align-items: center; justify-content: space-between; color: #fff; background: var(--orange); border-color: var(--orange); }
.ac-workspace { position: relative; min-width: 0; overflow: hidden; background-image: linear-gradient(rgba(0,42,54,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(0,42,54,.04) 1px,transparent 1px); background-size: 38px 38px; }.relator-stack { padding: clamp(2rem,5vw,4rem) clamp(1.2rem,4vw,3rem) 1.5rem; }.relator-row { display: grid; grid-template-columns: 5.5rem 1fr; align-items: center; min-height: 8rem; background: rgba(255,255,255,.92); border: 1px solid var(--ink); box-shadow: 5px 5px 0 var(--soft); }.relator-label { align-self: stretch; display: flex; flex-direction: column; justify-content: center; padding: 1rem; border-right: 1px solid var(--ink); }.relator-label span { font: italic 1.7rem var(--serif); }.relator-label small { margin-top: .5rem; color: var(--gray); font: .43rem var(--mono); text-transform: uppercase; }.word-tokens { display: flex; flex-wrap: wrap; gap: .35rem; padding: 1.2rem; }.word-token { display: inline-flex; align-items: center; justify-content: center; min-width: 2.50rem; height: 2.75rem; padding: 0 .5rem; white-space: nowrap; background: #fff; border: 1px solid var(--ink); font: 1.15rem var(--serif); animation: tokenIn .3s ease both; }.word-token.inverse { color: var(--orange); background: var(--orange-soft); border-color: var(--orange); }.word-token sup { align-self: flex-start; margin: .35em 0 0 1px; font-size: .55em; line-height: 1; }
@keyframes tokenIn { from { transform: translateY(-8px) rotate(-3deg); } }
.rewrite-axis { display: grid; grid-template-columns: 1fr auto 1fr; gap: .75rem; align-items: center; min-height: 4rem; color: var(--gray); font-family: var(--mono); font-size: .5rem; text-transform: uppercase; }.rewrite-axis span { height: 1px; background: var(--line); }.rewrite-axis strong { color: var(--orange); font-weight: 500; }
.move-palette { display: grid; grid-template-columns: repeat(3,1fr); margin: 1rem clamp(1.2rem,4vw,3rem) 2.5rem; border-top: 1px solid var(--ink); border-left: 1px solid var(--ink); }.move-palette button { min-height: 3.7rem; padding: .65rem; color: #555; text-align: left; background: #fff; border: 0; border-right: 1px solid var(--ink); border-bottom: 1px solid var(--ink); cursor: pointer; font-family: var(--mono); font-size: .5rem; }.move-palette button span { display: block; margin-bottom: .35rem; color: var(--orange); font-size: .44rem; }.move-palette button:hover { color: #fff; background: var(--orange-dark); }
.ac-readout { display: flex; flex-direction: column; background: var(--warm); border-left: 1px solid var(--ink); }.ac-metrics { display: grid; grid-template-columns: repeat(2,1fr); border-bottom: 1px solid var(--ink); }.ac-metrics div { min-height: 7rem; padding: 1rem; border-right: 1px solid var(--line); }.ac-metrics div:last-child { border-right: 0; }.ac-metrics span { color: var(--gray); font: .43rem var(--mono); letter-spacing: .08em; }.ac-metrics strong { display: block; margin-top: .75rem; font: 1.6rem var(--mono); font-weight: 400; }.policy-scores { padding: 1rem; border-bottom: 1px solid var(--ink); }.policy-scores > div { display: grid; grid-template-columns: 1fr 2.8rem; gap: .4rem; align-items: center; margin-bottom: .85rem; }.policy-scores span { color: #555; font: .48rem var(--mono); }.policy-scores i { grid-column: 1; display: block; width: var(--score); height: 3px; background: var(--orange); transition: width .35s ease; }.policy-scores strong { grid-column: 2; grid-row: 1 / span 2; font: .55rem var(--mono); font-weight: 400; }.ac-history { min-height: 0; padding: 1rem; }.ac-history ol { display: flex; flex-direction: column-reverse; max-height: 12rem; margin: 0; padding: 0; overflow: hidden; list-style: none; }.ac-history li { display: grid; grid-template-columns: 1.5rem 1fr; gap: .4rem; padding: .65rem 0; border-bottom: 1px solid var(--line); font: .49rem var(--mono); line-height: 1.45; }.ac-history li span { color: var(--gray); }.ac-history li p { margin: 0; }.ac-history li.agent p { color: var(--orange); }

.people { background: var(--warm); border-top: 1px solid var(--ink); }.people-heading { display: grid; grid-template-columns: 1.4fr .6fr; gap: 3rem; align-items: end; }.people-heading .section-label { margin-bottom: 2rem; }.people-heading > p { max-width: 27rem; margin: 0; color: #555; font-size: .92rem; line-height: 1.7; }
.people-grid { display: grid; grid-template-columns: repeat(4,1fr); margin-top: clamp(4rem,7vw,7rem); border-top: 1px solid var(--ink); border-left: 1px solid var(--ink); }.person-card { min-width: 0; padding: .8rem; border-right: 1px solid var(--ink); border-bottom: 1px solid var(--ink); }
.portrait { position: relative; aspect-ratio: 4 / 4.7; overflow: hidden; background: var(--soft); }.portrait::after { content: ""; position: absolute; inset: auto 0 0; height: 40%; background: linear-gradient(transparent,rgba(0,42,54,.16)); opacity: 0; transition: opacity .3s ease; }.portrait img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(0); transition: filter .45s ease,transform .55s ease; }.person-card:hover .portrait img { filter: grayscale(0); opacity: 1; transform: scale(1.035); }.person-card:hover .portrait::after { opacity: 1; }
.portrait-initials { display: grid; place-items: center; }.portrait-initials::before { content: ""; position: absolute; width: 64%; height: 64%; border: 1px solid currentColor; border-radius: 50%; opacity: .22; box-shadow: 0 0 0 2rem currentColor,0 0 0 4rem currentColor; }.portrait-initials span { position: relative; z-index: 2; font: italic clamp(2rem,4vw,4.5rem) var(--serif); }.portrait-ink { color: #fff; background: var(--ink); }.portrait-orange { color: #fff; background: var(--orange); }.portrait-gray { color: var(--ink); background: var(--light-gray); }.portrait-sand { color: var(--ink); background: var(--sand); }
.person-meta { position: relative; padding: 1.25rem .25rem .8rem; }.person-meta::before { content: ""; position: absolute; top: 0; left: .25rem; width: 2.5rem; height: 3px; background: var(--orange); }.person-meta > span { color: var(--gray); font: .48rem var(--mono); letter-spacing: .06em; text-transform: uppercase; }.person-meta h3 { min-height: 2.5em; margin: .75rem 0 1rem; font-size: clamp(1.3rem,1.8vw,2rem); font-weight: 500; letter-spacing: -.04em; line-height: 1.02; }.person-meta small { color: var(--gray); font: .43rem var(--mono); letter-spacing: .11em; }.person-meta p { min-height: 3.7em; margin: .8rem 0 0; color: #555; font-size: .64rem; line-height: 1.5; }

.about-section { padding: clamp(6rem,11vw,11rem) 0 4rem; background: var(--warm); border-top: 1px solid var(--ink); }.about-grid { display: grid; grid-template-columns: .6fr 1.5fr .5fr; gap: clamp(2rem,7vw,8rem); align-items: end; }.about-number { align-self: start; color: transparent; font-size: clamp(7rem,15vw,15rem); font-weight: 600; letter-spacing: -.11em; line-height: .7; -webkit-text-stroke: 1px var(--orange); }.about-number span { color: var(--orange); }.about-copy .section-label { margin-bottom: 2rem; }.about-copy h2 { max-width: 12ch; }.about-copy > p:not(.section-label) { max-width: 43rem; margin: 2.5rem 0; color: #555; font-size: 1rem; line-height: 1.75; }.about-links { display: flex; flex-wrap: wrap; gap: .8rem; }.about-links a { display: flex; justify-content: space-between; gap: 3rem; min-width: 15rem; padding: 1rem; border: 1px solid var(--ink); text-decoration: none; font: .56rem var(--mono); text-transform: uppercase; }.about-links a:hover { color: #fff; background: var(--orange); border-color: var(--orange); }.about-address { color: var(--gray); font-style: normal; font-size: .7rem; line-height: 1.7; }.about-address span { color: var(--orange); font: .5rem var(--mono); letter-spacing: .09em; }
.papers-section,.contact-section { padding: clamp(6rem,10vw,10rem) 0; border-top: 1px solid var(--ink); }.papers-section,.contact-section { background: #fff; }.content-heading { margin-bottom: clamp(3rem,6vw,6rem); }.content-heading .section-label { margin-bottom: 1.5rem; }.paper-list { border-top: 1px solid var(--ink); }.paper-card { display: grid; grid-template-columns: 9rem minmax(0,1fr); gap: 2rem; padding: 2rem 0; border-bottom: 1px solid var(--ink); }.paper-venue { color: var(--orange); font: .65rem/1.2 var(--mono); letter-spacing: .08em; }.paper-card h3 { max-width: 48rem; margin: 0 0 .8rem; font-size: clamp(1.35rem,2.5vw,2rem); font-weight: 500; line-height: 1.08; }.paper-card h3 a { text-decoration: none; }.paper-card h3 a:hover { color: var(--orange); }.paper-card h3 span { color: var(--orange); }.paper-card p { max-width: 52rem; margin: 0 0 .8rem; color: #555; font-size: .78rem; line-height: 1.65; }.paper-card small { color: var(--gray); font: .52rem var(--mono); letter-spacing: .06em; }.contact-grid { display: grid; grid-template-columns: 1.25fr .75fr; gap: clamp(3rem,10vw,10rem); }.contact-grid h2 { max-width: 14ch; margin: 1.5rem 0 2rem; }.contact-grid > div > p:last-child { max-width: 43rem; color: #555; font-size: .96rem; line-height: 1.75; }.contact-links { display: flex; flex-direction: column; align-items: flex-start; gap: 1.5rem; padding-top: 2rem; }.contact-links a { color: var(--orange); font: .58rem var(--mono); letter-spacing: .06em; text-transform: uppercase; }.contact-email { padding-bottom: 1rem; border-bottom: 1px solid var(--ink); font-size: .7rem !important; }.contact-links address { color: #555; font-size: .76rem; font-style: normal; line-height: 1.75; }.contact-links address strong { color: var(--ink); }
footer { display: grid; grid-template-columns: 1fr 1fr 1fr; align-items: end; gap: 2rem; min-height: 12rem; padding: 3rem clamp(1.25rem,4vw,5rem); color: var(--light-gray); background: var(--ink); border-top: 6px solid var(--orange); }.footer-brand { display: flex; flex-direction: column; }.footer-brand strong { color: #fff; font-size: 1rem; }.footer-brand span { margin-top: .3rem; font: .46rem var(--mono); letter-spacing: .07em; text-transform: uppercase; }footer > p { margin: 0; text-align: center; font: italic 1rem var(--serif); }.footer-meta { display: flex; justify-content: flex-end; gap: 2rem; font: .5rem var(--mono); text-transform: uppercase; }.footer-meta a { text-underline-offset: .4rem; }

[data-reveal] { opacity: 1; transform: translateY(0); transition: opacity .75s ease,transform .75s cubic-bezier(.2,.75,.25,1); }
:focus-visible { outline: 3px solid var(--orange); outline-offset: 4px; }

@media (max-width: 1100px) {
  .site-header { grid-template-columns: 1fr auto; }.site-header nav { display: none; }.header-cta { grid-column: 2; grid-row: 1; }
  .hero { grid-template-columns: 1fr 1fr; gap: 2rem; }.hero-intro,.hero-actions { padding-left: 0; }.section-heading { grid-template-columns: .45fr 1.1fr; }.section-heading > p:last-child { grid-column: 2; }
  .experiment-heading { grid-template-columns: 1fr .65fr; gap: 2rem; }.demo-grid,.ac-grid { grid-template-columns: 13rem minmax(0,1fr); }.demo-readout,.ac-readout { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid var(--ink); border-left: 0; }.metric-stack { grid-template-columns: repeat(4,1fr); }.demo-metric { min-height: 6rem; border-bottom: 0; }.event-log { border-left: 1px solid var(--ink); }.ac-metrics { border-bottom: 0; }.policy-scores { border-left: 1px solid var(--ink); }.ac-history { grid-column: 1 / -1; border-top: 1px solid var(--ink); }
  .people-grid { grid-template-columns: repeat(3,1fr); }.about-grid { grid-template-columns: .35fr 1.2fr .5fr; gap: 3rem; }
  .contact-grid { gap: 4rem; }
}

@media (max-width: 780px) {
  .site-header { min-height: 4.8rem; padding: 0 1.1rem; background: rgba(255,255,255,.94); border-bottom-color: var(--line); backdrop-filter: blur(16px); }.brand-symbol { width: 2.5rem; height: 2.5rem; }.brand-copy small { display: none; }.header-cta { display: none; }
  .access-gate { padding: 1rem; }.access-gate__panel { padding: 2rem 1.5rem; box-shadow: 7px 7px 0 var(--orange); }.access-gate .section-label { margin-bottom: 3rem; }.access-gate h1 { font-size: clamp(2.8rem,13vw,4.5rem); }.access-gate__form { margin-top: 2.5rem; }
  .menu-toggle { justify-self: end; display: flex; align-items: center; gap: .7rem; padding: .6rem 0; background: none; border: 0; cursor: pointer; font: .56rem var(--mono); text-transform: uppercase; }.menu-toggle i,.menu-toggle i::before { display: block; width: 1.25rem; height: 1px; background: currentColor; transition: transform .2s ease; }.menu-toggle i { position: relative; }.menu-toggle i::before { content: ""; position: absolute; top: -.35rem; }.menu-toggle[aria-expanded="true"] i { transform: rotate(45deg); }.menu-toggle[aria-expanded="true"] i::before { top: 0; transform: rotate(90deg); }
  .site-header nav { position: absolute; top: 100%; right: 0; left: 0; display: flex; flex-direction: column; align-items: stretch; gap: 0; padding: .5rem 1.1rem 1.25rem; background: #fff; border-bottom: 1px solid var(--ink); transform: translateY(-140%); opacity: 0; pointer-events: none; transition: transform .3s ease,opacity .3s ease; }.site-header nav.open { transform: translateY(0); opacity: 1; pointer-events: auto; }.site-header nav a { padding: 1rem 0; border-bottom: 1px solid var(--line); }
  .hero { display: block; min-height: auto; padding: 8rem 1.25rem 5rem; }.hero-rule { left: 1.25rem; }.hero-copy { padding-left: 1rem; }.hero h1 { font-size: clamp(3.5rem,15vw,6rem); }.hero-intro { max-width: 34rem; }
  .section-shell { width: calc(100% - 2.5rem); }.section-heading,.people-heading,.experiments-intro-grid,.experiment-heading { display: block; }.section-heading h2,.content-heading h2,.people-heading h2,.experiments-intro h2,.experiment-heading h2,.about-copy h2 { font-size: clamp(2.8rem,12vw,4.5rem); }.section-heading .section-label { margin-bottom: 2rem; }.section-heading > p:last-child,.people-heading > p,.experiment-intro { margin-top: 2rem; }
  .research-grid { grid-template-columns: 1fr; }.research-card { min-height: 26rem; border-right: 0; border-bottom: 1px solid var(--ink); }.research-card:last-child { border-bottom: 0; }.research-card:hover { transform: none; box-shadow: none; }
  .experiment-jump-list { margin-top: 3rem; }.experiment-jump-list a { grid-template-columns: 1fr auto 1rem; }.experiment-number { margin-bottom: 2rem; font-size: 5rem; }.demo-lab,.ac-lab { box-shadow: 7px 7px 0 var(--orange); }.ac-lab { box-shadow: 7px 7px 0 var(--ink); }
  .demo-grid,.ac-grid { display: flex; flex-direction: column; }.demo-controls,.ac-controls { border-right: 0; border-bottom: 1px solid var(--ink); }.policy-switch { grid-template-columns: 1fr 1fr; }.demo-buttons,.ac-primary-actions { margin-top: 1.5rem; }.graph-stage { min-height: 31rem; }#hirsch-graph { min-height: 28rem; }.demo-readout,.ac-readout { display: block; }.metric-stack { grid-template-columns: repeat(2,1fr); }.demo-metric { border-bottom: 1px solid var(--ink); }.event-log,.policy-scores { border-left: 0; }.demo-caption { grid-template-columns: 1fr; gap: 1rem; }
  .relator-stack { padding: 2rem 1rem 1rem; }.move-palette { grid-template-columns: repeat(2,1fr); margin: 1rem; }.ac-metrics { border-bottom: 1px solid var(--ink); }.ac-history { border-top: 1px solid var(--ink); }
  .people-grid { grid-template-columns: repeat(2,1fr); }.about-grid { display: block; }.about-number { display: none; }.about-address { margin-top: 4rem; padding-top: 2rem; border-top: 1px solid var(--line); }footer { grid-template-columns: 1fr 1fr; min-height: auto; }footer > p { display: none; }
  .paper-card,.contact-grid { grid-template-columns: 1fr; gap: 1rem; }.paper-card { padding: 1.5rem 0; }.contact-links { padding-top: 0; }
}

@media (max-width: 470px) {
  .eyebrow { max-width: 25rem; font-size: .54rem; }.hero h1 { font-size: 3.65rem; }.button { width: 100%; }.hero-visual { min-height: 29rem; }.formula-chip { transform: scale(.84); }.formula-a { left: 1%; }.formula-b { right: 0; }.hero-telemetry div { padding: 0 .55rem; }.hero-telemetry strong { font-size: .65rem; }
  .experiment-jump-list a { grid-template-columns: 1fr 1rem; }.experiment-jump-list small { display: none; }.concept-badge { display: none; }.demo-toolbar { font-size: .46rem; }.policy-switch { grid-template-columns: 1fr; }.candidate-card { right: .6rem; bottom: .6rem; left: .6rem; min-width: 0; }
  .relator-row { grid-template-columns: 4.5rem 1fr; }.word-token { min-width: 1.9rem; height: 2.2rem; }.move-palette { grid-template-columns: 1fr; }
  .people-grid { grid-template-columns: 1fr; }.portrait { aspect-ratio: 1 / .95; }.person-meta h3 { min-height: 0; }.about-links { flex-direction: column; }.about-links a { min-width: 0; }footer { grid-template-columns: 1fr; gap: 2rem; }.footer-meta { justify-content: flex-start; }
}

@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; }*,*::before,*::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .01ms !important; }[data-reveal] { opacity: 1; transform: none; } }

/* Warm interaction states use a near-ink Caltech orange. */
.policy-button:hover,
.policy-button.active:hover,
.ac-primary-actions button:hover {
  color: #fff;
  background: var(--orange-dark);
  border-color: var(--orange-dark);
}
.policy-button:hover small,
.policy-button.active:hover small { color: #fff; }
.demo-run:hover,
.ac-primary-actions button:first-child:hover {
  color: #fff !important;
  background: var(--orange-dark) !important;
  border-color: var(--orange-dark) !important;
}
.move-palette button:hover span { color: #fff; }

/* Hero artwork: a large, rotating wireframe trefoil. */
.hero { display: grid; grid-template-columns: minmax(0,.95fr) minmax(30rem,1.05fr); align-items: center; gap: clamp(3rem,5vw,6rem); max-width: 1320px; }
.hero-copy { max-width: 620px; }
.hero-intro { max-width: 620px; padding-left: 0; }
.hero-visual { --rx: 0deg; --ry: 0deg; position: relative; aspect-ratio: 1; min-height: 0; overflow: hidden; color: var(--ink); background: var(--warm); border: 1px solid var(--ink); box-shadow: 14px 14px 0 var(--orange); transform: perspective(1200px) rotateX(var(--rx)) rotateY(var(--ry)); transition: transform .2s ease-out; }
.hero-visual::before { content: none; }
#trefoil-canvas { display: block; width: 100%; height: 100%; }
@media (max-width: 1100px) {
  .hero { grid-template-columns: minmax(0,1fr) minmax(24rem,.9fr); gap: 2.5rem; }
}

@media (max-width: 780px) {
  .hero { display: block; }
  .hero-visual { width: min(100%, 34rem); margin: 4rem 0 0 1rem; box-shadow: 9px 9px 0 var(--orange); }
}
