:root{--ink:#17202e;--muted:#586b82;--blue:#2663aa;--green:#2b7760;--line:#dce4ed;--red:#ad4c47}
*{box-sizing:border-box;letter-spacing:0}html{scroll-behavior:smooth;scroll-padding-top:76px}body{margin:0;background:#fff;color:var(--ink);font:17px/1.7 Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif}h1,h2,h3,p,figure{margin:0}h1,h2,h3{line-height:1.25}h1{font-size:48px;font-weight:670}h2{font-size:34px;font-weight:650;margin-bottom:23px}h3{font-size:24px;font-weight:630;margin-bottom:16px}p+p{margin-top:17px}a{color:var(--blue);text-underline-offset:3px}a:hover{text-decoration:underline}button,input,select{font:inherit}button{cursor:pointer;color:inherit}img{display:block;max-width:100%}[hidden]{display:none!important}sup{font-size:.65em}sub{font-size:.72em}:focus-visible{outline:3px solid #b57b34;outline-offset:3px}.wide{width:min(1100px,calc(100% - 48px));margin-inline:auto}.prose{width:min(960px,calc(100% - 48px));margin-inline:auto}.reading,.prose.flush{max-width:850px;width:auto;margin-inline:0}.section{padding-block:42px}.section+.section{border-top:0}.skip{position:fixed;top:-100px;left:20px;z-index:100;background:#fff;padding:10px}.skip:focus{top:5px}
.site-header{height:54px;border-bottom:1px solid var(--line);background:#fffffff5;position:sticky;top:0;z-index:30}.nav{height:100%;display:flex;justify-content:space-between;align-items:center;gap:20px;font-size:14px}.brand{font-weight:650;text-decoration:none;color:var(--ink)}.nav>div{display:flex;gap:28px}.nav>div a{text-decoration:none;color:var(--muted)}.paper-heading{text-align:center;padding-block:54px 35px}.paper-subtitle{font-size:26px;font-weight:500;line-height:1.4;margin-top:10px}.authors{display:flex;justify-content:center;flex-wrap:wrap;gap:7px 20px;margin-top:24px;font-size:18px}.authors a{text-decoration:none}.affiliations{display:flex;justify-content:center;flex-wrap:wrap;gap:8px 23px;margin-top:15px;font-size:14px}.paper-links{display:flex;justify-content:center;gap:11px;flex-wrap:wrap;margin-top:19px}.paper-links a{display:flex;align-items:center;gap:9px;background:var(--blue);color:#fff;text-decoration:none;font-size:16px;font-weight:650;border-radius:5px;padding:8px 17px}.paper-links a:hover{background:#194d89}.paper-links img{width:18px;height:18px;filter:invert(1)}.teaser{padding-top:8px;padding-bottom:30px}.teaser-top{display:flex;justify-content:space-between;align-items:baseline;gap:20px;margin-bottom:10px}.teaser h2{font-size:21px;margin:0}.teaser-top>a{font-size:13px;white-space:nowrap}.teaser-grid{display:grid;grid-template-columns:87px repeat(3,minmax(0,1fr));gap:6px}.teaser-grid img{width:100%;aspect-ratio:832/480;object-fit:contain}.teaser-grid .time{font-size:12px;color:var(--muted);text-align:center}.teaser-grid .method-label{align-self:center;font-size:13px;font-weight:600;line-height:1.4}.teaser-grid .method-label.ours{color:var(--green)}.teaser-grid a{display:block}.abstract{padding-block:10px 30px}.abstract h2{text-align:center;font-size:24px;margin-bottom:18px}.figure-caption{font-size:14px;line-height:1.7;color:var(--muted);margin-top:14px}.intro{font-size:22px;font-weight:500;margin-bottom:14px}
.story{margin-top:28px}.story-head{display:grid;grid-template-columns:40px 1fr 40px;gap:14px;align-items:center}.story-words{min-height:87px}.story-words h3{font-size:20px;color:var(--blue);font-weight:650;margin:0 0 5px;line-height:1.5}.story-number{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--blue);color:#fff;font-size:15px;margin-right:10px;vertical-align:1px}.story-words p{font-size:16px;line-height:1.55;max-width:950px}.icon-button{width:38px;height:38px;border-radius:50%;border:1px solid var(--line);background:#fff;display:inline-grid;place-items:center;flex-shrink:0;padding:0}.icon-button:hover{background:#f4f8fc;border-color:#acc4e2}.icon-button img{width:18px;height:18px}.story-stage{aspect-ratio:1000/345;margin-top:13px;position:relative;overflow:hidden}.story-stage svg{display:block;width:100%;height:100%}.story-stage text{font-family:Georgia,"Times New Roman",serif;fill:#242424;font-size:21px}.story-stage .sans{font:14px Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;fill:var(--muted)}.story-stage .blue{fill:var(--blue)}.story-stage .green{fill:var(--green)}.story-stage .red{fill:var(--red)}.story-stage .wire{stroke:#535961;stroke-width:1.2;fill:none;marker-end:url(#tip)}.story-stage .model{fill:#fff;stroke:#555;stroke-width:1;rx:2}.story-stage .cell{fill:#b5d8c7;stroke:#4c886d;stroke-width:.7}.story-stage .scene{animation:reveal .4s ease-out}.story-stage .gradient-wire{stroke:var(--red);stroke-dasharray:5 5;animation:gradient 1.2s linear infinite}.story-stage .flow-dot{fill:var(--blue)}.story[data-playing=false] .gradient-wire{animation-play-state:paused}.story-controls{display:flex;align-items:center;gap:14px;margin-top:6px}.story-progress{display:flex;gap:4px;flex:1}.story-progress button{border:0;padding:9px 0;height:26px;flex:1;background:none;position:relative}.story-progress button:before{content:"";height:6px;display:block;background:var(--line);border-radius:3px}.story-progress button span{height:6px;position:absolute;top:9px;left:0;right:0;background:var(--blue);border-radius:3px;transform:scaleX(0);transform-origin:left}.story-progress button[aria-pressed=true] span{transform:scaleX(var(--progress,1))}.story-controls output{font-size:14px;color:var(--muted);min-width:36px;text-align:right;font-variant-numeric:tabular-nums}.technical{border-block:1px solid var(--line);padding:13px 0;margin-top:23px;font-size:14px}.technical summary{font-weight:600;cursor:pointer}.technical p{margin-top:14px;max-width:950px}.technical-pair{display:grid;grid-template-columns:1fr 1fr;gap:35px;margin-block:20px}.technical-pair h3{font-size:18px;margin-bottom:8px}.technical-pair p{font-size:14px}.equation{font:23px/1.6 Georgia,serif;text-align:center;padding:24px 0;margin-top:12px}
.case-tabs{display:flex;gap:20px;border-bottom:1px solid var(--line);margin:28px 0 25px}.case-tabs button{font-size:14px;border:0;border-bottom:3px solid transparent;background:none;padding:10px 0;color:var(--muted)}.case-tabs button[aria-pressed=true]{border-color:var(--blue);color:var(--blue);font-weight:600}.comparison-heading{display:flex;justify-content:space-between;align-items:baseline;gap:20px;margin-bottom:15px}.comparison-heading h3{margin:0;font-size:22px}.comparison-heading span{font-size:12px;color:var(--muted);white-space:nowrap}.player{background:#fff}.player-videos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.player[data-columns="3"] .player-videos{grid-template-columns:repeat(3,minmax(0,1fr))}.video-cell{display:flex;flex-direction:column-reverse;gap:6px;min-width:0}.video-cell video{width:100%;aspect-ratio:832/480;object-fit:contain;background:#f5f5f5}.video-label{font-size:14px;font-weight:600;text-align:center}.video-label.ours{color:var(--green)}.player-controls{display:flex;align-items:center;gap:12px;margin-block:12px 4px}.time-display{font-size:12px;font-variant-numeric:tabular-nums;white-space:nowrap}.seek{flex:1;min-width:60px;accent-color:var(--blue)}.speed{font-size:12px;border:1px solid var(--line);background:#fff;padding:4px;border-radius:3px}.prompt-stages{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;margin-top:12px}.prompt-stage{font-size:12px;line-height:1.4;background:#f7f9fc;border:0;border-bottom:3px solid var(--line);padding:9px 5px;min-height:54px}.prompt-stage[aria-pressed=true]{border-color:var(--blue);color:var(--blue);background:#edf4fc}.prompt-stage small{display:block;color:var(--muted);font-size:10px;margin-top:3px}.caption-line{display:flex;gap:12px;margin-top:13px;min-height:73px;font-size:13px}.caption-number{font-size:10px;white-space:nowrap;color:var(--blue);padding-top:2px}.caption-text{line-height:1.55;max-height:90px;overflow:auto}.player-status{color:var(--red);font-size:12px}.player-downloads{display:flex;gap:20px;font-size:11px;margin-top:8px}.player-downloads a{display:flex;align-items:center;gap:5px}.player-downloads img{width:12px;height:12px}.observation-line{display:flex;align-items:start;gap:22px;justify-content:space-between;margin-top:24px}.observation-line p{max-width:820px;font-size:16px}.text-command{display:inline-flex;gap:7px;align-items:center;color:var(--blue);background:none;border:0;border-bottom:1px solid var(--line);padding:4px 0;font-size:13px;white-space:nowrap}.text-command img{width:16px;height:16px}.technical .text-command{margin-block:18px 12px}#reference-player{margin-block:10px}
.segmented{display:flex;gap:5px;flex-wrap:wrap;margin:25px 0 18px}.segmented button{padding:7px 16px;border:1px solid var(--line);background:#fff;border-radius:3px;font-size:13px}.segmented button[aria-pressed=true]{background:var(--blue);border-color:var(--blue);color:#fff}.table-scroll{overflow:auto;max-width:100%}table{width:100%;border-collapse:collapse;font-size:14px;font-variant-numeric:tabular-nums}caption{font-size:13px;color:var(--muted);text-align:left;margin-bottom:12px}th,td{text-align:right;white-space:nowrap;border-bottom:1px solid var(--line);padding:11px 14px}th:first-child,td:first-child{text-align:left}thead th{border-top:2px solid #637485;border-bottom:1px solid #637485;font-size:12px}tbody th{font-weight:400}.ours-row{background:#f1f7f3}.ours-row th,.ours-row td{color:var(--green);font-weight:600}.best{font-weight:700}.subsection-title{margin-top:37px}.chart-grid{display:grid;grid-template-columns:1fr 1fr;gap:35px;margin-top:18px}.chart-grid figure{min-width:0}.chart-grid figcaption{font-size:15px;font-weight:600}.chart-grid svg{width:100%;height:auto;display:block}.chart-grid svg text{font:11px Arial,sans-serif;fill:var(--muted)}.chart-grid svg text.point-label{font-size:10px;fill:var(--ink)}.chart-axis{font-size:12px;text-align:center;color:var(--muted)}.citation{position:relative;background:#f7f9fc;padding:20px 55px 20px 20px}.citation .icon-button{position:absolute;top:12px;right:12px}.citation pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px;line-height:1.6;margin:0}.citation #copy-status{font-size:11px;color:var(--green)}footer{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-block:24px;font-size:13px;color:var(--muted)}#load-error{padding:20px;color:var(--red)}
.teaser-grid img{height:auto}.story-stage .wire{marker-end:var(--arrowhead)}
@keyframes reveal{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}@keyframes gradient{to{stroke-dashoffset:-20}}
@media(max-width:700px){body{font-size:16px}.wide,.prose{width:calc(100% - 32px)}h1{font-size:34px}.paper-subtitle{font-size:21px}.desktop{display:none}.paper-heading{padding-block:30px}.authors{font-size:15px;gap:6px 14px}.affiliations{font-size:12px;gap:5px 14px}.paper-links{gap:6px}.paper-links a{font-size:12px;padding:7px 10px}.site-header{height:auto;min-height:56px}.nav{flex-wrap:wrap;gap:4px;padding-block:8px;font-size:13px}.nav>div{gap:16px;font-size:11px}.section{padding-block:32px}h2{font-size:28px}h3{font-size:21px}.teaser h2{font-size:17px}.teaser-top{align-items:start}.teaser-top>a{font-size:11px}.teaser-grid{grid-template-columns:1fr 1fr 1fr;gap:4px}.teaser-grid .spacer{display:none}.teaser-grid .method-label{grid-column:1/-1;font-size:12px;padding-top:5px}.teaser-grid .time{font-size:10px}.teaser .figure-caption{font-size:12px}.intro{font-size:20px}.story-head{grid-template-columns:32px 1fr 32px;gap:8px;align-items:start}.story-words{min-height:138px}.story-words h3{font-size:17px;line-height:1.4}.story-words p{font-size:14px;line-height:1.55}.story-number{width:22px;height:22px;font-size:13px;margin-right:7px;vertical-align:0}.story-head .icon-button{width:32px;height:32px}.story-stage{aspect-ratio:360/390;margin-top:4px}.story-stage text{font-size:17px}.story-stage .sans{font-size:12px}.story-controls{gap:10px}.story-controls output{font-size:12px}.figure-caption{font-size:13px}.technical{font-size:13px}.technical-pair{grid-template-columns:1fr;gap:20px}.case-tabs{gap:14px}.case-tabs button{font-size:12px}.comparison-heading{display:block}.comparison-heading h3{font-size:20px}.comparison-heading span{display:block;margin-top:5px}.player-videos,.player[data-columns="3"] .player-videos{grid-template-columns:1fr;gap:16px}.player-controls{gap:8px;flex-wrap:wrap}.player-controls .frame-back,.player-controls .frame-forward{display:none}.player-controls .icon-button{width:32px;height:32px}.time-display,.speed{font-size:10px}.seek{min-width:45px}.prompt-stage{font-size:10px;min-height:58px}.prompt-stage small{font-size:8px}.caption-line{min-height:96px;gap:7px}.caption-text{font-size:12px;max-height:110px}.player-downloads{font-size:10px;flex-wrap:wrap;gap:12px}.observation-line{display:block}.observation-line p{font-size:15px}.observation-line .text-command{margin-top:10px}.chart-grid{grid-template-columns:1fr;gap:20px}.citation{padding:20px 45px 20px 12px}.citation pre{font-size:10px}footer{font-size:11px}.equation{font-size:19px}}
.story-stage .scene,.story-stage .gradient-wire{animation:none!important}
.story-stage .trace{fill:none;stroke:#535961;stroke-width:1.2}
.story-stage .model-work{fill:var(--blue);stroke:var(--blue);rx:2}
.story-stage .model-work.learn{fill:var(--red);stroke:var(--red)}
.story-stage .packet{fill:var(--green)}
.story-stage .selection{fill:none;stroke:var(--green);stroke-width:2}
.story-stage [data-flight]{pointer-events:none}
#training-story[data-step="1"] .packet{fill:var(--red)}
.story-progress{position:relative;height:26px}
.story-segment{position:relative;height:26px;padding-block:9px;min-width:0}
.story-segment:before{content:"";display:block;height:6px;background:var(--line);border-radius:3px}
.story-segment>span{position:absolute;left:0;right:0;top:9px;height:6px;background:var(--blue);border-radius:3px;transform:scaleX(var(--progress,0));transform-origin:left}
.story-progress .story-seek{position:absolute;inset:0;width:100%;height:26px;margin:0;opacity:0;cursor:ew-resize}
.story-progress:focus-within{outline:2px solid var(--blue);outline-offset:4px;border-radius:3px}
.teaser-player{margin-top:20px}
.teaser-player .caption-line,.teaser-player .player-downloads,.teaser-player .frame-back,.teaser-player .frame-forward,.teaser-player .fullscreen,.teaser-player .speed{display:none}
.teaser-player .player-controls{gap:12px}
.teaser-player .prompt-stages{margin-top:5px}
.teaser-player .prompt-stage{background:transparent;min-height:38px;padding:5px 3px;font-size:12px}
.teaser-player .prompt-stage small{display:none}
.case-gallery{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:28px 0;border-bottom:1px solid var(--line)}
.case-gallery button{min-width:0;display:grid;grid-template-rows:auto 1fr auto;align-content:start;text-align:left;border:0;border-bottom:3px solid transparent;background:transparent;padding:0 0 12px;color:var(--ink);line-height:1.4}
.case-gallery img{display:block;width:100%;height:auto;aspect-ratio:832/480;object-fit:contain;background:#f5f5f5;margin-bottom:9px}
.case-gallery .case-title{font-size:14px;font-weight:600;overflow-wrap:break-word}
.case-gallery .case-family{font-size:11px;color:var(--muted);margin-top:3px}
.case-gallery button:hover .case-title,.case-gallery button[aria-pressed=true] .case-title{color:var(--blue)}
.case-gallery button[aria-pressed=true]{border-bottom-color:var(--blue)}
.case-gallery button:focus-visible{outline:2px solid var(--blue);outline-offset:4px}
@media(max-width:1000px){.case-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:500px){.case-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.case-gallery .case-title{font-size:13px}}
.comparison-stills{margin-top:10px;font-size:13px;color:var(--muted)}
.comparison-stills summary{cursor:pointer}
.comparison-stills .teaser-grid{margin-top:14px}
@media(max-width:700px){.teaser-player .player-videos{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.teaser-player .video-label{font-size:11px}.teaser-player .prompt-stage{font-size:10px}.teaser-player .player-controls{gap:8px}.teaser-player .time-display{font-size:10px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}
