/* Original Leonardo scans; paper and ink are treated only at display time. */
.humanity-atlas .historical-hero{filter:grayscale(1) brightness(1.4) contrast(1.7) invert(1);mix-blend-mode:screen;mask-image:radial-gradient(ellipse at center,#000 48%,transparent 73%)}
.atlas-human{opacity:calc(.38*var(--human-reveal,.18)*(1 - var(--human-exit,0)))}
.historical-study{mix-blend-mode:multiply;mask-image:radial-gradient(ellipse at center,#000 35%,transparent 73%)}
.historical-study img{display:block;width:100%;height:100%;object-fit:contain;filter:grayscale(1) brightness(1.15) contrast(1.3);opacity:.27}
#about .historical-study{top:16px;right:12px;width:min(40vw,410px);aspect-ratio:730/1042}
#leadership .historical-study{top:290px;left:42px;right:auto;width:min(32vw,330px);aspect-ratio:620/954}
#work .historical-study{top:16px;right:12px;width:min(42vw,500px);aspect-ratio:700/548}
.art-source-link{color:inherit;min-height:44px;display:inline-flex;align-items:center}

/* The fingertip gap closes the archive with a human gesture, before Contact. */
.creation-study{max-width:960px;margin:44px auto 0;padding-top:28px;border-top:1px solid #46463f}
.creation-image{height:280px;overflow:hidden;pointer-events:none;mask-image:linear-gradient(transparent,#000 14%,#000 84%,transparent);position:relative}
.creation-image::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#171715,transparent 15%,transparent 85%,#171715);pointer-events:none}
.creation-image img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 32%;filter:grayscale(1) brightness(.78) contrast(1.12);opacity:.72}
.creation-study figcaption{display:flex;align-items:baseline;gap:8px;margin:12px 0 0;color:#aaa99f;font-size:10px;line-height:1.8;letter-spacing:.025em}
.creation-study cite{font-style:normal}
.creation-study figcaption span{margin-left:auto;color:#8c8b82}
@media(max-width:650px){.creation-study{margin-top:28px;padding-top:20px}.creation-image{height:178px}.creation-study figcaption{font-size:9px;gap:5px}}

/* A compact subject index: evidence remains one click away in the detail view. */
#archive .section-heading{margin-bottom:34px}
#archive .archive-filters{gap:6px 24px;margin-bottom:20px;padding-bottom:16px}
#archive .filter-button{font-size:11px;min-height:44px}
#archive .evidence-wall{margin:0}
#archive .certificate-group{display:grid;grid-template-columns:190px minmax(0,1fr);gap:32px;padding:24px 0;border-top:1px solid #46463f}
#archive .certificate-group-heading{display:block;margin:6px 0 0}
#archive .certificate-group-heading h3{font-size:18px;line-height:1.55;margin:0 0 8px;transform:none}
#archive .certificate-group-heading>span{font-size:10px}
#archive .certificate-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 26px;align-content:start}
#archive .certificate-entry{display:grid;grid-template-columns:82px minmax(0,1fr);gap:16px;align-items:center;padding:14px 0;min-height:98px;border-bottom:1px solid rgba(241,240,231,.09)}
#archive .certificate-entry .project-visual{margin:0;transform:none}
#archive .certificate-entry .evidence-preview{display:block;width:100%;aspect-ratio:1.35;padding:0;cursor:pointer}
#archive .certificate-entry h4{font-size:13px;line-height:1.65}
#archive .certificate-entry .work-title{align-items:center;gap:6px;min-height:44px}
#archive .certificate-entry .work-title>span{min-width:24px;min-height:44px;font-size:16px}
#archive .certificate-year{font-size:9px;margin:0 0 3px}
#archive .certificate-entry .project-links:empty{display:none}
#archive .certificate-entry .project-links{margin-top:5px;gap:4px 12px}
#archive .certificate-entry .project-destination{font-size:10px;min-height:32px}
@media(max-width:1000px){
 #archive .certificate-group{grid-template-columns:160px minmax(0,1fr);gap:24px}
 #archive .certificate-grid{grid-template-columns:minmax(0,1fr)}
}
@media(max-width:650px){
 .atlas-human{opacity:calc(.28*var(--human-reveal,.18)*(1 - var(--human-exit,0)))}
 #about .historical-study{top:20px;right:0;width:60%}
 #leadership .historical-study{top:36px;left:auto;right:4px;width:56%}
 #work .historical-study{top:24px;right:0;width:70%}
 #archive .section-heading{margin-bottom:24px}
 #archive .archive-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px;margin-bottom:12px}
 #archive .filter-button{justify-content:space-between;font-size:11px;line-height:1.65;padding:8px 0}
 #archive .certificate-group{display:block;padding:20px 0 12px}
 #archive .certificate-group-heading{display:flex;align-items:baseline;gap:12px;margin:0 0 12px}
 #archive .certificate-group-heading h3{font-size:17px;margin:0}
 #archive .certificate-entry{grid-template-columns:72px minmax(0,1fr);gap:14px;min-height:90px;padding:11px 0}
 #archive .certificate-entry h4{font-size:13px;line-height:1.65}
 .site-footer{flex-wrap:wrap}
}

/* The portfolio index uses the same rules, ink and rhythm as the rest of the page. */
.portfolio-index.section { display: block; padding-block: clamp(32px, 5vw, 72px); }
.portfolio-index h2 { font-size: clamp(30px, 4vw, 52px); margin: 8px 0 22px; font-weight: 400; }
.portfolio-index-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0 clamp(14px, 3vw, 36px);
}
.portfolio-index-grid a {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 6px 12px;
  align-content: start;
  min-height: 88px;
  padding: 14px 0;
  color: inherit;
  border-top: 1px solid #a6a399;
  text-decoration: none;
}
.portfolio-index-grid a:hover strong,
.portfolio-index-grid a:focus-visible strong { text-decoration: underline; }
.portfolio-index-grid strong { font-size: clamp(16px, 2vw, 21px); font-weight: 500; }
.portfolio-index-grid span:first-of-type { grid-column: 1; font-size: 13px; line-height: 1.55; }
.portfolio-index-grid span:last-of-type { grid-area: 1 / 2; }
#archive .filter-button[aria-pressed="true"] { color: #fff; border-color: #bcb8a9; }
#archive .certificate-entry.is-text-only { grid-template-columns: minmax(0, 1fr); }
#archive .certificate-entry .work-title { width: 100%; justify-content: space-between; }
#project-dialog { overscroll-behavior: contain; }
#project-dialog .evidence-item .evidence-preview:not(.evidence-crop) img {
  display: block;
  width: 100%;
  height: auto;
}
.dialog-close { z-index: 2; }
.work-title, .dialog-content h2 { overflow-wrap: anywhere; }

@media (max-width: 650px) {
  .opening-nav { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 8px; }
  .opening-nav a { min-height: 44px; font-size: 12px; }
  .opening-stage { padding-top: 122px; }
  .hero-copy h1 { white-space: normal; text-wrap: balance; }
  .portfolio-index-grid { grid-template-columns: 1fr; }
  .portfolio-index-grid a { min-height: 68px; }
  .portfolio-index h2 { margin-bottom: 16px; }
  #archive .filter-button { font-size: 12px; }
  #archive .certificate-entry h4 { font-size: 14px; }
  #project-dialog {
    width: calc(100% - 16px);
    max-width: none;
    max-height: calc(100dvh - 16px);
    border-radius: 12px;
  }
  #project-dialog .dialog-content { padding: 22px clamp(15px, 5vw, 26px) 28px; }
  #project-dialog .dialog-content h2 { font-size: clamp(25px, 8vw, 36px); text-wrap: balance; }
}

.evidence-preview:not(.evidence-crop) img { width: 100%; height: 100%; object-fit: contain; }
.evidence-image-error { font-size: 12px; padding: 8px; }
.evidence-note { color: var(--muted); font-size: 13px; }

.leadership-experience { min-width: 0; }
.experience-label { font-size: 12px; font-weight: 500; letter-spacing: .05em; margin: 0 0 12px; }
.experience-history { margin-top: clamp(28px, 5vw, 52px); }
.experience-timeline { padding: 0; margin: 0; list-style: none; }
.experience-timeline li {
  display: grid;
  grid-template-columns: minmax(76px, .3fr) minmax(0, 1fr);
  align-items: baseline;
  gap: 12px;
  border-top: 1px solid var(--line);
  padding: 15px 0;
}
.experience-timeline li > :first-child { font-size: 12px; color: var(--muted); }
.experience-timeline strong { font-weight: 500; }
.experience-timeline p { margin: 5px 0 0; font-size: 13px; line-height: 1.6; color: var(--muted); }

#project-dialog .dialog-details { white-space: pre-line; }
