:root{--paper:#f6f1e8;--surface:#fffcf7;--ink:#2b211e;--muted:#796d62;--line:#d9d0c2;--accent:#90724d;--rose:#b96075;--serif:Georgia,'Times New Roman',serif;--sans:Arial,Helvetica,sans-serif;--ease:cubic-bezier(.22,.61,.36,1)}
*{box-sizing:border-box}html{background:var(--paper);color:var(--ink);scroll-behavior:smooth}body{margin:0;font-family:var(--sans);font-size:14px;-webkit-font-smoothing:antialiased}button,a{-webkit-tap-highlight-color:transparent}button{font-family:inherit;color:inherit;background:none;border:0;cursor:pointer;font-size:inherit}button:focus-visible,summary:focus-visible,a:focus-visible{outline:2px solid var(--rose);outline-offset:5px}button svg{width:21px;height:21px;flex-shrink:0}img{max-width:100%;display:block}button:disabled{cursor:default;opacity:.4}h1,h2,h3,p{margin-top:0}button:focus:not(:focus-visible){outline:none}.skip-link{position:fixed;top:-80px;left:15px;background:var(--ink);color:var(--paper);z-index:100;padding:14px}.skip-link:focus{top:12px}.site-header{height:88px;display:flex;align-items:center;gap:54px;padding:0 36px;border-bottom:1px solid var(--line)}.wordmark{font-family:var(--serif);font-size:31px;letter-spacing:-1px;padding:6px 0;white-space:nowrap}.wordmark-period{color:var(--accent)}.site-header nav{display:flex;gap:32px;margin-left:auto}.nav-link{font-size:13px;padding:12px 0;position:relative}.nav-link:after{content:'';position:absolute;height:1px;background:var(--ink);bottom:4px;left:0;right:0;transform:scaleX(0);transform-origin:left;transition:transform .25s}.nav-link:hover:after,.nav-link.is-current:after{transform:scaleX(1)}.quiet-link{display:flex;align-items:center;gap:13px;font-size:11px;letter-spacing:.06em}.quiet-link svg{width:17px}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 0;transition:grid-template-columns .55s var(--ease);max-width:2200px;margin:auto;overflow:hidden}.workspace.has-selection{grid-template-columns:minmax(0,1fr) clamp(350px,28vw,470px)}.gallery-main{min-width:0;align-self:start}.scene{aspect-ratio:1.8;position:relative;overflow:hidden;isolation:isolate;background:#d3bc98}.scene-poster,#film-canvas{position:absolute;inset:0;width:100%;height:100%;display:block}.scene-caption{position:absolute;bottom:5.5%;left:3.4%;color:#fffaf2;width:41%;pointer-events:none;text-shadow:0 1px 8px #1e130c36}.scene-caption p{font-size:clamp(10px,1vw,13px);letter-spacing:.17em;margin-bottom:18px}.scene-caption h1{font-family:var(--serif);font-weight:400;font-size:clamp(38px,4.6vw,76px);line-height:.97;letter-spacing:-.055em;margin-bottom:22px}.scene-caption h1 em{font-weight:400}.scene-caption span{font-size:clamp(7px,.7vw,10px);letter-spacing:.15em;line-height:1.5}.has-selection .scene-caption h1{font-size:clamp(34px,3.45vw,66px)}.has-selection .scene-caption p{margin-bottom:14px}.scene-note{position:absolute;right:2.4%;top:3.4%;color:white;line-height:1.5;font-size:10px;letter-spacing:.07em;text-align:right;pointer-events:none;text-shadow:0 1px 10px #0008}.hotspot-layer{position:absolute;inset:0;z-index:2;pointer-events:none}.photo-hotspot{position:absolute;padding:0;pointer-events:auto;transform-origin:center;transition:background .23s,filter .23s;overflow:hidden;background:transparent}.photo-hotspot:focus-visible{outline:none;background:#fffaf253;filter:drop-shadow(0 0 8px #fff)}.photo-hotspot:hover{background:#fffaf232;filter:drop-shadow(0 2px 12px #fff8)}.photo-hotspot .hotspot-shine{position:absolute;inset:0;background:linear-gradient(115deg,transparent 15%,#fff9 48%,transparent 74%);transform:translateX(-110%);opacity:0;transition:transform .65s var(--ease),opacity .35s}.photo-hotspot:hover .hotspot-shine{transform:translateX(105%);opacity:.45}.photo-number{position:absolute;transform:translate(-50%,-50%);font-size:10px;letter-spacing:.14em;border-bottom:1px solid transparent;padding:3px 5px;color:#534331;font-family:var(--sans);transition:background .2s}.photo-hotspot.is-selected .photo-number{background:var(--ink);color:var(--paper);border-radius:50%;width:26px;height:26px;display:grid;place-items:center;font-size:9px;letter-spacing:0}.is-moving .photo-number{opacity:0}.photo-tooltip{position:absolute;z-index:4;transform:translate(-50%,-50%);background:var(--paper);box-shadow:0 3px 16px #1c120d1a;pointer-events:none;padding:12px 15px;align-items:center;gap:12px;font-size:12px;white-space:nowrap;color:var(--ink)}.photo-tooltip:not([hidden]){display:flex;animation:tooltip-in .18s ease-out}.photo-tooltip span{color:var(--accent);font-size:10px}.photo-tooltip svg{width:17px;height:17px}@keyframes tooltip-in{from{opacity:0;margin-top:6px}to{opacity:1;margin-top:0}}.gallery-footnote{padding:19px 28px 17px;display:flex;align-items:center;justify-content:space-between;font-size:12px;gap:20px;border-bottom:1px solid var(--line)}.edition{font-size:9px;letter-spacing:.14em;color:var(--muted);white-space:nowrap}.project-index{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));padding:0 22px;min-height:95px;border-bottom:1px solid var(--line)}.index-item{min-width:0;display:flex;align-items:center;gap:13px;text-align:left;padding:21px 11px;position:relative}.index-item:after{content:'';position:absolute;bottom:0;left:11px;right:11px;height:2px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .3s}.index-item:hover:after,.index-item.is-selected:after{transform:scaleX(1)}.index-number{font-family:var(--serif);font-size:23px;color:var(--accent)}.index-copy{min-width:0}.index-copy strong{font-family:var(--serif);font-size:17px;line-height:1.3;font-weight:400;display:block}.index-copy small{display:block;font-size:9px;color:var(--muted);line-height:1.5;margin-top:5px}.index-arrow{margin-left:auto;display:none}.index-arrow svg{width:16px;height:16px}.transport{min-height:57px;display:flex;justify-content:space-between;align-items:center;padding:10px 31px;gap:18px;color:var(--muted);font-size:11px}.transport-status{display:flex;align-items:center;gap:9px;line-height:1.5}.status-dot{width:5px;height:5px;border-radius:50%;background:#8c9581;flex-shrink:0}.status-dot.is-moving{background:var(--accent);animation:pulse 1.2s infinite}.status-dot.is-error{background:#a65e55}@keyframes pulse{50%{opacity:.35}}.playback-controls{display:flex;align-items:center;gap:21px;white-space:nowrap}.playback-controls button{display:flex;align-items:center;gap:6px;padding:8px 0;font-size:11px}.playback-controls svg{width:15px;height:15px}.progress-track{height:2px;overflow:hidden;background:#e5ddd0}.progress-track span{display:block;height:100%;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .07s linear}.detail-panel{min-width:0;border-left:1px solid var(--line);background:var(--paper);overflow:hidden;opacity:0;transform:translateX(20px);transition:opacity .3s,transform .5s var(--ease);align-self:stretch;position:relative}.has-selection .detail-panel{opacity:1;transform:translateX(0)}.panel-inner{width:clamp(350px,28vw,470px);padding:21px 29px 35px;max-height:calc(100svh - 88px);overflow-y:auto;overscroll-behavior:contain;position:sticky;top:0;scrollbar-width:thin;scrollbar-color:#c6bba8 transparent}.panel-toolbar{display:flex;justify-content:space-between;align-items:center;min-height:36px;margin-bottom:21px}.panel-toolbar>span{font-size:12px;letter-spacing:.1em;color:var(--muted)}.panel-toolbar>div{display:flex;gap:4px;align-items:center}.icon-button{width:35px;height:35px;padding:6px;display:grid;place-items:center}.icon-button:hover{background:#e9e0d3}.close-panel{margin-left:10px}.detail-figure{margin:0 0 24px}.detail-figure img{width:100%;aspect-ratio:1.4;object-fit:cover;border-radius:2px}.detail-figure figcaption{font-size:8px;line-height:1.5;letter-spacing:.075em;color:var(--muted);margin-top:10px}.detail-panel h2{font-family:var(--serif);font-size:clamp(30px,2.7vw,44px);font-weight:400;letter-spacing:-.04em;line-height:1.04;margin-bottom:15px}.project-type{font-size:9px;letter-spacing:.1em;line-height:1.6;font-weight:600;margin-bottom:21px}.project-description{font-family:var(--serif);font-size:17px;line-height:1.6;color:#695d52;margin-bottom:25px}.project-meta{border-top:1px solid var(--line);padding-top:19px;margin:0 0 26px}.project-meta>div{display:grid;grid-template-columns:63px 1fr;gap:12px;font-size:11px;line-height:1.7;margin-bottom:11px}.project-meta dt{font-weight:600}.project-meta dd{margin:0;color:var(--muted)}.project-responsibilities{margin-bottom:22px}.project-responsibilities summary{list-style:none;border-radius:40px;background:var(--ink);color:var(--surface);display:flex;align-items:center;justify-content:space-between;padding:17px 21px;cursor:pointer;font-size:11px}.project-responsibilities summary::-webkit-details-marker{display:none}.project-responsibilities svg{width:19px;height:19px;transition:transform .3s}.project-responsibilities[open] svg{transform:rotate(90deg)}.responsibility-copy{padding:9px 3px 0}.responsibility-copy p{display:grid;grid-template-columns:23px 1fr;gap:8px;font-size:12px;line-height:1.65;color:#695d52;border-bottom:1px solid var(--line);padding:15px 0;margin:0}.responsibility-copy span{font-family:var(--serif);color:var(--accent)}.evidence-note{font-size:10px;line-height:1.7;color:var(--muted);margin:16px 0 0}.panel-signoff{text-align:right;font-family:var(--serif);font-style:italic;font-size:25px;line-height:1.3;margin:32px 0 0;color:var(--accent)}.missing-clip-note{font-size:11px;line-height:1.6;padding:13px 15px;margin:0 0 23px;border-left:2px solid var(--accent);background:#ede5d8}.site-footer{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:26px 34px;font-size:9px;letter-spacing:.085em;color:var(--muted);border-top:1px solid var(--line)}.site-footer>span:last-child{letter-spacing:0;font-size:10px}.footer-divider{margin:0 11px;color:#bdad96}.info-dialog{border:1px solid var(--line);background:var(--paper);color:var(--ink);width:min(590px,calc(100vw - 35px));padding:48px;max-height:86svh;overflow:auto}.info-dialog::backdrop{background:#241b15a6;backdrop-filter:blur(5px)}.dialog-close{position:absolute;right:15px;top:15px}.dialog-kicker{font-size:9px;letter-spacing:.16em;color:var(--accent);margin-bottom:23px}.info-dialog h2{font-family:var(--serif);font-weight:400;letter-spacing:-.04em;font-size:43px;line-height:1.08;margin-bottom:24px}.info-dialog h3{font-family:var(--serif);font-size:24px;font-weight:400}.info-dialog p:not(.dialog-kicker){line-height:1.75;font-size:13px;color:#695d52}.info-dialog .evidence-note{font-size:11px!important}.how-steps{display:flex;align-items:center;gap:14px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:22px 0;margin:26px 0;justify-content:space-between}.how-steps span{font-size:9px;letter-spacing:.05em}.how-steps svg{width:18px;height:18px;flex-shrink:0}kbd{font-family:var(--sans);font-size:11px;border:1px solid var(--line);padding:2px 5px;margin:0 2px}.decoder-video{position:fixed;left:-4px;top:-4px;width:2px;height:2px;opacity:.001;pointer-events:none;z-index:-1}.mobile-intro{display:none}
@media(min-width:1800px){.gallery-main .scene-caption h1{font-size:85px}.has-selection .scene-caption h1{font-size:65px}}
@media(max-width:1200px){.site-header{height:74px;padding:0 24px;gap:27px}.wordmark{font-size:28px}.site-header nav{gap:24px}.panel-inner{max-height:calc(100svh - 74px);padding:15px 24px 30px}.workspace.has-selection{grid-template-columns:minmax(0,1fr) 350px}.panel-inner{width:350px}.has-selection .scene-caption h1{font-size:36px}.scene-caption p{margin-bottom:10px}.scene-caption h1{margin-bottom:14px}.has-selection .project-index{grid-template-columns:repeat(5,1fr);padding:0 13px}.has-selection .index-item{flex-direction:column;align-items:flex-start;padding:14px 8px;gap:7px}.has-selection .index-copy strong{font-size:13px}.has-selection .index-copy small{font-size:8px}.transport{padding:11px 21px;flex-wrap:wrap;gap:7px}.has-selection .gallery-footnote{padding:16px 22px}.has-selection .edition{display:none}.has-selection .scene-note{font-size:8px}}
@media(max-width:900px){.site-header{gap:20px}.how-button{font-size:0;gap:0}.how-button svg{width:22px;height:22px}.site-header nav{gap:20px}.workspace.has-selection{grid-template-columns:minmax(0,1fr)}.detail-panel{position:fixed;right:0;bottom:0;top:auto;width:100%;z-index:15;height:57svh;transform:translateY(100%);opacity:1;border-left:0;border-top:1px solid var(--line);box-shadow:0 -12px 30px #2b211e17}.has-selection .detail-panel{transform:translateY(0)}.panel-inner{width:100%;padding:10px 27px 35px;max-height:57svh;position:relative}.panel-toolbar{position:sticky;top:-10px;background:var(--paper);z-index:2;padding:9px 0;margin-bottom:17px;border-bottom:1px solid var(--line)}.detail-figure{float:right;width:37%;margin:0 0 23px 25px}.detail-panel h2{font-size:36px}.project-description{font-size:16px}.project-meta{clear:both}.has-selection .scene-caption h1{font-size:clamp(36px,5vw,60px)}.has-selection .index-item{flex-direction:row;align-items:center}.has-selection .index-copy strong{font-size:15px}.has-selection .index-copy small{font-size:9px}.gallery-footnote .edition{display:none}.scene-note{font-size:9px}.project-index{padding:0 14px}.index-item{gap:9px;padding:20px 8px}.index-copy strong{font-size:15px}.index-copy small{font-size:8px}.index-number{font-size:20px}.site-footer{padding:23px;flex-wrap:wrap;gap:9px}.has-selection .site-footer{padding-bottom:57svh}}
@media(max-width:580px){.site-header{height:69px;padding:0 18px;gap:18px}.wordmark{font-size:24px;letter-spacing:-.8px}.site-header nav{margin-left:auto;gap:14px}.nav-link{font-size:11px}.site-header .how-button{display:none}.nav-link:last-child{font-size:0}.nav-link:last-child:before{content:'About';font-size:11px}.mobile-intro{display:block;padding:29px 23px 25px}.mobile-intro p{font-size:9px;letter-spacing:.14em;margin-bottom:12px;color:var(--muted)}.mobile-intro h1{font-family:var(--serif);font-weight:400;font-size:42px;letter-spacing:-.055em;line-height:1;margin-bottom:0}.scene-caption{display:none}.scene-note{font-size:7px}.photo-number{font-size:8px}.photo-hotspot.is-selected .photo-number{width:17px;height:17px;font-size:7px}.photo-tooltip:not([hidden]){display:none}.gallery-footnote{font-size:11px;padding:16px 20px}.project-index,.has-selection .project-index{display:flex;overflow-x:auto;scroll-snap-type:x proximity;gap:0;padding:0 12px;min-height:80px}.index-item,.has-selection .index-item{min-width:164px;padding:16px 10px;scroll-snap-align:start;gap:10px;flex-direction:row;align-items:center}.index-copy strong,.has-selection .index-copy strong{font-size:16px}.index-copy small{font-size:9px}.index-arrow{display:block}.transport{padding:13px 22px;gap:8px;align-items:flex-start;flex-direction:column;min-height:80px}.playback-controls{gap:25px}.transport-status{font-size:10px}.site-footer{font-size:8px;padding:21px 22px;line-height:1.7}.site-footer>span:last-child{font-size:9px}.panel-inner{padding:8px 23px 26px}.detail-panel{height:53svh}.panel-inner{max-height:53svh}.detail-figure{width:34%;margin-left:17px}.detail-figure figcaption{font-size:6px}.detail-panel h2{font-size:31px}.project-type{font-size:8px;margin-bottom:15px}.project-description{font-size:15px;line-height:1.55}.evidence-note{font-size:10px}.info-dialog{padding:40px 27px 28px}.info-dialog h2{font-size:36px}.how-steps{gap:8px}.how-steps span{font-size:8px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}
@media(max-width:580px){.has-selection .mobile-intro{display:none}}


/* Desk edition. The moving artwork is never covered by a duplicate logo layer. */
.workspace{max-width:1800px}
.work-intro{display:flex;justify-content:space-between;align-items:flex-end;gap:28px;padding:27px 36px 25px}
.work-intro>div>p{font-size:9px;letter-spacing:.17em;color:var(--accent);margin:0 0 12px}
.work-intro h1{font-family:var(--serif);font-weight:400;font-size:clamp(34px,3.25vw,53px);letter-spacing:-.045em;line-height:1.07;margin:0}
.work-intro h1 em{font-weight:400}
.work-intro .intro-detail{font-size:12px;line-height:1.65;color:var(--muted);margin:0;max-width:260px}
.scene{max-width:1100px;margin:auto;background:#dacbb7}
.photo-number{opacity:0}
.photo-hotspot:hover .photo-number,.photo-hotspot:focus-visible .photo-number,.photo-hotspot.is-selected .photo-number{opacity:1}
.is-moving .photo-number{opacity:0!important}
.photo-hotspot:hover{background:#fff4;filter:drop-shadow(0 2px 8px #fff6)}
.detail-figure img{aspect-ratio:1.5;object-fit:contain;background:#f8f3e8;border:1px solid var(--line);padding:12px;max-height:190px}
.detail-figure figcaption{font-size:8px;letter-spacing:.06em}
.has-selection .work-intro .intro-detail{display:none}
.has-selection .work-intro{padding:25px 28px}
.has-selection .work-intro h1{font-size:38px}
.is-embedded .site-header,.is-embedded .site-footer,.is-embedded .work-intro{display:none}
.is-embedded .workspace{max-width:none}
.is-embedded .scene{max-width:none}
.is-embedded .panel-inner{max-height:100svh}
@media(max-width:900px){.work-intro{padding:23px 26px}.work-intro h1{font-size:39px}.work-intro .intro-detail{font-size:11px}.detail-figure img{max-height:160px}}
@media(max-width:580px){.work-intro,.has-selection .work-intro{padding:23px 22px 24px}.work-intro h1,.has-selection .work-intro h1{font-size:35px}.work-intro .intro-detail{display:none}.has-selection .work-intro{display:none}.detail-figure img{aspect-ratio:1;padding:5px}.detail-figure figcaption{font-size:6px}.photo-hotspot.is-selected .photo-number{width:16px;height:16px;font-size:7px}.is-embedded .detail-panel,.is-embedded .panel-inner{max-height:58svh}.site-footer{padding-bottom:24px}}

/* Edge-only focus treatment avoids washing over her arm when it crosses a card. */
.photo-hotspot:hover,.photo-hotspot:focus-visible{background:transparent;filter:none}
.photo-hotspot .hotspot-edge{position:absolute;inset:0;width:100%;height:100%;opacity:0;pointer-events:none;stroke:#8b673b;stroke-width:2px;transition:opacity .2s}
.photo-hotspot:hover .hotspot-edge,.photo-hotspot:focus-visible .hotspot-edge{opacity:.85}
.photo-hotspot.is-selected .hotspot-edge{opacity:.55}
.is-moving .hotspot-edge{opacity:0!important}
.is-moving .photo-tooltip{display:none!important}
