:root {
  --ink: #060606;
  --paper: #e8e8e4;
  --muted: #9b9b96;
  --line: rgba(232, 232, 228, 0.22);
  --signal: #ff3026;
  --ease: cubic-bezier(0.77, 0, 0.18, 1);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--ink); }
body {
  margin: 0;
  overflow-x: hidden;
  background: var(--ink);
  color: var(--paper);
  font-family: "Helvetica Neue", "Arial Narrow", Arial, sans-serif;
  font-size: 16px;
  line-height: 1.35;
  cursor: none;
}
a, button { color: inherit; cursor: none; }
a { text-decoration: none; }
button { font: inherit; }
::selection { background: var(--signal); color: var(--paper); }

.field { position: fixed; inset: 0; width: 100%; height: 100%; z-index: 0; opacity: 0; transition: opacity 1.2s ease; }
.is-ready .field { opacity: 1; }
.grain {
  position: fixed; inset: -50%; z-index: 2; pointer-events: none; opacity: 0.055;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 220 220' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.8'/%3E%3C/svg%3E");
  animation: grain 0.18s steps(2) infinite;
}
@keyframes grain { 0%{transform:translate(0,0)} 25%{transform:translate(3%,4%)} 50%{transform:translate(-4%,2%)} 75%{transform:translate(2%,-4%)} 100%{transform:translate(-2%,3%)} }

.boot {
  position: fixed; inset: 0; z-index: 1000; display: grid; align-content: end; gap: 20px;
  padding: 22px 28px; background: var(--paper); color: var(--ink); transition: transform 1s var(--ease);
}
.is-ready .boot { transform: translateY(-102%); }
.boot__rule { height: 1px; background: var(--ink); transform-origin: left; animation: boot-rule 1.1s ease both; }
.boot__copy { display: flex; justify-content: space-between; font-size: clamp(1.1rem, 2.3vw, 2rem); letter-spacing: -0.04em; }
.boot__count { position: absolute; right: 28px; top: 20px; font: 12px/1 monospace; }
@keyframes boot-rule { from{transform:scaleX(0)} to{transform:scaleX(1)} }

.cursor {
  position: fixed; left: 0; top: 0; width: 38px; height: 38px; border: 1px solid rgba(232,232,228,.75);
  border-radius: 50%; pointer-events: none; z-index: 900; transform: translate(-50%, -50%);
  mix-blend-mode: difference; transition: width .25s ease, height .25s ease, background .25s ease, border-color .25s ease;
}
.cursor span { position:absolute; inset: calc(50% - 2px); width:4px; height:4px; background: var(--paper); border-radius: 50%; }
.cursor.is-active { width: 68px; height: 68px; background: rgba(255,255,255,.15); border-color: var(--paper); }
.scroll-progress { position: fixed; left: 0; top: 0; height: 2px; width: 0; background: var(--signal); z-index: 950; }

.site-header {
  position: fixed; z-index: 20; top: 0; left: 0; right: 0; display: grid; grid-template-columns: 1fr auto 1fr;
  align-items: center; padding: 20px 28px; mix-blend-mode: difference; font: 600 11px/1.2 monospace; letter-spacing: .08em;
}
.wordmark { justify-self: start; display: inline-flex; align-items: center; gap: 10px; }
.wordmark i { width: 6px; height: 6px; background: var(--signal); border-radius: 50%; box-shadow: 0 0 14px var(--signal); }
.header-meta { display: flex; gap: 28px; color: rgba(232,232,228,.58); }
.menu-toggle { justify-self: end; display:flex; align-items:center; gap:10px; padding:0; border:0; background:none; }
.menu-toggle b { position:relative; width:18px; height:8px; border-top:1px solid; border-bottom:1px solid; transition: transform .4s var(--ease); }
.menu-toggle[aria-expanded="true"] b { transform: rotate(90deg); }

.site-menu {
  position: fixed; inset: 0; z-index: 15; display: flex; flex-direction: column; justify-content: center;
  padding: 10vh 10vw; background: rgba(6,6,6,.94); backdrop-filter: blur(22px); transform: translateY(-101%); transition: transform .8s var(--ease);
}
.site-menu.is-open { transform: translateY(0); }
.site-menu__meta { position:absolute; left:28px; top:90px; font:11px monospace; color:var(--muted); }
.site-menu a { width:max-content; font-size:clamp(3rem,9vw,9rem); line-height:.86; letter-spacing:-.075em; transition: color .25s ease, transform .4s var(--ease); }
.site-menu a span { display:inline-block; width:4ch; font:11px monospace; letter-spacing:0; color:var(--muted); vertical-align:middle; }
.site-menu a:hover { color:var(--signal); transform:translateX(2vw); }
.site-menu p { position:absolute; right:28px; bottom:22px; max-width:330px; text-align:right; color:var(--muted); font:11px/1.5 monospace; text-transform:uppercase; }

main, .site-header { opacity: 0; transition: opacity .8s ease .45s; }
.is-ready main, .is-ready .site-header { opacity: 1; }
main { position: relative; z-index: 3; }

.hero { position:relative; min-height:100svh; display:flex; flex-direction:column; justify-content:center; padding:110px 28px 34px; overflow:hidden; }
.hero::after { content:""; position:absolute; left:28px; right:28px; bottom:0; height:1px; background:var(--line); }
.hero__eyebrow { display:flex; justify-content:space-between; margin-bottom:8vh; font:10px/1.2 monospace; letter-spacing:.12em; color:var(--muted); }
.hero__title { margin:0; width:100%; font-size:clamp(4.5rem,13vw,13.5rem); line-height:.74; letter-spacing:-.085em; font-weight:700; text-transform:uppercase; }
.title-line { display:block; overflow:hidden; padding-right:.08em; }
.title-line > span { display:block; transform:translateY(110%); transition: transform 1.1s var(--ease); }
.is-ready .title-line > span { transform:translateY(0); }
.is-ready .title-line:nth-child(2) > span { transition-delay:.09s; }
.is-ready .title-line:nth-child(3) > span { transition-delay:.18s; }
.title-line--offset { text-align:right; padding-right:10vw; color:transparent; -webkit-text-stroke:1px var(--paper); }
.title-line--italic { font-family:Georgia, "Times New Roman", serif; font-style:italic; font-weight:400; letter-spacing:-.08em; }
.hero__footer { align-self:flex-end; width:min(700px,58vw); margin-top:7vh; display:grid; grid-template-columns:1fr auto; align-items:end; gap:50px; }
.hero__footer p { margin:0; max-width:530px; font-size:clamp(1rem,1.35vw,1.3rem); letter-spacing:-.025em; }
.text-link { display:flex; gap:28px; align-items:center; padding-bottom:7px; border-bottom:1px solid var(--paper); white-space:nowrap; font:10px monospace; letter-spacing:.1em; }
.text-link i { color:var(--signal); font-style:normal; font-size:18px; }
.hero__axis { position:absolute; left:28px; bottom:34px; display:flex; align-items:center; gap:14px; writing-mode:vertical-rl; transform:rotate(180deg); font:9px monospace; letter-spacing:.15em; color:var(--muted); }
.hero__axis i { width:1px; height:46px; background:var(--line); }
.hero__axis b { color:var(--paper); font-weight:400; }

.hero--identity { display:grid; grid-template-rows:auto auto 1fr; justify-content:stretch; align-content:start; }
.hero--identity .hero__eyebrow { margin-bottom:3.5vh; }
.hero__title--identity { width:94%; font-size:clamp(6.5rem,min(17vw,21vh),19rem); line-height:.63; letter-spacing:-.095em; }
.title-line--name { padding-right:4vw; text-align:right; font-family:Georgia,"Times New Roman",serif; font-style:italic; font-weight:400; }
.hero__identity-footer { align-self:end; display:grid; grid-template-columns:.7fr 1.3fr; gap:8vw; width:100%; margin-top:4vh; padding-left:7vw; }
.hero__thesis,.hero__profile { padding-top:14px; border-top:1px solid var(--line); }
.hero__thesis > span { font:9px/1 monospace; letter-spacing:.11em; color:var(--muted); }
.hero__thesis p { margin:2.5vh 0 0; font-size:clamp(1.6rem,2.7vw,3.1rem); line-height:.92; letter-spacing:-.055em; }
.hero__thesis em { color:var(--signal); font-family:Georgia,"Times New Roman",serif; font-weight:400; }
.hero__intro { max-width:760px; margin:0; font-size:clamp(1rem,1.35vw,1.25rem); line-height:1.35; letter-spacing:-.025em; text-wrap:balance; }
.hero__intro strong { font-weight:600; color:#fff; }
.hero__facts { display:grid; gap:0; margin:3vh 0 0; border-top:1px solid var(--line); }
.hero__facts > div { display:grid; grid-template-columns:100px 1fr; gap:20px; padding:9px 0 8px; border-bottom:1px solid var(--line); }
.hero__facts dt,.hero__facts dd { margin:0; font:9px/1.35 monospace; letter-spacing:.07em; }
.hero__facts dt { color:var(--signal); }
.hero__facts dd { color:#bdbdb8; }
.hero__links { display:flex; flex-wrap:wrap; gap:8px; margin-top:2.2vh; }
.hero__links a { padding:8px 11px 7px; border:1px solid var(--line); border-radius:100%; font:9px/1 monospace; letter-spacing:.08em; transition:background .2s ease,color .2s ease,border-color .2s ease; }
.hero__links a:hover,.hero__links a:focus-visible { background:var(--paper); color:var(--ink); border-color:var(--paper); }

.research-preview { min-height:100vh; padding:110px 28px 120px; background:linear-gradient(180deg,rgba(6,6,6,.35),rgba(6,6,6,.94)); }
.section-kicker { display:flex; justify-content:space-between; padding-bottom:14px; border-bottom:1px solid var(--line); font:10px monospace; letter-spacing:.1em; color:var(--muted); }
.research-preview__grid { display:grid; grid-template-columns: 1fr 1.35fr; gap:8vw; margin-top:13vh; }
.research-preview h2 { margin:0; font-size:clamp(2.9rem,6vw,7rem); line-height:.89; letter-spacing:-.065em; font-weight:500; }
.research-preview h2 em { font-family:Georgia,serif; font-weight:400; color:var(--muted); }
.project-teaser { align-self:end; display:grid; grid-template-columns:50px 1fr auto; gap:28px; padding:25px 0; border-top:1px solid var(--paper); border-bottom:1px solid var(--line); }
.project-teaser__index, .project-teaser__type { font:10px monospace; letter-spacing:.08em; color:var(--muted); }
.project-teaser__type { margin:0 0 20px; }
.project-teaser h3 { margin:0; font-size:clamp(3.2rem,8vw,8rem); line-height:.8; letter-spacing:-.075em; }
.project-teaser > div > p:last-child { max-width:520px; margin:24px 0 0; color:#bdbdb8; font-size:.95rem; }
.project-teaser__metric { text-align:right; align-self:end; }
.project-teaser__metric strong { display:block; color:var(--signal); font-size:clamp(2.5rem,5vw,5.5rem); line-height:.75; letter-spacing:-.08em; }
.project-teaser__metric span { display:block; margin-top:11px; font:9px/1.25 monospace; letter-spacing:.08em; color:var(--muted); }
.reveal { opacity:0; transform:translateY(28px); transition:opacity .9s ease, transform 1s var(--ease); }
.reveal.is-visible { opacity:1; transform:none; }

.research-intro { align-self:end; max-width:560px; margin:0 0 2px; color:#bdbdb8; font-size:clamp(1.05rem,1.45vw,1.35rem); letter-spacing:-.025em; }
.project-list { margin-top:18vh; }
.project-card { padding:12vh 0; border-top:1px solid var(--line); }
.project-card:last-child { border-bottom:1px solid var(--line); }
.project-card__trigger { display:grid; grid-template-columns:1.08fr .92fr; gap:clamp(35px,7vw,110px); width:100%; padding:0; border:0; background:none; text-align:left; }
.project-card--reverse .project-card__media { order:2; }
.project-card__media { position:relative; aspect-ratio:1.26/1; overflow:hidden; background:#0c0c0c; clip-path:polygon(0 0,96% 0,100% 9%,100% 100%,4% 100%,0 91%); }
.project-card__media::after { content:""; position:absolute; inset:0; border:1px solid rgba(232,232,228,.2); pointer-events:none; clip-path:inherit; }
.project-card__media img { width:100%; height:100%; object-fit:cover; filter:saturate(.9) contrast(1.08); transform:scale(1.025); transition:transform 1.1s var(--ease), filter .7s ease; }
.project-card__trigger:hover .project-card__media img { transform:scale(1.08); filter:saturate(1.1) contrast(1.16); }
.project-card__media-meta { position:absolute; z-index:2; left:14px; right:14px; bottom:12px; display:flex; justify-content:space-between; color:rgba(232,232,228,.78); font:9px/1 monospace; letter-spacing:.09em; mix-blend-mode:difference; }
.project-card__body { display:grid; grid-template-columns:55px 1fr; align-content:start; }
.project-card__index { font:10px/1 monospace; color:var(--muted); }
.project-card__copy { grid-column:2; }
.project-card__type { margin:0 0 4.2vh; font:10px/1.4 monospace; letter-spacing:.08em; color:var(--muted); }
.project-card h3 { margin:0; font-size:clamp(4rem,8.7vw,10rem); line-height:.72; letter-spacing:-.09em; font-weight:600; transition:color .25s ease; }
.project-card__trigger:hover h3 { color:var(--signal); }
.project-card__copy > p:last-child { max-width:540px; margin:4.5vh 0 0; color:#bdbdb8; font-size:clamp(1rem,1.35vw,1.25rem); letter-spacing:-.025em; }
.project-card__metrics { grid-column:2; display:flex; flex-wrap:wrap; gap:12px 28px; margin-top:8vh; padding-top:18px; border-top:1px solid var(--line); }
.project-card__metrics span { font:9px/1.45 monospace; letter-spacing:.08em; color:var(--muted); }
.project-card__metrics strong { color:var(--paper); font-weight:400; }
.project-card__action { grid-column:2; display:flex; justify-content:space-between; margin-top:5vh; padding:13px 0 9px; border-bottom:1px solid var(--paper); font:10px/1 monospace; letter-spacing:.12em; }
.project-card__action i { color:var(--signal); font-size:20px; font-style:normal; transition:transform .3s ease; }
.project-card__trigger:hover .project-card__action i { transform:rotate(45deg); }

.approach { position:relative; padding:120px 28px 150px; background:var(--paper); color:var(--ink); }
.approach .section-kicker { border-color:rgba(6,6,6,.22); color:#65655f; }
.approach__lead { display:grid; grid-template-columns:1.05fr .95fr; gap:8vw; margin-top:14vh; }
.approach__lead h2, .publications > h2 { margin:0; font-size:clamp(4rem,9vw,10.5rem); line-height:.76; letter-spacing:-.085em; font-weight:600; }
.approach__lead h2 em, .publications > h2 em { font-family:Georgia,serif; font-weight:400; }
.approach__statement { align-self:end; max-width:700px; margin:0 0 .7rem; font-size:clamp(1.25rem,2.05vw,2.1rem); line-height:1.18; letter-spacing:-.045em; }
.research-question { display:grid; grid-template-columns:.34fr 1fr; gap:5vw; margin:24vh 0 0; padding:26px 0 20vh; border-top:1px solid rgba(6,6,6,.25); border-bottom:1px solid rgba(6,6,6,.25); }
.research-question span { font:10px/1 monospace; letter-spacing:.12em; color:#686861; }
.research-question p { margin:0; max-width:1180px; font:italic 400 clamp(2.6rem,6.5vw,7.4rem)/.97 Georgia,serif; letter-spacing:-.055em; }
.method-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:0; margin:18vh 0 0; padding:0; list-style:none; border-top:1px solid rgba(6,6,6,.25); }
.method-grid li { min-height:315px; padding:18px 22px 24px; border-right:1px solid rgba(6,6,6,.25); }
.method-grid li:first-child { border-left:1px solid rgba(6,6,6,.25); }
.method-grid li > span { display:block; margin-bottom:11vh; font:10px monospace; color:#77776f; }
.method-grid strong { display:block; font-size:clamp(1.6rem,2.4vw,2.8rem); letter-spacing:-.05em; }
.method-grid p { max-width:255px; color:#686861; font-size:.9rem; }
.about-grid { display:grid; grid-template-columns:.3fr .75fr 1fr; gap:7vw; margin-top:20vh; padding-top:25px; border-top:1px solid rgba(6,6,6,.25); }
.about-grid__label { margin:0; font:10px monospace; color:#686861; }
.about-grid__copy p { margin:0 0 1.4em; font-size:clamp(1.05rem,1.4vw,1.3rem); letter-spacing:-.025em; }
.interest-cloud { display:flex; flex-wrap:wrap; align-content:flex-start; gap:8px; }
.interest-cloud span { padding:10px 12px 8px; border:1px solid rgba(6,6,6,.35); border-radius:100%; font:9px/1 monospace; letter-spacing:.06em; transition:background .25s ease,color .25s ease; }
.interest-cloud span:hover { background:var(--signal); color:var(--paper); border-color:var(--signal); }

.publications { padding:120px 28px 150px; background:#0a0a0a; }
.publications > h2 { margin-top:15vh; }
.publications > h2 em { color:#777771; }
.publication-list { margin-top:18vh; }
.publication { display:grid; grid-template-columns:90px minmax(0,1fr) auto; gap:30px; align-items:start; padding:30px 0 45px; border-top:1px solid var(--line); }
.publication:last-child { border-bottom:1px solid var(--line); }
.publication__number,.publication__venue { font:10px/1.3 monospace; letter-spacing:.08em; color:var(--muted); }
.publication__venue { margin:0 0 18px; color:var(--signal); }
.publication h3 { max-width:1150px; margin:0; font-size:clamp(1.55rem,3vw,3.5rem); line-height:1.02; letter-spacing:-.05em; font-weight:500; }
.publication__main > p:last-child { margin:22px 0 0; color:var(--muted); font-size:.95rem; }
.publication__main strong { color:var(--paper); }
.publication__link { display:flex; gap:22px; align-items:center; padding-bottom:8px; border-bottom:1px solid var(--paper); font:10px monospace; letter-spacing:.1em; }
.publication__link span { color:var(--signal); }
.research-links { display:flex; justify-content:flex-end; gap:9px; margin-top:7vh; }
.research-links a { padding:12px 16px 10px; border:1px solid var(--line); border-radius:100%; font:9px monospace; letter-spacing:.08em; transition:background .25s ease,color .25s ease; }
.research-links a:hover { background:var(--paper); color:var(--ink); }

.contact { position:relative; min-height:100svh; display:flex; flex-direction:column; justify-content:space-between; padding:95px 28px 38px; overflow:hidden; background:var(--signal); color:var(--ink); }
.contact__signal { position:absolute; left:50%; top:50%; width:80vmax; height:80vmax; border:1px solid rgba(6,6,6,.22); border-radius:50%; transform:translate(-50%,-50%); }
.contact__signal::before,.contact__signal::after { content:""; position:absolute; inset:12%; border:1px solid rgba(6,6,6,.18); border-radius:50%; }
.contact__signal::after { inset:29%; background:radial-gradient(circle at 35% 25%,rgba(232,232,228,.55),transparent 40%),var(--ink); box-shadow:0 0 110px rgba(6,6,6,.45); }
.contact__label { position:relative; z-index:1; margin:0; font:10px monospace; letter-spacing:.1em; }
.contact h2 { position:relative; z-index:1; margin:auto 0; font-size:clamp(5rem,15vw,16rem); line-height:.7; letter-spacing:-.1em; font-weight:650; }
.contact h2 em { display:block; text-align:right; color:var(--paper); font-family:Georgia,serif; font-weight:400; }
.contact__footer { position:relative; z-index:1; display:flex; justify-content:space-between; align-items:end; gap:30px; }
.contact__footer p { max-width:480px; margin:0; font-size:.95rem; }
.contact__footer a { display:flex; gap:45px; padding:15px 0 10px; border-bottom:1px solid var(--ink); font:12px monospace; letter-spacing:.08em; }

.footer { display:flex; justify-content:space-between; align-items:center; padding:16px 28px; background:var(--ink); color:var(--muted); font:9px monospace; letter-spacing:.1em; }
.easter-egg { border:0; background:none; color:var(--signal); padding:5px; font:9px monospace; letter-spacing:.1em; }
.transmission { position:fixed; z-index:1100; left:50%; bottom:24px; display:flex; align-items:center; gap:30px; padding:13px 16px 11px; background:var(--paper); color:var(--ink); transform:translate(-50%,calc(100% + 50px)); transition:transform .55s var(--ease); }
.transmission.is-visible { transform:translate(-50%,0); }
.transmission span { font:italic 1.05rem Georgia,serif; }
.transmission i { font:8px monospace; color:#686861; font-style:normal; letter-spacing:.08em; }

.project-dialog { max-width:none; width:100%; height:100%; margin:0; padding:0; border:0; background:transparent; color:var(--paper); overflow:hidden; }
.project-dialog::backdrop { background:rgba(0,0,0,.62); backdrop-filter:blur(8px); }
.project-dialog__surface { width:100%; height:100%; background:#090909; transform:translateY(100%); transition:transform .72s var(--ease); }
.project-dialog.is-entered .project-dialog__surface { transform:translateY(0); }
.project-dialog.is-closing .project-dialog__surface { transform:translateY(100%); }
.project-dialog__header { position:absolute; z-index:4; top:0; left:0; right:0; display:flex; justify-content:space-between; padding:20px 28px; mix-blend-mode:difference; font:10px monospace; letter-spacing:.09em; }
.project-dialog__close { display:flex; align-items:center; gap:12px; padding:0; border:0; background:none; color:var(--paper); font:10px monospace; letter-spacing:.09em; }
.project-dialog__close i { position:relative; width:22px; height:22px; border:1px solid rgba(232,232,228,.5); border-radius:50%; }
.project-dialog__close i::before,.project-dialog__close i::after { content:""; position:absolute; left:5px; right:5px; top:10px; height:1px; background:var(--paper); transform:rotate(45deg); }
.project-dialog__close i::after { transform:rotate(-45deg); }
.project-dialog__scroll { height:100%; overflow-y:auto; overscroll-behavior:contain; }
.project-dialog__hero { min-height:82vh; display:flex; flex-direction:column; justify-content:flex-end; padding:110px 28px 7vh; background:linear-gradient(180deg,#0b0b0b,#080808); }
.project-dialog__meta { margin:0 0 6vh; font:10px monospace; letter-spacing:.09em; color:var(--muted); }
.project-dialog__hero h2 { max-width:1550px; margin:0; font-size:clamp(4.3rem,11vw,13rem); line-height:.73; letter-spacing:-.09em; text-transform:uppercase; }
.project-dialog__hero h2 small { display:block; max-width:900px; margin-top:4vh; font:400 clamp(1rem,1.7vw,1.5rem)/1.2 "Helvetica Neue",Arial,sans-serif; letter-spacing:-.025em; text-transform:none; color:var(--muted); }
.project-dialog__summary { align-self:flex-end; max-width:660px; margin:7vh 0 0; font-size:clamp(1.1rem,1.65vw,1.55rem); letter-spacing:-.035em; }
.project-dialog__visual { width:calc(100% - 56px); margin:0 28px; aspect-ratio:16/8; overflow:hidden; background:#111; }
.project-dialog__visual img { width:100%; height:100%; object-fit:cover; }
.project-dialog__body { display:grid; grid-template-columns:1fr 1fr; gap:9vw; padding:14vh max(28px,9vw); }
.project-dialog__body > div { border-top:1px solid var(--line); padding-top:18px; }
.project-dialog__body span { font:9px monospace; letter-spacing:.1em; color:var(--signal); }
.project-dialog__body p { margin:5vh 0 0; font-size:clamp(1.1rem,1.7vw,1.65rem); line-height:1.28; letter-spacing:-.035em; }
.project-dialog__metrics { display:grid; grid-template-columns:repeat(3,1fr); margin:0 28px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.project-dialog__metric { padding:50px 20px; border-right:1px solid var(--line); }
.project-dialog__metric:last-child { border-right:0; }
.project-dialog__metric strong { display:block; color:var(--signal); font-size:clamp(3rem,6vw,7rem); line-height:.8; letter-spacing:-.08em; }
.project-dialog__metric span { display:block; margin-top:18px; font:10px monospace; letter-spacing:.08em; color:var(--muted); text-transform:uppercase; }
.project-dialog__links { display:flex; justify-content:flex-end; gap:10px; padding:10vh 28px; }
.project-dialog__links a { padding:13px 17px 11px; border:1px solid var(--line); border-radius:100%; font:10px monospace; letter-spacing:.08em; }
.project-dialog__links a:hover { background:var(--paper); color:var(--ink); }

noscript { position:fixed; left:20px; bottom:20px; z-index:1000; background:var(--paper); color:var(--ink); padding:12px; }

@media (max-width: 800px) {
  body { cursor:auto; }
  a,button { cursor:pointer; }
  .cursor { display:none; }
  .site-header { padding:16px; grid-template-columns:1fr 1fr; }
  .header-meta { display:none; }
  .hero { min-height:100svh; padding:100px 16px 28px; }
  .hero::after { left:16px; right:16px; }
  .hero__eyebrow { flex-direction:column; gap:7px; margin-bottom:12vh; }
  .hero__eyebrow { position:relative; z-index:2; color:#c1c1bb; }
  .hero__title { position:relative; z-index:2; font-size:15vw; line-height:.82; letter-spacing:-.09em; }
  .title-line--offset { padding-right:0; }
  .hero__footer { position:relative; z-index:2; align-self:stretch; width:100%; margin-top:9vh; padding:17px 0; grid-template-columns:1fr; gap:24px; background:linear-gradient(90deg,rgba(6,6,6,.86),rgba(6,6,6,.16)); }
  .hero__footer p { max-width:92%; font-size:1rem; text-shadow:0 1px 12px #000; }
  .text-link { width:max-content; }
  .hero__axis { display:none; }
  .hero--identity { display:grid; grid-template-rows:auto auto 1fr; padding-top:88px; }
  .hero--identity .hero__eyebrow { margin-bottom:4.5vh; }
  .hero__title--identity { width:100%; font-size:28vw; line-height:.64; letter-spacing:-.1em; }
  .title-line--name { padding-right:0; }
  .hero__identity-footer { grid-template-columns:1fr; align-self:end; gap:3vh; margin-top:5vh; padding-left:0; }
  .hero__thesis { display:grid; grid-template-columns:110px 1fr; gap:16px; align-items:start; }
  .hero__thesis p { margin:0; font-size:1.55rem; }
  .hero__intro { max-width:100%; font-size:.96rem; line-height:1.42; }
  .hero__facts { margin-top:2vh; }
  .hero__facts > div { grid-template-columns:80px 1fr; gap:10px; padding:7px 0 6px; }
  .hero__facts dt,.hero__facts dd { font-size:8px; }
  .hero__links { margin-top:1.7vh; gap:6px; }
  .hero__links a { padding:7px 9px 6px; font-size:8px; }
  .research-preview { padding:90px 16px; }
  .section-kicker span:last-child { display:none; }
  .research-preview__grid { grid-template-columns:1fr; gap:15vh; }
  .project-teaser { grid-template-columns:34px 1fr; gap:14px; }
  .project-teaser__metric { grid-column:2; text-align:left; margin-top:20px; }
  .project-teaser h3 { font-size:18vw; }
  .site-menu { padding:14vh 16px; }
  .site-menu a span { width:3ch; }
  .project-list { margin-top:12vh; }
  .project-card { padding:10vh 0; }
  .project-card__trigger { grid-template-columns:1fr; gap:6vh; }
  .project-card--reverse .project-card__media { order:0; }
  .project-card__body { grid-template-columns:36px 1fr; }
  .project-card h3 { font-size:18vw; line-height:.77; }
  .project-card__copy > p:last-child { font-size:1rem; }
  .project-card__metrics { gap:10px 16px; margin-top:6vh; }
  .approach,.publications { padding:90px 16px 100px; }
  .approach__lead { grid-template-columns:1fr; gap:10vh; margin-top:11vh; }
  .approach__lead h2,.publications > h2 { font-size:17vw; }
  .approach__statement { font-size:1.25rem; }
  .research-question { grid-template-columns:1fr; gap:10vh; margin-top:16vh; padding-bottom:14vh; }
  .research-question p { font-size:12vw; }
  .method-grid { grid-template-columns:1fr 1fr; margin-top:13vh; }
  .method-grid li { min-height:250px; }
  .method-grid li:nth-child(3) { border-left:1px solid rgba(6,6,6,.25); }
  .method-grid li > span { margin-bottom:7vh; }
  .about-grid { grid-template-columns:1fr; gap:8vh; margin-top:14vh; }
  .publication-list { margin-top:12vh; }
  .publication { grid-template-columns:38px 1fr; gap:13px; }
  .publication__link { grid-column:2; justify-self:start; margin-top:18px; }
  .publication h3 { font-size:1.65rem; }
  .research-links { justify-content:flex-start; flex-wrap:wrap; }
  .contact { min-height:92svh; padding:82px 16px 25px; }
  .contact h2 { font-size:20vw; line-height:.73; }
  .contact__footer { flex-direction:column; align-items:stretch; }
  .contact__footer a { justify-content:space-between; font-size:10px; }
  .footer { padding:14px 16px; }
  .footer span:last-child { display:none; }
  .project-dialog__header { padding:16px; }
  .project-dialog__hero { min-height:76svh; padding:100px 16px 6vh; }
  .project-dialog__hero h2 { font-size:17vw; }
  .project-dialog__summary { font-size:1.05rem; }
  .project-dialog__visual { width:calc(100% - 32px); margin:0 16px; aspect-ratio:1/1; }
  .project-dialog__body { grid-template-columns:1fr; gap:9vh; padding:11vh 16px; }
  .project-dialog__metrics { grid-template-columns:1fr; margin:0 16px; }
  .project-dialog__metric { padding:35px 0; border-right:0; border-bottom:1px solid var(--line); }
  .project-dialog__metric:last-child { border-bottom:0; }
  .project-dialog__links { justify-content:flex-start; flex-wrap:wrap; padding:8vh 16px; }
  .transmission { width:calc(100% - 32px); justify-content:space-between; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *, *::before, *::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
  .grain, .cursor { display:none; }
}
