/* The fallback remains an ordinary gallery when scripting is unavailable. */
.work-carousel{padding:85px var(--pad);background:#101113}
.carousel-ready{--frame-height:min(80svh,calc(100svh - 160px));--frame-width:calc(var(--frame-height) * .772727);height:var(--carousel-height);padding:0;position:relative;background:#0d0e10}
.carousel-ready .carousel-sticky{position:sticky;top:0;height:100svh;min-height:600px;overflow:hidden;background:radial-gradient(ellipse at 17% 88%,#39231a99,transparent 55%),radial-gradient(ellipse at 80% 30%,#30323755,transparent 60%),#0d0e10}
.carousel-ready .carousel-heading{display:block;position:absolute;z-index:4;left:var(--pad);top:calc(52.5svh - 14svh - 100px);width:calc((100vw - var(--frame-width)) / 2 - var(--pad) - 40px);margin:0;pointer-events:none}
.carousel-ready .carousel-heading .eyebrow{font-size:10px;opacity:.65}.carousel-ready .carousel-heading h2{font-size:clamp(25px,2.35vw,38px);line-height:1.02;letter-spacing:-.05em;margin-top:12px}.carousel-ready .carousel-intro{display:none}
.carousel-ready .work-toolbar{position:absolute;left:var(--pad);top:calc(52.5svh + 14svh + 36px);width:calc((100vw - var(--frame-width)) / 2 - var(--pad) - 40px);border:0;padding:0;z-index:5}
.carousel-ready .filters{gap:7px}.carousel-ready .filters button{font-size:9px;padding:9px 12px;min-height:36px;border-color:#ffedd733}.carousel-ready .filters button span{font-size:8px}
.carousel-ready .work-grid{position:absolute;z-index:3;left:50%;top:52.5%;transform:translate(-50%,-50%);width:var(--frame-width);height:var(--frame-height);display:block;overflow:hidden;background:#131416;outline:1px dashed #ffedd780;outline-offset:7px;touch-action:pan-y pinch-zoom;cursor:grab}
.carousel-ready .work-grid:focus-visible{outline:2px solid var(--cream);outline-offset:9px}.carousel-ready .work-grid.is-dragging{cursor:grabbing}
.carousel-ready .work-grid .work-card,.carousel-ready .work-grid.is-filtered .work-card{position:absolute;inset:0;width:100%;height:100%;margin:0;padding:0;will-change:transform;transform:translateX(100%)}
.carousel-ready .work-open{display:block;width:100%;height:100%;cursor:inherit}.carousel-ready .work-picture{width:100%;height:100%;overflow:visible;box-shadow:none;transform-origin:center;background:#131416}
.carousel-ready .work-picture>img,.carousel-ready .work-feature .work-picture>img{width:100%;height:100%;max-height:none;aspect-ratio:auto;object-fit:contain;transform:none;transition:none;background:transparent;user-select:none;-webkit-user-drag:none}
.carousel-ready .work-open:hover img{transform:none}.carousel-ready .work-meta{display:none}.carousel-ready .work-view{right:15px;bottom:15px;font-size:10px;transform:none}.carousel-ready .video-badge{left:15px;top:15px;font-size:9px;background:#080909cc}
.carousel-ready .work-card:not(.is-current) .work-view,.carousel-ready .work-card:not(.is-current) .video-badge{visibility:hidden}
.carousel-peeks{position:absolute;inset:0;z-index:1;pointer-events:none}.carousel-peek{position:absolute;left:50%;top:52.5%;width:calc(var(--frame-width) * .35);height:calc(var(--frame-height) * .35);padding:0;background:#151719;overflow:hidden;opacity:.5;pointer-events:auto;cursor:pointer;transition:opacity .2s}.carousel-peek img{width:100%;height:100%;object-fit:contain;user-select:none;-webkit-user-drag:none}.carousel-peek:hover{opacity:.9!important}
.carousel-caption{position:absolute;top:calc(52.5% + var(--frame-height) / 2 + 19px);left:50%;transform:translateX(-50%);width:var(--frame-width);display:flex;align-items:center;justify-content:space-between;gap:20px;pointer-events:none}.carousel-caption>.eyebrow{font-size:9px;opacity:.6}.carousel-caption>p{font-size:15px;font-weight:750;letter-spacing:-.035em;text-align:right}
.carousel-controls{position:absolute;z-index:5;left:50%;bottom:16px;transform:translateX(-50%);display:flex;gap:20px;align-items:center}.carousel-prev{transform:rotate(180deg)}.carousel-controls .icon-button{background:#0d0e10aa;border-color:#ffedd740;min-width:38px;min-height:38px}.carousel-controls .icon{width:17px;height:17px}.carousel-controls button:disabled{opacity:.22;cursor:default}.carousel-progress{text-align:center;min-width:112px}.carousel-progress>span{display:block;font-size:10px;font-weight:750;letter-spacing:.15em}.carousel-dots{display:flex;align-items:center;justify-content:center;margin-top:4px;gap:1px}.carousel-dots button{padding:7px 3px;width:14px;height:20px;position:relative}.carousel-dots button::after{content:"";display:block;width:8px;height:2px;background:#ffedd73a}.carousel-dots button[aria-pressed="true"]::after{background:var(--cream)}
.carousel-skip{position:absolute;right:var(--pad);bottom:26px;font-size:10px;font-weight:750;text-transform:uppercase;z-index:5;display:flex;align-items:center;gap:9px}.carousel-skip .icon{width:15px;height:15px}.carousel-ready .works-instagram{position:absolute;left:var(--pad);bottom:22px;margin:0;font-size:10px;z-index:5;min-height:30px}
@media(max-width:1100px) and (min-width:801px){.carousel-ready{--frame-height:min(75svh,calc(100svh - 160px))}.carousel-ready .carousel-heading{width:20vw;top:15%}.carousel-ready .carousel-heading h2{font-size:25px}.carousel-ready .work-toolbar{top:72%;width:23vw}.carousel-ready .filters button{font-size:8px;padding:8px 10px}}
@media(max-width:800px), (max-width:1100px) and (max-aspect-ratio:1/1){.carousel-ready{--frame-height:min(68svh,calc(80vw / .772727));--frame-width:calc(var(--frame-height) * .772727)}.carousel-ready .carousel-sticky{min-height:650px}.carousel-ready .work-grid{top:58%;outline-offset:6px}.carousel-ready .carousel-heading{left:calc((100vw - var(--frame-width)) / 2);top:calc(58% - var(--frame-height) / 2 - 140px);width:var(--frame-width)}.carousel-ready .carousel-heading h2{font-size:30px;line-height:.99;margin-top:8px}.carousel-ready .carousel-heading .eyebrow{font-size:9px}.carousel-ready .work-toolbar{top:calc(58% - var(--frame-height) / 2 - 48px);left:calc((100vw - var(--frame-width)) / 2);width:var(--frame-width)}.carousel-ready .filters{gap:5px;flex-wrap:nowrap}.carousel-ready .filters button{font-size:9px;padding:7px 11px;min-height:34px;white-space:nowrap}.carousel-ready .filters button span{display:none}.carousel-peeks{display:none}.carousel-caption{top:calc(58% + var(--frame-height) / 2 + 18px);display:block;line-height:1.3}.carousel-caption>.eyebrow{font-size:8px}.carousel-caption>p{font-size:15px;text-align:left;margin-top:5px}.carousel-controls{bottom:22px;left:var(--pad);transform:none;gap:12px}.carousel-controls .icon-button{min-width:40px;min-height:40px}.carousel-skip{bottom:37px;font-size:9px}.carousel-ready .works-instagram{display:none}.carousel-progress{min-width:108px}.carousel-ready .work-view{font-size:9px;padding:10px 12px}.carousel-ready .video-badge{font-size:8px}}
@media(max-width:560px){.carousel-ready{--frame-height:min(52svh,calc(80vw / .772727))}.carousel-ready .carousel-sticky{min-height:600px}.carousel-ready .filters button{font-size:8px;padding:7px 9px}.carousel-ready .carousel-heading h2{font-size:28px}.carousel-ready .carousel-heading .eyebrow{font-size:8px}.carousel-ready .carousel-heading{top:calc(58% - var(--frame-height) / 2 - 132px)}.carousel-controls{bottom:18px;gap:8px}.carousel-controls .icon-button{min-width:36px;min-height:36px}.carousel-progress{min-width:105px}.carousel-skip{font-size:8px;bottom:29px;gap:5px}.carousel-skip .icon{width:13px;height:13px}}
@media(prefers-reduced-motion:reduce){.carousel-ready{height:100svh}.carousel-ready .work-card,.carousel-peek{will-change:auto;transition:none}.carousel-ready .carousel-sticky{position:relative}}
/* Neutral studio fallback matches the dark WebGL materials. */
.studio-stage{background:#101113}.stage-fallback{background:radial-gradient(ellipse at 36% 44%,#333337,#101113 68%)}.fallback-grid{background-color:#17191c;background-image:linear-gradient(#c3c0b816 1px,transparent 1px),linear-gradient(90deg,#c3c0b816 1px,transparent 1px)}.stage-fallback>img{border-color:#cfcac1;box-shadow:18px 35px 45px #000b}.studio-card{background:rgba(25,26,28,.65);border-color:#ffedd72b}.hero-preview{box-shadow:0 0 18px #9a68342b;border-color:#b6a18a}
/* Each moving slide clips its rotating image before it enters the central frame. */
.carousel-ready .work-grid .work-card{overflow:hidden}
@media(min-width:801px) and (min-aspect-ratio:1/1){.carousel-ready .work-grid,.carousel-peek{top:50%}.carousel-caption{top:calc(50% + var(--frame-height) / 2 + 19px)}}
@media(min-width:561px) and (max-width:800px), (min-width:801px) and (max-width:1100px) and (max-aspect-ratio:1/1){.carousel-ready{--frame-height:min(60svh,calc(80vw / .772727))}.carousel-ready .work-grid{top:55%}.carousel-caption{top:calc(55% + var(--frame-height) / 2 + 18px)}.carousel-ready .carousel-heading{top:calc(55% - var(--frame-height) / 2 - 140px)}.carousel-ready .work-toolbar{top:calc(55% - var(--frame-height) / 2 - 48px)}}

/* Object → monumental type → frame, then the last print returns to the desk. */
.carousel-ready .carousel-sticky{background:radial-gradient(ellipse at 17% 88%,rgba(57,35,26,calc(var(--carousel-stage-opacity,1) * .6)),transparent 55%),radial-gradient(ellipse at 80% 30%,rgba(48,50,55,calc(var(--carousel-stage-opacity,1) * .34)),transparent 60%),rgba(13,14,16,var(--carousel-stage-opacity,1))}
.carousel-choreography{position:absolute;inset:0;z-index:2;overflow:hidden;pointer-events:none}.carousel-opening-title{position:absolute;left:50%;top:50%;width:100%;text-align:center;transform:translate(-50%,-50%) translate(var(--carousel-title-x,0px),var(--carousel-title-y,0px)) scale(var(--carousel-title-scale,1));opacity:var(--carousel-title-opacity,1);transform-origin:center;will-change:transform,opacity}.carousel-opening-title>span{display:block;font-size:clamp(18px,2.2vw,34px);font-weight:750;letter-spacing:-.035em;margin-bottom:15px;opacity:.68}.carousel-opening-title>strong{display:block;font-size:clamp(120px,18vw,300px);font-weight:800;line-height:.85;letter-spacing:-.075em;color:var(--cream,#ffedd7);white-space:nowrap}.carousel-opening-frame{position:absolute;left:50%;top:var(--carousel-opening-y,50%);width:var(--carousel-opening-width,48svh);height:var(--carousel-opening-height,48svh);transform:translate(-50%,-50%);border:1px dashed rgba(255,237,215,.62);border-radius:var(--carousel-frame-round,0);opacity:var(--carousel-intro-opacity,1);will-change:width,height,transform,opacity}.carousel-frame-dot{position:absolute;right:14px;top:14px;width:7px;height:7px;border-radius:50%;background:var(--cream,#ffedd7);z-index:2}.carousel-opening-print{position:absolute;inset:10px;transform:perspective(1500px) rotateX(var(--carousel-opening-rotate,-8deg)) rotateZ(var(--carousel-opening-rotate,-8deg));transform-origin:center;box-shadow:0 20px 45px #0009;background:#121416;border:6px solid #d4cbb8;will-change:transform}.carousel-opening-print img{display:block;width:100%;height:100%;object-fit:contain;background:#121416;user-select:none;-webkit-user-drag:none}.carousel-closing-title{position:absolute;left:50%;top:12%;width:94%;transform:translateX(-50%);text-align:center;opacity:var(--carousel-out-copy-opacity,0);color:var(--cream,#ffedd7)}.carousel-closing-title>span{display:block;font-size:clamp(12px,1.7vw,24px);font-weight:750;letter-spacing:.025em;margin-bottom:17px}.carousel-closing-title>strong{display:block;font-size:clamp(52px,8vw,140px);font-weight:800;line-height:.97;letter-spacing:-.06em}.carousel-enter{position:absolute;z-index:6;left:50%;bottom:5%;transform:translateX(-50%);min-height:44px;padding:13px 24px;border:1px dashed rgba(255,237,215,.55);border-radius:80px;background:#10090499;color:var(--cream,#ffedd7);font-size:11px;font-weight:750;text-transform:uppercase;letter-spacing:.025em}.carousel-enter:hover{background:#ffedd7;color:#100904}.carousel-enter[hidden]{display:none!important}
.carousel-ready .work-grid{opacity:var(--carousel-grid-opacity,1);transform:translate(-50%,-50%) translateY(var(--carousel-out-y,0px)) rotate(var(--carousel-out-rotate,0deg)) scale(var(--carousel-out-scale,1));will-change:transform,opacity}.carousel-ready .carousel-heading,.carousel-ready .work-toolbar,.carousel-ready .carousel-controls,.carousel-ready .carousel-caption,.carousel-ready .carousel-peeks,.carousel-ready .works-instagram{opacity:var(--carousel-ui-opacity,1)}.carousel-ready[data-carousel-phase="intro"] .work-grid,.carousel-ready[data-carousel-phase="outro"] .work-grid{pointer-events:none}.carousel-ready[data-carousel-phase="intro"] .carousel-heading,.carousel-ready[data-carousel-phase="outro"] .carousel-heading{pointer-events:none}
@media(max-width:800px),(max-width:1100px) and (max-aspect-ratio:1/1){.carousel-opening-title>span{font-size:16px}.carousel-opening-title>strong{font-size:21vw;letter-spacing:-.07em}.carousel-opening-print{inset:8px;border-width:4px}.carousel-closing-title{top:12%;width:92%}.carousel-closing-title>span{font-size:12px}.carousel-closing-title>strong{font-size:13vw}.carousel-enter{bottom:9%;font-size:10px;min-height:44px;padding:12px 21px}.carousel-frame-dot{width:5px;height:5px;right:10px;top:10px}}
@media(prefers-reduced-motion:reduce){.carousel-choreography,.carousel-enter{display:none!important}.carousel-ready .work-grid{opacity:1;transform:translate(-50%,-50%);will-change:auto}.carousel-ready .carousel-heading,.carousel-ready .work-toolbar,.carousel-ready .carousel-controls,.carousel-ready .carousel-caption,.carousel-ready .carousel-peeks,.carousel-ready .works-instagram{opacity:1}}
.carousel-opening-title>span{text-align:left;padding-left:var(--pad)}
.carousel-ready[data-carousel-phase="outro"] .work-view,.carousel-ready[data-carousel-phase="outro"] .video-badge{visibility:hidden}
@media(max-width:800px),(max-width:1100px) and (max-aspect-ratio:1/1){.carousel-opening-title>span{text-align:center;padding-left:0;transform:translateY(-15svh)}}
