@charset "UTF-8";
@font-face {
  font-family:Inter;
  src:url('assets/fonts/InterVariable.woff2') format('woff2');
  font-weight:100 900;
  font-style:normal;
  font-display:swap
}
:root {
  --paper:#ffffff;
  --white:#fff;
  --ink:#1b1d24;
  --muted:#656b78;
  --line:#e3e6ee;
  --accent:#3656c6;
  --accent-soft:#eef2ff;
  --surface:#f7f8fb;
  --bar-muted:#b7bdca;
  --sans:Inter,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --serif:Georgia,'Times New Roman',serif;
  --page:1240px
}
* {
  box-sizing:border-box
}
html {
  scroll-behavior:smooth;
  scroll-padding-top:85px
}
body {
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font:400 18px/1.6 var(--sans);
  -webkit-font-smoothing:antialiased
}
button,input {
  font:inherit
}
button,a,input {
  -webkit-tap-highlight-color:transparent
}
button {
  cursor:pointer;
  color:inherit
}
button:disabled {
  cursor:default;
  opacity:.5
}
a {
  color:inherit;
  text-decoration:none
}
a:hover {
  text-decoration:underline;
  text-underline-offset:4px
}
button:focus-visible,a:focus-visible,input:focus-visible,canvas:focus-visible {
  outline:3px solid var(--accent);
  outline-offset:4px
}
img {
  display:block;
  max-width:100%;
  height:auto
}
figure {
  margin:0
}
p {
  margin:0
}
h1,h2,h3,h4 {
  margin:0;
  font-weight:500;
  line-height:1.18
}
h2 {
  font-size:clamp(30px,3.3vw,43px);
  letter-spacing:-.035em
}
h3 {
  font-size:29px;
  letter-spacing:-.025em
}
h4 {
  font-size:21px
}
button {
  border:0;
  background:none
}
button[aria-pressed=true] {
  color:var(--accent)
}
[hidden] {
  display:none!important
}
.section-shell {
  width:min(var(--page),calc(100% - 88px));
  margin-inline:auto
}
.sr-only {
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0
}
.skip-link {
  position:fixed;
  z-index:20;
  top:-90px;
  left:16px;
  padding:12px 18px;
  background:white
}
.skip-link:focus {
  top:12px
}
.site-header {
  border-bottom:1px solid var(--line);
  background:rgba(255,255,255,.97)
}
.nav-wrap {
  width:min(var(--page),calc(100% - 88px));
  margin:auto;
  min-height:75px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:25px
}
.wordmark {
  display:flex;
  align-items:center;
  gap:11px;
  font-size:23px;
  font-weight:500;
  letter-spacing:-.03em
}
.wordmark svg {
  width:30px;
  height:30px;
  fill:none;
  stroke:var(--accent);
  stroke-width:1.4
}
.site-header nav {
  display:flex;
  gap:30px;
  font-size:16px;
  color:var(--muted)
}
.intro {
  text-align:center;
  padding-top:63px;
  padding-bottom:40px
}
.paper-status {
  display:inline-flex;
  align-items:center;
  gap:9px;
  border:1px solid var(--line);
  padding:5px 15px;
  border-radius:30px;
  font-size:15px;
  color:var(--accent);
  margin-bottom:22px
}
.paper-status::before {
  content:none
}
h1 {
  max-width:1000px;
  margin:auto;
  font:400 clamp(38px,4.5vw,64px)/1.12 var(--serif);
  letter-spacing:-.035em;
  color:var(--ink);
  text-wrap:balance
}
.subtitle {
  font-size:21px;
  color:var(--muted);
  margin:21px auto 27px;
  max-width:880px
}
.authors {
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:8px 21px;
  font-size:18px
}
.authors sup {
  font-size:11px;
  margin-left:3px;
  color:var(--accent)
}
.affiliations {
  display:flex;
  justify-content:center;
  flex-wrap:wrap;
  gap:7px 25px;
  margin-top:11px;
  font-size:16px;
  color:var(--muted)
}
.affiliations sup {
  margin-right:5px;
  font-size:11px
}
.author-notes {
  font-size:14px;
  color:var(--muted);
  margin-top:8px
}
.resources {
  display:flex;
  justify-content:center;
  flex-wrap:wrap;
  gap:12px;
  margin-top:24px
}
.resource-link {
  border:1px solid var(--line);
  padding:10px 20px;
  border-radius:8px;
  display:flex;
  gap:24px;
  align-items:center;
  font-size:16px
}
.resource-link:first-child {
  background:var(--ink);
  color:#fff;
  border-color:var(--ink)
}
.resource-link:hover {
  background:var(--accent);
  color:white;
  text-decoration:none
}
.video-section {
  padding-bottom:64px
}
.film-frame {
  aspect-ratio:16/9;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:16px;
  background:var(--surface);
  box-shadow:0 14px 50px -36px #1b1d24
}
.film-frame video {
  width:100%;
  height:100%;
  display:block;
  background:var(--surface);
  object-fit:contain
}
.film-caption {
  display:flex;
  justify-content:space-between;
  gap:20px;
  margin-top:17px;
  font-size:16px;
  color:var(--muted)
}
.film-caption a {
  color:var(--accent);
  font-weight:500
}
.film-caption a span {
  margin-left:14px
}
.gallery-section {
  padding:62px 0 65px;
  background:var(--surface);
  border-block:1px solid var(--line)
}
.section-heading {
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:35px;
  margin-bottom:30px
}
.eyebrow {
  font-size:13px;
  letter-spacing:.11em;
  font-weight:500;
  color:var(--accent);
  margin-bottom:10px
}
.section-description {
  font-size:18px;
  color:var(--muted);
  line-height:1.5;
  max-width:410px
}
.gallery-toolbar {
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:15px;
  gap:18px
}
.dataset-filters {
  display:flex;
  gap:5px
}
.dataset-filters button {
  font-size:16px;
  padding:8px 17px;
  border-radius:7px;
  color:var(--muted);
  white-space:nowrap
}
.dataset-filters button[aria-pressed=true] {
  background:#fff;
  color:var(--accent);
  box-shadow:0 1px 5px #1b1d2408
}
.object-count {
  font-size:15px;
  color:var(--muted)
}
.case-rail {
  display:flex;
  gap:12px;
  align-items:center;
  margin-bottom:28px
}
.rail-arrow {
  border:1px solid var(--line);
  border-radius:50%;
  flex:0 0 34px;
  height:34px;
  font-size:20px;
  color:var(--accent)
}
.rail-arrow:hover {
  background:white
}
.object-list {
  display:flex;
  gap:12px;
  overflow-x:auto;
  scrollbar-width:thin;
  scrollbar-color:#c4c9d4 transparent;
  padding:4px 3px 13px;
  flex:1;
  overscroll-behavior-x:contain;
  scroll-snap-type:x proximity
}
.object-option {
  flex:0 0 107px;
  width:107px;
  background:var(--white);
  border:1px solid var(--line);
  border-radius:10px;
  padding:7px 7px 9px;
  scroll-snap-align:start;
  transition:border-color .15s,background .15s;
  position:relative
}
.object-option img {
  width:89px;
  height:78px;
  object-fit:contain;
  mix-blend-mode:multiply;
  margin:0 auto 7px
}
.object-option span {
  display:block;
  font-size:14px;
  line-height:1.25;
  min-height:34px;
  text-align:center;
  color:var(--muted);
  align-content:center
}
.object-option[aria-pressed=true] {
  border-color:var(--accent);
  background:#fff;
  box-shadow:0 0 0 2px #3656c624
}
.object-option:hover {
  border-color:#8799db;
  background:#fff
}
.object-detail {
  border:1px solid var(--line);
  border-radius:14px;
  background:#fff;
  overflow:hidden;
  box-shadow:0 8px 25px -23px #1b1d24
}
.object-topline {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:24px 27px 22px;
  border-bottom:1px solid var(--line)
}
.object-topline .eyebrow {
  font-size:12px;
  margin-bottom:5px;
  letter-spacing:.09em
}
.object-protocol {
  font-size:14px;
  color:var(--muted);
  border:1px solid var(--line);
  border-radius:30px;
  padding:5px 12px;
  white-space:nowrap
}
.explorer-layout {
  display:grid;
  grid-template-columns:minmax(0,1fr) 304px;
  min-height:625px
}
.viewer-panel {
  min-width:0;
  display:flex;
  flex-direction:column;
  border-right:1px solid var(--line)
}
.viewer-toolbar {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:15px 20px;
  min-height:68px;
  border-bottom:1px solid var(--line);
  background:var(--white)
}
.viewer-mode {
  font-size:18px;
  font-weight:500;
  color:var(--ink)
}
.framing-controls {
  display:flex;
  border-radius:6px;
  border:1px solid var(--line);
  padding:3px;
  gap:2px
}
.framing-controls button {
  font-size:14px;
  padding:3px 11px;
  border-radius:4px;
  color:var(--muted)
}
.framing-controls button[aria-pressed=true] {
  background:var(--accent-soft);
  color:var(--accent)
}
.viewer-canvas {
  position:relative;
  isolation:isolate;
  min-height:510px;
  flex:1;
  background:var(--surface);
  touch-action:none;
  overflow:hidden
}
.viewer-canvas canvas {
  display:block;
  width:100%;
  height:100%;
  position:absolute;
  inset:0;
  outline-offset:-4px;
  cursor:grab
}
.viewer-canvas canvas:active {
  cursor:grabbing
}
.viewer-status {
  position:absolute;
  inset:0;
  z-index:2;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:13px;
  background:#ffffffee;
  color:var(--muted);
  font-size:16px;
  padding:30px;
  text-align:center;
  pointer-events:none
}
.viewer-status.is-error {
  background:#fffffff5
}
.viewer-status.is-error .loading-dot {
  animation:none;
  background:#b67555
}
.loading-dot {
  width:10px;
  height:10px;
  flex:0 0 10px;
  background:var(--accent);
  border-radius:50%;
  animation:breathe 1s ease-in-out infinite alternate
}
@keyframes breathe {
  to {
  opacity:.25;
  transform:scale(.7)
}

}
.viewer-footer {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:15px;
  min-height:48px;
  border-top:1px solid var(--line);
  padding:11px 19px;
  background:var(--white);
  font-size:13px;
  color:var(--muted)
}
.scene-toggles {
  display:flex;
  gap:15px;
  align-items:center;
  white-space:nowrap
}
.scene-toggles label {
  display:flex;
  align-items:center;
  gap:5px;
  cursor:pointer
}
.scene-toggles input {
  width:14px;
  height:14px;
  accent-color:var(--accent);
  margin:0 2px 0 0
}
.gt-dash {
  width:18px;
  border-top:2px dashed #747e89;
  display:inline-block
}
.input-panel {
  padding:22px 20px 20px;
  min-width:0
}
.input-panel-heading {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px
}
.view-count {
  font-size:12px;
  color:var(--muted);
  letter-spacing:.07em
}
.input-instruction {
  font-size:15px;
  line-height:1.45;
  color:var(--muted);
  margin:10px 0 20px;
  max-width:250px
}
.input-thumbnails {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:13px
}
.input-thumb {
  padding:0;
  position:relative;
  border:2px solid color-mix(in srgb,var(--view-color),white 30%);
  border-radius:7px;
  background:white;
  overflow:hidden;
  opacity:1!important
}
.input-thumb img {
  width:100%;
  aspect-ratio:1;
  object-fit:contain;
  padding:5px
}
.input-thumb span {
  display:block;
  padding:5px 3px;
  font-size:13px;
  font-weight:500;
  border-top:1px solid var(--line);
  color:var(--muted);
  line-height:1.4;
  background:var(--surface)
}
.input-thumb:hover {
  border-color:var(--view-color);
  box-shadow:0 0 0 2px color-mix(in srgb,var(--view-color),transparent 70%)
}
.input-thumb[aria-pressed=true] {
  border-color:var(--view-color);
  box-shadow:0 0 0 2px var(--view-color)
}
.input-thumb[aria-pressed=true] span {
  background:var(--view-color);
  color:white;
  border-top-color:var(--view-color)
}
.input-thumb:disabled {
  cursor:wait;
  filter:grayscale(.3)
}
.overlay-control {
  margin-top:23px;
  padding-top:18px;
  border-top:1px solid var(--line)
}
.overlay-heading {
  display:flex;
  align-items:center;
  justify-content:space-between;
  font-size:15px;
  font-weight:500
}
.overlay-heading output {
  font-size:14px;
  color:var(--accent);
  font-variant-numeric:tabular-nums
}
.overlay-control input[type=range] {
  width:100%;
  accent-color:var(--accent);
  cursor:ew-resize;
  margin:13px 0 4px;
  height:20px;
  display:block
}
.overlay-endpoints {
  display:flex;
  justify-content:space-between;
  gap:8px;
  font-size:12px;
  color:var(--muted)
}
.overlay-control.is-disabled {
  opacity:.48
}
.return-context {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  font-size:14px;
  border:1px solid var(--line);
  border-radius:6px;
  width:100%;
  padding:8px;
  margin-top:21px;
  color:var(--accent)
}
.return-context:hover:not(:disabled) {
  background:var(--accent-soft)
}
.reference-note {
  padding:11px 24px;
  border-top:1px solid var(--line);
  font-size:13px;
  color:var(--muted);
  background:var(--surface)
}
.status-message {
  color:var(--muted);
  font-size:16px;
  margin:16px 0 0
}
.status-message:empty {
  display:none
}
.overview {
  padding-top:78px;
  padding-bottom:72px
}
.overview .section-intro {
  margin-bottom:25px
}
.overview-copy .abstract {
  max-width:1040px;
  font-size:20px;
  color:#454b58;
  line-height:1.7
}
.contributions {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:30px;
  margin-top:32px;
  padding-top:28px;
  border-top:1px solid var(--line)
}
.contribution h3 {
  font-size:19px;
  font-weight:500;
  margin-bottom:10px;
  letter-spacing:-.02em
}
.contribution p {
  font-size:16px;
  color:var(--muted);
  line-height:1.6
}
.method-section,.paper-figure-section,.quantitative-section,.citation-section {
  padding:30px 0 55px
}
.method-figure {
  border:1px solid var(--line);
  border-radius:10px;
  overflow:hidden;
  background:white
}
.method-figure a {
  display:block;
  padding:20px
}
.method-figure a:hover {
  background:var(--surface)
}
.method-figure img {
  width:100%;
  height:auto;
  object-fit:contain
}
.method-figure figcaption {
  border-top:1px solid var(--line);
  padding:15px 21px;
  font-size:16px;
  color:var(--muted);
  line-height:1.5
}
.paper-figure-section .section-heading,.method-section .section-heading {
  margin-bottom:23px
}
.quantitative-section .section-heading {
  align-items:start
}
.table-scroll {
  overflow-x:auto;
  border:1px solid var(--line);
  border-radius:8px;
  background:white
}
.table-scroll table {
  border-collapse:collapse;
  width:100%;
  font-size:15px;
  text-align:right;
  white-space:nowrap
}
.table-scroll th,.table-scroll td {
  padding:13px 15px;
  border-bottom:1px solid var(--line)
}
.table-scroll th:first-child {
  text-align:left;
  font-weight:500
}
.table-scroll thead th {
  font-size:13px;
  color:var(--muted);
  background:var(--surface);
  font-weight:500
}
.table-scroll .highlight {
  background:var(--accent-soft);
  color:var(--accent);
  font-weight:500
}
.metric-direction {
  font-size:12px;
  margin-left:5px
}
.result-tabs {
  display:flex;
  gap:8px;
  margin-bottom:19px;
  flex-wrap:wrap
}
.result-tabs button {
  font-size:15px;
  padding:7px 15px;
  border:1px solid var(--line);
  border-radius:6px
}
.result-tabs button[aria-pressed=true] {
  background:var(--ink);
  color:white;
  border-color:var(--ink)
}
.figure-note {
  font-size:15px;
  color:var(--muted);
  margin-top:14px;
  line-height:1.6
}
.citation-heading {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin-bottom:18px
}
#citation-title {
  font-size:24px;
  font-weight:600;
  line-height:1.25;
  letter-spacing:.06em;
  text-transform:uppercase
}
.copy-button {
  flex-shrink:0;
  min-height:44px;
  font-size:13px;
  font-weight:500;
  line-height:1.4;
  color:var(--muted);
  background:var(--white);
  border:1px solid var(--line);
  padding:9px 13px;
  border-radius:5px;
  transition:background-color .15s,color .15s,border-color .15s
}
.copy-button:hover {
  color:var(--accent);
  background:var(--surface);
  border-color:#c9cfdf
}
.citation-section pre {
  width:100%;
  min-width:0;
  max-width:100%;
  margin:0;
  overflow-x:auto;
  overscroll-behavior-x:contain;
  padding:24px 26px;
  color:#353a46;
  background:#f7f8fa;
  border:1px solid var(--line);
  border-radius:6px;
  font:400 15px/1.65 ui-monospace,SFMono-Regular,Consolas,'Liberation Mono',monospace;
  tab-size:2
}
.citation-section code {
  font:inherit;
  white-space:pre
}
.site-footer {
  border-top:1px solid var(--line);
  padding-top:25px;
  padding-bottom:30px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  color:var(--muted);
  font-size:14px
}
.footer-brand {
  font-size:20px;
  font-weight:500;
  color:var(--ink)
}
.load-error,.noscript-notice {
  padding:20px;
  text-align:center;
  background:#f6ecdd;
  color:#76542f
}
@media(min-width:1500px) {
  .viewer-canvas {
  min-height:545px
}
.explorer-layout {
  min-height:660px
}

}
@media(max-width:1100px) {
  .section-shell,.nav-wrap {
  width:calc(100% - 56px)
}
.intro {
  padding-top:45px
}
.explorer-layout {
  grid-template-columns:minmax(0,1fr) 270px
}
.input-panel {
  padding:21px 16px
}
.viewer-footer {
  flex-wrap:wrap;
  gap:8px;
  font-size:12px
}
.viewer-canvas {
  min-height:460px
}
.explorer-layout {
  min-height:580px
}
.object-protocol {
  font-size:13px
}
.input-thumbnails {
  gap:11px
}

}
@media(max-width:760px) {
  html {
  scroll-padding-top:30px
}
.section-shell,.nav-wrap {
  width:calc(100% - 36px)
}
.nav-wrap {
  min-height:64px;
  gap:10px
}
.wordmark {
  font-size:21px;
  gap:8px
}
.wordmark svg {
  width:25px;
  height:25px
}
.site-header nav {
  gap:16px;
  font-size:14px
}
.intro {
  padding-top:35px;
  padding-bottom:30px
}
h1 {
  font-size:39px
}
.paper-status {
  font-size:13px;
  margin-bottom:19px
}
.subtitle {
  font-size:18px;
  line-height:1.45;
  margin:18px auto 23px
}
.authors {
  font-size:16px;
  gap:8px 15px
}
.affiliations {
  font-size:14px;
  gap:5px 12px
}
.author-notes {
  font-size:12px
}
.resources {
  margin-top:21px;
  gap:9px
}
.resource-link {
  font-size:14px;
  padding:8px 13px;
  gap:13px
}
.video-section {
  padding-bottom:37px
}
.film-frame {
  border-radius:10px
}
.film-caption {
  font-size:13px;
  align-items:flex-start;
  gap:18px;
  line-height:1.45
}
.film-caption span {
  max-width:57%
}
.film-caption a {
  white-space:nowrap
}
.film-caption a span {
  margin-left:4px
}
.gallery-section {
  padding-top:36px;
  padding-bottom:35px
}
.section-heading {
  display:block;
  margin-bottom:20px
}
.section-heading .eyebrow {
  font-size:11px
}
.section-description {
  margin-top:12px;
  font-size:16px
}
.section-description br {
  display:none
}
h2 {
  font-size:32px
}
.dataset-filters {
  gap:0
}
.dataset-filters button {
  font-size:14px;
  padding:7px 11px
}
.object-count {
  font-size:13px
}
.gallery-toolbar {
  gap:6px
}
.case-rail {
  gap:7px;
  margin-bottom:18px
}
.rail-arrow {
  flex-basis:26px;
  height:26px;
  font-size:15px
}
.object-option {
  flex-basis:92px;
  width:92px
}
.object-option img {
  height:67px;
  width:76px
}
.object-option span {
  font-size:12px;
  min-height:29px
}
.object-detail {
  border-radius:10px
}
.object-topline {
  padding:18px 17px 16px;
  align-items:start;
  gap:12px
}
.object-topline h3 {
  font-size:26px
}
.object-topline .eyebrow {
  font-size:10px
}
.object-protocol {
  max-width:98px;
  white-space:normal;
  font-size:11px;
  line-height:1.45;
  padding:5px 8px;
  border-radius:6px;
  text-align:right
}
.explorer-layout {
  grid-template-columns:1fr;
  min-height:0
}
.viewer-panel {
  border-right:0
}
.viewer-toolbar {
  padding:11px 13px;
  min-height:57px
}
.viewer-mode {
  font-size:16px
}
.framing-controls button {
  font-size:12px;
  padding:4px 8px
}
.viewer-canvas {
  height:390px;
  min-height:0;
  flex:auto
}
.viewer-footer {
  padding:10px 13px;
  min-height:43px;
  font-size:11px;
  flex-wrap:nowrap
}
.scene-toggles {
  gap:10px;
  font-size:12px
}
.scene-toggles input {
  width:13px;
  height:13px
}
.gt-dash {
  width:12px
}
.input-panel {
  border-top:1px solid var(--line);
  padding:20px 16px
}
.input-panel h4 {
  font-size:19px
}
.input-instruction {
  max-width:none;
  font-size:14px;
  margin:8px 0 16px
}
.input-thumbnails {
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px
}
.input-thumb img {
  padding:2px
}
.input-thumb span {
  font-size:11px;
  padding:4px 0
}
.overlay-control {
  padding-top:15px;
  margin-top:19px
}
.overlay-heading {
  font-size:15px
}
.overlay-control input[type=range] {
  margin-top:10px
}
.overlay-endpoints {
  font-size:12px
}
.return-context {
  font-size:14px;
  padding:9px;
  margin-top:17px
}
.reference-note {
  padding:12px 16px;
  font-size:12px;
  line-height:1.5
}
.overview {
  padding-top:44px;
  padding-bottom:36px
}
.overview-copy .abstract {
  font-size:18px;
  line-height:1.7
}
.contributions {
  grid-template-columns:1fr;
  gap:22px;
  margin-top:25px;
  padding-top:24px
}
.contribution h3 {
  font-size:19px;
  margin-bottom:6px
}
.contribution p {
  font-size:16px
}
.method-section,.paper-figure-section,.quantitative-section,.citation-section {
  padding-top:25px;
  padding-bottom:26px
}
.method-figure a {
  padding:9px
}
.method-figure figcaption,.figure-note {
  font-size:14px
}
.method-figure figcaption {
  padding:12px 15px
}
.table-scroll table {
  font-size:13px
}
.table-scroll th,.table-scroll td {
  padding:10px 12px
}
.table-scroll thead th {
  font-size:12px
}
.site-footer {
  flex-wrap:wrap;
  gap:12px;
  font-size:13px;
  padding-bottom:25px
}
.site-footer p {
  order:3;
  flex-basis:100%
}
.citation-section pre {
  padding:18px;
  font-size:14px
}
.citation-heading {
  gap:12px;
  margin-bottom:15px
}
#citation-title {
  font-size:23px
}

}
@media(max-width:380px) {
  /* Keep the compact header on one line; Citation remains at the page end. */
  #citation-nav { display:none; }
  .section-shell,.nav-wrap {
  width:calc(100% - 26px)
}
.site-header nav {
  gap:12px;
  font-size:13px
}
h1 {
  font-size:34px
}
.viewer-footer #viewer-hint {
  max-width:130px;
  line-height:1.4
}
.viewer-canvas {
  height:340px
}
.input-thumbnails {
  gap:7px
}
.film-caption {
  font-size:12px
}
.object-protocol {
  display:none
}
.dataset-filters button {
  padding:7px 9px;
  font-size:13px
}

}
@media(prefers-reduced-motion:reduce) {
  html {
  scroll-behavior:auto
}
*,*::before,*::after {
  animation:none!important;
  transition:none!important
}

}
/* Keep secondary controls readable without adding interface copy. */
.viewer-footer,.reference-note {
  font-size:14px
}
.framing-controls button,.input-thumb span {
  font-size:14px
}
.view-count {
  font-size:13px
}
.overlay-endpoints {
  font-size:13px
}
@media(max-width:760px) {
  .viewer-footer {
  font-size:13px;
  flex-wrap:wrap;
  gap:9px;
  justify-content:space-between
}
.scene-toggles {
  font-size:13px
}
.reference-note {
  font-size:13px
}
.view-count,.input-thumb span {
  font-size:13px
}
.input-instruction {
  font-size:15px
}
.object-option span {
  font-size:13px
}
.framing-controls button {
  font-size:13px
}
.author-notes {
  font-size:13px
}

}
@media(max-width:760px) {
  .viewer-footer,.scene-toggles,.reference-note,.input-thumb span,.object-option span,.framing-controls button,.overlay-endpoints {
  font-size:14px
}
.object-option {
  min-height:125px
}
.object-option span {
  min-height:36px
}
.viewer-footer #viewer-hint {
  max-width:none
}

}
.skip-link:not(:focus) {
  clip-path:inset(50%);
  width:1px;
  height:1px;
  padding:0;
  overflow:hidden;
  white-space:nowrap
}
@media(max-width:760px) {
  .object-protocol {
  display:none
}

}
.object-option img {
  mix-blend-mode:normal;
  border-radius:5px
}

/* A more compact reading scale; interactive viewport sizes remain unchanged. */
body { font-size: 17px; }
h1 { max-width: 950px; font-size: clamp(36px, 4.1vw, 56px); }
h2 { font-size: clamp(29px, 3vw, 35px); }
h3 { font-size: 26px; }
.intro { padding-top: 47px; padding-bottom: 32px; }
.subtitle { font-size: 19px; margin: 19px auto 23px; }
.authors { font-size: 16px; }
.section-description { font-size: 17px; }
.overview-copy .abstract { font-size: 18px; line-height: 1.65; }
.contribution h3 { font-size: 18px; }
.method-section .method-figure { max-width: 980px; margin-inline: auto; }
.paper-figure-section .method-figure { max-width: 1100px; margin-inline: auto; }
#teaser .method-figure { max-width: 1040px; }
.method-figure a { padding: 14px; }
.method-figure figcaption { font-size: 15px; padding: 13px 18px; }
.overview { padding-top: 62px; padding-bottom: 54px; }
.paper-status { margin: 0; padding: 10px 16px; border-radius: 8px; font-size: 15px; align-self: center; }
.resources { align-items: center; }
.resource-link:first-of-type { background: var(--ink); color: white; border-color: var(--ink); }
.resource-link:first-of-type:hover { background: var(--accent); }
.resource-link.is-pending,
.resource-link.is-pending:hover {
  color: var(--muted);
  background: var(--surface);
  border-style: dashed;
  cursor: default;
}
@media (max-width: 760px) {
  h1 { font-size: 34px; }
  h2 { font-size: 28px; }
  .intro { padding-top: 30px; padding-bottom: 26px; }
  .subtitle { font-size: 17px; margin: 17px auto 21px; }
  .authors { font-size: 15px; }
  .section-description { font-size: 16px; }
  .overview-copy .abstract { font-size: 17px; }
  .overview { padding-top: 39px; padding-bottom: 32px; }
  .method-figure a { padding: 8px; }
  .method-figure figcaption { font-size: 14px; }
  .resources { gap: 8px; }
  .paper-status { padding: 8px 10px; font-size: 14px; }
  .resource-link { gap: 8px; padding: 8px 10px; }
  .resource-link > span:last-child { display: none; }
}

/* A neutral editorial frame keeps emphasis on the scientific imagery. */
.paper-status { color: var(--muted); background: var(--surface); }
.authors sup { color: var(--muted); }
.site-header nav a:hover { color: var(--ink); }
.wordmark svg { stroke: var(--ink); }
.film-frame { border-radius: 10px; box-shadow: 0 12px 38px -28px #1b1d2426; }
.object-detail { box-shadow: none; }
.dataset-filters button[aria-pressed=true] { box-shadow: 0 0 0 1px var(--line); }
