:root{--ink:#161617;--muted:#6e6e73;--paper:#fff;--wash:#f5f5f7;--line:#d2d2d7;--blue:#0071e3;--max:1240px}*{box-sizing:border-box}html{scroll-behavior:auto;scroll-padding-top:92px}body{margin:0;background:var(--paper);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Helvetica Neue",Arial,sans-serif;font-size:17px;line-height:1.75;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}a,button,summary{-webkit-tap-highlight-color:transparent}button:disabled{opacity:.35;cursor:default}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid var(--blue);outline-offset:5px}img{max-width:100%;height:auto;display:block}p{margin:0 0 1em}h1,h2,h3{line-height:1.18;letter-spacing:-.035em;margin:0;font-weight:600}h1{font-size:clamp(40px,5vw,72px)}h2{font-size:clamp(29px,3.5vw,46px)}h3{font-size:23px}header{height:76px;padding:0 max(28px,calc((100vw - var(--max))/2));display:flex;justify-content:space-between;align-items:center;background:rgba(255,255,255,.94);backdrop-filter:blur(18px);border-bottom:1px solid #0000000d;position:sticky;top:0;z-index:20;gap:36px}.brand{font-size:20px;font-weight:600;white-space:nowrap;letter-spacing:-.04em}.brand span{font-size:12px;font-weight:400;letter-spacing:0;margin-left:12px;color:var(--muted)}header nav{display:flex;gap:30px;font-size:14px;white-space:nowrap}header nav a{padding:23px 0}header nav a:hover,header nav a[aria-current]{color:var(--blue)}.menu-toggle{display:none}.skip{position:fixed;top:-100px;left:20px;background:white;padding:12px;z-index:99}.skip:focus{top:5px}main{min-height:70vh}.page-heading{max-width:var(--max);margin:0 auto;padding:70px 28px 52px}.page-heading .lead{max-width:800px;margin:25px 0 18px;font-size:clamp(21px,2.3vw,28px);line-height:1.55;letter-spacing:-.02em}.meta{color:var(--muted);font-size:14px;line-height:1.7;max-width:900px;margin-top:18px}.back{font-size:14px;color:var(--muted);display:inline-block;margin:0 0 28px}.back:hover{color:var(--blue)}.hero-image{max-width:var(--max);padding:0 28px;margin:0 auto 18px}.hero-image img{width:100%;max-height:690px;object-fit:contain;background:var(--wash);border-radius:8px}.section{max-width:var(--max);margin:0 auto;padding:74px 28px}.section+.section{padding-top:30px}.section-head{margin-bottom:32px}.section-intro{color:var(--muted);font-size:21px;margin-top:-12px;margin-bottom:36px}.prose{max-width:790px;font-size:19px;line-height:1.9}.prose p+p{margin-top:20px}.prose a{color:var(--blue)}.section>p:not(.credits){font-size:14px;color:var(--muted);margin-top:20px}.gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;margin:30px 0}.gallery figure{margin:0;min-width:0}.gallery img{width:100%;height:370px;object-fit:contain;background:var(--wash)}figure{margin:30px 0}figcaption{font-size:13px;color:var(--muted);margin-top:10px;line-height:1.6}.image-open{padding:0;border:0;background:transparent;display:block;width:100%;text-align:left}.image-open img{border-radius:6px}.image-open:hover{opacity:.96}.section>figure img{margin:auto;max-height:780px;object-fit:contain}.long-gallery img{height:480px;object-fit:cover;object-position:top}.vertical-gallery{grid-template-columns:repeat(3,minmax(0,1fr))}.vertical-gallery img{height:500px;object-fit:contain}.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:48px 32px}.project-card{display:block;min-width:0}.card-image{aspect-ratio:1.65;overflow:hidden;border-radius:8px;background:var(--wash)}.card-image img{width:100%;height:100%;object-fit:cover;transition:transform .5s}.card-image.contain img{object-fit:contain}.project-card:hover .card-image img{transform:scale(1.025)}.card-copy{display:flex;justify-content:space-between;gap:18px;margin-top:20px}.card-copy h3{font-size:26px;line-height:1.35}.card-copy p{font-size:14px;color:var(--muted);margin:8px 0 0}.card-arrow{font-size:25px;color:var(--muted)}.card-desc{font-size:16px;color:var(--muted);margin:9px 0 0;max-width:540px}.wide{grid-column:1/-1}.wide .card-image{aspect-ratio:2.18}.wide .card-copy h3{font-size:32px}.home-hero{background:#161617;color:white;display:grid;grid-template-columns:45% 55%;min-height:650px;max-width:1600px;margin:auto}.home-copy{padding:78px 36px 80px max(36px,calc((100vw - var(--max))/2 + 28px));align-self:center}.home-name{font-size:16px;color:#b9b9be;margin-bottom:28px}.home-copy h1{font-size:clamp(44px,5.5vw,78px);line-height:1.14;letter-spacing:-.05em}.home-copy>p:not(.home-name){font-size:18px;line-height:1.85;color:#c6c6ca;margin-top:28px}.home-portrait{overflow:hidden}.home-portrait img{height:100%;min-height:650px;width:100%;object-fit:cover;object-position:48% center}.actions{display:flex;gap:20px;align-items:center;flex-wrap:wrap;margin-top:28px}.button{display:inline-block;background:var(--blue);color:white;padding:11px 24px;border-radius:28px;font-size:15px;border:1px solid transparent}.button.secondary{background:transparent;color:var(--blue);border-color:var(--blue)}.button.light{background:white;color:var(--ink)}.plain-link{font-size:15px}.chapter-trio{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}.chapter-trio img{aspect-ratio:1.5;object-fit:cover;width:100%;border-radius:6px}.chapter-trio h3{margin-top:22px}.chapter-trio p{font-size:15px;color:var(--muted);margin-top:10px}.chapter-trio span,.simple-links span{color:var(--blue);font-size:14px}.photo-cover{position:relative;color:white;overflow:hidden;display:block;margin:75px auto;max-width:1600px;isolation:isolate}.photo-cover:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.78),rgba(0,0,0,.35) 45%,transparent 75%);z-index:0}.photo-cover img{width:100%;max-height:760px;object-fit:cover;min-height:450px}.photo-cover>div{position:absolute;z-index:1;left:max(30px,calc((100vw - var(--max))/2 + 28px));top:50%;transform:translateY(-50%);max-width:50%;padding-right:20px}.photo-cover h1,.photo-cover h2{font-size:clamp(30px,4.4vw,60px);line-height:1.2;margin:15px 0}.photo-cover p{font-size:16px}.simple-links{display:grid;grid-template-columns:1fr 1fr;gap:60px}.simple-links a{padding:30px 0;border-top:1px solid var(--line)}.simple-links p{color:var(--muted);margin:18px 0}.chapter-link{max-width:var(--max);margin:0 auto 80px;padding:0 28px;display:grid;grid-template-columns:1.2fr 1fr;gap:55px;align-items:center}.chapter-link img{aspect-ratio:1.5;object-fit:cover;border-radius:6px}.chapter-link h2{margin:18px 0}.chapter-link p{color:var(--muted)}.chapter-link span{color:var(--blue);font-size:15px}.player{margin:35px 0}.video-stage{background:#000;border-radius:8px;overflow:hidden;display:flex;justify-content:center;align-items:center;min-height:200px}.video-stage video{width:100%;max-height:75vh;display:block;min-height:200px}.video-tabs,.filter-tabs{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0}.video-tabs button,.filter-tabs button{background:var(--wash);color:var(--ink);border:1px solid transparent;padding:9px 17px;border-radius:22px;font-size:14px}.video-tabs button.active,.filter-tabs button.active{background:var(--ink);color:white}.video-role{font-size:14px;color:var(--muted);margin:12px 0}.media-error{font-size:15px;color:#b44717}.media-error a{text-decoration:underline}.credits{color:var(--muted);font-size:15px}.four-notes,.skills,.process{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:35px 50px;margin:38px 0}.four-notes p,.skills p,.process p{font-size:17px;color:var(--muted);margin:15px 0 0}.process>div{border-top:1px solid var(--line);padding-top:24px}details{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:20px 0;margin:28px 0}summary{cursor:pointer;font-size:17px;font-weight:500}details>div{padding-top:25px}.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px;margin:40px 0}.stat-grid strong{font-size:clamp(24px,3.1vw,42px);display:block;line-height:1.3;letter-spacing:-.04em}.stat-grid span{display:block;color:var(--muted);font-size:14px;margin-top:12px}.data-bars>div{display:flex;justify-content:space-between;align-items:center;margin:25px 0}.data-bars strong{font-size:30px;margin-right:20px}.data-bars span{color:var(--muted)}.bar{display:none}.text-links{display:flex;flex-wrap:wrap;gap:18px 30px;font-size:15px;color:var(--blue);margin-top:22px}.reader{padding:25px;background:var(--wash);border-radius:8px;margin:30px 0}.reader-top{display:flex;gap:15px;align-items:center;justify-content:space-between}.reader-count{font-size:13px;color:var(--muted);white-space:nowrap}.reader>p{font-size:14px;color:var(--muted);margin:18px 0}.reader-image img{width:100%;max-height:600px;object-fit:contain}.reader-controls{display:flex;justify-content:space-between;gap:16px;margin-top:20px;align-items:center;font-size:14px}.reader-controls button{border:0;background:var(--paper);padding:8px 18px;border-radius:20px}.reader-controls span{color:var(--muted)}.local-nav{display:flex;justify-content:center;gap:25px;padding:16px 25px;background:var(--wash);font-size:14px;margin:30px 0}.timeline{max-width:var(--max);padding:10px 28px 60px;margin:auto}.timeline-entry{display:grid;grid-template-columns:220px 1fr;gap:40px;padding:40px 0 65px}.timeline-date{font-size:16px;color:var(--muted);padding-top:7px}.timeline-content{border-left:1px solid var(--line);padding-left:45px;min-width:0}.timeline h2{font-size:32px;line-height:1.4}.timeline h3{font-size:17px;color:var(--muted);margin:18px 0}.timeline .prose{font-size:18px}.timeline figure img{max-height:450px;object-fit:contain;margin:auto}.flow{display:flex;align-items:center;gap:22px;flex-wrap:wrap;margin:35px 0;padding:30px;background:var(--wash);border-radius:8px}.flow b{color:var(--muted);font-weight:400}.phone-image{max-width:330px;margin:30px auto}.phone-image img{width:100%}.about-opening{max-width:var(--max);padding:70px 28px;margin:auto;display:grid;grid-template-columns:1fr 1fr;gap:65px;align-items:center}.about-opening img{width:100%;border-radius:8px;aspect-ratio:.95;object-fit:cover}.about-opening .lead{font-size:30px;line-height:1.5;margin:25px 0}.about-opening .prose{font-size:17px}.education{display:grid;grid-template-columns:1fr 1fr;gap:55px}.education span{font-size:14px;color:var(--muted)}.education h3{margin:18px 0}.education p{font-size:17px;margin:18px 0}.experience-list>a{display:grid;grid-template-columns:210px 1fr;gap:30px;padding:24px 0;border-bottom:1px solid var(--line)}.experience-list span{font-size:14px;color:var(--muted)}.experience-list h3{font-size:21px}.experience-list p{font-size:15px;color:var(--muted);margin:10px 0 0}.award-list a{display:block;padding:25px 0;border-bottom:1px solid var(--line)}.award-list p{font-size:17px;color:var(--muted);margin:12px 0 0}.award-list a:hover h3{color:var(--blue)}.contact-list>div{display:flex;align-items:center;gap:25px;margin:22px 0;flex-wrap:wrap}.contact-list a{font-size:clamp(18px,3vw,30px);letter-spacing:-.02em}.contact-list button{background:transparent;color:var(--blue);font-size:14px;border:0}.interview-intro{max-width:800px;margin:60px auto;padding:0 28px;color:var(--muted);font-size:15px}.interview{max-width:850px;padding:0 28px 70px;margin:auto;font-size:18px;line-height:2}.interview p{margin:20px 0}.interview .question{font-weight:600;font-size:23px;margin-top:55px;line-height:1.6}.interview figure{margin:45px 0}.interview img{width:auto;max-height:1000px;margin:auto}.interview figcaption{font-size:12px}.dark-page{--ink:#f5f5f7;--muted:#a1a1a6;--paper:#161617;--wash:#252527;--line:#424245;--blue:#8ac2ff}.dark-page header{background:rgba(22,22,23,.95)}.dark-page .reader-controls button{color:white}footer{padding:60px max(28px,calc((100vw - var(--max))/2 + 28px)) 30px;background:var(--wash);display:grid;grid-template-columns:1fr 1fr;gap:30px;margin-top:60px}footer p{color:var(--muted);font-size:14px;margin-top:12px}footer>div:nth-child(2){display:flex;flex-direction:column;align-items:flex-end;gap:10px;font-size:14px}footer small{grid-column:1/-1;color:var(--muted);font-size:12px;margin-top:25px}dialog{border:0;padding:0;width:96vw;max-width:1600px;height:94vh;max-height:94vh;background:#fff;color:#161617;border-radius:10px}dialog::backdrop{background:#000c;backdrop-filter:blur(8px)}dialog[open]{display:flex;flex-direction:column}.lightbox-top,.lightbox-bottom{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px 24px;flex-shrink:0;font-size:14px}.lightbox-top p{margin:0}.lightbox-top button,.lightbox-bottom button{background:#f5f5f7;border:0;border-radius:20px;padding:9px 18px;white-space:nowrap;font-size:14px}.lightbox-body{overflow:auto;flex:1;min-height:0;padding:15px 30px;background:#f5f5f7}.lightbox-body img{max-width:100%;width:auto;max-height:none;margin:auto}.lightbox-body:not(.long-view) img{max-height:100%;object-fit:contain}.toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#161617;color:#fff;padding:12px 25px;border-radius:30px;font-size:14px;z-index:100;display:none}.toast.visible{display:block}[hidden]{display:none!important}@media(min-width:1500px){.home-copy{padding-left:80px}.photo-cover>div{left:100px}}@media(max-width:900px){header{padding:0 24px;gap:20px}header nav{gap:18px;font-size:13px}.brand span{display:none}.home-hero{min-height:550px;grid-template-columns:48% 52%}.home-copy{padding:50px 28px}.home-portrait img{min-height:550px}.home-copy h1{font-size:52px}.home-copy>p:not(.home-name){font-size:16px}.timeline-entry{grid-template-columns:160px 1fr;gap:15px}.timeline-content{padding-left:25px}.about-opening{gap:30px}.gallery img{height:280px}.chapter-link{gap:30px}.stat-grid{grid-template-columns:repeat(2,1fr)}.chapter-trio{gap:20px}}@media(max-width:640px){header{height:64px;padding:0 22px}.brand{font-size:18px}.menu-toggle{display:block;border:0;background:transparent;font-size:14px;color:inherit;padding:12px}header nav{display:none;position:absolute;top:64px;left:0;right:0;background:var(--paper);padding:15px 24px 25px;box-shadow:0 12px 20px #0001;flex-direction:column;gap:0;font-size:17px}header nav.open{display:flex}header nav a{padding:12px 0}.home-hero{display:flex;flex-direction:column}.home-copy{padding:46px 25px 42px}.home-name{font-size:14px;margin-bottom:18px}.home-copy h1{font-size:53px}.home-copy>p:not(.home-name){margin-top:20px}.home-portrait img{min-height:0;height:380px;object-position:center 42%}.page-heading{padding:45px 24px 35px}.page-heading h1{font-size:39px}.page-heading .lead{font-size:21px}.hero-image{padding:0 20px}.section{padding:48px 24px}.section+.section{padding-top:20px}.section-head{margin-bottom:25px}.section-intro{font-size:17px}.prose{font-size:17px}.project-grid{grid-template-columns:1fr;gap:35px}.wide{grid-column:auto}.card-image,.wide .card-image{aspect-ratio:1.5}.card-copy{margin-top:16px}.card-copy h3,.wide .card-copy h3{font-size:24px}.card-desc{font-size:15px}.chapter-trio{grid-template-columns:1fr;gap:35px}.chapter-trio img{aspect-ratio:1.7}.simple-links{grid-template-columns:1fr;gap:15px}.photo-cover{margin:40px auto}.photo-cover img{height:500px;min-height:0;object-position:60% center}.photo-cover>div{left:25px;max-width:67%;top:auto;bottom:20px;transform:none}.photo-cover h1,.photo-cover h2{font-size:32px}.photo-cover p{font-size:14px}.photo-cover:after{background:linear-gradient(90deg,#000b,#0005 55%,transparent)}.chapter-link{grid-template-columns:1fr;margin-bottom:50px;padding:0 24px;gap:18px}.chapter-link h2{font-size:31px}.gallery{gap:22px;grid-template-columns:1fr}.gallery img{height:auto;max-height:650px}.vertical-gallery{grid-template-columns:1fr 1fr;gap:12px}.vertical-gallery img{height:350px}.long-gallery img{height:450px;max-height:450px}.four-notes,.skills,.process{grid-template-columns:1fr;gap:25px}.video-stage video{max-height:70vh}.video-tabs button{font-size:13px;padding:9px 13px}.stat-grid{gap:26px 15px}.data-bars strong{font-size:25px}.data-bars span{font-size:14px}.reader{padding:15px;margin:25px 0}.reader-top{align-items:flex-start}.reader-top h3{font-size:19px;line-height:1.4}.reader-count{font-size:11px}.reader-controls button{padding:8px 14px}.timeline{padding:0 24px}.timeline-entry{display:block;padding:25px 0}.timeline-date{margin-bottom:15px}.timeline-content{padding-left:20px}.timeline h2{font-size:27px}.timeline .prose{font-size:17px}.about-opening{grid-template-columns:1fr;padding:40px 24px;gap:30px}.about-opening img{aspect-ratio:1.15;grid-row:1}.about-opening .lead{font-size:27px}.education{grid-template-columns:1fr;gap:30px}.experience-list>a{grid-template-columns:1fr;gap:12px}.experience-list h3{font-size:20px}.flow{gap:12px;padding:20px;font-size:14px}.flow b{font-size:12px}.local-nav{gap:15px;font-size:12px;padding:15px 10px}.interview{font-size:17px;padding:0 24px 40px}.interview .question{font-size:21px}.interview-intro{padding:0 24px;margin:35px auto}footer{grid-template-columns:1fr;padding:40px 24px 25px;gap:20px}footer>div:nth-child(2){align-items:flex-start}dialog{width:98vw;height:95vh;max-height:95vh}.lightbox-top,.lightbox-bottom{padding:12px;gap:10px;font-size:12px}.lightbox-body{padding:10px}.lightbox-top button,.lightbox-bottom button{font-size:12px;padding:8px 13px}.contact-list a{font-size:20px}.actions{gap:18px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
.engagement-chart{max-width:850px;margin:35px 0}.engagement-chart>div{display:grid;grid-template-columns:60px 1fr 90px;align-items:center;gap:20px;margin:25px 0;font-size:15px}.engagement-chart>div>div{height:11px;background:var(--wash);border-radius:6px;overflow:hidden}.engagement-chart i{height:100%;display:block;background:#526b91;border-radius:6px}.engagement-chart strong{text-align:right;font-size:17px;font-weight:500}#clipbox{height:auto;background:#161617;color:white;max-width:1100px}#clipbox video{width:100%;max-height:75vh;display:block;background:black}.clip-open{cursor:pointer}
.home-portrait img{object-position:50% 58%}.about-opening img{object-position:50% 57%;aspect-ratio:.8}@media(max-width:640px){.home-portrait img{height:510px;object-position:50% 58%}.about-opening img{aspect-ratio:.85;object-position:50% 58%}}
.lightbox-body.zoomed img,.lightbox-body.zoomed:not(.long-view) img{width:1500px;max-width:none;max-height:none;margin:0}.lightbox-top p{overflow-wrap:anywhere}@media(max-width:640px){.lightbox-body.zoomed img,.lightbox-body.zoomed:not(.long-view) img{width:1100px}.lightbox-bottom{gap:5px}.lightbox-bottom button{padding:8px 10px}}
@media(min-width:641px){.home-hero{height:min(760px,calc(100svh - 76px));min-height:600px}.home-portrait{min-height:0}.home-portrait img{height:100%;min-height:0}}@media(min-width:641px) and (max-width:900px){.home-hero{height:620px;min-height:0}.home-copy h1{font-size:48px}}
.home-portrait img{object-position:50% 92%}@media(max-width:640px){.home-portrait img{height:450px;object-position:50% 90%}}
.project-context{font-size:13px;color:var(--muted);margin:15px 0 0}.sibling-nav{max-width:1184px;margin:35px auto;padding:18px 28px;display:flex;flex-wrap:wrap;gap:14px 25px;border-top:1px solid var(--line);font-size:14px}.sibling-nav a[aria-current]{color:var(--blue)}.reader-thumbs{display:flex;flex-wrap:wrap;gap:8px;margin:15px 0}.reader-thumbs button{border:1px solid var(--line);border-radius:18px;padding:6px 13px;background:var(--paper);font-size:13px;color:var(--ink)}.reader-thumbs button[aria-pressed=true]{background:var(--ink);color:var(--paper);border-color:var(--ink)}.reader-mobile-pages{display:none}.interview-toc{max-width:850px;margin:0 auto;padding:0 28px}.interview-toc a{display:block;margin:10px 0;color:var(--muted);font-size:15px}.image-retry{border:0;background:var(--wash);color:var(--blue);padding:12px;border-radius:5px;font-size:14px;margin:10px 0}.page-photography .photo-cover{margin-top:0}@media(max-width:640px){.reader-mobile-pages{display:block}.reader-mobile-pages img{max-height:none;height:auto}.page-photography .photo-cover{background:#161617}.page-photography .photo-cover img{height:350px;object-position:70% center}.page-photography .photo-cover>div{position:relative;left:0;bottom:auto;top:auto;transform:none;max-width:none;padding:25px}.page-photography .photo-cover:after{height:350px}.page-photography .photo-cover h1{font-size:32px}.vertical-gallery{grid-template-columns:1fr}.vertical-gallery img{height:auto;max-height:660px}.interview-toc{padding:0 24px}.sibling-nav{margin:25px 24px;padding:18px 0;font-size:13px}}
.interview .publisher-media{max-width:260px;margin:35px auto}.interview .publisher-media img{max-height:220px;object-fit:contain}.interview .publisher-media figcaption{font-size:11px}
.portrait-case{display:grid;grid-template-columns:1fr 420px;gap:0 55px;align-items:start}.portrait-case .section-head,.portrait-case .prose{grid-column:1}.portrait-case .player{grid-column:2;grid-row:1/span 2;margin:0}.portrait-case .video-stage video{width:100%;max-height:none}@media(max-width:850px){.portrait-case{display:block}.portrait-case .player{max-width:420px;margin:30px auto}}
.wrap-nav{flex-wrap:wrap}
.interview .image-open img{width:100%;height:auto;max-height:1000px;object-fit:contain}
.chapter-link img,.chapter-trio img{object-fit:contain;background:var(--wash)}.card-cta{display:inline-block;margin-top:13px;font-size:14px;color:var(--blue)}

/* Homepage portrait: quieter scale, balanced with introductory copy. */
@media(min-width:901px){.home-hero{grid-template-columns:1fr 1fr;height:min(680px,calc(100svh - 76px));min-height:600px}.home-portrait{width:min(360px,80%);height:420px;align-self:center;justify-self:center;border-radius:12px}.home-portrait img{width:100%;height:100%;object-position:50% 92%}}
@media(min-width:641px) and (max-width:900px){.home-hero{grid-template-columns:1fr 1fr}.home-portrait{width:82%;max-width:300px;height:370px;align-self:center;justify-self:center;border-radius:10px}.home-portrait img{height:100%;object-position:50% 92%}}
@media(max-width:640px){.home-portrait{width:calc(100% - 48px);max-width:320px;height:360px;align-self:center;margin:0 auto 38px;border-radius:10px}.home-portrait img{width:100%;height:100%;min-height:0;object-position:50% 92%}}

.intro-tags{list-style:none;padding:0;margin:28px 0 0;display:flex;flex-wrap:wrap;gap:12px;max-width:420px}.intro-tags li{font-size:16px;line-height:1.4;padding:9px 16px;border:1px solid #5a5a5f;border-radius:22px;color:#e1e1e5;white-space:nowrap}@media(max-width:640px){.home-copy h1{font-size:48px}.intro-tags{gap:10px;max-width:290px}.intro-tags li{font-size:14px;padding:8px 14px}}

@media(max-width:900px){.intro-tags{display:grid;grid-template-columns:repeat(2,max-content)}}

.home-copy .intro-directions{font-size:clamp(20px,2vw,28px);line-height:1.5;color:#f5f5f7;margin:28px 0 18px;max-width:none}.home-copy .intro-summary{font-size:18px;line-height:1.85;color:#a1a1a6;max-width:490px;margin:0}.home-copy .actions{margin-top:30px}@media(max-width:640px){.home-copy .intro-directions{font-size:20px;margin-top:22px}.home-copy .intro-summary{font-size:16px;line-height:1.8}}

/* Align portrait framing with the introductory text. */
@media(min-width:901px){.home-hero{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);padding:72px max(48px,calc((100vw - 1184px)/2));gap:64px;height:auto;min-height:610px}.home-copy{padding:0}.home-portrait{width:min(360px,100%);height:auto;aspect-ratio:1;justify-self:center;border-radius:8px}.home-portrait img{height:100%;min-height:0;object-position:50% 100%}}
@media(min-width:641px) and (max-width:900px){.home-hero{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);padding:64px 32px;gap:38px;height:auto;min-height:560px}.home-copy{padding:0}.home-portrait{width:100%;max-width:300px;height:auto;aspect-ratio:1;border-radius:8px}.home-portrait img{height:100%;object-position:50% 100%}}
@media(max-width:640px){.home-portrait{width:calc(100% - 50px);max-width:320px;height:auto;aspect-ratio:1;margin-bottom:42px;border-radius:8px}.home-portrait img{height:100%;object-position:50% 100%}}

.home-copy>p.intro-directions{font-size:clamp(23px,2.35vw,32px);font-weight:500;line-height:1.5;letter-spacing:-.02em;color:#f5f5f7;margin:28px 0 30px;max-width:none}.home-copy>p.intro-summary{font-size:18px;font-weight:400;line-height:1.85;color:#a1a1a6;margin:0;max-width:490px}@media(min-width:641px) and (max-width:900px){.home-copy>p.intro-directions{font-size:23px}}@media(max-width:640px){.home-copy>p.intro-directions{font-size:23px;line-height:1.5;margin:24px 0 25px}.home-copy>p.intro-summary{font-size:16px;line-height:1.8;margin:0}}
/* Temporary local portrait art direction controls. */
@media(min-width:641px){.home-hero{padding:0;gap:0;grid-template-columns:1fr 1fr;height:min(680px,calc(100svh - 76px));min-height:600px}.home-copy{padding:64px 36px 64px max(36px,calc((100vw - 1240px)/2 + 28px))}.home-portrait{width:min(var(--portrait-width,360px),90%);height:var(--portrait-height,420px);aspect-ratio:auto;justify-self:center;align-self:center;border-radius:12px;transform:translate(var(--portrait-x,0px),var(--portrait-y,0px))}.home-portrait img{width:100%;height:100%;min-height:0;object-fit:cover;object-position:50% var(--portrait-crop,92%);transform:scale(var(--portrait-zoom,1))}}
@media(min-width:641px) and (max-width:900px){.home-copy{padding:50px 28px}.home-portrait{width:min(var(--portrait-width,300px),90%);height:var(--portrait-height,370px)}}
/* Keep the chosen horizontal framing; extend the photo to the hero edges. */
@media(min-width:641px){.home-hero{overflow:hidden}.home-portrait{height:100%;max-height:none;align-self:stretch;border-radius:0;transform:translateX(var(--portrait-x,0px))}.home-portrait img{height:100%}}
/* A compact, consistently spaced introduction. */
.home-copy{display:flex;flex-direction:column;align-items:flex-start}.home-copy .home-name{font-size:15px;line-height:1.5;letter-spacing:0;margin:0 0 18px}.home-copy h1{font-size:clamp(48px,5.1vw,72px);line-height:1.12;letter-spacing:-.045em;margin:0}.home-copy>p.intro-directions{font-size:clamp(22px,2.1vw,29px);font-weight:500;line-height:1.5;letter-spacing:-.025em;margin:20px 0 0}.home-copy>p.intro-summary{font-size:17px;line-height:1.9;max-width:470px;margin:28px 0 0;color:#a1a1a6;text-wrap:pretty}.home-copy .actions{margin:28px 0 0;gap:24px}.home-copy .button{padding:10px 22px}.home-copy .plain-link{font-size:14px}@media(min-width:641px) and (max-width:900px){.home-copy h1{font-size:48px}.home-copy>p.intro-directions{font-size:21px}.home-copy>p.intro-summary{font-size:16px;line-height:1.85;margin-top:24px}}@media(max-width:640px){.home-copy .home-name{font-size:14px;margin-bottom:16px}.home-copy h1{font-size:48px}.home-copy>p.intro-directions{font-size:22px;margin:18px 0 0}.home-copy>p.intro-summary{font-size:16px;line-height:1.8;margin:24px 0 0}.home-copy .actions{margin-top:26px}}
/* Give featured project titles natural Chinese spacing and room for the link arrow. */
.selected-grid .card-copy{gap:24px;align-items:flex-start}.selected-grid .card-copy>div{min-width:0}.selected-grid .card-copy h3{font-size:25px;letter-spacing:.015em;line-height:1.5;font-weight:600;word-break:normal;overflow-wrap:break-word}.selected-grid .wide .card-copy h3{font-size:32px;letter-spacing:.02em;line-height:1.45}.selected-grid .card-arrow{flex-shrink:0;line-height:1.5}.selected-grid .card-copy p{margin-top:10px}@media(max-width:900px){.selected-grid .card-copy{gap:16px}.selected-grid .card-copy h3{font-size:23px;letter-spacing:.01em}.selected-grid .wide .card-copy h3{font-size:29px}}@media(max-width:640px){.selected-grid .card-copy h3,.selected-grid .wide .card-copy h3{font-size:23px;letter-spacing:.015em;line-height:1.5}}
.page-index .chapter-trio a[href="xiying.html"] img{height:auto;aspect-ratio:1.5;object-fit:cover;background:transparent}@media(max-width:640px){.page-index .chapter-trio a[href="xiying.html"] img{aspect-ratio:1.7}}

.page-index #selected>.section-intro{font-size:17px;line-height:1.7;margin-top:-12px;margin-bottom:36px}.page-index .chapter-trio a:hover h3{color:var(--blue)}.page-index .chapter-trio a:focus-visible{outline-offset:8px}.page-index .chapter-trio a{min-width:0}.page-index .chapter-trio h3{letter-spacing:0;line-height:1.4}.page-index .chapter-trio span{display:inline-block;padding:6px 0}.page-index a{touch-action:manipulation}@media(max-width:640px){.page-index #selected>.section-intro{font-size:16px}}
.page-index .chapter-trio img{object-fit:cover;background:transparent;height:auto;aspect-ratio:1.5}@media(max-width:640px){.page-index .chapter-trio img{aspect-ratio:1.7}}
@media(max-width:640px){.page-index .photo-link>div{max-width:calc(100% - 50px);padding-right:0}.page-index .photo-link h2{font-size:30px;line-height:1.35;letter-spacing:0;white-space:nowrap}}
/* Film controls need explicit foreground colors in the dark palette. */
.page-films .video-tabs button{background:#29292c;color:#e8e8ed;border:1px solid #626267}.page-films .video-tabs button.active{background:#f5f5f7;color:#161617;border-color:#f5f5f7}.page-films .video-tabs button:hover{background:#414145;color:#fff}.page-films .video-tabs button.active:hover{background:#dedee3;color:#161617}.page-films .button.secondary{color:#8ac2ff;border-color:#8ac2ff}.page-films .reader-controls button{background:#333337;color:#f5f5f7;border:1px solid #626267}

.film-duo{display:grid;grid-template-rows:1fr 1fr;gap:3px;background:#161617}.film-duo-item{position:relative;min-height:0;overflow:hidden}.film-duo-item img{height:100%;width:100%;object-fit:cover;object-position:50% 65%}.film-duo-item:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#0009,transparent 65%);pointer-events:none}.film-duo-item span{position:absolute;left:20px;bottom:16px;z-index:1;color:#fff;font-size:22px;font-weight:500;letter-spacing:.03em;text-shadow:0 1px 6px #0008}.project-card:hover .film-duo img{transform:none}@media(max-width:640px){.film-duo-item span{font-size:19px;left:16px;bottom:12px}}
/* Visual overview: compact editorial opening and consistent cover motion. */
.page-visual .page-heading{padding-top:54px;padding-bottom:0}.page-visual .page-heading .lead{margin:18px 0 0}.page-visual .page-heading+.section{padding-top:42px;padding-bottom:48px}.page-visual .section-head{margin-bottom:26px}.page-visual .section-head h2{font-size:clamp(26px,2.5vw,34px);letter-spacing:-.015em}.page-visual .card-copy h3{line-height:1.45;letter-spacing:0}.page-visual .card-copy{gap:24px}.page-visual .card-copy>div{min-width:0}.page-visual .card-arrow{flex-shrink:0}.page-visual footer{margin-top:28px}.page-visual .film-duo-item img{transition:transform .5s ease}.page-visual .project-card:hover .film-duo img,.page-visual .project-card:focus-visible .film-duo img{transform:scale(1.035)}.page-visual .project-card:focus-visible>.card-image>img{transform:scale(1.025)}@media(max-width:640px){.page-visual .page-heading{padding-top:36px}.page-visual .page-heading+.section{padding-top:30px;padding-bottom:36px}.page-visual .section-head{margin-bottom:22px}.page-visual .section-head h2{font-size:25px}.page-visual footer{margin-top:20px}}@media(prefers-reduced-motion:reduce){.page-visual .project-card:hover .film-duo img,.page-visual .project-card:focus-visible .film-duo img,.page-visual .project-card:focus-visible>.card-image>img{transform:none}}

/* One clear page title, followed directly by the work. */
.page-visual .page-heading{display:flex;align-items:baseline;justify-content:space-between;gap:24px;padding-top:56px;padding-bottom:28px}.page-visual .page-heading h1{font-size:clamp(36px,3.4vw,48px);line-height:1.2;letter-spacing:0;font-weight:600;flex-shrink:0}.page-visual .page-heading .lead{font-size:20px;line-height:1.6;color:var(--muted);margin:0;text-align:right}.page-visual .page-heading+.section{padding-top:0;padding-bottom:48px}@media(max-width:640px){.page-visual .page-heading{display:block;padding-top:34px;padding-bottom:24px}.page-visual .page-heading h1{font-size:34px}.page-visual .page-heading .lead{font-size:17px;text-align:left;margin-top:12px}.page-visual .page-heading+.section{padding-top:0;padding-bottom:32px}}
/* Campus: readable outcomes, linked news, and a quieter course viewer. */
.page-campus .page-heading{padding-top:52px;padding-bottom:34px}.page-campus .page-heading h1{font-size:clamp(36px,4vw,54px)}.page-campus .page-heading .lead{font-size:23px;margin-top:18px}.page-campus .timeline-entry{padding:44px 0}.page-campus .timeline-content h2{font-size:clamp(25px,2.5vw,32px);letter-spacing:0;line-height:1.4}.page-campus .timeline-content h3{font-size:17px;font-weight:500;margin:12px 0 22px;color:var(--muted);letter-spacing:0}.page-campus .timeline-content .prose{font-size:17px;line-height:1.85}.campus-results{margin:20px 0 28px;padding:18px 22px;background:var(--wash);border-radius:8px}.campus-results .prose{font-size:16px!important;color:#515158}.campus-results p{margin-bottom:0}.page-campus .timeline-content .reader h3{margin:0;color:var(--ink);font-size:20px}.page-campus .reader>p{line-height:1.8}.page-campus .reader-thumbs{gap:8px}.page-campus .reader-thumbs button{font-size:13px;padding:7px 12px}.page-campus .reader .reader-image img{aspect-ratio:16/9;width:100%;height:auto;object-fit:contain}.page-campus .reader{margin-top:30px}.campus-news-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px;margin-top:30px}.campus-news-card{min-width:0}.campus-news-card figure{margin:0}.campus-news-card .image-open img{width:100%;height:270px;object-fit:contain;background:var(--wash)}.campus-news-card figcaption{font-size:16px;color:var(--ink);line-height:1.6;margin-top:14px}.campus-news-card .meta{margin:8px 0;font-size:13px}.news-source{display:inline-block;color:var(--blue);font-size:14px;padding:6px 0}.page-campus .timeline-content>figure>figcaption{font-size:14px}@media(max-width:640px){.page-campus .page-heading{padding-top:34px;padding-bottom:16px}.page-campus .page-heading .lead{font-size:20px}.page-campus .timeline-entry{padding:30px 0}.page-campus .timeline-content h2{font-size:25px}.page-campus .timeline-date{font-size:14px}.campus-results{padding:16px;margin:18px 0 24px}.campus-news-grid{grid-template-columns:1fr;gap:28px}.campus-news-card .image-open img{height:auto;max-height:360px}.page-campus .reader{padding:16px}.page-campus .reader-top h3{font-size:19px}.page-campus .reader .reader-image img{max-height:none}}

.page-campus .reader>p{font-size:15px;color:#6e6e73}.page-campus .timeline-entry:first-child{padding-top:22px}

.campus-news-section{margin-top:32px}.page-campus .timeline-content .campus-news-heading{font-size:22px;font-weight:600;color:var(--ink);margin:0 0 16px}.campus-news-section .campus-news-grid{margin-top:24px}.campus-news-section .campus-news-card .image-open img{height:230px}@media(max-width:640px){.campus-news-section .campus-news-card .image-open img{height:auto}}
/* Timeline titles stay visible while their evidence scrolls underneath. */
.page-campus .timeline-heading{position:sticky;top:76px;z-index:8;background:#fff;padding:16px 0 14px;margin-top:-16px;border-bottom:1px solid #eee}.page-campus .timeline-date{position:sticky;top:93px;align-self:start;background:#fff;z-index:9;padding:4px 0}.page-campus .timeline-content>.timeline-heading+h3{margin-top:18px}.page-campus .timeline-content{min-width:0}.page-campus .timeline-heading h2{margin:0}.page-campus .campus-concert{margin:28px 0 34px;scroll-margin-top:160px}.page-campus .campus-concert .video-role:empty{display:none}.page-campus .campus-concert .video-stage video{max-height:65vh}.page-campus .timeline-entry{position:relative}@media(max-width:640px){.page-campus .timeline-date{top:64px;padding:9px 0;margin-bottom:12px;line-height:1.4}.page-campus .timeline-heading{top:100px;padding:12px 0;margin-top:-12px}.page-campus .timeline-heading h2{font-size:22px;line-height:1.4}.page-campus .campus-concert{scroll-margin-top:200px}.page-campus .campus-concert .video-tabs button{color:#161617;background:#e5e5ea}.page-campus .timeline-content .prose,.page-campus .campus-results{scroll-margin-top:210px}}
.page-campus .video-role:empty{display:none}.page-campus .video-tabs{gap:9px}.page-campus .video-tabs button{line-height:1.6;text-align:left;max-width:100%}
.video-role:empty{display:none}
.page-work .chapter-link[href="xiying.html"] img{object-fit:cover;background:transparent}
.dji-shortfilms{display:grid;grid-template-columns:1fr 1fr;gap:20px 32px}.shortfilm-landscape{grid-column:1/-1}.shortfilm-portrait .video-stage{height:570px;background:#111}.shortfilm-portrait video{height:100%;width:100%;object-fit:contain;max-height:none}.dji-shortfilms .player{margin:18px 0}.page-dji #training .reader-thumbs{gap:8px}.page-dji #training .reader-thumbs button{padding:7px 12px;font-size:13px}@media(max-width:640px){.dji-shortfilms{grid-template-columns:1fr}.shortfilm-landscape{grid-column:auto}.shortfilm-portrait .video-stage{height:min(145vw,560px)}}
.page-dji .course-examples{max-width:780px;background:var(--wash);padding:24px;border-radius:10px;margin:28px 0 0}.page-dji .course-examples .section-head{margin-bottom:14px}.page-dji .course-examples h3{font-size:22px;letter-spacing:0}.page-dji .course-examples .prose{font-size:16px;line-height:1.8}.page-dji .course-examples .player{margin:20px 0 0}.page-dji .course-examples video{max-height:none;aspect-ratio:16/9;object-fit:contain}.page-dji .course-examples .video-role{font-size:13px}.dji-shortfilms .shortfilm-landscape video{max-height:none;aspect-ratio:16/9;object-fit:contain}@media(max-width:640px){.page-dji .course-examples{padding:16px}.page-dji .course-examples h3{font-size:20px}}
.page-campus :is(a,button,summary,video){scroll-margin-top:185px}@media(max-width:640px){.page-campus :is(a,button,summary,video){scroll-margin-top:230px}}
@media(max-width:640px){.page-campus .timeline-heading h2{text-wrap:balance}}
/* DJI: preserve the media's native ratio and keep touch controls comfortable. */
.page-dji :is(h1,h2,h3){letter-spacing:0;text-wrap:balance}
.page-dji .hero-image img{max-height:none;background:transparent}
.page-dji .vertical-gallery{max-width:1040px;margin-inline:auto}
.page-dji .winter-gallery{max-width:600px;margin-inline:auto}
.page-dji :is(.vertical-gallery,.winter-gallery) img{width:100%;height:auto;max-height:none;background:transparent}
.page-dji .video-stage{min-height:0}
.page-dji .video-stage video{min-height:0;max-height:none;aspect-ratio:16/9;object-fit:contain}
.page-dji .video-caption{display:flex;justify-content:space-between;align-items:baseline;gap:16px;margin:14px 0 0;font-size:16px;font-weight:500;line-height:1.6}
.page-dji .video-caption .duration{color:var(--muted);font-size:13px;font-weight:400;font-variant-numeric:tabular-nums;flex-shrink:0}
.page-dji .shortfilm-portrait .player{width:100%;max-width:360px;margin:18px auto}
.page-dji .shortfilm-portrait .video-stage{height:auto;aspect-ratio:9/16}
.page-dji .shortfilm-portrait video{height:100%;aspect-ratio:9/16}
.page-dji .local-nav{flex-wrap:wrap;gap:4px 24px;padding:8px 20px}
.page-dji .local-nav a{display:flex;align-items:center;min-height:44px}
.page-dji #training :is(.reader-thumbs button,.reader-controls button,.video-tab){min-height:44px}
.page-dji :is(button,summary,a){touch-action:manipulation}
.page-dji :is(button,summary,video){scroll-margin-top:100px}
.page-dji :is(.reader-count,.original-page){font-variant-numeric:tabular-nums}
.page-dji :is(#lightbox,#clipbox,.lightbox-body){overscroll-behavior:contain}
@media(max-width:640px){.page-dji .local-nav{gap:0 14px;padding:6px 12px}.page-dji .video-caption{font-size:15px}.page-dji .shortfilm-portrait .player{max-width:342px}.page-dji .lightbox-bottom button,.page-dji .lightbox-top button{min-height:44px}}
/* Shared project navigation and media layout. */
.has-sticky-return{scroll-padding-top:150px}
.page-navigation{background:var(--paper);border-bottom:1px solid var(--line);z-index:18}
.page-navigation.sticky-return{position:sticky;top:76px}
.page-navigation>div,.page-return-bottom{max-width:var(--max);margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:12px 28px}
.return-link{display:inline-flex;align-items:center;gap:7px;min-height:44px;padding:7px 0;color:var(--ink);font-size:14px;font-weight:500;line-height:1.5}
.return-link:hover{color:var(--blue)}
.return-chevron{width:16px;height:20px;flex:none;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;transition:transform .2s ease}
.return-link:hover .return-chevron{transform:translateX(-2px)}
.back-to-top{font-size:13px;color:var(--muted);padding:10px 0;white-space:nowrap}
.back-to-top:hover{color:var(--ink)}
.page-return-bottom{margin-top:30px;padding-top:30px;padding-bottom:30px;border-top:1px solid var(--line)}
body:not(.page-index) .page-heading{padding-top:46px}
.page-photography .photo-cover{margin-top:32px}
main>.text-links,main>.filter-tabs{max-width:var(--max);padding:0 28px;margin:24px auto 32px}
main>.filter-tabs{gap:12px}
main>.filter-tabs button{min-height:44px;padding:8px 24px}
.gallery-triptych{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start}
.gallery-triptych img{height:auto;max-height:none;background:transparent}
.page-changle .gallery img{height:auto;max-height:none;background:transparent}
.page-changle .gallery{align-items:start}
.production-duo{display:grid;grid-template-columns:32fr 27fr;gap:40px;max-width:800px;margin:32px auto 0;align-items:start}
.production-duo .production-still,.production-duo .player{margin:0;min-width:0}
.production-duo .production-still img{width:100%;height:auto;max-height:none;aspect-ratio:2/3;object-fit:cover}
.player .video-stage{min-height:0}
.player .video-stage video{width:100%;height:auto;min-height:0;max-height:none;object-fit:contain}
.portrait-video{max-width:360px;margin-left:auto;margin-right:auto}
.production-duo .portrait-video{max-width:none}
.video-caption{display:flex;justify-content:space-between;gap:16px;margin:14px 0 0;font-size:16px;font-weight:500;line-height:1.6}
.video-caption .duration{font-size:13px;font-weight:400;color:var(--muted);font-variant-numeric:tabular-nums;flex-shrink:0}
.video-role{line-height:1.8}
.video-tabs{gap:10px}
.video-tabs button{min-height:44px;text-align:left;line-height:1.6;max-width:100%}
.reader-thumbs button,.reader-controls button{min-height:44px}
.lightbox-top button,.lightbox-bottom button{min-height:44px}
dialog,.lightbox-body{overscroll-behavior:contain}
a,button,summary{touch-action:manipulation}
body:not(.page-index) :is(h1,h2,h3){letter-spacing:0;text-wrap:balance}
.project-card h3{line-height:1.45}
.page-visual .card-copy h2,.page-ai .card-copy h2{font-size:26px;line-height:1.45;letter-spacing:0}
.project-summary{padding-top:0;padding-bottom:8px}
.interview-intro .practice-intro{font-size:17px;line-height:1.85;color:var(--ink);margin:20px 0}
.project-card:focus-visible .card-image>img{transform:scale(1.025)}
.prose{text-wrap:pretty}
.page-return-bottom+.related{display:none}
@media(max-width:640px){
 .has-sticky-return{scroll-padding-top:138px}
 .page-navigation.sticky-return{top:64px}
 .page-navigation>div,.page-return-bottom{padding:10px 24px;gap:14px}
 .return-link{font-size:13px;padding:7px 0}
 .back-to-top{font-size:12px}
 body:not(.page-index) .page-heading{padding-top:32px}
 main>.text-links,main>.filter-tabs{padding:0 24px;margin-top:12px;margin-bottom:24px}
 .gallery-triptych{grid-template-columns:1fr}
 .production-duo{display:flex;flex-direction:column;gap:28px;max-width:360px;margin-top:26px}
 .production-duo .player{order:0;width:100%}
 .production-duo .production-still{order:1;width:100%}
 .production-duo .production-still img{height:380px;aspect-ratio:auto;object-fit:cover}
 .page-return-bottom{margin-top:20px;padding-top:24px;padding-bottom:24px}
 .video-caption{font-size:15px}
 .page-visual .card-copy h2,.page-ai .card-copy h2{font-size:24px}
}
