/* Motion is driven by native scrolling; every scene has a reduced-motion layout. */
:root{--night:#111729}.site-content{overflow:clip}html{scroll-behavior:auto}.site-header{background:#111729;border-color:#ffffff16}.hero{background:#111729}.hero:before{background:radial-gradient(ellipse at 70% 70%,#2a3148,transparent 60%)}.hero-visual{perspective:1300px}.hero-photo-frame{will-change:transform;transform-origin:50% 65%}.hero-photo-frame img{object-position:54% center}.hero-copy-block{will-change:transform}.hero h1{overflow:visible}.hero-description{color:#b5bac7}.hero-photo-frame:after{content:'';position:absolute;inset:0;background:linear-gradient(110deg,#ffffff10,transparent 60%);pointer-events:none}
.paper-theatre{height:440svh;background:#111729;position:relative;scroll-margin-top:0}.theatre-stage{height:100svh;min-height:600px;position:sticky;top:0;overflow:hidden;background:radial-gradient(ellipse at 66% 46%,#303b55 0%,#171e32 42%,#101525 80%);color:#eeebe2;isolation:isolate}.theatre-grain{position:absolute;inset:0;opacity:.16;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.3' filter='url(%23n)'/%3E%3C/svg%3E");z-index:1}.theatre-top,.theatre-bottom{position:absolute;left:var(--gutter);right:var(--gutter);display:flex;justify-content:space-between;align-items:center;z-index:4;font-size:9px;letter-spacing:.2em;color:#b9b9c2}.theatre-top{top:35px}.theatre-bottom{bottom:36px}.theatre-word{position:absolute;left:45%;top:46%;transform:translate(-50%,-50%);font-family:var(--serif);font-size:clamp(240px,33vw,620px);font-weight:300;line-height:1;color:#ffffff04;white-space:nowrap;pointer-events:none;will-change:transform}#paper-canvas{position:absolute;inset:0;width:100%;height:100%;touch-action:pan-y;cursor:grab;z-index:2}#paper-canvas:active{cursor:grabbing}.theatre-captions{position:absolute;left:var(--gutter);top:31%;width:39%;z-index:3;pointer-events:none}.theatre-caption{position:absolute;inset:0;opacity:0;transform:translateY(24px);transition:opacity .65s,transform .9s cubic-bezier(.2,.75,.2,1);visibility:hidden}.theatre-caption.is-active{opacity:1;transform:none;visibility:visible}.theatre-caption>span{font-size:9px;letter-spacing:.2em;color:#b7a183}.theatre-caption :is(h1,h2){font-size:clamp(55px,5.6vw,104px);letter-spacing:-.055em;line-height:.97;margin-top:27px}.theatre-caption :is(h1,h2) em{color:#c2ab88}.theatre-caption p{font-size:13px;line-height:1.85;color:#aaaebb;margin-top:30px}.theatre-tools{position:absolute;right:var(--gutter);bottom:110px;z-index:4;display:flex;gap:28px;align-items:center;font-size:8px;letter-spacing:.2em;color:#aab0bf}.theatre-tools button{border:0;background:transparent;color:inherit;padding:10px 0;font-size:8px;letter-spacing:.15em}.theatre-tools button:hover{color:#fff}.act-nav{display:flex;gap:25px}.act-nav button{background:none;border:0;border-bottom:1px solid transparent;color:#9299a9;padding:9px 0;font-size:10px;letter-spacing:.05em;transition:color .3s,border .3s}.act-nav button.is-active{border-bottom-color:#c8b08b;color:#f2e7d7}.theatre-progress{position:absolute;bottom:0;left:0;right:0;height:2px;background:#ffffff12}.theatre-progress span{display:block;height:100%;width:100%;background:#bca47f;transform:scaleX(var(--progress,0));transform-origin:left}.theatre-fallback{display:none;position:absolute;right:7%;top:23%;width:46%;height:58%;object-fit:cover;box-shadow:0 40px 80px #0005}.no-webgl .theatre-fallback{display:block}.no-webgl #paper-canvas{display:none}.no-webgl .theatre-tools{display:none}
.finish-section{background:#eeece6;position:relative}.finish-heading h2{margin-top:22px}.finish-tab{transition:background .4s,color .4s,transform .4s}.finish-tab.is-active{background:#e3ded4}.finish-tab:hover{transform:translateY(-3px)}.finish-panel{background:#faf8f3;box-shadow:0 25px 55px #20241f0d}.finish-image-wrap{background:#cbc8c0;perspective:1000px;cursor:crosshair;overflow:hidden}.finish-image-wrap img{transform:scale(1.055) translate3d(var(--finish-x,0px),var(--finish-y,0px),0);transition:transform .7s cubic-bezier(.18,.7,.2,1),opacity .32s}.finish-image-wrap.is-changing img{opacity:.25;transform:scale(1.1)}.finish-image-wrap .image-tag{bottom:auto;top:26px;left:27px;background:#141715a8;font-size:8px}.finish-zoom{position:absolute;z-index:4;right:26px;bottom:26px;display:flex;gap:30px;align-items:center;border:1px solid #ffffff80;background:#191d1db0;color:#fff;padding:13px 16px;font-size:9px;letter-spacing:.14em;backdrop-filter:blur(10px)}.finish-zoom:hover{background:#1b2524}.inspect-hint{position:absolute;bottom:30px;left:28px;font-size:8px;letter-spacing:.2em;color:#fff;text-shadow:0 1px 4px #000}.detail-lens{position:absolute;left:var(--lens-x,50%);top:var(--lens-y,50%);width:190px;height:190px;border-radius:50%;transform:translate(-50%,-50%) scale(.7);border:1px solid #ffffffc0;box-shadow:0 12px 35px #0004;z-index:3;pointer-events:none;opacity:0;background-repeat:no-repeat;transition:opacity .25s,transform .35s}.finish-image-wrap.is-inspecting .detail-lens{opacity:1;transform:translate(-50%,-50%) scale(1)}
.work-gallery{height:340svh;background:#111729;scroll-margin-top:0;position:relative;color:#f2eee5}.gallery-stage{position:sticky;top:0;height:100svh;min-height:620px;overflow:hidden;background:radial-gradient(ellipse at 50% 90%,#252b41,transparent 80%)}.gallery-top,.gallery-bottom{position:absolute;left:var(--gutter);right:var(--gutter);display:flex;align-items:center;justify-content:space-between;color:#b5b6c1;font-size:9px;letter-spacing:.18em;z-index:3}.gallery-top{top:35px}.gallery-bottom{bottom:35px}.gallery-track{position:absolute;left:0;top:18%;height:65%;display:flex;align-items:center;gap:5vw;padding:0 var(--gutter);will-change:transform}.gallery-intro{width:32vw;min-width:360px;flex:none}.gallery-intro h2{font-size:clamp(64px,7.2vw,125px);letter-spacing:-.055em;line-height:.9;margin-top:30px}.gallery-intro h2 em{color:#c2aa86}.gallery-intro p{font-size:13px;line-height:1.8;color:#abb0bf;margin-top:28px}.gallery-arrow{display:block;font-size:65px;font-weight:200;margin-top:18px;color:#bba17c}.work-tile{position:relative;flex:none;width:44vw;height:94%;padding:0;border:0;background:#333945;color:#fff;cursor:zoom-in;overflow:hidden;transform-origin:50% 70%;will-change:transform}.work-tile:nth-child(3){height:78%;width:38vw}.work-tile:nth-child(4){height:90%}.work-tile:nth-child(5){height:80%;width:39vw}.work-tile img{display:block;width:100%;height:100%;object-fit:cover;transition:scale 1s cubic-bezier(.2,.7,.2,1);will-change:transform}.work-tile:hover img,.work-tile:focus-visible img{scale:1.07}.work-tile:after{content:'';position:absolute;inset:35% 0 0;background:linear-gradient(transparent,#0a0c10b8);pointer-events:none}.work-tile>span{position:absolute;left:28px;right:28px;bottom:27px;z-index:2;display:grid;grid-template-columns:1fr auto;gap:11px;align-items:end}.work-tile i{grid-column:1/-1;font-style:normal;font-size:8px;letter-spacing:.2em;color:#e0cdb0}.work-tile strong{font-family:var(--serif);font-size:clamp(35px,4vw,65px);font-weight:400;line-height:1}.work-tile b{font-size:20px;font-weight:300}.gallery-meter{width:24%;height:1px;background:#ffffff26}.gallery-meter span{display:block;width:100%;height:100%;background:#c4aa84;transform:scaleX(var(--gallery-progress,0));transform-origin:left}
.gallery-dialog{position:fixed;inset:0;width:min(94vw,1400px);height:min(90vh,900px);max-width:none;max-height:none;padding:0;border:1px solid #ffffff24;background:#171c29;color:#f3f0e9;box-shadow:0 30px 90px #0008;overflow:hidden;grid-template-columns:minmax(0,1fr) 280px;opacity:0;transform:translateY(25px) scale(.96);transition:opacity .35s,transform .5s cubic-bezier(.16,1,.3,1)}.gallery-dialog[open]{display:grid}.gallery-dialog.is-visible{opacity:1;transform:none}.gallery-dialog::backdrop{background:#070b12d9;backdrop-filter:blur(14px)}.gallery-dialog-media{min-width:0;min-height:0;background:#272c33;display:flex;align-items:center;justify-content:center}.gallery-dialog-media img{display:block;width:100%;height:100%;object-fit:contain}.gallery-dialog-info{padding:70px 28px 30px;display:flex;flex-direction:column;justify-content:end}.gallery-dialog-info>span{font-size:9px;letter-spacing:.18em;color:#c2a77e}.gallery-dialog-info h2{font-size:55px;line-height:.96;margin:15px 0 22px}.gallery-dialog-info p{font-size:13px;line-height:1.7;color:#b8c1bc}.gallery-close{position:absolute;right:22px;top:18px;z-index:5;border:0;background:transparent;color:#f5f2ea;font-size:35px;line-height:1;padding:5px 11px}.reveal-on-scroll{opacity:0;transform:translateY(38px);transition:opacity .9s,transform 1.1s cubic-bezier(.16,1,.3,1)}.reveal-on-scroll.is-revealed{opacity:1;transform:none}.process-steps article{transition-delay:calc(var(--reveal-index,0)*.1s)}
@media(max-width:950px){.theatre-caption :is(h1,h2){font-size:6vw}.theatre-captions{width:40%}.theatre-caption p{font-size:12px}.gallery-intro{min-width:300px}.work-tile{width:55vw}.work-tile:nth-child(3),.work-tile:nth-child(5){width:48vw}}
@media(max-width:700px){.paper-theatre{height:360svh}.theatre-stage{min-height:650px}.theatre-top{top:24px;font-size:8px}.theatre-top>span:last-child{display:none}.theatre-captions{top:12%;width:calc(100% - 44px);left:22px}.theatre-caption :is(h1,h2){font-size:clamp(45px,11.8vw,66px);margin-top:16px;max-width:95%}.theatre-caption p{font-size:11px;line-height:1.6;margin-top:18px}.theatre-caption>span{font-size:8px}.theatre-tools{bottom:100px;right:22px;font-size:7px;gap:22px}.theatre-tools button{font-size:7px}.theatre-bottom{bottom:28px;left:22px;right:22px}.study-note{display:none}.act-nav{gap:22px}.act-nav button{font-size:9px}.theatre-count{font-size:8px}.theatre-word{left:50%;top:62%;font-size:65vw}.theatre-fallback{top:44%;right:10%;width:80%;height:35%}.finish-image-wrap{min-height:350px}.finish-zoom{right:16px;bottom:16px;padding:10px 12px;font-size:8px}.inspect-hint{display:none}.detail-lens{display:none}.work-gallery{height:300svh}.gallery-stage{min-height:580px}.gallery-top{top:25px;font-size:8px}.gallery-scroll-hint{display:none}.gallery-track{top:17%;height:67%;gap:7vw}.gallery-intro{width:72vw;min-width:0}.gallery-intro h2{font-size:18vw}.gallery-intro p{font-size:12px}.gallery-intro .eyebrow{font-size:8px}.gallery-arrow{font-size:50px}.work-tile{width:82vw;height:90%}.work-tile:nth-child(3),.work-tile:nth-child(5){width:80vw;height:77%}.work-tile:nth-child(4){height:87%}.work-tile>span{left:20px;right:20px;bottom:20px}.work-tile strong{font-size:10vw}.gallery-bottom{bottom:28px;font-size:7px}.gallery-meter{width:20%}.gallery-dialog{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) auto}.gallery-dialog-info{padding:18px 22px 25px}.gallery-dialog-info h2{font-size:38px;margin:8px 0}.gallery-dialog-info p{font-size:12px}.gallery-close{right:10px;top:10px}}
@media(prefers-reduced-motion:reduce){.paper-theatre{height:110svh}.theatre-stage{position:relative;height:110svh}.theatre-caption,.gallery-dialog,.work-tile img,.reveal-on-scroll,.finish-image-wrap img{transition:none}.reveal-on-scroll{opacity:1;transform:none}.hero-copy-block,.hero-photo-frame{transform:none!important}.work-gallery{height:auto;padding:70px 0}.gallery-stage{position:relative;height:auto;overflow:visible}.gallery-top,.gallery-bottom{position:relative;inset:auto;margin:0 var(--gutter)}.gallery-top{margin-bottom:35px}.gallery-bottom{margin-top:30px}.gallery-track{position:relative;top:auto;left:auto;height:auto;transform:none!important;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.gallery-intro{grid-column:1/-1;width:auto;min-width:0}.work-tile,.work-tile:nth-child(n){width:100%;height:400px;transform:none!important}.theatre-caption{visibility:hidden!important}.theatre-caption.is-active{visibility:visible!important}.detail-lens{display:none}.theatre-word{transform:translate(-50%,-50%)!important}}

/* The paper scene is the first view after the crane opens. */
.site-header{position:absolute;top:0;left:0;width:100%;background:transparent;z-index:10}.theatre-top{top:110px}.theatre-captions{top:33%}
@media(max-width:700px){.theatre-top{top:90px}.theatre-captions{top:18%}.theatre-caption :is(h1,h2){font-size:11.2vw}.site-nav{display:none}}
@media(prefers-reduced-motion:reduce) and (max-width:700px){.gallery-track{grid-template-columns:1fr}.work-tile,.work-tile:nth-child(n){height:420px}}
