/* Research-page structure adapted from Nerfies. */
@font-face{font-family:Outfit;src:url('../fonts/outfit.woff2') format('woff2');font-style:normal;font-weight:100 900;font-display:swap}
@font-face{font-family:'DM Sans';src:url('../fonts/dm-sans.woff2') format('woff2');font-style:normal;font-weight:100 1000;font-display:swap}
:root{--ink:#232129;--muted:#66616d;--primary:#772583;--primary-dark:#5e1d68;--amber:#ffa300;--paper:#faf9f6;--soft:#f0e9f2;--line:#e2dfe2;--dark:#211d28;--font:'DM Sans',Arial,sans-serif;--display:Outfit,'DM Sans',sans-serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:96px}
body{margin:0;color:var(--ink);background:var(--paper);font-family:var(--font);font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased}
button{font:inherit;color:inherit;cursor:pointer}
button,a{-webkit-tap-highlight-color:transparent}
a{color:inherit;text-decoration:none}
a:hover{color:var(--primary)}
button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--amber);outline-offset:4px}
img,video{display:block;max-width:100%}
h1,h2,h3,p,figure{margin:0}
h1,h2,h3{font-family:var(--display);font-weight:600;line-height:1.2}
h2{font-size:clamp(30px,3.5vw,42px);letter-spacing:-1px}
h3{font-size:23px;letter-spacing:-.4px}
[hidden]{display:none!important}
::selection{background:#ead3ee;color:var(--primary-dark)}
.container{width:min(1080px,calc(100% - 80px));margin-inline:auto}
.section{padding-block:64px}
.eyebrow{font-size:14px;font-weight:600;letter-spacing:1.4px;color:var(--primary);line-height:1.5}
.section-heading-row{display:flex;justify-content:space-between;align-items:flex-end;gap:32px;margin-bottom:28px}
.section-heading-row .eyebrow{margin-bottom:12px}
.section-intro{color:var(--muted);font-size:16px;line-height:1.7}
.skip-link{position:fixed;left:16px;top:-70px;padding:12px 24px;background:var(--primary);color:white;z-index:100}
.skip-link:focus{top:12px;color:white}
.site-navbar{height:72px;position:sticky;top:0;z-index:30;background:rgba(250,249,246,.96);backdrop-filter:blur(15px);border-bottom:1px solid var(--line)}
.nav-inner{width:min(1260px,calc(100% - 64px));height:100%;display:flex;align-items:center;justify-content:space-between;margin:auto}
.brand-text{display:inline-flex;align-items:center;font-family:var(--display);font-size:24px;font-weight:700;letter-spacing:-1px;line-height:1}
.brand-dot{color:var(--primary)}
.trace-mark{width:29px;height:29px;margin-right:10px;fill:none;stroke:var(--primary);stroke-width:2.3;stroke-linejoin:round;stroke-linecap:round}
.trace-mark circle{fill:var(--amber);stroke:var(--amber)}
.navbar-menu{display:flex;align-items:center;gap:26px;font-size:14px;font-weight:600}
.navbar-menu a{transition:color .15s}
.navbar-menu .nav-code{border-left:1px solid var(--line);padding-left:26px;color:var(--primary)}
.navbar-menu .nav-data{color:var(--primary)}
.nav-code>span,.nav-data>span{margin-right:5px}
.menu-toggle{display:none;border:1px solid var(--line);border-radius:6px;background:transparent;padding:7px 12px;font-size:14px}
.hero-head-section{text-align:center}
.hero-body{padding-top:38px;padding-bottom:38px}
.hero-meta{display:flex;justify-content:center;color:var(--muted);font-size:14px}
.venue-pill{display:inline-flex;align-items:center;gap:7px;color:var(--primary);font-weight:600}
.status-dot{width:6px;height:6px;border-radius:50%;background:var(--primary)}
.trace-wordmark{font-family:var(--display);font-size:clamp(76px,8vw,106px);font-weight:600;letter-spacing:-5px;line-height:1.1;color:var(--primary);margin:15px 0 13px}
.trace-wordmark>span{color:var(--amber)}
.publication-title{font-size:clamp(25px,2.5vw,34px);font-weight:500;line-height:1.28;letter-spacing:-.8px;max-width:1040px;margin:auto}
.acronym{font-size:14px;margin-top:16px;color:var(--muted)}
.acronym strong{color:var(--primary)}
.hero-description{color:var(--muted);font-size:16px;margin:18px auto 0;line-height:1.7;max-width:760px}
.publication-links{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:12px;margin-top:24px}
.button{min-height:46px;border:1px solid transparent;border-radius:7px;display:inline-flex;align-items:center;justify-content:center;gap:9px;font-size:14px;font-weight:600;padding:11px 17px;transition:background .2s,transform .2s}
.button:hover{transform:translateY(-2px)}
.button svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.button.primary{color:white;background:var(--primary);box-shadow:0 4px 12px #77258314}
.button.primary:hover{background:var(--primary-dark)}
.button.primary svg{fill:currentColor;stroke:none;width:16px}
.button-detail{font-size:14px;opacity:.8;border-left:1px solid #ffffff4f;padding-left:9px}
.button.secondary{background:white;border-color:#d9d3da}
.text-link{font-size:14px;font-weight:600;color:var(--primary)}
.publication-links>.text-link{padding:11px 8px}
.text-link:hover{text-decoration:underline;text-underline-offset:4px}
.overview-section{padding-bottom:48px}
.section-topline{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px 0}
.section-topline h2{font-size:22px;letter-spacing:-.3px}
.section-topline .eyebrow{font-size:14px;color:var(--muted);font-weight:400;letter-spacing:0}
.film-frame{border-radius:12px;overflow:hidden;background:#17151b;box-shadow:0 16px 45px #211d2815;border:1px solid #39343e}
.film-top{display:flex;align-items:center;justify-content:space-between;gap:8px 20px;flex-wrap:wrap;color:#cec5d3;font-size:14px;padding:11px 20px}
.film-top>span:first-child{display:flex;align-items:center;gap:8px;color:#f5eff7;font-weight:600;letter-spacing:1px}
.film-top>span:last-child{color:#b9afc0}
.live-dot{width:6px;height:6px;background:var(--amber);border-radius:50%}
.film-frame video{width:100%;aspect-ratio:16/9;object-fit:contain;background:#13111a}
.film-chapters{display:grid;grid-template-columns:repeat(4,1fr)}
.film-chapters button{background:transparent;border:0;border-right:1px solid #3d3644;color:#f1eaf5;padding:14px;font-size:14px;text-align:left;transition:background .15s}
.film-chapters button:last-child{border-right:0}
.film-chapters button:hover,.film-chapters button.active{background:#37253f}
.film-chapters span{font-size:14px;color:#e9b64f;margin-right:8px;font-variant-numeric:tabular-nums}
.film-caption{display:flex;flex-wrap:wrap;gap:10px 24px;justify-content:space-between;margin-top:16px;color:var(--muted);font-size:14px}
.film-downloads{display:flex;gap:20px;flex-wrap:wrap}
.film-caption a{color:var(--primary);font-weight:600}
.film-caption a:hover{text-decoration:underline;text-underline-offset:4px}
.architecture-section{border-top:1px solid var(--line);background:#f3edf5}
.architecture-block{padding:24px;background:white;border:1px solid var(--line);border-radius:12px}
.architecture-tabs{display:inline-flex;gap:4px;padding:4px;margin-bottom:22px;background:var(--paper);border:1px solid var(--line);border-radius:7px}
.architecture-tabs button{border:0;border-radius:4px;padding:10px 16px;background:transparent;font-size:14px;font-weight:600;line-height:1.4;min-height:44px}
.architecture-tabs button:hover{background:var(--soft)}
.architecture-tabs button[aria-selected=true]{background:var(--primary);color:white}
.architecture-figure{display:block;text-align:center;border:1px solid var(--line);border-radius:7px;padding:16px;cursor:zoom-in}
.architecture-figure img{width:auto;height:auto;max-width:100%;max-height:540px;margin:auto}
.architecture-figure>span{display:block;margin-top:12px;font-size:14px;font-weight:600;color:var(--primary)}
.architecture-panel figcaption{margin-top:16px;font-size:16px;color:var(--muted);line-height:1.7}
.perception-note{margin-top:20px;padding-top:16px;border-top:1px solid var(--line);font-size:16px;color:var(--muted);line-height:1.7}
.perception-note a{color:var(--primary);text-decoration:underline;text-underline-offset:3px}
.demos-section{background:white;border-block:1px solid var(--line)}
.method-tabs{display:grid;grid-template-columns:repeat(5,1fr);gap:5px;padding:5px;background:var(--paper);border:1px solid var(--line);border-radius:9px;margin-bottom:24px}
.method-tabs button{border:0;border-radius:5px;padding:12px 8px;background:transparent;font-size:14px;font-weight:600;line-height:1.4;min-height:44px}
.method-tabs button:hover{background:var(--soft)}
.method-tabs button[aria-selected=true]{background:var(--primary);color:white}
.method-panel,.scene-gallery{min-width:0}
.gallery-top{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:10px;font-size:14px;color:var(--muted)}
.gallery-top strong{font-weight:600;color:var(--ink)}
.gallery-top>span:last-child{font-variant-numeric:tabular-nums}
.gallery-stage{aspect-ratio:16/9;position:relative;border-radius:9px;background:var(--dark);overflow:hidden;display:flex;align-items:center;justify-content:center;border:1px solid #332d3b}
.scene-placeholder{text-align:center;color:#eee6f2;padding:16px}
.placeholder-icon{display:flex;align-items:center;justify-content:center;width:52px;height:52px;border:1px solid #6d5c79;border-radius:13px;margin:0 auto 16px;color:#d5bbde}
.placeholder-icon svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.15}
.scene-placeholder h4{font-family:var(--display);font-size:22px;font-weight:500;margin:0}
.scene-placeholder p{font-size:14px;color:#c1b5ca;margin-top:7px}
.scene-placeholder>span{display:inline-block;padding:4px 10px;font-size:14px;color:#e0cce7;border:1px solid #705980;border-radius:4px;margin-top:14px}
.gallery-corner{position:absolute;width:23px;height:23px;opacity:.4;border-color:#a18aac;border-style:solid}
.gallery-corner.top-left{top:20px;left:20px;border-width:1px 0 0 1px}
.gallery-corner.bottom-right{bottom:20px;right:20px;border-width:0 1px 1px 0}
.scene-video{position:relative;width:100%;aspect-ratio:16/9;height:100%;background:#151219;object-fit:contain;border-radius:8px}
.gallery-controls{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px}
.scene-tabs{display:flex;flex-wrap:wrap;gap:7px}
.scene-tabs button{background:#f8f6f9;border:1px solid #e4dfe7;border-radius:5px;font-size:14px;width:40px;height:40px;padding:0;color:var(--muted);font-variant-numeric:tabular-nums}
.scene-tabs button[aria-selected=true]{background:var(--primary);border-color:var(--primary);color:white}
.scene-tabs button:hover{border-color:var(--primary)}
.gallery-arrows{display:flex;gap:7px}
.gallery-arrows button{height:40px;width:40px;display:grid;place-items:center;border:1px solid #ddd5e0;border-radius:5px;background:white;font-size:18px;padding:0}
.gallery-arrows button:hover{color:var(--primary);background:var(--soft)}
.scene-caption{font-size:14px;color:var(--muted);line-height:1.6;margin-top:10px;min-height:23px}
.scene-outcome{margin-top:10px;color:var(--primary);font-size:14px;font-weight:700;line-height:1.6}
.method-takeaway{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;margin-top:18px;padding:14px 16px;border:1px solid var(--line);border-left:3px solid var(--amber);border-radius:0 7px 7px 0;background:var(--paper);font-size:15px;line-height:1.65}
.method-takeaway--trace{border-left-color:var(--primary);background:var(--soft)}
.takeaway-metrics{display:inline-flex;flex-wrap:wrap;gap:8px}
.takeaway-metric{display:inline-flex;align-items:baseline;gap:5px;padding:4px 9px;border:1px solid #dfcce3;border-radius:5px;background:#fff;color:var(--primary-dark);white-space:nowrap;font-size:14px}
.takeaway-metric strong{font-family:var(--display);font-size:18px;font-weight:600;font-variant-numeric:tabular-nums}
.takeaway-metric--time{border-color:#edc778;background:#fff3d9;color:#684300}
.takeaway-comparison{flex:1 1 440px;min-width:0}
.takeaway-comparison strong{font-weight:700;color:var(--primary-dark)}
.takeaway-oow{background:#ffe2a3;padding:1px 3px;box-decoration-break:clone;-webkit-box-decoration-break:clone}
.benchmark-context{margin-top:10px;color:var(--muted);font-size:13px;line-height:1.6}
.gallery-notice{color:var(--muted);font-size:14px;margin-block:14px}
.gallery-notice a{color:var(--primary);text-decoration:underline}
.site-footer{padding:30px 0 24px;border-top:1px solid var(--line);background:white}
.footer-inner{display:flex;align-items:center;justify-content:space-between;gap:24px}
.footer-inner p,.footer-inner>a:last-child{font-size:14px;color:var(--muted)}
.template-credit{text-align:center;font-size:14px;color:var(--muted);margin-top:22px;padding-inline:24px}
.template-credit a{text-decoration:underline;text-underline-offset:3px}
@media(max-width:800px){
  .container{width:calc(100% - 48px)}
  .nav-inner{width:calc(100% - 40px)}
  .site-navbar{height:64px}
  .menu-toggle{display:block}
  .menu-toggle span{margin-left:6px}
  .navbar-menu{display:none;position:absolute;top:63px;left:0;right:0;background:var(--paper);padding:18px 24px;border-bottom:1px solid var(--line);box-shadow:0 15px 20px #00000007;flex-wrap:wrap;gap:18px 24px}
  .navbar-menu.is-open{display:flex}
  .navbar-menu .nav-code{padding:0;border:0}
  .hero-body{padding-top:28px;padding-bottom:28px}
  .section{padding-block:48px}
  .section-heading-row{gap:22px}
  .section-intro{max-width:280px}
  .film-chapters span{display:block;margin:0 0 2px}
  .footer-inner{flex-wrap:wrap;gap:18px}
  .footer-inner p{order:3;width:100%}
}
@media(max-width:600px){
  html{scroll-padding-top:80px}
  .container{width:calc(100% - 40px)}
  .desktop-break{display:none}
  .trace-wordmark{font-size:78px;letter-spacing:-4px;margin:14px 0}
  .publication-title{font-size:26px;letter-spacing:-.6px}
  .acronym{line-height:1.7}
  .hero-description{margin-top:16px}
  .publication-links{gap:8px}
  .button{padding:10px 12px}
  .button-detail{padding-left:7px}
  .section-topline{gap:10px;flex-wrap:wrap}
  .section-topline h2{font-size:21px}
  .film-frame{border-radius:8px}
  .film-top{padding:10px 14px}
  .film-chapters{grid-template-columns:repeat(2,1fr)}
  .film-chapters button{padding:12px;border-bottom:1px solid #3d3644}
  .film-chapters button:nth-child(2){border-right:0}
  .film-chapters button:nth-last-child(-n+2){border-bottom:0}
  .film-chapters span{display:inline;margin-right:7px}
  .overview-section{padding-bottom:36px}
  .section-heading-row{display:block;margin-bottom:24px}
  .section-intro{max-width:none;margin-top:16px}
  .architecture-block{padding:14px}
  .architecture-tabs{display:grid;grid-template-columns:1fr 1fr;gap:3px;width:100%;margin-bottom:16px}
  .architecture-tabs button{padding:10px 7px}
  .architecture-figure{padding:8px}
  .method-tabs{grid-template-columns:repeat(2,1fr);gap:4px;margin-bottom:20px}
  .method-tabs button:last-child{grid-column:1/-1}
  .gallery-controls{display:block}
  .scene-tabs{display:grid;grid-template-columns:repeat(auto-fit,minmax(40px,1fr));gap:4px}
  .scene-tabs button{width:100%;height:40px}
  .gallery-arrows{justify-content:flex-end;margin-top:10px}
  .scene-placeholder h4{font-size:19px}
  .placeholder-icon{width:38px;height:38px;margin-bottom:8px}
  .scene-placeholder>span{margin-top:8px}
  .template-credit{line-height:1.8}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}
