: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}}

/* Full-screen black opening with a letter-by-letter white title. */
body[data-page="home"]:not(.loaded){overflow:hidden}
.intro-curtain{background:#000;color:#fff}
.intro-curtain .intro-type{position:relative;display:inline-block;font-size:clamp(26px,5.2vw,80px);font-weight:400;letter-spacing:.005em;line-height:1.1;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(max-width:600px){.intro-curtain .intro-type{font-size:clamp(23px,6vw,34px)}}
@media(prefers-reduced-motion:reduce){.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}
.intro-curtain .intro-type{font-size:13px;letter-spacing:.16em;line-height:1.4;font-weight:400}
@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)}.intro-curtain .intro-type{font-size:13px;letter-spacing:.16em}}

/* 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}}
