/* R4 source: assets/site.css; order preserved. */

:root{--paper:#FFFFFF;--ink:#20221d;--muted:#77786e;--line:#c8c8bb;--accent:#475c3e}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,'PingFang SC','Microsoft YaHei',sans-serif}a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:5px}.page{max-width:1680px;margin:auto;padding:0 56px}header{display:flex;align-items:center;justify-content:space-between;gap:30px;border-bottom:1px solid var(--ink);padding:25px 0}.brand{font-size:19px;font-weight:600;letter-spacing:-.6px}.brand span{font-size:14px;font-weight:400;margin-left:15px}nav{display:flex;gap:27px;font-size:10px;letter-spacing:1px}nav a:hover{text-decoration:underline;text-underline-offset:5px}.edition{display:flex;justify-content:space-between;margin:20px 0 16px;font-size:10px;letter-spacing:1.3px}.masthead{font-size:clamp(42px,7.02vw,107px);line-height:.87;letter-spacing:-.075em;font-weight:400;margin:0 0 20px}.intro{display:flex;justify-content:space-between;padding-bottom:30px;font-size:12px;line-height:1.7}.intro p{margin:0}.intro .cn{font-size:19px;letter-spacing:5px}section{border-top:1px solid var(--ink);padding:22px 0 64px}.section-head{display:flex;align-items:baseline;gap:20px;margin-bottom:29px}.number{font-size:10px;color:var(--muted)}h2{font-size:11px;letter-spacing:1.6px;font-weight:400;margin:0}.section-head .translation{font-size:11px;color:var(--muted);margin-left:auto}.feature{display:grid;grid-template-columns:1.7fr 1fr;gap:45px}.photo{margin:0;position:relative;background:#e4e3da;overflow:hidden}.photo img{display:block;width:100%;height:auto}.photo.missing{display:flex;align-items:center;justify-content:center;min-height:300px;aspect-ratio:1.55}.photo.missing:before{content:'';position:absolute;inset:17px;border:1px solid #cacabd}.placeholder{padding:35px;text-align:center;color:#737568;font-size:11px;line-height:2;letter-spacing:1px;z-index:1}.placeholder strong{display:block;font-size:21px;letter-spacing:-.3px;font-weight:400;color:#55594b}.feature .photo.missing{min-height:430px;aspect-ratio:1.6}.feature-copy{display:flex;flex-direction:column;align-items:flex-start;padding-top:8px}.tag{font-size:10px;letter-spacing:1.5px;color:var(--accent)}h3{font-size:clamp(38px,4.5vw,68px);letter-spacing:-2px;line-height:1.02;font-weight:400;margin:45px 0 10px}.project-cn{font-size:19px;margin:0}.feature-note{font-size:12px;color:var(--muted);line-height:1.8;margin:32px 0}.text-link{font-size:11px;border-bottom:1px solid var(--ink);padding-bottom:8px;display:inline-block}.feature-copy .text-link{margin-top:auto}.credit{font-size:9px;color:var(--muted);line-height:1.8;margin:11px 0 0}.projects{display:grid;grid-template-columns:repeat(12,1fr);gap:45px 28px}.project{grid-column:span 6;scroll-margin-top:20px}.project:nth-child(2){grid-column:8/span 5;margin-top:110px}.project:nth-child(3){grid-column:1/span 5}.project:nth-child(4){grid-column:7/span 6;margin-top:105px}.project:nth-child(5){grid-column:1/span 7;margin-top:15px}.project .photo.missing{min-height:230px;aspect-ratio:1.5}.project:nth-child(4) .photo.missing{aspect-ratio:1.25}.project-meta{display:flex;justify-content:space-between;gap:15px;padding-top:13px;font-size:10px;color:var(--muted)}.project-name{font-size:20px;margin:9px 0 5px;font-weight:400;letter-spacing:-.5px}.project-sub{font-size:12px;color:var(--muted);margin:0}.material{display:grid;grid-template-columns:1fr 2fr;gap:40px}.large-word{font-size:clamp(36px,5vw,70px);line-height:1.1;letter-spacing:-3px;margin:0;font-weight:400}.empty-content{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:35px 0}.empty-content p{margin:0 0 12px;font-size:15px;line-height:1.8}.empty-content small{font-size:11px;color:var(--muted);line-height:1.8}.about{display:grid;grid-template-columns:1fr 2fr;gap:40px}.about-copy{max-width:670px}.about-copy p{font-size:21px;line-height:1.7;margin:0 0 24px;font-weight:400}.about-copy .english{font-family:Georgia,serif;font-size:21px;line-height:1.5}.draft{font-size:10px;color:var(--muted);letter-spacing:.5px}.contact{display:flex;justify-content:space-between;gap:35px;align-items:flex-end}.contact-title{font-size:clamp(45px,6.8vw,100px);letter-spacing:-5px;line-height:1.05;margin:0}.contact-note{max-width:280px;font-size:12px;line-height:1.9;color:var(--muted)}footer{border-top:1px solid var(--ink);display:flex;justify-content:space-between;gap:20px;padding:22px 0 33px;font-size:10px;color:var(--muted)}.prototype{background:var(--ink);color:var(--paper);padding:9px 56px;font-size:10px;letter-spacing:.4px;display:flex;justify-content:space-between;gap:15px}button{background:none;border:0;color:inherit;font:inherit;cursor:pointer;padding:0}button:hover{text-decoration:underline}.notice{font-size:10px;color:var(--muted);line-height:1.9;margin-bottom:22px}body.review-hidden .review{display:none}@media(min-width:1500px){.page{padding:0 70px}}@media(max-width:800px){.page{padding:0 24px}.prototype{padding:10px 24px}header{align-items:flex-start}.brand span{display:block;margin:5px 0 0}nav{gap:12px;flex-wrap:wrap;justify-content:flex-end;max-width:210px;font-size:9px}.masthead{font-size:9.1vw;margin-top:22px}.intro{padding-bottom:24px}.feature,.material,.about{grid-template-columns:1fr;gap:25px}.feature .photo.missing{min-height:250px}.feature-copy h3{margin-top:18px}.feature-copy .text-link{margin-top:20px}.projects{grid-template-columns:1fr;gap:35px}.project:nth-child(n){grid-column:auto;margin-top:0}.contact{display:block}.contact-title{letter-spacing:-2px}.contact-note{margin-top:25px}.about-copy p{font-size:21px}.about-copy .english{font-size:20px}.intro .cn{font-size:14px;letter-spacing:3px}.intro{gap:20px}.large-word{letter-spacing:-1.5px}footer{flex-wrap:wrap}section{padding-bottom:40px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}


#featured .feature-editorial{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:48px;align-items:start}
#featured .approved-copy{padding:0;min-width:0}
#featured .approved-status{margin:0 0 20px;font-size:11px;letter-spacing:1.2px;color:#52564c}
#featured .approved-title{font-size:clamp(36px,3.6vw,55px);line-height:1.4;letter-spacing:-1.5px;margin:0 0 12px;font-weight:400}
#featured .approved-title span{display:block}
#featured .approved-en{font-size:12px;line-height:1.6;letter-spacing:.04em;margin:0 0 23px}
#featured .approved-description{font-size:15px;line-height:1.9;color:#343830}
#featured .approved-description p{margin:0 0 12px}
#featured .approved-quote{max-width:880px;margin:34px 0 0;border-left:1px solid #c8c8bb;padding-left:21px}
#featured .approved-quote p{font-family:'Songti SC',Georgia,serif;font-size:18px;line-height:1.9;margin:0 0 10px}
#featured .approved-quote cite{font-style:normal;font-size:12px;color:#585c51}
#featured .approved-editing{font-size:15px;line-height:1.9;color:#343830;margin:0 0 23px}
#featured .approved-image{margin:0;min-width:0;align-self:start}
#featured .approved-image img{display:block;width:100%;height:auto;object-fit:contain;aspect-ratio:4534 / 3023;filter:none}
#featured .approved-image figcaption{font-size:11px;color:#585c51;line-height:1.8;margin-top:10px}
#featured .approved-more{font-size:12px;margin:0;border-bottom:1px solid #20221d;padding:0 0 8px;line-height:1.5}
#featured .approved-more-note{font-size:13px;line-height:1.8;color:#585c51;margin-top:15px}
@media(max-width:1000px){#featured .feature-editorial{grid-template-columns:1fr;gap:29px}#featured .approved-title{font-size:clamp(30px,4.8vw,43px)}#featured .approved-copy{max-width:680px}#featured .approved-image{max-width:100%}}
@media(max-width:500px){#featured .approved-title{font-size:31px;letter-spacing:-1px}#featured .approved-en{font-size:11px}#featured .approved-description,#featured .approved-editing{font-size:15px}#featured .approved-quote p{font-size:18px}#featured .approved-image figcaption{font-size:11px}}


#featured .approved-description{margin-bottom:23px}
#featured .approved-description p:last-child{margin-bottom:0}
.about-copy{max-width:640px}
.contact-title{font-size:clamp(36px,5.6vw,82px);letter-spacing:-.045em}
@media(max-width:500px){.contact-title{font-size:36px}.about-copy p{font-size:19px}.intro p:last-child{max-width:185px}}

header{align-items:center}
.brand .brand-category{display:block;font-size:9px;line-height:1.4;font-weight:400;letter-spacing:1.3px;margin:0 0 5px}
#featured{border-top:0;padding-top:26px}
@media(max-width:800px){header{gap:20px}.brand{flex-shrink:0}.brand .brand-category{font-size:9px;margin:0 0 5px}nav{max-width:190px;gap:10px 12px}}

body,header,main,main>section,footer{background:#FFFFFF}
.brand{font-size:24px;line-height:1.15}
.brand .brand-category{font-size:9px;line-height:1.25;margin-bottom:3px}
.section-head h2{font-size:14px;font-weight:600;letter-spacing:1.2px}
.section-head .translation{font-size:12px}
.section-head .number{font-size:10px}
@media(max-width:800px){.brand{font-size:22px}.brand .brand-category{margin-bottom:3px}nav{max-width:175px}}
@media(max-width:500px){header{gap:14px}.brand{font-size:21px}nav{max-width:135px;gap:10px 12px}.section-head{gap:14px}.section-head h2{font-size:13px;letter-spacing:1px}}

.brand{font-size:52px;font-weight:400;letter-spacing:-.075em;line-height:.95;white-space:nowrap}
.brand .brand-category{font-size:9px;font-weight:400;letter-spacing:1.3px;line-height:1.4;margin:0 0 7px}
.section-head{align-items:baseline;gap:20px;line-height:1.4}
.section-head h2{font-size:20px;font-weight:600;letter-spacing:1.2px;line-height:1.4}
.section-head .translation{font-size:17px;font-weight:500;color:var(--ink);line-height:1.4}
.section-head .number{font-size:12px;font-weight:400}
@media(max-width:800px){.brand{font-size:42px}.brand .brand-category{margin-bottom:7px}header{gap:24px}nav{max-width:190px}}
@media(max-width:500px){header{flex-direction:column;align-items:flex-start;gap:20px;padding:22px 0}.brand{font-size:38px}nav{max-width:none;width:100%;justify-content:space-between;gap:10px;font-size:9px}.section-head{gap:10px}.section-head h2{font-size:16px;letter-spacing:.7px}.section-head .translation{font-size:16px}.section-head .number{font-size:11px}}

:root{--paper:#FFFFFF;--ink:#262626;--muted:#686868;--line:#D8D7D2;--accent:#F06450}
body,header,main,main>section,footer,.prototype{background:var(--paper)}
body,.prototype{color:var(--ink)}
header,section,footer,.text-link,#featured .approved-more{border-color:var(--line)}
.brand,.section-head .number,#featured .approved-status,#featured .approved-more{color:var(--accent)}
.brand .brand-category{color:var(--ink)}
nav a:hover,nav a:focus-visible{color:var(--accent)}
#featured .approved-description,#featured .approved-editing{color:var(--ink)}
#featured .approved-image figcaption,#featured .approved-more-note{color:var(--muted)}
.photo{background:var(--paper)}

.brand{font-weight:700}

html,nav{background:#FFFFFF}


nav a[aria-current="page"]{color:var(--accent);text-decoration:underline;text-underline-offset:5px}
:root{--section-link-gap:48px}.section-entry{margin:var(--section-link-gap) 0 0}.section-entry a{font-size:12px;border-bottom:1px solid var(--line);padding-bottom:8px}
.standalone{padding-top:26px;min-height:62vh}.standalone section:first-child{border-top:0}
@media(max-width:500px){nav{flex-wrap:wrap;justify-content:flex-start;gap:12px 17px}}


:root{--section-space:64px;--brand-space:144px}
.brand{font-weight:400;font-size:60px;line-height:1;white-space:normal}
.brand .brand-category{font-size:14px;line-height:1.5;letter-spacing:1.3px;margin-bottom:12px}
.home-page .brand{font-size:88px}
header{flex-wrap:wrap;gap:28px;padding:32px 0}
nav{font-size:18px;gap:12px 24px;max-width:none;flex-wrap:wrap;justify-content:flex-start}
nav a{min-width:44px;min-height:44px;display:inline-flex;align-items:center}
.home-page #featured{padding-top:var(--brand-space)}
section{padding-top:22px;padding-bottom:var(--section-space)}
.prototype,.draft,.notice,.credit,.project-meta,.project-sub,footer{font-size:14px;line-height:1.6}
.feature-note,.contact-note,.empty-content small,.section-entry a,.text-link{font-size:16px}
.section-head .number{font-size:14px;color:var(--muted)}
#featured .approved-status,#featured .approved-en,#featured .approved-image figcaption{font-size:14px;color:var(--muted)}
#featured .approved-description,#featured .approved-editing,#featured .approved-more-note{font-size:16px}
#featured .approved-more{font-size:16px;color:var(--ink)}
.empty-content p{font-size:16px}
@media(max-width:1000px){header{align-items:flex-start;flex-direction:column}.home-page .brand{font-size:72px}.brand{font-size:52px}}
@media(max-width:500px){:root{--section-space:40px;--brand-space:104px}.home-page .brand{font-size:56px}.brand{font-size:44px}header{padding:24px 0;gap:20px}.brand .brand-category{font-size:14px}nav{font-size:16px;gap:4px 18px;max-width:none;justify-content:flex-start}.section-head .number{font-size:14px}}
@media(max-width:320px){.page{padding:0 16px}.home-page .brand,.brand{font-size:32px}.prototype{padding:10px 16px;flex-wrap:wrap}.contact-title{font-size:32px}.section-head{gap:10px}}
.prototype span{min-width:0;overflow-wrap:anywhere}
nav a[aria-current="page"],nav a:hover,nav a:focus-visible{color:var(--ink);text-decoration-color:var(--accent)}


a,button{transition:color 150ms ease}
a:not(.brand),button,#featured .approved-more,nav a[aria-current="page"]{color:var(--ink)}
a:hover,button:hover,#featured .approved-more:hover,nav a:hover,nav a[aria-current="page"]:hover{color:#F06450;text-decoration:underline;text-underline-offset:5px}
a:focus-visible,button:focus-visible,#featured .approved-more:focus-visible{outline:2px solid var(--ink);outline-offset:5px;text-decoration:underline;text-underline-offset:5px}
nav a[aria-current="page"]{text-decoration:underline;text-decoration-color:#F06450;text-underline-offset:5px}
@media(prefers-reduced-motion:reduce){a,button{transition:none}}


@media(max-width:800px){:root{--section-link-gap:32px}}


/* R4 source: assets/home-language.css; order preserved. */
header .language-selector{display:flex;gap:9px;align-items:center;font-size:14px;line-height:1.6;letter-spacing:0}header .language-selector a{min-height:44px;display:inline-flex;align-items:center}header .language-selector [aria-current]{text-decoration:underline;text-decoration-color:#F06450;text-underline-offset:5px}.header-navigation{display:flex;align-items:center;gap:28px;flex-wrap:wrap}@media(max-width:800px){.header-navigation{gap:12px;width:100%;align-items:flex-start}.header-navigation nav{width:100%}}


.home-page #featured .approved-description{margin-bottom:calc(var(--section-link-gap) - 8px)}


/* R4 source: assets/home-revision.css; order preserved. */

[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
header{justify-content:flex-start;flex-wrap:nowrap;gap:clamp(32px,3.2vw,54px)}
.brand{font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-weight:300;letter-spacing:-.065em;flex-shrink:0;white-space:nowrap}
.header-navigation{display:flex;align-items:center;flex-wrap:nowrap;gap:22px;min-width:0}
header nav{display:flex;flex-wrap:nowrap;gap:18px;font-size:16px;letter-spacing:.035em;max-width:none;width:auto}
header nav a,header nav button{min-height:44px;display:inline-flex;align-items:center;white-space:nowrap}
header .language-selector{display:flex;align-items:center;gap:8px;white-space:nowrap;font-size:14px}
header .language-selector a{min-height:44px;display:inline-flex;align-items:center}
.search-toggle{letter-spacing:inherit}.search-toggle[aria-expanded=true]{text-decoration:underline;text-underline-offset:5px;text-decoration-color:var(--accent)}
input:focus-visible,.home-carousel:focus-visible{outline:2px solid var(--ink);outline-offset:5px}
.search-panel{border-bottom:1px solid var(--line);padding:28px 0;max-width:100%}
.search-field{display:flex;gap:20px;align-items:center}.search-field label{font-size:14px}.search-field input{flex:1;min-width:0;border:0;border-bottom:1px solid var(--ink);padding:12px 0;font:inherit;background:var(--paper);color:var(--ink);border-radius:0}.search-field button{min-height:44px}
[data-search-status]{font-size:14px;color:var(--muted)}[data-search-results]{padding:0;margin:0;list-style:none;max-width:880px;max-height:60vh;overflow:auto}[data-search-results] li{border-top:1px solid var(--line);padding:18px 4px}[data-search-results] a{display:block;font-size:21px;line-height:1.5}[data-search-results] small{display:block;font-size:12px;letter-spacing:.08em;color:var(--muted);margin-bottom:5px}[data-search-results] p{font-size:15px;line-height:1.7;margin:8px 0 0}
.home-carousel{position:relative;border-top:0;padding-top:var(--brand-space);padding-bottom:40px}
.carousel-slide figure{margin:0}.carousel-slide img{display:block;width:100%;height:auto;object-fit:contain}.carousel-slide figcaption{display:none}
.carousel-slide .section-head{margin-bottom:24px}.slide-copy{padding-top:24px;max-width:800px;min-height:104px}
.slide-copy h3{font-size:clamp(28px,3.1vw,44px);line-height:1.3;letter-spacing:-.025em;margin:8px 0 12px;font-weight:400}
.slide-copy .approved-status,.slide-copy .project-meta{font-size:14px;color:var(--muted);margin:0;padding:0;letter-spacing:.05em}.carousel-subtitle{font-size:14px;letter-spacing:.04em;margin:0 0 24px}
.slide-copy .approved-description{font-size:16px;line-height:1.9;max-width:720px;margin:24px 0 0}.slide-copy .approved-description p{margin:0 0 12px}
.carousel-controls{display:flex;gap:24px;margin-top:24px}.carousel-controls button{width:48px;height:44px;font-size:27px;border-bottom:1px solid var(--line)}
.home-carousel .section-entry{margin-top:24px}
.home-page #material .material{display:block}.home-page #material .large-word{display:none}.home-page #material .empty-content{display:none}.home-page #material .section-entry{margin-top:0}

@media(max-width:1380px) and (min-width:1101px){.home-page .brand{font-size:72px}header nav{font-size:14px;gap:16px}.header-navigation{gap:18px}}
@media(max-width:1100px){header{flex-direction:column;align-items:flex-start;gap:28px}.header-navigation{width:100%;gap:24px;flex-wrap:wrap}header nav{flex-wrap:wrap;font-size:16px;gap:8px 22px}.home-page .brand{font-size:72px}.brand{font-size:52px}}
@media(max-width:800px){.header-navigation{align-items:center}.home-carousel{padding-bottom:32px}}
@media(max-width:500px){header{gap:20px}.home-page .brand{font-size:56px}.brand{font-size:44px}.header-navigation{gap:4px 20px}header nav{font-size:14px;gap:4px 16px}.search-field{flex-wrap:wrap;gap:8px 18px}.search-field label{flex-basis:100%}.search-field input{flex-basis:100%}.search-panel{padding:20px 0}.home-carousel{padding-top:var(--brand-space)}.carousel-slide .section-head{margin-bottom:20px}.slide-copy{padding-top:20px}.slide-copy h3{font-size:28px}.slide-copy .approved-description{font-size:16px}.carousel-controls{margin-top:20px}}
@media(max-width:360px){.home-page .brand{font-size:46px}.brand{font-size:38px}}
@media(max-width:320px){.home-page .brand,.brand{font-size:36px}}

.home-page .carousel-slide#featured{padding:0;border:0}


@media(min-width:1101px){header{display:grid;grid-template-columns:max-content minmax(0,1fr);grid-template-rows:auto auto;column-gap:clamp(32px,3.2vw,54px);row-gap:0;align-items:center}.brand{grid-row:1 / 3;grid-column:1;display:grid;grid-template-rows:subgrid}.brand-category{grid-row:1}.brand-wordmark{grid-row:2;align-self:center}.header-navigation{grid-column:2;grid-row:2;align-self:center;flex-wrap:wrap;row-gap:8px}}
.brand .brand-wordmark{font:inherit;line-height:1;margin:0;letter-spacing:inherit;display:block;white-space:nowrap}
.header-search{display:flex;width:clamp(128px,12vw,180px);flex-shrink:0;align-items:stretch;height:38px;margin:0}
.header-search input{appearance:none;-webkit-appearance:none;outline:none;box-shadow:none;font:inherit;font-size:14px;background:var(--paper);color:var(--ink);width:100%;min-width:0;border:1px solid var(--ink);border-right:0;border-radius:0;padding:8px 10px}
.header-search button{background:var(--ink);color:white;width:38px;flex-shrink:0;display:grid;place-items:center;border:1px solid var(--ink)}
.header-search button:hover{color:white;background:#444;text-decoration:none}
.header-search input:hover,.header-search input:focus,.header-search input:active{outline:none;box-shadow:none;background:var(--paper);color:var(--ink)}
html.search-keyboard-focus .header-search input:focus-visible{outline:none;box-shadow:none;border-top-style:dashed;border-bottom-style:dashed;border-left-style:dashed}
.header-search button:focus-visible{outline:2px solid var(--ink);outline-offset:4px}
.header-search input::-webkit-search-decoration{appearance:none;-webkit-appearance:none}
.search-actions{display:flex;justify-content:flex-end;gap:20px}.search-actions button{min-height:44px}
.home-page .carousel-slide .carousel-media{position:relative;aspect-ratio:3 / 2;margin:0;background:var(--paper);overflow:hidden}
.home-page .carousel-slide .carousel-media img{width:100%;height:100%;aspect-ratio:auto;object-fit:contain}
.carousel-media .carousel-arrow{position:absolute;top:50%;transform:translateY(-50%);width:64px;height:72px;display:grid;place-items:center;background:transparent;color:rgba(255,255,255,.85);border:0;box-shadow:none;z-index:2}
.carousel-arrow.previous{left:clamp(12px,5vw,72px)}.carousel-arrow.next{right:clamp(12px,5vw,72px)}
.carousel-media button:hover{color:#fff;text-decoration:none;background:transparent}
.carousel-media button:focus-visible{outline:2px solid white;outline-offset:0;box-shadow:none}
.carousel-chevron{pointer-events:none;display:block}
.carousel-indicators{position:absolute;bottom:clamp(8px,1vw,16px);left:50%;transform:translateX(-50%);display:flex;gap:0;background:transparent;border-radius:0;padding:0;z-index:2}
.carousel-indicators button{width:24px;height:44px;display:grid;place-items:center;background:transparent;border-radius:0}
.carousel-indicators button span{display:block;box-sizing:border-box;width:10px;height:10px;border:1px solid #fff;border-radius:50%;background:transparent}
.carousel-indicators button[aria-current=true] span{background:#fff;width:10px;height:10px}
.carousel-motion{display:flex;justify-content:flex-end;margin-top:16px}.carousel-motion button{font-size:13px;letter-spacing:.04em;min-height:44px;min-width:64px;border-bottom:1px solid var(--line)}
.carousel-motion button:disabled{color:var(--muted);cursor:default;text-decoration:none}
.carousel-outgoing{position:absolute;inset:0;z-index:1;background:var(--paper);pointer-events:none;opacity:1;transition:opacity 320ms ease}
.carousel-outgoing.fading{opacity:0}
@media(max-width:1100px){.brand{display:block}.header-search{width:180px}.header-navigation{gap:10px 22px}}
@media(max-width:500px){.header-navigation{gap:6px 18px}header nav{flex-basis:100%}.header-search{width:190px}.carousel-arrow.previous{left:4px}.carousel-arrow.next{right:4px}.carousel-indicators{bottom:0}.carousel-indicators button{width:24px;height:44px}.carousel-media .carousel-arrow{width:48px;height:64px}.carousel-chevron{width:20px;height:30px}.carousel-motion{margin-top:12px}}
@media(prefers-reduced-motion:reduce){.carousel-outgoing{transition:none}}


.home-page .carousel-slide .carousel-media{width:100%;height:auto;aspect-ratio:3 / 2;min-height:0;flex-shrink:0}
.home-page .carousel-slide .carousel-media>img,.home-page #featured.carousel-slide .carousel-media>img{position:absolute;inset:0;display:block;width:100%;height:100%;min-width:0;min-height:0;max-width:none;max-height:none;aspect-ratio:auto;object-fit:contain;object-position:center}
.home-page .slide-copy{min-height:var(--carousel-copy-height,104px)}
.home-page .slide-copy .project-meta,.home-page .slide-copy .approved-status{line-height:1.6;min-height:1.6em}

.home-page #featured .slide-copy .approved-status{margin:0;padding:0;line-height:1.6;min-height:1.6em}

.home-page .carousel-slide .carousel-media{background:#000}
.home-page .carousel-slide .carousel-media>.carousel-outgoing{background:#000}


/* R4 source: assets/visual-review.css; order preserved. */
@font-face{font-family:'Review Sans';src:url('fonts/review-sans.woff2?v=v02-final') format('woff2');font-style:normal;font-weight:100 900;font-display:swap}
@font-face{font-family:'Review Condensed';src:url('fonts/review-condensed.woff2?v=v02-final') format('woff2');font-style:normal;font-weight:200 700;font-display:swap}
:root{--paper:#fff;--ink:#252525;--muted:#858585;--line:#e3e3e3;--accent:#f06450;--review-brand:64px;--review-search:28px}
[data-visual-review]{font-family:Arial,'Review Sans',sans-serif;color:var(--ink);font-synthesis:none}
html[lang=zh-CN] [data-visual-review]{font-family:'Review Sans',Arial,sans-serif}
[data-visual-review] header{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;justify-content:flex-start;gap:28px;padding:28px 0;border:0;min-width:0}
[data-visual-review] header .brand{display:block;flex:none;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:var(--review-brand);font-weight:300;letter-spacing:-.065em;line-height:1.05;white-space:nowrap;color:#252525;margin:0}
[data-visual-review] header .brand:hover{color:#f06450;text-decoration:none}
[data-visual-review] header .header-navigation{display:flex;align-items:center;flex-wrap:nowrap;gap:18px;min-width:0;width:auto}
[data-visual-review] header nav{display:flex;width:auto;max-width:none;flex-wrap:nowrap;gap:16px;font-size:12px;letter-spacing:.035em;line-height:1.3}
[data-visual-review] header nav a{min-width:0;min-height:44px;display:flex;align-items:center;white-space:nowrap}
[data-visual-review] header .language-selector{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex:none;margin-left:auto;font:12px Arial,sans-serif;white-space:nowrap}
[data-visual-review] header .language-selector a{min-height:44px;display:inline-flex;align-items:center}
[data-visual-review] .header-search{display:flex;align-items:stretch;width:140px;height:var(--review-search);flex:none;margin:0}
[data-visual-review] .header-search input{font:12px Arial,'Review Sans',sans-serif;min-width:0;padding:3px 7px;border:1px solid #858585;border-right:0;background:#fff}
[data-visual-review] .header-search button{width:var(--review-search);height:var(--review-search);min-height:0;background:var(--ink);border:0;color:white}
[data-visual-review] .header-search button svg{width:14px;height:14px}
[data-visual-review] .header-search button:hover{background:#444;color:#fff}
[data-visual-review] .header-search input:focus-visible{outline:2px solid #252525;outline-offset:3px}
[data-visual-review] .search-panel{padding:18px 0}
[data-visual-review] .review-disclaimer{font-size:11px;line-height:1.6;color:#686868;margin:28px 0 14px}
[data-visual-review] footer{border-color:var(--line)}
[data-visual-review] .review-pending{font:12px/1.7 Arial,'Review Sans',sans-serif;color:#737373}
/* HOME has its own 3:2 image system. PROJECTS rules never reach this scope. */
[data-visual-review].home-page .home-carousel{padding:26px 0 36px;border:0}
[data-visual-review].home-page .carousel-media{aspect-ratio:3/2;background:#000;isolation:isolate}
[data-visual-review].home-page .carousel-media>img{object-fit:contain;object-position:center}
[data-visual-review].home-page .carousel-media::after{content:'';position:absolute;z-index:2;pointer-events:none;left:0;bottom:0;width:78%;height:42%;background:linear-gradient(0deg,rgba(0,0,0,.42),rgba(0,0,0,.12) 56%,transparent)}
[data-visual-review].home-page .title-overlay{position:absolute;z-index:3;left:clamp(32px,4vw,64px);bottom:clamp(56px,5.2vw,80px);width:min(84%,1000px);color:white;pointer-events:none}
[data-visual-review].home-page .overlay-year{color:white;font-size:14px;font-weight:400;line-height:1.3;letter-spacing:.025em;margin:0 0 12px}
[data-visual-review].home-page .title-overlay h3{font-family:'Review Sans',Arial,sans-serif;font-weight:900;font-size:clamp(36px,6vw,88px);line-height:1.06;letter-spacing:-.035em;color:#fff;margin:0;overflow-wrap:normal;word-break:normal;text-wrap:balance;font-synthesis:none}
[data-visual-review].home-page .overlay-project-link{pointer-events:auto;display:inline-flex;align-items:center;min-height:28px;font:13px/1.3 Arial,'Review Sans',sans-serif;letter-spacing:.04em;color:white;border:0;margin-top:12px}
[data-visual-review].home-page .overlay-project-link:hover{color:white;text-decoration:underline}
[data-visual-review].home-page .overlay-project-link:focus-visible{outline:2px solid white;outline-offset:3px}
[data-visual-review].home-page .carousel-arrow,[data-visual-review].home-page .carousel-indicators{z-index:4}
[data-visual-review].home-page #happy-birthday .title-overlay{bottom:calc(7.88% + 50px)}
[data-visual-review].home-page .carousel-motion{margin:10px 0 0}
[data-visual-review].home-page .featured-context{max-width:760px;margin:16px 0 0;font-size:14px;line-height:1.85}
[data-visual-review].home-page .featured-context summary{cursor:pointer;font-size:13px;min-height:32px}
[data-visual-review].home-page .featured-context .approved-description{font-size:15px;line-height:1.85;margin:20px 0 0}
[data-visual-review].home-page .featured-context .approved-description p{margin:0 0 10px}
[data-visual-review].home-page #material{padding:26px 0 44px}
[data-visual-review].home-page .material-review-list{display:grid;gap:18px}
[data-visual-review].home-page .material-review-item{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,3fr);gap:20px;align-items:start}
[data-visual-review].home-page .material-placeholder{aspect-ratio:4/3;border:1px solid var(--line);background:#f6f6f4;display:grid;place-items:center;font-size:11px;letter-spacing:.06em;color:#777}
[data-visual-review].home-page .material-category{font-size:11px;letter-spacing:.035em;margin:4px 0 10px;color:#737373}
[data-visual-review].home-page .material-review-item h3{font-size:20px;line-height:1.4;font-weight:400;letter-spacing:0;margin:0 0 10px}
[data-visual-review].home-page .material-review-item p:not(.material-category){font-size:14px;line-height:1.8;margin:0 0 8px}
[data-visual-review].home-page #about{padding:26px 0 44px}
[data-visual-review].home-page .about{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:40px}
[data-visual-review].home-page .about .large-word{font-size:clamp(36px,5vw,70px);line-height:1.1}
[data-visual-review].home-page .about-chinese-brand{display:block;font-size:.5em;letter-spacing:0;margin-top:12px}
[data-visual-review].home-page .about-copy p{margin-top:0}
[data-visual-review].home-page #contact{padding:26px 0 40px}
[data-visual-review].home-page .contact-title{font-size:clamp(36px,5.6vw,82px)}
@media(max-width:1100px){
 [data-visual-review] header{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px 20px;align-items:center}
 [data-visual-review] header .brand{grid-column:1;grid-row:1;white-space:normal;max-width:100%}
 [data-visual-review] header .language-selector{grid-column:2;grid-row:1;margin:0}
 [data-visual-review] header .header-navigation{grid-column:1/-1;grid-row:2;flex-wrap:wrap;gap:10px 20px}
 [data-visual-review] header nav{font-size:12px;flex-wrap:wrap;gap:6px 18px}
 [data-visual-review].home-page .title-overlay h3{font-size:clamp(32px,5.9vw,64px)}
}
@media(max-width:700px){
 [data-visual-review] .page,[data-visual-review].projects-page .page{padding:0 24px}
 [data-visual-review] header{padding:22px 0 14px;column-gap:12px}
 [data-visual-review] header .header-navigation{gap:8px 0}
 [data-visual-review] header nav{width:100%;flex-basis:100%;justify-content:space-between;gap:0 10px;font-size:11px;letter-spacing:0}
 [data-visual-review] .header-search{width:160px}
 [data-visual-review].home-page .home-carousel{padding:18px 0 28px}
 [data-visual-review].home-page .title-overlay{left:60px;bottom:48px;width:calc(100% - 116px)}
 [data-visual-review].home-page .overlay-year{font-size:11px;line-height:1.2;margin-bottom:4px}
 [data-visual-review].home-page .title-overlay h3{font-size:32px;line-height:1.06;letter-spacing:-.025em;text-wrap:balance}
 [data-visual-review].home-page #featured .title-overlay h3{font-size:26px}
 html[lang=en] [data-visual-review].home-page #featured .title-overlay h3{font-size:23px}
 [data-visual-review].home-page .overlay-project-link{font-size:11px;line-height:1.2;min-height:24px;margin-top:4px}
 [data-visual-review].home-page #happy-birthday .title-overlay{bottom:calc(7.88% + 44px)}
 [data-visual-review].home-page .carousel-arrow.previous{left:4px}
 [data-visual-review].home-page .carousel-arrow.next{right:4px}
 [data-visual-review].home-page .carousel-arrow{width:48px;height:64px}
 [data-visual-review].home-page .carousel-indicators{bottom:0}
 [data-visual-review].home-page .about{grid-template-columns:1fr;gap:24px}
 [data-visual-review].home-page .about .large-word{font-size:44px}
 [data-visual-review].home-page .about-copy p{font-size:19px;line-height:1.8}
 [data-visual-review].home-page .material-review-item{gap:14px}
 [data-visual-review].home-page .material-review-item h3{font-size:17px}
 [data-visual-review].home-page .material-category{font-size:10px;margin-bottom:6px}
 [data-visual-review].home-page .material-placeholder{font-size:9px}
 [data-visual-review].home-page .material-review-item p:not(.material-category){font-size:12px;line-height:1.7}

}
/* V0.2: fixed SFS decisions; all rules operate only in this independent copy. */
[data-visual-review] header{gap:20px}
[data-visual-review] header .header-navigation{gap:14px}
[data-visual-review] header nav{gap:12px}
[data-visual-review] header nav a:hover{color:var(--accent);text-decoration:none}
[data-visual-review] .review-pending{color:var(--muted)}
[data-visual-review] .header-search button:hover{background:var(--accent)}
[data-visual-review] .header-search{position:relative}
[data-visual-review] .header-search button::after{content:'';position:absolute;top:-8px;right:0;width:28px;height:44px}
[data-visual-review] .language-selector a{padding-inline:3px}
[data-visual-review].home-page .home-carousel{padding:26px 0 0;border:0;margin:0}
[data-visual-review].home-page .title-overlay{bottom:40px;left:clamp(60px,5vw,80px);width:calc(100% - 160px)}
[data-visual-review].home-page .overlay-project-link{min-height:44px;margin-top:4px}
[data-visual-review].home-page #happy-birthday .title-overlay{bottom:calc(7.88% + 32px)}
[data-visual-review].home-page .hero-control-bar{display:flex;align-items:center;justify-content:center;gap:24px;min-height:48px;background:#000;color:#fff;position:relative}
[data-visual-review].home-page .hero-control-bar .carousel-indicators{position:static;transform:none;display:flex;gap:0;width:auto;max-width:none}
[data-visual-review].home-page .hero-control-bar .carousel-indicators button{width:44px;height:48px;min-width:44px}
[data-visual-review].home-page .hero-control-bar .carousel-motion{display:flex;margin:0}
[data-visual-review].home-page .hero-control-bar .carousel-motion button{min-height:48px;min-width:68px;border:0;color:white;font-size:12px}
[data-visual-review].home-page .hero-control-bar button:focus-visible{outline:2px solid white;outline-offset:-4px}
[data-visual-review].home-page .hero-control-bar button:hover{text-decoration:underline}
[data-visual-review].home-page main>section:not(.home-carousel){border:0}
[data-visual-review].home-page .home-section-heading{font-size:20px;font-weight:600;letter-spacing:1.2px;line-height:1.4;margin:0;font-family:inherit}
[data-visual-review].home-page #featured-now{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:24px;align-items:start;padding:0;margin:96px 0 64px}
[data-visual-review].home-page #featured-now .section-head{margin:0 0 24px}
[data-visual-review].home-page .featured-title{font-family:'Review Sans',Arial,sans-serif;font-size:40px;font-weight:800;letter-spacing:0;line-height:1.1;margin:0 0 24px;overflow-wrap:break-word}
[data-visual-review].home-page #featured-now .approved-description{font:16px/1.8 Arial,'Review Sans',sans-serif;max-width:none;margin:0;color:var(--ink)}
html[lang=zh-CN] [data-visual-review].home-page #featured-now .approved-description{font-family:'Review Sans',Arial,sans-serif}
[data-visual-review].home-page #featured-now .approved-description p{margin:0 0 12px}
[data-visual-review].home-page .featured-photo{aspect-ratio:4/3;margin:0;background:var(--paper);overflow:hidden}
[data-visual-review].home-page .featured-photo img{width:100%;height:100%;object-fit:contain;display:block}
[data-visual-review].home-page #selected{padding:0 0 64px;margin:0}
[data-visual-review].home-page #selected .photo img{display:block;width:100%;height:auto}
[data-visual-review].home-page #selected .project-name{font-family:'Review Sans',Arial,sans-serif}
[data-visual-review].home-page #material,[data-visual-review].home-page #about,[data-visual-review].home-page #contact{padding-top:0;margin-top:0}
[data-visual-review].home-page .material-placeholder{background:white;color:var(--muted)}
[data-visual-review].home-page .material-category{color:var(--muted)}
/* PROJECTS index: 33/67 of available width after 20px gap. Detail galleries stay unchanged. */
[data-projects-index] .page{max-width:none;padding:0 10%}
[data-projects-index] .projects-main{padding:64px 0 64px}
[data-projects-index] .projects-heading{font-family:'Review Condensed','Review Sans','Arial Narrow',sans-serif;font-size:48px;font-weight:700;letter-spacing:-.02em;line-height:1.1;margin:0 0 64px;white-space:nowrap}
[data-projects-index] .year-section{border:0;padding:0;margin:0 0 48px;scroll-margin-top:24px}
[data-projects-index] .year-section:last-child{margin-bottom:0}
[data-projects-index] .year-heading{font-family:'Review Condensed','Arial Narrow',sans-serif;font-size:28px;line-height:1.2;font-weight:700;letter-spacing:-.02em;color:var(--ink);margin:0 0 12px;margin-left:calc((100% - 20px)*.33 + 20px);height:33.6px;width:max-content;cursor:default}
[data-projects-index] .year-heading span{display:inline-block;transform-origin:left bottom;transition:transform 200ms,color 200ms}
@media(hover:hover) and (min-width:701px){[data-projects-index] .year-heading:hover span{transform:scale(1.42857143);color:var(--accent)}}
[data-projects-index] .production{display:grid;grid-template-columns:minmax(0,33fr) minmax(0,67fr);gap:20px;align-items:start;margin:0 0 12px;border:0}
[data-projects-index] .production:last-child{margin:0}
[data-projects-index] .project-cover{display:grid;place-items:center;aspect-ratio:4/3;width:100%;margin:0;min-width:0;background:var(--paper);border:1px solid var(--line);overflow:hidden;color:var(--muted);font:11px/1.6 Arial,'Review Sans',sans-serif;text-align:center;padding:16px}
[data-projects-index] a.project-cover{cursor:pointer}
[data-projects-index] .project-cover img{display:block;width:100%;height:100%;object-fit:contain}
[data-projects-index] .project-cover:hover{transform:none;filter:none;opacity:1;background:var(--paper);color:var(--muted);text-decoration:none}
[data-projects-index] .production-copy{padding:16px 0 0;min-width:0}
[data-projects-index] .production-copy h3{font-family:'Review Sans',Arial,sans-serif;font-size:24px;font-weight:800;line-height:1.1;letter-spacing:0;margin:0 0 8px;color:var(--ink);white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:break-word}
[data-projects-index] .production-credits{font:14px/1.6 Arial,'Review Sans',sans-serif;color:var(--ink);margin:0 0 8px;font-weight:400}
[data-projects-index] .production-credits p{margin:0}
[data-projects-index] .production-credits .credit-label{font-weight:600}
[data-projects-index] .production-intro{font:14px/1.6 Arial,'Review Sans',sans-serif;color:var(--ink);margin:0;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
[data-projects-index] .project-detail-link,[data-projects-index] .project-detail-pending{display:inline-flex;align-items:center;min-height:44px;font:14px/1.4 Arial,'Review Sans',sans-serif;margin:24px 0 0;border:0;padding:0}
[data-projects-index] .project-detail-link{color:var(--accent)}
[data-projects-index] .project-detail-link:hover{text-decoration:underline;text-underline-offset:3px}
[data-projects-index] footer{border:0;margin:0;padding-top:0}
@media(min-width:701px) and (max-width:1100px){[data-visual-review].home-page .title-overlay{left:112px;width:calc(100% - 224px)}}
@media(max-width:1100px){[data-visual-review] header .header-navigation{gap:10px 20px}}
@media(max-width:700px){
 [data-visual-review] .page,[data-projects-index] .page{padding:0 5%}
 [data-visual-review] header .brand{font-size:40px}
 [data-visual-review] header .language-selector{gap:3px}
 [data-visual-review] header .header-navigation{gap:8px 0}
 [data-visual-review] header .header-search{height:28px}
 [data-visual-review].home-page .home-carousel{padding:18px 0 0}
 [data-visual-review].home-page .title-overlay{left:60px;bottom:20px;width:calc(100% - 116px)}
 [data-visual-review].home-page #happy-birthday .title-overlay{bottom:calc(7.88% + 20px)}
 [data-visual-review].home-page .overlay-project-link{min-height:44px;margin-top:0}
 [data-visual-review].home-page .hero-control-bar{gap:4px;justify-content:center}
 [data-visual-review].home-page .hero-control-bar .carousel-indicators button{width:40px;min-width:40px;height:48px}
 [data-visual-review].home-page .hero-control-bar .carousel-motion button{min-width:68px}
 [data-visual-review].home-page #featured-now{grid-template-columns:1fr;margin:64px 0 48px;gap:24px}
 [data-visual-review].home-page .featured-title{font-size:32px;line-height:1.15;margin-bottom:20px}
 [data-visual-review].home-page #featured-now .approved-description{font-size:15px}
 [data-visual-review].home-page #selected{padding-bottom:48px}
 [data-visual-review].home-page .home-section-heading{font-size:16px;letter-spacing:.7px}
 [data-projects-index] .projects-main{padding-top:48px}
 [data-projects-index] .projects-heading{font-size:44px;margin-bottom:48px}
 [data-projects-index] .year-heading{margin-left:0}
 [data-projects-index] .production{grid-template-columns:1fr;gap:20px;margin-bottom:40px}
 [data-projects-index] .production-copy{padding:0}
 [data-projects-index] .production-copy h3{font-size:24px}
}
@media(max-width:360px){[data-visual-review] header .brand{font-size:32px}[data-visual-review].home-page .hero-control-bar{gap:0}[data-visual-review].home-page .hero-control-bar .carousel-indicators button{width:34px;min-width:34px}[data-visual-review].home-page .title-overlay h3{font-size:28px}[data-visual-review].home-page #featured .title-overlay h3{font-size:22px}html[lang=en] [data-visual-review].home-page #featured .title-overlay h3{font-size:20px}}
@media(prefers-reduced-motion:reduce){[data-projects-index] .year-heading span{transition:none}[data-visual-review] *,[data-visual-review] *::after{scroll-behavior:auto!important;transition:none!important}}

@media(max-width:360px){html[lang=en] [data-visual-review].home-page #moi-shenzhen .title-overlay h3{font-size:22px}}

[data-visual-review].home-page .featured-photo img{object-position:center top}


/* R4 source: assets/revision-v03.css; order preserved. */
/* SFS 2026-10-16 — V0.3 overrides, restricted to the independent review. */
body[data-visual-review] header{position:relative;display:flex;align-items:center;gap:40px;padding:36px 0 20px;border:0}
body[data-visual-review] header .brand{flex:none}
body[data-visual-review] header .header-navigation{display:flex;flex-wrap:nowrap;align-items:center;gap:18px;min-width:0}
body[data-visual-review] header nav{font-family:'Review Condensed','Review Sans','Arial Narrow',sans-serif;font-size:16px;font-weight:700;letter-spacing:0;line-height:1.2;gap:18px;flex-wrap:nowrap;max-width:none;width:auto}
body[data-visual-review] header nav a{color:#252525;min-height:44px;display:flex;align-items:center;border:0;transition:color 150ms}
body[data-visual-review] header nav a:hover,body[data-visual-review] header nav a[aria-current=page]{color:#F06450}
body[data-visual-review] header .language-selector{position:absolute;right:0;top:0;margin:0;gap:5px;font-size:12px;line-height:1.3;align-items:center}
body[data-visual-review] header .language-selector a{min-height:28px;padding:0 3px;display:inline-flex;align-items:center}
body[data-visual-review] header .language-selector a[aria-current=page]{color:#F06450}
/* One stable border on the input; no displaced ring, default search bezel or parent focus layer. */
body[data-visual-review] .header-search,body[data-visual-review] .header-search:hover,body[data-visual-review] .header-search:focus-within{border:0;outline:none;box-shadow:none;background:transparent;border-radius:0;height:28px}
body[data-visual-review] .header-search input,body[data-visual-review] .header-search input:hover,body[data-visual-review] .header-search input:focus,body[data-visual-review] .header-search input:active{appearance:none;-webkit-appearance:none;outline:none;box-shadow:none;border:1px solid #858585;border-right:0;border-radius:0;background:#fff;color:#252525;min-width:0;height:28px;padding:3px 7px}
html.search-keyboard-focus body[data-visual-review] .header-search input:focus-visible{border-style:solid;border-color:#F06450;outline:none;box-shadow:none}
body[data-visual-review] .header-search button{appearance:none;-webkit-appearance:none;border:0;border-radius:0;outline:none;box-shadow:none;width:28px;height:28px}
body[data-visual-review] .header-search button:focus-visible{outline:1px solid #F06450;outline-offset:-2px;box-shadow:none}
body[data-visual-review] .header-search input::-webkit-search-decoration,body[data-visual-review] .header-search input::-webkit-search-results-button,body[data-visual-review] .header-search input::-webkit-search-results-decoration{display:none;appearance:none;-webkit-appearance:none}
body[data-visual-review].home-page .home-carousel{position:relative}
body[data-visual-review].home-page .carousel-media{aspect-ratio:16/9}
body[data-visual-review].home-page .carousel-media>img{object-fit:contain;object-position:center}
body[data-visual-review].home-page .hero-image-link{position:absolute;inset:0;width:100%;height:100%;display:block;z-index:3;background:transparent;border:0;padding:0;cursor:pointer;color:white}
body[data-visual-review].home-page .hero-image-link:hover{background:transparent;filter:none;transform:none}
body[data-visual-review].home-page .hero-image-link:focus-visible{outline:2px solid #F06450;outline-offset:-4px}
body[data-visual-review].home-page .title-overlay{z-index:4;left:clamp(60px,5vw,80px);bottom:58px;width:calc(100% - 160px);pointer-events:none}
body[data-visual-review].home-page #happy-birthday .title-overlay{bottom:58px}
body[data-visual-review].home-page .overlay-year{margin-bottom:8px}
body[data-visual-review].home-page .carousel-media .carousel-arrow{z-index:5}
body[data-visual-review].home-page .carousel-media .carousel-indicators{position:absolute;z-index:5;left:50%;bottom:4px;transform:translateX(-50%);display:flex;gap:0;background:transparent;max-width:100%;width:max-content}
body[data-visual-review].home-page .carousel-media .carousel-indicators button{width:44px;min-width:44px;height:44px;background:transparent}
body[data-visual-review].home-page .carousel-media .carousel-indicators button span{border:1px solid white;box-shadow:0 0 2px rgba(0,0,0,.5);background:transparent;width:9px;height:9px}
body[data-visual-review].home-page .carousel-media .carousel-indicators button[aria-current=true] span{background:white}
body[data-visual-review].home-page .carousel-media .carousel-indicators button:focus-visible{outline:2px solid white;outline-offset:-5px}
body[data-visual-review].home-page #featured-now{margin-bottom:64px}
body[data-projects-index] .projects-heading{margin-bottom:24px}
body[data-projects-index] .year-navigation{display:flex;flex-wrap:wrap;gap:6px 16px;margin:0 0 40px;max-width:none;width:100%;font-family:'Review Condensed','Arial Narrow',sans-serif;font-size:16px;font-weight:700;line-height:1.2;letter-spacing:0}
body[data-projects-index] .year-navigation a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:36px;color:#252525;text-decoration:none}
body[data-projects-index] .year-navigation a span{display:block;transform:scale(1);transform-origin:center;transition:transform 200ms,color 200ms}
body[data-projects-index] .year-navigation a:hover span{transform:scale(1.5);color:#F06450}
body[data-projects-index] .year-navigation a:focus-visible{outline:1px solid #F06450;outline-offset:2px}
body[data-projects-index] .year-heading{margin-left:0;scroll-margin-top:24px}
body[data-projects-index] .year-heading:focus{outline:none}
body[data-projects-index] .project-cover{position:relative;display:block;aspect-ratio:4/3;padding:0;border:0;background:black;overflow:hidden;border-radius:0;cursor:pointer;text-align:inherit;appearance:none;-webkit-appearance:none}
body[data-projects-index] .project-cover img{width:100%;height:100%;display:block;object-fit:contain;object-position:center;transition:none}
body[data-projects-index] .project-cover:hover,body[data-projects-index] .project-cover:active,body[data-projects-index] .project-cover:hover img{background:black;filter:none;transform:none;opacity:1;text-decoration:none}
body[data-projects-index] .project-cover:focus-visible{outline:2px solid #F06450;outline-offset:4px}
body[data-visual-review] .pending-detail-dialog{max-width:480px;width:calc(100% - 48px);border:1px solid #E3E3E3;background:#fff;color:#252525;padding:28px;font:15px/1.7 Arial,'Review Sans',sans-serif}
body[data-visual-review] .pending-detail-dialog::backdrop{background:rgba(0,0,0,.45)}
body[data-visual-review] .pending-detail-dialog h2{font:700 20px/1.4 Arial,'Review Sans',sans-serif;letter-spacing:0;margin:0 0 20px}
body[data-visual-review] .pending-detail-dialog p{margin:0 0 16px}
body[data-visual-review] .pending-detail-dialog button{min-height:44px;color:#F06450}
@media(max-width:1100px){
 body[data-visual-review] header{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px 20px}
 body[data-visual-review] header .brand{grid-row:1;grid-column:1/-1}
 body[data-visual-review] header .header-navigation{grid-row:2;grid-column:1/-1;flex-wrap:wrap;gap:10px 20px}
 body[data-visual-review].home-page .title-overlay{left:112px;width:calc(100% - 224px)}
}
@media(max-width:700px){
 body[data-visual-review] header{padding:36px 0 14px;gap:8px 12px}
 body[data-visual-review] header .header-navigation{gap:8px 0}
 body[data-visual-review] header nav{width:100%;justify-content:space-between;gap:8px;font-size:16px;flex-wrap:wrap}
 body[data-visual-review] header .language-selector{top:0;right:0;font-size:12px}
 body[data-visual-review].home-page .carousel-media{aspect-ratio:3/2}
 body[data-visual-review].home-page .title-overlay{left:60px;bottom:46px;width:calc(100% - 116px)}
 body[data-visual-review].home-page #happy-birthday .title-overlay{bottom:calc(7.88% + 38px)}
 body[data-visual-review].home-page .overlay-year{margin-bottom:4px}
 body[data-visual-review].home-page .carousel-media .carousel-indicators{bottom:0}
 body[data-visual-review].home-page .carousel-media .carousel-indicators button{width:36px;min-width:36px;height:44px}
 body[data-visual-review].home-page #featured-now{margin-bottom:48px}
 body[data-projects-index] .year-navigation{gap:4px 12px;margin-bottom:32px}
}
@media(max-width:360px){body[data-visual-review].home-page .title-overlay{bottom:44px}body[data-visual-review].home-page #happy-birthday .title-overlay{bottom:calc(7.88% + 34px)}}
@media(prefers-reduced-motion:reduce){body[data-projects-index] .year-navigation a span{transition:none}html{scroll-behavior:auto}body[data-visual-review] *{transition:none!important}}

body[data-visual-review] header .language-selector{grid-column:auto;grid-row:auto}
body[data-projects-index].projects-page .page{padding:0 10%;max-width:none}
@media(max-width:700px){body[data-projects-index].projects-page .page{padding:0 5%}}


/* R4 source: assets/hero-cover-v04.css; order preserved. */
/* SFS 2026-10-17: HERO must fill the approved frame without letterboxing.
   Photo identity stays on outgoing clones, preserving their own focal position.
   Only HOME HERO is targeted; source assets and other image systems are unchanged. */
body[data-visual-review].home-page #hero .carousel-media > img {
  object-fit: cover;
  object-position: var(--hero-position, 50% 50%);
}
body[data-visual-review].home-page #hero img[data-hero-photo="featured"] { --hero-position: 50% 35%; }
body[data-visual-review].home-page #hero img[data-hero-photo="les-bonnes"] { --hero-position: 50% 100%; }
body[data-visual-review].home-page #hero img[data-hero-photo="mon-petit-prince"] { --hero-position: 50% 0%; }
body[data-visual-review].home-page #hero img[data-hero-photo="happy-birthday"] { --hero-position: 55% 50%; }
body[data-visual-review].home-page #hero img[data-hero-photo="moi-shenzhen"] { --hero-position: 50% 75%; }
body[data-visual-review].home-page #hero img[data-hero-photo="sunny"] { --hero-position: 50% 25%; }


/* R4 source: assets/consolidated-v05.css; order preserved. */
@font-face{font-family:'Review Sans Note';src:url('fonts/directors-note-sans.woff2') format('woff2');font-style:normal;font-weight:100 900;font-display:swap;unicode-range:U+5149,U+59CB,U+5B58,U+6697,U+671B,U+67D4,U+6E29,U+751C,U+7ACB,U+7EC8,U+800C,U+8292,U+82E6,U+871C,U+96BE,U+9ED1}
/* SFS-approved consolidated revisions, 2026-10-17. HOME HERO is protected. */
:root { --editorial-sans:'Review Condensed','Review Sans','Arial Narrow',sans-serif; }
/* B-2 desktop: brand anchored left, navigation centered on header, search anchored right.
   Exact existing header padding, height, brand metrics and search dimensions are retained. */
@media(min-width:1101px) {
 body[data-visual-review] header {display:grid;grid-template-columns:1fr auto 1fr;column-gap:24px;row-gap:0;align-items:center;}
 body[data-visual-review] header .header-navigation {display:contents;}
 body[data-visual-review] header .brand {grid-column:1;grid-row:1;justify-self:start;}
 body[data-visual-review] header nav {grid-column:2;grid-row:1;justify-self:center;gap:clamp(16px,calc(20vw - 224px),64px);}
 body[data-visual-review] header .header-search {grid-column:3;grid-row:1;justify-self:end;}
 /* Keep the global header aligned to the same 56px site edge; the P2 content stays at 10%. */
 body[data-projects-index] header {width:calc(125% - 112px);margin-inline:calc(56px - 12.5%);}
}
/* Existing tablet/mobile arrangement and sizes stay intact, including language placement. */
body[data-visual-review] main :is(#about,#sifan-shao,#contact),
body[data-visual-review] main :is(#about,#sifan-shao,#contact) :is(h1,h2,h3,p,a,span,em,strong,dt,dd) {
 font-family:var(--editorial-sans);
}
body[data-projects-index] .project-cover img { object-fit:cover;object-position:var(--cover-position,50% 50%); }

body[data-projects-index] [id="2026-terre-ville"] .project-cover img { --cover-position:50% 50%; }
body[data-projects-index] [id="2026-the-maids"] .project-cover img { --cover-position:50% 50%; }
body[data-projects-index] [id="2025-the-maids"] .project-cover img { --cover-position:50% 50%; }
body[data-projects-index] [id="2024-my-little-prince"] .project-cover img { --cover-position:50% 50%; }
body[data-projects-index] [id="2023-io"] .project-cover img { --cover-position:50% 70%; }
body[data-projects-index] [id="2021-happy-birthday"] .project-cover img { --cover-position:50% 50%; }
body[data-projects-index] [id="2021-i-shenzhen"] .project-cover img { --cover-position:100% 50%; }
body[data-projects-index] [id="2020-sunny"] .project-cover img { --cover-position:85% 50%; }
body[data-projects-index] [id="2019-66-5-n"] .project-cover img { --cover-position:50% 50%; }
body[data-projects-index] [id="2018-juste-la-fin-du-monde"] .project-cover img { --cover-position:50% 50%; }
body[data-projects-index] [id="2017-music-hall"] .project-cover img { --cover-position:50% 50%; }
body[data-projects-index] [id="2016-caeiro"] .project-cover img { --cover-position:55% 50%; }
body[data-projects-index] [id="2014-absolutely-precious"] .project-cover img { --cover-position:50% 50%; }
body[data-projects-index] [id="2009-feydeau-etc"] .project-cover img { --cover-position:45% 50%; }
/* Detail galleries only; HOME's approved 16:9/3:2 and focal CSS are untouched. */
body.projects-page:not([data-projects-index]) .project-gallery .carousel-media > img {object-fit:cover;object-position:50% 50%;}
body.projects-page:not([data-projects-index]) .project-gallery .carousel-indicators button:focus-visible {outline:2px solid white;outline-offset:-3px;}
.directors-note {max-width:680px;padding:0;border:0;margin:64px 0 0;}
.directors-note h2 {font-family:var(--editorial-sans);font-size:16px;font-weight:700;line-height:1.4;letter-spacing:0;margin:0 0 24px;}
.directors-note .directors-note-excerpt {font-family:'Review Sans','Review Sans Note',Arial,sans-serif;font-size:22px;font-weight:400;line-height:1.7;letter-spacing:0;margin:0;overflow-wrap:break-word;}
.directors-note a {display:inline-flex;align-items:center;min-height:44px;font-size:14px;color:var(--accent);margin-top:24px;}
.directors-note .directors-note-pending {font:14px/1.6 Arial,'Review Sans',sans-serif;color:var(--muted);margin:24px 0 0;}
@media(max-width:700px){.directors-note{margin-top:48px}.directors-note .directors-note-excerpt{font-size:20px;}}


/* R4 source: assets/typography-v06.css; order preserved. */
/* V0.6 centralized typography. No rule targets HOME HERO, brand or photographs. */
:root{--la-font-latin:'Review Condensed','Review Sans','Arial Narrow',sans-serif;--la-font-zh:'PingFang SC','Microsoft YaHei','Noto Sans CJK SC','Noto Sans SC',sans-serif;--la-font-mixed:'Review Condensed','PingFang SC','Microsoft YaHei','Noto Sans CJK SC',sans-serif;--la-font-editorial-en:Arial,Helvetica,sans-serif;--la-page-size:48px;--la-page-weight:700;--la-page-leading:1.1;--la-page-tracking:-.02em;--la-content-size:32px;--la-content-weight:600;--la-section-size:20px;--la-section-weight:600;--la-body-size:18px;--la-body-leading:1.7;--la-long-size:18px;--la-long-leading-en:1.7;--la-long-leading-zh:1.8;--la-meta-size:14px;--la-reading-width:680px;--la-paragraph-gap:24px;--la-title-gap:24px;--la-content-color:#252525;--la-muted-color:#686868}
body[data-visual-review] .page-title{font-family:var(--la-font-latin);font-size:var(--la-page-size);font-weight:var(--la-page-weight);font-style:normal;font-synthesis:none;line-height:var(--la-page-leading);letter-spacing:var(--la-page-tracking);text-transform:none;color:var(--la-content-color);margin:0 0 var(--la-title-gap);padding:0;text-align:left}
html[lang=zh-CN] body[data-projects-index] .page-title,html[lang=zh-CN] .material-index .page-title{font-family:var(--la-font-zh);letter-spacing:0}
body.has-page-title main.standalone{padding-top:64px}body.has-page-title main.standalone>section:first-child{padding-top:0}body.has-page-title main.standalone>section:first-child>.section-head{margin-bottom:0}
body[data-visual-review] header nav{font-family:var(--la-font-mixed);font-weight:700;font-synthesis:none}
body[data-visual-review] footer,body[data-visual-review] .language-selector,body[data-visual-review] .section-entry a{font-family:var(--la-font-mixed);font-synthesis:none}
body[data-visual-review] .artist-heading h2,body[data-visual-review] .detail-copy h1,body[data-projects-index] .production-copy h3,body[data-visual-review].home-page .featured-title{font-family:var(--la-font-mixed);font-size:var(--la-content-size);font-weight:var(--la-content-weight);line-height:1.2;letter-spacing:-.01em;font-synthesis:none}
body[data-visual-review] .artist-bio p{font-family:var(--la-font-mixed);font-size:19px;font-weight:400;line-height:1.65;letter-spacing:0;font-synthesis:none}
html[lang=zh-CN] body[data-visual-review] .artist-bio p{line-height:1.8}
body[data-projects-index] .production-credits,body[data-projects-index] .production-intro,body[data-projects-index] .project-detail-link,body[data-projects-index] .project-detail-pending,body[data-projects-index] .year-heading,body[data-projects-index] .year-navigation{font-family:var(--la-font-mixed);font-synthesis:none}
body[data-projects-index] .production-intro{font-size:16px;line-height:1.6;font-weight:400}body[data-projects-index] .production-copy h3{font-size:24px;line-height:1.2}
body[data-visual-review].home-page #featured-now .approved-description,body[data-visual-review].home-page #about .about-copy p,body[data-visual-review].home-page #contact p,body[data-visual-review] #about .about-copy p,body[data-visual-review] #contact .contact-introduction{font-family:var(--la-font-mixed);font-synthesis:none}
body[data-visual-review].home-page #featured-now .approved-description{font-size:var(--la-body-size);font-weight:400;line-height:var(--la-body-leading)}
body[data-visual-review] main :is(#about,#contact) :is(h2,p,a),body[data-visual-review] #about-contact h2{font-family:var(--la-font-mixed);font-synthesis:none}
body[data-visual-review] .detail-copy :is(p,dt,dd),body[data-visual-review] .directors-note :is(h2,p,a){font-family:var(--la-font-mixed);font-synthesis:none}
body[data-visual-review] .directors-note h2{font-size:16px;font-weight:700;line-height:1.4}.directors-note .read-note{font-size:14px}
.material-index{padding-bottom:64px}.material-list{max-width:960px}.material-entry{border-top:1px solid #e3e3e3;padding:32px 0 40px}.material-entry:first-child{margin-top:40px}.material-entry h2,.home-material-note h3,.material-article-title{font-family:var(--la-font-mixed);font-size:var(--la-content-size);font-weight:600;line-height:1.2;letter-spacing:-.01em;margin:0 0 20px;overflow-wrap:break-word;font-synthesis:none}
.article-category,.article-meta,.related-project-label,.article-return,.read-note{font-family:var(--la-font-mixed);font-size:var(--la-meta-size);font-weight:400;line-height:1.6;letter-spacing:0;font-synthesis:none}.article-category{margin:0 0 16px}.article-meta{margin:0 0 16px;color:var(--la-muted-color)}.related-project-label{margin:0 0 20px}.read-note{display:inline-flex;align-items:center;min-height:44px;text-decoration:underline;text-underline-offset:5px}.material-excerpt{font-family:var(--la-font-mixed);font-size:18px;font-weight:400;line-height:1.7;max-width:var(--la-reading-width);margin:0 0 20px;font-synthesis:none}
.material-article{padding-top:64px;padding-bottom:64px}.material-article>article{max-width:var(--la-reading-width);margin-inline:auto}.material-article .article-heading{display:block;padding:0;margin:0 0 48px;border:0}.material-article-title{font-size:32px}.article-body{font-family:var(--la-font-editorial-en);font-weight:400;font-size:var(--la-long-size);line-height:var(--la-long-leading-en);letter-spacing:0;max-width:var(--la-reading-width);text-align:left;overflow-wrap:break-word;font-synthesis:none}
.article-body[lang=zh-CN]{font-family:var(--la-font-zh);line-height:var(--la-long-leading-zh)}.article-body p{font:inherit;letter-spacing:inherit;margin:0 0 var(--la-paragraph-gap)}.article-body p:last-child{margin-bottom:0}.article-body h2,.article-body h3{font-family:var(--la-font-mixed);font-size:24px;font-weight:600;line-height:1.4;letter-spacing:0;margin:40px 0 24px}.article-body h2:first-child,.article-body h3:first-child{margin-top:0}.article-body em{font-style:italic}.article-body h2 em,.article-body h3 em{font-family:Arial,sans-serif}.article-body[lang=zh-CN] em{font-family:Arial,var(--la-font-zh);font-style:italic}.article-return{display:flex;flex-wrap:wrap;gap:16px 32px;border-top:1px solid #e3e3e3;padding-top:24px;margin-top:48px}.article-return a{display:inline-flex;min-height:44px;align-items:center;overflow-wrap:anywhere}
.home-material-list{display:grid;gap:32px}.home-material-note h3{font-size:24px;margin-bottom:16px}.home-material-note .material-excerpt{font-size:16px;line-height:1.7}.home-material-note .article-meta{font-size:14px}.project-selected-cover{margin:0;max-width:1280px;aspect-ratio:4/3;overflow:hidden}.project-selected-cover img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 50%}.project-note-detail .detail-copy{margin-top:40px}.project-note-detail .production-credits{font-family:var(--la-font-mixed);font-size:16px;line-height:1.7}.project-note-detail .production-credits p{margin:0 0 8px}
@media(max-width:700px){:root{--la-page-size:44px;--la-content-size:28px;--la-section-size:16px}body.has-page-title main.standalone,.material-article{padding-top:48px}.material-article-title{font-size:28px}.material-entry{padding:28px 0 32px}.material-entry:first-child{margin-top:32px}.material-article .article-heading{margin-bottom:32px}.material-article{padding-bottom:48px}.home-material-note h3{font-size:22px}.material-entry h2{font-size:28px}.material-excerpt{font-size:18px}.article-return{display:block}.article-return a{display:flex;margin-bottom:12px}body[data-visual-review] .artist-heading h2{font-size:28px}body[data-visual-review].home-page .featured-title{font-size:28px}}

/* Explicit scoped precedence over inherited V0.5 ID-based font declarations. */
body[data-visual-review] #sifan-shao .artist-heading h2,body[data-visual-review] #sifan-shao .artist-bio p{font-family:var(--la-font-mixed)}
body[data-visual-review] main :is(#about,#contact) h1.page-title{font-family:var(--la-font-latin)}
body[data-visual-review].home-page :is(#featured-now,#material,#about,#contact) .section-head h2,body[data-visual-review] #about-contact .section-head h2{font-family:var(--la-font-mixed);font-size:var(--la-section-size);font-weight:var(--la-section-weight);line-height:1.4;letter-spacing:1.2px;font-synthesis:none}
@media(max-width:700px){body[data-visual-review].home-page :is(#featured-now,#material,#about,#contact) .section-head h2,body[data-visual-review] #about-contact .section-head h2{letter-spacing:.7px}}


/* R4 source: assets/typography-v07.css; order preserved. */
/* V0.7 candidate: editorial body, header legibility, Terre-Ville reader only. */
html[lang=en] body[data-visual-review] #featured-now .approved-description,
html[lang=en] body[data-visual-review] #featured-now .approved-description :is(p,em,strong),
html[lang=en] body[data-visual-review] .material-excerpt,
html[lang=en] body[data-visual-review] #sifan-shao .artist-bio p,
html[lang=en] body[data-visual-review] #sifan-shao .artist-bio p :is(em,strong){font-family:Arial,Helvetica,sans-serif;font-size:18px;font-weight:400;line-height:1.7;font-synthesis:none}
/* Emphasis in approved text retains its semantic italic treatment. */
html[lang=en] body[data-visual-review] #featured-now .approved-description,
html[lang=en] body[data-visual-review] .material-excerpt,
html[lang=en] body[data-visual-review] #sifan-shao .artist-bio p{font-style:normal}
body[data-visual-review] .page>header nav{font-size:14px;gap:clamp(16px,3vw,48px)}
body[data-visual-review] .page>header .language-selector{font-family:var(--la-font-mixed);font-size:13px;gap:4px}
body[data-visual-review] .page>header .language-selector a{justify-content:center;min-width:32px;min-height:44px}
body[data-visual-review] .page>header nav a{justify-content:center;min-width:44px;min-height:44px}
body[data-wide-reader] .material-article>article{max-width:960px}
body[data-wide-reader] .article-heading{max-width:960px}
.reader-interface[hidden],.reader-controls[hidden]{display:none!important}
.reader-interface{margin:0 0 24px;position:relative;font-synthesis:none}
.reader-stage{height:600px;width:100%;position:relative;overflow:visible}
.reader-page.article-body,.reader-measure.article-body{max-width:none;width:100%;margin:0;display:flow-root;text-align:left}
.reader-page.article-body{outline:none}
.reader-page.article-body p,.reader-measure.article-body p{margin:0 0 24px}
.reader-page.article-body p:last-child,.reader-measure.article-body p:last-child{margin-bottom:0}
.reader-measure{position:absolute;top:0;left:0;visibility:hidden;pointer-events:none;z-index:-1;contain:layout style}
.reader-controls{display:flex;align-items:center;justify-content:space-between;gap:16px;border-top:1px solid #e3e3e3;margin-top:24px;padding-top:16px}
.reader-controls button,.reader-mode{font-family:var(--la-font-mixed);font-size:14px;font-weight:400;line-height:1.5;color:#252525;background:none;border:0;border-radius:0;padding:10px 0;min-height:44px;cursor:pointer;text-align:left}
.reader-controls button:disabled{opacity:.35;cursor:default}
.reader-controls button:not(:disabled):hover,.reader-mode:hover{text-decoration:underline;text-underline-offset:5px}
.reader-controls button:focus-visible,.reader-mode:focus-visible{outline:2px solid #f06450;outline-offset:4px}
.reader-status{font-family:Arial,Helvetica,sans-serif;font-size:13px;white-space:nowrap;font-variant-numeric:tabular-nums}
.reader-tools{display:flex;justify-content:flex-end;margin-bottom:24px}
.reader-mode{font-size:13px;color:#686868;text-decoration:underline;text-underline-offset:5px}
/* Standard visually-hidden clipping applies ONLY to the original accessibility copy, never to reader overflow. The original semantic article remains accessible; the visual reader is a duplicate display layer. */
.reader-enhanced:not(.reader-continuous) #complete-article{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;clip-path:inset(50%);overflow:hidden;white-space:normal}
body[data-wide-reader] #complete-article{max-width:680px}
@media(max-width:1100px){body[data-visual-review] .page>header nav{gap:18px}}
@media(max-width:700px){body[data-visual-review] .page>header nav{font-size:13px;gap:8px;flex-wrap:nowrap}body[data-visual-review] .page>header .language-selector a{min-width:44px}body[data-visual-review] .page>header .language-selector{gap:0}body[data-visual-review] .page>header{column-gap:8px}.reader-stage{height:clamp(300px,60svh,560px)}.reader-controls{gap:10px}.reader-controls button{font-size:13px}.reader-tools{margin-bottom:16px}}
@media print{.reader-interface,.reader-tools{display:none!important}.reader-enhanced:not(.reader-continuous) #complete-article{position:static!important;width:auto!important;height:auto!important;clip-path:none;margin:0!important}.article-return{display:none}}


/* R4 source: assets/material-home-about-v1.css; order preserved. */
/* Scoped refinement; protected HERO, PROJECTS, CONTACT and fonts are untouched. */
body[data-visual-review].home-page .home-brand-introduction{max-width:640px;margin:40px 0 48px;padding:0}
body[data-visual-review].home-page .home-brand-introduction p{font-family:var(--la-font-mixed);font-size:21px;font-weight:400;line-height:1.7;margin:0}
html[lang=en] body[data-visual-review].home-page .home-brand-introduction p{line-height:1.5}
body[data-about-page] #about .about{display:block;max-width:760px;margin:0}
body[data-about-page] #about .about-copy{max-width:760px;margin:0}
.material-neighbours{display:flex;justify-content:space-between;gap:20px;width:100%;align-items:start}
.material-neighbours a,.material-neighbours span{flex:1;min-width:0;font-family:var(--la-font-mixed);font-size:14px;line-height:1.6;min-height:44px;overflow-wrap:anywhere}
.material-neighbours>a:last-child,.material-neighbours>span:last-child{text-align:right;justify-content:flex-end}
.material-neighbours [aria-disabled=true]{color:#999;display:flex;align-items:center}
@media(max-width:700px){body[data-visual-review].home-page .home-brand-introduction{margin:32px 0 36px}body[data-visual-review].home-page .home-brand-introduction p,html[lang=en] body[data-visual-review].home-page .home-brand-introduction p{font-size:19px;line-height:1.8}.material-neighbours{gap:16px}.material-neighbours a,.material-neighbours span{font-size:13px}}


/* R4 source: assets/header-alignment-r1.css; order preserved. */
/* SFS: navigation + search grouped at the right; language labels 中文 / EN. */
body[data-visual-review] .page>header .header-navigation{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:10px 24px;min-width:0}
@media(min-width:1101px){
 body[data-visual-review] .page>header{grid-template-columns:max-content minmax(0,1fr)}
 body[data-visual-review] .page>header .header-navigation{grid-column:2;grid-row:1;justify-self:end;width:auto;flex-wrap:nowrap}
 body[data-visual-review] .page>header nav{flex-shrink:0}
}
@media(max-width:1100px){
 body[data-visual-review] .page>header .header-navigation{width:100%}
 body[data-visual-review] .page>header nav{justify-content:flex-end;margin-left:auto}
}


/* R4 source: assets/brand-type-b.css; order preserved. */
/* SFS selected scale B. One brand-aligned family, shared role sizes. */
body[data-type-b]{--brand-text:'Helvetica Neue',Helvetica,Arial,'PingFang SC','Microsoft YaHei',sans-serif;--b-body:24.3px;--b-intro:31.752px;--b-page:64.8px;--b-content:43.2px;--b-ui:18.9px;--b-section:27px;--la-long-size:24.3px;--la-long-leading-en:1.7;--la-long-leading-zh:1.8;--la-paragraph-gap:32px;--la-font-editorial-en:var(--brand-text);--la-font-zh:var(--brand-text);--la-font-mixed:var(--brand-text);--la-font-latin:var(--brand-text);--la-reading-width:760px;font-synthesis:none}
html body[data-type-b] main :is(p,li,dt,dd){font-family:var(--brand-text)!important;font-size:var(--b-body)!important;line-height:1.7!important;letter-spacing:0!important;font-weight:400!important}
html[lang=zh-CN] body[data-type-b] main :is(p,li,dt,dd){line-height:1.8!important}
html body[data-type-b] main :is(em,strong){font-family:inherit!important;font-size:inherit!important}
html body[data-type-b] main :is(h1,h2,h3){font-family:var(--brand-text)!important;font-weight:400!important;letter-spacing:-.02em!important;line-height:1.25!important}
html body[data-type-b] .page-title{font-size:var(--b-page)!important;font-weight:300!important;line-height:1.12!important;letter-spacing:-.035em!important;margin-bottom:32px}
html body[data-type-b] :is(.featured-title,.material-entry h2,.home-material-note h3,.material-article-title,.artist-heading h2,.detail-copy h1){font-size:var(--b-content)!important}
html body[data-type-b] :is(.production-copy h3){font-size:32.4px!important}
html body[data-type-b] :is(.section-head h2,.directors-note h2){font-size:var(--b-section)!important;font-weight:500!important;letter-spacing:0!important}
html body[data-type-b] :is(.article-body h2,.article-body h3){font-size:32.4px!important}
html body[data-type-b] :is(.home-brand-introduction p,#about .about-copy p){font-size:var(--b-intro)!important;line-height:1.65!important}
html[lang=zh-CN] body[data-type-b] :is(.home-brand-introduction p,#about .about-copy p){line-height:1.8!important}
html body[data-type-b] :is(.article-category,.article-meta,.related-project-label,.production-credits,.production-credits p,.production-intro,.production-year,.year-heading,.year-navigation,.project-detail-link,.project-detail-pending,.read-note,.article-return,.article-return a,.material-neighbours a,.material-neighbours span,.detail-back a,.credit,.number,.tag,.review-pending,.directors-note-pending,.contact-note){font-family:var(--brand-text)!important;font-size:var(--b-ui)!important;font-weight:400!important;line-height:1.6!important;letter-spacing:0!important}
html body[data-type-b] .page>header nav{font-family:var(--brand-text)!important;font-size:var(--b-ui)!important;font-weight:400!important;line-height:1.5!important;gap:24px;letter-spacing:0}
html body[data-type-b] .page>header .header-navigation{flex-wrap:wrap;gap:12px 24px}
html body[data-type-b] .page>header .language-selector{font-family:var(--brand-text)!important;font-size:var(--b-ui)!important;line-height:1.5;letter-spacing:0}
html body[data-type-b] .page>header .header-search{height:44px;width:200px;display:flex;align-items:stretch;flex-shrink:0}
html body[data-type-b] .page>header .header-search input{box-sizing:border-box;height:44px;min-height:44px;width:0;flex:1 1 0;min-width:0;font-family:var(--brand-text);font-size:var(--b-ui);line-height:1.3;padding:8px 10px;border:1px solid #858585;border-right:0}
html body[data-type-b] .page>header .header-search button{box-sizing:border-box;width:44px;height:44px;min-height:44px;display:grid;place-items:center;flex:0 0 44px}
html body[data-type-b] .header-search button svg{width:20px;height:20px}
html body[data-type-b] .search-panel[hidden]{display:none!important}
html body[data-type-b] .search-panel{max-width:960px;padding:28px 0}
html body[data-type-b] .search-panel :is(p,li,a,button,small){font-family:var(--brand-text);font-size:var(--b-ui);line-height:1.6;letter-spacing:0}
html body[data-type-b] .search-actions{display:flex;gap:24px;flex-wrap:wrap}
html body[data-type-b] .search-actions button{min-height:44px}
html body[data-type-b] .search-panel [data-search-results] a{font-size:var(--b-body);line-height:1.4;min-height:44px;display:block;overflow-wrap:anywhere}
html body[data-type-b] .search-panel [data-search-results] p{font-size:var(--b-body);margin-top:12px;overflow-wrap:anywhere}
html body[data-type-b] :is(footer,footer a,.reader-controls button,.reader-mode,.reader-status,.section-entry a,.carousel-motion){font-family:var(--brand-text)!important;font-size:var(--b-ui)!important;line-height:1.5;letter-spacing:0;font-weight:400}
html body[data-type-b] footer a,html body[data-type-b] .reader-controls button,html body[data-type-b] .reader-mode{min-height:44px}
html body[data-type-b] .review-disclaimer,html body[data-type-b] .review-pending{display:none}
html body[data-type-b] .material-article>article{max-width:760px}
html body[data-type-b] .article-body{font-family:var(--brand-text);font-size:var(--b-body);line-height:1.7}
html body[data-type-b] .material-excerpt{max-width:760px}
html body[data-type-b].home-page .title-overlay h3{font-family:var(--brand-text)!important;font-weight:500!important;font-size:64.8px!important;line-height:1.08!important;letter-spacing:-.025em!important}
html body[data-type-b].home-page .overlay-year{font-size:var(--b-ui)!important;line-height:1.3!important}
/* One connected profile: portrait + name + first paragraph, followed by full-width biography. */
html body[data-type-b][data-about-page] main.standalone{max-width:960px;margin-inline:auto;padding-top:56px;padding-bottom:48px}
html body[data-type-b][data-about-page] #about{padding-bottom:48px}
html body[data-type-b][data-about-page] #about .section-head{margin-bottom:28px}
html body[data-type-b][data-about-page] #about :is(.about,.about-copy){display:block;max-width:880px;margin:0}
html body[data-type-b] #sifan-shao{display:block;padding:48px 0}
html body[data-type-b] #sifan-shao .artist-composition{display:grid;grid-template-columns:200px minmax(0,648px);gap:0 32px;max-width:880px;width:100%;margin:0}
html body[data-type-b] #sifan-shao .artist-heading{grid-column:2;grid-row:1;margin:0 0 24px}
html body[data-type-b] #sifan-shao .artist-bio{display:contents}
html body[data-type-b] #sifan-shao .artist-portrait{grid-column:1;grid-row:1/3;float:none;shape-outside:none;width:200px;height:260px;max-width:100%;margin:0;border-radius:0;overflow:hidden}
html body[data-type-b] #sifan-shao .artist-portrait img{width:100%;height:100%;border-radius:0;object-fit:cover;object-position:50% 35%;transform:none}
html body[data-type-b] #sifan-shao .artist-bio p{grid-column:1/-1;margin:0 0 32px;max-width:880px;text-align:left;overflow-wrap:break-word}
html body[data-type-b] #sifan-shao .artist-bio p:first-of-type{grid-column:2;grid-row:2;margin-bottom:40px}
html body[data-type-b] #sifan-shao .artist-bio p:last-child{margin-bottom:0}
html body[data-type-b] #about-contact{padding:24px 0 0}
html body[data-type-b] #about-contact .number{display:none}
html body[data-type-b] #about-contact h2{font-size:var(--b-ui)!important}
@media(max-width:800px){html body[data-type-b] #sifan-shao .artist-composition{grid-template-columns:minmax(0,1fr)}html body[data-type-b] #sifan-shao .artist-portrait{grid-column:1;grid-row:1;width:160px;height:208px;margin:0 0 28px}html body[data-type-b] #sifan-shao .artist-heading{grid-column:1;grid-row:2}html body[data-type-b] #sifan-shao .artist-bio p:first-of-type{grid-column:1;grid-row:3;margin-bottom:32px}}
@media(max-width:700px){body[data-type-b]{--b-body:21.6px;--b-intro:27px;--b-page:48.6px;--b-content:35.1px;--b-section:21.6px;--la-long-size:21.6px}html body[data-type-b] .page>header{padding-top:56px}html body[data-type-b] .page>header nav{flex-wrap:wrap;gap:8px 20px;max-width:none}html body[data-type-b][data-about-page] main.standalone{padding-top:40px}html body[data-type-b][data-about-page] #about{padding-bottom:32px}html body[data-type-b] #sifan-shao{padding-top:32px;padding-bottom:32px}html body[data-type-b].home-page .title-overlay h3{font-size:35.1px!important}html[lang=en] body[data-type-b].home-page #featured .title-overlay h3{font-size:29.7px!important}html body[data-type-b] .reader-controls{gap:12px;flex-wrap:wrap}}
@media(max-width:420px){html body[data-type-b] .page>header nav{display:grid;grid-template-columns:repeat(2,max-content);justify-content:end;gap:0 24px;flex-basis:100%}}
html body[data-type-b] #contact a[href^="mailto:"]{font-family:var(--brand-text)!important;font-size:var(--b-body)!important;line-height:1.5!important;overflow-wrap:anywhere;word-break:normal}
html body[data-type-b] .reader-controls{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:12px;align-items:center}
html body[data-type-b] .reader-controls button:last-child{justify-self:end;text-align:right}
@media(max-width:700px){html body[data-type-b] .reader-controls{gap:8px}}
@media(max-width:360px){html body[data-type-b].home-page .title-overlay h3{font-size:32.4px!important}html[lang=en] body[data-type-b].home-page #featured .title-overlay h3{font-size:24.3px!important}}


/* R4 source: assets/layout-review-r2.css; order preserved. */
/* SFS review R2: keep selected type B and refine content relationships. */
html body[data-type-b] .page>header .brand{font-size:51.2px!important}
html body[data-type-b].home-page #material .home-section-heading a{display:inline-flex;align-items:center;min-height:44px;color:inherit;text-decoration:none;transition:color .15s ease}
html body[data-type-b].home-page #material .home-section-heading a:hover,html body[data-type-b].home-page #material .home-section-heading a:focus-visible{color:var(--accent);text-decoration:underline;text-underline-offset:6px}
html body[data-type-b].home-page .home-material-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px 48px;width:100%;max-width:none}
html body[data-type-b].home-page .home-material-note{display:flex;flex-direction:column;min-width:0;border-top:1px solid var(--line);padding:24px 0 0}
html body[data-type-b].home-page .home-material-note .read-note{margin-top:auto;align-self:flex-start}
html body[data-type-b].home-page .home-brand-introduction{display:block;grid-column:1/-1;max-width:none;width:100%;margin:48px 0;padding:40px 0;border-top:1px solid var(--line)}
html body[data-type-b].home-page .home-brand-introduction p{max-width:880px;margin:0 auto;text-align:left}
html body[data-type-b] .material-index .material-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px 48px;width:100%;max-width:none;margin-top:40px}
html body[data-type-b] .material-index .material-entry{display:flex;flex-direction:column;min-width:0;padding:28px 0 0;margin:0;border-top:1px solid var(--line)}
html body[data-type-b] .material-index .material-entry .read-note{margin-top:auto;align-self:flex-start}
/* The previous cover column was 33/100 of (row width - 20px). 16.5/100 halves both dimensions. */
@media(min-width:801px){html body[data-type-b][data-projects-index] .production{grid-template-columns:minmax(0,16.5fr) minmax(0,83.5fr);gap:20px;align-items:start}}
html body[data-type-b][data-projects-index] .production{margin-bottom:48px}
html body[data-type-b][data-projects-index] .production-copy{padding-top:0}
html body[data-type-b][data-projects-index] .production-quote{margin:24px 0 20px;padding:0;max-width:880px;border:0}
html body[data-type-b][data-projects-index] .production-quote p{margin:0}
html body[data-type-b] .project-note-link{font-family:var(--brand-text);font-size:var(--b-ui);line-height:1.6;display:inline-flex;align-items:center;min-height:44px}
/* Portrait and complete biography share exactly the same top and bottom on desktop. */
html body[data-type-b][data-about-page] main.standalone{max-width:1120px}
html body[data-type-b] #sifan-shao .artist-composition{grid-template-columns:minmax(0,1fr) minmax(0,2fr);column-gap:40px;max-width:1120px}
html body[data-type-b] #sifan-shao .artist-portrait{grid-column:1;grid-row:1/6;position:relative;width:100%;height:auto;min-height:0;align-self:stretch;aspect-ratio:auto;margin:0}
html body[data-type-b] #sifan-shao .artist-portrait img{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto;object-fit:cover;object-position:50% 35%}
html body[data-type-b] #sifan-shao .artist-heading{grid-column:2;grid-row:1}
html body[data-type-b] #sifan-shao .artist-bio p{grid-column:2;max-width:none}
html body[data-type-b] #sifan-shao .artist-bio p:first-of-type{grid-column:2;grid-row:2;margin-bottom:32px}
@media(max-width:900px){
 html body[data-type-b].home-page .home-material-list,html body[data-type-b] .material-index .material-list{grid-template-columns:minmax(0,1fr);gap:32px}
 html body[data-type-b] #sifan-shao .artist-composition{grid-template-columns:minmax(0,1fr)}
 html body[data-type-b] #sifan-shao .artist-portrait{grid-column:1;grid-row:1;width:240px;max-width:100%;height:auto;aspect-ratio:3/4;margin:0 0 28px;align-self:start}
 html body[data-type-b] #sifan-shao .artist-heading{grid-column:1;grid-row:2}
 html body[data-type-b] #sifan-shao .artist-bio p{grid-column:1}
 html body[data-type-b] #sifan-shao .artist-bio p:first-of-type{grid-column:1;grid-row:3}
}
@media(max-width:800px){html body[data-type-b][data-projects-index] .project-cover{width:50%}}
@media(max-width:700px){html body[data-type-b] .page>header .brand{font-size:32px!important}html body[data-type-b].home-page .home-brand-introduction{margin:32px 0;padding:32px 0}}
@media(max-width:360px){html body[data-type-b] .page>header .brand{font-size:25.6px!important}}
@media(prefers-reduced-motion:reduce){html body[data-type-b].home-page #material .home-section-heading a{transition:none}}
html[lang=en] body[data-type-b] .article-category{text-transform:uppercase}
html body[data-type-b] .pending-detail-dialog,html body[data-type-b] .pending-detail-dialog :is(p,button){font-family:var(--brand-text);font-size:var(--b-ui);line-height:1.6}
html body[data-type-b] .pending-detail-dialog h2{font-family:var(--brand-text);font-size:var(--b-section);font-weight:400;line-height:1.3}


/* R4 source: assets/global-r3.css; order preserved. */
/* R3: navigation, shared detail entry, wide brand statement. R2 content grids retained. */
html body[data-type-b] .page>header{display:grid;grid-template-columns:max-content minmax(0,1fr);align-items:center;gap:20px 32px;position:relative;padding-top:64px;padding-bottom:28px}
html body[data-type-b] .page>header .brand{grid-column:1;grid-row:1;justify-self:start;white-space:nowrap}
html body[data-type-b] .page>header .header-navigation{grid-column:2;grid-row:1;justify-self:end;width:auto;display:block}
html body[data-type-b] .page>header nav{display:flex;flex-wrap:nowrap;align-items:center;justify-content:flex-end;gap:24px;max-width:none;margin:0;white-space:nowrap}
html body[data-type-b] .page>header nav>a{display:inline-flex;align-items:center;min-height:44px}
html body[data-type-b] .page>header nav :is(a,button):hover{color:var(--accent);text-decoration:none}
html body[data-type-b] .page>header .search-toggle{display:none;width:44px;height:44px;align-items:center;justify-content:center;flex:0 0 44px}
html.r3-enhanced body[data-type-b] .page>header .search-toggle{display:inline-flex}
html body[data-type-b] .page>header .menu-toggle{display:none}
html body[data-type-b] .page>header .r3-search-box{grid-column:1/-1;grid-row:2;justify-self:end;max-width:100%;width:440px}
html body[data-type-b] .page>header .header-search{width:100%;height:44px}
html.r3-enhanced body[data-type-b] .page>header .r3-search-box:not(.is-open){display:none}
html body[data-type-b] .page>header .language-selector{position:absolute;right:0;top:16px}
@media(min-width:901px) and (max-width:1250px){
 html body[data-type-b] .page>header .header-navigation{grid-column:1/-1;grid-row:2}
 html body[data-type-b] .page>header .r3-search-box{grid-row:3}
}
@media(max-width:900px){
 html body[data-type-b] .page>header{gap:20px 12px;padding-top:64px;padding-bottom:24px}
 html body[data-type-b] .page>header .menu-toggle{grid-column:2;grid-row:1;justify-self:end;align-items:center;min-height:44px;font-family:var(--brand-text);font-size:var(--b-ui)}
 html.r3-enhanced body[data-type-b] .page>header .menu-toggle{display:inline-flex}
 html body[data-type-b] .page>header .header-navigation{grid-column:1/-1;grid-row:2;justify-self:stretch;width:100%}
 html body[data-type-b] .page>header nav{display:flex;flex-direction:column;align-items:stretch;gap:4px;white-space:normal}
 html body[data-type-b] .page>header nav>a{padding:6px 0;min-height:44px}
 html body[data-type-b] .page>header nav .search-toggle{align-self:flex-start}
 html.r3-enhanced body[data-type-b] .page>header:not(.menu-is-open) .header-navigation{display:none}
 html body[data-type-b] .page>header .r3-search-box{grid-column:1/-1;grid-row:3;width:100%}
}
@media(max-width:420px){html body[data-type-b] .page>header{column-gap:8px}html body[data-type-b] .page>header .menu-toggle{font-size:16px}}
html body[data-type-b] main a.enter-link{display:inline-flex;align-items:center;gap:.55em;align-self:flex-start;min-height:44px;margin:24px 0 0;padding:0;border:0;background:none;font-family:var(--brand-text)!important;font-size:var(--b-ui)!important;font-weight:500!important;letter-spacing:.08em!important;line-height:1.5!important;color:var(--ink);text-decoration:none}
html body[data-type-b] main a.enter-link .enter-arrow{font-family:var(--brand-text);font-weight:300;letter-spacing:0}
html body[data-type-b] main a.enter-link:hover{color:var(--accent);text-decoration:none}
html body[data-type-b] main a.enter-link:focus-visible{outline:2px solid var(--accent);outline-offset:6px}
html body[data-type-b] .home-brand-introduction{width:100%;margin:64px 0;padding:48px 0;border-top:1px solid var(--line)}
html body[data-type-b] .home-brand-introduction p{max-width:none;margin:0;text-align:left}
.legacy-focus-anchor{display:block;height:0;overflow:hidden}
html body[data-type-b] .home-brand-introduction p.handwriting-accessible{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.handwriting-layer{font-size:54px;line-height:1.5;color:#111;text-align:left;max-width:100%;overflow:visible}
.handwriting-word{display:inline-block;height:1.416667em;vertical-align:middle;max-width:100%;overflow:visible}
.handwriting-word path{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round}
.handwriting-layer.is-armed path{stroke-dasharray:1 1;stroke-dashoffset:1}
.handwriting-layer.is-writing path{animation:r3-pen-write var(--pen-duration) linear var(--pen-delay) both}
@keyframes r3-pen-write{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
@media(max-width:900px){.handwriting-layer{font-size:46px}}
@media(max-width:500px){.handwriting-layer{font-size:42px}html body[data-type-b] .home-brand-introduction{margin:40px 0;padding:36px 0}}
@media(prefers-reduced-motion:reduce){.handwriting-layer.is-armed path{stroke-dasharray:none;stroke-dashoffset:0;animation:none!important}html{scroll-behavior:auto}}

/* Reserve the same entry area for every selected-work slide; never fabricate a target. */
html body[data-type-b].home-page .carousel-entry-slot{min-height:76px;text-align:left}

/* R8: dark coral for audited small text only; brand accent and all geometry stay unchanged. */
html body[data-type-b] .page>header nav :is(a,button):is(.current-nav,[aria-current="page"],:hover,:focus-visible),
html body[data-type-b] .page>header .language-selector a:is([aria-current],:hover,:focus-visible),
html body[data-type-b] main :is(a.enter-link,button.enter-link):is(:hover,:focus-visible){color:#BD4837!important}


/* R4 source: assets/focus-content-v11.css; order preserved. */
/* Reuse the site's existing continuous article layout and selected B scale. No pagination enhancement. */
html body[data-type-b] main.focus-article>article{max-width:760px;margin-inline:auto}
html body[data-type-b] main.focus-article .article-heading{display:block;margin:0 0 48px;padding:0;border:0;max-width:100%}
html body[data-type-b] main.focus-article .article-body{max-width:none;width:100%}
html body[data-type-b] main.focus-article .focus-subtitle{margin:0;line-height:1.5!important}
html body[data-type-b] main.focus-article .material-article-title{margin-bottom:20px;overflow-wrap:break-word;text-wrap:balance}
html[lang=en] body[data-type-b] main.focus-article .article-body,html[lang=en] body[data-type-b] main.focus-article .article-body p{font-family:Arial,Helvetica,sans-serif!important;font-weight:400!important;font-synthesis:none}
html body[data-type-b] main.focus-article .focus-signature{margin:48px 0 0}
html body[data-type-b] main.focus-article .focus-signature p{margin:0;line-height:1.7!important}
html body[data-type-b].home-page #in-focus .approved-description p:last-child{margin-bottom:0}
@media(max-width:700px){html body[data-type-b] main.focus-article .article-heading{margin-bottom:36px}html body[data-type-b] main.focus-article .focus-signature{margin-top:36px}}

.focus-title-unit{display:inline-block;white-space:nowrap}


/* R4 source: assets/r4-visual.css; order preserved. */
/* Approved R4 visual changes, scoped over the preserved R3 styles. */
html body[data-type-b] .page>header .brand{display:block;position:relative;color:#000;line-height:1;width:330px;max-width:100%;font-size:0!important}
html body[data-type-b] .page>header .brand-image{display:block;width:100%;height:auto;max-width:100%;object-fit:contain}
html body[data-type-b] .page>header .brand:hover{color:#f06450;text-decoration:none}
@supports ((mask-image:url('brand/la-approved-logo-r4.png')) or (-webkit-mask-image:url('brand/la-approved-logo-r4.png'))){
 html body[data-type-b] .page>header .brand-image{opacity:0}
 html body[data-type-b] .page>header .brand::after{content:"";position:absolute;inset:0;background:currentColor;mask:url('brand/la-approved-logo-r4.png') center/contain no-repeat;-webkit-mask:url('brand/la-approved-logo-r4.png') center/contain no-repeat;pointer-events:none}
}
@media(max-width:900px){html body[data-type-b] .page>header .brand{width:290px}}
@media(max-width:700px){html body[data-type-b] .page>header .brand{width:220px}}
/* Restore the approved FEATURED NOW structure lost when its ID was renamed. */
html body[data-type-b].home-page #in-focus{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:24px;align-items:start;padding:0;margin:96px 0 64px}
html body[data-type-b].home-page #in-focus .section-head{margin:0 0 24px}
html body[data-type-b].home-page #in-focus .approved-description{max-width:none;margin:0}
html body[data-type-b].home-page #in-focus .approved-description p{margin:0 0 12px}
html body[data-type-b].home-page #in-focus .approved-description p:last-child{margin-bottom:0}
html body[data-type-b].home-page :is(#in-focus,#material) .section-head h2{font-family:var(--brand-text)!important;font-size:var(--b-section)!important;font-weight:500!important;letter-spacing:0!important;line-height:1.25!important;display:inline-flex;align-items:center;min-height:44px;margin:0}
@media(max-width:700px){html body[data-type-b].home-page #in-focus{grid-template-columns:minmax(0,1fr);gap:24px;margin-top:64px;margin-bottom:48px}}
/* MATERIAL index only. The existing detail reader and HOME cards retain their rules. */
html body[data-type-b] .material-index .material-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:48px 36px}
html body[data-type-b] .material-index .material-entry{display:flex;flex-direction:column;min-width:0}
html body[data-type-b] .material-index .material-entry .enter-link{margin-top:auto;padding-top:24px}
@media(max-width:1200px){html body[data-type-b] .material-index .material-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:40px 32px}}
@media(max-width:700px){html body[data-type-b] .material-index .material-list{grid-template-columns:minmax(0,1fr)}}
/* ABOUT: uncropped original portrait, top aligned with the complete biography. */
html body[data-type-b][data-about-page] #about :is(.about,.about-copy){width:100%;max-width:none}
html body[data-type-b] #sifan-shao .artist-portrait{width:100%;height:auto;aspect-ratio:auto;align-self:start;overflow:visible}
html body[data-type-b] #sifan-shao .artist-portrait img{position:static;display:block;width:100%;height:auto;aspect-ratio:auto;object-fit:contain;object-position:center;inset:auto}
@media(max-width:900px){html body[data-type-b] #sifan-shao .artist-portrait{width:240px;max-width:100%;height:auto;aspect-ratio:auto}}
/* Projects: locked cover dimensions; readable type and a flex column. Oversize text is never clipped. */
html body[data-type-b][data-projects-index] .production-copy{display:flex;flex-direction:column;min-height:var(--r4-cover-height,0px);padding-top:0}
html body[data-type-b][data-projects-index] .production-copy h3{font-size:29.16px!important;line-height:1.25!important;margin-top:0;margin-bottom:8px}
html body[data-type-b][data-projects-index] .production-credits,html body[data-type-b][data-projects-index] .production-credits p{font-size:18.9px!important;line-height:1.45!important}
html body[data-type-b][data-projects-index] .production-quote{margin:16px 0}
html body[data-type-b][data-projects-index] .production-quote p{font-size:21.6px!important;line-height:1.6!important}
html body[data-type-b][data-projects-index] .production-copy>.enter-link{margin-top:auto;padding-top:16px}
/* Same MATERIAL reader, with an opt-in whole-paragraph policy for IN FOCUS. */
html body[data-type-b] main.r4-split-focus{width:100%;max-width:none}
html body[data-type-b] main.r4-split-focus>article.r4-focus-grid{display:grid;grid-template-columns:minmax(0,55fr) minmax(0,45fr);gap:0 48px;width:100%;max-width:none}
html body[data-type-b] .r4-focus-heading{grid-column:1;grid-row:1}
html body[data-type-b] main.r4-split-focus .r4-focus-metadata{margin:24px 0 0;display:flex;flex-wrap:wrap;gap:4px 24px}
html body[data-type-b] main.r4-split-focus .r4-focus-metadata p{font-size:var(--b-ui)!important;line-height:1.6!important;margin:0}
.r4-focus-reader{grid-column:1;grid-row:2;min-width:0}
.r4-focus-photo{grid-column:2;grid-row:1/3;position:sticky;top:24px;margin:0;align-self:start;width:100%;min-width:0}
.r4-focus-photo img{display:block;width:100%;height:auto;object-fit:contain}
.r4-focus-grid>.article-return{grid-column:1/-1;grid-row:3}
.r4-split-reader .reader-stage{--r4-reader-base:600;height:600px}
html body[data-type-b] main.r4-split-focus .reader-page.article-body,html body[data-type-b] main.r4-split-focus .reader-measure.article-body{width:100%;max-width:none}
@media(max-width:900px){
 html body[data-type-b] main.r4-split-focus>article.r4-focus-grid{grid-template-columns:minmax(0,1fr);gap:0}
 .r4-focus-photo{grid-column:1;grid-row:2;position:static;margin:0 0 32px}
 .r4-focus-reader{grid-column:1;grid-row:3}
 .r4-focus-grid>.article-return{grid-column:1;grid-row:4}
 .r4-split-reader .reader-stage{--r4-reader-base:480;height:480px}
}

html[lang=en] body[data-type-b] main.focus-article.r4-split-focus .article-body,html[lang=en] body[data-type-b] main.focus-article.r4-split-focus .article-body p{font-family:var(--brand-text)!important}
html body[data-type-b] main.r4-split-focus #complete-article{max-width:none}

/* Exact approved handwriting pixels. Static fallback permitted by R4 section 10. */
.r4-handwritten-statement{--ink-scale:.55;display:flex;flex-wrap:wrap;align-items:flex-start;width:100%;max-width:none;gap:0;line-height:0}
.r4-handwritten-word{display:block;flex:none;width:calc(var(--word-width)*var(--ink-scale)*1px);height:calc(210px*var(--ink-scale))}
.r4-handwritten-word img{display:block!important;width:100%!important;height:100%!important;max-width:none!important;object-fit:contain}
html body[data-type-b] .r4-statement-text{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip-path:inset(50%)!important;white-space:nowrap!important}
@media(max-width:1100px){.r4-handwritten-statement{--ink-scale:.48}}
@media(max-width:700px){.r4-handwritten-statement{--ink-scale:.4}}


/* R4 source: assets/r5-refinement.css; order preserved. */
/* R5 scoped changes over the preserved R4. Logo dimensions stay in R4 CSS. */
html body[data-type-b] .page>header .brand::after{display:none!important}
html body[data-type-b] .page>header .brand-image{opacity:1!important;image-rendering:auto;transform:none;filter:none}
html body[data-type-b] .page>header .brand:hover .brand-image{filter:url('brand/logo-hover-r5.svg#r3-hover')}
/* Precisely 80% of the R4 role size, preserving font, weight and tracking. */
html body[data-type-b] .page-title{font-size:51.84px!important;text-align:left}
html body[data-type-b].home-page :is(#in-focus,#material) .section-head h2{font-size:21.6px!important}
html body[data-type-b] .r4-focus-heading>.article-category{font-size:15.12px!important}
html body[data-type-b] #contact .section-head{max-width:none;margin-left:0;margin-right:0;text-align:left}
html body[data-type-b] #contact .contact-editorial{margin-left:0;margin-right:0}
/* HOME: section label above the two columns, then title and photo align. */
html body[data-type-b].home-page #in-focus{grid-template-columns:minmax(0,var(--focus-copy-fr,55fr)) minmax(0,var(--focus-photo-fr,45fr));gap:24px}
html body[data-type-b].home-page #in-focus>.section-head{grid-column:1/-1;grid-row:1;margin:0}
html body[data-type-b].home-page #in-focus .featured-copy{grid-column:1;grid-row:2;display:flex;flex-direction:column;min-width:0;min-height:var(--focus-photo-height,0px)}
html body[data-type-b].home-page #in-focus .featured-title{margin:0 0 12px}
html body[data-type-b].home-page #in-focus .featured-subtitle{font-size:var(--b-body)!important;line-height:1.4!important;margin:0 0 20px}
html body[data-type-b].home-page #in-focus .in-focus-enter{margin-top:auto;padding-top:24px;align-self:flex-start}
html body[data-type-b].home-page #in-focus .featured-photo{grid-column:2;grid-row:2;margin:0}
html body[data-type-b].home-page #in-focus .featured-photo img{display:block;width:100%;height:auto;aspect-ratio:auto;object-fit:contain}
/* IN FOCUS only: no continuous text controls. MATERIAL code and UI remain unchanged. */
html body[data-type-b] main.r4-split-focus>article.r4-focus-grid{grid-template-columns:minmax(0,7fr) minmax(0,3fr);gap:0 40px}
html body[data-type-b] .r4-focus-photo{position:relative;align-self:stretch;display:flex;flex-direction:column;justify-content:space-between;top:auto}
html body[data-type-b] .r4-focus-photo img{position:sticky;top:24px;width:100%;height:auto;object-fit:contain}
html body[data-type-b] .r4-focus-photo::after{content:"";display:block;border-bottom:1px solid var(--line);margin-top:32px}
html body[data-type-b] .r4-focus-reader .reader-tools{display:none!important}
/* Approved handwriting reduced in proportion; no glyph substitution. */
.r4-handwritten-statement{--ink-scale:.275}
.r5-handwritten-zh{--zh-scale:.56;gap:0;padding:8px 0}
.r5-zh-word{display:block;flex:none;width:calc(var(--word-width)*var(--zh-scale)*1px);height:calc(100px*var(--zh-scale))}
.r5-zh-word img{display:block;width:100%;height:100%;object-fit:contain}
html body[data-type-b].home-page .home-brand-introduction{border-bottom:1px solid var(--line)}
html body[data-type-b][data-about-page] main.standalone{max-width:none;width:100%}
html body[data-type-b][data-about-page] #about{border-top:0}
html body[data-type-b][data-about-page] #about .about-copy{padding:24px 0;border-top:1px solid var(--line)}
/* The source portrait stays whole; choose a column width only when readable text fits. */
html body[data-type-b] #sifan-shao .artist-composition{display:grid;grid-template-columns:minmax(0,var(--portrait-width,40%)) minmax(0,1fr);gap:0 48px;max-width:none;width:100%}
html body[data-type-b] #sifan-shao .artist-portrait{grid-column:1;grid-row:1;align-self:start;width:100%;margin:0;height:auto;overflow:visible}
html body[data-type-b] #sifan-shao .r5-profile{grid-column:2;grid-row:1;min-width:0}
html body[data-type-b] #sifan-shao .artist-heading{display:block;margin:0 0 24px}
html body[data-type-b] #sifan-shao .artist-bio{display:block}
html body[data-type-b] #sifan-shao .artist-bio p,html[lang=zh-CN] body[data-type-b] #sifan-shao .artist-bio p{font-size:22.5px!important;line-height:1.65!important;margin:0 0 28px;max-width:none}
html body[data-type-b] #sifan-shao .artist-bio p:last-child{margin-bottom:0}
/* Minimal PROJECTS listing. Credits remain in DOM and official data, hidden only here. */
html body[data-type-b][data-projects-index] :is(.production-credits,.production-intro,.project-detail-pending){display:none!important}
html body[data-type-b][data-projects-index] .production{grid-template-columns:minmax(0,var(--cover-width,280px)) minmax(0,1fr);column-gap:32px;align-items:start}
html body[data-type-b][data-projects-index] .project-cover{display:block;width:100%;height:auto;aspect-ratio:auto;background:none;padding:0;border:0;overflow:visible}
html body[data-type-b][data-projects-index] .project-cover img{position:static;display:block;width:100%;height:auto;aspect-ratio:auto;object-fit:contain}
html body[data-type-b][data-projects-index] .production-copy{min-height:var(--cover-height,0px);height:auto}
html body[data-type-b][data-projects-index] .production-copy h3{margin:0 0 12px}
html body[data-type-b][data-projects-index] .production-quote{margin:8px 0 16px;max-width:880px}
html body[data-type-b][data-projects-index] .production-copy>.enter-link{margin-top:auto;padding-top:16px;align-self:flex-start}
.r5-pending-entry{font:inherit;border:0;background:none;color:inherit;cursor:pointer;padding-left:0;padding-right:0;text-align:left}
/* Inter-article links only; reader page controls stay separate. */
html body[data-type-b] .r5-note-navigation{display:flex;justify-content:space-between;align-items:center;gap:24px;width:100%}
html body[data-type-b] .r5-note-navigation a{font-weight:500!important;min-height:44px;display:inline-flex;align-items:center}
html body[data-type-b] .r5-note-navigation a[rel=next]{margin-left:auto;text-align:right}
@media(max-width:900px){
 html body[data-type-b] main.r4-split-focus>article.r4-focus-grid{grid-template-columns:minmax(0,1fr);gap:0}
 html body[data-type-b] .r4-focus-photo{position:static;display:block;align-self:start}
 html body[data-type-b] .r4-focus-photo img{position:static}
 html body[data-type-b] .r4-focus-photo::after{display:none}
 html body[data-type-b] #sifan-shao .artist-composition{grid-template-columns:minmax(0,1fr)}
 html body[data-type-b] #sifan-shao .artist-portrait{grid-column:1;grid-row:1;width:min(100%,320px);margin:0 0 28px}
 html body[data-type-b] #sifan-shao .r5-profile{grid-column:1;grid-row:2}
}
@media(max-width:800px){
 html body[data-type-b][data-projects-index] .production{grid-template-columns:minmax(0,1fr);gap:24px}
 html body[data-type-b][data-projects-index] .project-cover{width:min(100%,420px)}
 html body[data-type-b][data-projects-index] .production-copy{min-height:0}
}
@media(max-width:700px){
 html body[data-type-b] .page-title{font-size:38.88px!important}
 html body[data-type-b].home-page :is(#in-focus,#material) .section-head h2{font-size:17.28px!important}
 html body[data-type-b].home-page #in-focus{grid-template-columns:minmax(0,1fr)}
 html body[data-type-b].home-page #in-focus .featured-copy{grid-column:1;grid-row:2;min-height:0}
 html body[data-type-b].home-page #in-focus .featured-photo{grid-column:1;grid-row:3}
 .r4-handwritten-statement{--ink-scale:.26}
 .r5-handwritten-zh{--zh-scale:.56}
 html body[data-type-b] #sifan-shao .artist-bio p,html[lang=zh-CN] body[data-type-b] #sifan-shao .artist-bio p{font-size:21.6px!important;line-height:1.7!important}
}

/* Compact windows use a clear reading stack rather than forcing undersized side columns. */
@media(min-width:701px) and (max-width:1100px){
 html body[data-type-b].home-page #in-focus{grid-template-columns:minmax(0,1fr)}
 html body[data-type-b].home-page #in-focus .featured-copy{grid-column:1;grid-row:2;min-height:0}
 html body[data-type-b].home-page #in-focus .featured-photo{grid-column:1;grid-row:3;width:min(100%,760px)}
 html body[data-type-b] #sifan-shao .artist-composition{grid-template-columns:minmax(0,1fr)}
 html body[data-type-b] #sifan-shao .artist-portrait{grid-column:1;grid-row:1;width:min(100%,360px);margin:0 0 28px}
 html body[data-type-b] #sifan-shao .r5-profile{grid-column:1;grid-row:2}
 html body[data-type-b][data-projects-index] .production{grid-template-columns:minmax(0,1fr);gap:24px}
 html body[data-type-b][data-projects-index] .project-cover{width:min(100%,420px)}
 html body[data-type-b][data-projects-index] .production-copy{min-height:0}
}
html body[data-type-b].home-page #in-focus .featured-photo{aspect-ratio:auto;overflow:visible;background:none}
html body[data-type-b].home-page #in-focus .featured-title{font-size:35.1px!important;line-height:1.25!important;margin-bottom:8px}
html body[data-type-b].home-page #in-focus .featured-subtitle{font-size:22.5px!important;line-height:1.4!important;margin-bottom:12px}
html body[data-type-b].home-page #in-focus .approved-description p{font-size:22.5px!important;line-height:1.65!important;margin-bottom:8px}
html body[data-type-b].home-page #in-focus .in-focus-enter{padding-top:16px}
@media(min-width:1101px) and (max-width:1360px){
 html body[data-type-b] #sifan-shao .artist-composition{grid-template-columns:minmax(0,1fr)}
 html body[data-type-b] #sifan-shao .artist-portrait{grid-column:1;grid-row:1;width:min(100%,360px);margin:0 0 28px}
 html body[data-type-b] #sifan-shao .r5-profile{grid-column:1;grid-row:2}
}
@media(max-width:700px){
 html body[data-type-b].home-page #in-focus .approved-description p,html body[data-type-b].home-page #in-focus .featured-subtitle{font-size:21.6px!important}
}
@media(min-width:1101px) and (max-width:1360px){
 html body[data-type-b].home-page #in-focus .approved-description p{font-size:21.6px!important;line-height:1.6!important;margin-bottom:6px}
 html body[data-type-b].home-page #in-focus .featured-subtitle{font-size:21.6px!important;margin-bottom:8px}
 html body[data-type-b].home-page #in-focus .in-focus-enter{padding-top:8px}
}
html body[data-type-b] #sifan-shao .artist-composition{max-width:1328px}
html body[data-type-b] main.r4-split-focus .reader-page.article-body,html body[data-type-b] main.r4-split-focus .reader-measure.article-body{max-width:880px}
html body[data-type-b] main button.enter-link{display:inline-flex;align-items:center;gap:.55em;min-height:44px;border:0;background:none;font-family:var(--brand-text)!important;font-size:var(--b-ui)!important;font-weight:500!important;letter-spacing:.08em!important;line-height:1.5!important;color:var(--ink);text-decoration:none}
html body[data-type-b] main button.enter-link:hover{color:var(--accent)}
html body[data-type-b] main button.enter-link:focus-visible{outline:2px solid var(--accent);outline-offset:6px}


/* R4 source: assets/r6-refinement.css; order preserved. */
/* R6 reading and visual refinements. Approved R5 type sizes stay in place. */
/* HOME: a stable photo-led grid. The image's natural height defines the row. */
html body[data-type-b].home-page #in-focus{grid-template-columns:minmax(0,48fr) minmax(0,52fr);gap:28px 48px;align-items:stretch;max-width:1440px}
html body[data-type-b].home-page #in-focus .featured-copy{min-height:0;height:100%;box-sizing:border-box}
html body[data-type-b].home-page #in-focus .featured-photo{align-self:start}
html body[data-type-b].home-page #in-focus .featured-subtitle{margin-bottom:20px}
html body[data-type-b].home-page #in-focus .approved-description p{margin-bottom:12px}
html body[data-type-b].home-page #in-focus .approved-description p:last-child{margin-bottom:0}
html body[data-type-b].home-page #in-focus .in-focus-enter{margin-top:auto;padding-top:20px}
/* Same source pixel geometry, darker alpha coverage, modest scale increase. */
.r4-handwritten-statement{--ink-scale:.31;opacity:1;filter:none;transform:none;overflow:visible}
.r5-handwritten-zh{--zh-scale:.60}
.r4-handwritten-statement img{opacity:1;filter:none;image-rendering:auto}
@keyframes r6-horizontal-reveal{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}
@supports (clip-path:inset(0 100% 0 0)){
 .r6-reveal-playing{animation:r6-horizontal-reveal .8s ease-out .15s 1 both}
}
@media(prefers-reduced-motion:reduce){.r6-reveal-playing{animation:none!important;clip-path:none!important}}
/* All long-form text is the original semantic article in document flow. */
html body[data-type-b] main.material-article>article{width:100%;max-width:760px;margin-inline:auto}
html body[data-type-b] main.material-article .article-heading{max-width:none}
html body[data-type-b] main.material-article #complete-article{position:static;width:100%;height:auto;max-height:none;max-width:none;overflow:visible;clip-path:none;margin:0;display:flow-root;white-space:normal}
html body[data-type-b] main.material-article #complete-article p{margin:0 0 32px;max-width:none;overflow:visible}
html body[data-type-b] main.material-article #complete-article p:last-child{margin-bottom:0}
html body[data-type-b] main.material-article #complete-article :is(h2,h3){margin:48px 0 24px;break-after:avoid}
html body[data-type-b] main.material-article .article-return{margin-top:48px;padding-top:24px}
/* IN FOCUS: natural image at the title, no full-article bottom constraint. */
html body[data-type-b] main.r4-split-focus{max-width:1440px;margin-left:0}
html body[data-type-b] main.r4-split-focus>article.r4-focus-grid{max-width:none;grid-template-columns:minmax(0,55fr) minmax(0,45fr);gap:0 64px;margin:0;align-items:start}
html body[data-type-b] .r4-focus-reader{height:auto;max-height:none;overflow:visible}
html body[data-type-b] .r4-focus-photo{position:static;display:block;align-self:start;grid-row:1/3;margin:0;top:auto}
html body[data-type-b] .r4-focus-photo img{position:static;top:auto;display:block;height:auto;object-fit:contain}
html body[data-type-b] .r4-focus-photo::after{display:none}
/* PROJECTS: one frame size per viewport, independent of title/summary length. */
html body[data-type-b][data-projects-index] .production{grid-template-columns:minmax(0,400px) minmax(0,1fr);column-gap:48px;align-items:start;padding-block:32px;margin:0;min-height:0}
html body[data-type-b][data-projects-index] .project-cover{width:100%;height:266.6667px;aspect-ratio:auto;display:flex;align-items:center;justify-content:center;overflow:visible}
html body[data-type-b][data-projects-index] .project-cover img{width:100%;height:100%;object-fit:contain;object-position:center;max-width:100%;max-height:100%}
html body[data-type-b][data-projects-index] .production-copy{min-height:266.6667px;height:auto}
html body[data-type-b][data-projects-index] .production-quote,html body[data-type-b][data-projects-index] .production-quote p{color:var(--ink);font-style:normal}
html[lang=en] body[data-type-b][data-projects-index] .production-quote p{font-style:italic}
html body[data-type-b][data-projects-index] .production-quote::before,html body[data-type-b][data-projects-index] .production-quote::after{content:none}
/* Index-only clipping: full stored excerpts and articles are unchanged. */
html body[data-type-b] .material-index .material-excerpt{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;min-height:6.8em;max-height:6.8em}
html[lang=zh-CN] body[data-type-b] .material-index .material-excerpt{min-height:7.2em;max-height:7.2em}
@media(min-width:1101px) and (max-width:1360px){
 html body[data-type-b].home-page #in-focus{grid-template-columns:minmax(0,46fr) minmax(0,54fr);column-gap:40px}
 html body[data-type-b].home-page #in-focus .featured-subtitle{margin-bottom:12px}
 html body[data-type-b].home-page #in-focus .approved-description p{margin-bottom:8px}
 html body[data-type-b][data-projects-index] .production{grid-template-columns:minmax(0,360px) minmax(0,1fr);column-gap:40px}
 html body[data-type-b][data-projects-index] .project-cover{height:240px}
 html body[data-type-b][data-projects-index] .production-copy{min-height:240px}
}
@media(max-width:1100px){
 html body[data-type-b].home-page #in-focus{grid-template-columns:minmax(0,1fr);gap:28px}
 html body[data-type-b].home-page #in-focus .featured-copy{height:auto;min-height:0}
 html body[data-type-b].home-page #in-focus .featured-photo{grid-column:1;grid-row:3;width:min(100%,760px)}
 html body[data-type-b].home-page #in-focus .in-focus-enter{margin-top:12px}
 html body[data-type-b] main.r4-split-focus>article.r4-focus-grid{grid-template-columns:minmax(0,1fr);gap:0;max-width:760px}
 html body[data-type-b] .r4-focus-heading{grid-row:1;grid-column:1}
 html body[data-type-b] .r4-focus-photo{grid-column:1;grid-row:2;margin:0 0 40px;width:min(100%,680px)}
 html body[data-type-b] .r4-focus-reader{grid-column:1;grid-row:3}
 html body[data-type-b] .r4-focus-grid>.article-return{grid-column:1;grid-row:4}
 html body[data-type-b][data-projects-index] .production{grid-template-columns:minmax(0,1fr);gap:24px;padding-block:28px}
 html body[data-type-b][data-projects-index] .project-cover{width:min(100%,480px);height:auto;aspect-ratio:3/2}
 html body[data-type-b][data-projects-index] .production-copy{min-height:0}
 html body[data-type-b][data-projects-index] .production-copy>.enter-link{margin-top:12px}
}
@media(max-width:700px){
 .r4-handwritten-statement{--ink-scale:.30}
 .r5-handwritten-zh{--zh-scale:.60}
 html body[data-type-b].home-page #in-focus .featured-photo{width:100%}
 html body[data-type-b] main.material-article #complete-article p{margin-bottom:28px}
 html body[data-type-b] main.material-article .article-return{margin-top:40px}
}
@media(min-width:1101px){html body[data-type-b].home-page #in-focus .in-focus-enter{padding-top:14px}}


/* R4 source: assets/r7-refinement.css; order preserved. */
/* R7: approved final refinements, scoped over the preserved R6. */
.r4-handwritten-statement{--ink-scale:.42}
.r5-handwritten-zh{--zh-scale:.72}
@keyframes r7-horizontal-reveal{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}
@supports(clip-path:inset(0 100% 0 0)){.r7-reveal-playing{animation:r7-horizontal-reveal 1s ease-out .15s 1 both}}
@media(prefers-reduced-motion:reduce){.r7-reveal-playing{animation:none!important;clip-path:none!important}}
/* HOME keeps comfortable type; ENTER has its own clear interval. */
html body[data-type-b].home-page #in-focus{grid-template-columns:minmax(0,45fr) minmax(0,55fr)}
html body[data-type-b].home-page #in-focus .in-focus-enter{padding-top:36px;margin-top:auto}
/* A real full-text scroll region, with heading and article navigation outside. */
html body[data-type-b] main.material-article .r7-reading-window{height:clamp(400px,68vh,760px);overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:#c7c7c7 transparent;scroll-behavior:auto;scroll-padding-block:16px;padding-right:18px;box-sizing:border-box;overscroll-behavior-y:auto;background:#fff;border:0;border-radius:0;box-shadow:none;outline:none}
html body[data-type-b] main.material-article .r7-reading-window::-webkit-scrollbar{width:5px}
html body[data-type-b] main.material-article .r7-reading-window::-webkit-scrollbar-thumb{background:#c7c7c7;border-radius:0}
html body[data-type-b] main.material-article .r7-reading-window:focus-visible{outline:1px solid var(--accent);outline-offset:6px}
html body[data-type-b] main.material-article .article-heading{margin-bottom:32px}
html body[data-type-b] main.material-article:not(.r4-split-focus) .article-return{margin-top:32px;padding-top:20px}
/* The natural photograph determines the total title + reading-window height. */
html body[data-type-b] main.r4-split-focus{max-width:1540px}
html body[data-type-b] main.r4-split-focus>article.r4-focus-grid{grid-template-columns:minmax(0,48fr) minmax(0,52fr);gap:24px 56px;grid-template-rows:auto auto auto}
html body[data-type-b] .r4-focus-heading{margin:0!important}
html body[data-type-b] .r4-focus-heading .material-article-title{font-size:35.1px!important;margin:12px 0 18px}
html body[data-type-b] .r4-focus-heading .focus-subtitle{font-size:22.5px!important;line-height:1.4!important;margin:0 0 16px}
html body[data-type-b] main.r4-split-focus .r4-focus-metadata{margin:0;gap:4px 16px}
html body[data-type-b] main.r4-split-focus .r7-reading-window{height:var(--focus-window-height,220px)}
html body[data-type-b] main.r4-split-focus .r4-focus-photo{grid-row:1/3;grid-column:2;align-self:start;position:static;margin:0}
html body[data-type-b] main.r4-split-focus .r4-focus-reader{grid-row:2;grid-column:1}
html body[data-type-b] main.r4-split-focus .article-return{grid-row:3;margin-top:24px;padding-top:20px}
/* Frames are unchanged, and the approved photos now fill them proportionally. */
html body[data-type-b][data-projects-index] .project-cover{overflow:hidden}
html body[data-type-b][data-projects-index] .project-cover img{object-fit:cover;object-position:center}
html body[data-type-b][data-projects-index] #\32 023-io .project-cover img{object-position:50% 62%}
/* A single return component applies to all current and future detail pages. */
html body[data-type-b] .detail-back,html body[data-type-b] .project-return{display:flex!important;justify-content:center;align-items:center;gap:0;width:100%;text-align:center;margin:56px 0 0;padding:0;float:none;grid-column:1/-1}
html body[data-type-b] .detail-back a,html body[data-type-b] .project-return a{min-height:44px;display:inline-flex;align-items:center;justify-content:center}
/* CONTACT B: approved text at left, underline form at right. */
html body[data-type-b][data-contact-page] main.standalone{display:block;flex:1;padding:56px 0 72px;align-items:start}
html body[data-type-b][data-contact-page] #contact.r7-contact-grid{display:grid;grid-template-columns:minmax(0,43fr) minmax(0,57fr);gap:72px;padding:0;align-items:start}
html body[data-type-b][data-contact-page] .contact-editorial{margin:40px 0 0;max-width:none}
html body[data-type-b][data-contact-page] .contact-introduction{max-width:480px}
html body[data-type-b][data-contact-page] .contact-email{margin-top:48px}
.r7-contact-form{min-width:0;margin:0;padding:0;font-family:var(--brand-text);font-synthesis:none}
.r7-contact-fields{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px}
.r7-field{display:flex;flex-direction:column;min-width:0;margin-bottom:34px}
.r7-field label{display:block;font-size:18.9px;line-height:1.5;margin-bottom:10px;color:var(--ink)}
.r7-field :is(input,textarea){width:100%;min-width:0;min-height:50px;box-sizing:border-box;margin:0;padding:8px 0 12px;border:0;border-bottom:1px solid #b9b9b9;border-radius:0;background:transparent;box-shadow:none;color:var(--ink);font-family:var(--brand-text);font-size:24.3px;line-height:1.6;letter-spacing:0;appearance:none}
.r7-field textarea{min-height:210px;resize:vertical;max-height:60vh}
.r7-field :is(input,textarea):focus{border-bottom-color:#252525;outline:none}
.r7-field :is(input,textarea):focus-visible{outline:0;border-bottom:2px solid var(--accent)}
.r7-field [aria-invalid=true]{border-bottom-color:#973e32}
.r7-field-error{font-size:16px;line-height:1.5;color:#973e32;min-height:0;margin-top:8px}
.r7-field-error:empty{display:none}
html body[data-type-b] main .r7-contact-form :is(.r7-delivery-note,.r7-form-status){font-size:17px!important;line-height:1.6!important;margin:0 0 16px;color:#666}
html body[data-type-b] main .r7-form-status[data-state=invalid],html body[data-type-b] main .r7-form-status[data-state=failed]{color:#973e32}
.r7-form-actions{display:flex;justify-content:flex-end;margin-top:24px}
.r7-form-actions button:disabled{opacity:.55;cursor:wait}
.r7-honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
@media(min-width:1101px) and (max-width:1360px){
 html body[data-type-b].home-page #in-focus{grid-template-columns:minmax(0,43fr) minmax(0,57fr);gap:28px 40px}
 html body[data-type-b].home-page #in-focus .in-focus-enter{padding-top:36px}
 html body[data-type-b] main.r4-split-focus>article.r4-focus-grid{grid-template-columns:minmax(0,44fr) minmax(0,56fr);column-gap:48px}
 html body[data-type-b] .r4-focus-heading .material-article-title{font-size:32.4px!important}
}
@media(min-width:1600px){html body[data-type-b] main.r4-split-focus>article.r4-focus-grid{grid-template-columns:minmax(0,52fr) minmax(0,48fr)}}
@media(max-width:1100px){
 .r4-handwritten-statement{--ink-scale:.40}
 html body[data-type-b].home-page #in-focus{grid-template-columns:minmax(0,1fr)}
 html body[data-type-b].home-page #in-focus .in-focus-enter{margin-top:0;padding-top:36px}
 html body[data-type-b] main.r4-split-focus>article.r4-focus-grid{grid-template-columns:minmax(0,1fr);gap:0;max-width:760px}
 html body[data-type-b] main.r4-split-focus .r4-focus-heading{grid-row:1;margin-bottom:32px!important}
 html body[data-type-b] main.r4-split-focus .r4-focus-photo{grid-column:1;grid-row:2;margin:0 0 32px;width:min(100%,680px)}
 html body[data-type-b] main.r4-split-focus .r4-focus-reader{grid-column:1;grid-row:3}
 html body[data-type-b] main.r4-split-focus .r7-reading-window{height:auto;overflow:visible;padding-right:0}
 html body[data-type-b] main.r4-split-focus .article-return{grid-column:1;grid-row:4;margin-top:40px}
 html body[data-type-b][data-contact-page] #contact.r7-contact-grid{grid-template-columns:minmax(0,1fr);gap:56px;max-width:760px}
}
@media(max-width:700px){
 .r4-handwritten-statement{--ink-scale:.36}
 .r5-handwritten-zh{--zh-scale:.64}
 html body[data-type-b] main.material-article .r7-reading-window{height:auto;max-height:none;overflow:visible;padding-right:0;outline:none}
 html body[data-type-b] main.material-article .article-heading{margin-bottom:32px}
 html body[data-type-b] .detail-back,html body[data-type-b] .project-return{margin-top:48px}
 .r7-contact-fields{grid-template-columns:minmax(0,1fr);gap:0}
 .r7-field{margin-bottom:30px}
 .r7-field :is(input,textarea){font-size:21.6px}
 .r7-field textarea{min-height:200px}
 html body[data-type-b][data-contact-page] main.standalone{padding-top:40px}
 html body[data-type-b][data-contact-page] .contact-editorial{margin-top:32px}
}
@media print{html body[data-type-b] main.material-article .r7-reading-window{height:auto!important;overflow:visible!important}}
@media(min-width:1101px) and (max-width:1360px){html body[data-type-b].home-page #in-focus{grid-template-columns:minmax(0,44fr) minmax(0,56fr);column-gap:24px}}
html body[data-type-b].home-page #in-focus{max-width:1328px}

html body[data-type-b] main:has(>.project-return){row-gap:0}
html body[data-type-b] .project-return a{font-family:var(--brand-text)!important;font-size:var(--b-ui)!important;font-weight:400!important;line-height:1.6!important;letter-spacing:0!important;color:var(--ink);text-decoration:none}
html body[data-type-b] .project-return a:hover{color:var(--accent)}


/* R4 source: assets/r8-refinement.css; order preserved. */
/* R8: shared inner-page rhythm; HOME header, HERO and modules stay unchanged. */
:root{--inner-entry-gap:104px;--inner-end-gap:80px;--reading-width:800px;--reading-height:clamp(360px,63vh,720px);--reader-heading-gap:32px;--reader-nav-gap:32px}
html body[data-type-b].inner-page .page>main{margin-top:0;padding-top:var(--inner-entry-gap);padding-bottom:var(--inner-end-gap)}
html body[data-type-b].inner-page .page>main>section:first-child{padding-top:0}
/* Restore the actual R6 Chinese raster and size, at full opacity, without pixel changes. */
.r5-handwritten-zh{--zh-scale:.60}
/* One column, one continuous text region for both editorial sections, including mobile. */
html body[data-type-b] main.r8-reader-page{width:100%;max-width:none;min-height:0;margin-inline:0}
html body[data-type-b] main.r8-reader-page>article{display:block;width:100%;max-width:var(--reading-width);margin-inline:auto}
html body[data-type-b] main.r8-reader-page .article-heading{padding:0;border:0;margin:0 0 var(--reader-heading-gap);display:block;max-width:none}
html body[data-type-b] main.r8-reader-page .material-article-title{font-size:43.2px!important;line-height:1.2!important;margin:16px 0 24px}
html body[data-type-b] main.r8-reader-page .focus-subtitle{font-size:24.3px!important;line-height:1.5!important;margin:0 0 20px}
html body[data-type-b] main.r8-reader-page .r8-focus-metadata{display:flex;flex-wrap:wrap;gap:4px 24px;margin:0}
html body[data-type-b] main.r8-reader-page .r8-focus-metadata p{font-size:var(--b-ui)!important;line-height:1.6!important;margin:0}
html body[data-type-b] main.r8-reader-page .r8-reading-window{height:var(--reading-height);max-height:none;overflow-y:auto;overflow-x:hidden;padding-right:20px;scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:#aaa transparent;scroll-behavior:auto;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y pinch-zoom;border:0;border-top:1px solid #dedede;border-bottom:1px solid #dedede;border-radius:0;background:white;box-shadow:none;outline:none;padding-block:18px;scroll-padding-block:18px}
html body[data-type-b] main.r8-reader-page .r8-reading-window::-webkit-scrollbar{width:6px}
html body[data-type-b] main.r8-reader-page .r8-reading-window::-webkit-scrollbar-thumb{background:#aaa}
html body[data-type-b] main.r8-reader-page .r8-reading-window:focus-visible{outline:1px solid var(--accent);outline-offset:5px}
html body[data-type-b] main.r8-reader-page .article-return{margin:var(--reader-nav-gap) 0 0;padding-top:0;border-top:0}
/* Approved CONTACT option A. The left edge remains on the unchanged Logo axis. */
html body[data-type-b][data-contact-page] .page>main.standalone{padding-top:var(--inner-entry-gap);padding-bottom:var(--inner-end-gap)}
html body[data-type-b][data-contact-page] #contact.r7-contact-grid{grid-template-columns:minmax(0,40fr) minmax(0,60fr);gap:64px;max-width:none;margin-inline:0}
.r7-field :is(input,textarea){border:1px solid #c6c6c6;padding:12px 14px;background:white;min-height:58px}
.r7-field :is(input,textarea):focus{border:1px solid #626262}
.r7-field :is(input,textarea):focus-visible{border:1px solid var(--accent);outline:1px solid var(--accent);outline-offset:2px}
.r7-field [aria-invalid=true]{border:1px solid #973e32}
.r7-field textarea{min-height:240px}
@media(max-width:1100px){:root{--inner-entry-gap:80px;--inner-end-gap:64px}html body[data-type-b][data-contact-page] #contact.r7-contact-grid{grid-template-columns:minmax(0,1fr);gap:56px}}
@media(max-width:700px){
 :root{--inner-entry-gap:52px;--inner-end-gap:56px;--reading-height:clamp(280px,62vh,560px);--reader-heading-gap:28px;--reader-nav-gap:28px}
 @supports(height:1svh){:root{--reading-height:clamp(280px,62svh,560px)}}
 html body[data-type-b] main.r8-reader-page .material-article-title{font-size:35.1px!important;margin:14px 0 20px}
 html body[data-type-b] main.r8-reader-page .focus-subtitle{font-size:21.6px!important;margin-bottom:18px}
 html body[data-type-b] main.r8-reader-page .r8-reading-window{padding-right:12px;padding-block:14px;scroll-padding-block:14px}
 .r5-handwritten-zh{--zh-scale:.60}
 .r7-field textarea{min-height:210px}
}
@media print{html body[data-type-b] main.r8-reader-page .r8-reading-window{height:auto!important;overflow:visible!important;max-height:none!important}}


/* R4 source: assets/r10-refinement.css; order preserved. */
/* R10 unified refinement: approved system, narrowly scoped adjustments. */
html body[data-type-b].home-page :is(#in-focus,#material){width:100%;max-width:none;margin-left:0;margin-right:0}
html body[data-type-b].home-page #in-focus{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:48px;align-items:start}
html body[data-type-b].home-page #in-focus .featured-copy{height:auto;min-height:0}
html body[data-type-b].home-page #in-focus .in-focus-enter{margin-top:36px;padding-top:0}
html body[data-type-b].home-page #in-focus .featured-photo{width:100%;align-self:start}
html[lang=en] body.home-page .home-brand-introduction .r4-handwritten-statement{--ink-scale:.462}
html body[data-type-b] main.r8-reader-page .r10-section-title{font-size:51.84px!important;font-weight:300!important;line-height:1.12!important;letter-spacing:-.035em!important;margin:0 0 32px}
html body[data-type-b] main.r8-reader-page .article-body{padding-top:1.8em}
html[lang=en] body[data-type-b] main.r8-reader-page .article-body{padding-top:1.7em}
html body[data-type-b] main.r8-reader-page .article-body>:first-child{margin-top:0!important}
html body[data-type-b].projects-page .r10-complete-gallery .carousel-media{aspect-ratio:3/2;background:#fff}
html body[data-type-b].projects-page .r10-complete-gallery .carousel-media>img{object-fit:contain;object-position:center;background:#fff}
html body[data-type-b].projects-page .r10-complete-gallery .carousel-media>.carousel-outgoing{background:#fff}
html body[data-type-b].projects-page .r10-complete-gallery .carousel-indicators{max-width:100%;gap:0}
html body[data-type-b].projects-page .r10-complete-gallery .carousel-indicators button{width:24px;min-width:24px;height:44px;flex:0 0 24px}
@media(max-width:1100px){
 html body[data-type-b].home-page #in-focus,html body[data-type-b].home-page .home-material-list{grid-template-columns:minmax(0,1fr);column-gap:32px}
 html body[data-type-b].home-page #in-focus .featured-copy{grid-column:1;grid-row:2}
 html body[data-type-b].home-page #in-focus .featured-photo{grid-column:1;grid-row:3;width:100%}
 html[lang=en] body.home-page .home-brand-introduction .r4-handwritten-statement{--ink-scale:.44}
}
@media(max-width:700px){
 html[lang=en] body.home-page .home-brand-introduction .r4-handwritten-statement{--ink-scale:.396}
 html body[data-type-b] main.r8-reader-page .r10-section-title{font-size:38.88px!important;margin-bottom:28px}
}

/* SFS-approved production fix: center the unchanged dot controls inside the constrained 375px row. */
@media(max-width:389px){html body[data-type-b].projects-page .r10-complete-gallery .carousel-indicators{justify-content:center}}


/* R4 source: assets/r11-spacing.css; order preserved. */
/* R11.1: R11 approved horizontal axes + SFS Editorial Compact structural whitespace.
   Visible baselines measured in qa/VISIBLE_PRODUCTION.json and qa/VISIBLE_R11.json; inherited visual/type/reader rules stay intact. */
:root{
 --r11-section-factor:.4;
 --r11-focus-before:0px;--r11-focus-after:208.75px;
 --r11-brand-space:29.75px;--r11-brand-padding:40px;
 --r111-home-material-gap:8.7px;--r11-material-row:48px;
 --r11-project-padding:32px;--r11-year-nav-space:40px;
 --r11-about-space:48px;--r11-poster-space:112px;--r11-poster-padding:32px;
 --r11-project-return-space:56px;--r111-note-gap:21px;
}
/* One outer content axis. Mobile retains its existing comfortable page gutters. */
@media(min-width:768px){
 html body[data-type-b][data-visual-review] .page{width:100%;max-width:none;padding-inline:var(--r11-side);margin-inline:auto}
 html body[data-type-b] .page>header{width:100%;margin-inline:0}
}
@media(min-width:768px) and (max-width:1279px){
 :root{--r11-side:clamp(24px,calc(24px + (100vw - 768px)*.28125),168px);--r11-header-base:56px}
 /* Preserve the existing tablet header's available width and breakpoint behavior. */
 html body[data-type-b] .page>header{width:calc(100% + 2*(var(--r11-side) - var(--r11-header-base)));margin-inline:calc(var(--r11-header-base) - var(--r11-side))}
}
@media(min-width:768px) and (max-width:800px){:root{--r11-header-base:24px}}
@media(min-width:1280px){
 :root{--r11-side:168px}
 /* Logo dimensions and nav metrics are unchanged; reserve enough width when necessary. */
 html body[data-type-b] .page>header{width:max(100%,1000px);margin-inline:calc((100% - max(100%,1000px))/2)}
}
@media(min-width:1500px){
 /* Original standard gutter = 70px + the centered 1680px-container outside space.
    At the tested 1920px frame: (70 + 105)*3 = 525px per side.
    Beyond tested widths keep at least 800px of content instead of letting it disappear. */
 :root{--r11-side:min(calc((70px + max(0px,(100% - 1680px)/2))*3),calc((100% - 800px)/2))}
}
/* HOME: only the whitespace between modules/rows, not card internals or HERO controls. */
html body[data-type-b].home-page #in-focus{margin-top:calc(var(--r11-focus-before)*var(--r11-section-factor));margin-bottom:calc(var(--r11-focus-after)*var(--r11-section-factor))}
html body[data-type-b].home-page #material{padding-bottom:calc(44px*var(--r11-section-factor))}
html body[data-type-b].home-page .home-brand-introduction{margin-block:calc(var(--r11-brand-space)*var(--r11-section-factor));padding-block:calc(var(--r11-brand-padding)*var(--r11-section-factor))}
html body[data-type-b].home-page .home-material-list{row-gap:var(--r111-home-material-gap)}
/* PROJECTS: between year groups and between whole works; inside each work is untouched. */
html body[data-type-b][data-projects-index] .year-navigation{margin-bottom:7px}
html body[data-type-b][data-projects-index] .year-section{margin-bottom:calc(48px*var(--r11-section-factor))}
html body[data-type-b][data-projects-index] .year-section:last-child{margin-bottom:0}
html body[data-type-b][data-projects-index] .production{padding-block:calc(var(--r11-project-padding)*var(--r11-section-factor))}
/* Adjacent block margins collapse: compact both exterior edges, not credit rows. */
html body[data-type-b] .directors-note{margin-top:var(--r111-note-gap)}
html body[data-type-b] .r10-project-detail .detail-credits{margin-bottom:var(--r111-note-gap)}
html body[data-type-b] .project-return{margin-top:calc(var(--r11-project-return-space)*var(--r11-section-factor))}
/* MATERIAL cards: compact inter-row spacing, preserve the header/card/paragraph structures. */
html body[data-type-b] .material-index .material-list{row-gap:calc(var(--r11-material-row)*var(--r11-section-factor))}
/* ABOUT: paired section paddings form the whitespace between the introduction/profile/contact. */
html body[data-type-b][data-about-page] #about{padding-bottom:9px}
html body[data-type-b][data-about-page] #sifan-shao{padding-top:9px;padding-bottom:12.1px}
html body[data-type-b][data-about-page] #about-contact{padding-top:calc(24px*var(--r11-section-factor))}
/* CONTACT: only the gap to the poster section, never form-field or poster-item spacing. */
html body[data-type-b][data-contact-page] .r9-poster-section{margin-top:calc(var(--r11-poster-space)*var(--r11-section-factor));padding-top:calc(var(--r11-poster-padding)*var(--r11-section-factor))}
@media(max-width:1200px){:root{--r11-material-row:40px}}
@media(max-width:1100px){:root{--r11-project-padding:28px;--r11-poster-space:88px}}
@media(max-width:900px){:root{--r111-home-material-gap:5.5px}}
@media(max-width:700px){
 :root{--r11-focus-before:0px;--r11-focus-after:48px;--r11-brand-space:32px;--r11-brand-padding:32px;--r11-about-space:32px;--r11-poster-space:72px;--r11-poster-padding:24px;--r11-project-return-space:48px;--r11-year-nav-space:32px;--r111-note-gap:24px}
}

/* R11.1: remove only the empty header track below the unchanged navigation.
   Search-open and multi-row navigation retain their actual internal row gaps. */
html body[data-type-b] .page>header{padding-bottom:11.2px}
@media(min-width:1251px){
 html.r3-enhanced body[data-type-b] .page>header:not(:has(.r3-search-box.is-open)){row-gap:0;padding-bottom:19.2px}
}
:root{--inner-entry-gap:41.6px}
html body[data-type-b].inner-page .page>main{padding-top:var(--inner-entry-gap)}
html body[data-type-b].inner-page .page>main.material-article:not(.focus-article){padding-top:33.2px}
html body[data-type-b] .material-index .page-title{margin-bottom:16px}
html body[data-type-b][data-projects-index] .year-section>.production:first-of-type{padding-top:1px}
html[lang=en]{--r11-focus-after:221px}
@media(min-width:1101px) and (max-width:1360px){:root{--r11-focus-after:221px}}
html body[data-type-b].home-page #hero{padding-top:10.4px}
/* Old #featured-now rules gave this zero-height compatibility anchor 160px of
   margins and a phantom grid row. Keep its hash target, remove its empty flow. */
html body[data-type-b].home-page #in-focus>.legacy-focus-anchor{position:absolute;width:0;height:0;margin:0;padding:0;overflow:hidden}
html body[data-type-b] .material-index .material-list{margin-top:16px}
html body[data-type-b][data-projects-index] .page-title{margin-bottom:7.5px}
@media(max-width:1100px){:root{--inner-entry-gap:32px;--r11-focus-after:239px}html body[data-type-b].inner-page .page>main.material-article:not(.focus-article){padding-top:23.6px}}
@media(max-width:767px){
 :root{--r11-section-factor:.5;--r11-focus-before:32px;--r11-focus-after:136px;--r111-home-material-gap:16px;--inner-entry-gap:26px}
 html.r3-enhanced body[data-type-b] .page>header:not(.menu-is-open):not(:has(.r3-search-box.is-open)){row-gap:0;padding-bottom:22px}
 html body[data-type-b].inner-page .page>main.material-article:not(.focus-article){padding-top:20px}
 html body[data-type-b][data-projects-index] .year-section>.production:first-of-type{padding-top:14px}
 html body[data-type-b][data-about-page] #about{padding-bottom:16px}
 html body[data-type-b][data-about-page] #sifan-shao{padding-block:16px}
 html body[data-type-b].home-page #hero{padding-top:14px}
 html body[data-type-b] .material-index .material-list{margin-top:24px}
}


/* R4 source: assets/r11-1-final-editorial.css; order preserved. */
/* Only the SFS-approved HOME title and PROJECTS timeline changes. */
html body[data-type-b].home-page #in-focus .home-section-heading a{display:inline-flex;align-items:center;min-height:44px;color:inherit;text-decoration:none;transition:color .15s ease;cursor:pointer}
html body[data-type-b].home-page #in-focus .home-section-heading a:hover{color:#F06450;text-decoration:none}
html body[data-type-b].home-page #in-focus .home-section-heading a:focus-visible{color:#F06450;outline:2px solid #F06450;outline-offset:5px;text-decoration:none}
/* Inherited year font-weight is important; override only group headings. Timeline remains400. */
html body[data-type-b][data-projects-index] .year-heading{font-weight:700!important}
/* Measured last-line text inset11.125px + exterior25px =36.125px visible gap. */
html body[data-type-b][data-projects-index] .year-navigation{margin-bottom:25px}
@media(prefers-reduced-motion:reduce){html body[data-type-b].home-page #in-focus .home-section-heading a{transition:none}}


/* R4 source: assets/home-footer-final.css; order preserved. */
/* HOME Footer final refinement — SFS approved removal of bottom introduction.
   Only the gap after HOME body content changes; all footer typography stays inherited. */
html body[data-type-b].home-page .page > footer { margin-top: 24px; }
@media (max-width: 767px) {
  html body[data-type-b].home-page .page > footer { margin-top: 16px; }
}


/* R4 source: assets/home-carousel-arrows-v12.css; order preserved. */
/* SFS approved V1.2: isolate HOME navigation hit areas from frozen title/year column.
   The title column starts at >=60px. Each arrow stays within the outer 56px.
   Existing vertical center, height, icons, image, dots and autoplay are retained. */
html body[data-type-b].home-page #hero .carousel-media > .carousel-arrow {
  width: 48px;
  min-width: 48px;
}
html body[data-type-b].home-page #hero .carousel-media > .carousel-arrow.previous {
  left: clamp(4px, .5vw, 8px);
  right: auto;
}
html body[data-type-b].home-page #hero .carousel-media > .carousel-arrow.next {
  right: clamp(4px, .5vw, 8px);
  left: auto;
}


/* R4 source: assets/home-ui-ux.css; order preserved. */
/* HOME refinement, 2026-10-20. Loaded only by the two homepages.
   Reuse the existing navigation, carousel, article cards and responsive menu. */
html body[data-type-b].home-page .page > header {
  padding-top: 24px;
  padding-bottom: 18px;
  column-gap: 24px;
  row-gap: 0;
}
html body[data-type-b].home-page .page > header .language-selector {
  position: static;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  font-size: 14px !important;
  white-space: nowrap;
}
html body[data-type-b].home-page .language-selector a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
}
@media (min-width: 1200px) {
  html body[data-type-b].home-page .page > header {
    grid-template-columns: max-content minmax(0, 1fr) max-content;
    width: max(100%, 1000px);
    margin-inline: calc((100% - max(100%, 1000px)) / 2);
  }
  html body[data-type-b].home-page .page > header .header-navigation {
    display: block;
    grid-column: 2;
    grid-row: 1;
    width: auto;
  }
  html body[data-type-b].home-page .page > header nav {
    font-size: 16px !important;
    gap: 20px;
  }
  html body[data-type-b].home-page .page > header .language-selector {
    grid-column: 3;
    grid-row: 1;
  }
  html body[data-type-b].home-page .page > header .menu-toggle { display: none; }
  html body[data-type-b].home-page .page > header .r3-search-box { grid-row: 2; }
}
@media (max-width: 1199px) {
  html body[data-type-b].home-page .page > header {
    grid-template-columns: minmax(0, 1fr) auto;
    padding-top: 24px;
    padding-bottom: 18px;
    row-gap: 0;
  }
  html body[data-type-b].home-page .page > header .language-selector {
    grid-column: 2;
    grid-row: 2;
    justify-self: end;
  }
  html body[data-type-b].home-page .page > header .menu-toggle {
    grid-column: 2;
    grid-row: 1;
    justify-self: end;
    align-items: center;
    min-height: 44px;
    font-size: 16px;
  }
  html.r3-enhanced body[data-type-b].home-page .page > header .menu-toggle { display: inline-flex; }
  html body[data-type-b].home-page .page > header .header-navigation {
    grid-column: 1 / -1;
    grid-row: 3;
    width: 100%;
    justify-self: stretch;
  }
  html body[data-type-b].home-page .page > header nav {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 4px;
    white-space: normal;
  }
  html body[data-type-b].home-page .page > header nav > a { padding-block: 6px; }
  html body[data-type-b].home-page .page > header .search-toggle { align-self: flex-start; }
  html.r3-enhanced body[data-type-b].home-page .page > header:not(.menu-is-open) .header-navigation { display: none; }
  html body[data-type-b].home-page .page > header .r3-search-box { grid-row: 4; width: 100%; }
}
/* 16:9 -> 16:7.4: 17.8% less image height at the same desktop width.
   Keep the approved cover behavior, focal positions and edge arrow fix. */
@media (min-width: 901px) {
  html body[data-type-b].home-page #hero .carousel-media { aspect-ratio: 16 / 7.4; }
}
html body[data-type-b].home-page .carousel-entry-slot { min-height: 44px; }
html body[data-type-b].home-page #in-focus { margin-bottom: 56px; }
html body[data-type-b].home-page #material { padding-bottom: 24px; }
html body[data-type-b].home-page #material .section-head { margin-bottom: 20px; }
html body[data-type-b].home-page .home-material-list {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 32px 40px;
  align-items: stretch;
}
html body[data-type-b].home-page .home-material-note {
  padding-top: 18px;
  min-height: 0;
}
html body[data-type-b].home-page .home-material-note .article-category {
  font-size: 13px !important;
  line-height: 1.5 !important;
  margin: 0 0 10px;
}
html body[data-type-b].home-page .home-material-note h3 {
  font-size: 28px !important;
  line-height: 1.25 !important;
  letter-spacing: -.015em !important;
  min-height: 0;
  margin: 0 0 10px;
  overflow-wrap: break-word;
}
html body[data-type-b].home-page .home-material-note .article-meta {
  font-size: 14px !important;
  line-height: 1.5 !important;
  margin: 0 0 14px;
}
html body[data-type-b].home-page .home-material-note .material-excerpt {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
  font-size: 18px !important;
  line-height: 1.7 !important;
  letter-spacing: 0 !important;
  min-height: 5.1em;
  max-height: 5.1em;
  margin: 0 0 12px;
}
html body[data-type-b].home-page #material .home-material-note .read-note {
  margin-top: auto;
  font-size: 14px !important;
  line-height: 1.5 !important;
  min-height: 44px;
}
@media (max-width: 767.98px) {
  html body[data-type-b].home-page .home-material-list { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  html body[data-type-b].home-page .home-material-note h3 { font-size: 25px !important; min-height: 0; }
  html body[data-type-b].home-page .home-material-note .material-excerpt { min-height: 0; }
  html body[data-type-b].home-page #in-focus { margin-bottom: 40px; }
}
/* Keep generous editorial gutters without narrowing the content to 800px
   on wider desktop scaling settings. */
@media (min-width: 1500px) {
  html body[data-type-b].home-page .page {
    --r11-side: min(calc((70px + max(0px, (100% - 1680px) / 2)) * 3), 282px);
    max-width: 1920px;
    margin-inline: auto;
  }
}


/* R4 source: assets/home-in-focus-typography-r5.css; order preserved. */
/* R5: HOME IN FOCUS follows the existing MATERIAL type hierarchy only.
   Keep each language's existing MATERIAL font stack; do not alter MATERIAL,
   images, grid, content, carousel, navigation or other pages. */
html body[data-type-b].home-page #in-focus .featured-title {
  font-family: var(--brand-text) !important;
  font-size: 28px !important;
  font-weight: 400 !important;
  line-height: 1.25 !important;
  letter-spacing: -.015em !important;
  margin: 0 0 10px;
}
html body[data-type-b].home-page #in-focus .featured-subtitle {
  font-family: var(--brand-text) !important;
  font-size: 14px !important;
  font-weight: 400 !important;
  line-height: 1.5 !important;
  letter-spacing: 0 !important;
  margin: 0 0 14px;
}
html body[data-type-b].home-page #in-focus .approved-description p,
html body[data-type-b].home-page #in-focus .approved-description p:last-child {
  font-family: var(--brand-text) !important;
  font-size: 18px !important;
  font-weight: 400 !important;
  line-height: 1.7 !important;
  letter-spacing: 0 !important;
  margin: 0 0 12px;
}
html body[data-type-b].home-page #in-focus .in-focus-enter {
  font-family: var(--brand-text) !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  line-height: 1.5 !important;
  letter-spacing: .08em !important;
  margin: 0;
  padding: 0;
}
@media (max-width: 767.98px) {
  html body[data-type-b].home-page #in-focus .featured-title {
    font-size: 25px !important;
  }
}

