:root{--ink:#191919;--muted:#777;--line:#e8e8e8}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:#fff;color:var(--ink);font-family:Arial,"Microsoft YaHei","PingFang SC",sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}a:focus-visible{outline:2px solid #777;outline-offset:5px}.nav{height:76px;max-width:1060px;padding:0 30px;margin:auto;display:flex;align-items:center;justify-content:space-between;background:#ffffffed;position:sticky;top:0;z-index:10;backdrop-filter:blur(16px)}.nav nav{display:flex;gap:16px;align-items:center}.nav nav a{font-size:16px;padding:8px 17px;border:1px solid transparent;border-radius:40px;transition:background .2s}.nav nav a:hover{background:#f3f3f3}.nav nav .active{border-color:#777}.nav-name{font-size:14px}.nav-name span{margin-left:12px;color:#777}.cover{min-height:calc(100svh - 76px);max-width:1060px;margin:auto;padding:40px 30px 34px;display:flex;flex-direction:column;align-items:center;justify-content:space-between;text-align:center}.intro{margin:auto 0;padding:50px 0 90px}.intro h1{display:flex;align-items:center;justify-content:center;gap:15px;font-size:clamp(32px,4.4vw,59px);line-height:1.2;letter-spacing:-2.4px;font-weight:400;color:#929292;margin:0 0 6px}.avatar{width:78px;height:53px;border-radius:100px;object-fit:cover;object-position:52% 26%;filter:none}.intro h2{font-size:clamp(48px,5.2vw,72px);letter-spacing:-3px;line-height:1.1;font-weight:400;margin:0}.cover-cn{font-size:18px;letter-spacing:2px;margin:30px 0 13px}.specialties{font-size:14px;line-height:1.6;color:#777;margin:0}.about-link{font-size:16px;display:flex;flex-direction:column;gap:7px;align-items:center}.about-link span{font-size:22px;transition:transform .2s}.about-link:hover span{transform:translateY(5px)}.about{background:#fafafa;padding:74px max(30px,calc((100% - 1000px)/2)) 80px}.section-label{text-align:center;font-size:13px;color:#777;letter-spacing:.6px}.section-label span{margin-left:20px}.about-heading{margin:27px 0 50px;text-align:center}.about-heading h2{font-weight:400;letter-spacing:-1.8px;line-height:1.15;font-size:clamp(32px,3.5vw,47px);margin:0}.experience{display:flex;align-items:center;justify-content:center;gap:20px;margin-top:28px}.experience strong{font-size:34px;font-weight:400;letter-spacing:-1px}.experience strong span{font-size:14px;margin-left:7px}.experience p{font-size:13px;line-height:1.7;text-align:left;color:#777;margin:0}.about-content{display:grid;grid-template-columns:32% 1fr;gap:8%;align-items:center;padding:20px 0 66px}.portrait{margin:0}.portrait img{display:block;width:100%;height:360px;object-fit:cover;object-position:center 33%;border-radius:16px;filter:saturate(.65)}.portrait figcaption{font-size:13px;display:flex;justify-content:space-between;margin-top:14px;color:#777}.bio p{font-size:17px;line-height:2;margin:0 0 25px;color:#444}.bio p:last-child{margin:0}.process{display:grid;grid-template-columns:repeat(4,1fr);gap:25px;border-top:1px solid var(--line);padding-top:29px}.process span{font-size:12px;color:#888}.process h3{font-weight:400;font-size:17px;margin:24px 0 12px}.process p{font-size:13px;line-height:1.8;color:#777}.closing{font-size:clamp(25px,3.4vw,43px);text-align:center;line-height:1.25;letter-spacing:-1.1px;margin:100px 0 15px}footer{max-width:1060px;margin:auto;padding:30px;display:flex;justify-content:space-between;align-items:center}.monogram{font-size:21px;letter-spacing:-1px}.monogram span{display:none}footer p{font-size:13px;line-height:1.8;text-align:center;margin:0}footer p span{font-size:12px;color:#888}footer>a:last-child{font-size:13px}@media(max-width:700px){.nav{height:66px;padding:0 22px}.nav nav{gap:4px}.nav-name{font-size:12px}.nav-name span{display:none}.nav nav a{font-size:14px;padding:7px 13px}.cover{min-height:calc(100svh - 66px);padding:20px 22px 30px}.intro{padding:60px 0 80px}.intro h1{font-size:clamp(27px,6.2vw,43px);gap:9px;letter-spacing:-1.2px}.avatar{width:52px;height:37px}.intro h2{font-size:clamp(44px,9vw,62px);letter-spacing:-2px;line-height:1.15}.cover-cn{font-size:15px;letter-spacing:1px;margin-top:25px}.specialties{font-size:12px;max-width:290px;margin:auto}.about{padding:55px 24px}.about-heading h2{font-size:34px;letter-spacing:-1.3px}.about-content{grid-template-columns:1fr;gap:30px;padding-bottom:40px}.portrait{width:min(100%,340px);margin:auto}.portrait img{height:390px}.bio p{font-size:16px}.process{grid-template-columns:repeat(2,1fr);gap:20px}.process h3{font-size:16px}.closing{font-size:28px;margin-top:60px}footer{padding:25px 22px}footer p span{display:none}.section-label{font-size:12px}.section-label span{margin-left:12px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

.avatar{display:inline-block;overflow:hidden;position:relative;flex-shrink:0}.avatar img{position:absolute;width:190%;height:auto;max-width:none;left:-45%;top:-62%;filter:none}
body:has(#about:target) .nav .active{border-color:transparent}body:has(#about:target) .nav a[href="#about"]{border-color:#777}

.projects{background:linear-gradient(#fafafa,#fff);padding:76px 30px 100px;text-align:center;scroll-margin-top:20px}.projects>h2{font-size:clamp(28px,3.2vw,44px);font-weight:400;letter-spacing:-1.3px;margin:20px 0 14px}.project-subtitle{font-size:15px;color:#777;margin:0 0 60px}.phones{max-width:940px;margin:auto;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:38px}.project-card{display:block;min-width:0;text-align:left}.phone{padding:7px;background:#151515;border:2px solid #666;border-radius:44px;box-shadow:inset 0 0 0 2px #292929,0 16px 32px #0000000d;transition:transform .25s,box-shadow .25s}.phone-screen{position:relative;aspect-ratio:9/19.2;border-radius:35px;overflow:hidden}.tone-1{background:#dce7eb;color:#243e49}.tone-2{background:#eaded0;color:#514333}.tone-3{background:#dce1d3;color:#354733}.phone-top{height:40px;display:flex;align-items:center;justify-content:space-between;padding:0 18px;font-size:11px;position:relative}.island{position:absolute;background:#111;border-radius:30px;width:34%;height:21px;left:33%;top:8px}.screen-content{padding:22px;height:calc(100% - 40px);display:flex;flex-direction:column}.screen-kicker{font-size:10px;letter-spacing:1.2px;line-height:1.7}.screen-number{font-size:clamp(70px,10vw,140px);font-weight:400;line-height:1;letter-spacing:-8px;margin:auto 0 28px;opacity:.35}.screen-content h3{font-size:30px;line-height:1.25;letter-spacing:-1px;font-weight:400;margin:0 0 12px}.screen-content>p{font-size:13px;opacity:.7;margin:0 0 auto}.screen-bottom{display:flex;justify-content:space-between;font-size:10px;letter-spacing:1px;margin:40px 0 18px}.screen-bottom>span{font-size:22px;line-height:12px}.home-bar{position:absolute;width:34%;height:4px;background:currentColor;opacity:.7;border-radius:3px;bottom:9px;left:33%}.project-caption{display:flex;justify-content:space-between;gap:8px;font-size:14px;padding:22px 4px;color:#777}.project-caption>span:last-child{color:#333}.project-detail{max-width:960px;margin:60px auto 0;padding:0 30px 70px}.project-detail>.section-label{text-align:left}.project-detail>h1{font-size:clamp(32px,5vw,62px);font-weight:400;letter-spacing:-2px;margin:22px 0}.detail-status{color:#777;font-size:15px}.detail-cover{border-radius:20px;min-height:360px;margin:45px 0 65px;padding:40px;display:flex;justify-content:space-between;align-items:end}.detail-cover>span{font-size:140px;opacity:.35;line-height:1;letter-spacing:-8px}.detail-cover>p{font-size:16px}.detail-sections{display:grid;grid-template-columns:1fr 1fr;gap:45px}.detail-sections section{border-top:1px solid #ddd;padding-top:22px}.detail-sections span{font-size:12px;color:#888}.detail-sections h2{font-weight:400;font-size:24px}.detail-sections p{font-size:16px;color:#888}.detail-navigation{display:flex;justify-content:space-between;border-top:1px solid #ddd;margin-top:65px;padding-top:25px;font-size:15px}.back-link{font-size:15px}body:has(#projects:target) .nav .active{border-color:transparent}body:has(#projects:target) .nav a[href="#projects"]{border-color:#777}@media(max-width:700px){.projects{padding:55px 24px 60px}.phones{grid-template-columns:1fr;max-width:290px;gap:38px}.project-subtitle{margin-bottom:38px}.screen-number{font-size:130px}.project-caption{padding-top:18px}.detail-cover{min-height:270px;padding:24px;gap:15px}.detail-cover>span{font-size:100px}.detail-sections{grid-template-columns:1fr}.project-detail{margin-top:40px;padding:0 24px 50px}.screen-content h3{font-size:32px}}@media(prefers-reduced-motion:reduce){.phone{transition:none}.project-card:hover .phone{transform:none}}

.phone-screen.photo-screen{aspect-ratio:1280/2781;background:#111}.photo-screen>img{display:block;width:100%;height:100%;object-fit:contain}

.case-study{max-width:1060px;margin:auto;padding:55px 30px 70px}.case-heading{text-align:center;padding:10px 0 48px}.case-heading h1{font-size:clamp(38px,5.2vw,66px);font-weight:400;letter-spacing:-2px;line-height:1.2;margin:24px 0}.case-tagline{font-size:19px;color:#666}.case-meta{display:flex;justify-content:center;flex-wrap:wrap;gap:12px 30px;margin-top:32px;font-size:13px;color:#777}.case-hero{margin:0;position:relative;border-radius:18px;overflow:hidden;height:500px;background:#edf2e5}.case-hero img{width:100%;height:100%;object-fit:cover;object-position:center 40%}.case-hero figcaption{position:absolute;bottom:20px;left:24px;background:#fff;padding:10px 16px;border-radius:30px;font-size:13px}.case-section{display:grid;grid-template-columns:40% 60%;gap:0;padding:80px 0 50px}.case-label{font-size:12px;letter-spacing:.7px;color:#777;padding-right:35px}.case-label h2{font-size:32px;line-height:1.4;color:#222;letter-spacing:-.7px;font-weight:400;margin:20px 0}.case-copy p{font-size:17px;line-height:1.95;color:#555;margin:0 0 22px}.case-copy h3{font-size:18px;font-weight:500;margin:28px 0 15px}.mechanism{padding:55px 45px;background:#f5f7ef;border-radius:18px;text-align:center;margin:12px 0 5px}.mechanism>h2{font-size:36px;font-weight:400;line-height:1.35;letter-spacing:-1px}.mechanism>p:not(.section-label){font-size:16px;line-height:1.9;max-width:630px;margin:0 auto;color:#555}.journey{list-style:none;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin:45px 0 0;text-align:left}.journey li{border-top:1px solid #bcc8a7;padding-top:20px}.journey li>span{font-size:13px;color:#6d7e4d}.journey h3{font-weight:400;font-size:23px;margin:18px 0 10px}.journey p{font-size:14px;line-height:1.7;color:#777}.case-image{margin:0}.case-image img{display:block;width:100%;height:auto;border-radius:12px}.case-image figcaption{font-size:13px;color:#777;display:flex;justify-content:space-between;gap:10px;padding-top:15px;line-height:1.7}.stamp-image{padding:30px;background:#f5f7ef;border-radius:18px}.production-gallery{display:grid;grid-template-columns:1.2fr 1fr;gap:30px;align-items:start}.production-gallery .case-image:first-child{padding-top:35px}.case-study .detail-navigation{margin-top:80px}.project-caption{flex-wrap:wrap}@media(max-width:700px){.case-study{padding:30px 24px 50px}.case-heading{padding-bottom:30px}.case-tagline{font-size:16px}.case-meta{gap:10px 18px;font-size:12px}.case-hero{height:350px}.case-hero figcaption{font-size:11px;left:14px}.case-section{grid-template-columns:1fr;padding:50px 0 22px}.case-label h2{font-size:28px;margin:16px 0 25px}.case-copy p{font-size:16px}.mechanism{padding:35px 24px}.mechanism>h2{font-size:29px}.journey{grid-template-columns:1fr;gap:16px;margin-top:30px}.journey h3{margin:10px 0}.stamp-image{padding:12px}.case-image figcaption{font-size:12px;flex-wrap:wrap}.production-gallery{grid-template-columns:1fr;gap:30px}.production-gallery .case-image:first-child{padding-top:0}}

.photo-case{max-width:1260px;margin:auto;padding:35px 30px 70px}.photo-case-heading{text-align:center;padding:15px 0 42px}.photo-case-heading h1{font-size:clamp(30px,4.3vw,56px);font-weight:400;letter-spacing:-1.5px;line-height:1.3;margin:20px 0}.photo-case-heading>p:last-child{font-size:17px;color:#777}.photo-figure{margin:0 0 24px;min-width:0}.photo-figure img{display:block;width:100%;height:auto;border-radius:10px}.photo-figure a{display:block}.photo-figure figcaption{font-size:13px;color:#888;padding-top:10px}.photo-intro{display:grid;grid-template-columns:1fr 1.2fr;gap:60px;max-width:1050px;margin:55px auto 75px}.photo-intro h2{font-size:30px;font-weight:400;line-height:1.5;margin:0}.photo-intro h2 span{color:#888;font-size:25px}.photo-intro p{font-size:17px;line-height:1.9;margin:0 0 15px;color:#555}.photo-intro .role-note{font-size:14px;color:#888}.photo-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.photo-section-heading{margin:58px 0 30px}.photo-section-heading>span,.stamp-panel>div>span{font-size:12px;color:#888;letter-spacing:1px}.photo-section-heading h2{font-size:29px;line-height:1.4;font-weight:400;margin:15px 0}.photo-section-heading p{font-size:16px;line-height:1.8;color:#777;margin:0}.rules-layout{display:grid;grid-template-columns:1fr 1.35fr;gap:35px;align-items:start;margin-top:14px}.stamp-panel{background:#f5f7ef;border-radius:12px;padding:30px}.stamp-panel h3{font-size:23px;font-weight:400;line-height:1.5;margin:16px 0}.stamp-panel p{font-size:16px;color:#666;line-height:1.9;margin:0 0 30px}.stamp-panel img{display:block;width:100%;height:auto;border-radius:6px}.photo-case .detail-navigation{margin-top:55px}@media(max-width:700px){.photo-case{padding:20px 18px 45px}.photo-case-heading{padding:10px 0 26px}.photo-case-heading h1{font-size:30px}.photo-case-heading>p:last-child{font-size:14px}.photo-intro{grid-template-columns:1fr;gap:20px;margin:30px 6px 42px}.photo-intro h2{font-size:26px}.photo-intro p{font-size:16px}.photo-grid,.rules-layout{grid-template-columns:1fr;gap:0}.photo-section-heading{margin:38px 4px 22px}.photo-section-heading h2{font-size:25px}.photo-figure{margin-bottom:22px}.photo-figure img{border-radius:7px}.stamp-panel{padding:22px}.stamp-panel h3{font-size:21px}.rules-layout{margin-top:0}}

.moment-track{display:flex;gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;border-radius:14px;overscroll-behavior-x:contain;cursor:grab}.moment-track::-webkit-scrollbar{display:none}.moment-track.dragging{scroll-snap-type:none;scroll-behavior:auto;cursor:grabbing;user-select:none}.moment-slide{flex:0 0 100%;min-width:0;margin:0;scroll-snap-align:center;scroll-snap-stop:always}.moment-slide>img{display:block;width:100%;height:auto;aspect-ratio:1600/1067;object-fit:contain;border-radius:14px;pointer-events:none}.moment-slide figcaption{font-size:14px;color:#777;padding:16px 0 0}.moment-toolbar{display:flex;justify-content:space-between;align-items:center;margin:18px 0}.moment-count{font-size:14px;color:#777;font-variant-numeric:tabular-nums;letter-spacing:2px}.moment-arrows{display:flex;gap:10px}.moment-arrows button{width:46px;height:46px;border-radius:50%;border:1px solid #ddd;background:#fff;font-size:23px;cursor:pointer;transition:background .2s,transform .2s}.moment-arrows button:hover{background:#f0f3e9;transform:translateY(-2px)}.moment-arrows button:disabled{opacity:.3;cursor:default;transform:none}.moment-thumbs{display:flex;gap:12px}.moment-thumb{padding:4px;border:1px solid transparent;border-radius:10px;background:transparent;width:110px;cursor:pointer;opacity:.5;transition:opacity .25s,border-color .25s}.moment-thumb[aria-pressed=true]{opacity:1;border-color:#333}.moment-thumb:hover{opacity:1}.moment-thumb img{display:block;width:100%;height:auto;border-radius:6px;aspect-ratio:3/2;object-fit:cover}.moments-carousel button:focus-visible,.moment-track:focus-visible{outline:2px solid #607a35;outline-offset:4px}@media(max-width:700px){.moment-track{gap:12px}.moment-thumbs{gap:6px}.moment-thumb{width:25%;padding:3px}.moment-slide figcaption{font-size:13px}.moment-arrows button{width:44px;height:44px}}@media(prefers-reduced-motion:reduce){.moment-track{scroll-behavior:auto}.moment-thumb,.moment-arrows button{transition:none}}

.moment-scroll-shell{position:relative}.moment-progress{height:2px;background:#e7e7e7;margin-top:22px;overflow:hidden}.moment-progress>span{display:block;width:100%;height:100%;background:#637845;transform:scaleX(0);transform-origin:left}.moment-slide{overflow:hidden}.moment-slide img{will-change:auto}.is-pinned .moments-carousel{position:sticky;top:88px;background:#fff;padding:10px 0 18px}.is-pinned .moment-track{scroll-snap-type:none;scroll-behavior:auto}.is-pinned .moment-slide>img{height:calc(100vh - 300px);max-height:620px;aspect-ratio:auto;object-fit:contain;background:#f5f5f3}.is-pinned .moment-toolbar{margin:12px 0}.is-pinned .moment-thumb{width:78px}.is-pinned .moment-progress{margin-top:14px}@media(prefers-reduced-motion:reduce){.moment-slide img{transform:none!important;will-change:auto}}

html.lenis,html.lenis body{scroll-behavior:auto!important}

/* Scroll focus changes only paint, never layout dimensions. */
.scroll-focus{transform-origin:center center}
@media(prefers-reduced-motion:reduce){.scroll-focus{transform:scale(1)!important;will-change:auto}}

/* Larger project introduction, preserving its grid and spacing. */
.photo-intro h2{font-size:38px}
.photo-intro h2 span{font-size:32px}
.photo-intro p{font-size:21px}
.photo-intro .role-note{font-size:18px}
@media(max-width:700px){.photo-intro h2{font-size:30px}.photo-intro h2 span{font-size:27px}.photo-intro p{font-size:18px}.photo-intro .role-note{font-size:16px}}

.photo-intro .overview-label{font-size:14px;color:#888;margin:0 0 16px}.role-keywords{border-top:1px solid var(--line);padding:22px 0;margin-bottom:65px;font-size:14px;color:#777}.role-keywords p{line-height:2;margin:10px 0 0}.case-narrative{max-width:940px;margin:0 0 32px}.case-narrative h2{font-size:29px;font-weight:400;line-height:1.5;margin:0 0 22px;text-wrap:pretty}.case-narrative p{font-size:18px;line-height:1.95;color:#666;margin:0 0 18px}.case-framework{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;margin:36px 0}.case-framework>div{border-top:1px solid var(--line);padding:20px 0}.case-framework span{font-size:13px;color:#888}.case-framework h3{font-weight:400;font-size:23px;margin:18px 0 12px}.case-framework p{font-size:15px;color:#777;line-height:1.7}.work-line{font-size:13px;letter-spacing:.6px;margin:30px 0 22px;line-height:1.9}.work-line span{color:#777;margin-left:18px;letter-spacing:0}.case-steps{list-style:none;display:flex;flex-wrap:wrap;padding:0;margin:32px 0;gap:12px 20px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.case-steps li{display:flex;align-items:center;gap:8px;padding:20px 0;font-size:15px}.case-steps li span{font-size:12px;color:#999}.case-steps li:not(:last-child)::after{content:'→';margin-left:12px;color:#aaa}.case-support{font-size:17px;line-height:1.9;color:#666;max-width:940px;margin:24px 0 32px}.case-credit{font-size:14px;line-height:1.9;color:#888;margin:20px 0 35px;max-width:940px}.mechanism-evidence{display:grid;grid-template-columns:1.5fr 1fr;gap:40px;align-items:center}.mechanism-logic h3{font-weight:400;font-size:23px;margin:0 0 24px}.mechanism-logic dl{margin:0}.mechanism-logic dl>div{margin:0 0 23px}.mechanism-logic dt{font-size:16px;margin-bottom:8px}.mechanism-logic dd{font-size:15px;line-height:1.8;color:#777;margin:0}.responsibility-summary{margin-top:70px}.responsibility-summary dl{margin:0}.responsibility-summary dl>div{display:grid;grid-template-columns:180px 1fr;gap:25px;border-top:1px solid var(--line);padding:22px 0}.responsibility-summary dt{font-size:18px}.responsibility-summary dd{font-size:16px;color:#777;line-height:1.8;margin:0}@media(max-width:700px){.case-narrative h2{font-size:25px}.case-narrative p{font-size:16px}.case-framework{grid-template-columns:1fr;gap:0}.case-framework h3{font-size:21px}.case-framework>div{padding:18px 0}.mechanism-evidence{grid-template-columns:1fr;gap:25px}.case-steps{gap:0 14px}.case-steps li{font-size:14px;padding:13px 0}.case-support{font-size:16px}.responsibility-summary dl>div{grid-template-columns:1fr;gap:10px}.work-line span{display:block;margin-left:0}.role-keywords{margin-bottom:40px}.case-narrative{overflow-wrap:break-word}}

.championship-poster{max-width:560px;margin:40px auto 60px}

/* Project 03: shared case-study layout, bounded portrait evidence. */
.honor-case .honor-hero img{aspect-ratio:1600/1067;object-fit:cover;object-position:center top}
.honor-decision{margin-top:58px}.honor-pair{grid-template-columns:1fr 1fr}
.honor-portrait{max-width:560px;margin:32px auto}
.honor-long-poster{margin:0;text-align:center;min-width:0}.honor-long-poster img{display:block;max-width:100%;width:auto;height:620px;margin:auto;border-radius:10px}.honor-long-poster figcaption{font-size:13px;color:#888;padding-top:10px}
.honor-evidence{margin:36px 0}.honor-case .case-narrative .case-credit{font-size:14px;color:#888}
@media(max-width:700px){.honor-decision{margin-top:38px}.honor-pair{grid-template-columns:1fr}.honor-long-poster img{height:480px;border-radius:7px}.honor-portrait{margin:24px auto}}

/* Anniversary extensions retain shared typography, spacing and breakpoints. */
.anniversary-four{grid-template-columns:repeat(4,minmax(0,1fr))}
.anniversary-statement{font-size:29px;font-weight:400;line-height:1.5;margin:32px 0;max-width:1050px}
.anniversary-information{grid-template-columns:1.2fr 1fr}.anniversary-information>*{min-width:0}
.anniversary-case .case-steps li{min-width:0;overflow-wrap:anywhere}
@media(min-width:701px) and (max-width:1000px){.anniversary-four{grid-template-columns:repeat(2,minmax(0,1fr))}.anniversary-information{gap:24px}}
@media(max-width:700px){.anniversary-four,.anniversary-information{grid-template-columns:1fr}.anniversary-statement{font-size:25px}.anniversary-case .case-steps{display:flex;flex-direction:column;gap:0}.anniversary-case .case-steps li:not(:last-child)::after{content:'↓';margin-left:auto}}

/* Case-study affordance: hint occupies the existing subtitle-to-grid gap. */
.project-subtitle{position:relative}
.project-interaction-hint{position:absolute;top:calc(100% + 12px);left:0;width:100%;font-size:13px;line-height:1.4;color:var(--muted);text-align:center}
.project-card{cursor:pointer;transform-origin:center;transition:transform .25s ease}
.project-caption>span:last-child{color:var(--muted);transition:color .25s ease}
.project-card:focus-visible{outline:2px solid var(--muted);outline-offset:6px}
.project-card:focus-visible .project-caption>span:last-child{color:var(--ink);text-decoration:underline;text-underline-offset:4px}
@media(hover:hover) and (pointer:fine){.project-card:hover{transform:scale(1.02)}.project-card:hover .project-caption>span:last-child{color:var(--ink)}}
@media(prefers-reduced-motion:reduce){.project-card{transition:none}.project-card:hover{transform:none}}

/* Additive homepage footer; all rules scoped to the new region. */
.editorial-footer{display:block;max-width:1060px;margin:auto;padding:30px;color:var(--ink)}
.editorial-footer .footer-about,.editorial-footer .footer-contact,.editorial-footer .footer-final{border-top:1px solid var(--line)}
.editorial-footer button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
.editorial-footer .footer-disclosure{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:76px;padding:20px 0;font-size:14px;text-align:left}
.editorial-footer .footer-toggle-symbol{font-size:24px;font-weight:400}
.editorial-footer .footer-about-content{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows .35s ease,opacity .35s ease}
.editorial-footer .footer-disclosure[aria-expanded=true]+.footer-about-content{grid-template-rows:1fr;opacity:1}
.editorial-footer .footer-about-inner{min-height:0;overflow:hidden}
.editorial-footer .footer-about-copy{max-width:700px;margin-left:auto;padding:12px 0 38px}
.editorial-footer .footer-about-copy p{font-size:17px;line-height:1.95;color:var(--muted);text-align:left;margin:0 0 24px}
.editorial-footer .footer-about-copy .footer-statement{font-size:20px;line-height:1.8;color:var(--ink);margin-bottom:0}
.editorial-footer .footer-contact,.editorial-footer .footer-final{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 0;font-size:14px}
.editorial-footer .footer-contact a{overflow-wrap:anywhere;min-width:0;padding:12px 0}
.editorial-footer .footer-final{color:var(--muted)}
.editorial-footer .footer-back-top{min-height:44px;padding:10px 0;font-size:14px}
.editorial-footer a:hover,.editorial-footer .footer-back-top:hover{text-decoration:underline;text-underline-offset:4px}
.editorial-footer button:focus-visible{outline:2px solid var(--muted);outline-offset:5px}
@media(max-width:700px){.editorial-footer{padding:25px 22px}.editorial-footer .footer-contact,.editorial-footer .footer-final{flex-direction:column;align-items:flex-start;gap:4px}.editorial-footer .footer-about-copy p{font-size:16px}.editorial-footer .footer-about-copy .footer-statement{font-size:18px}}
@media(prefers-reduced-motion:reduce){.editorial-footer .footer-about-content{transition:none}}

/* Print presentation only: the three case copies never enter screen layout. */
.print-case-collection{display:none!important}
@media print{
 @page{size:auto;margin:15mm 14mm}
 *{animation:none!important;transition:none!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
 html,html.lenis,html.lenis body,body{height:auto!important;min-height:0!important;overflow:visible!important;scroll-behavior:auto!important}
 body{font-family:Arial,"Microsoft YaHei","PingFang SC",sans-serif;font-size:10pt;line-height:1.65;background:#fff;color:#191919}
 .scroll-focus,.project-card,.phone,.moment-slide img{transform:none!important;scale:1!important;opacity:1!important;will-change:auto!important}
 .nav,.about-link,.project-interaction-hint,.detail-navigation,.moment-toolbar,.moment-thumbs,.moment-progress,.footer-toggle-symbol,.footer-back-top,body>footer:not(.editorial-footer){display:none!important}
 .print-case-collection{display:block!important}
 .cover{min-height:0;padding:18mm 0 12mm;display:block;max-width:none}
 .intro{margin:0;padding:0}.intro h1{font-size:25pt}.intro h2{font-size:36pt}.cover-cn{margin-top:8mm}.specialties{font-size:9pt}
 .projects{background:#fff;padding:8mm 0 0;break-after:page}.projects>h2{font-size:23pt}.project-subtitle{margin-bottom:8mm}
 .phones{grid-template-columns:repeat(3,minmax(0,1fr));gap:7mm;max-width:none}
 .phone{box-shadow:none!important;padding:3px;border-radius:20px}.phone-screen.photo-screen{border-radius:16px;aspect-ratio:auto}.phone-screen.photo-screen>img{height:auto!important;object-fit:contain}
 .project-caption{font-size:8pt;padding:3mm 0;display:block}.project-caption>span:last-child{display:none}
 .photo-case{padding:0;max-width:none;margin:0;break-before:page}.photo-case-heading{padding:0 0 6mm;break-inside:avoid}.photo-case-heading h1{font-size:25pt;margin:4mm 0}.photo-case-heading>p:last-child{font-size:10pt}
 h1,h2,h3,.photo-section-heading,.work-line{break-after:avoid;page-break-after:avoid}
 p{orphans:3;widows:3}.case-narrative,.photo-case section{break-inside:auto}
 .photo-section-heading{margin:8mm 0 4mm}.case-narrative{max-width:none;margin:0 0 5mm}.case-narrative h2,.photo-section-heading h2,.anniversary-statement{font-size:17pt;line-height:1.5;margin:0 0 4mm}
 .case-narrative p,.case-support,.photo-intro p{font-size:10pt;line-height:1.8;margin:0 0 4mm}
 .photo-intro{grid-template-columns:1fr 1.2fr;gap:8mm;margin:7mm 0;break-inside:avoid}.photo-intro h2{font-size:20pt}.photo-intro h2 span{font-size:17pt}.photo-intro .role-note{font-size:10pt}
 .role-keywords{margin-bottom:7mm;padding:4mm 0;font-size:9pt}.case-credit,.work-line{font-size:8pt;margin:4mm 0}
 .photo-grid{grid-template-columns:1fr 1fr;gap:6mm;align-items:start}.photo-figure,.moment-slide,.honor-long-poster{break-inside:avoid;page-break-inside:avoid;margin:0 0 6mm}
 .photo-figure img,.honor-case .honor-hero img,.moment-slide>img,.is-pinned .moment-slide>img,.honor-long-poster img{width:auto!important;max-width:100%!important;height:auto!important;max-height:160mm!important;aspect-ratio:auto!important;object-fit:contain!important;margin:0 auto;border-radius:2mm;background:transparent}
 .photo-grid .photo-figure img{max-height:115mm!important}.photo-figure figcaption,.moment-slide figcaption,.honor-long-poster figcaption{font-size:8pt;padding-top:2mm}
 .honor-portrait{max-width:95mm;margin:5mm auto}.honor-long-poster img{max-height:160mm!important}
 .case-framework{gap:6mm;margin:5mm 0}.case-framework>div{break-inside:avoid;padding:3mm 0}.case-framework h3,.mechanism-logic h3{font-size:13pt;margin:3mm 0}.case-framework p,.mechanism-logic dd{font-size:9pt}.case-framework span{font-size:8pt}
 .case-steps{margin:5mm 0;gap:2mm 4mm}.case-steps li{font-size:9pt;padding:3mm 0;break-inside:avoid}
 .mechanism-evidence{gap:7mm;grid-template-columns:1.2fr 1fr;align-items:start}.mechanism-logic dt{font-size:10pt}.mechanism-logic dl>div{margin-bottom:4mm}
 .moment-scroll-shell{height:auto!important;min-height:0!important}.is-pinned .moments-carousel,.moments-carousel{position:static!important;top:auto!important;padding:0;background:transparent}
 .moment-track{display:block!important;overflow:visible!important;transform:none!important}.moment-slide{display:block;width:100%;overflow:visible!important}
 .responsibility-summary{margin-top:8mm}.responsibility-summary dl>div{padding:4mm 0;break-inside:avoid}.responsibility-summary dt{font-size:11pt}.responsibility-summary dd{font-size:10pt}
 .editorial-footer{break-before:page;padding:0;max-width:none}.editorial-footer .footer-disclosure{min-height:0;padding:5mm 0;pointer-events:none}
 .editorial-footer .footer-about-content{display:block!important;opacity:1!important;height:auto!important;visibility:visible!important;content-visibility:visible!important}
 .editorial-footer .footer-about-inner{overflow:visible!important}.editorial-footer .footer-about-copy{max-width:160mm;padding:4mm 0 8mm;margin-left:auto}
 .editorial-footer .footer-about-copy p{font-size:11pt}.editorial-footer .footer-about-copy .footer-statement{font-size:13pt}
 .editorial-footer .footer-contact,.editorial-footer .footer-final{padding:5mm 0;font-size:10pt;break-inside:avoid}
 a{color:inherit;text-decoration:none}
}
