/* Reading-oriented presentation, inspired by the author's AHa-3D reference. */
:root{--ink:#232923;--muted:#70766f;--accent:#547354;--paper:#fffefa;--soft:#f6f5f0;--line:#e1e5dc;--serif:Georgia,'Times New Roman',serif}
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;font-size:17px;line-height:1.8;background:var(--paper);padding-top:75px}.hero{max-width:980px;padding:62px 30px 48px}.hero h1{font-family:var(--serif);font-size:74px;font-weight:400;letter-spacing:-3px;color:#38553b}.hero h2{font-family:var(--serif);font-size:clamp(28px,3.4vw,43px);line-height:1.18;font-weight:400;letter-spacing:-1.3px}.hero .eyebrow{letter-spacing:.14em;font-weight:500}.authors{font-size:15px}.notes{font-size:12px}.links a{border-color:#c7cfc3;border-radius:4px;background:transparent}.links .primary{background:#38553b;border-color:#38553b}.wordmark{font-size:23px;font-weight:600;letter-spacing:-.6px}main{max-width:1040px;padding:0 40px}.section{padding:66px 0}.teaser{padding-top:0}.section-heading{text-align:left;max-width:none}.section-heading h2,.abstract h2{font-family:var(--serif);font-size:38px;line-height:1.2;font-weight:400;letter-spacing:-1px}.section-heading>p:last-child{max-width:760px;line-height:1.8}.abstract{grid-template-columns:1fr;max-width:820px;gap:20px;margin-top:48px}.abstract h2 br{display:none}.abstract h2 br:after{content:' '}.abstract h2{margin-bottom:2px}.abstract>div{columns:2;column-gap:34px}.abstract p{margin-bottom:0}.eyebrow{letter-spacing:.13em;font-weight:500}.demo-video,.pipeline,figure>img{border-radius:6px}figcaption{font-size:13px;text-align:left;padding-left:0}figcaption strong{font-weight:500;font-size:17px}.method-points{border-block:1px solid var(--line);padding:22px 0;gap:24px}.tabs{justify-content:flex-start}.tabs button{padding-left:0;padding-right:23px}.prompts{border-left:2px solid var(--accent);border-radius:0;background:var(--soft)}.gallery-toolbar button,.playback button,.copy{background:transparent}.video-cell video{border-radius:4px}.citation .section-heading{margin:0 0 24px}.citation pre{border-radius:4px;background:var(--soft)}footer{max-width:1040px;padding-bottom:95px}.nav{position:fixed;inset:0 0 auto;height:75px;padding:0 max(24px,calc((100vw - 1220px)/2));background:var(--paper);border-bottom:1px solid var(--line);gap:28px}.nav #contents-links{display:flex;gap:22px;overflow-x:auto;align-items:center}.nav #contents-links a{font-size:12px;font-weight:400;white-space:nowrap;padding:22px 0;color:var(--muted);border-bottom:2px solid transparent}.nav #contents-links a[aria-current]{color:#38553b;border-color:#547354}.toc-number{display:none}.menu-toggle{display:none}.layout-switch{position:fixed;bottom:22px;right:24px;z-index:30;display:flex;align-items:center;gap:3px;border:1px solid #c7cfc3;border-radius:6px;background:var(--paper);padding:4px;box-shadow:0 3px 15px #2329230a;font-size:11px}.layout-switch>span{color:var(--muted);padding:0 9px}.layout-switch button{border:0;background:transparent;color:var(--muted);padding:5px 12px;border-radius:3px;font-size:12px}.layout-switch button[aria-pressed=true]{background:#38553b;color:white}
body.layout-left{padding-top:0;padding-left:230px}.layout-left .nav{inset:0 auto 0 0;width:230px;height:100vh;flex-direction:column;align-items:stretch;justify-content:flex-start;padding:42px 23px;border-bottom:0;border-right:1px solid var(--line);gap:43px}.layout-left .nav .wordmark{padding-left:13px}.layout-left .nav #contents-links{display:flex;flex-direction:column;align-items:stretch;overflow-y:auto;gap:2px}.layout-left .nav #contents-links a{display:flex;align-items:center;gap:13px;white-space:normal;padding:12px 10px;border-bottom:0;border-left:2px solid transparent;font-size:13px}.layout-left .nav #contents-links a[aria-current]{background:#eef1e8;border-left-color:var(--accent);color:#38553b}.layout-left .toc-number{display:inline;font-size:10px;color:#99a18f}.layout-left .hero{padding-top:65px}.layout-left .hero h2{font-size:39px}.layout-left main{max-width:1060px}.layout-left footer{max-width:1060px}html:has(.layout-left){scroll-padding-top:30px}
@media(max-width:1100px) and (min-width:761px){.nav{padding-inline:22px;gap:20px}.nav #contents-links{gap:15px}.nav #contents-links a{font-size:11px}.layout-left{padding-left:190px!important}.layout-left .nav{width:190px;padding-inline:15px}.layout-left .hero h2{font-size:34px}.layout-left main{padding-inline:28px}}
@media(max-width:760px){body,body.layout-left{padding:64px 0 0}.nav,.layout-left .nav{inset:0 0 auto;width:100%;height:64px;padding:0 20px;border-right:0;border-bottom:1px solid var(--line);display:flex;flex-direction:row;justify-content:space-between;align-items:center;gap:16px}.nav .wordmark,.layout-left .nav .wordmark{padding:0;font-size:21px}.nav #contents-links{gap:16px}.nav #contents-links a{display:block!important;font-size:11px;padding:18px 0}.nav #contents-links a:first-child{display:block}.hero,.layout-left .hero{padding:38px 20px}.hero h1{font-size:60px}.hero h2,.layout-left .hero h2{font-size:30px;line-height:1.2;letter-spacing:-.8px}.authors{font-size:13px}.notes{font-size:10px}main,.layout-left main{padding:0 20px}.section-heading h2,.abstract h2{font-size:30px}.abstract>div{columns:1}.abstract p+p{margin-top:18px}.section{padding:44px 0}.teaser{padding-top:0}.layout-switch{right:14px;bottom:14px}.layout-left .menu-toggle{display:block;background:transparent;border:1px solid #c7cfc3;border-radius:4px;font-size:12px;padding:5px 12px;color:var(--ink)}.layout-left .nav #contents-links{position:fixed;top:64px;bottom:0;left:0;width:250px;background:var(--paper);border-right:1px solid var(--line);padding:24px 16px;box-shadow:8px 0 30px #23292312;display:none}.layout-left.menu-open .nav #contents-links{display:flex}.layout-left .nav #contents-links a{font-size:13px;padding:13px 10px}.layout-left .toc-number{margin-right:12px}html:has(.layout-left){scroll-padding-top:86px}.abstract h2 br{display:initial}.tabs{gap:4px}.tabs button{padding:8px 12px 8px 0}footer{padding-bottom:95px}}

.tldr{max-width:820px;margin:0 auto 32px;text-align:center;font-size:20px;line-height:1.6}.tldr strong{display:block;font-size:12px;letter-spacing:.1em;color:var(--muted);margin-bottom:8px}.section-heading h2{margin-bottom:16px}.gallery-context:empty{display:none}@media(max-width:760px){.tldr{font-size:17px;margin-bottom:24px}}

/* Videos fill their method columns and external sample panels. */
.gallery .video-grid{grid-template-columns:repeat(var(--columns),minmax(0,1fr));justify-content:center;gap:14px;overflow-x:auto;padding-bottom:8px}.gallery .video-cell{width:100%;max-width:none;margin:0}.view-panel+.view-panel{margin-top:16px}.view-label{display:block;font-size:11px;color:var(--muted);margin-bottom:6px}.gallery .video-cell video{aspect-ratio:16/9;width:100%}.gallery-context{text-align:left}.demo-video{max-width:none;margin-inline:auto}
@media(max-width:760px){.gallery .video-grid{grid-template-columns:repeat(2,minmax(0,1fr));justify-content:stretch;gap:14px}.gallery .video-cell{scroll-snap-align:start}.gallery .video-cell:only-child{justify-self:start}}

.external-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.sample-title{font-size:14px;font-weight:500;margin:0 0 14px}.external-sample{min-width:0;display:flex;flex-direction:column}.external-sample .prompts{flex:1;min-height:112px}.gallery .external-sample .video-grid{grid-template-columns:minmax(0,1fr)}.external-sample .playback{justify-content:flex-end;flex-wrap:wrap}.external-sample .playback span{flex-basis:100%;text-align:center;min-height:18px}
@media(max-width:760px){.external-pair{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.external-sample{scroll-snap-align:start}.gallery .external-sample .video-grid{grid-template-columns:minmax(0,1fr)}.external-sample .prompts{min-height:140px}}

/* Editorial spacing and quieter controls. */
.hero,.layout-left .hero{padding-top:48px;padding-bottom:36px}.hero h1{font-size:68px;margin-bottom:18px}.hero h2{margin-bottom:26px;text-wrap:balance}.layout-switch{position:static;width:fit-content;margin:22px auto 0;box-shadow:none;border:0;background:var(--soft);font-size:10px}.layout-switch button{font-size:11px;padding:3px 10px}.layout-switch>span{font-size:10px}.tldr{max-width:none;margin:0 0 28px;padding:22px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:grid;grid-template-columns:100px 1fr;gap:20px;text-align:left;align-items:baseline}.tldr-label{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);font-weight:600}.tldr p{font-size:21px;line-height:1.55;letter-spacing:-.3px;margin:0;text-wrap:pretty}.section{padding-block:52px}.teaser{padding-top:0}.section-heading{margin-bottom:24px}.section-heading h2{font-size:34px;margin-bottom:12px}.tabs{margin-bottom:18px;border-bottom:1px solid var(--line);gap:24px}.tabs button{padding:9px 0;margin-bottom:-1px}.gallery-context{margin:0 0 20px;min-height:0}.prompts{padding:13px 16px;font-size:13px;line-height:1.6;border-left:2px solid #a9b7a0;min-height:0}.prompts b{font-weight:500}.view-label{font-size:11px;letter-spacing:.03em;margin-bottom:7px}.video-cell figcaption{border-bottom-width:1px;padding-bottom:8px;margin-bottom:12px}.gallery .video-cell video{border:1px solid var(--line);border-radius:5px}.playback{border-top:1px solid var(--line);padding-top:12px;margin-top:12px}.playback span:empty{display:none}.external-sample .playback span{flex-basis:auto;min-height:0;text-align:left}.sample-title{font-size:15px;margin-bottom:12px}.external-sample .prompts{min-height:100px}.chapters{gap:8px}.chapters button{padding:5px 10px}footer{justify-content:space-between}.copy{float:none;position:absolute;right:0;top:55px;margin:0}
@media(max-width:760px){.hero,.layout-left .hero{padding:34px 20px 28px}.hero h1{font-size:54px}.hero h2,.layout-left .hero h2{font-size:27px}.tldr{grid-template-columns:1fr;gap:8px;padding:18px 0;margin-bottom:22px}.tldr p{font-size:18px;line-height:1.55}.tldr-label{font-size:10px}.section{padding-block:36px}.teaser{padding-top:0}.section-heading h2{font-size:28px}.tabs{gap:16px}.tabs button{padding:8px 0}.external-sample .prompts{min-height:140px}.layout-switch{margin-top:18px}.copy{top:38px}.citation pre{margin-top:20px}}

@media(max-width:760px){.external-sample .prompts{padding:10px;font-size:11px;min-height:0}.prompts b{display:block}.external-sample .playback{gap:6px}.external-sample .playback button{padding:5px 8px;font-size:11px}}

.net-displacement{display:block;font-size:11px;font-weight:400;color:var(--muted);margin-top:4px}.external-intensity .video-grid{grid-template-columns:repeat(var(--columns),minmax(0,1fr))}@media(max-width:760px){.net-displacement{font-size:10px}.external-intensity .video-grid{grid-template-columns:repeat(var(--columns),minmax(0,1fr))}}

/* Projection: restrained film perforations, outside the original image. */
.film-frame{position:relative;width:100%;padding:6px 0;background:#202323;border-radius:2px;overflow:hidden;}
.film-frame::before,.film-frame::after{content:"";position:absolute;left:4px;right:4px;height:3px;background:repeating-linear-gradient(90deg,#f8f8f5 0 5px,transparent 5px 12px);pointer-events:none;}
.film-frame::before{top:1.5px;}.film-frame::after{bottom:1.5px;}
.gallery .video-cell .film-frame video{border:0;border-radius:0;}

/* Align the aperture body to the cap height and baseline; dots extend above. */
.hero .aesop-title{display:flex;align-items:baseline;justify-content:center;gap:0}
.hero .aesop-title-icon{display:inline-block;width:.94em;height:.94em;object-fit:contain;align-self:baseline;margin:0 .015em 0 .025em;transform:translateY(.065em)}
