:root{--red:#8c0000;--red-light:#b03030;--ink:#1e293b;--muted:#596675;--line:#e4e7eb;--soft:#f5f7f9;--paper:#fff;--font:Inter,"Segoe UI",-apple-system,BlinkMacSystemFont,Arial,sans-serif;font-family:var(--font);color:var(--ink);background:var(--paper);font-synthesis:none}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{cursor:pointer}button:disabled{cursor:default}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:3px solid #b03030;outline-offset:5px}button{color:inherit}svg{display:block}img,video{display:block;max-width:100%}button,a{touch-action:manipulation}[hidden]{display:none!important}.wrap{width:min(1280px,calc(100% - 88px));margin-inline:auto}.section{padding-block:92px}h1,h2,h3,p{margin:0}h2{font-size:clamp(32px,3.2vw,44px);font-weight:700;letter-spacing:-1.5px;line-height:1.2}h3{font-size:21px;letter-spacing:-.4px}sup{font-weight:400;font-size:.66em;line-height:0;position:relative;top:-.1em}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;left:16px;top:-80px;z-index:100;background:white;color:var(--red);padding:12px 20px;border-radius:6px}.skip-link:focus{top:16px}
/* Academic title block */
.paper-header{text-align:center;padding-block:78px 55px;max-width:1120px}.paper-brand{font-size:clamp(40px,5.8vw,68px);font-weight:780;letter-spacing:-3px;margin-bottom:25px}.paper-brand>span{color:var(--red)}h1{font-size:clamp(25px,3.1vw,39px);line-height:1.22;letter-spacing:-1px;font-weight:700;max-width:1050px;margin:auto}.authors{display:flex;justify-content:center;gap:12px 20px;flex-wrap:wrap;margin:35px auto 19px;color:var(--red);font-size:20px;font-weight:650}.authors a:hover{text-decoration:underline;text-underline-offset:5px}.authors sup{color:var(--ink);margin-left:2px}.affiliations{display:flex;justify-content:center;flex-wrap:wrap;gap:10px 27px;font-size:18px}.affiliations sup{margin-right:3px}.author-notes{font-size:12px;color:var(--muted);margin-top:16px}.paper-links{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin-top:30px}.paper-links a{display:inline-flex;align-items:center;gap:9px;background:var(--ink);color:white;padding:11px 19px;border-radius:9px;font-weight:600;font-size:15px;box-shadow:0 3px 5px #1e293b14;transition:background .2s,transform .2s}.paper-links a:hover{background:var(--red);transform:translateY(-2px)}.paper-links svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round;stroke-linecap:round}
.section-nav{position:sticky;top:0;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:25px;padding:0 max(30px,calc((100vw - 1280px)/2));height:66px;background:#fffffff2;backdrop-filter:blur(16px);border-block:1px solid var(--line)}.section-nav>div{display:flex;align-items:stretch;gap:34px;height:100%}.section-nav>div a{display:flex;align-items:center;position:relative;font-size:14px;font-weight:600;color:var(--muted)}.section-nav>div a::after{content:"";position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--red);transform:scaleX(0);transition:transform .3s}.section-nav>div a:hover,.section-nav>div a.active{color:var(--red)}.section-nav>div a.active::after{transform:scaleX(1)}.nav-brand{font-weight:750;font-size:16px;color:var(--red);letter-spacing:-.7px}.nav-brand span{color:var(--ink)}.nav-paper{font-size:13px;font-weight:650;color:var(--red)}
.abstract-section{max-width:940px;padding-block:76px 88px}.abstract-section h2{text-align:center;margin-bottom:31px}.abstract-section p{font-size:17px;line-height:1.85;text-align:justify;color:#384454}.abstract-section strong{color:var(--red);font-weight:650}.performance-section{border-top:1px solid var(--line)}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:32px}.segmented{display:flex;align-items:center;gap:3px;border:1px solid var(--line);background:#f3f5f7;border-radius:9px;padding:4px}.segmented button{border:0;background:transparent;color:var(--muted);border-radius:6px;padding:10px 17px;font-size:14px;font-weight:600;white-space:nowrap;transition:.2s}.segmented button.active{color:var(--red);background:#fff;box-shadow:0 2px 5px #1e293b0d}.segmented button:hover{color:var(--red)}
/* Task viewer */
.task-strip{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:10px}.task-card{min-width:0;text-align:left;display:flex;flex-direction:column;gap:9px;padding:0 0 10px;background:transparent;border:0;border-bottom:2px solid transparent;border-radius:0;opacity:.67;transition:opacity .2s,border-color .2s,transform .2s}.task-card:hover{opacity:1;transform:translateY(-2px)}.task-card.active{opacity:1;border-bottom-color:var(--red)}.task-card>.thumb{display:block;width:100%;height:76px;overflow:hidden;border-radius:6px;background:#edf0f4}.task-card img{width:100%;height:100%;object-fit:cover;transition:transform .4s}.task-card:hover img{transform:scale(1.05)}.task-card>span:last-child{font-size:12px;font-weight:600;line-height:1.35}.task-strip[data-domain="sim"]{grid-template-columns:repeat(5,minmax(0,1fr))}.sim-thumb{display:flex;width:100%;height:100%;align-items:center;justify-content:center;color:#a98e8e;background:linear-gradient(150deg,#f9f3f3,#e6eaf0)}.sim-thumb svg{width:54px;height:54px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.demo-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-block:25px 18px}.demo-heading>span{font-size:12px;font-weight:500;color:var(--muted)}.performance-layout{display:grid;grid-template-columns:minmax(0,1.9fr) minmax(300px,1fr);gap:16px;align-items:stretch}.multiview{min-width:0;overflow:hidden;border-radius:11px;background:#141c29;border:1px solid #273244}.camera-grid{display:grid;grid-template-columns:minmax(0,2.5fr) minmax(0,1fr);grid-template-rows:1fr 1fr;gap:4px;height:420px;padding:4px}.camera-pane{position:relative;background:#161f2c;min-height:0;min-width:0;overflow:hidden;cursor:pointer;border-radius:6px;grid-column:2}.camera-pane[data-featured="true"]{grid-column:1;grid-row:1/3}.camera-pane:not([data-featured="true"]){grid-row:auto}.camera-pane video{width:100%;height:100%;object-fit:contain}.video-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:15px;height:100%;background:radial-gradient(ellipse at 45% 35%,#253248,#182130 70%);color:#bcc5d1;position:relative;isolation:isolate;min-height:0}.video-empty img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;opacity:.72}.video-empty.has-poster::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#1017258a,transparent 70%);z-index:-1}.video-empty.has-poster .viewfinder{display:none}.video-empty.has-poster .empty-text{background:#152032b3;padding:6px 10px;border-radius:4px;position:absolute;bottom:15px;right:12px;color:white}.empty-text{font-size:11px;letter-spacing:.03em}.viewfinder{width:36px;height:26px;background:linear-gradient(#8192a5,#8192a5) left top/10px 1px no-repeat,linear-gradient(#8192a5,#8192a5) left top/1px 8px no-repeat,linear-gradient(#8192a5,#8192a5) right top/10px 1px no-repeat,linear-gradient(#8192a5,#8192a5) right top/1px 8px no-repeat,linear-gradient(#8192a5,#8192a5) right bottom/10px 1px no-repeat,linear-gradient(#8192a5,#8192a5) right bottom/1px 8px no-repeat,linear-gradient(#8192a5,#8192a5) left bottom/10px 1px no-repeat,linear-gradient(#8192a5,#8192a5) left bottom/1px 8px no-repeat}.camera-label{position:absolute;left:11px;top:11px;color:#f5f7fa;font:10px ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.08em;background:#142030bb;border:1px solid #ffffff20;padding:5px 7px;border-radius:4px;pointer-events:none}.expand-view{position:absolute;right:12px;top:12px;font-size:15px;color:white;opacity:0;transition:opacity .2s;pointer-events:none}.camera-pane:hover .expand-view{opacity:1}.player-controls{height:49px;display:flex;gap:10px;align-items:center;padding:0 12px;color:#e2e6ed}.icon-button{width:30px;height:30px;display:grid;place-items:center;background:none;border:0;color:inherit;font-size:15px;border-radius:5px;flex-shrink:0}.icon-button:hover{background:#ffffff10}.icon-button:disabled{opacity:.35}.player-time{font:10px ui-monospace,SFMono-Regular,Consolas,monospace;white-space:nowrap;min-width:80px}.player-scrub{width:100%;min-width:25px;accent-color:#b54d4d;height:3px}.player-scrub:disabled{opacity:.3}.player-speed{background:#202c3d;border:1px solid #ffffff0c;padding:3px;color:#d5dbe4;border-radius:4px;font-size:11px}.player-speed:disabled{opacity:.4}.multiview:fullscreen{display:flex;flex-direction:column;padding:20px;justify-content:center}.multiview:fullscreen .camera-grid{height:calc(100vh - 100px)}
/* Time-aligned source code. Content is supplied separately from video. */
.code-panel{min-width:0;display:flex;flex-direction:column;border:1px solid #dce1e8;background:#f9fafb;border-radius:11px;overflow:hidden}.code-header,.code-footer{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid #e2e6eb;gap:10px}.code-file{display:flex;gap:10px;align-items:center;font:12px ui-monospace,SFMono-Regular,Consolas,monospace}.code-file>span:first-child{color:var(--red);font-weight:700}.code-language{font-size:10px;color:var(--muted)}.code-content{position:relative;flex:1;overflow:auto;max-height:366px;min-height:200px}.code-empty{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100%;min-height:300px;gap:15px;color:#677686}.code-empty>span{font:36px ui-monospace,SFMono-Regular,Consolas,monospace;color:#9a5960;letter-spacing:6px}.code-empty p{font-size:13px}.code-footer{padding:12px 18px;border-top:1px solid #e2e6eb;border-bottom:0;font:10px ui-monospace,SFMono-Regular,Consolas,monospace;color:var(--muted)}.code-state[data-state="playing"]{color:var(--red)}.code-lines{margin:0;padding:18px 0;white-space:pre;font:12px/1.9 ui-monospace,SFMono-Regular,Consolas,monospace;tab-size:4;min-width:max-content}.code-line{display:flex;padding:0 17px 0 0;border-left:3px solid transparent}.code-line .line-number{display:inline-block;width:42px;text-align:right;padding-right:14px;user-select:none;color:#86919e;flex-shrink:0}.code-line code{font:inherit;color:#25364c}.code-line.is-current{background:#8c00000c;border-color:var(--red)}.code-line.is-current code{color:var(--red)}.code-lines .token-keyword{color:#91243d}.code-lines .token-string{color:#337165}.code-lines .token-comment{color:#7c8794}.code-lines .token-number{color:#ac7139}
.structure-section{background:#f6f8fa;border-block:1px solid var(--line)}.structure-section h2,.result-section>h2{margin-bottom:42px}.result-section{padding-bottom:105px}footer{display:flex;align-items:center;justify-content:space-between;gap:20px;border-top:1px solid var(--line);padding-block:28px 36px;font-size:12px;color:var(--muted)}footer .footer-brand{font-size:18px;font-weight:750;letter-spacing:-.7px;color:var(--red)}.footer-brand span{color:var(--ink)}footer>a:last-child{font-weight:650;color:var(--red)}
@media(min-width:1600px){.camera-grid{height:440px}.code-content{max-height:386px}}
@media(max-width:1100px){.wrap{width:calc(100% - 56px)}.section-nav{padding-inline:28px}.section-nav>div{gap:25px}.performance-layout{grid-template-columns:minmax(0,1.65fr) minmax(260px,1fr)}.camera-grid{grid-template-columns:minmax(0,2fr) minmax(0,1fr);height:360px}.code-content{max-height:306px}.code-empty{min-height:270px}.task-card>.thumb{height:65px}.task-card>span:last-child{font-size:11px}.abstract-section{max-width:850px}}
@media(max-width:820px){.paper-header{padding-top:60px}.paper-brand{letter-spacing:-2px}.desktop-break{display:none}.authors{font-size:17px;gap:12px 18px}.affiliations{font-size:16px}.nav-brand,.nav-paper{display:none}.section-nav{justify-content:center}.section-nav>div{gap:35px}.section{padding-block:65px}.abstract-section p{font-size:16px;line-height:1.8;text-align:left}.task-strip{display:flex;overflow:auto;padding-bottom:3px;scroll-snap-type:x proximity;gap:12px}.task-card{flex:0 0 118px;scroll-snap-align:start}.task-card>.thumb{height:72px}.task-card>span:last-child{font-size:12px}.performance-layout{grid-template-columns:minmax(0,1fr)}.camera-grid{height:390px;grid-template-columns:minmax(0,2.4fr) minmax(0,1fr)}.code-content{max-height:290px;min-height:220px}.code-empty{min-height:220px}.code-panel{min-height:304px}.demo-heading>span{max-width:45%;text-align:right}.structure-section h2,.result-section>h2{margin-bottom:30px}footer{flex-wrap:wrap}footer>span{order:3;flex-basis:100%}}
@media(max-width:520px){.wrap{width:calc(100% - 36px)}.section-nav{height:58px;padding-inline:18px}.section-nav>div{gap:24px}.section-nav>div a{font-size:12px}.paper-header{padding-block:50px 40px}.paper-brand{font-size:43px;margin-bottom:20px}.paper-header h1{font-size:27px;letter-spacing:-.7px}.authors{font-size:15px;gap:10px 16px;margin-top:28px}.affiliations{font-size:14px;gap:8px 15px;line-height:1.5}.author-notes{font-size:10px}.paper-links{gap:8px;margin-top:24px}.paper-links a{font-size:12px;padding:10px 12px;gap:6px}.paper-links svg{width:15px;height:15px}.section{padding-block:50px}h2{font-size:31px;letter-spacing:-1px}.abstract-section h2{margin-bottom:23px}.abstract-section p{font-size:15px;line-height:1.85}.section-heading{align-items:flex-start;flex-direction:column;gap:20px;margin-bottom:22px}.segmented button{font-size:12px;padding:8px 15px}.demo-heading{align-items:flex-start;flex-direction:column;gap:6px}.demo-heading h3{font-size:18px}.demo-heading>span{max-width:none;text-align:left;font-size:11px}.camera-grid{height:340px;grid-template-columns:1fr 1fr;grid-template-rows:minmax(0,2.2fr) minmax(0,1fr)}.camera-pane[data-featured="true"]{grid-column:1/3;grid-row:1}.camera-pane:not([data-featured="true"]){grid-column:auto;grid-row:2}.camera-label{font-size:8px;left:8px;top:8px}.empty-text{font-size:10px}.video-empty{gap:9px}.viewfinder{transform:scale(.8)}.player-controls{gap:7px;padding-inline:8px}.player-time{font-size:9px;min-width:74px}.player-fullscreen{width:25px}.code-empty{min-height:190px}.code-content{min-height:190px}.code-panel{min-height:275px}.code-header{padding:14px}.task-card{flex-basis:110px}footer{padding-block:22px 28px;font-size:11px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.001ms!important;transition-duration:.001ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}}
.recording-note{margin:-8px 0 16px;font-size:12px;color:var(--muted);letter-spacing:.015em}
.performance-layout.video-only{grid-template-columns:minmax(0,1fr)}
.code-panel[hidden],.camera-pane[hidden]{display:none!important}
.multiview[data-camera-count='1'] .camera-grid{display:block;height:auto;padding:0;aspect-ratio:16/9;background:#111}
.multiview[data-camera-count='1'] .camera-pane{height:100%;width:100%;border-radius:0;cursor:default}
.multiview[data-camera-count='1'] .camera-pane video{display:block;object-fit:contain;background:#111}
.multiview[data-camera-count='1'] .expand-view{display:none}
.multiview:fullscreen{display:flex;flex-direction:column;justify-content:center;background:#080808;border:0;border-radius:0}
.multiview:fullscreen .camera-grid{max-height:calc(100vh - 54px)}
.multiview:fullscreen .player-controls{flex-shrink:0}
.multiview.is-expanded{position:fixed;inset:0;width:100vw;height:100dvh;z-index:1000;display:flex;flex-direction:column;justify-content:center;background:#080808;border:0;border-radius:0}
.multiview.is-expanded .camera-grid{width:100%;max-height:calc(100dvh - 54px);flex:0 1 auto}
.multiview.is-expanded .player-controls{flex-shrink:0}
