:root{--ink:#111;--muted:#767676;--white:#fff;--pill:rgba(30,30,30,.32)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:white;color:var(--ink);font-family:Arial,"Helvetica Neue","PingFang SC","Microsoft YaHei",sans-serif;-webkit-font-smoothing:antialiased}body.is-leaving{opacity:0;transition:opacity .28s}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}img{display:block;width:100%}.page-curtain{position:fixed;inset:0;z-index:99;background:#111;display:grid;place-items:center;color:white;transition:transform .95s cubic-bezier(.77,0,.18,1);transform-origin:top}.page-curtain span{font-size:13px;letter-spacing:.16em}.loaded .page-curtain{transform:translateY(-101%)}.nav-holder{position:fixed;z-index:40;top:21px;left:50%;transform:translateX(-50%);width:min(560px,calc(100vw - 32px));color:white}.nav-bar{height:54px;border-radius:34px;background:var(--pill);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);display:flex;justify-content:space-between;align-items:center;padding:0 7px 0 20px;box-shadow:inset 0 0 0 1px #fff2}.nav-bar a{font-size:15px;font-weight:600}.nav-bar sup{font-size:8px;margin-left:2px}.nav-toggle{background:#ffffff22;border:0;border-radius:50%;width:42px;height:42px;color:white;font-size:20px;line-height:1;transition:transform .45s,background .3s}.nav-toggle:hover{background:#ffffff44}.nav-holder.open .nav-toggle{transform:rotate(45deg)}.nav-panel{margin-top:5px;overflow:hidden;max-height:0;opacity:0;border-radius:23px;background:var(--pill);backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);transition:max-height .55s cubic-bezier(.22,1,.36,1),opacity .3s;padding:0 12px}.nav-holder.open .nav-panel{max-height:205px;opacity:1}.nav-links{display:flex;flex-wrap:wrap;gap:2px;justify-content:space-between;padding-top:13px}.nav-links a{font-size:15px;padding:10px 12px;border-radius:25px;transition:background .3s}.nav-links a:hover{background:#ffffff23}.nav-panel-bottom{font-size:13px;line-height:1.55;margin:31px 0 16px;color:#fff}
.hero{height:100svh;min-height:700px;position:relative;display:grid;grid-template-columns:1fr 1fr;overflow:hidden;color:white;background:#101014}.hero-image{min-width:0;height:100%;overflow:hidden}.hero-image img{height:100%;object-fit:cover;object-position:50% 42%;transform:scale(1.1);animation:heroZoom 2.4s cubic-bezier(.2,.7,.1,1) forwards}.hero-right img{object-position:50% 40%;animation-delay:.12s}.hero-left:after{content:"";position:absolute;inset:0 50% 0 0;background:linear-gradient(0deg,#000a,transparent 56%);pointer-events:none}.hero-kicker{position:absolute;left:20px;top:44%;font-size:15px;line-height:1.3;max-width:180px;text-shadow:0 1px 10px #0008}.hero-title{position:absolute;left:20px;bottom:12px;margin:0;max-width:calc(50% - 30px);font-size:clamp(65px,7.9vw,125px);font-weight:550;line-height:.86;letter-spacing:-.092em;text-shadow:0 2px 15px #0007}.hero-title span{display:block;transform:translateY(120%);opacity:0;animation:lineUp .9s cubic-bezier(.19,1,.22,1) forwards}.hero-title span:nth-child(1){animation-delay:.8s}.hero-title span:nth-child(2){animation-delay:.95s}.hero-title span:nth-child(3){animation-delay:1.1s}.hero-title sup{font-size:.28em;letter-spacing:0;vertical-align:top;padding-left:.06em}.hero-edge{position:absolute;right:21px;bottom:22px;font-size:12px;letter-spacing:.05em}.intro{display:grid;grid-template-columns:1fr 1fr;gap:20px;padding:200px 20px 155px;min-height:115vh}.intro-side{font-size:15px;color:#707070;line-height:1.4;max-width:290px;margin:0}.intro-text{font-size:clamp(38px,4.9vw,75px);letter-spacing:-.07em;font-weight:600;line-height:1.12;max-width:750px}.ink-word{color:#c9c9c9;transition:color .22s}.ink-word.ink-on{color:#111}.featured{padding:0}.feature-row{display:grid;grid-template-columns:1fr 1fr;min-height:540px}.feature-media{position:relative;overflow:hidden;background:#111;height:540px}.feature-media img{height:100%;object-fit:cover;object-position:center 38%;transform:scale(1.15);clip-path:inset(0 100% 0 0);transition:clip-path 1.1s cubic-bezier(.2,.7,.2,1),transform 1.6s cubic-bezier(.2,.7,.2,1)}.feature-row.inview .feature-media img{clip-path:inset(0 0 0 0);transform:scale(1)}.feature-row:hover .feature-media img{transform:scale(1.045)}.feature-details{padding:18px 20px;display:flex;flex-direction:column;justify-content:space-between;font-size:15px}.feature-details span:nth-child(2){color:#858585}.feature-number{align-self:flex-end;color:#aaa;font-size:12px}.hover-cursor{position:fixed;z-index:80;width:84px;height:84px;border-radius:50%;background:#fff;color:#111;display:grid;place-items:center;pointer-events:none;font-size:11px;opacity:0;transform:translate(-50%,-50%) scale(.5);transition:opacity .2s,transform .25s}.hover-cursor.show{opacity:1;transform:translate(-50%,-50%) scale(1)}.home-gallery{padding:150px 20px}.gallery-heading{display:flex;justify-content:space-between;border-top:1px solid #aaa;padding-top:15px;font-size:13px}.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:70px}.gallery-item{overflow:hidden;aspect-ratio:4/5;background:#ddd}.gallery-item img{height:100%;object-fit:cover;transition:transform .75s}.gallery-item:hover img{transform:scale(1.06)}.home-statement{background:#f1f1ef;padding:65px 20px 100px}.home-statement>span{font-size:13px}.home-statement p{font-size:clamp(55px,9vw,150px);letter-spacing:-.08em;line-height:1.04;margin:110px 0}.home-statement p span{color:#aaa}.home-statement>a{display:flex;justify-content:space-between;border-top:1px solid #aaa;padding:15px 0;font-size:16px}.home-statement b{font-size:35px;font-weight:400}
.page-title{font-size:clamp(120px,16vw,260px);font-weight:500;line-height:.85;letter-spacing:-.09em;margin:265px 20px 120px}.letters span{display:inline-block;opacity:0;transform:translateY(65%);animation:lineUp .7s cubic-bezier(.2,.8,.2,1) forwards}.works-controls{display:grid;grid-template-columns:1fr 1fr;margin:0 20px 125px}.control-group{display:grid;grid-template-columns:135px 1fr;font-size:15px}.control-options{display:flex;flex-direction:column;align-items:flex-start}.control-options button{padding:0;border:0;background:none;color:#111;font-size:15px;line-height:1.43;text-align:left}.control-options button.active{color:#a9a9a9}.control-options button:hover{text-decoration:underline}.works-grid{padding:0 20px 150px}.works-grid.masonry{columns:4;column-gap:12px}.tile{display:block;break-inside:avoid;overflow:hidden;margin-bottom:12px;position:relative;background:#f2f2f2}.tile img{width:100%;height:auto;transition:transform .8s cubic-bezier(.2,.8,.2,1)}.tile:hover img{transform:scale(1.045)}.tile-caption{position:absolute;left:0;bottom:0;right:0;padding:26px 13px 12px;background:linear-gradient(transparent,#0009);color:white;display:flex;justify-content:space-between;align-items:end;font-size:14px;opacity:0;transition:opacity .3s}.tile:hover .tile-caption,.tile:focus-visible .tile-caption{opacity:1}.works-grid.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.works-grid.grid .tile{margin:0}.works-grid.grid .tile img{height:420px;object-fit:cover}.works-grid.list{display:block}.works-grid.list .tile{display:grid;grid-template-columns:105px 1fr;margin:0;border-top:1px solid #bcbcbc;background:white;padding:15px 0;min-height:145px}.works-grid.list .tile:last-child{border-bottom:1px solid #bcbcbc}.works-grid.list .tile img{width:105px;height:115px;object-fit:cover}.works-grid.list .tile-caption{position:static;opacity:1;color:#111;background:none;align-items:center;font-size:25px;padding:0 30px}.works-grid.list .tile-caption small{font-size:14px}.tile.hide{display:none!important}
.project-stage{min-height:100svh;display:grid;grid-template-columns:minmax(50px,1fr) minmax(600px,69vw) minmax(50px,1fr);position:relative}.project-center{background:#111;height:100svh;min-height:700px;position:relative;overflow:hidden;color:white}.project-center img{height:100%;object-fit:contain;object-position:center}.project-center:after{content:"";position:absolute;inset:70% 0 0;background:linear-gradient(transparent,#0008);pointer-events:none}.project-side{align-self:end;padding:22px;font-size:14px}.project-side.right{text-align:right}.project-side a{display:inline-block;border-radius:25px;background:#f5f5f5;padding:10px 15px;max-width:100%;text-align:left}.project-info{position:absolute;z-index:1;left:30px;bottom:28px;width:60%;font-size:15px}.project-info strong{display:block;font-weight:400;margin-bottom:7px}.project-info p{margin:0;color:#ddd}.project-progress{position:absolute;z-index:1;right:30px;bottom:25px;background:white;color:#111;border-radius:25px;padding:12px 15px;font-size:14px}.project-detail{max-width:1000px;margin:0 auto;padding:150px 20px 180px}.project-detail-label{display:grid;grid-template-columns:1fr 1fr;font-size:14px;border-top:1px solid #aaa;padding-top:20px}.project-detail h2{font-size:clamp(42px,6vw,90px);font-weight:500;letter-spacing:-.07em;line-height:1.1;max-width:800px;margin:100px 0}.project-detail img{max-width:680px;margin:0 auto;height:auto;box-shadow:0 25px 90px #0002}.project-next{background:#111;color:white;padding:95px 20px;display:block}.project-next small{font-size:14px}.project-next span{display:block;font-size:clamp(60px,11vw,160px);letter-spacing:-.075em;margin-top:65px}
.plain-page,.archive-page{min-height:100vh}.about-layout,.contact-layout{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:0 20px 130px}.about-layout>span,.contact-layout>span{font-size:14px;line-height:1.5;color:#777}.big-copy{font-size:clamp(38px,5vw,78px);line-height:1.15;letter-spacing:-.06em;margin:0}.small-copy{max-width:550px;font-size:17px;line-height:1.7;color:#777;margin:70px 0 0}.next-link{display:flex;justify-content:space-between;border-top:1px solid #aaa;margin:0 20px 140px;padding-top:16px;font-size:30px}.archive-page #archive-list{margin:0 20px 140px}.archive-row{border-top:1px solid #aaa;padding:13px 0;display:grid;grid-template-columns:70px 1fr 170px 25px;align-items:center;font-size:16px}.archive-row:last-child{border-bottom:1px solid #aaa}.archive-row:hover{background:#f6f6f6}.site-footer{background:#111;color:white;padding:70px 20px 35px}.site-footer>p{font-size:13px;margin:0 0:40px}.footer-title{font-size:clamp(55px,9vw,145px);letter-spacing:-.09em;line-height:.94;margin:0 0 105px}.footer-grid{border-top:1px solid #777;padding-top:20px;display:grid;grid-template-columns:2fr 1fr 1fr 1fr;font-size:14px;gap:15px}.footer-grid a:hover{text-decoration:underline}.footer-copy{font-size:12px;color:#777;margin-top:80px}
@keyframes heroZoom{to{transform:scale(1)}}@keyframes lineUp{to{transform:translateY(0);opacity:1}}@media(max-width:900px){.hero-title{font-size:clamp(58px,8vw,90px)}.works-grid.masonry{columns:3}.works-grid.grid{grid-template-columns:repeat(2,1fr)}.feature-row,.feature-media{min-height:420px;height:420px}.intro{min-height:85vh;padding-top:160px}.project-stage{grid-template-columns:40px 1fr 40px}}@media(max-width:600px){.nav-holder{top:15px}.nav-links a{font-size:13px;padding:8px}.nav-panel-bottom{margin-top:20px}.hero{min-height:650px;height:92svh}.hero-image img{object-position:center}.hero-title{font-size:clamp(47px,10.5vw,74px);max-width:calc(100% - 25px);bottom:28px}.hero-kicker{top:39%;font-size:12px}.hero-edge{display:none}.intro{grid-template-columns:1fr;padding:120px 18px 130px;min-height:auto;gap:75px}.intro-text{font-size:clamp(35px,9vw,58px)}.feature-row{grid-template-columns:1fr;min-height:unset}.feature-media{height:480px;min-height:unset}.feature-details{height:95px;padding:13px 18px}.feature-number{display:none}.home-gallery{padding:100px 18px}.gallery-grid{grid-template-columns:1fr 1fr}.gallery-heading{font-size:11px}.gallery-item{aspect-ratio:3/4}.home-statement{padding:60px 18px}.home-statement p{font-size:clamp(50px,12vw,80px)}.page-title{margin:200px 18px 95px;font-size:clamp(105px,22vw,165px)}.works-controls{grid-template-columns:1fr 1fr;margin:0 18px 75px}.control-group{grid-template-columns:1fr;gap:15px}.works-grid{padding:0 18px 100px}.works-grid.masonry{columns:2;column-gap:8px}.tile{margin-bottom:8px}.works-grid.grid{grid-template-columns:1fr 1fr;gap:8px}.works-grid.grid .tile img{height:270px}.works-grid.list .tile{grid-template-columns:70px 1fr;min-height:105px}.works-grid.list .tile img{width:70px;height:76px}.works-grid.list .tile-caption{font-size:17px;padding:0 12px}.works-grid.list .tile-caption small{font-size:11px}.project-stage{display:block}.project-center{height:88svh;min-height:640px}.project-side{display:none}.project-info{left:18px;bottom:20px;font-size:13px}.project-progress{right:15px;bottom:15px}.project-detail{padding:95px 18px 120px}.project-detail h2{margin:75px 0}.about-layout,.contact-layout{grid-template-columns:1fr;margin:0 18px 100px;gap:70px}.small-copy{margin:40px 0}.next-link{margin:0 18px 90px}.archive-page #archive-list{margin:0 18px 100px}.archive-row{grid-template-columns:35px 1fr 20px;font-size:14px}.archive-row span:nth-child(3){display:none}.site-footer{padding:60px 18px}.footer-title{margin-bottom:85px}.footer-grid{grid-template-columns:1fr 1fr;row-gap:30px}.footer-copy{margin-top:65px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}.page-curtain{display:none}.ink-word{color:#111}.feature-media img{clip-path:none;transform:none}}
.filter-item{display:block;break-inside:avoid}.filter-item.hide{display:none}.feature-media:hover,.tile:hover,.gallery-item:hover{cursor:none}
.gallery-item{position:relative;display:block}.gallery-item .tile-caption{opacity:0}.gallery-item:hover .tile-caption{opacity:1}
@keyframes heroDrift{from{transform:scale(1.01) translate3d(0,0,0)}to{transform:scale(1.1) translate3d(-2.5%,1%,0)}}.hero-right img{animation:heroZoom 2.4s cubic-bezier(.2,.7,.1,1) forwards,heroDrift 12s ease-in-out 2.5s infinite alternate}@media(prefers-reduced-motion:reduce){.hero-right img{animation:none}}

/* White editorial cover and full-frame horizontal poster reel. */
.hero-clean{height:69svh;min-height:590px;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden;background:#fff;color:#111;padding:112px 20px 22px}.hero-clean .hero-eyebrow{width:100%;display:flex;justify-content:space-between;gap:24px;color:#777;font-size:13px;letter-spacing:.02em}.hero-clean .hero-heading{width:100%;margin-top:auto}.hero-clean .hero-heading>p{font-size:15px;margin:0 0:20px;color:#767676}.hero-clean h1{font-size:clamp(74px,11.2vw,175px);font-weight:500;letter-spacing:-.09em;line-height:.87;margin:0 0 36px}.hero-clean h1 sup{font-size:.21em;vertical-align:top;letter-spacing:0;margin-left:4px}.hero-clean .hero-baseline{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #c7c7c7;padding-top:15px;color:#666;font-size:12px;letter-spacing:.025em}.hero-clean .hero-baseline a:hover{text-decoration:underline}.poster-reel{--poster-height:min(61vh,615px);overflow:hidden;padding:18px 0 100px;background:#fff}.poster-track{display:flex;width:max-content;animation:posterScroll 62s linear infinite;will-change:transform}.poster-reel:hover .poster-track,.poster-reel:focus-within .poster-track{animation-play-state:paused}.poster-group{display:flex;align-items:flex-start;gap:16px;flex:none;padding-right:16px}.poster-slide{display:block;flex:none;color:#171717;min-width:0;width:calc(var(--poster-height) * var(--ratio))}.poster-art{display:block;height:var(--poster-height);width:100%;aspect-ratio:var(--ratio);background:#f3f3f3;overflow:hidden}.poster-art img{display:block;width:100%;height:100%;object-fit:contain;object-position:center;transition:opacity .3s}.poster-slide:hover .poster-art img{opacity:.83}.poster-caption{display:flex;justify-content:space-between;gap:16px;font-size:12px;line-height:1.4;padding:12px 1px 0;max-width:100%}.poster-caption span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@keyframes posterScroll{to{transform:translateX(-50%)}}
.feature-media{background:#f4f4f4;display:flex;align-items:center;justify-content:center}.feature-media img{width:100%;height:100%;object-fit:contain;object-position:center}.feature-row:hover .feature-media img{transform:scale(1)}.gallery-item{background:#f4f4f4}.gallery-item img{object-fit:contain}.works-grid.grid .tile img{object-fit:contain;background:#f3f3f3}.works-grid.list .tile img{object-fit:contain;background:#f3f3f3}.project-center{background:#1b1b1b}.project-center img{object-fit:contain}
@media(max-width:900px){.hero-clean{height:64svh;min-height:540px}.hero-clean h1{font-size:clamp(72px,11.5vw,110px)}.poster-reel{--poster-height:min(54vh,550px)}}
@media(max-width:600px){.hero-clean{height:61svh;min-height:475px;padding:95px 18px 19px}.hero-clean .hero-eyebrow{font-size:10px}.hero-clean .hero-eyebrow span:last-child{display:none}.hero-clean .hero-heading>p{font-size:12px;margin-bottom:18px}.hero-clean h1{font-size:clamp(52px,13vw,80px);line-height:.92;margin-bottom:27px;letter-spacing:-.085em}.hero-clean .hero-baseline{font-size:10px}.poster-reel{--poster-height:min(53vh,490px);padding:8px 0 85px}.poster-group{gap:10px;padding-right:10px}.poster-caption{font-size:10px;padding-top:9px}.feature-media img{object-fit:contain}.gallery-item img{object-fit:contain}.works-grid.grid .tile img{object-fit:contain}}
@media(prefers-reduced-motion:reduce){.poster-track{animation:none;overflow-x:auto}.poster-reel{overflow-x:auto}}

/* Spacious cover, smaller complete posters, and a scroll driven object deck. */
.hero-clean{height:91svh;min-height:735px;padding-top:120px}
.poster-reel{--poster-height:min(46vh,440px);padding:20px 0 105px}
.featured{--display-poster-height:min(46vh,440px);padding:0 20px 150px}
.feature-row{grid-template-columns:max-content minmax(0,1fr);min-height:0;gap:clamp(35px,8vw,140px);padding:28px 0;border-top:1px solid #dedede}
.feature-media{height:var(--display-poster-height);width:calc(var(--display-poster-height) * var(--ratio));aspect-ratio:var(--ratio);background:#f4f4f4;flex:none}
.feature-details{padding:0;min-height:var(--display-poster-height);font-size:clamp(17px,2vw,27px)}
.feature-number{font-size:13px}
.object-showcase{height:310svh;position:relative;background:#f7f7f5;color:#161616}
.object-sticky{position:sticky;top:0;height:100svh;min-height:620px;display:flex;flex-direction:column;padding:30px 24px 25px;overflow:hidden}
.object-heading,.object-bottom{display:flex;justify-content:space-between;gap:20px;align-items:center;font-size:12px;letter-spacing:.045em;position:relative;z-index:1}
.object-heading{border-top:1px solid #bdbdbb;padding-top:15px}
.object-bottom{border-bottom:1px solid #bdbdbb;padding-bottom:15px}
.object-deck{--deck-step:clamp(24px,4vw,58px);position:relative;width:min(810px,83vw);height:min(560px,68svh);margin:auto;cursor:grab;touch-action:pan-y;user-select:none;outline-offset:10px}
.object-deck.dragging{cursor:grabbing}
.object-card{position:absolute;top:50%;left:1%;width:clamp(235px,28vw,360px);aspect-ratio:3/4;background:#fff;border:1px solid #ddd;box-shadow:0 15px 35px #1112;overflow:hidden;transform-origin:left center;transform:translate3d(calc(var(--depth) * var(--deck-step)),calc(-50% - var(--depth) * 5px),0) scale(calc(1 - var(--depth) * .047));transition:transform .55s cubic-bezier(.2,.75,.2,1),box-shadow .55s;pointer-events:none}
.object-card[aria-hidden="false"]{box-shadow:0 24px 55px #1113}
.object-card img{display:block;width:100%;height:100%;object-fit:contain}
@media(max-width:900px){.hero-clean{height:86svh;min-height:640px}.poster-reel{--poster-height:min(44vh,405px)}.featured{--display-poster-height:min(44vh,405px)}}
@media(max-width:600px){.hero-clean{height:88svh;min-height:625px;padding-top:108px}.poster-reel{--poster-height:min(41vh,335px);padding-bottom:80px}.featured{--display-poster-height:min(41vh,335px);padding:0 18px 100px}.feature-row{grid-template-columns:1fr;gap:18px;padding:22px 0 28px}.feature-details{min-height:78px;font-size:17px}.object-showcase{height:265svh}.object-sticky{min-height:0;padding:20px 15px 25px}.object-heading,.object-bottom{font-size:10px;line-height:1.35}.object-deck{--deck-step:clamp(13px,3.8vw,19px);width:94vw;height:min(500px,58svh)}.object-card{left:1%;width:min(57vw,280px)}}
@media(prefers-reduced-motion:reduce){.object-card{transition:none}}

/* More open typography, poster scale, and a kinetic front-facing photo stack. */
.hero-clean h1{font-size:clamp(72px,9.4vw,145px);letter-spacing:-.025em;line-height:.96}
.feature-row{grid-template-columns:33.333vw minmax(0,1fr);gap:clamp(45px,8vw,150px);height:auto;min-height:0}
.feature-media{width:100%;height:auto;min-height:0!important;aspect-ratio:var(--ratio);align-self:start}
.feature-media img{position:absolute;inset:0;width:100%;height:100%}
.feature-details{min-height:0;align-self:stretch;padding:8px 0}
.object-showcase{background:#efefed}
.object-sticky{isolation:isolate}
.object-ghost{position:absolute;top:16%;left:2.2%;z-index:0;font-size:clamp(72px,12.5vw,190px);font-weight:500;letter-spacing:-.09em;line-height:.86;color:#d5d5d2;pointer-events:none;white-space:nowrap}
.object-deck{--deck-step:clamp(30px,5.1vw,78px);width:min(1030px,95vw);height:min(700px,78svh);z-index:2;perspective:1600px}
.object-card{width:clamp(285px,32vw,455px);box-shadow:0 26px 44px #1113;transform:translate3d(calc(var(--depth) * var(--deck-step)),calc(-50% - var(--depth) * 10px),0) scale(calc(1 - var(--depth) * .058)) rotate(calc(var(--depth) * -.72deg));transition:transform .76s cubic-bezier(.16,1,.3,1),box-shadow .76s;backface-visibility:hidden}
.object-card[aria-hidden="false"]{box-shadow:0 36px 70px #1114}
.object-flight{animation-duration:.79s;animation-fill-mode:forwards;animation-timing-function:cubic-bezier(.25,.78,.2,1);transition:none;pointer-events:none}
.object-flight-forward{animation-name:objectTossForward}
.object-flight-back{animation-name:objectTossBack}
@keyframes objectTossForward{from{transform:translate3d(0,-50%,0) scale(1) rotate(0);opacity:1}45%{transform:translate3d(-13vw,-53%,0) scale(1.12) rotate(-5deg);opacity:1}to{transform:translate3d(-65vw,-69%,0) scale(1.15) rotate(-21deg);opacity:0}}
@keyframes objectTossBack{from{transform:translate3d(0,-50%,0) scale(1) rotate(0);opacity:1}45%{transform:translate3d(13vw,-53%,0) scale(1.12) rotate(5deg);opacity:1}to{transform:translate3d(65vw,-69%,0) scale(1.15) rotate(21deg);opacity:0}}
@media(max-width:900px){.hero-clean h1{font-size:clamp(65px,9.8vw,103px)}.feature-row{height:auto;min-height:0}.feature-media{min-height:0!important}.object-card{width:clamp(260px,37vw,350px)}}
@media(max-width:600px){.hero-clean h1{font-size:clamp(46px,11vw,70px);letter-spacing:-.025em;line-height:1.02}.feature-row{grid-template-columns:1fr}.feature-media{width:calc(var(--display-poster-height) * var(--ratio));height:var(--display-poster-height);min-height:0!important}.feature-details{min-height:76px}.object-ghost{top:23%;left:5%;font-size:18vw}.object-deck{--deck-step:clamp(15px,4vw,20px);width:94vw;height:min(530px,62svh)}.object-card{width:min(64vw,305px)}}
@media(prefers-reduced-motion:reduce){.object-flight{display:none}.object-card{transition:none}}

/* The original small white typewriter opening appears once per visit. */
html.intro-active body[data-page="home"]:not(.loaded){overflow:hidden}
.intro-curtain{display:none;background:#000;color:#fff}
html.intro-active .intro-curtain{display:grid}
.intro-curtain .intro-type{position:relative;display:inline-block;font-size:13px;letter-spacing:.16em;line-height:1.4;font-weight:400;white-space:nowrap}
.intro-curtain .intro-type span{font-size:inherit;letter-spacing:inherit}
.intro-guide{visibility:hidden}
.intro-typed{position:absolute;top:0;left:0;white-space:nowrap}
.intro-caret{display:inline-block;width:2px;height:.79em;margin-left:3px;background:currentColor;vertical-align:-.05em;animation:introBlink .8s steps(1,end) infinite}
.loaded .intro-caret{opacity:0}
@keyframes introBlink{50%{opacity:0}}
@media(prefers-reduced-motion:reduce){html.intro-active .intro-curtain{display:none}.intro-caret{animation:none}}

/* Photo-first deck: visible images fan from the right into the left foreground. */
.object-deck{--deck-step:clamp(65px,7.4vw,104px);width:min(1180px,94vw)}
.object-card{width:clamp(280px,30vw,430px);background:#161616;border:0;transform:translate3d(calc(var(--depth) * var(--deck-step)),calc(-50% - var(--depth) * 3px),0) scale(calc(1 - var(--depth) * .018)) rotate(calc(var(--depth) * .15deg));transition:transform .72s cubic-bezier(.18,.9,.19,1),box-shadow .72s}
.object-card img{object-fit:cover}
@media(max-width:900px){.object-deck{--deck-step:clamp(46px,6.6vw,70px)}.object-card{width:clamp(235px,32vw,320px)}}
@media(max-width:600px){.object-deck{--deck-step:clamp(21px,6vw,31px);width:95vw}.object-card{width:min(66vw,305px)}}

/* Physical photo stack: strongest front layer, progressively smaller behind. */
.object-card{transform:translate3d(calc(var(--depth) * var(--deck-step)),calc(-50% - var(--depth) * 4px),0) scale(calc(1 - var(--depth) * .047)) rotate(calc(var(--depth) * .18deg))}

/* Expandable publication collection and full-spread reader. */
.books-section{background:#fff;color:#171717;padding:145px 20px 170px;min-height:92svh}
.books-heading{display:flex;justify-content:space-between;gap:24px;border-top:1px solid #aaa;padding-top:16px;font-size:13px;letter-spacing:.035em}
.book-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;margin-top:78px}
.book-item{display:flex;flex-direction:column;align-items:flex-start;border:0;padding:0;background:none;color:inherit;text-align:left;width:100%;cursor:pointer}
.book-object{position:relative;display:block;width:min(29vw,385px);aspect-ratio:1100/1493;transform:perspective(1200px) rotateY(-8deg);transform-origin:left center;box-shadow:21px 25px 34px #172a4650,5px 4px 0 #d6dce7;transition:transform .75s cubic-bezier(.16,1,.3,1),box-shadow .75s;overflow:hidden;background:#235da0}
.book-item:hover .book-object,.book-item:focus-visible .book-object{transform:perspective(1200px) rotateY(0) translateY(-12px);box-shadow:17px 34px 48px #172a4659,5px 4px 0 #d6dce7}
.book-object img{width:100%;height:100%;object-fit:cover}
.book-label{width:min(29vw,385px);display:flex;flex-direction:column;gap:8px;padding-top:27px}
.book-label strong{font-size:clamp(18px,2.1vw,28px);font-weight:500;letter-spacing:-.035em}
.book-label span{font-size:14px;color:#777}
.book-label small{display:block;border-top:1px solid #bbb;padding-top:13px;margin-top:24px;font-size:12px;letter-spacing:.035em}
.book-reading{overflow:hidden}
.book-reader[hidden]{display:none}
.book-reader{position:fixed;inset:0;z-index:120;display:flex;flex-direction:column;background:#efefed;color:#111;padding:22px 24px 19px;opacity:0;pointer-events:none;transition:opacity .32s ease}
.book-reader.is-visible{opacity:1;pointer-events:auto}
.reader-top{display:flex;justify-content:space-between;align-items:center;gap:20px;border-top:1px solid #999;padding:13px 0 10px;font-size:13px;letter-spacing:.025em}
.reader-top button,.reader-bottom button{border:0;padding:8px 2px;background:none;color:inherit;font-size:13px;letter-spacing:.025em}
.reader-top button:hover,.reader-bottom button:hover:not(:disabled),.reader-pdf-link:hover{text-decoration:underline}
.reader-bottom button:disabled{opacity:.3;cursor:default}
.reader-viewport{position:relative;width:min(88vw,100svh,1160px);aspect-ratio:1190.55/807.874;max-height:68svh;margin:auto;perspective:1800px;cursor:pointer}
.reader-book{position:relative;width:100%;height:100%;transform-style:preserve-3d;transform:translateX(-25%);transition:transform 1s cubic-bezier(.2,.8,.2,1)}
.reader-book.is-open{transform:translateX(0)}
.reader-spread-image{width:100%;height:100%;object-fit:fill;background:#fff;box-shadow:0 19px 45px #1113;opacity:0;transition:opacity .35s .25s}
.reader-book.is-open .reader-spread-image{opacity:1}
.reader-book.is-open:after{content:"";position:absolute;top:0;bottom:0;left:50%;width:12px;transform:translateX(-50%);background:linear-gradient(90deg,#1111,#1112 48%,#fff6);pointer-events:none;z-index:3}
.reader-cover{position:absolute;left:50%;top:0;width:50%;height:100%;transform-origin:left center;transform-style:preserve-3d;transition:transform 1s cubic-bezier(.2,.7,.2,1),opacity .15s .84s;z-index:5;box-shadow:6px 13px 30px #1115}
.reader-book.is-open .reader-cover{transform:rotateY(-180deg);opacity:0;pointer-events:none}
.reader-cover-front,.reader-cover-back{position:absolute;inset:0;overflow:hidden;backface-visibility:hidden}
.reader-cover-back{transform:rotateY(180deg)}
.reader-cover img{width:100%;height:100%;object-fit:cover}
.reader-still,.reader-turn{display:none;position:absolute;top:0;width:50%;height:100%;z-index:4}
.reader-still.active{display:block;left:0;overflow:hidden}
.reader-still.reverse{left:50%}
.reader-still img,.reader-turn img{display:block;width:200%;height:100%;max-width:none;object-fit:fill}
.reader-still.reverse img{transform:translateX(-50%)}
.reader-turn.active{display:block;left:50%;transform-origin:left center;transform-style:preserve-3d}
.reader-turn.active.reverse{left:0;transform-origin:right center}
.reader-turn-front,.reader-turn-back{position:absolute;inset:0;overflow:hidden;backface-visibility:hidden;box-shadow:4px 2px 18px #1112}
.reader-turn-back{transform:rotateY(180deg)}
.reader-turn.forward .reader-turn-front img,.reader-turn.reverse .reader-turn-back img{transform:translateX(-50%)}
.reader-turn.forward{animation:bookFlipForward .82s cubic-bezier(.25,.55,.25,1) forwards}
.reader-turn.reverse{animation:bookFlipBack .82s cubic-bezier(.25,.55,.25,1) forwards}
@keyframes bookFlipForward{to{transform:rotateY(-180deg)}}
@keyframes bookFlipBack{to{transform:rotateY(180deg)}}
.reader-bottom{display:flex;justify-content:space-between;align-items:center;gap:20px;border-bottom:1px solid #999;padding:10px 0 8px;font-size:13px}
.reader-pdf-link{align-self:center;padding-top:12px;font-size:11px;letter-spacing:.06em;color:#666}
@media(max-width:900px){.book-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.book-object,.book-label{width:min(40vw,385px)}}
@media(max-width:700px){.books-section{padding:100px 18px 115px;min-height:auto}.books-heading{font-size:11px}.book-grid{grid-template-columns:1fr;margin-top:50px}.book-object,.book-label{width:min(76vw,385px)}.book-reader{padding:13px 12px 19px}.reader-top{font-size:12px}.reader-viewport{width:min(86vw,440px);aspect-ratio:1100/1493;max-height:69svh;overflow:hidden}.reader-book{width:200%;height:100%;transform:translateX(-50%)}.reader-book.is-open{transform:translateX(0)}.reader-book.is-open.side-right{transform:translateX(-50%)}.reader-bottom button{font-size:11px}.reader-pdf-link{font-size:10px}}
@media(prefers-reduced-motion:reduce){.reader-book,.reader-cover,.book-reader,.book-object{transition:none}.reader-turn.forward,.reader-turn.reverse{animation:none}}

/* Front-facing hardcover: full cover artwork with restrained right and bottom edges. */
.book-object{overflow:visible;background:transparent;box-shadow:none;transform:none;transform-style:flat;filter:drop-shadow(0 14px 15px #16335535);transition:transform .55s cubic-bezier(.2,.8,.2,1),filter .55s}
.book-back-face,.book-page-edge,.book-front-face,.book-spine{position:absolute;display:block}
.book-back-face{inset:8px -12px -11px 9px;transform:none;background:#2b5f9e;overflow:hidden;box-shadow:none}
.book-back-face img,.book-front-face img{display:block;width:100%;height:100%;object-fit:cover}
.book-page-edge{inset:4px -8px -7px 5px;transform:none;background:repeating-linear-gradient(0deg,#f3f4f3 0 2px,#cdd3dc 2px 3px);box-shadow:inset -1px 0 #a6b0bd,0 3px 5px #18354b25}
.book-front-face{inset:0;transform:none;overflow:hidden;box-shadow:inset 7px 0 11px #071d3f48,0 2px 4px #091b342d}
.book-front-face:after{display:none}
.book-spine{top:0;bottom:0;left:0;width:8px;transform:none;background:linear-gradient(90deg,#061c3e8c,#173b6955,transparent);box-shadow:none;pointer-events:none}
.book-item:hover .book-object,.book-item:focus-visible .book-object{transform:translateY(-7px) scale(1.012);box-shadow:none;filter:drop-shadow(0 22px 22px #15345440)}
.book-label small{transition:color .35s,border-color .35s}
.book-item:hover .book-label small,.book-item:focus-visible .book-label small{color:#24588f;border-color:#24588f}
.reader-cover-front{box-shadow:inset 10px 0 17px #0a1d3a37,4px 0 0 #e8edf2}
.reader-book.is-open .reader-spread-image{box-shadow:5px 6px 0 #fafafa,0 22px 48px #1113}
@media(prefers-reduced-motion:reduce){.book-object,.book-label small{transition:none}}

/* One consistent black frame for every poster, in every view. */
:root{--poster-frame-ratio:2/3}
.poster-slide{width:calc(var(--poster-height) * 2 / 3)}
.poster-art{aspect-ratio:var(--poster-frame-ratio);background:#000}
.poster-art img{object-fit:contain;object-position:center;transform:none}
.feature-media{aspect-ratio:var(--poster-frame-ratio);background:#000}
.feature-media img{object-fit:contain;transform:none}
.feature-row:hover .feature-media img{transform:none}
.poster-frame{display:block;aspect-ratio:var(--poster-frame-ratio);width:100%;background:#000;overflow:hidden}
.poster-frame img{width:100%;height:100%;object-fit:contain;object-position:center;transform:none}
.tile,.gallery-item{background:#000}
.gallery-item{aspect-ratio:auto}
.tile:hover img,.gallery-item:hover img{transform:none}
.works-grid.grid .tile img,.works-grid.masonry .tile img{height:100%;object-fit:contain;background:#000}
.works-grid.list .poster-frame{width:105px;height:157.5px}
.works-grid.list .tile img{width:100%;height:100%;object-fit:contain;background:#000}
.project-center,.project-full-art{background:#000}
.project-full-art{max-width:680px;margin:0 auto;aspect-ratio:var(--poster-frame-ratio)}
.project-detail .project-full-art img{width:100%;height:100%;object-fit:contain;box-shadow:none}
@media(max-width:600px){.feature-media{width:calc(var(--display-poster-height) * 2 / 3);height:var(--display-poster-height)}.works-grid.list .poster-frame{width:70px;height:105px}.works-grid.list .tile img{width:100%;height:100%}}

/* Every object stays whole; only nine positive-depth layers are visible. */
.object-card img{object-fit:contain;object-position:center;background:#000}
.object-full-art{aspect-ratio:auto;margin:0 auto 30px;background:#000}
.project-detail .object-full-art img{height:auto;object-fit:contain}
.object-showcase{height:510svh}
.works-grid.list .tile{overflow:visible;background:#fff}
.works-grid.masonry .filter-item{margin-bottom:12px}
.works-grid.masonry .tile{margin-bottom:0}
@media(max-width:600px){.object-showcase{height:410svh}.works-grid.masonry .filter-item{margin-bottom:8px}}

/* Reserve room for project captions so artwork stays fully visible. */
.project-center{padding:95px 24px 100px}
@media(max-width:600px){.project-center{padding:90px 16px 90px}}

/* Brand case studies retain every original page inside a consistent landscape frame. */
.branding-section{padding:100px 20px 150px;background:#fff}
.branding-heading{display:flex;justify-content:space-between;gap:24px;border-top:1px solid #aaa;padding-top:16px;font-size:13px;letter-spacing:.035em}
.branding-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:60px 20px;margin-top:72px}
.brand-case-card{display:block}
.brand-case-cover{display:block;aspect-ratio:16/9;background:#000;overflow:hidden}
.brand-case-cover img{width:100%;height:100%;object-fit:contain;transition:opacity .35s}
.brand-case-card:hover .brand-case-cover img{opacity:.88}
.brand-case-caption{display:flex;justify-content:space-between;gap:24px;padding-top:17px}
.brand-case-caption strong{display:block;font-size:clamp(18px,1.7vw,26px);font-weight:500;letter-spacing:-.025em}
.brand-case-caption small{display:block;font-size:14px;color:#777;margin-top:8px}
.brand-case-caption>span:last-child{font-size:12px;color:#777;white-space:nowrap;padding-top:4px}
.brand-frame{aspect-ratio:16/9}
@media(max-width:600px){.branding-section{padding:75px 18px 100px}.branding-heading{font-size:11px}.branding-grid{grid-template-columns:1fr;margin-top:44px;gap:38px}.brand-case-caption{gap:15px}.brand-case-caption strong{font-size:19px}.brand-case-caption small{font-size:13px}}

.brand-case-root{background:#fff;padding-bottom:0}
.brand-case-header{padding:145px 24px 70px;max-width:1600px;margin:auto}
.brand-back{display:inline-block;font-size:13px;letter-spacing:.045em;margin-bottom:65px;color:#777}
.brand-back:hover{color:#111}
.brand-case-kicker,.brand-case-meta{display:flex;justify-content:space-between;gap:24px;font-size:13px;letter-spacing:.025em}
.brand-case-kicker{border-top:1px solid #aaa;padding-top:15px;color:#777}
.brand-case-header h1{font-size:clamp(42px,6.3vw,92px);font-weight:500;letter-spacing:-.04em;line-height:1.05;margin:50px 0 40px;max-width:1200px}
.brand-case-meta{color:#777}
.brand-case-pages{max-width:1480px;margin:auto;padding:0 24px 110px}
.brand-case-page{margin:0 0 64px;scroll-margin-top:105px}
.brand-page-art{background:#000;overflow:hidden}
.brand-page-art img{width:100%;height:auto;object-fit:contain}
.brand-case-page figcaption{display:flex;justify-content:space-between;gap:24px;padding-top:13px;font-size:12px;color:#888}
.brand-case-page.motion-ready{opacity:.08;transform:translateY(22px);transition:opacity .7s,transform .85s cubic-bezier(.2,.8,.2,1)}
.brand-case-page.inview{opacity:1;transform:none}
.brand-page-controls{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);z-index:45;display:flex;align-items:center;gap:30px;padding:7px 12px;background:#ffffffeb;border:1px solid #ddd;box-shadow:0 8px 30px #0001;border-radius:30px;backdrop-filter:blur(16px);font-size:13px}
.brand-page-controls button{border:0;border-radius:20px;padding:11px 16px;background:transparent;color:#111;font-size:12px;letter-spacing:.025em}
.brand-page-controls button:hover:not(:disabled){background:#eee}
.brand-page-controls button:disabled{opacity:.3;cursor:default}
.brand-page-controls span{font-variant-numeric:tabular-nums;white-space:nowrap}
.brand-case-next{padding-bottom:140px}
.works-grid.list .brand-frame{aspect-ratio:16/9}
@media(max-width:600px){.brand-case-header{padding:120px 18px 40px}.brand-back{margin-bottom:40px;font-size:12px}.brand-case-header h1{font-size:41px;margin:35px 0 28px;overflow-wrap:anywhere}.brand-case-kicker,.brand-case-meta{font-size:12px}.brand-case-pages{padding:0 12px 70px}.brand-case-page{margin-bottom:34px;scroll-margin-top:95px}.brand-case-page figcaption{font-size:11px;gap:12px}.brand-page-controls{gap:12px;bottom:16px;padding:5px 8px}.brand-page-controls button{padding:10px 13px;font-size:11px}}
@media(prefers-reduced-motion:reduce){.brand-case-page.motion-ready,.brand-case-page.inview{opacity:1;transform:none;transition:none}}

.works-grid.list .brand-frame{height:auto;align-self:center}

/* Motion artwork keeps its original proportions in equal black frames. */
.motion-section{padding:80px 20px 150px;background:#fff}
.motion-heading{display:flex;justify-content:space-between;gap:24px;border-top:1px solid #aaa;padding-top:16px;font-size:13px;letter-spacing:.035em}
.motion-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:55px 20px;margin-top:65px}
.motion-card{display:block;min-width:0;padding:0;border:0;background:transparent;color:#111;text-align:left;font:inherit;cursor:pointer}
.motion-frame{position:relative;display:block;aspect-ratio:2/3;overflow:hidden;background:#000}
.motion-frame video{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none}
.motion-play{position:absolute;right:16px;bottom:16px;padding:11px 15px;border:1px solid #ffffff60;border-radius:24px;background:#0009;color:#fff;font-size:11px;letter-spacing:.055em;backdrop-filter:blur(10px);transition:background .25s,transform .25s}
.motion-card:hover .motion-play{background:#fff;color:#111;transform:translateY(-3px)}
.motion-card:focus-visible{outline:2px solid #111;outline-offset:8px}
.motion-caption{display:flex;justify-content:space-between;gap:15px;padding-top:17px}
.motion-caption strong{display:block;font-size:clamp(17px,1.45vw,23px);font-weight:500;letter-spacing:-.025em}
.motion-caption small{display:block;margin-top:8px;color:#777;font-size:11px;letter-spacing:.04em}
.motion-caption>span:last-child{font-size:12px;color:#777;white-space:nowrap;font-variant-numeric:tabular-nums;padding-top:4px}
body.motion-viewing{overflow:hidden}
.motion-dialog{width:min(1100px,94vw);max-width:94vw;max-height:94svh;margin:auto;padding:0 20px;border:1px solid #ffffff20;background:#080808;color:#fff;overflow:auto}
.motion-dialog::backdrop{background:#000e;backdrop-filter:blur(12px)}
.motion-dialog-top,.motion-dialog-bottom{display:flex;justify-content:space-between;align-items:center;gap:24px;min-height:62px;font-size:13px;letter-spacing:.02em}
.motion-dialog button{flex-shrink:0;border:1px solid #ffffff35;background:transparent;color:#fff;padding:9px 13px;font:inherit;font-size:11px;cursor:pointer}
.motion-dialog button:hover{background:#fff;color:#111}
.motion-dialog button:focus-visible{outline:2px solid #fff;outline-offset:3px}
.motion-dialog>video{display:block;width:100%;height:min(73svh,800px);object-fit:contain;background:#000}
.motion-dialog-bottom{min-height:58px;color:#999;font-size:11px}
.motion-project{padding:145px 24px 70px;max-width:1480px;margin:auto}
.motion-project-header{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;margin:0 0 35px}
.motion-project-header h1{font-size:clamp(38px,5vw,80px);line-height:1.08;letter-spacing:-.04em;font-weight:500;margin:0}
.motion-project-header>span{font-size:12px;color:#777;white-space:nowrap}
.motion-project-stage{background:#000}
.motion-project-stage video{display:block;width:100%;height:78svh;min-height:400px;object-fit:contain}
@media(max-width:900px){.motion-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.motion-section{padding:65px 18px 100px}.motion-heading{font-size:11px}.motion-grid{grid-template-columns:1fr;gap:36px;margin-top:42px}.motion-card{width:min(100%,360px);margin:auto}.motion-caption strong{font-size:20px}.motion-dialog{padding:0 12px}.motion-dialog-top{font-size:12px;gap:12px}.motion-dialog>video{height:68svh}.motion-project{padding:120px 18px 45px}.motion-project-header{display:block}.motion-project-header>span{display:block;margin-top:18px}.motion-project-stage video{height:65svh;min-height:0}}
@media(prefers-reduced-motion:reduce){.motion-play{transition:none}}

/* A personal, bilingual introduction with the portfolio's quiet spacing. */
.profile-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.55fr);gap:8vw;margin:0 20px 150px}
.profile-sidebar{min-width:0}
.profile-location,.profile-note{display:flex;flex-direction:column;gap:9px;font-size:12px;letter-spacing:.065em;line-height:1.5}
.profile-location>span:last-child,.profile-note{color:#777}
.profile-note{margin-top:32px;border-top:1px solid #ccc;padding-top:18px;font-size:10px}
.profile-photo{margin:32px 0 0;background:#f4f1ec;overflow:hidden}
.profile-photo img{display:block;width:100%;height:auto}
.profile-photo figcaption{padding:13px 0 0;background:#fff;font-size:10px;color:#777;letter-spacing:.07em}
.profile-story h2{font-size:clamp(40px,5.4vw,78px);font-weight:500;letter-spacing:-.045em;line-height:1.09;margin:0 0 55px}
.profile-bio{max-width:700px}
.profile-language{display:block;font-size:10px;color:#999;letter-spacing:.08em;margin-bottom:18px}
.profile-bio p{font-size:clamp(17px,1.42vw,21px);line-height:1.75;letter-spacing:-.012em;margin:0;color:#444}
.profile-bio-zh{margin-top:35px;padding-top:30px;border-top:1px solid #ddd}
.profile-bio-zh p{font-family:"PingFang SC","Microsoft YaHei",sans-serif;font-size:clamp(15px,1.2vw,18px);line-height:1.95;letter-spacing:.025em;color:#777}
.contact-methods{margin-top:60px}
.contact-methods>a{display:grid;grid-template-columns:70px minmax(0,1fr) 24px;align-items:center;gap:20px;border-top:1px solid #ccc;padding:24px 0}
.contact-methods>a:last-child{border-bottom:1px solid #ccc}
.contact-methods>a>span{font-size:11px;color:#888;letter-spacing:.05em}
.contact-methods strong{font-weight:400;font-size:clamp(18px,2.1vw,32px);letter-spacing:-.02em;overflow-wrap:anywhere}
.contact-methods>a:hover strong{text-decoration:underline;text-underline-offset:6px}
.contact-methods>a:focus-visible{outline:2px solid #111;outline-offset:5px}
.home-profile>p{margin:0;font-size:12px;line-height:1.6;letter-spacing:.035em}
.home-profile-link{display:block;max-width:260px;margin-top:35px}
.home-profile-link img{width:100%;height:auto;transition:opacity .35s}
.home-profile-link>span{display:flex;justify-content:space-between;gap:10px;margin-top:12px;font-size:9px;letter-spacing:.04em}
.home-profile-link:hover img{opacity:.94}
.home-profile-link:focus-visible{outline:2px solid #111;outline-offset:6px}
@media(max-width:900px){.profile-layout{gap:5vw;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr)}.profile-story h2{font-size:46px}.contact-methods>a{gap:12px;grid-template-columns:54px minmax(0,1fr) 18px}}
@media(max-width:600px){.profile-layout{grid-template-columns:1fr;gap:55px;margin:0 18px 100px}.profile-sidebar{max-width:420px}.profile-photo{margin-top:25px}.profile-story h2{font-size:clamp(40px,10vw,56px);margin-bottom:38px}.profile-bio p{font-size:17px}.profile-bio-zh p{font-size:15px}.profile-note{margin-top:20px}.contact-methods{margin-top:40px}.contact-methods>a{grid-template-columns:48px minmax(0,1fr) 18px;gap:10px}.contact-methods strong{font-size:21px}}
