:root {
  --bg:#fff;
  --ink:#181918;
  --muted:#656863;
  --line:#d5d8d2;
  --strong-line:#a4aaa0;
  --accent:#168c20;
  --accent-fill:#ddf7d9;
  --surface:#f5f6f3;
  --mono:'SFMono-Regular',Consolas,'Liberation Mono',monospace;
  color-scheme:light;
}
:root[data-theme=dark] {
  --bg:#000;
  --ink:#eee;
  --muted:#aaa;
  --line:#333;
  --strong-line:#666;
  --accent:#a2ef86;
  --accent-fill:#293e21;
  --surface:#111;
  color-scheme:dark;
}
* {
  box-sizing:border-box;
}
html {
  scroll-behavior:smooth;
  scroll-padding-top:28px;
}
body {
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font:15px/1.55 Arial,Helvetica,sans-serif;
  -webkit-font-smoothing:antialiased;
}
button,a {
  -webkit-tap-highlight-color:transparent;
}
a {
  color:inherit;
  text-decoration:none;
  text-underline-offset:4px;
}
a:hover {
  text-decoration:underline;
}
button {
  font:inherit;
  color:inherit;
  cursor:pointer;
  background:none;
  border:0;
  padding:0;
}
button:disabled {
  cursor:default;
  opacity:.35;
}
button:hover:not(:disabled) {
  color:var(--accent);
}
:focus-visible {
  outline:2px solid var(--accent);
  outline-offset:5px;
}
::selection {
  background:var(--accent-fill);
  color:var(--ink);
}
p,h1,h2,h3 {
  margin:0;
}
h1,h2,h3 {
  font-weight:400;
}
.mono {
  font-family:var(--mono);
  font-size:11px;
  line-height:1.5;
}
.skip-link {
  position:fixed;
  top:-80px;
  left:20px;
  z-index:100;
  background:var(--bg);
  padding:12px;
}
.skip-link:focus {
  top:10px;
}
.page-shell {
  max-width:1680px;
  margin:0 auto;
  display:grid;
  grid-template-columns:310px minmax(0,1fr);
}
.sidebar {
  height:100svh;
  position:sticky;
  top:0;
  border-right:1px solid var(--line);
  padding:34px 30px 22px;
  display:flex;
  flex-direction:column;
  overflow:auto;
}
.name {
  font-size:37px;
  line-height:1.06;
  letter-spacing:-1.8px;
  display:inline-block;
}
.name:hover {
  text-decoration:none;
}
.name-dot {
  color:var(--accent);
}
.role {
  font-family:var(--mono);
  font-size:10px;
  letter-spacing:.025em;
  line-height:1.6;
  margin-top:18px;
}
.intro {
  font-size:16px;
  line-height:1.55;
  margin-top:26px;
  max-width:25ch;
}
.intro-secondary {
  font-size:12px;
  color:var(--muted);
  line-height:1.75;
  margin-top:14px;
}
.site-nav {
  margin-top:32px;
}
.site-nav a {
  border-top:1px solid var(--line);
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:10px 0;
  font-size:13px;
}
.site-nav a:last-child {
  border-bottom:1px solid var(--line);
}
.site-nav a:hover {
  text-decoration:none;
  color:var(--accent);
}
.nav-mark {
  opacity:0;
}
.site-nav a[aria-current] .nav-mark,.site-nav a:hover .nav-mark {
  opacity:1;
}
.site-nav a[aria-current] {
  color:var(--accent);
}
.sidebar-bottom {
  margin-top:auto;
  padding-top:30px;
}
.social-links {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:6px;
  font-family:var(--mono);
  font-size:10px;
}
.theme-control {
  display:flex;
  gap:10px;
  border-top:1px solid var(--line);
  padding-top:14px;
  margin-top:18px;
  font-family:var(--mono);
  font-size:10px;
}
.theme-control button[aria-pressed=true] {
  text-decoration:underline;
  text-underline-offset:5px;
}
.theme-control button[aria-pressed=false] {
  color:var(--muted);
}
.local-note {
  margin-left:auto;
  color:var(--muted);
}
main {
  min-width:0;
  padding:0 44px;
}
.atlas-section {
  padding-top:30px;
  min-height:0;
  display:flex;
  flex-direction:column;
}
.atlas-heading {
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  gap:20px;
  margin-bottom:26px;
}
.atlas-heading h1 {
  font:42px/1.15 Georgia,'Times New Roman',serif;
  letter-spacing:-1.5px;
}
.atlas-heading p {
  font-size:12px;
  color:var(--muted);
  margin-top:7px;
}
.map-reset {
  white-space:nowrap;
  color:var(--muted);
}
.map-instructions {
  flex-shrink:0;
  min-height:40px;
  padding:10px 0;
  border-bottom:1px solid var(--strong-line);
  font:10px/1.5 var(--mono);
  color:var(--muted);
}
.map-stage {
  position:relative;
  height:clamp(300px,43svh,440px);
  min-height:300px;
  margin-top:8px;
}
#work-map {
  display:block;
  width:100%;
  height:100%;
}
#map-labels {
  position:absolute;
  inset:0;
  pointer-events:none;
}
.map-label {
  pointer-events:auto;
  cursor:help;
  padding:5px 0;
  position:absolute;
  white-space:nowrap;
  font:10px/1.2 var(--mono);
  color:var(--muted);
  transform:translate(-50%,-50%);
  text-transform:uppercase;
}
.row-label {
  transform:translate(-100%,-50%);
}
.cell-target {
  position:absolute;
  pointer-events:auto;
  transform:translate(-50%,-50%);
  background:transparent;
  clip-path:polygon(14% 0,100% 0,86% 100%,0 100%);
}
.cell-target:focus-visible {
  outline:0;
  background:color-mix(in srgb,var(--accent) 25%,transparent);
}
.cell-target:disabled {
  opacity:1;
}
.map-caption {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  font:10px/1.5 var(--mono);
  color:var(--muted);
  padding:10px 0 14px;
  min-height:42px;
}
.text-button {
  white-space:nowrap;
}
.evidence {
  border-bottom:1px solid var(--strong-line);
  padding:22px 0;
  display:flex;
  justify-content:space-between;
  gap:24px;
  min-height:172px;
}
.evidence-copy {
  max-width:680px;
}
.evidence-meta {
  color:var(--muted);
  font-size:10px;
}
.evidence-meta:before {
  content:'';
  display:inline-block;
  width:6px;
  height:6px;
  border-radius:50%;
  background:var(--accent);
  margin-right:8px;
}
.evidence h2 {
  font:24px/1.2 Georgia,serif;
  letter-spacing:-.4px;
  margin:7px 0;
}
.evidence p {
  font-size:12px;
  color:var(--muted);
  max-width:70ch;
  line-height:1.6;
}
.evidence a {
  display:inline-block;
  font:10px/1.5 var(--mono);
  margin-top:10px;
}
.evidence-controls {
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  align-items:flex-end;
  min-width:70px;
  color:var(--muted);
}
.evidence-controls>div {
  display:flex;
  gap:5px;
}
.evidence-controls button {
  border:1px solid var(--line);
  width:31px;
  height:31px;
}
.map-footnote {
  display:flex;
  justify-content:space-between;
  padding:15px 0 12px;
  gap:10px;
  color:var(--muted);
  font:9px/1.5 var(--mono);
}
.map-footnote a {
  white-space:nowrap;
}
.map-fallback {
  position:absolute;
  inset:30% 15%;
  background:var(--bg);
  font-size:14px;
  z-index:2;
}
.listing {
  padding-top:58px;
  scroll-margin-top:15px;
}
.section-heading {
  border-top:1px solid var(--strong-line);
  padding-top:18px;
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:20px;
  margin-bottom:12px;
}
.section-heading h2 {
  font:32px/1.15 Georgia,serif;
  letter-spacing:-.8px;
}
.section-heading>span {
  color:var(--muted);
  font-size:10px;
  white-space:nowrap;
}
.section-intro {
  font-size:13px;
  color:var(--muted);
  margin-bottom:22px;
}
.record {
  display:grid;
  grid-template-columns:150px minmax(0,1fr);
  gap:28px;
  border-bottom:1px solid var(--line);
  padding:26px 0;
  scroll-margin-top:30px;
}
.record:target {
  background:var(--surface);
  box-shadow:-12px 0 var(--surface),12px 0 var(--surface);
}
.listing>.record:last-child,
.more-projects>.record:last-child {
  border-bottom:0;
}
.oss .record-meta h3 {
  font:13px/1.5 Arial,Helvetica,sans-serif;
  color:var(--ink);
  letter-spacing:0;
}
.oss .record-body>ul {
  margin-top:0;
}
.record-meta {
  font:10px/1.6 var(--mono);
  color:var(--muted);
}
.record h3 {
  font-size:18px;
  letter-spacing:-.3px;
  line-height:1.35;
}
.record-org {
  color:var(--muted);
  font-size:12px;
  line-height:1.5;
  margin-top:3px;
}
.record-org:empty {
  display:none;
}
.record-body>p:not(.record-org):not(.record-tools):not(.authors) {
  font-size:13px;
  line-height:1.7;
  margin-top:12px;
  color:var(--muted);
}
.record ul {
  font-size:13px;
  color:var(--muted);
  padding-left:16px;
  margin:12px 0;
  line-height:1.7;
}
.record li+li {
  margin-top:5px;
}
.record-links {
  display:flex;
  flex-wrap:wrap;
  gap:15px;
  font:10px/1.6 var(--mono);
  margin-top:13px;
  align-items:center;
}
.map-link {
  color:var(--muted);
}
.record-tools {
  font:9px/1.6 var(--mono);
  color:var(--muted);
  margin-top:12px;
}
.more-projects summary,.toolbox summary {
  list-style:none;
  border-bottom:1px solid var(--strong-line);
  padding:18px 0;
  font-size:13px;
  cursor:pointer;
  display:flex;
  justify-content:space-between;
}
.more-projects summary::-webkit-details-marker,.toolbox summary::-webkit-details-marker {
  display:none;
}
.more-projects:not([open])>summary {
  border-bottom:0;
}
details[open]>summary>span {
  transform:rotate(45deg);
}
.paper-image {
  display:block;
  width:100%;
  height:110px;
  object-fit:contain;
  margin-top:17px;
  border:1px solid var(--line);
  background:white;
  padding:6px;
}
.authors {
  font-size:11px;
  color:var(--muted);
  margin-top:9px;
}
.research h3 {
  font:21px/1.3 Georgia,serif;
}
.about-intro {
  display:grid;
  grid-template-columns:190px 1fr;
  gap:36px;
  margin:30px 0;
}
.about-intro img {
  display:block;
  width:100%;
  height:auto;
  aspect-ratio:4/5;
  object-fit:cover;
}
.about-intro h3 {
  font:30px/1.1 Georgia,serif;
  letter-spacing:-.5px;
  margin-bottom:20px;
}
.about-intro p {
  font-size:13px;
  color:var(--muted);
  line-height:1.75;
  margin-top:14px;
}
.skills-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:28px;
  padding:28px 0;
}
.skills-grid h3 {
  font-size:12px;
  margin-bottom:6px;
}
.skills-grid p {
  font:11px/1.8 var(--mono);
  color:var(--muted);
}
.contact {
  padding:80px 0;
}
.contact h2 {
  font:48px/1.05 Georgia,serif;
  letter-spacing:-1.5px;
}
.contact>p {
  color:var(--muted);
  font-size:14px;
  margin:20px 0;
}
.contact-email {
  font-size:20px;
  border-bottom:1px solid var(--ink);
  display:inline-block;
}
.contact-email:hover {
  text-decoration:none;
  color:var(--accent);
}
.contact-links {
  display:flex;
  gap:24px;
  font:11px/1.5 var(--mono);
  margin-top:30px;
}
footer {
  padding:20px 0 28px;
  border-top:1px solid var(--line);
  display:flex;
  justify-content:space-between;
  font:9px/1.5 var(--mono);
  color:var(--muted);
}
.link-preview {
  position:fixed;
  width:390px;
  max-width:calc(100vw - 28px);
  max-height:60vh;
  overflow:auto;
  z-index:50;
  background:var(--bg);
  border:1px solid var(--ink);
  box-shadow:5px 5px 0 color-mix(in srgb,var(--ink) 10%,transparent);
  font-size:13px;
}
.link-preview[hidden] {
  display:none;
}
.preview-bar {
  position:sticky;
  top:0;
  background:var(--bg);
  padding:8px 12px;
  border-bottom:1px solid var(--line);
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
}
.preview-bar>div {
  display:flex;
  align-items:center;
  gap:16px;
}
.preview-bar .mono {
  max-width:260px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:9px;
}
.preview-bar button {
  font:10px/1.5 var(--mono);
}
#preview-close {
  font-size:20px;
}
#preview-pin[aria-pressed=true] {
  color:var(--accent);
  text-decoration:underline;
}
#preview-content {
  padding:18px;
}
#preview-content h3 {
  font:22px/1.25 Georgia,serif;
  margin-bottom:10px;
}
#preview-content p {
  color:var(--muted);
  font-size:12px;
  line-height:1.7;
}
#preview-content img {
  width:100%;
  max-height:150px;
  object-fit:contain;
  margin-top:14px;
  background:white;
}
#preview-open {
  display:block;
  padding:10px 18px;
  border-top:1px solid var(--line);
  font:10px/1.5 var(--mono);
}
@media(min-width:1500px) {
  .page-shell {
    grid-template-columns:350px minmax(0,1fr);
  }
  .sidebar {
    padding:40px;
  }
  main {
    padding:0 54px;
  }
  .atlas-heading h1 {
    font-size:48px;
  }
  .map-stage {
    max-height:470px;
    height:46svh;
  }
}
@media(max-height:760px) and (min-width:901px) {
  .sidebar {
    padding-top:24px;
  }
  .name {
    font-size:31px;
  }
  .intro {
    margin-top:20px;
    font-size:14px;
  }
  .intro-secondary {
    font-size:11px;
  }
  .site-nav {
    margin-top:20px;
  }
  .site-nav a {
    padding:7px 0;
  }
  .sidebar-bottom {
    padding-top:20px;
  }
  .atlas-section {
    padding-top:24px;
  }
  .atlas-heading {
    margin-bottom:14px;
  }
  .atlas-heading h1 {
    font-size:36px;
  }
  .map-stage {
    height:300px;
  }
  .evidence {
    padding:14px 0;
    min-height:145px;
  }
  .evidence h2 {
    font-size:21px;
  }
  .map-footnote {
    padding-bottom:12px;
  }
}
@media(max-width:1100px) {
  .page-shell {
    grid-template-columns:260px minmax(0,1fr);
  }
  .sidebar {
    padding:28px 24px;
  }
  .name {
    font-size:32px;
  }
  main {
    padding:0 28px;
  }
    .record {
    grid-template-columns:110px minmax(0,1fr);
    gap:20px;
  }
  .about-intro {
    grid-template-columns:140px 1fr;
    gap:24px;
  }
  .atlas-heading h1 {
    font-size:36px;
  }
  .map-label {
    font-size:8px;
  }
}
@media(max-width:900px) {
  .page-shell {
    display:block;
  }
  .sidebar {
    height:auto;
    position:relative;
    overflow:visible;
    border-right:0;
    border-bottom:1px solid var(--line);
    padding:26px 24px;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:16px 28px;
  }
  .identity {
    grid-column:1;
  }
  .name {
    font-size:33px;
  }
  .role {
    margin-top:12px;
    font-size:9px;
  }
  .intro {
    grid-column:2;
    grid-row:1;
    margin:0;
    align-self:center;
    font-size:15px;
  }
  .intro-secondary {
    display:none;
  }
  .site-nav {
    grid-column:1/-1;
    margin:8px 0 0;
    display:flex;
    flex-wrap:wrap;
    gap:20px;
  }
  .site-nav a {
    border:0!important;
    padding:0;
    font-size:12px;
  }
  .nav-mark {
    display:none;
  }
  .sidebar-bottom {
    grid-column:1/-1;
    margin:0;
    padding:0;
    display:flex;
    justify-content:space-between;
    gap:20px;
  }
  .social-links {
    display:flex;
    gap:15px;
    align-items:center;
    font-size:9px;
  }
  .theme-control {
    border:0;
    margin:0;
    padding:0;
    font-size:9px;
  }
  .local-note {
    display:none;
  }
  main {
    padding:0 24px;
  }
  .atlas-section {
    min-height:0;
    padding-top:28px;
  }
  .map-stage {
    height:400px;
  }
  .map-label {
    font-size:9px;
  }
  .record {
    grid-template-columns:135px minmax(0,1fr);
  }
  .map-footnote {
    padding-bottom:10px;
  }
}
@media(max-width:540px) {
  body {
    font-size:14px;
  }
  .sidebar {
    padding:22px 20px;
    gap:20px 18px;
  }
  .name {
    font-size:29px;
    letter-spacing:-1.2px;
  }
  .intro {
    font-size:13px;
  }
  .role {
    font-size:8px;
    max-width:22ch;
  }
  .site-nav {
    gap:18px;
    font-size:11px;
  }
  .site-nav a {
    font-size:11px;
  }
  .sidebar-bottom {
    align-items:center;
  }
  .social-links {
    gap:10px;
    font-size:8px;
  }
  .theme-control {
    font-size:8px;
    gap:6px;
  }
  main {
    padding:0 20px;
  }
  .atlas-heading {
    gap:8px;
    margin-bottom:15px;
  }
  .atlas-heading h1 {
    font-size:31px;
    letter-spacing:-1px;
  }
  .atlas-heading p {
    font-size:11px;
  }
  .map-reset {
    font-size:8px;
  }
  .map-stage {
    height:315px;
    min-height:315px;
    margin-top:20px;
  }
  .map-label {
    font-size:9px;
  }
  .map-caption {
    font-size:8px;
    align-items:baseline;
  }
  .map-caption>span {
    max-width:27ch;
  }
  .evidence {
    gap:15px;
    min-height:195px;
  }
  .evidence h2 {
    font-size:22px;
  }
  .evidence p {
    font-size:12px;
  }
  .evidence-controls {
    min-width:58px;
  }
  .evidence-controls button {
    width:30px;
    height:34px;
  }
  .evidence-meta {
    font-size:8px;
  }
  .map-footnote {
    font-size:8px;
    align-items:baseline;
  }
  .map-footnote>span {
    max-width:28ch;
  }
  .listing {
    padding-top:42px;
  }
  .section-heading h2 {
    font-size:28px;
  }
  .section-intro {
    font-size:12px;
  }
  .record {
    grid-template-columns:1fr;
    gap:7px;
    padding:22px 0;
  }
  .record-meta {
    font-size:9px;
  }
  .record h3 {
    font-size:18px;
  }
  .record ul {
    font-size:12px;
  }
  .research .record-meta {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
  }
  .paper-image {
    width:100px;
    height:70px;
    margin:0;
  }
  .research h3 {
    font-size:21px;
  }
  .about-intro {
    grid-template-columns:1fr;
    gap:24px;
    margin-top:24px;
  }
  .about-intro img {
    width:150px;
    aspect-ratio:1/1;
  }
  .about-intro h3 {
    font-size:30px;
  }
  .skills-grid {
    grid-template-columns:1fr;
    gap:20px;
  }
  .contact h2 {
    font-size:42px;
  }
  .contact-links {
    gap:17px;
    font-size:10px;
  }
  .contact {
    padding:65px 0;
  }
  footer {
    font-size:8px;
  }
  .link-preview {
    display:none;
  }
}
@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto;
  }
  * {
    animation:none!important;
    transition:none!important;
  }
}
[hidden] {
  display:none!important;
}

/* The map ends naturally; the next section follows without a viewport spacer. */
.atlas-section + .listing {
  padding-top:18px;
}
.map-reset {
  flex-shrink:0;
  min-height:32px;
}
.axis-tooltip {
  position:absolute;
  z-index:10;
  width:260px;
  max-width:calc(100% - 16px);
  padding:14px 16px;
  border:1px solid var(--accent);
  background:var(--bg);
  color:var(--ink);
  box-shadow:3px 3px 0 color-mix(in srgb,var(--ink) 8%,transparent);
}
.axis-tooltip .axis-name {
  color:var(--muted);
  font:10px/1.4 var(--mono);
  margin-bottom:6px;
}
.axis-tooltip strong {
  display:block;
  font-size:13px;
  font-weight:500;
  margin-bottom:7px;
}
.axis-tooltip .axis-examples {
  color:var(--muted);
  font-size:12px;
  line-height:1.5;
}

/* Research illustrations share the page palette and stay readable without motion. */
.research-visual {
  margin:17px 0 0;
  color:var(--muted);
}
.research-visual svg {
  display:block;
  width:100%;
  height:auto;
  overflow:visible;
  font:9px var(--mono);
  fill:currentColor;
}
.diagram-line {
  fill:none;
  stroke:var(--strong-line);
  stroke-width:1;
}
.diagram-accent {
  fill:none;
  stroke:var(--accent);
  stroke-width:1.2;
}
.chart-bar {fill:var(--accent);opacity:.65}
.research-visual figcaption {
  margin-top:6px;
  font:8px/1.5 var(--mono);
  color:var(--muted);
}
.site-footer {display:block;padding-top:24px}
.transformer-heading,.footer-meta {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
}
.transformer-heading {font:10px/1.5 var(--mono)}
.transformer-heading button {color:var(--muted);padding:6px 0}
.transformer-art {margin:20px 0 28px;color:var(--muted)}
.transformer-art svg {display:block;width:100%;height:auto}
.transformer-art .transformer-compact {display:none}
.transformer-art text {fill:currentColor;font:10px var(--mono);text-anchor:middle}
.flow-wires,.block-outline,.embedding-lines {fill:none;stroke:var(--strong-line);stroke-width:1}
.embedding-lines {stroke-dasharray:2 3}
.flow-wires {stroke:var(--line)}
.flow-packets {
  fill:none;
  stroke:var(--accent);
  stroke-width:3;
  stroke-dasharray:3 45;
  animation:token-flow 12s linear infinite;
}
.attention-pixel {
  fill:var(--accent);
  opacity:var(--weight);
  animation:attention-breathe 8s ease-in-out infinite;
  animation-delay:var(--delay);
}
.token-pixel {
  fill:currentColor;
  opacity:.55;
  animation:token-breathe 8s ease-in-out infinite;
  animation-delay:var(--delay);
}
.network-lines {fill:none;stroke:var(--line);stroke-width:.7}
.network-nodes {fill:var(--muted)}
.norm-labels text {font-size:9px}
.transformer-art.is-paused *, .transformer-art.is-offscreen * {animation-play-state:paused}
.footer-meta {padding-top:16px;border-top:1px solid var(--line)}
@keyframes token-flow {to {stroke-dashoffset:-96}}
@keyframes attention-breathe {0%,100%{opacity:var(--weight)}50%{opacity:.12}}
@keyframes token-breathe {0%,100%{opacity:.6}50%{opacity:.2}}
@media(max-width:540px) {
  .research-visual {width:138px;flex-shrink:0;margin:0}
  .research-visual figcaption {font-size:7px}
  .transformer-art {margin:16px 0 20px}
  .transformer-art .transformer-wide {display:none}
  .transformer-art .transformer-compact {display:block}
  .norm-labels text {font-size:12px}
  .transformer-heading {font-size:9px}
  .contact h2 {font-size:clamp(21px,6.4vw,42px);letter-spacing:-1px}
}

/* Two pages, one shared sidebar. Reserve the preview so hovering never shifts the map. */
.map-page .atlas-section {
  height:100dvh;
  padding:24px 0 10px;
  min-height:620px;
}
.map-page .atlas-heading {flex-shrink:0;margin-bottom:18px}
.map-page .map-stage {flex:1 1 0;height:auto;min-height:180px;max-height:none}
.map-page .map-caption>span {max-width:none}
.map-page .map-caption {flex-shrink:0;min-height:32px;padding:7px 0}
.map-page .evidence {flex:0 0 170px;min-height:0;padding:16px 0;overflow:hidden}
.map-page .evidence[hidden] {display:flex!important;visibility:hidden}
.map-page .evidence-copy {min-width:0}
.map-page .evidence h2,.map-page .evidence p {
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  overflow:hidden;
}
.map-page .evidence h2 {-webkit-line-clamp:1}
.map-page .map-footnote {flex-shrink:0;align-items:center;padding:12px 0 0;min-height:35px}
.work-page main {padding-top:30px}
.work-page #projects {padding-top:0}
.work-page #projects .section-heading {border-top:0;padding-top:0}
.section-heading h1 {font:32px/1.15 Georgia,serif;letter-spacing:-.8px}
@media(min-width:901px) and (max-height:760px) {
  .map-page .atlas-section {padding-top:16px;padding-bottom:8px}
  .map-page .atlas-heading {margin-bottom:10px}
  .map-page .atlas-heading h1 {font-size:32px}
  .map-page .map-stage {min-height:150px}
  .map-page .evidence {flex-basis:150px;padding:12px 0}
  .map-page .map-footnote {padding-top:8px;min-height:28px}
}
@media(max-width:900px) {
  .sidebar {padding:16px 24px;grid-template-columns:1fr auto;gap:12px}
  .identity {grid-column:1;grid-row:1}
  .name {font-size:23px;letter-spacing:-1px}
  .name br {display:none}
  .name {word-spacing:2px}
  .role,.intro,.intro-secondary {display:none}
  .sidebar-bottom {grid-column:2;grid-row:1;align-self:center}
  .social-links {display:none}
  .site-nav {grid-column:1/-1;grid-row:2;margin:0;gap:10px 20px}
  .site-nav a {font-size:11px;padding:3px 0}
  .map-page .page-shell {height:100dvh;min-height:720px;display:grid;grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr)}
  .map-page main {min-height:0}
  .map-page .atlas-section {height:100%;min-height:0;padding-top:18px}
  .map-page .atlas-heading {margin-bottom:12px}
  .map-page .atlas-heading h1 {font-size:30px}
  .map-page .map-stage {min-height:170px;margin-top:8px}
  .map-page .map-caption {font-size:8px;min-height:28px;padding:6px 0}
  .map-page .evidence {flex-basis:158px;padding:12px 0;gap:12px}
  .map-page .evidence h2 {font-size:20px}
  .map-page .evidence p {font-size:11px}
  .map-page .map-footnote {font-size:8px;padding-top:8px;min-height:30px}
  .map-page .map-footnote>span {max-width:none}
}
@media(max-width:540px) {
  .sidebar {padding:14px 20px}
  .name {font-size:19px}
  .site-nav {gap:8px 15px}
  .site-nav a {font-size:10px}
  .map-page .atlas-heading h1 {font-size:26px}
  .map-page .map-label {font-size:8px}
  .map-page .evidence-meta {font-size:8px}
  .map-page .evidence-controls {min-width:58px}
  .map-page .evidence-controls button {width:27px;height:27px}
  .map-page .map-footnote {gap:8px;font-size:8px}
}

@media(max-width:900px) {
  .map-instructions {font-size:9px;min-height:32px;padding:8px 0}
}
