.case-lead{display:grid;grid-template-columns:repeat(12,1fr);gap:2rem;padding:clamp(3.5rem,6vw,6rem) 5vw;background:#e9e6df;color:#121212}
.case-label{grid-column:1/span 3;margin:0;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:rgba(18,18,18,.55)}
.case-overview{grid-column:4/-1;max-width:45ch;margin:0;font-size:clamp(1.35rem,2.25vw,2.75rem);font-weight:450;line-height:1.38;letter-spacing:-.025em}
.case-text-band{display:grid;grid-template-columns:repeat(12,1fr);gap:2rem;padding:5rem 5vw 7rem;background:#10100f;color:#f0ede6;border-bottom:1px solid rgba(240,237,230,.12)}
.case-text-band article:first-child{grid-column:2/span 5}.case-text-band article:last-child{grid-column:7/span 5}
.case-text-band span,.case-section-head span,.ai-photo-result-copy span{display:block;margin-bottom:1rem;font-size:.68rem;letter-spacing:.13em;text-transform:uppercase;color:rgba(240,237,230,.5)}
.case-text-band p{margin:0;font-size:clamp(1rem,1.35vw,1.3rem);line-height:1.75;color:rgba(240,237,230,.82)}
.case-section{padding:clamp(5rem,8vw,9rem) 4vw;background:#10100f;color:#f0ede6;border-top:1px solid rgba(240,237,230,.1)}
.case-section-head{display:grid;grid-template-columns:repeat(12,1fr);gap:2rem;align-items:start;max-width:1500px;margin:0 auto clamp(3rem,6vw,6rem)}
.case-section-head span{grid-column:1/span 3;margin:0}.case-section-head p{grid-column:4/span 7;max-width:58rem;margin:0;font-size:clamp(1rem,1.5vw,1.38rem);line-height:1.75;color:rgba(240,237,230,.8)}
.case-media-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(1rem,2vw,2.5rem);align-items:start;max-width:1600px;margin:0 auto}
.case-media{margin:0;overflow:hidden;border-radius:14px;background:#1a1a18}
.case-media--full{grid-column:1/-1}.case-media--half{grid-column:span 6}.case-media--third{grid-column:span 4}.case-media--portrait{grid-column:span 5}.case-media--landscape{grid-column:span 7}
.case-media img,.case-media video{display:block;width:100%;height:auto}.case-media video{aspect-ratio:16/9;object-fit:cover;background:#000}
.project-page--campaign .case-section:nth-of-type(even),.project-page--product .case-section:nth-of-type(even){background:#151513}
.project-page--editorial .case-section,.project-page--portraits .case-section{padding-right:3vw;padding-left:3vw}
.project-page--editorial .case-media,.project-page--portraits .case-media{border-radius:10px}
.project-page--still-life .case-media{border-radius:18px}

.ai-photo-study{padding:clamp(5rem,8vw,9rem) 4vw 8rem;background:#0d0d0c;color:#f0ede6}
.ai-photo-study>.case-section-head{max-width:1500px}
.ai-photo-view{--photo-drag:0px;position:relative;height:1180px;max-width:1450px;margin:0 auto;overflow:hidden;outline:none;touch-action:pan-y;cursor:grab}
.ai-photo-view:focus-visible{outline:1px solid rgba(240,237,230,.6);outline-offset:5px}.ai-photo-view.dragging{cursor:grabbing}
.ai-photo-track{position:absolute;inset:0 0 5rem}
.ai-photo-set{--set-offset:0;position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;opacity:0;pointer-events:none;transform:translate3d(calc(var(--set-offset) * 108% + var(--photo-drag)),0,0) scale(.96);transition:transform .85s cubic-bezier(.2,.78,.2,1),opacity .45s ease}
.ai-photo-set.active{opacity:1;pointer-events:auto;transform:translate3d(var(--photo-drag),0,0) scale(1)}
.ai-photo-set-title{display:flex;align-items:baseline;gap:.8rem;margin-bottom:1.5rem;color:rgba(240,237,230,.55);text-transform:uppercase;letter-spacing:.12em;font-size:.66rem}.ai-photo-set-title strong{font-size:1rem;font-weight:500;color:#f0ede6}
.ai-photo-inputs{display:grid;grid-template-columns:minmax(180px,240px) auto minmax(180px,240px);gap:1.4rem;align-items:center;justify-content:center}
.ai-photo-inputs figure,.ai-photo-output{position:relative;margin:0;padding:2.4rem .8rem .8rem;border:1px solid rgba(240,237,230,.16);border-radius:24px;background:#171715}
.ai-photo-inputs figure>span,.ai-photo-output>span{position:absolute;top:.85rem;left:1rem;font-size:.63rem;letter-spacing:.12em;text-transform:uppercase;color:rgba(240,237,230,.55)}
.ai-photo-inputs img{display:block;width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:17px;user-select:none;-webkit-user-drag:none}
.ai-photo-inputs>i{font-size:2rem;font-style:normal;font-weight:300;color:rgba(240,237,230,.65)}
.ai-photo-flow{height:4.5rem;display:grid;place-items:center;color:rgba(240,237,230,.5);font-size:1.3rem}
.ai-photo-output{width:min(42vw,390px);padding:2.7rem .8rem .8rem;border-color:rgba(240,237,230,.26);box-shadow:0 2.5rem 6rem rgba(0,0,0,.42)}
.ai-photo-output img{display:block;width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:18px;user-select:none;-webkit-user-drag:none}
.ai-photo-controls{position:absolute;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;gap:1.2rem;z-index:5}
.ai-photo-controls>button{width:3rem;height:3rem;border:1px solid rgba(240,237,230,.24);border-radius:50%;background:transparent;color:#f0ede6;cursor:pointer}.ai-photo-controls>button:hover,.ai-photo-controls>button:focus-visible{background:#f0ede6;color:#111;outline:none}
.ai-photo-controls>span{min-width:4.7rem;font-size:.68rem;letter-spacing:.12em;color:rgba(240,237,230,.55)}.ai-photo-controls b{font-weight:500;color:#f0ede6}
.ai-photo-dots{display:flex;gap:.45rem}.ai-photo-dots button{width:.42rem;height:.42rem;padding:0;border:0;border-radius:50%;background:rgba(240,237,230,.25);cursor:pointer;transition:width .3s ease,background .3s ease}.ai-photo-dots button.active{width:1.6rem;border-radius:1rem;background:#f0ede6}
.ai-photo-result-copy{display:grid;grid-template-columns:repeat(12,1fr);gap:2rem;max-width:1450px;margin:6rem auto 0;padding-top:3rem;border-top:1px solid rgba(240,237,230,.13)}
.ai-photo-result-copy span{grid-column:1/span 3}.ai-photo-result-copy p{grid-column:4/span 7;margin:0;font-size:clamp(1rem,1.35vw,1.25rem);line-height:1.75;color:rgba(240,237,230,.78)}

@media(max-width:900px){
  .case-lead{gap:1rem;padding:3.5rem 1.25rem}.case-label{grid-column:1/-1}.case-overview{grid-column:1/-1;margin-top:1.25rem;font-size:clamp(1.35rem,5vw,2rem)}
  .case-text-band{grid-template-columns:1fr;padding:4rem 1.25rem;gap:3rem}.case-text-band article:first-child,.case-text-band article:last-child{grid-column:1}
  .case-section{padding:5rem 1rem}.case-section-head{display:block;margin-bottom:3rem}.case-section-head p{margin-top:1rem}.case-media-grid{gap:1rem}
  .case-media--third{grid-column:span 6}.case-media--portrait,.case-media--landscape{grid-column:span 6}
  .ai-photo-study{padding:5rem 1rem 6rem}.ai-photo-view{height:1120px}.ai-photo-output{width:min(58vw,360px)}
}
@media(max-width:620px){
  .case-media--half,.case-media--third,.case-media--portrait,.case-media--landscape{grid-column:1/-1}.case-media{border-radius:10px}
  .ai-photo-view{height:860px}.ai-photo-track{bottom:4.5rem}.ai-photo-set-title{margin-bottom:1rem}
  .ai-photo-inputs{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);width:100%;gap:.65rem}.ai-photo-inputs figure{padding:2.1rem .55rem .55rem;border-radius:17px}.ai-photo-inputs img{border-radius:12px}.ai-photo-inputs>i{font-size:1.25rem}
  .ai-photo-flow{height:3rem}.ai-photo-output{width:min(76vw,330px);padding:2.3rem .6rem .6rem;border-radius:20px}.ai-photo-output img{border-radius:14px}
  .ai-photo-controls{gap:.7rem}.ai-photo-controls>button{width:2.7rem;height:2.7rem}.ai-photo-dots{display:none}
  .ai-photo-result-copy{display:block;margin-top:4rem}.ai-photo-result-copy p{margin-top:1rem}
}
html[data-motion="reduced"] .ai-photo-set{transition:none}

/* Shared full-frame image treatment */
.media-frame{position:relative;width:100%;height:100%;overflow:hidden;background:#151514;isolation:isolate}
.media-frame-blur,.project-cover-bg{position:absolute;inset:-7%;z-index:0;background-image:var(--media-url);background-position:center;background-size:cover;filter:blur(28px) saturate(.85) brightness(.65);transform:scale(1.08)}
.media-frame:after{content:"";position:absolute;inset:0;z-index:1;background:rgba(8,8,8,.12);pointer-events:none}
.media-frame>img{position:relative;z-index:2;width:100%;height:100%;object-fit:contain!important;filter:none!important;transform:none!important}
.case-media .media-frame{aspect-ratio:16/10}.case-media--portrait .media-frame{aspect-ratio:4/5}
.entry-media .media-frame{height:100%}.entry:hover .media-frame>img{transform:scale(1.012)!important}
.project-cover--contained{background:#111}.project-cover--contained .project-cover-bg{display:block;background-image:var(--cover-url)}
.project-cover--contained>img{z-index:1;object-fit:contain;padding:clamp(1rem,3vw,3rem)}
.project-cover:not(.project-cover--contained) .project-cover-bg{display:none}
.project-cover--contained:after{z-index:2;background:linear-gradient(0deg,rgba(0,0,0,.82),rgba(0,0,0,.08) 64%,rgba(0,0,0,.08))}
.project-cover-copy{z-index:3}.work-index{overflow-y:auto;overscroll-behavior:contain}.index-links{padding-bottom:6vh}

/* AI Photo — compact one-screen equation */
.ai-photo-study{min-height:calc(100vh - var(--nav-h));padding:clamp(2rem,4vw,4.5rem) 4vw;display:grid;grid-template-columns:minmax(240px,.72fr) minmax(620px,1.28fr);gap:5vw;align-items:center}
.ai-photo-intro>span,.ai-photo-intro small{font-size:.65rem;letter-spacing:.13em;text-transform:uppercase;color:rgba(240,237,230,.48)}
.ai-photo-intro h2{margin:1.2rem 0 2rem;font-size:clamp(3rem,5.6vw,7rem);font-weight:500;line-height:.88;letter-spacing:-.06em}
.ai-photo-intro>p{max-width:34rem;margin:0 0 2.3rem;font-size:clamp(.92rem,1.15vw,1.12rem);line-height:1.72;color:rgba(240,237,230,.78)}
.ai-photo-intro>div{padding:1rem 0;border-top:1px solid rgba(240,237,230,.14)}.ai-photo-intro>div p{margin:.55rem 0 0;font-size:.74rem;line-height:1.65;color:rgba(240,237,230,.58)}
.ai-photo-view{height:min(78vh,720px);max-width:none;margin:0;border:1px solid rgba(240,237,230,.13);border-radius:26px;background:#121211}
.ai-photo-track{inset:1.2rem 1.2rem 4.6rem}.ai-photo-set{display:none;justify-content:center;opacity:1;transform:none;transition:none}.ai-photo-set.active{display:flex;transform:none}
.ai-photo-set-title{margin-bottom:.7rem}.ai-photo-inputs{grid-template-columns:clamp(105px,10vw,145px) auto clamp(105px,10vw,145px);gap:.75rem}
.ai-photo-inputs figure{padding:1.8rem .45rem .45rem;border-radius:16px}.ai-photo-inputs figure>span,.ai-photo-output>span{top:.62rem;left:.7rem;font-size:.54rem}.ai-photo-inputs img{border-radius:11px}
.ai-photo-inputs>i{font-size:1.25rem}.ai-photo-flow{height:2.2rem;font-size:1rem}.ai-photo-output{width:clamp(205px,22vw,285px);padding:2rem .55rem .55rem;border-radius:18px;box-shadow:0 1.8rem 4rem rgba(0,0,0,.4)}.ai-photo-output img{border-radius:12px}
.ai-photo-controls{bottom:1rem}.ai-photo-controls>button{width:2.5rem;height:2.5rem}

/* Photography — one stage, complete images, grouped sequences */
.photo-cinema{min-height:100vh;padding:clamp(4rem,7vw,7rem) 4vw 3.5rem;background:#0c0c0b;color:#f0ede6;display:grid;grid-template-columns:minmax(0,1fr) minmax(120px,12vw);grid-template-rows:auto minmax(0,1fr) auto;gap:1.2rem 1.5rem}
.photo-cinema-head{grid-column:1/-1;display:flex;align-items:flex-end;justify-content:space-between;gap:2rem}.photo-cinema-head>span{font-size:.65rem;letter-spacing:.13em;color:rgba(240,237,230,.5)}
.photo-series-tabs{display:flex;gap:.7rem;flex-wrap:wrap;justify-content:flex-end}.photo-series-tabs button,.vibe-studio nav button,.vibe-motion-tabs button{padding:.65rem 1rem;border:1px solid rgba(240,237,230,.16);border-radius:999px;color:rgba(240,237,230,.56);font-size:.68rem}.photo-series-tabs button.active,.vibe-studio nav button.active,.vibe-motion-tabs button.active{background:#f0ede6;color:#10100f;border-color:#f0ede6}.photo-series-tabs i{margin-left:.5rem;font-style:normal;opacity:.6}
.photo-stage{grid-column:1;grid-row:2;min-height:0;border-radius:18px}.photo-stage>img{padding:.8rem}.photo-thumbs{grid-column:2;grid-row:2;display:grid;grid-template-rows:repeat(6,minmax(0,1fr));gap:.55rem;min-height:0}
.photo-thumbs button{position:relative;min-height:0;overflow:hidden;border:1px solid transparent;border-radius:8px;background:#161615}.photo-thumbs button>span{position:absolute;inset:-10%;background-image:var(--media-url);background-size:cover;background-position:center;filter:blur(11px) brightness(.6)}.photo-thumbs img{position:relative;width:100%;height:100%;object-fit:contain}.photo-thumbs button.active{border-color:#f0ede6}.photo-thumbs button:hover{transform:translateX(-6px)}
.photo-count{grid-column:1/-1;justify-self:center;font-size:.64rem;letter-spacing:.12em;color:rgba(240,237,230,.46)}.photo-count b{font-weight:500;color:#f0ede6}

/* Vibe Coding — three controlled views instead of a long mixed feed */
.vibe-studio{height:100svh;min-height:0;padding:calc(var(--nav-h) + clamp(.35rem,1vh,.7rem)) 2vw clamp(.35rem,1vh,.7rem);display:grid;grid-template-rows:auto minmax(0,1fr);background:#0d0d0c;color:#f0ede6}.vibe-studio>header{display:flex;align-items:center;justify-content:space-between;gap:1rem;width:100%;max-width:1800px;margin:0 auto clamp(.35rem,.8vh,.6rem)}.vibe-studio>header>span{font-size:.58rem;letter-spacing:.13em;color:rgba(240,237,230,.44)}.vibe-studio nav{display:flex;gap:.35rem}.vibe-studio nav button{padding:.5rem .8rem}
.vibe-panel-wrap{position:relative;display:grid;width:100%;height:100%;min-width:0;min-height:0;max-width:1800px;margin:auto}.vibe-panel{position:relative;grid-area:1/1;min-width:0;min-height:0;height:100%;display:none}.vibe-panel.active{display:grid}
.vibe-panel--interface{display:none}.vibe-panel--interface.active{display:block}.vibe-console-shell{width:100%;height:100%;min-width:0;min-height:0;display:grid;overflow:hidden;border:1px solid rgba(240,237,230,.13);border-radius:16px;background:#151514;box-shadow:0 1.5rem 4rem rgba(0,0,0,.24)}.vibe-interface-shell,.vibe-motion-shell{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) auto}.vibe-pipeline-shell{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr)}
.vibe-interface-bar{grid-column:1/-1;height:2.5rem;padding:0 .85rem;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(240,237,230,.1);font-size:.57rem;letter-spacing:.12em;text-transform:uppercase;color:rgba(240,237,230,.52)}.vibe-interface-bar>div{display:flex;align-items:center;gap:.55rem}.vibe-interface-bar i{width:.4rem;height:.4rem;border-radius:50%;background:#ff285f;box-shadow:0 0 0 4px rgba(255,40,95,.1)}.vibe-interface-bar strong{display:flex;gap:.4rem;font-weight:400}.vibe-interface-bar b{font-weight:600;color:#f0ede6}.vibe-interface-bar em{font-style:normal;color:rgba(240,237,230,.25)}
.vibe-screen{position:relative;grid-column:1;grid-row:2;width:100%;height:100%;min-width:0;min-height:0;overflow:hidden;background:#0a0a09}.vibe-screen>img{position:absolute;inset:clamp(.25rem,.65vw,.65rem);display:block;width:calc(100% - clamp(.5rem,1.3vw,1.3rem));height:calc(100% - clamp(.5rem,1.3vw,1.3rem));max-width:none;max-height:none;object-fit:contain}
.vibe-screen-tabs{grid-column:1;grid-row:3;min-width:0;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.3rem;padding:.35rem;border-top:1px solid rgba(240,237,230,.1);background:#111110}.vibe-screen-tabs button{position:relative;min-width:0;height:clamp(36px,4.2vh,48px);overflow:hidden;border:1px solid transparent;border-radius:5px;background:#191918;opacity:.48;transition:opacity .3s ease,border-color .3s ease,transform .3s ease}.vibe-screen-tabs button:before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(0,0,0,.38),transparent 45%);pointer-events:none}.vibe-screen-tabs button span{position:absolute;top:.3rem;left:.35rem;z-index:2;font-size:.48rem;letter-spacing:.1em;color:#fff}.vibe-screen-tabs img{display:block;width:100%;height:100%;object-fit:cover}.vibe-screen-tabs button:hover{opacity:.78;transform:translateY(-1px)}.vibe-screen-tabs button.active{border-color:#ff285f;opacity:1}
.vibe-panel--pipeline{display:none}.vibe-panel--pipeline.active{display:block}.vibe-pipeline-stage{position:relative;width:100%;height:100%;min-width:0;min-height:0;overflow:hidden;background:#0a0a09}.vibe-pipeline-stage img{position:absolute;inset:clamp(.25rem,.65vw,.65rem);display:block;width:calc(100% - clamp(.5rem,1.3vw,1.3rem));height:calc(100% - clamp(.5rem,1.3vw,1.3rem));max-width:none;max-height:none;object-fit:contain}
.vibe-panel--motion{display:none}.vibe-panel--motion.active{display:block}.vibe-motion-stage{position:relative;grid-column:1;grid-row:2;width:100%;height:100%;min-width:0;min-height:0;overflow:hidden;background:#050505}.vibe-motion-stage video{position:absolute;inset:clamp(.25rem,.65vw,.65rem);display:block;width:calc(100% - clamp(.5rem,1.3vw,1.3rem));height:calc(100% - clamp(.5rem,1.3vw,1.3rem));max-width:none;max-height:none;object-fit:contain}.vibe-motion-tabs{grid-column:1;grid-row:3;display:flex;justify-content:center;gap:.35rem;padding:.35rem;border-top:1px solid rgba(240,237,230,.1);background:#111110}.vibe-motion-tabs button{min-width:3.5rem;padding:.45rem .8rem;font-size:.58rem;border-radius:5px}

@media(max-height:760px){.index-links{margin-top:8vh}.index-links a{padding:12px 0 18px}.index-links strong{font-size:clamp(38px,6vw,78px)}}
@media(max-width:1000px){.ai-photo-study{grid-template-columns:1fr;min-height:auto}.ai-photo-intro>div{display:none}.ai-photo-view{height:720px}.photo-cinema{min-height:auto;height:auto;grid-template-columns:1fr;grid-template-rows:auto min(68vh,720px) auto auto}.photo-stage{grid-column:1;grid-row:2}.photo-thumbs{grid-column:1;grid-row:3;grid-template-columns:repeat(6,1fr);grid-template-rows:75px}.photo-count{grid-row:4}}
@media(max-width:700px){.ai-photo-study{padding:3rem 1rem}.ai-photo-intro h2{margin-bottom:1rem}.ai-photo-intro>p{margin-bottom:1.5rem}.ai-photo-view{height:650px;border-radius:18px}.ai-photo-inputs{width:auto}.ai-photo-output{width:min(58vw,250px)}.ai-photo-dots{display:none}.photo-cinema{padding:4rem 1rem 2rem}.photo-cinema-head{align-items:flex-start;flex-direction:column}.photo-series-tabs{justify-content:flex-start}.photo-thumbs{grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(2,70px)}.vibe-studio{height:100svh;padding:calc(var(--nav-h) + .3rem) .6rem .4rem}.vibe-studio>header{align-items:center;gap:.3rem;margin-bottom:.3rem}.vibe-studio>header>span{display:none}.vibe-studio nav{width:100%;justify-content:center;gap:.2rem}.vibe-studio nav button{padding:.42rem .55rem;font-size:.58rem}.vibe-console-shell{border-radius:10px}.vibe-interface-bar{height:2.2rem;padding:0 .6rem}.vibe-screen-tabs{gap:.18rem;padding:.2rem}.vibe-screen-tabs button{height:34px;border-radius:3px}.vibe-screen-tabs button span{top:.2rem;left:.22rem}.vibe-motion-tabs{gap:.2rem;padding:.2rem}.vibe-motion-tabs button{padding:.38rem .6rem;font-size:.5rem}.work-index{overflow-y:auto}.index-links{margin-top:8vh;padding-bottom:8vh}.index-links a{padding:14px 0 19px}.index-links strong{font-size:10vw}}

/* Directory covers use one continuous colour field; project interiors stay crisp. */
.category .entry-list{gap:9vh}.category .entry,.category .entry:nth-child(even){position:relative;display:block;padding:0;border:0;overflow:hidden;border-radius:22px;background:#171716}.category .entry:after{content:"";position:absolute;inset:35% 0 0;z-index:3;background:linear-gradient(transparent,rgba(0,0,0,.82));pointer-events:none}.category .entry-media{width:100%;aspect-ratio:16/7;border-radius:0;background:#191918}.category .entry:nth-child(even) .entry-media{order:0}.category .media-frame-blur{display:block}.category .media-frame:after{display:block;background:rgba(8,8,8,.08)}.category .media-frame>img{object-fit:contain!important;padding:clamp(.5rem,1.3vw,1.25rem)}.category .entry-meta{position:absolute;inset:0;z-index:4;padding:1.5rem 1.7rem;color:#f0efe9}.category .entry h2{margin:0 0 .5rem;max-width:13ch;font-size:clamp(2.2rem,5vw,5.8rem);text-shadow:0 2px 24px rgba(0,0,0,.4)}.category .entry-open{color:rgba(255,255,255,.7)}
.project-page .project-cover-bg,.project-page .case-media .media-frame-blur,.project-page .case-media .media-frame:after,.project-page .vibe-studio .media-frame-blur,.project-page .vibe-studio .media-frame:after{display:none!important}
.project-cover--contained>img{padding:clamp(1rem,3vw,3.2rem);object-fit:contain;background:#0d0d0c}.case-media .media-frame{background:#111}.case-media .media-frame>img{object-fit:contain!important}

/* AI Photo: one large card, with the equation embedded into the image rather than stacked capsules. */
.ai-photo-study{grid-template-columns:minmax(250px,.62fr) minmax(650px,1.38fr);gap:4vw}.ai-photo-view{height:min(75vh,700px);border:0;border-radius:0;background:transparent;overflow:hidden;perspective:1400px}.ai-photo-track{inset:0 0 4rem}.ai-photo-set{position:absolute;inset:0;display:none;align-items:stretch;justify-content:stretch}.ai-photo-set.active{display:flex}.ai-photo-card{width:100%;height:100%;display:grid;grid-template-columns:minmax(210px,.36fr) minmax(0,.64fr);overflow:hidden;border-radius:28px;background:#171716;box-shadow:0 2.4rem 6rem rgba(0,0,0,.34);transform-style:preserve-3d}
.ai-photo-source{min-width:0;padding:clamp(1.2rem,2.2vw,2.2rem);display:grid;grid-template-columns:1fr auto 1fr;grid-template-rows:auto minmax(0,1fr);gap:1rem .7rem;align-items:center;background:#e9e6de;color:#111}.ai-photo-card-head{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;font-size:.63rem;letter-spacing:.12em;text-transform:uppercase;color:rgba(0,0,0,.48)}.ai-photo-card-head strong{font-size:.85rem;font-weight:500;color:#111}.ai-photo-source figure{min-width:0;margin:0;align-self:center}.ai-photo-source img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:12px}.ai-photo-source figcaption,.ai-photo-output figcaption{margin-top:.6rem;font-size:.6rem;letter-spacing:.09em;text-transform:uppercase;color:rgba(0,0,0,.5)}.ai-photo-source>i{font-style:normal;font-size:1.2rem;color:rgba(0,0,0,.4)}
.ai-photo-output{position:relative;width:auto;margin:0;padding:0;border:0;border-radius:0;background:#0b0b0a;box-shadow:none;overflow:hidden}.ai-photo-output img{width:100%;height:100%;aspect-ratio:auto;object-fit:contain;border-radius:0}.ai-photo-output figcaption{position:absolute;right:1rem;bottom:1rem;margin:0;padding:.45rem .65rem;background:rgba(0,0,0,.62);color:rgba(255,255,255,.72);backdrop-filter:blur(8px)}
.ai-photo-controls{bottom:.3rem;gap:1.5rem}.ai-photo-controls>button{width:2.7rem;height:2.7rem;border:0;border-radius:0;color:#f0ede6}.ai-photo-controls>button:hover,.ai-photo-controls>button:focus-visible{background:transparent;color:#fff;transform:scale(1.18)}.ai-photo-controls>span{text-align:center}

/* Reusable large-media decks */
.project-studio{background:#0d0d0c;color:#f0ede6}.media-deck{min-height:100vh;padding:clamp(5rem,8vw,8rem) 4vw 4rem}.media-deck>header,.starbucks-studio>header,.hema-gallery>header{display:flex;align-items:flex-end;justify-content:space-between;gap:2rem;max-width:1500px;margin:0 auto 2rem}.media-deck>header>span,.starbucks-studio>header>span,.hema-gallery>header>span{font-size:.65rem;letter-spacing:.13em;color:rgba(240,237,230,.48)}
.media-deck nav,.starbucks-studio nav{display:flex;gap:1.6rem}.media-deck nav button,.starbucks-studio nav button{padding:.4rem 0;border-bottom:1px solid transparent;font-size:.72rem;color:rgba(240,237,230,.48)}.media-deck nav button.active,.starbucks-studio nav button.active{border-color:#f0ede6;color:#f0ede6}
.media-deck-stage{height:min(70vh,760px);max-width:1500px;margin:auto;display:grid;place-items:center;overflow:hidden;background:#111}.media-deck-stage img,.media-deck-stage video{width:100%;height:100%;object-fit:contain}.media-deck-thumbs{display:flex;justify-content:center;gap:.6rem;max-width:1000px;margin:1rem auto 0}.media-deck-thumbs button{width:clamp(64px,8vw,118px);height:68px;overflow:hidden;border:1px solid transparent;background:#171716;color:#fff}.media-deck-thumbs button.active{border-color:#f0ede6}.media-deck-thumbs img{width:100%;height:100%;object-fit:cover}

/* Hema: three key visuals dominate; the flawed outdoor output is intentionally defocused. */
.hema-gallery{padding:clamp(5rem,8vw,8rem) 4vw 7rem}.hema-gallery>header p{max-width:46rem;margin:0;font-size:.9rem;line-height:1.7;color:rgba(240,237,230,.6)}.hema-kvs{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;max-width:1500px;margin:auto}.hema-kvs figure{margin:0;overflow:hidden;background:#151514}.hema-kvs img{width:100%;height:auto}.hema-outdoor{max-width:1500px;margin:4rem auto 0;overflow:hidden;background:#121211}.hema-outdoor img{width:100%;filter:blur(14px);transform:scale(1.035)}
.hema-gallery>header{display:flex;align-items:center;justify-content:space-between;max-width:1500px;margin:0 auto 2rem}.hema-gallery>header small{font-size:.62rem;letter-spacing:.1em;color:rgba(240,237,230,.48)}.hema-kv{position:relative;min-width:0;overflow:hidden;background:#151514;text-align:left}.hema-kv>img{width:100%;height:auto;transition:transform .7s cubic-bezier(.2,.7,.2,1),filter .4s ease}.hema-kv>span{position:absolute;right:.8rem;bottom:.8rem;left:.8rem;display:flex;align-items:center;justify-content:space-between;padding:.65rem .75rem;background:rgba(9,9,9,.72);backdrop-filter:blur(10px);font-size:.57rem;letter-spacing:.09em;text-transform:uppercase;color:rgba(255,255,255,.76);opacity:0;transform:translateY(7px);transition:opacity .3s ease,transform .35s ease}.hema-kv>span i{font-style:normal;color:#fff}.hema-kv:hover>img,.hema-kv:focus-visible>img{transform:scale(1.018);filter:brightness(1.04)}.hema-kv:hover>span,.hema-kv:focus-visible>span{opacity:1;transform:none}.hema-kv:focus-visible{outline:1px solid #f0ede6;outline-offset:4px}
.hema-detail-lightbox{position:fixed;inset:0;z-index:600;display:none;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:clamp(.8rem,2vw,2rem);padding:clamp(1rem,4vh,3rem) clamp(1rem,4vw,4rem);background:rgba(7,7,7,.96);color:#f0ede6}.hema-detail-lightbox.open{display:grid}.hema-detail-lightbox>figure{min-width:0;min-height:0;max-width:min(82vh,1100px);max-height:82vh;aspect-ratio:1;margin:0 auto;display:grid;grid-template-rows:minmax(0,1fr) auto;background:#111}.hema-detail-lightbox figure>img{width:100%;height:100%;min-height:0;object-fit:contain}.hema-detail-lightbox figcaption{display:flex;align-items:center;justify-content:space-between;padding:.8rem 1rem;border-top:1px solid rgba(255,255,255,.12);font-size:.6rem;letter-spacing:.11em;text-transform:uppercase;color:rgba(255,255,255,.58)}.hema-detail-lightbox figcaption strong{font-weight:400}.hema-detail-lightbox figcaption b{font-weight:600;color:#fff}.hema-detail-close{position:absolute;top:1rem;right:1.2rem;width:2.7rem;height:2.7rem;font-size:1.6rem;color:#fff}.hema-detail-prev,.hema-detail-next{width:3rem;height:3rem;border:1px solid rgba(255,255,255,.2);border-radius:50%;color:#fff}.hema-detail-prev:hover,.hema-detail-next:hover,.hema-detail-close:hover{background:#f0ede6;color:#111}.hema-lightbox-open{overflow:hidden}
.hema-slider{max-width:1500px;margin:0 auto;outline:none;touch-action:pan-y;cursor:grab}.hema-slider.dragging{cursor:grabbing}.hema-slider:focus-visible{outline:1px solid rgba(240,237,230,.65);outline-offset:5px}.hema-card-stage{position:relative;height:min(72vh,760px);overflow:hidden;border:1px solid rgba(240,237,230,.14);border-radius:24px;background:#151514}.hema-pair{position:absolute;inset:0;padding:clamp(1rem,2vw,2rem);display:grid;grid-template-rows:auto minmax(0,1fr);gap:1rem;opacity:0;visibility:hidden;pointer-events:none}.hema-pair.active{opacity:1;visibility:visible;pointer-events:auto}.hema-pair>header{display:flex;align-items:center;justify-content:space-between;padding-bottom:.85rem;border-bottom:1px solid rgba(240,237,230,.12);font-size:.6rem;letter-spacing:.11em;text-transform:uppercase;color:rgba(240,237,230,.52)}.hema-pair>header>div{display:grid;grid-template-columns:clamp(180px,28vw,430px) clamp(180px,33vw,520px);gap:clamp(1rem,2vw,2rem);text-align:center}.hema-pair>header i{font-style:normal;color:rgba(240,237,230,.68)}.hema-pair-media{min-height:0;display:grid;grid-template-columns:minmax(220px,.72fr) minmax(280px,1fr);gap:clamp(1rem,2vw,2rem);align-items:stretch}.hema-pair figure{position:relative;min-width:0;min-height:0;height:100%;margin:0;display:grid;place-items:center;overflow:hidden;background:#0d0d0c}.hema-poster img,.hema-detail img{display:block;width:100%;height:100%;object-fit:contain}.hema-detail{width:auto;justify-self:stretch}.hema-detail img{aspect-ratio:auto}.hema-slider>footer{display:flex;align-items:center;justify-content:center;gap:1.2rem;padding-top:1rem}.hema-slider-controls{display:flex;align-items:center;gap:1rem}.hema-slider-controls button{width:2.7rem;height:2.7rem;border:1px solid rgba(240,237,230,.2);border-radius:50%}.hema-slider-controls button:hover,.hema-slider-controls button:focus-visible{background:#f0ede6;color:#111}.hema-slider-controls strong{min-width:4.2rem;text-align:center;font-size:.62rem;letter-spacing:.1em;font-weight:400;color:rgba(240,237,230,.45)}.hema-slider-controls b{font-weight:600;color:#f0ede6}.hema-slider-controls i{margin:0 .35rem;font-style:normal}.hema-slider-dots{display:flex;gap:.4rem}.hema-slider-dots button{width:.38rem;height:.38rem;border-radius:999px;background:rgba(240,237,230,.24);transition:width .3s ease,background .3s ease}.hema-slider-dots button.active{width:1.6rem;background:#f0ede6}
.project-page--vibe .case-overview{white-space:pre-line;max-width:58ch;font-size:clamp(1.15rem,1.7vw,2rem);line-height:1.65}.vibe-concept{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:2rem;padding:clamp(4rem,7vw,7rem) 5vw;background:#e9e6df;color:#111}.vibe-concept>span{grid-column:1/span 3;font-size:.68rem;letter-spacing:.13em;text-transform:uppercase;color:rgba(17,17,17,.5)}.vibe-concept>p{grid-column:4/-1;max-width:58ch;margin:0;white-space:pre-line;font-size:clamp(1rem,1.35vw,1.3rem);line-height:1.8;color:rgba(17,17,17,.78)}

/* Starbucks: one controlled stage, grouped by storyboard / character / scene / final film. */
.starbucks-studio{min-height:100vh;padding:clamp(5rem,8vw,8rem) 4vw 5rem}.star-panels{position:relative;height:min(72vh,780px);max-width:1500px;margin:auto}.star-panel{position:absolute;inset:0;display:none}.star-panel.active{display:grid}.star-panel figure{height:100%;margin:0;display:grid;place-items:center;overflow:hidden;background:#111}.star-panel figure img{width:100%;height:100%;object-fit:contain}.star-panel[data-star-panel="storyboard"]{grid-template-columns:minmax(0,1fr) 100px;gap:.8rem}.star-story-main{display:grid;place-items:center;overflow:hidden;background:#f3f3f1}.star-story-main img{width:100%;height:100%;object-fit:contain}.star-story-thumbs{display:grid;grid-template-rows:repeat(6,1fr);gap:.45rem}.star-story-thumbs button{min-height:0;overflow:hidden;border:1px solid transparent;background:#eee}.star-story-thumbs button.active{border-color:#f0ede6}.star-story-thumbs img{width:100%;height:100%;object-fit:cover}.star-modeling{grid-template-columns:1fr 1fr;gap:1rem}.star-film{place-items:center;background:#050505}.star-film video{width:100%;height:100%;object-fit:contain}

/* Photography: composed editorial sequences, no blur, no forced crop. */
.photo-editorial{padding:clamp(5rem,8vw,8rem) 4vw 10rem;background:#f1efe9;color:#111}.photo-editorial>header{max-width:1500px;margin:0 auto 5rem;font-size:.65rem;letter-spacing:.13em;color:rgba(0,0,0,.48)}.photo-story{max-width:1500px;margin:0 auto 12rem}.photo-story:last-of-type{margin-bottom:0}.photo-story-title{display:grid;grid-template-columns:2fr 10fr;gap:2rem;align-items:end;margin-bottom:2rem;border-bottom:1px solid rgba(0,0,0,.2);padding-bottom:1.2rem}.photo-story-title span{font-size:.62rem;letter-spacing:.12em;color:rgba(0,0,0,.45)}.photo-story-title h2{margin:0;font-size:clamp(2.2rem,5vw,6rem);font-weight:500;line-height:.9;letter-spacing:-.05em}.photo-mosaic{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(1rem,2vw,2rem);align-items:start}.photo-tile{min-width:0;margin:0;background:transparent}.photo-tile img{width:100%;height:auto;object-fit:contain}.photo-tile:nth-child(6n+1){grid-column:span 7}.photo-tile:nth-child(6n+2){grid-column:span 5;margin-top:12vh}.photo-tile:nth-child(6n+3){grid-column:2/span 4}.photo-tile:nth-child(6n+4){grid-column:6/span 7;margin-top:6vh}.photo-tile:nth-child(6n+5){grid-column:span 5}.photo-tile:nth-child(6n+6){grid-column:7/span 6;margin-top:10vh}.photo-lightbox{position:fixed;inset:0;z-index:500;display:none;place-items:center;padding:4vh 5vw;background:rgba(7,7,7,.96)}.photo-lightbox.open{display:grid}.photo-lightbox img{max-width:100%;max-height:92vh;width:auto;height:auto}.photo-lightbox-close{position:absolute;top:1.2rem;right:1.5rem;color:#fff;font-size:2rem}

/* Vibe motion is always letterboxed inside the stage instead of cropped. */
.vibe-motion-stage{overflow:hidden}.vibe-motion-stage video{display:block;max-width:none;max-height:none;object-fit:contain;background:#050505}.vibe-screen>img,.vibe-pipeline-stage>img{object-fit:contain!important}

@media(max-width:900px){.ai-photo-study{grid-template-columns:1fr}.ai-photo-intro>div{display:none}.ai-photo-view{height:700px}.ai-photo-card{grid-template-columns:230px 1fr}.hema-kvs{grid-template-columns:1fr 1fr}.hema-kvs figure:last-child{grid-column:1/-1;max-width:50%;justify-self:center}.starbucks-studio>header,.media-deck>header{align-items:flex-start;flex-direction:column}.photo-story-title{grid-template-columns:1fr}.photo-tile:nth-child(n){margin-top:0}}
@media(max-width:620px){.ai-photo-view{height:620px}.ai-photo-card{grid-template-columns:1fr;grid-template-rows:190px minmax(0,1fr);border-radius:18px}.ai-photo-source{grid-template-columns:100px auto 100px;justify-content:center;padding:1rem}.ai-photo-card-head{display:none}.ai-photo-source img{height:130px;width:100px}.ai-photo-source figcaption{display:none}.media-deck,.hema-gallery,.starbucks-studio,.photo-editorial{padding-right:1rem;padding-left:1rem}.media-deck nav,.starbucks-studio nav{gap:.8rem;flex-wrap:wrap}.media-deck-stage{height:60vh}.hema-kvs{grid-template-columns:1fr}.hema-kvs figure:last-child{grid-column:auto;max-width:none}.star-panels{height:67vh}.star-panel[data-star-panel="storyboard"]{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) 70px}.star-story-thumbs{grid-template-columns:repeat(6,1fr);grid-template-rows:1fr}.star-modeling{grid-template-columns:1fr;grid-template-rows:1fr 1fr}.photo-story{margin-bottom:7rem}.photo-mosaic{grid-template-columns:1fr;gap:1.2rem}.photo-tile:nth-child(n){grid-column:1;margin:0}.photo-story-title h2{font-size:12vw}}
@media(max-width:620px){.hema-gallery>header small{display:none}.hema-kv>span{opacity:1;transform:none}.hema-detail-lightbox{grid-template-columns:1fr;padding:4rem .75rem 1rem}.hema-detail-lightbox>figure{width:100%;max-width:none;max-height:none}.hema-detail-prev,.hema-detail-next{position:absolute;bottom:1rem;z-index:2}.hema-detail-prev{left:1rem}.hema-detail-next{right:1rem}.hema-detail-lightbox figcaption{padding-right:4.5rem;padding-left:4.5rem}}
@media(max-width:760px){.hema-card-stage{height:min(68vh,650px);border-radius:16px}.hema-pair{padding:.8rem;gap:.7rem}.hema-pair>header>div{grid-template-columns:1fr 1fr;gap:.7rem;flex:1;margin-left:1rem}.hema-pair-media{grid-template-columns:minmax(0,.76fr) minmax(0,1fr);gap:.7rem}.hema-slider>footer{padding-top:.7rem}.vibe-concept{display:block;padding:4rem 1.25rem}.vibe-concept>p{margin-top:1.2rem}}
@media(max-width:620px){.category .entry{border-radius:15px}.category .entry-media{aspect-ratio:4/3}.category .entry-meta{padding:1rem}.category .entry h2{font-size:10vw}}

.home-video-backdrop{inset:0;background:#050505;overflow:hidden;contain:paint}.home-video-backdrop video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;transform:translate3d(0,0,0);backface-visibility:hidden;will-change:transform}.home-video-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,5,5,.62),rgba(5,5,5,.08) 56%,rgba(5,5,5,.42)),linear-gradient(0deg,rgba(5,5,5,.62),transparent 48%);pointer-events:none}

/* A compact film-buffer marker: the page remains the subject, not the loader. */
html.home-loading,html.home-loading body{overflow:hidden;overscroll-behavior:none}.home-loader{position:fixed;inset:0;z-index:2000;display:grid;place-items:center;background:#090909;color:#f1efe9;transition:opacity .58s cubic-bezier(.4,0,.2,1),visibility .58s}.home-loader.leaving{opacity:0;visibility:hidden}.home-loader-unit{width:clamp(150px,15vw,210px);animation:homeLoaderIn .5s cubic-bezier(.2,.7,.2,1) both}.home-loader-meta{display:flex;align-items:center;justify-content:space-between;margin-bottom:.65rem;font-size:.54rem;line-height:1;letter-spacing:.14em;color:rgba(241,239,233,.58)}.home-loader-meta>span{font-weight:600}.home-loader-meta strong{display:flex;align-items:baseline;gap:.12rem;font-weight:400;font-variant-numeric:tabular-nums}.home-loader-meta strong i{font-size:.42rem;font-style:normal;color:rgba(241,239,233,.34)}.home-loader-line{height:1px;overflow:hidden;background:rgba(241,239,233,.16)}.home-loader-line i{display:block;width:100%;height:100%;background:#f1efe9;transform:scaleX(0);transform-origin:left center;will-change:transform}.home-loader-unit p{margin:.62rem 0 0;font-size:.5rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(241,239,233,.38)}
@keyframes homeLoaderIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.home-loader{transition-duration:.42s}
.home-loader-status{font-size:.48rem;font-weight:400;letter-spacing:.14em;color:rgba(241,239,233,.48)}
.home-loader-line i{width:38%;transform:translateX(-120%);transform-origin:center;animation:homeLoaderScan 1.35s linear infinite}
@keyframes homeLoaderScan{0%{transform:translateX(-120%)}100%{transform:translateX(360%)}}
@media(max-width:700px){.home-loader-unit{width:148px}.home-loader-meta{font-size:.5rem}.home-loader-unit p{font-size:.46rem}}
@media(prefers-reduced-motion:reduce){.home-loader{transition-duration:.2s}}

/* Hema comparison card: captions belong to their image, so every set shares one alignment system. */
.hema-pair>header{justify-content:flex-start}.hema-pair>header>div{display:none}.hema-pair-media{align-items:stretch}.hema-pair figure{position:relative;border:1px solid rgba(240,237,230,.08);border-radius:14px}.hema-pair figure figcaption{position:absolute;z-index:2;top:.7rem;left:.75rem;padding:.42rem .58rem;border:1px solid rgba(240,237,230,.16);border-radius:999px;background:rgba(13,13,12,.72);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font-size:.55rem;line-height:1;letter-spacing:.1em;text-transform:uppercase;color:rgba(240,237,230,.75)}
@media(max-width:760px){.hema-pair>header>div{display:none}.hema-pair figure{border-radius:10px}.hema-pair figure figcaption{top:.45rem;left:.45rem;padding:.35rem .45rem;font-size:.48rem}}

/* The full key visual leads; the square crop is a smaller supporting proof of resolution. */
.hema-pair-media{grid-template-columns:minmax(0,3fr) minmax(190px,1fr);align-items:stretch}.hema-pair figure{background:#10100f}.hema-pair .hema-poster{height:100%;align-self:stretch}.hema-pair .hema-detail{width:100%;height:auto;aspect-ratio:1;align-self:center}.hema-pair .hema-poster img,.hema-pair .hema-detail img{width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain!important;object-position:center}
@media(max-width:760px){.hema-pair-media{grid-template-columns:minmax(0,2.35fr) minmax(105px,.75fr)}.hema-pair .hema-detail{align-self:center}}

/* Keep the complete source frame visible: intrinsic ratio wins over the card box. */
.hema-pair .hema-poster img,.hema-pair .hema-detail img{display:block;width:auto!important;height:auto!important;max-width:100%;max-height:100%;object-fit:contain!important;object-position:center}

/* Viewport-fit canvas: size the frames from their real ratios instead of stretching wide boxes. */
.hema-card-stage{height:clamp(460px,calc(100svh - var(--nav-h) - 7rem),760px)}.hema-pair-media{display:flex;grid-template-columns:none;align-items:center;justify-content:center;gap:clamp(1rem,2vw,2rem);overflow:visible}.hema-pair .hema-poster{flex:0 1 auto;width:auto;height:100%;max-width:calc(78% - 1rem);aspect-ratio:3/4;align-self:center}.hema-pair .hema-detail{flex:0 1 auto;width:auto;height:42%;max-width:22%;aspect-ratio:1;align-self:center}.hema-pair .hema-poster img,.hema-pair .hema-detail img{width:100%!important;height:100%!important;object-fit:contain!important}
@media(max-width:760px){.hema-card-stage{height:clamp(420px,calc(100svh - var(--nav-h) - 6rem),650px)}.hema-pair-media{gap:.65rem}.hema-pair .hema-poster{max-width:calc(76% - .35rem)}.hema-pair .hema-detail{height:auto;width:24%;max-width:24%;aspect-ratio:1}}

/* Hema: three complete key visuals, with their matching detail crops in one inspection rail. */
.hema-wall{max-width:1500px;margin:0 auto;display:grid;grid-template-columns:minmax(0,3fr) minmax(150px,.78fr);gap:clamp(.8rem,1.5vw,1.5rem);align-items:stretch}.hema-primary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(.65rem,1.2vw,1.2rem)}.hema-primary-grid figure{position:relative;min-width:0;margin:0;aspect-ratio:3/4;display:grid;place-items:center;overflow:hidden;border:1px solid rgba(240,237,230,.1);border-radius:14px;background:#11110f}.hema-primary-grid figure img{display:block;width:100%;height:100%;object-fit:contain}.hema-primary-grid figcaption{position:absolute;z-index:2;top:.7rem;left:.7rem;display:flex;align-items:center;gap:.45rem;padding:.35rem .5rem;border:1px solid rgba(240,237,230,.14);border-radius:999px;background:rgba(12,12,11,.68);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font-size:.54rem;letter-spacing:.09em;color:rgba(240,237,230,.78)}.hema-primary-grid figcaption span{color:#fff}.hema-detail-rail{min-width:0;display:grid;grid-template-rows:auto minmax(0,1fr);padding:.7rem;border:1px solid rgba(240,237,230,.1);border-radius:14px;background:#141413}.hema-detail-rail>header{display:flex;align-items:center;min-height:1.8rem;padding:0 .25rem .55rem;font-size:.54rem;letter-spacing:.11em;color:rgba(240,237,230,.54)}.hema-detail-rail>div{min-height:0;display:grid;grid-template-rows:repeat(3,minmax(0,1fr));gap:.55rem}.hema-detail-rail button{position:relative;min-width:0;min-height:0;overflow:hidden;border:1px solid rgba(240,237,230,.08);border-radius:9px;background:#0d0d0c;transition:border-color .28s ease,transform .32s cubic-bezier(.2,.7,.2,1)}.hema-detail-rail button img{display:block;width:100%;height:100%;object-fit:contain}.hema-detail-rail button span{position:absolute;z-index:2;top:.42rem;left:.42rem;width:1.3rem;height:1.3rem;display:grid;place-items:center;border-radius:50%;background:rgba(8,8,7,.68);font-size:.48rem;letter-spacing:.04em;color:#f0ede6}.hema-detail-rail button:hover,.hema-detail-rail button:focus-visible{border-color:rgba(240,237,230,.68);transform:translateY(-2px);outline:none}.hema-detail-rail button:hover img{transform:scale(1.035)}.hema-detail-rail button img{transition:transform .45s cubic-bezier(.2,.7,.2,1)}
@media(max-width:760px){.hema-wall{grid-template-columns:minmax(0,3fr) minmax(86px,.72fr);gap:.55rem}.hema-primary-grid{gap:.45rem}.hema-primary-grid figure,.hema-detail-rail{border-radius:9px}.hema-primary-grid figcaption{top:.35rem;left:.35rem;padding:.25rem .35rem;font-size:.42rem}.hema-detail-rail{padding:.38rem}.hema-detail-rail>header{min-height:1.3rem;padding:0 .05rem .35rem;font-size:.42rem}.hema-detail-rail>div{gap:.32rem}.hema-detail-rail button{border-radius:5px}.hema-detail-rail button span{top:.22rem;left:.22rem;width:1rem;height:1rem;font-size:.38rem}}

/* The rail has no extra header band: its picture area now starts and ends exactly with the three key visuals. */
.hema-detail-rail{grid-template-rows:minmax(0,1fr)}.hema-detail-rail>header{display:none}.hema-detail-rail>div{height:100%}

/* One shared canvas prevents the detail rail from defining a taller grid row than the key visuals. */
.hema-wall{grid-template-rows:minmax(0,1fr);aspect-ratio:3/1;align-items:stretch}.hema-primary-grid,.hema-detail-rail{height:100%;min-height:0}.hema-primary-grid figure{min-height:0;height:100%;aspect-ratio:auto}.hema-detail-rail>div{min-height:0;height:100%}.hema-detail-rail button{min-height:0}
@media(max-width:760px){.hema-wall{aspect-ratio:3/1}}

/* The enlarged detail is centered against the viewport; controls no longer shift its visual center. */
.hema-detail-lightbox{grid-template-columns:minmax(0,1fr);place-items:center}.hema-detail-lightbox>figure{grid-column:1;grid-row:1}.hema-detail-prev,.hema-detail-next{position:absolute;top:50%;z-index:2;transform:translateY(-50%)}.hema-detail-prev{left:clamp(1rem,4vw,4rem)}.hema-detail-next{right:clamp(1rem,4vw,4rem)}

/* ACloud: one proportion-neutral exhibition stage instead of a long stack of unequal images. */
.acloud-gallery{min-height:0;padding-bottom:clamp(4rem,7vw,7rem)}.acloud-gallery>header{align-items:center}.acloud-gallery>header strong{font-size:.62rem;font-weight:400;letter-spacing:.12em;color:rgba(240,237,230,.42)}.acloud-gallery>header b{font-weight:600;color:#f0ede6}.acloud-viewer{width:min(92vw,1500px);margin:auto}.acloud-stage{width:100%;height:min(78svh,840px);max-width:none;max-height:none;border:1px solid rgba(240,237,230,.11);border-radius:18px;background:#151513;box-shadow:0 2rem 5rem rgba(0,0,0,.24)}.acloud-slide{position:absolute;inset:0;display:none;place-items:center;margin:0;padding:clamp(.75rem,1.5vw,1.4rem);overflow:hidden}.acloud-slide.active{display:grid}.acloud-slide img{display:block;width:auto!important;height:auto!important;max-width:100%;max-height:100%;object-fit:contain!important}.acloud-thumbs{max-width:680px;margin:1rem auto 0;padding:0;grid-template-columns:repeat(4,minmax(0,1fr));gap:.55rem}.acloud-thumbs button{position:relative;height:70px;border:1px solid transparent;border-radius:7px;background:#171716;opacity:.5;transition:opacity .25s ease,border-color .25s ease,transform .3s ease}.acloud-thumbs button.active{border-color:#f0ede6;opacity:1}.acloud-thumbs button:hover{opacity:.86;transform:translateY(-2px)}.acloud-thumbs button img{display:block;width:100%;height:100%;object-fit:contain}.acloud-thumbs button span{position:absolute;z-index:2;left:.36rem;bottom:.32rem;font-size:.48rem;letter-spacing:.1em;color:#f0ede6;text-shadow:0 1px 4px #000}
@media(max-width:700px){.acloud-stage{height:min(64svh,620px);border-radius:12px}.acloud-stage>button{width:2.5rem;height:2.5rem}.acloud-thumbs{gap:.35rem}.acloud-thumbs button{height:54px}}
.stage-track{height:620vh}.stage-track>.about{position:absolute;z-index:8;top:520vh;left:0;width:100%;min-height:100vh;background:linear-gradient(90deg,rgba(5,5,5,.84),rgba(5,5,5,.54) 58%,rgba(5,5,5,.76));color:#f0efe9}.stage-track>.about .timeline div{border-top-color:rgba(255,255,255,.25)}.stage-track>.about .about-copy>p{color:rgba(255,255,255,.78)}.scroll-cue.hidden{opacity:0}.project-float.active h2{transform-origin:left center}.project-float:nth-of-type(even).active h2{transform-origin:right center}
@media(max-width:760px){.stage-track{height:530vh}.stage-track>.about{top:430vh;background:rgba(5,5,5,.76)}}
.wordmark>i{font-style:normal;font-weight:400;color:rgba(240,239,233,.5)}.hero-copy h1>i{display:inline-block;margin-left:.7em;font-size:.15em;font-style:normal;font-weight:500;letter-spacing:.08em;vertical-align:top;transform:translateY(.25em);color:rgba(255,255,255,.66)}
@media(max-width:760px){.wordmark>i{display:none}.hero-copy h1>i{font-size:.18em;margin-left:.5em}}

/* Keep the work index as one complete, non-scrolling exhibition screen. */
html.index-open,html.index-open body{overflow:hidden}
.work-index{height:100dvh;overflow:hidden;display:grid;grid-template-rows:auto minmax(0,1fr);padding:clamp(22px,3.2vh,34px) clamp(20px,3.2vw,48px)}
.index-top{align-items:center;min-height:24px}
.index-links{min-height:0;margin:clamp(24px,5.5vh,64px) 0 0;padding:0;display:grid;grid-template-rows:repeat(4,minmax(0,1fr))}
.index-links a{min-height:0;padding:0;align-items:center;overflow:hidden}
.index-links strong{font-size:clamp(2.4rem,min(6.4vw,8.5vh),6.7rem);line-height:.84;white-space:nowrap;transition:transform .35s cubic-bezier(.2,.7,.2,1)}
.index-links a:hover strong,.index-links a:focus-visible strong{transform:translateX(.18em)}
.index-links i{transition:transform .35s cubic-bezier(.2,.7,.2,1)}
.index-links a:hover i,.index-links a:focus-visible i{transform:translate(.2rem,-.2rem)}
@media(max-height:760px){.work-index{padding-block:18px}.index-links{margin-top:22px}.index-links a{padding:0}.index-links strong{font-size:clamp(2rem,min(5.7vw,7.8vh),4.7rem)}}
@media(max-width:700px){.work-index{height:100dvh;overflow:hidden;padding:20px 18px}.index-links{margin-top:24px;padding:0;grid-template-rows:repeat(4,minmax(0,1fr))}.index-links a{padding:0}.index-links strong{font-size:clamp(2rem,min(10vw,7.8vh),4.2rem);white-space:normal}.index-links span,.index-links i{align-self:center}}

/* AI Photo uses one interruptible 2D card transition; text continues below the visual study. */
.project-page--ai-photo .ai-photo-view{perspective:none}
.project-page--ai-photo .ai-photo-card{transform-style:flat;backface-visibility:hidden;will-change:transform,opacity}
.project-page--ai-photo .ai-photo-output figcaption{backdrop-filter:none}
.project-page--ai-photo .case-text-band{border-top:1px solid rgba(240,237,230,.12)}
.project-page--ai-photo .ai-photo-intro>span,.project-page--ai-photo .ai-photo-intro>h2,.project-page--ai-photo .ai-photo-intro>p,.project-page--ai-photo .ai-photo-card-head>*,.project-page--ai-photo figcaption,.project-page--ai-photo .ai-photo-controls>*,.project-page--ai-photo .case-text-band article>*{will-change:transform,opacity}
.project-cover-copy>h1{margin-top:0}
.category--commercial .media-frame-blur,.category--commercial .media-frame:after{display:none}.category--commercial .media-frame>img{object-fit:cover!important;padding:0}
.category--commercial .entry[href="#/project/acloud"] .media-frame>img{object-position:center 42%}

/* Rebuilt project presentation: crisp covers, image-led sequences, one motion system. */
.category--photography .media-frame-blur,.category--photography .media-frame:after{display:none}.category--photography .media-frame>img{object-fit:cover!important;padding:0}
.project-page--editorial .project-cover--contained>img{object-fit:cover;padding:0;background:#111}
.artist-statement{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:2rem;padding:clamp(4rem,7vw,7rem) 5vw;background:#e9e6df;color:#111}
.artist-statement>.case-label{grid-column:1/span 3}.artist-statement>p:last-child{grid-column:4/-1;max-width:64rem;margin:0;white-space:pre-line;font-size:clamp(1rem,1.35vw,1.28rem);line-height:1.85;color:rgba(17,17,17,.78)}
.pipeline-panel{padding:clamp(4rem,7vw,7rem) 4vw;background:#151513}.pipeline-panel>header{display:flex;align-items:center;justify-content:space-between;max-width:1500px;margin:0 auto 2rem;color:rgba(240,237,230,.5)}.pipeline-panel>header span{font-size:.65rem;letter-spacing:.13em}.pipeline-panel>header strong{font-size:.72rem;font-weight:500;letter-spacing:.08em}.pipeline-panel figure{max-width:1500px;margin:0 auto;overflow:hidden;background:#eceae4}.pipeline-panel img{width:100%;height:auto}
.hema-outdoor{position:relative;min-height:min(76vh,820px);display:grid;place-items:stretch}.hema-outdoor>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.hema-copy-overlay{position:relative;z-index:2;display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,6vw,7rem);align-items:end;margin:0;padding:clamp(2rem,5vw,5rem);background:linear-gradient(0deg,rgba(8,8,8,.88),rgba(8,8,8,.16) 78%);color:#f0ede6}.hema-copy-overlay article span{display:block;margin-bottom:1rem;font-size:.64rem;letter-spacing:.13em;color:rgba(255,255,255,.55)}.hema-copy-overlay article p{max-width:42rem;margin:0;font-size:clamp(.95rem,1.2vw,1.18rem);line-height:1.78;color:rgba(255,255,255,.84)}
.star-panel[data-star-panel="storyboard"]{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) 108px;gap:1rem}.star-story-main{position:relative}.star-story-main img{object-fit:contain}.star-story-count{position:absolute;right:1rem;bottom:1rem;z-index:2;padding:.45rem .65rem;background:rgba(5,5,5,.72);font-size:.62rem;letter-spacing:.12em}.star-story-thumbs{display:flex;gap:.55rem;overflow-x:auto;overflow-y:hidden;padding:0 0 .5rem;scrollbar-width:thin}.star-story-thumbs button{position:relative;flex:0 0 64px;height:96px;border:1px solid transparent;background:#eee}.star-story-thumbs button>span{position:absolute;z-index:2;left:.3rem;top:.25rem;padding:.12rem .2rem;background:rgba(0,0,0,.62);font-size:.52rem;color:#fff}.star-story-thumbs img{object-fit:cover}.star-character{grid-template-columns:1fr 1fr;gap:1rem}.star-character figure{min-width:0}.star-character img,.star-modeling img{object-fit:contain}
.acloud-gallery{min-height:100vh;padding:clamp(4rem,7vw,7rem) 4vw 5rem;background:#0d0d0c}.acloud-gallery>header{display:flex;justify-content:space-between;max-width:1500px;margin:0 auto 2rem;font-size:.65rem;letter-spacing:.13em;color:rgba(240,237,230,.55)}.acloud-gallery>header strong,.acloud-gallery>header b{font-weight:500}.acloud-stage{position:relative;height:min(76vh,820px);max-width:1500px;margin:auto;display:grid;place-items:center;overflow:hidden;outline:none;background:#151513;touch-action:pan-y}.acloud-stage>img{width:100%;height:100%;object-fit:contain}.acloud-stage>button{position:absolute;top:50%;width:3.2rem;height:3.2rem;border-radius:50%;background:rgba(8,8,8,.68);transform:translateY(-50%);font-size:1.2rem}.acloud-prev{left:1rem}.acloud-next{right:1rem}.acloud-thumbs{display:grid;grid-template-columns:repeat(4,1fr);gap:.65rem;max-width:900px;margin:1rem auto 0}.acloud-thumbs button{height:76px;overflow:hidden;border:1px solid transparent;background:#171716}.acloud-thumbs button.active{border-color:#f0ede6}.acloud-thumbs img{width:100%;height:100%;object-fit:cover}
.photo-editorial{padding-top:clamp(4rem,7vw,7rem)}.photo-story{margin-bottom:clamp(6rem,10vw,11rem)}.photo-story-title{grid-template-columns:2fr 10fr}.photo-mosaic{grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(.8rem,1.6vw,1.5rem);align-items:start}.photo-tile:nth-child(n){grid-column:auto;margin:0;overflow:hidden}.photo-tile img{transition:filter .35s ease}.photo-mosaic--2 .photo-tile{grid-column:span 6}.photo-mosaic--3 .photo-tile:first-child{grid-column:1/-1}.photo-mosaic--3 .photo-tile:nth-child(n+2){grid-column:span 6}.photo-mosaic--5 .photo-tile:first-child{grid-column:1/-1}.photo-mosaic--5 .photo-tile:nth-child(n+2){grid-column:span 6}.photo-mosaic--6 .photo-tile:nth-child(1),.photo-mosaic--6 .photo-tile:nth-child(2){grid-column:span 6}.photo-mosaic--6 .photo-tile:nth-child(3){grid-column:2/span 4}.photo-mosaic--6 .photo-tile:nth-child(4){grid-column:6/span 7}.photo-mosaic--6 .photo-tile:nth-child(5),.photo-mosaic--6 .photo-tile:nth-child(6){grid-column:span 6}.photo-tile:hover img{filter:brightness(1.035)}
@media(max-width:700px){.artist-statement{grid-template-columns:1fr;padding:3.5rem 1.25rem;gap:1.5rem}.artist-statement>.case-label,.artist-statement>p:last-child{grid-column:1}.hema-copy-overlay{grid-template-columns:1fr;align-content:end}.star-character{grid-template-columns:1fr;grid-template-rows:1fr 1fr}.acloud-stage{height:62vh}.photo-mosaic--2 .photo-tile,.photo-mosaic--3 .photo-tile:first-child,.photo-mosaic--3 .photo-tile:nth-child(n+2),.photo-mosaic--5 .photo-tile:first-child,.photo-mosaic--5 .photo-tile:nth-child(n+2),.photo-mosaic--6 .photo-tile:nth-child(n){grid-column:1/-1}}

/* Complete-work presentation: no crops, no shared fixed-ratio stage. */
.category--photography .entry[href="#/project/gap"] .media-frame>img,.project-page--gap .project-cover>img{object-position:center 31%}
.category--photography .entry[href="#/project/cracks"] .media-frame>img,.project-page--cracks .project-cover>img{object-position:center center}
.hema-copy-overlay{place-items:start;align-content:center;background:rgba(8,8,8,.5);text-align:left}
.hema-copy-overlay article{width:100%;padding:0;background:transparent}
.hema-copy-overlay article p{font-size:clamp(1.08rem,1.5vw,1.46rem);line-height:1.72}

.starbucks-studio{padding:clamp(4rem,7vw,7rem) 3vw;background:#d8d4cb;color:#151514}
.star-cinema-card{width:min(92vw,1500px);height:min(72vh,740px);min-height:610px;margin:auto;display:grid;grid-template-columns:minmax(0,1.38fr) minmax(400px,.82fr);overflow:hidden;border-radius:20px;background:#e9e6df;box-shadow:0 2.8rem 7rem rgba(58,49,38,.2);will-change:transform,opacity}
.star-final-film,.star-preproduction{min-width:0;min-height:0;display:grid;grid-template-rows:2.25rem minmax(0,1fr)}
.star-final-film{padding:1.2rem;background:#10100f}.star-final-film>header,.star-workbench-label{display:flex;align-items:flex-start}.star-final-film>header span{font-size:.64rem;letter-spacing:.13em;color:rgba(240,237,230,.54)}.star-workbench-label span{font-size:.64rem;letter-spacing:.13em;color:rgba(21,21,20,.48)}
.star-film-screen{min-height:0;display:grid;place-items:center;overflow:hidden;background:#050505}.star-film-screen video{display:block;width:100%;height:100%;object-fit:contain;background:#050505}
.star-preproduction{padding:1.2rem 1.2rem 1rem;grid-template-rows:2.25rem minmax(0,1fr) auto;border-left:1px solid rgba(21,21,20,.12)}.star-prep-stage{position:relative;min-height:0;display:grid;overflow:hidden;background:#f3f1eb}.star-prep-slide{display:none;grid-area:1/1;min-width:0;min-height:0;overflow:hidden}.star-prep-slide.active{display:grid}
.star-storyboard,.star-assets,.star-scenes{grid-template-rows:3.1rem minmax(0,1fr)}.star-storyboard{justify-items:center;background:#dedbd3}.star-storyboard>header,.star-assets>header,.star-scenes>header{width:100%;display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.75rem 1rem;border-bottom:1px solid rgba(21,21,20,.1);color:rgba(21,21,20,.68)}.star-storyboard>header>span,.star-assets>header>span,.star-scenes>header>span{font-size:.59rem;letter-spacing:.08em;white-space:nowrap}
.star-story-controls{display:flex;align-items:center;gap:.35rem}.star-story-controls button{width:1.45rem;height:1.45rem;border-radius:50%;color:#151514;font-size:.68rem;transition:background .25s ease,transform .25s ease}.star-story-controls button:hover,.star-story-controls button:focus-visible{background:rgba(21,21,20,.09);outline:none;transform:scale(1.06)}.star-story-controls .star-story-count{position:static;min-width:4.1rem;padding:0;background:transparent;text-align:center;font-size:.52rem;font-weight:500;letter-spacing:.08em;color:rgba(21,21,20,.52)}
.star-story-main{min-height:0;height:100%;width:auto;max-width:100%;aspect-ratio:9/16;margin:0;justify-self:center;display:grid;place-items:center;overflow:hidden;background:#fff}.star-story-main img{display:block;width:100%;height:100%;object-fit:contain;will-change:transform,opacity}
.star-asset-board{min-height:0;padding:.65rem;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:minmax(0,1.08fr) minmax(0,.92fr);gap:.55rem;background:#dedbd3}.star-asset-board figure{min-width:0;min-height:0;margin:0;display:grid;place-items:center;overflow:hidden;background:#fff}.star-asset-board figure:first-child{grid-column:1/-1}.star-asset-board img{display:block;width:100%;height:100%;object-fit:contain}
.star-scene-pair{min-height:0;padding:.65rem;display:grid;grid-template-rows:1fr 1fr;gap:.55rem;background:#dedbd3}.star-scene-pair figure{min-width:0;min-height:0;margin:0;display:grid;place-items:center;overflow:hidden;background:#fff}.star-scene-pair img{display:block;width:100%;height:100%;object-fit:contain}
.starbucks-studio .star-prep-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:.55rem;padding-top:.85rem}.starbucks-studio .star-prep-tabs button{min-width:0;padding:.65rem .1rem .5rem;display:flex;align-items:center;gap:.55rem;border:0;border-top:1px solid rgba(21,21,20,.14);color:rgba(21,21,20,.38);text-align:left;transition:color .3s ease,border-color .3s ease,transform .3s ease}.starbucks-studio .star-prep-tabs button i{font-style:normal;font-size:.5rem;letter-spacing:.08em}.starbucks-studio .star-prep-tabs button span{overflow:hidden;font-size:.57rem;letter-spacing:.04em;white-space:nowrap;text-overflow:ellipsis}.starbucks-studio .star-prep-tabs button:hover,.starbucks-studio .star-prep-tabs button:focus-visible{color:rgba(21,21,20,.72);outline:none}.starbucks-studio .star-prep-tabs button.active{border-color:#151514;color:#151514;transform:translateY(-2px)}

.acloud-gallery{min-height:0}.acloud-gallery>header{max-width:1500px}.acloud-complete-list{max-width:1500px;margin:auto;display:grid;gap:clamp(1.5rem,3vw,3.2rem)}
.acloud-complete-list figure{position:relative;margin:0;background:#171716}.acloud-complete-list figure>span{position:absolute;z-index:2;top:.9rem;left:.9rem;padding:.35rem .5rem;background:rgba(8,8,8,.66);font-size:.6rem;letter-spacing:.12em;color:#f0ede6}.acloud-complete-list img{display:block;width:100%;height:auto;max-height:none;object-fit:contain}

.photo-story--continuous{margin-bottom:clamp(4rem,7vw,7rem)}
.photo-mosaic--10 .photo-tile{grid-column:span 6}.photo-mosaic--10 .photo-tile:nth-child(1),.photo-mosaic--10 .photo-tile:nth-child(6){grid-column:1/-1}
.photo-series-tabs{display:flex;justify-content:flex-end;gap:1rem;margin:0 0 2rem}.photo-series-tabs button{padding:.55rem 0;border:0;border-bottom:1px solid transparent;border-radius:0;background:transparent;color:rgba(17,17,17,.45);font-size:.76rem;letter-spacing:.08em}.photo-series-tabs button.active{border-color:#111;color:#111}
.photo-series-panels{position:relative;display:grid}.photo-series-panel{display:none;grid-area:1/1;margin-bottom:clamp(5rem,8vw,8rem)}.photo-series-panel.active{display:block}

@media(max-width:1000px){
  .star-cinema-card{width:94vw;height:auto;min-height:0;grid-template-columns:1fr}.star-final-film{min-height:58vh}.star-preproduction{min-height:680px;border-left:0;border-top:1px solid rgba(21,21,20,.12)}
}
@media(max-width:700px){
  .hema-copy-overlay{grid-template-columns:1fr;gap:1rem}.hema-copy-overlay article{padding:1rem}.hema-copy-overlay article p{font-size:1rem}
  .starbucks-studio{padding:3.5rem 1rem}.star-cinema-card{width:100%;border-radius:14px}.star-final-film{min-height:48vh}.star-preproduction{min-height:620px}.star-prep-tabs button{gap:.3rem}.star-prep-tabs button i{display:none}.star-scenes .star-scene-pair{grid-template-rows:1fr 1fr}
  .acloud-gallery{padding-right:1rem;padding-left:1rem}.photo-mosaic--10 .photo-tile:nth-child(n){grid-column:1/-1}.photo-series-tabs{justify-content:flex-start;overflow-x:auto}
}

/* AI films — one central screen with two neighbouring films kept in view. */
.category--experiments .entry[href="#/project/ai-films"] .media-frame-blur,.category--experiments .entry[href="#/project/ai-films"] .media-frame:after{display:none}
.category--experiments .entry[href="#/project/ai-films"] .media-frame>img,.project-page--films .project-cover--contained>img{object-fit:cover!important;padding:0}
.film-cinema{min-height:100vh;padding:clamp(4rem,7vw,7rem) 0 3rem;overflow:hidden;background:#090909;color:#f0ede6}
.film-cinema>header{position:relative;z-index:8;max-width:1500px;margin:0 auto 1rem;padding:0 4vw}
.film-cinema>header span{font-size:.66rem;letter-spacing:.14em;color:rgba(240,237,230,.62)}.film-cinema>header p{margin:.7rem 0 0;font-size:.72rem;color:rgba(240,237,230,.42)}
.film-footer{position:relative;z-index:8;max-width:1500px;margin:.7rem auto 0;padding:0 4vw;display:flex;align-items:center;justify-content:center;gap:1.25rem}.film-cinema-controls{display:flex;align-items:center;gap:.42rem;padding:.22rem;border:1px solid rgba(240,237,230,.12);border-radius:999px;background:rgba(18,18,18,.72)}.film-cinema-controls button{width:1.85rem;height:1.85rem;border:0;border-radius:50%;background:transparent;color:rgba(240,237,230,.7);font-size:.78rem;cursor:pointer;transition:background .25s ease,color .25s ease,transform .25s ease}.film-cinema-controls button:hover,.film-cinema-controls button:focus-visible{background:rgba(240,237,230,.1);color:#f0ede6;outline:none;transform:scale(1.05)}.film-cinema-controls strong{min-width:3.7rem;text-align:center;font-size:.56rem;font-weight:500;letter-spacing:.1em;color:rgba(240,237,230,.38)}.film-cinema-controls strong i{margin:0 .35rem;font-style:normal;color:rgba(240,237,230,.2)}.film-cinema-controls b{color:#f0ede6;font-weight:500}
.film-viewport{position:relative;height:min(78vh,850px);overflow:hidden;outline:none;cursor:grab;touch-action:pan-y}.film-viewport.is-dragging{cursor:grabbing}.film-track{position:absolute;inset:0}
.film-card{position:absolute;top:50%;left:50%;width:min(72vw,1160px);height:min(68vh,720px);display:grid;grid-template-columns:minmax(0,1.4fr) minmax(320px,.8fr);overflow:hidden;border-radius:20px;background:#e9e6df;color:#111;box-shadow:0 2.8rem 7rem rgba(0,0,0,.48);transform-origin:center;will-change:transform,opacity;cursor:pointer}
.film-card.is-active{cursor:default}.film-screen{min-width:0;min-height:0;display:grid;place-items:center;background:#000}.film-screen video{display:block;width:100%;height:100%;object-fit:contain;background:#000}.film-copy{min-width:0;padding:clamp(1.5rem,3vw,3.5rem);display:grid;grid-template-rows:1.1rem 5.6rem 2.2rem minmax(0,1fr);align-content:stretch;overflow:hidden;will-change:transform,opacity}.film-index{align-self:start;font-size:.62rem;letter-spacing:.14em;color:rgba(17,17,17,.42)}.film-copy h2{align-self:end;max-width:100%;margin:0 0 1.15rem;overflow:hidden;white-space:nowrap;text-overflow:clip;font-size:clamp(1.4rem,2.1vw,1.9rem);font-weight:500;line-height:1;letter-spacing:-.045em}.film-subline{min-width:0;display:flex;align-items:center;justify-content:space-between;gap:.75rem;border-top:1px solid rgba(17,17,17,.15);padding-top:.65rem}.film-subline strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.7rem;font-weight:500;letter-spacing:.06em}.film-subline em{flex:0 0 auto;padding:.28rem .48rem;border:1px solid rgba(17,17,17,.25);border-radius:999px;font-size:.55rem;font-style:normal;letter-spacing:.12em;color:rgba(17,17,17,.62)}.film-copy p{min-height:0;margin:1.15rem 0 0;overflow-y:auto;white-space:pre-line;font-size:clamp(.84rem,1vw,1rem);line-height:1.72;color:rgba(17,17,17,.7);scrollbar-width:thin;scrollbar-color:rgba(17,17,17,.2) transparent}
.film-dots{display:flex;align-items:center;justify-content:center;gap:.38rem}.film-dots button{width:.3rem;height:.3rem;padding:0;border:0;border-radius:50%;background:rgba(240,237,230,.25);cursor:pointer;transition:width .3s ease,background .3s ease}.film-dots button.active{width:1rem;border-radius:1rem;background:rgba(240,237,230,.86)}
@media(max-width:900px){.film-card{width:86vw;grid-template-columns:minmax(0,1.2fr) minmax(260px,.8fr)}.film-copy{padding:1.5rem}}
@media(max-width:700px){.film-cinema>header{padding:0 1rem}.film-cinema>header p{display:none}.film-footer{margin-top:.4rem;padding:0 1rem;gap:.8rem}.film-cinema-controls{gap:.25rem}.film-cinema-controls button{width:1.75rem;height:1.75rem}.film-viewport{height:78vh}.film-card{width:88vw;height:72vh;grid-template-columns:1fr;grid-template-rows:minmax(0,52%) minmax(0,48%);border-radius:14px}.film-copy{padding:1.15rem;grid-template-rows:.8rem 3.7rem 1.8rem minmax(0,1fr)}.film-copy h2{margin:0 0 .6rem;font-size:clamp(1.55rem,6.8vw,2rem)}.film-subline{padding-top:.4rem}.film-subline strong{font-size:.62rem}.film-subline em{font-size:.48rem}.film-copy p{margin-top:.7rem;font-size:.76rem;line-height:1.52}}

/* Model Gem — product intelligence presented as a focused evaluation console. */
.category--bytedance .entry[href="#/project/model-gem"] .media-frame-blur,.category--bytedance .entry[href="#/project/model-gem"] .media-frame:after{display:none}.category--bytedance .entry[href="#/project/model-gem"] .media-frame>img{object-fit:cover!important;padding:0}
.project-page--model-gem .project-cover{background:#0b0b12}.project-page--model-gem .project-cover--contained>img{object-fit:contain;padding:0;background:#0b0b12}.project-page--model-gem .project-cover:after,.project-page--model-gem .project-cover-copy{display:none}
.model-gem-pipeline{padding:clamp(4rem,7vw,7rem) 4vw clamp(5rem,8vw,9rem);background:#0b0b12;color:#f0efe9}.model-gem-pipeline>header,.model-gem-browser>header{max-width:1500px;margin:0 auto 2rem;display:flex;align-items:flex-end;justify-content:space-between;gap:2rem}.model-gem-pipeline>header span,.model-gem-browser>header span,.model-gem-production>span{font-size:.65rem;letter-spacing:.14em;color:rgba(240,239,233,.5)}.model-gem-pipeline>header strong,.model-gem-browser>header>strong{font-size:.68rem;font-weight:500;letter-spacing:.1em;color:rgba(240,239,233,.62)}
.model-gem-pipeline-list{max-width:1500px;margin:auto;display:grid;gap:clamp(1.2rem,2vw,2rem)}.model-gem-pipeline-list figure{position:relative;margin:0;overflow:hidden;border:1px solid rgba(240,239,233,.1);border-radius:18px;background:#111119}.model-gem-pipeline-list figure>span{position:absolute;z-index:2;top:1rem;left:1rem;padding:.35rem .5rem;border:1px solid rgba(240,239,233,.16);border-radius:999px;background:rgba(8,8,12,.72);font-size:.55rem;letter-spacing:.14em;color:rgba(240,239,233,.72)}.model-gem-pipeline-list img{width:100%;height:auto}
.project-page--model-gem .case-lead{padding-block:clamp(4rem,6vw,6.5rem)}.project-page--model-gem .case-overview{max-width:56ch;font-size:clamp(1.2rem,1.9vw,2.3rem)}
.model-gem-browser{padding:clamp(5rem,8vw,8rem) 4vw;background:#09090d;color:#f0efe9}.model-gem-browser>header>div p{margin:.65rem 0 0;font-size:.7rem;color:rgba(240,239,233,.4)}.model-gem-browser>header>strong{min-width:5rem;text-align:right}.model-gem-browser>header>strong b{font-weight:500;color:#d7ef48}
.model-gem-carousel{max-width:1460px;margin:auto;display:grid;grid-template-columns:minmax(72px,.16fr) minmax(0,1fr) minmax(72px,.16fr);gap:clamp(.8rem,1.5vw,1.5rem);align-items:stretch}.model-gem-stage{position:relative;width:100%;max-width:1080px;aspect-ratio:2978/1718;justify-self:center;overflow:hidden;outline:none;border:1px solid rgba(240,239,233,.11);border-radius:18px;background:#15161c;box-shadow:0 2.8rem 7rem rgba(0,0,0,.32);cursor:grab;touch-action:pan-y}.model-gem-stage.is-dragging{cursor:grabbing}.model-gem-track{position:absolute;inset:0}.model-gem-slide{position:absolute;inset:0;margin:0;display:none;place-items:center;will-change:transform,opacity}.model-gem-slide.active{display:grid}.model-gem-slide img{width:100%;height:100%;object-fit:contain;user-select:none}.model-gem-peek{position:relative;height:72%;align-self:center;overflow:hidden;border:1px solid rgba(240,239,233,.08);border-radius:14px;background:#15161c;color:#f0efe9;opacity:.44;transition:opacity .3s ease,transform .4s cubic-bezier(.2,.7,.2,1),border-color .3s ease}.model-gem-peek img{width:100%;height:100%;object-fit:cover;filter:brightness(.68);transition:filter .3s ease,transform .55s cubic-bezier(.2,.7,.2,1)}.model-gem-prev img{object-position:right center}.model-gem-next img{object-position:left center}.model-gem-peek span{position:absolute;left:50%;bottom:1rem;width:2rem;height:2rem;display:grid;place-items:center;border:1px solid rgba(240,239,233,.2);border-radius:50%;background:rgba(8,8,12,.72);font-size:.72rem;transform:translateX(-50%)}.model-gem-peek:hover,.model-gem-peek:focus-visible{opacity:.86;border-color:rgba(215,239,72,.4);outline:none}.model-gem-peek:hover img,.model-gem-peek:focus-visible img{filter:brightness(.9);transform:scale(1.025)}.model-gem-prev:hover{transform:translateX(-5px)}.model-gem-next:hover{transform:translateX(5px)}
.model-gem-browser>footer{max-width:1080px;margin:1.2rem auto 0}.model-gem-progress{height:1px;overflow:hidden;background:rgba(240,239,233,.12)}.model-gem-progress-fill{display:block;width:100%;height:100%;background:#d7ef48;transform:scaleX(.1);transform-origin:left center;will-change:transform}.model-gem-browser>footer nav{display:grid;grid-template-columns:repeat(10,1fr);margin-top:.65rem}.model-gem-browser>footer nav button{padding:.45rem 0;text-align:left;font-size:.54rem;letter-spacing:.1em;color:rgba(240,239,233,.3);transition:color .25s ease,transform .25s ease}.model-gem-browser>footer nav button:hover,.model-gem-browser>footer nav button:focus-visible{color:rgba(240,239,233,.75);outline:none}.model-gem-browser>footer nav button.active{color:#d7ef48;transform:translateY(-2px)}
.model-gem-production{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:2rem;padding:clamp(4rem,7vw,7rem) 5vw;background:#e9e6df;color:#121212}.model-gem-production>span{grid-column:1/span 3;color:rgba(18,18,18,.5)}.model-gem-production>p{grid-column:4/-1;max-width:56ch;margin:0;font-size:clamp(1.15rem,1.75vw,2rem);line-height:1.55;letter-spacing:-.02em;color:rgba(18,18,18,.82)}
.model-gem-demo{padding:clamp(4rem,7vw,7rem) 5vw clamp(5rem,9vw,9rem);display:grid;justify-items:center;background:#0b0b12;color:#f0efe9}.model-gem-demo>span{margin-bottom:2rem;font-size:.62rem;letter-spacing:.14em;color:rgba(240,239,233,.42)}.model-gem-demo-link{min-width:min(82vw,19rem);padding:1rem 1.2rem;display:flex;align-items:center;justify-content:space-between;border:1px solid rgba(240,239,233,.25);border-radius:999px;transition:background .3s ease,border-color .3s ease,color .3s ease,transform .35s cubic-bezier(.2,.7,.2,1)}.model-gem-demo-link strong{font-size:.9rem;font-weight:500;letter-spacing:.04em}.model-gem-demo-link i{font-style:normal;color:#d7ef48}.model-gem-demo-link:not([aria-disabled="true"]):hover,.model-gem-demo-link:not([aria-disabled="true"]):focus-visible{border-color:#d7ef48;background:#d7ef48;color:#111;outline:none;transform:translateY(-3px)}.model-gem-demo-link:not([aria-disabled="true"]):hover i{color:#111}.model-gem-demo-link[aria-disabled="true"]{opacity:.46;cursor:not-allowed}.model-gem-demo small{margin-top:.8rem;font-size:.62rem;letter-spacing:.08em;color:rgba(240,239,233,.42)}
@media(max-width:700px){.model-gem-pipeline,.model-gem-browser{padding-right:1rem;padding-left:1rem}.model-gem-pipeline>header,.model-gem-browser>header{align-items:flex-start;flex-direction:column;gap:.65rem}.model-gem-pipeline-list figure{border-radius:10px}.model-gem-carousel{grid-template-columns:2rem minmax(0,1fr) 2rem;gap:.35rem}.model-gem-stage{border-radius:10px}.model-gem-peek{height:100%;border:0;border-radius:0;background:transparent;opacity:.72}.model-gem-peek img{display:none}.model-gem-peek span{left:50%;bottom:auto;top:50%;width:1.8rem;height:1.8rem;transform:translate(-50%,-50%)}.model-gem-prev:hover,.model-gem-next:hover{transform:none}.model-gem-browser>footer nav button{text-align:center}.model-gem-production{grid-template-columns:1fr;padding:3.5rem 1.25rem;gap:1.4rem}.model-gem-production>span,.model-gem-production>p{grid-column:1}.model-gem-demo{padding-right:1.25rem;padding-left:1.25rem}}
.model-gem-browser .model-gem-demo{padding:clamp(2rem,3vw,3rem) 0 0;background:transparent}
.model-gem-browser .model-gem-demo-link{justify-content:center;text-align:center}.model-gem-browser .model-gem-demo-link i{display:none}

/* Final ACloud stage rules — kept last so legacy project styles cannot crop or reflow the images. */
.acloud-gallery{min-height:0;padding-bottom:clamp(4rem,7vw,7rem)}.acloud-gallery>header{align-items:center}.acloud-gallery>header strong{font-size:.62rem;font-weight:400;letter-spacing:.12em;color:rgba(240,237,230,.42)}.acloud-gallery>header b{font-weight:600;color:#f0ede6}.acloud-viewer{width:min(92vw,1500px);margin:auto;display:block}.acloud-stage{position:relative;width:100%;height:min(78svh,840px);max-width:none;max-height:none;margin:0;display:grid;place-items:center;overflow:hidden;outline:none;border:1px solid rgba(240,237,230,.11);border-radius:18px;background:#151513;box-shadow:0 2rem 5rem rgba(0,0,0,.24)}.acloud-slide{position:absolute;inset:0;display:none;place-items:center;margin:0;padding:clamp(.75rem,1.5vw,1.4rem);overflow:hidden}.acloud-slide.active{display:grid}.acloud-slide img{display:block;width:auto!important;height:auto!important;max-width:100%!important;max-height:100%!important;object-fit:contain!important}.acloud-thumbs{max-width:680px;margin:1rem auto 0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.55rem}.acloud-thumbs button{position:relative;height:70px;overflow:hidden;border:1px solid transparent;border-radius:7px;background:#171716;opacity:.5;transition:opacity .25s ease,border-color .25s ease,transform .3s ease}.acloud-thumbs button.active{border-color:#f0ede6;opacity:1}.acloud-thumbs button:hover{opacity:.86;transform:translateY(-2px)}.acloud-thumbs button img{display:block;width:100%;height:100%;object-fit:contain!important}.acloud-thumbs button span{position:absolute;z-index:2;left:.36rem;bottom:.32rem;font-size:.48rem;letter-spacing:.1em;color:#f0ede6;text-shadow:0 1px 4px #000}
@media(max-width:700px){.acloud-viewer{width:94vw}.acloud-stage{height:min(70svh,680px);border-radius:12px}.acloud-thumbs{gap:.35rem}.acloud-thumbs button{height:54px}}

/* Force a true contain layout inside the fixed ACloud exhibition stage.
   This deliberately overrides the older gallery rules above. */
.project-page--acloud .acloud-stage .acloud-slide{
  min-width:0;
  min-height:0;
  box-sizing:border-box;
  padding:clamp(.75rem,1.5vw,1.4rem);
  overflow:hidden;
}
.project-page--acloud .acloud-stage .acloud-slide>img{
  display:block;
  width:100%!important;
  height:100%!important;
  min-width:0!important;
  min-height:0!important;
  max-width:none!important;
  max-height:none!important;
  object-fit:contain!important;
  object-position:center center!important;
}

/* Photography: one calm, proportion-neutral frame for every series. */
.project-page--editorial .photo-exhibition{min-height:0;padding:clamp(4rem,7vw,7rem) 4vw clamp(5rem,8vw,8rem);background:#ece9e2;color:#141413}.photo-exhibition>header{width:min(92vw,1500px);margin:0 auto 1.25rem;display:flex;justify-content:space-between;align-items:center;font-size:.63rem;letter-spacing:.13em;color:rgba(20,20,19,.48)}.photo-exhibition>header strong{font-weight:400}.photo-exhibition>header b{font-weight:600;color:#141413}.photo-exhibition>header em{font-style:normal}.photo-exhibition .photo-series-tabs{width:min(92vw,1500px);margin:0 auto 1rem;justify-content:flex-start;gap:1.2rem}.photo-exhibition .photo-series-tabs button{padding:.48rem 0;border:0;border-bottom:1px solid transparent;border-radius:0;background:transparent;color:rgba(20,20,19,.42);font-size:.7rem;letter-spacing:.08em}.photo-exhibition .photo-series-tabs button.active{border-color:#141413;background:transparent;color:#141413}.photo-exhibit-viewer{width:min(92vw,1500px);margin:auto}.photo-exhibit-stage{position:relative;width:100%;height:min(74svh,840px);display:grid;place-items:center;overflow:hidden;outline:none;border:1px solid rgba(20,20,19,.14);border-radius:18px;background:#171716;box-shadow:0 1.8rem 4.5rem rgba(24,21,17,.16)}.photo-exhibit-slide{position:absolute;inset:0;display:none;place-items:center;min-width:0;min-height:0;margin:0;padding:clamp(.75rem,1.5vw,1.4rem);overflow:hidden;cursor:zoom-in}.photo-exhibit-slide.active{display:grid}.photo-exhibit-slide>img{display:block;width:100%!important;height:100%!important;min-width:0!important;min-height:0!important;max-width:none!important;max-height:none!important;object-fit:contain!important;object-position:center center!important}.photo-exhibit-thumbs{width:min(92vw,1500px);margin:1rem auto 0;display:flex;justify-content:center;gap:.55rem;overflow-x:auto;padding:0 0 .45rem;scrollbar-width:thin}.photo-exhibit-thumbs button{position:relative;flex:0 0 68px;height:58px;overflow:hidden;border:1px solid transparent;border-radius:7px;background:#171716;opacity:.48;transition:opacity .25s ease,border-color .25s ease,transform .3s ease}.photo-exhibit-thumbs button.active{border-color:#141413;opacity:1}.photo-exhibit-thumbs button:hover{opacity:.82;transform:translateY(-2px)}.photo-exhibit-thumbs button img{display:block;width:100%;height:100%;object-fit:contain!important}.photo-exhibit-thumbs button span{position:absolute;z-index:2;left:.32rem;bottom:.25rem;padding:.1rem .16rem;background:rgba(236,233,226,.75);font-size:.48rem;letter-spacing:.08em;color:#141413}.photo-lightbox{z-index:1000}.photo-lightbox img{display:block;width:auto;max-width:92vw;max-height:88svh;height:auto;object-fit:contain}
@media(max-width:700px){.project-page--editorial .photo-exhibition{padding-right:1rem;padding-left:1rem}.photo-exhibition>header,.photo-exhibition .photo-series-tabs,.photo-exhibit-viewer,.photo-exhibit-thumbs{width:100%}.photo-exhibit-stage{height:min(64svh,680px);border-radius:12px}.photo-exhibit-thumbs{justify-content:flex-start}.photo-exhibit-thumbs button{flex-basis:58px;height:50px}}

/* Photography contact sheets: direct, aligned and intentionally quiet. */
.project-page--editorial .artist-statement{background:#0c0c0b;color:#f0ede6}.project-page--editorial .artist-statement>p:last-child{color:rgba(240,237,230,.76)}.project-page--editorial .photo-wall-editorial{min-height:0;padding:clamp(3.5rem,6vw,6rem) 4vw clamp(5rem,8vw,8rem);background:#0c0c0b;color:#f0ede6}.photo-wall-editorial>header{width:min(92vw,1500px);margin:0 auto 2rem;font-size:.63rem;letter-spacing:.13em;color:rgba(240,237,230,.48)}.photo-wall-group{width:min(92vw,1500px);margin:0 auto clamp(2.2rem,4vw,4rem)}.photo-wall-group>header{min-height:1.35rem;margin:0 0 .72rem;border-bottom:1px solid rgba(240,237,230,.16);font-size:.68rem;letter-spacing:.1em;color:rgba(240,237,230,.58)}.photo-wall{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(.55rem,1vw,1rem);align-items:stretch}.photo-wall--2{grid-template-columns:repeat(2,minmax(0,1fr))}.photo-wall-tile{position:relative;min-width:0;height:clamp(230px,34vw,520px);display:grid;place-items:center;overflow:hidden;border:1px solid rgba(240,237,230,.11);border-radius:10px;background:#151514;cursor:zoom-in}.photo-wall-tile img{display:block;width:100%!important;height:100%!important;min-width:0!important;min-height:0!important;max-width:none!important;max-height:none!important;object-fit:contain!important;object-position:center center!important}.photo-wall-tile i{position:absolute;left:.6rem;bottom:.55rem;padding:.12rem .22rem;background:rgba(12,12,11,.72);font-style:normal;font-size:.5rem;letter-spacing:.1em;color:rgba(240,237,230,.68);opacity:0;transition:opacity .25s ease}.photo-wall-tile:hover i,.photo-wall-tile:focus-visible i{opacity:1}.photo-wall-editorial .photo-lightbox{z-index:1000}.photo-wall-editorial .photo-lightbox img{display:block;width:auto;max-width:92vw;max-height:88svh;height:auto;object-fit:contain}
@media(max-width:800px){.project-page--editorial .photo-wall-editorial{padding-right:1rem;padding-left:1rem}.photo-wall-editorial>header,.photo-wall-group{width:100%}.photo-wall{grid-template-columns:repeat(2,minmax(0,1fr))}.photo-wall-tile{height:clamp(210px,62vw,460px)}}
@media(max-width:520px){.photo-wall,.photo-wall--2{grid-template-columns:1fr}.photo-wall-tile{height:min(72svh,620px)}}

/* Photography images are the layout: no card chrome, no forced crop or internal empty frame. */
.photo-wall{display:block;column-count:3;column-gap:clamp(.55rem,1vw,1rem)}.photo-wall--2{column-count:2}.photo-wall-tile{width:100%;height:auto;display:block;break-inside:avoid;overflow:visible;margin:0 0 clamp(.55rem,1vw,1rem);border:0;border-radius:0;background:transparent;transform:translateZ(0)}.photo-wall-tile img{width:100%!important;height:auto!important;min-width:0!important;min-height:0!important;max-width:100%!important;max-height:calc(100svh - 9rem)!important;object-fit:contain!important;object-position:center center!important}.photo-wall-tile i{display:none}
@media(max-width:800px){.photo-wall,.photo-wall--2{column-count:2}.photo-wall-tile{height:auto}}
@media(max-width:520px){.photo-wall,.photo-wall--2{column-count:1}.photo-wall-tile img{max-height:none!important}}

/* Let landscape images breathe while portrait images act as precise counterweights. */
.photo-wall,.photo-wall--2{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-flow:row dense;gap:clamp(.55rem,1vw,1rem);align-items:start}.photo-wall-tile{width:auto;margin:0;break-inside:auto}.photo-wall-tile--landscape{grid-column:span 6}.photo-wall-tile--portrait{grid-column:span 3}.photo-wall-tile img{width:100%!important;height:auto!important;max-width:100%!important;max-height:calc(100svh - 9rem)!important;object-fit:contain!important}
@media(max-width:800px){.photo-wall,.photo-wall--2{grid-template-columns:repeat(6,minmax(0,1fr))}.photo-wall-tile--landscape{grid-column:span 4}.photo-wall-tile--portrait{grid-column:span 2}}
@media(max-width:520px){.photo-wall,.photo-wall--2{grid-template-columns:repeat(2,minmax(0,1fr))}.photo-wall-tile--landscape{grid-column:1/-1}.photo-wall-tile--portrait{grid-column:span 1}.photo-wall-tile img{max-height:none!important}}

/* Soft group cues; the images flow as one body of work rather than boxed chapters. */
.photo-wall-group>header{min-height:0;margin:0 0 .5rem;border:0;color:rgba(240,237,230,.42)}.photo-wall-group>header span:before{content:"•";margin-right:.45rem;color:rgba(240,237,230,.72)}.photo-wall,.photo-wall--2{grid-template-columns:repeat(13,minmax(0,1fr));grid-auto-flow:row dense}.photo-wall-tile--landscape{grid-column:span 9}.photo-wall-tile--portrait{grid-column:span 4}.photo-wall-tile--wide{grid-column:span 8}.photo-wall:has(.photo-wall-tile--wide) .photo-wall-tile--portrait{grid-column:span 3}
@media(max-width:800px){.photo-wall,.photo-wall--2{grid-template-columns:repeat(8,minmax(0,1fr))}.photo-wall-tile--landscape{grid-column:span 5}.photo-wall-tile--portrait{grid-column:span 3}.photo-wall-tile--wide{grid-column:span 5}.photo-wall:has(.photo-wall-tile--wide) .photo-wall-tile--portrait{grid-column:span 3}}
@media(max-width:520px){.photo-wall,.photo-wall--2{grid-template-columns:repeat(2,minmax(0,1fr))}.photo-wall-tile--landscape,.photo-wall-tile--wide{grid-column:1/-1}.photo-wall-tile--portrait{grid-column:span 1}}

/* Final photography art direction: project-specific invisible grids. */
.photo-layout{width:min(92vw,1500px);margin:0 auto;display:grid;gap:clamp(.65rem,1vw,1.1rem)}.photo-layout-row{min-width:0;display:grid;gap:clamp(.65rem,1vw,1.1rem);align-items:start}.photo-layout-row--normal-portrait{grid-template-columns:minmax(0,9fr) minmax(0,4fr)}.photo-layout-row--wide-portrait{grid-template-columns:minmax(0,8fr) minmax(0,3fr)}.photo-layout-row--portrait-wide{grid-template-columns:minmax(0,3fr) minmax(0,8fr)}.photo-layout-row--two-landscape{grid-template-columns:repeat(2,minmax(0,1fr))}.photo-layout-row--three-portrait{grid-template-columns:repeat(3,minmax(0,1fr))}.photo-layout-row--two-portrait{width:min(72%,1080px);margin-inline:auto;grid-template-columns:repeat(2,minmax(0,1fr))}.photo-layout-row--full{grid-template-columns:1fr}.photo-layout-row--center{width:min(86%,1280px);margin-inline:auto;grid-template-columns:1fr}.photo-layout .photo-wall-tile{position:relative;width:100%;height:auto;margin:0;display:block;overflow:visible;border:0;border-radius:0;background:transparent}.photo-layout .photo-wall-tile img{display:block;width:100%!important;height:auto!important;max-width:none!important;max-height:none!important;object-fit:contain!important}.photo-guide{position:absolute;z-index:2;top:.7rem;left:.7rem;padding:.32rem .48rem;background:rgba(8,8,7,.68);font-size:.58rem;letter-spacing:.1em;color:rgba(244,242,236,.82);backdrop-filter:blur(8px)}.project-page--gap .project-cover>img,.project-page--cracks .project-cover>img,.category--photography .entry[href="#/project/gap"] .media-frame>img,.category--photography .entry[href="#/project/cracks"] .media-frame>img{object-position:center top!important}
@media(max-width:760px){.photo-layout{width:100%}.photo-layout-row--normal-portrait,.photo-layout-row--wide-portrait,.photo-layout-row--portrait-wide{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}.photo-layout-row--portrait-wide{grid-template-columns:minmax(0,1fr) minmax(0,2fr)}.photo-layout-row--two-portrait{width:86%}.photo-layout-row--center{width:92%}.photo-guide{top:.45rem;left:.45rem;padding:.25rem .36rem;font-size:.52rem}}
@media(max-width:520px){.photo-layout-row--normal-portrait,.photo-layout-row--wide-portrait,.photo-layout-row--portrait-wide,.photo-layout-row--two-landscape{grid-template-columns:1fr}.photo-layout-row--portrait-wide .photo-wall-tile:first-child{width:64%;justify-self:center}.photo-layout-row--two-portrait,.photo-layout-row--three-portrait{width:100%;grid-template-columns:repeat(2,minmax(0,1fr))}.photo-layout-row--three-portrait .photo-wall-tile:last-child{grid-column:1/-1;width:50%;justify-self:center}.photo-layout-row--center{width:100%}}

/* Final alignment corrections requested for photography covers and Unity. */
.category--photography .entry[href^="#/project/gap"] .entry-media .media-frame>img,.category--photography .entry[href^="#/project/cracks"] .entry-media .media-frame>img{object-position:50% 0%!important}.photo-layout--unity .photo-layout-row--two-portrait{width:100%;max-width:none;margin-inline:0}

.photo-layout-row--square-portrait{grid-template-columns:minmax(0,3fr) minmax(0,2fr)}.category--photography .entry[href^="#/project/still-life"] .media-frame>img,.project-page--still-life .project-cover>img{object-position:center 42%!important}
@media(max-width:520px){.photo-layout-row--square-portrait{grid-template-columns:1fr}.photo-layout-row--square-portrait .photo-wall-tile:last-child{width:72%;justify-self:center}}

.photo-layout-row--portrait-square-portrait{grid-template-columns:minmax(0,3fr) minmax(0,4fr) minmax(0,2.6667fr)}
@media(max-width:520px){.photo-layout-row--portrait-square-portrait{grid-template-columns:repeat(2,minmax(0,1fr))}.photo-layout-row--portrait-square-portrait .photo-wall-tile:nth-child(2){grid-column:1/-1;grid-row:1}.photo-layout-row--portrait-square-portrait .photo-wall-tile:first-child,.photo-layout-row--portrait-square-portrait .photo-wall-tile:last-child{grid-row:2}}

/* AI Graphic Design: show the complete presentation boards at a readable editorial scale. */
.category--experiments .entry[href^="#/project/ai-graphic"] .media-frame-blur,.category--experiments .entry[href^="#/project/ai-graphic"] .media-frame:after{display:none}
.category--experiments .entry[href^="#/project/ai-graphic"] .media-frame>img,.project-page--ai-graphic .project-cover>img{object-fit:cover!important;object-position:50% 0!important;padding:0}
.photo-editorial--ai-graphic .photo-layout{width:min(90vw,1380px);display:block}
.ai-graphic-browser{width:100%;margin:auto}.ai-graphic-stage{position:relative;height:min(68svh,760px);min-height:500px;overflow:hidden;border-radius:18px;background:#111}
.ai-graphic-panel{position:absolute;inset:0;display:none;min-width:0;min-height:0}.ai-graphic-panel.active{display:block}
.ai-graphic-previews{width:100%;height:100%;display:grid;grid-template-columns:1fr;gap:2px;background:#191918}.ai-graphic-previews.is-series{grid-template-columns:repeat(3,minmax(0,1fr))}
.photo-layout--ai-graphic .photo-wall-tile{width:100%;height:100%;min-height:0;display:block;overflow:hidden;background:#111}
.photo-layout--ai-graphic .photo-wall-tile img{width:100%!important;height:100%!important;max-width:none!important;max-height:none!important;object-fit:cover!important;object-position:center top!important;transition:transform .7s cubic-bezier(.2,.7,.2,1),filter .35s ease}
.photo-layout--ai-graphic .photo-wall-tile:hover img,.photo-layout--ai-graphic .photo-wall-tile:focus-visible img{transform:scale(1.018);filter:brightness(1.06)}
.ai-graphic-stage.expanded{overflow:hidden}.ai-graphic-stage.expanded .ai-graphic-panel.active{position:relative;inset:auto}.ai-graphic-stage.expanded .ai-graphic-previews{height:auto;align-items:start}.ai-graphic-stage.expanded .photo-wall-tile{height:auto}.ai-graphic-stage.expanded .photo-wall-tile img{height:auto!important;object-fit:contain!important;transform:none!important;filter:none!important}
.ai-graphic-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:.7rem;border-top:1px solid rgba(240,237,230,.14)}.ai-graphic-tabs button{min-width:0;padding:1rem 0;display:flex;align-items:center;justify-content:space-between;gap:1rem;border:0;border-bottom:1px solid rgba(240,237,230,.14);background:transparent;color:rgba(240,237,230,.4);transition:color .3s ease,border-color .3s ease}.ai-graphic-tabs button+button{margin-left:1.4rem}.ai-graphic-tabs button span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:clamp(.82rem,1.05vw,1rem);letter-spacing:.02em}.ai-graphic-tabs button em{font-size:.52rem;font-style:normal;letter-spacing:.12em;opacity:.55}.ai-graphic-tabs button.active{border-bottom-color:#f0ede6;color:#f0ede6}.ai-graphic-tabs button:hover,.ai-graphic-tabs button:focus-visible{color:#f0ede6;outline:none}
.ai-graphic-expand-guide{width:100%;padding:.2rem 0 .8rem;display:flex;align-items:center;justify-content:flex-end;gap:.55rem;border:0;background:transparent;color:rgba(240,237,230,.48);font-size:.58rem;letter-spacing:.1em;transition:color .3s ease}.ai-graphic-expand-guide i{font-style:normal;font-size:.8rem;transition:transform .45s ease}.ai-graphic-expand-guide.open i{transform:translateY(-2px)}.ai-graphic-expand-guide:hover,.ai-graphic-expand-guide:focus-visible{color:#f0ede6;outline:none}
.ai-graphic-expand-guide.is-hidden{visibility:hidden;pointer-events:none}
.ai-graphic-bottom-nav{margin-top:1rem;padding-top:.85rem;display:grid;grid-template-columns:2.2rem minmax(0,1fr) 2.2rem;align-items:center;border-top:1px solid rgba(240,237,230,.14)}.ai-graphic-bottom-nav button{width:2.2rem;height:2.2rem;border:0;border-radius:50%;background:transparent;color:rgba(240,237,230,.55);font-size:.85rem;transition:background .25s ease,color .25s ease,transform .25s ease}.ai-graphic-bottom-nav button:hover,.ai-graphic-bottom-nav button:focus-visible{background:rgba(240,237,230,.08);color:#f0ede6;outline:none;transform:scale(1.05)}.ai-graphic-current{text-align:center;font-size:.66rem;letter-spacing:.08em;color:rgba(240,237,230,.62)}
.photo-lightbox--ai-graphic.open{display:grid;place-items:start center;overflow-y:auto;padding:5rem 4vw}
.photo-lightbox--ai-graphic img{display:block;width:min(90vw,1200px)!important;max-width:1200px!important;max-height:none!important;height:auto!important;object-fit:contain}
@media(max-width:760px){.photo-editorial--ai-graphic .photo-layout{width:100%}.ai-graphic-stage{height:58svh;min-height:420px;border-radius:12px}.ai-graphic-tabs button{padding:.85rem 0}.ai-graphic-tabs button+button{margin-left:.65rem}.ai-graphic-tabs button span{font-size:.68rem}.ai-graphic-tabs button em{display:none}.ai-graphic-expand-guide{justify-content:center}.ai-graphic-bottom-nav{grid-template-columns:2rem minmax(0,1fr) 2rem}}

/* Mobile exhibition pass: stable viewport geometry and touch-led home scrubbing. */
@media(max-width:760px){
  html,body{max-width:100%}
  body{overflow-x:clip}
  :root{--nav-h:58px}
  .site-nav{height:var(--nav-h);padding:0 14px;background:linear-gradient(180deg,rgba(7,7,7,.7),transparent)}
  .site-nav.scrolled,.site-nav.inner-page{background:rgba(10,10,9,.9)}
  .wordmark{flex:0 1 auto;min-width:0;font-size:11px;white-space:nowrap}
  .site-nav .nav-right{flex:0 0 auto;gap:10px}
  .site-nav.inner-page .wordmark{display:none}
  .site-nav.inner-page .nav-right{width:100%;justify-content:flex-end}
  .site-nav.inner-page .nav-back{margin-right:auto}
  .nav-link,.lang button{font-size:10px;letter-spacing:.055em}
  .lang{gap:5px}
  .stage-track{height:530svh}
  .stage{position:-webkit-sticky;position:sticky;height:100svh;min-height:100svh}
  .home-video-backdrop video{width:100%;height:100%;object-fit:cover;object-position:center center}
  .hero-copy{left:18px;right:18px;bottom:max(72px,10svh);max-width:none}
  .hero-copy .kicker{margin-bottom:18px;font-size:9px}
  .hero-copy h1{font-size:clamp(3.65rem,18.5vw,5.4rem);line-height:.86}
  .hero-copy h1 span{margin-top:18px;font-size:.23em;line-height:1.45}
  .hero-copy>p:last-child{max-width:88%;margin-top:12px;font-size:12px;line-height:1.6}
  .project-float,.project-float:nth-of-type(even){align-items:flex-end;padding:0 18px max(92px,14svh);text-align:left}
  .project-float h2{max-width:94vw;font-size:clamp(3rem,15.5vw,5.2rem);line-height:.9;overflow-wrap:anywhere}
  .project-float .view{margin-top:24px;font-size:10px}
  .stage-track>.about{top:430svh;min-height:100svh;padding:clamp(78px,11svh,110px) 18px 38px;grid-template-columns:1fr;gap:0}
  .stage-track>.about .section-label{margin-bottom:32px}
  .stage-track>.about h2{font-size:clamp(2.65rem,12.5vw,4.6rem);line-height:.94}
  .stage-track>.about .about-copy{margin-top:54px;align-self:start}
  .stage-track>.about .about-copy>p{font-size:15px;line-height:1.68}
  .stage-track>.about .timeline{margin-top:46px}
  .stage-track>.about .timeline div{grid-template-columns:92px minmax(0,1fr);gap:14px;padding:14px 0 20px}
  .stage-track>.about .timeline h3{font-size:14px}
  .stage-track>.about .timeline time,.stage-track>.about .timeline p{font-size:10px}
  .footer{padding:86px 18px 28px}
  .footer h2{font-size:clamp(3rem,15vw,5rem);margin-bottom:72px}
  .category{padding:calc(var(--nav-h) + 42px) 16px 72px}
  .category-head{margin-bottom:56px;padding-bottom:18px}
  .category h1{font-size:clamp(3.4rem,17vw,5.4rem)}
  .entry-list{gap:74px}
  .entry,.entry:nth-child(even){gap:18px;padding-top:12px}
  .entry h2{margin:26px 0 12px;font-size:clamp(2.25rem,11vw,3.8rem)}
  .entry-media{aspect-ratio:4/3;border-radius:10px}
  .project-page{padding-top:var(--nav-h)}
  .project-cover{min-height:calc(100svh - var(--nav-h));padding:18px 18px max(42px,7svh)}
  .project-cover h1{font-size:clamp(3rem,14vw,5rem);line-height:.92}
}
