/* explorations.css — selected homepage rules */
@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500&family=Instrument+Serif:ital@0;1&family=Manrope:wght@400;500;600;700;800&family=Space+Grotesk:wght@400;500;600;700&display=swap');

* {
  box-sizing:border-box
}

html {
  scroll-behavior:smooth;scroll-padding-top:28px
}

body {
  --bg:#fff;--ink:#222;--muted:#70757c;--line:#dce0e4;--accent:#345bc5;margin:0;background:var(--bg);color:var(--ink);font:16px/1.65 'DM Sans',sans-serif
}

a {
  color:inherit;text-decoration:none
}

a:hover {
  color:var(--accent)
}

a:focus-visible,
button:focus-visible,
summary:focus-visible,
[tabindex]:focus-visible {
  outline:2px solid var(--accent);outline-offset:5px
}

img {
  display:block;max-width:100%
}

h1,
h2,
h3,
p {
  margin:0
}

h1,
h2,
h3 {
  line-height:1.12;font-weight:500;letter-spacing:-.04em
}

h1 {
  font-size:70px
}

h2 {
  font-size:32px
}

h3 {
  font-size:21px
}

p {
  color:var(--muted)
}

.topbar {
  display:flex;align-items:center;justify-content:space-between;gap:30px;max-width:1340px;margin:auto;padding:27px 48px;border-bottom:1px solid var(--line)
}

.brand {
  font-weight:600;font-size:17px
}

nav {
  display:flex;gap:26px;font-size:14px
}

main {
  max-width:1340px;padding:0 48px;margin:auto
}

.meta {
  font-size:12px;letter-spacing:.06em;display:block
}

.meta {
  color:var(--muted)
}

.social {
  display:flex;gap:23px;flex-wrap:wrap;font-size:14px
}

.section-head {
  display:flex;align-items:baseline;justify-content:space-between;gap:22px;margin-bottom:28px
}

.section-head>a {
  font-size:13px;white-space:nowrap
}

.research,
.writing,
.about {
  border-top:1px solid var(--line);padding:50px 0
}

.paper {
  display:grid;grid-template-columns:28px 105px 1fr 22px;align-items:center;gap:25px;border-top:1px solid var(--line);padding:25px 0
}

.paper-image {
  background:#f2f4f5;padding:10px
}

.paper-image img {
  width:100%;height:80px;object-fit:contain;mix-blend-mode:multiply
}

.paper-copy h3 {
  margin-top:8px;line-height:1.3
}

.arrow {
  font-size:24px
}

.post {
  display:flex;align-items:center;justify-content:space-between;gap:25px;border-top:1px solid var(--line);padding:23px 0
}

.post h3 {
  font-size:21px;max-width:800px
}

.about>p {
  max-width:760px;font-size:19px
}

.about .social {
  margin-top:30px
}

details {
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);max-width:850px;margin-top:30px
}

summary {
  padding:20px 0;display:flex;justify-content:space-between;cursor:pointer;font-size:15px;list-style:none
}

summary::-webkit-details-marker {
  display:none
}

details[open] summary span {
  transform:rotate(45deg)
}

.biography {
  padding-bottom:24px;font-size:16px
}

.biography p {
  margin:0 0 22px
}

.biography li {
  margin-bottom:12px
}

.biography a {
  text-decoration:underline
}

.biography strong {
  color:var(--ink)
}

footer {
  max-width:1340px;margin:auto;padding:25px 48px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:20px;color:var(--muted);font-size:12px
}

.portrait {
  object-fit:cover;object-position:center 25%
}

.skip {
  position:fixed;top:-100px;left:15px;background:var(--bg);padding:10px 20px;z-index:20
}

.skip:focus {
  top:10px
}

.design-dossier {
  --bg:#e6f2f7;--ink:#173d79;--muted:#6383a4;--line:#9cbcd2;--accent:#163ec0;font-family:'Space Grotesk',sans-serif
}

.design-dossier .topbar {
  padding:22px 38px;border-bottom:1px solid var(--ink);max-width:1440px
}

.design-dossier .brand {
  font:12px 'IBM Plex Mono',monospace;letter-spacing:.055em
}

.design-dossier nav {
  font-size:12px;gap:25px
}

.design-dossier main {
  max-width:1440px;padding:0 38px
}

.dossier-intro {
  display:grid;grid-template-columns:1.2fr 1fr 190px;border-bottom:1px solid var(--ink)
}

.dossier-intro>div {
  padding:35px 30px;border-right:1px solid var(--line)
}

.dossier-intro>div:first-child {
  padding-left:0
}

.dossier-intro>div:last-child {
  border:0;padding-right:0
}

.dossier-intro h1 {
  font:500 69px/1.02 'Space Grotesk',sans-serif;letter-spacing:-.055em;margin-top:25px
}

.dossier-intro .identity>p {
  font-size:14px;margin-top:20px
}

.dossier-photo .portrait {
  width:160px;height:210px;filter:grayscale(1);mix-blend-mode:multiply
}

.design-dossier .research {
  padding-top:35px;border:0
}

.design-dossier .section-head h2 {
  font-size:28px
}

.design-dossier .papers {
  display:grid;grid-template-columns:1fr 1fr;border-left:1px solid var(--line);border-top:1px solid var(--line)
}

.design-dossier .paper {
  padding:25px;grid-template-columns:120px 1fr;gap:22px;border:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);align-items:start
}

.design-dossier .arrow {
  display:none
}

.design-dossier .paper-image {
  background:#cfe2ed;padding:10px
}

.design-dossier .paper-image img {
  height:115px
}

.design-dossier .paper h3 {
  font-size:20px;line-height:1.3
}

.design-dossier .meta {
  font:10px/1.5 'IBM Plex Mono',monospace;letter-spacing:0
}

.design-dossier .paper:last-child {
  grid-template-columns:120px 1fr
}

.design-dossier .paper:last-child:nth-of-type(odd) {
  grid-column:1/-1
}

.design-dossier .paper:last-child h3 {
  max-width:750px
}

.design-dossier .post h3 {
  font-size:23px
}

@media(max-width:1050px) {
.topbar {
  padding:25px 30px
}

main {
  padding:0 30px
}

footer {
  padding:25px 30px
}

.dossier-intro {
  grid-template-columns:1.1fr 1fr 125px
}

.dossier-intro>div {
  padding:28px 22px
}

.dossier-intro h1 {
  font-size:54px
}

.dossier-photo .portrait {
  width:105px;height:160px
}

.design-dossier .paper {
  grid-template-columns:90px 1fr;padding:20px;gap:18px
}

.design-dossier .paper-image img {
  height:90px
}

.design-dossier .paper h3 {
  font-size:18px
}
}

@media(max-width:700px) {
.topbar {
  padding:22px;flex-wrap:wrap;gap:18px
}

main {
  padding:0 22px
}

nav {
  gap:23px;font-size:13px
}

.brand {
  font-size:17px
}

h1 {
  font-size:48px
}

h2 {
  font-size:27px
}

.section-head {
  display:block;margin-bottom:22px
}

.section-head>a {
  display:inline-block;margin-top:12px
}

.research,
.writing,
.about {
  padding:35px 0
}

.paper {
  grid-template-columns:72px 1fr;gap:18px;padding:22px 0
}

.arrow {
  display:none
}

.paper-image {
  padding:6px
}

.paper-image img {
  height:65px
}

.paper-copy h3 {
  font-size:17px
}

.meta {
  font-size:11px
}

.post h3 {
  font-size:18px;line-height:1.35
}

.about>p {
  font-size:17px
}

.social {
  font-size:13px;gap:20px
}

footer {
  padding:22px;flex-wrap:wrap;font-size:11px
}

.design-dossier .topbar {
  padding:22px;gap:18px
}

.design-dossier main {
  padding:0 22px
}

.design-dossier nav {
  gap:22px;font-size:12px
}

.dossier-intro {
  grid-template-columns:1fr 115px
}

.dossier-intro>div {
  padding:25px 0;border:0
}

.dossier-intro .identity {
  grid-column:1;grid-row:1;padding-right:15px
}

.dossier-intro h1 {
  font-size:53px;margin-top:20px
}

.dossier-intro .identity>p {
  font-size:12px;max-width:170px
}

.dossier-photo {
  grid-column:2;grid-row:1;align-self:center
}

.dossier-photo .portrait {
  width:115px;height:150px
}

.design-dossier .papers {
  grid-template-columns:1fr
}

.design-dossier .paper,
.design-dossier .paper:last-child {
  grid-column:1;grid-template-columns:85px 1fr;gap:18px;padding:18px
}

.design-dossier .paper-image {
  padding:6px
}

.design-dossier .paper-image img {
  height:85px
}

.design-dossier .paper h3 {
  font-size:18px
}

.design-dossier .post h3 {
  font-size:21px
}
}

@media(prefers-reduced-motion:reduce) {
html {
  scroll-behavior:auto
}
}

/* dossiers.css — selected homepage rules */
.dossier-variation {
  --bg:#fff;--ink:#2c3034;--muted:#777d81;--line:#d5d9da;--accent:#3e474d
}

.dossier-variation .paper-image {
  background:#f0f1f1
}

.dossier-variation .dossier-photo .portrait {
  mix-blend-mode:normal
}

.dossier-variation .meta {
  font-size:11px;line-height:1.6
}

.dossier-variation .paper {
  transition:background .2s
}

.dossier-variation .paper:hover {
  background:#00000003
}

.dossier-variation .dossier-photo .portrait {
  object-position:center 23%
}

.dossier-variation .paper-copy h3 {
  line-height:1.35
}

.dossier-white {
  --bg:#fff;--ink:#2d3338;--muted:#747b80;--line:#d5dadc;--accent:#465d6a
}

.dossier-white .topbar {
  border-bottom-color:#a9b1b5
}

.dossier-white .dossier-intro {
  border-bottom-color:#a9b1b5
}

.dossier-white .paper-image {
  background:#f1f3f4
}

.dossier-white .dossier-intro h1 {
  font-weight:500;font-size:68px
}

@media(max-width:1050px) and (min-width:701px) {
.dossier-variation .dossier-intro {
  grid-template-columns:1fr 1.1fr 125px
}

.dossier-variation .dossier-intro h1 {
  font-size:54px
}

.dossier-variation .dossier-photo .portrait {
  width:105px;height:150px
}

.dossier-variation .paper,
.dossier-variation .paper:last-child {
  grid-template-columns:80px 1fr;gap:17px;padding:20px
}

.dossier-variation .paper-image img {
  height:85px
}

.dossier-variation .paper h3 {
  font-size:18px
}
}

@media(max-width:700px) {
.dossier-variation .dossier-intro {
  grid-template-columns:1fr 105px;padding:0
}

.dossier-variation .dossier-intro>div {
  padding:25px 0;border:0
}

.dossier-variation .dossier-intro>div:first-child {
  padding-right:16px;padding-left:0
}

.dossier-variation .dossier-intro h1 {
  font-size:52px;line-height:1.02
}

.dossier-variation .dossier-photo .portrait {
  width:105px;height:140px
}

.dossier-variation .papers {
  grid-template-columns:1fr
}

.dossier-variation .paper,
.dossier-variation .paper:last-child {
  grid-template-columns:75px 1fr;gap:17px;padding:20px 17px
}

.dossier-variation .paper-image {
  padding:6px
}

.dossier-variation .paper-image img {
  height:75px
}

.dossier-variation .paper h3 {
  font-size:18px;line-height:1.35
}

.dossier-variation .meta {
  font-size:10px
}

.dossier-variation .section-head h2 {
  font-size:28px
}
}

@media(prefers-reduced-motion:reduce) {
.dossier-variation .paper {
  transition:none
}
}

/* dossier-code.css — selected homepage rules */
.dossier-code {
  --bg: #fff;
  --ink: #333638;
  --muted: #73797c;
  --line: #e8eaeb;
  --accent: #333638;
  font-family: 'DM Sans', sans-serif;
}

.dossier-code .topbar,
.dossier-code main,
.dossier-code footer {
  max-width: 1000px;
}

.dossier-code .topbar {
  padding-top: 26px;
  padding-bottom: 26px;
  background: transparent;
  border-bottom: 1px solid var(--line);
}

.dossier-code .brand {
  font: 500 15px 'DM Sans', sans-serif; letter-spacing: -.02em;
}

.dossier-code nav {
  font: 14px 'DM Sans', sans-serif; gap: 26px; color: #73797c;
}

.dossier-code a:hover {
  text-decoration: underline; text-underline-offset: 4px;
}

.dossier-code .dossier-intro {
  grid-template-columns: 1.1fr 1.4fr 110px;
  border-bottom: 0;
  padding: 28px 0 34px;
  align-items: center;
}

.dossier-code .dossier-intro > div {
  border: 0; padding: 24px 25px;
}

.dossier-code .dossier-intro > div:first-child {
  padding-left: 0;
}

.dossier-code .dossier-intro > div:last-child {
  padding-right: 0;
}

.dossier-code .dossier-intro h1 {
  font: 500 44px/1.12 'DM Sans', sans-serif;
  letter-spacing: -.045em;
  margin: 0;
}

.dossier-code .identity > p {
  font-size: 14px; margin-top: 14px; color: var(--muted);
}

.dossier-code .dossier-photo .portrait {
  width: 90px;
  height: 112px;
  filter: grayscale(.8);
  padding: 0;
  border: 0;
  background: transparent;
}

.dossier-code .research {
  padding-top: 29px; border-top: 1px solid var(--line);
}

.dossier-code .section-head {
  margin-bottom: 24px;
}

.dossier-code .section-head h2 {
  font: 500 23px/1.3 'DM Sans', sans-serif; letter-spacing: -.025em;
}

.dossier-code .section-head > a {
  font: 13px 'DM Sans', sans-serif; color: var(--muted);
}

.dossier-code .papers {
  border: 0; column-gap: 40px;
}

.dossier-code .paper,
.dossier-code .paper:last-child {
  grid-template-columns: 75px 1fr;
  gap: 21px;
  padding: 25px 0;
  border: 0;
  border-top: 1px solid var(--line);
  background: transparent;
  align-items: start;
  transition: none;
}

.dossier-code .paper:hover {
  background: transparent; text-decoration: none;
}

.dossier-code .paper:hover h3 {
  text-decoration: underline; text-underline-offset: 4px;
}

.dossier-code .paper-image {
  background: transparent; padding: 0; border: 0;
}

.dossier-code .paper-image img {
  height: 76px; mix-blend-mode: normal;
}

.dossier-code .paper h3 {
  font: 500 18px/1.4 'DM Sans', sans-serif; letter-spacing: -.015em;
}

.dossier-code .meta {
  font: 11px/1.6 'IBM Plex Mono', monospace; color: #7e8689; letter-spacing: -.025em;
}

.dossier-code .post h3 {
  font: 500 20px/1.4 'DM Sans', sans-serif; letter-spacing: -.02em;
}

.dossier-code .post > span {
  display: none;
}

.dossier-code summary {
  font: 14px/1.6 'DM Sans', sans-serif;
}

.dossier-code footer {
  font: 12px/1.6 'DM Sans', sans-serif;
}

@media (max-width: 1050px) and (min-width: 701px) {
.dossier-code .dossier-intro {
  grid-template-columns: 1fr 1.4fr 95px;
}

.dossier-code .dossier-intro h1 {
  font-size: 36px;
}

.dossier-code .dossier-photo .portrait {
  width: 80px; height: 100px;
}

.dossier-code .papers {
  column-gap: 28px;
}

.dossier-code .paper,
.dossier-code .paper:last-child {
  grid-template-columns: 60px 1fr; gap: 17px;
}

.dossier-code .paper h3 {
  font-size: 17px;
}
}

@media (max-width: 700px) {
.dossier-code .topbar {
  padding: 22px; gap: 19px;
}

.dossier-code nav {
  gap: 22px; font-size: 14px;
}

.dossier-code .dossier-intro {
  grid-template-columns: 1fr 82px; padding: 12px 0 25px;
}

.dossier-code .dossier-intro > div {
  padding: 20px 0;
}

.dossier-code .dossier-intro > div:first-child {
  padding-right: 16px;
}

.dossier-code .dossier-intro h1 {
  font-size: 35px; margin: 0;
}

.dossier-code .identity > p {
  font-size: 13px; margin-top: 12px;
}

.dossier-code .dossier-photo .portrait {
  width: 82px; height: 100px;
}

.dossier-code .section-head h2 {
  font-size: 23px;
}

.dossier-code .paper,
.dossier-code .paper:last-child {
  grid-template-columns: 65px 1fr; padding: 24px 0; gap: 19px;
}

.dossier-code .paper h3 {
  font-size: 17px;
}

.dossier-code .paper-image img {
  height: 68px;
}

.dossier-code .meta {
  font-size: 11px;
}

.dossier-code .post h3 {
  font-size: 19px;
}
}

.dossier-code .dossier-intro {
  grid-template-columns: 1fr 100px;
  padding: 45px 0 25px;
  align-items: center;
}

.dossier-code .dossier-intro .identity {
  grid-column: 1; grid-row: 1; padding: 0 25px 0 0;
}

.dossier-code .dossier-intro .dossier-photo {
  grid-column: 2; grid-row: 1; padding: 0;
}

.dossier-code .identity .social {
  margin-top: 17px; font: 13px 'DM Sans', sans-serif; color: #626a6e; gap: 24px;
}

.dossier-code .about {
  border: 0; padding: 10px 0 38px;
}

.dossier-code .biography {
  max-width: 850px; padding: 0; font: 16px/1.8 'DM Sans', sans-serif; color: #697074;
}

.dossier-code .biography p {
  margin-bottom: 22px;
}

.dossier-code .biography p:last-child {
  margin-bottom: 0;
}

.dossier-code .biography ol {
  padding-left: 22px; margin: 0 0 24px;
}

.dossier-code .biography strong {
  font-weight: 500;
}

.dossier-code .biography ins {
  text-decoration: none;
}

@media (max-width: 700px) {
.dossier-code .dossier-intro {
  grid-template-columns: 1fr 82px; padding: 30px 0 24px;
}

.dossier-code .dossier-intro .identity {
  padding-right: 16px;
}

.dossier-code .identity .social {
  gap: 18px; font-size: 12px;
}

.dossier-code .about {
  padding: 8px 0 32px;
}
}

.dossier-code .biography-preview {
  position: relative;
  max-width: 850px;
  max-height: 160px;
  overflow: hidden;
  font: 16px/1.8 'DM Sans', sans-serif;
  color: #697074;
}

.dossier-code .biography-preview p {
  margin: 0 0 22px;
}

.dossier-code .biography-preview::after {
  content: '';
  position: absolute;
  inset: auto 0 0;
  height: 72px;
  background: linear-gradient(to bottom, transparent, var(--bg));
  pointer-events: none;
}

.dossier-code .biography-toggle {
  display: block;
  margin: 10px 0 0;
  padding: 8px 0;
  border: 0;
  background: transparent;
  color: #626a6e;
  font: 14px/1.5 'DM Sans', sans-serif;
  cursor: pointer;
}

.dossier-code .biography-toggle:hover {
  color: var(--ink); text-decoration: underline; text-underline-offset: 4px;
}

.dossier-code .biography-toggle[hidden],
.dossier-code .biography-preview[hidden],
.dossier-code #biography-full[hidden] {
  display: none;
}

@media (max-width: 700px) {
.dossier-code .biography-preview {
  max-height: 190px;
}
}

.dossier-code .citation-count {
  display: inline-block;
  margin-top: 13px;
  color: #646e73;
  font: 12px/1.6 'IBM Plex Mono', monospace;
  letter-spacing: -.025em;
}

.dossier-code .citation-provider {
  color: #858d91; font: 12px/1.6 'DM Sans', sans-serif;
}

.dossier-code .paper:hover h3 {
  text-decoration: none;
}

.dossier-code .paper-title:hover {
  text-decoration: underline; text-underline-offset: 4px;
}

.dossier-code .citation-count:hover {
  color: var(--ink);
}

.dossier-code .meta .journal-name {
  color: #526f85;
  font-family: 'DM Sans', sans-serif;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0;
}

.dossier-code .meta .publication-year {
  color: #858d91;
}

.dossier-code {
  --ink: #202629;
  --muted: #535d62;
  --line: #cfd5d8;
  --accent: #202629;
}

.dossier-code nav,
.dossier-code .identity > p,
.dossier-code .biography,
.dossier-code .biography p,
.dossier-code .biography-preview,
.dossier-code .biography-preview p {
  color: #465158;
}

.dossier-code .identity .social,
.dossier-code .biography-toggle,
.dossier-code .section-head > a,
.dossier-code .citation-count {
  color: #39474f;
}

.dossier-code .meta,
.dossier-code .meta .publication-year,
.dossier-code .citation-provider,
.dossier-code footer {
  color: #5b666d;
}

.dossier-code .meta .journal-name {
  color: #35576f;
}

.dossier-code .dossier-photo .portrait {
  filter: none;
}

.dossier-code .identity .social a {
  color: #35576f;
  text-decoration: underline;
  text-decoration-color: #8dabbc;
  text-underline-offset: 4px;
  text-decoration-thickness: 1px;
}

.dossier-code .identity .social a:hover {
  color: #203f53;
  text-decoration-color: currentColor;
}

/* motion.css — selected homepage rules */
.dossier-code {
  --motion-ease: cubic-bezier(.22, 1, .36, 1);
}

.dossier-code .biography-viewport {
  overflow-anchor: none;
}

.dossier-code .biography-toggle {
  transition: color 180ms ease;
}

.dossier-code nav {
  position: relative;
}

.dossier-code .nav-indicator {
  position: absolute;
  height: 2px;
  background: #465a67;
  left: 0;
  bottom: -9px;
  pointer-events: none;
  transform-origin: left;
  transition: transform 420ms var(--motion-ease), width 420ms var(--motion-ease), opacity 200ms;
}

.dossier-code nav a {
  transition: color 180ms ease;
}

.dossier-code nav a[aria-current="location"] {
  color: #202629;
}

.dossier-code .papers {
  position: relative; isolation: isolate;
}

.dossier-code .paper-focus {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 0;
  pointer-events: none;
  background: #edf2f5;
  border: 1px solid #d7e2e9;
  box-shadow: 0 8px 25px -16px #31485855;
  border-radius: 9px;
  opacity: 0;
  transition: opacity 230ms ease;
  will-change: transform;
}

.dossier-code .paper-focus.is-visible {
  opacity: 1;
}

.dossier-code .paper {
  position: relative; z-index: 1;
}

.dossier-code .paper-image {
  overflow: hidden;
}

.dossier-code .paper-copy {
  transition: transform 500ms var(--motion-ease);
}

@media (hover: hover) and (pointer: fine) {
.dossier-code .paper:hover .paper-copy {
  transform: translateY(-4px);
}

.dossier-code .dossier-photo:hover .portrait {
  box-shadow: 0 12px 24px -14px #34485470;
}
}

.dossier-code .paper-image img {
  transform-origin: center;
  transition: transform 700ms var(--motion-ease);
}

@media (hover: hover) and (pointer: fine) {
.dossier-code .paper:hover .paper-image img {
  transform: scale(1.12);
}

.dossier-code .dossier-photo {
  perspective: 700px;
}

.dossier-code .dossier-photo .portrait {
  transform: rotateX(var(--portrait-x, 0deg)) rotateY(var(--portrait-y, 0deg));
    transition: transform 500ms var(--motion-ease), box-shadow 500ms var(--motion-ease);
}
}

.dossier-code .paper:focus-within .paper-image img {
  transform: scale(1.06);
}

@media (prefers-reduced-motion: reduce) {
.dossier-code {
  scroll-behavior: auto;
}

.dossier-code *,
.dossier-code *::before,
.dossier-code *::after {
  animation: none !important;
    transition: none !important;
    scroll-behavior: auto !important;
}

.dossier-code .paper-focus {
  display: none;
}

.dossier-code .paper-image img,
.dossier-code .paper-copy,
.dossier-code .dossier-photo .portrait {
  transform: none !important;
}
}

@media print {
.dossier-code .paper-focus,
.dossier-code .nav-indicator,
.dossier-code .biography-toggle,
.dossier-code .biography-preview {
  display: none !important;
}

.dossier-code #biography-full[hidden] {
  display: block !important;
}

.dossier-code .biography-viewport {
  height: auto !important; overflow: visible !important;
}
}
/* Inline CV, using the homepage's existing type and divider hierarchy. */
.dossier-code .cv-section { padding: 48px 0; border-top: 1px solid var(--line); }
.dossier-code .cv-group { margin: 32px 0 0; }
.dossier-code .cv-group h3 { margin: 0 0 18px; font: 500 16px/1.5 'DM Sans', sans-serif; letter-spacing: 0; color: #465158; }
.dossier-code .cv-entries { padding: 0; margin: 0; list-style: none; }
.dossier-code .cv-entry { display: grid; grid-template-columns: 190px 1fr; gap: 30px; padding: 23px 0; border-top: 1px solid var(--line); }
.dossier-code .cv-dates { display: flex; flex-direction: column; gap: 7px; font: 12px/1.7 'IBM Plex Mono', monospace; color: #5b666d; }
.dossier-code .cv-location { font: 13px/1.5 'DM Sans', sans-serif; }
.dossier-code .cv-detail h4 { margin: 0; font: 500 18px/1.4 'DM Sans', sans-serif; letter-spacing: -.015em; }
.dossier-code .cv-detail h4 a { color: inherit; text-decoration: underline; text-decoration-color: #9aa9b2; text-underline-offset: 4px; text-decoration-thickness: 1px; }
.dossier-code .cv-organization { margin: 6px 0 0; font-size: 15px; color: #39474f; }
.dossier-code .cv-description { margin: 8px 0 0; max-width: 650px; font-size: 15px; color: #5b666d; }
.dossier-code .cv-additional { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; }
.dossier-code .cv-skills { list-style: none; padding: 0; margin: 0; font-size: 15px; color: #465158; }
.dossier-code .cv-skills li { padding: 7px 0; }
.dossier-code .cv-languages { margin: 0; font-size: 15px; }
.dossier-code .cv-languages > div { display: flex; justify-content: space-between; gap: 25px; padding: 7px 0; }
.dossier-code .cv-languages dt { color: #39474f; }
.dossier-code .cv-languages dd { margin: 0; color: #5b666d; }
.dossier-code .cv-publications { margin: 32px 0 0; font-size: 13px; color: #5b666d; }
.dossier-code .cv-publications a { color: #35576f; text-decoration: underline; text-underline-offset: 4px; }
@media (max-width: 700px) {
  .dossier-code .cv-section { padding: 35px 0; }
  .dossier-code .cv-entry { grid-template-columns: 1fr; gap: 10px; padding: 22px 0; }
  .dossier-code .cv-dates { flex-direction: row; flex-wrap: wrap; gap: 8px 18px; }
  .dossier-code .cv-detail h4 { font-size: 17px; }
  .dossier-code .cv-additional { grid-template-columns: 1fr; gap: 0; }
}
/* Keep the portrait and identity together as one compact introduction. */
.dossier-code .dossier-intro {
  grid-template-columns: 164px minmax(0, 1fr);
  column-gap: 32px;
  padding: 42px 0 28px;
  align-items: center;
}
.dossier-code .dossier-intro .dossier-photo {
  grid-column: 1;
  grid-row: 1;
  width: 164px;
  height: 164px;
  padding: 0;
  overflow: hidden;
  border-radius: 50%;
  background: transparent;
}
.dossier-code .dossier-photo .portrait {
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: contain;
  object-position: center;
  transform-origin: center;
}
.dossier-code .dossier-intro .identity {
  grid-column: 2;
  grid-row: 1;
  padding: 0;
  min-width: 0;
}
@media (max-width: 700px) {
  .dossier-code .dossier-intro {
    grid-template-columns: 110px minmax(0, 1fr);
    gap: 22px;
    padding: 30px 0 24px;
  }
  .dossier-code .dossier-intro .dossier-photo { width: 110px; height: 110px; }
  .dossier-code .dossier-intro h1 { font-size: 32px; }
  .dossier-code .identity .social { gap: 10px 18px; }
}
@media (max-width: 420px) {
  .dossier-code .dossier-intro { grid-template-columns: 92px minmax(0, 1fr); gap: 18px; }
  .dossier-code .dossier-intro .dossier-photo { width: 92px; height: 92px; align-self: start; }
  .dossier-code .dossier-intro h1 { font-size: 28px; }
  .dossier-code .identity .social { font-size: 12px; }
}

/* Publication reading panel: shared by pointer previews and explicit Details buttons. */
.dossier-code .paper-details-toggle {
  display: block;
  margin: 13px 0 0;
  padding: 3px 0;
  border: 0;
  background: none;
  color: #35576f;
  font: 500 13px/1.6 'DM Sans', sans-serif;
  text-decoration: underline;
  text-decoration-color: #b0bec7;
  text-underline-offset: 4px;
  cursor: pointer;
}
.dossier-code .paper-details-toggle[hidden],
.dossier-code .publication-preview[hidden],
.dossier-code .publication-preview-pin[hidden] { display: none; }
.dossier-code .paper-details-toggle:hover,
.dossier-code .paper-details-toggle[aria-expanded="true"] { color: #202629; text-decoration-color: currentColor; }
.dossier-code .publication-preview {
  position: fixed;
  z-index: 100;
  display: flex;
  flex-direction: column;
  width: min(510px, calc(100vw - 32px));
  max-height: min(760px, calc(100dvh - 32px));
  overflow: hidden;
  border: 1px solid #cdd7dd;
  border-radius: 12px;
  background: #fff;
  color: #202629;
  box-shadow: 0 20px 65px -20px #1e35443d, 0 2px 8px #1e35440a;
  animation: publication-preview-in 200ms var(--motion-ease);
}
.dossier-code .publication-preview-toolbar {
  display: flex;
  align-items: center;
  flex: 0 0 auto;
  gap: 12px;
  padding: 10px 14px 10px 24px;
  border-bottom: 1px solid #e2e7ea;
}
.dossier-code .publication-preview-toolbar > span {
  margin-right: auto;
  color: #657079;
  font: 12px/1.5 'IBM Plex Mono', monospace;
}
.dossier-code .publication-preview-toolbar button {
  padding: 7px 10px;
  border: 0;
  border-radius: 5px;
  background: transparent;
  color: #35576f;
  font: 500 13px/1.4 'DM Sans', sans-serif;
  cursor: pointer;
}
.dossier-code .publication-preview-toolbar button:hover { background: #edf2f5; }
.dossier-code .publication-preview-toolbar .publication-preview-close {
  width: 36px;
  height: 36px;
  padding: 0;
  font: 25px/1 'DM Sans', sans-serif;
}
.dossier-code .publication-preview-content {
  min-height: 0;
  padding: 24px;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
}
.dossier-code .publication-preview-content h2 {
  margin: 9px 0 16px;
  font: 500 22px/1.3 'DM Sans', sans-serif;
  letter-spacing: -.035em;
}
.dossier-code .publication-preview-content h2:focus { outline: none; }
.dossier-code .publication-preview-content h3 {
  margin: 22px 0 7px;
  font: 600 14px/1.4 'DM Sans', sans-serif;
  letter-spacing: 0;
}
.dossier-code .publication-preview-content p {
  color: #465158;
  font: 16px/1.7 'DM Sans', sans-serif;
}
.dossier-code .publication-preview-content .publication-venue { color: #35576f; font-size: 13px; font-weight: 500; }
.dossier-code .publication-preview-content figure { margin: 20px 0; }
.dossier-code .publication-preview-content figure img {
  width: 100%;
  height: 190px;
  object-fit: contain;
  border-radius: 5px;
  background: #fafbfc;
}
.dossier-code .publication-preview-content figcaption {
  margin-top: 8px;
  color: #68747d;
  font: 12px/1.55 'DM Sans', sans-serif;
}
.dossier-code .publication-preview-content .publication-context {
  margin-top: 20px;
  padding-top: 16px;
  border-top: 1px solid #e2e7ea;
  font-size: 14px;
}
.dossier-code .publication-preview-sources { display: flex; flex-wrap: wrap; gap: 10px 20px; margin-top: 20px; }
.dossier-code .publication-preview-sources a { font-size: 14px; color: #35576f; text-decoration: underline; text-underline-offset: 4px; }
@keyframes publication-preview-in {
  from { opacity: 0; transform: translateY(6px); }
  to { opacity: 1; transform: translateY(0); }
}
@media (max-width: 900px) {
  .dossier-code .publication-preview { width: calc(100vw - 24px); max-height: min(720px, calc(100dvh - 48px)); }
  .dossier-code .publication-preview-content { padding: 20px; }
  .dossier-code .publication-preview-content h2 { font-size: 21px; }
  .dossier-code .publication-preview-content figure img { height: 165px; }
  .dossier-code .paper-details-toggle { min-height: 40px; }
}
@media print {
  .dossier-code .publication-preview,
  .dossier-code .paper-details-toggle { display: none !important; }
}
