:root{--paper:#f8f6f2;--ink:#171717;--muted:#77746f;--gutter:16px;--gap:8px;--card-width:28.2vw;--card-height:52svh;--ease:cubic-bezier(.22,.75,.15,1)}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--paper);color:var(--ink)}body{font-family:"Helvetica Neue",Helvetica,sans-serif;font-size:12px;font-weight:400;-webkit-font-smoothing:antialiased}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}img{display:block;max-width:100%}p,h1,h2{margin:0}button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:2px solid #d52d30;outline-offset:5px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip{position:fixed;top:-60px;left:16px;z-index:1000;padding:12px;background:var(--paper)}.skip:focus{top:12px}
.site-header{position:absolute;z-index:5;inset:0 0 auto;display:grid;grid-template-columns:calc(var(--card-width) + var(--gap)) calc(var(--card-width) + var(--gap)) 1fr auto;align-items:start;padding:20px var(--gutter);line-height:1.15;text-transform:uppercase}.brand{width:138px;padding-top:1px}.site-description,.navigation,.site-edition{font-size:11px;font-weight:400}.site-edition{text-align:left;min-width:88px}.site-edition span{color:var(--muted)}.navigation{display:flex;flex-direction:column;align-items:flex-start;gap:2px}.text-roll{position:relative;display:block;line-height:1.2;height:1.2em;overflow:hidden}.text-roll span{display:block;transition:transform .5s var(--ease)}.text-roll:hover span,.text-roll:focus-visible span{transform:translateY(-100%)}
.portfolio{position:relative;min-height:100svh;overflow:hidden}.gallery-toolbar{position:absolute;bottom:calc(var(--card-height) + 84px);left:var(--gutter);right:var(--gutter);display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:10px;letter-spacing:.015em}.gallery-controls{display:flex;align-items:center;gap:12px}.gallery-count{font-variant-numeric:tabular-nums;margin-right:12px}.gallery-controls button{font-size:19px;width:30px;height:32px;color:var(--ink);transition:transform .3s}.gallery-prev:hover{transform:translateX(-3px)}.gallery-next:hover{transform:translateX(3px)}.mobile-hint{display:none}.gallery{position:absolute;bottom:var(--gutter);left:0;right:0;height:calc(var(--card-height) + 44px);overflow:auto;scrollbar-width:none;touch-action:pan-y}.gallery::-webkit-scrollbar{display:none}.project-track{display:flex;gap:var(--gap);padding:0 var(--gutter);width:max-content}.project{display:block;flex:none;width:var(--card-width);user-select:none;-webkit-user-drag:none}.project-stage{transform:translateY(0);transition:transform .55s var(--ease)}.project-label{height:44px;display:flex;justify-content:space-between;align-items:flex-start;padding-top:4px;gap:10px}.client-roll{display:block;line-height:14px;height:14px;overflow:hidden;text-transform:uppercase;font-size:11px}.client-roll>span{display:block;transition:transform .55s var(--ease)}.project-name{display:block;color:var(--muted);font-size:10px;line-height:14px;margin-top:1px}.project-number{color:var(--muted);font-size:9px;padding-top:3px;min-width:14px}.project-image-wrap{position:relative;width:100%;height:var(--card-height);overflow:hidden;background:#d9d7d3}.project-image{width:100%;height:100%;max-width:none;object-fit:cover;transform:translateX(var(--parallax,0px)) scale(var(--cover-crop,1.13));transition:scale .8s var(--ease),filter .8s var(--ease);will-change:transform}.touch-play{display:none}.enhanced .gallery{overflow:hidden}.enhanced .project-track{position:relative;display:block;padding:0;width:100%;height:100%}.enhanced .project{position:absolute;top:0;left:0;will-change:transform}.enhanced .project-stage{transform:translateY(var(--lift,0px)) skewY(var(--tilt,0deg))}.project-cursor{position:fixed;left:0;top:0;width:78px;height:78px;border:1px solid rgba(255,255,255,.7);border-radius:50%;color:#fff;background:rgba(0,0,0,.15);display:flex;align-items:center;justify-content:center;text-align:center;line-height:1.15;text-transform:uppercase;font-size:9px;letter-spacing:.04em;pointer-events:none;z-index:9;opacity:0;scale:.8;transition:opacity .2s,scale .35s var(--ease);transform:translate(-50%,-50%)}.project-cursor.is-visible{opacity:1;scale:1}.is-dragging .project-cursor{opacity:0}.is-dragging,.is-dragging .project{cursor:grabbing}.enhanced .gallery:focus-visible{outline-offset:-2px}
@media(hover:hover) and (pointer:fine){.project:hover,.project:focus-visible{--lift:-8px}.project:hover .client-roll>span,.project:focus-visible .client-roll>span{transform:translateY(-100%)}.project:hover .project-image,.project:focus-visible .project-image{scale:.95}.project{cursor:none}.project:focus-visible{cursor:pointer}}
dialog{padding:0;border:0;color:var(--ink);background:var(--paper);max-width:none;max-height:none}dialog::backdrop{background:transparent}.case-dialog{position:fixed;inset:0;width:100%;height:100dvh;margin:0;overflow:auto;background:transparent}.dialog-surface{position:fixed;inset:0;background:var(--paper);z-index:-1}.case-header{position:relative;z-index:5;display:grid;grid-template-columns:28.2% 28.2% 1fr auto;align-items:start;padding:20px var(--gutter);min-height:74px;text-transform:uppercase;font-size:11px}.case-header-name{padding:2px 20px 0 8px;color:var(--muted);max-width:300px}.case-close{text-transform:uppercase;text-align:left;justify-self:start}.case-counter{font-size:10px;font-variant-numeric:tabular-nums;color:var(--muted)}.text-button{min-height:28px}.text-button span{display:inline-block;margin-left:12px;transition:transform .4s var(--ease)}.text-button:hover span{transform:translate(3px,-2px)}.case-layout{display:grid;grid-template-columns:57.5% 42.5%;height:calc(100dvh - 90px);min-height:540px;margin:0 var(--gutter) 16px}.case-info{display:flex;flex-direction:column;justify-content:flex-end;padding:24px 48px 72px 0}.case-info h2{font-size:clamp(52px,6.8vw,112px);font-weight:400;line-height:.93;letter-spacing:-.055em;text-transform:lowercase;max-width:95%;margin-bottom:42px;overflow-wrap:normal;text-wrap:balance}.case-meta{display:grid;grid-template-columns:1fr 1fr;font-size:11px;line-height:1.4;text-transform:uppercase;gap:24px}.case-meta p:first-child{max-width:270px}.case-meta p:last-child{color:var(--muted)}.case-media{position:relative;min-width:0;overflow:hidden;background:#d9d7d3}.case-cover{width:100%;height:100%;object-fit:cover}.case-watch{position:absolute;inset:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:white;background:linear-gradient(transparent 65%,rgba(0,0,0,.3));cursor:pointer}.watch-symbol{width:72px;height:72px;border:1px solid rgba(255,255,255,.8);border-radius:50%;display:grid;place-items:center;transition:scale .5s var(--ease),background .5s}.watch-symbol svg{width:18px;fill:currentColor;transform:translateX(-1px)}.case-watch:hover .watch-symbol{scale:1.12;background:rgba(255,255,255,.12)}.watch-caption{position:absolute;left:24px;right:24px;bottom:24px;display:flex;justify-content:space-between;text-transform:uppercase;font-size:11px;line-height:1.2}.case-duration{font-size:10px}.case-footer{position:absolute;left:var(--gutter);bottom:22px;width:calc(57.5% - 64px);display:flex;justify-content:space-between;align-items:center;text-transform:uppercase;font-size:10px;z-index:5}.case-footer>a{padding:8px 0;color:var(--muted)}.image-transition{position:fixed;z-index:10;overflow:hidden;pointer-events:none}.image-transition img{width:100%;height:100%;max-width:none;object-fit:cover}.case-dialog.is-transitioning .case-cover{visibility:hidden}.case-dialog.is-transitioning .case-watch{opacity:0;pointer-events:none}.case-dialog.is-closing .case-info,.case-dialog.is-closing .case-header,.case-dialog.is-closing .case-footer{opacity:0;transition:opacity .25s}.case-dialog.film-view .case-info,.case-dialog.film-view .case-cover,.case-dialog.film-view .case-watch{display:none}.case-dialog.film-view .case-layout{display:block;min-height:0;height:auto;margin:0}.case-dialog.film-view .case-media{position:absolute;top:84px;bottom:62px;left:var(--gutter);right:var(--gutter);background:#111}.case-dialog.film-view .case-footer{width:auto;right:var(--gutter)}.player-stage{position:absolute;inset:0;background:#101010;color:#fff;display:flex;align-items:center;justify-content:center}.player-stage[hidden]{display:none}.player-stage iframe{position:relative;width:100%;height:100%;border:0;z-index:1}.player-status{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;padding:24px;text-align:center;font-size:13px;line-height:1.6;z-index:2;background:#101010}.player-status a{color:#c7c4bf;border-bottom:1px solid #777;font-size:11px;text-transform:uppercase}.player-stage.is-ready .player-status{display:none}.modal-open{overflow:hidden}.contact-dialog{position:fixed;inset:0;width:100%;height:100dvh;margin:0;padding:20px var(--gutter);overflow:auto}.contact-top{display:flex;justify-content:space-between;align-items:flex-start}.contact-close{text-transform:uppercase;font-size:11px}.contact-body{position:absolute;bottom:100px;left:var(--gutter);right:var(--gutter)}.contact-body>p{font-size:11px;color:var(--muted);margin-bottom:32px}.contact-body h2{font-size:clamp(70px,11vw,180px);font-weight:400;line-height:.86;letter-spacing:-.06em}.contact-links{display:flex;gap:60px;margin-top:48px;font-size:12px}.contact-links a{border-bottom:1px solid var(--ink);padding-bottom:5px}.contact-copyright{position:absolute;bottom:24px;color:var(--muted);font-size:10px}
@media(min-width:1800px){:root{--card-width:27.8vw;--card-height:56svh}.site-description,.navigation,.site-edition{font-size:12px}.client-roll{font-size:12px}.project-name{font-size:11px}}
@media(max-width:760px){:root{--gutter:12px;--card-width:80vw;--card-height:50svh}.site-header{grid-template-columns:1fr auto;row-gap:26px;padding-top:20px}.brand{width:132px}.brand img{width:132px}.navigation{grid-column:2;grid-row:1;font-size:11px;gap:7px;min-width:60px}.site-description{grid-column:1;grid-row:2;font-size:10px}.site-edition{grid-column:2;grid-row:2;font-size:10px;min-width:60px}.gallery-toolbar{bottom:calc(var(--card-height) + 75px);font-size:9px}.gallery-toolbar>p:first-child{display:none}.gallery-controls{gap:6px}.gallery-count{margin-right:4px}.gallery-hint{max-width:125px;text-align:right}.desktop-hint{display:none}.mobile-hint{display:inline}.client-roll{font-size:10px}.project-name{font-size:10px;max-width:calc(var(--card-width) - 35px)}.project-number{font-size:9px}.project-cursor{display:none}.touch-play{position:absolute;display:flex;bottom:16px;left:16px;right:16px;justify-content:space-between;align-items:center;color:white;font-size:9px;text-transform:uppercase;text-shadow:0 1px 8px #000}.touch-play>span{font-size:18px}.project-image-wrap:after{content:"";position:absolute;inset:70% 0 0;background:linear-gradient(transparent,rgba(0,0,0,.25));pointer-events:none}.touch-play{z-index:1}.case-header{grid-template-columns:1fr auto;padding-top:20px;min-height:80px}.case-header>img{width:126px}.case-header-name,.case-counter{display:none}.case-close{font-size:9px;justify-self:end;min-height:30px}.case-close span{margin-left:6px}.case-layout{display:flex;flex-direction:column;height:auto;min-height:0;margin:0 var(--gutter)}.case-info{padding:10px 0 28px}.case-info h2{font-size:clamp(44px,12vw,84px);max-width:100%;line-height:.96;margin-bottom:24px;text-wrap:initial}.case-meta{font-size:9px;gap:16px;grid-template-columns:1fr 1fr}.case-media{height:48svh;min-height:250px;flex:none}.watch-symbol{width:60px;height:60px}.watch-caption{left:16px;right:16px;bottom:16px;font-size:10px}.case-footer{position:relative;left:auto;bottom:auto;width:auto;margin:12px var(--gutter) 24px;font-size:9px}.case-dialog.film-view .case-media{top:94px;bottom:72px;height:auto;min-height:0}.case-dialog.film-view .case-footer{position:fixed;left:var(--gutter);right:var(--gutter);bottom:20px;margin:0}.contact-body{bottom:110px}.contact-body h2{font-size:18vw}.contact-body>p{max-width:250px;line-height:1.5}.contact-links{gap:26px;flex-direction:column;align-items:flex-start;font-size:11px;margin-top:36px}.contact-copyright{font-size:9px}}
@media(max-height:600px) and (min-width:761px){:root{--card-height:56svh}.gallery-toolbar{bottom:calc(var(--card-height) + 62px)}.case-layout{min-height:330px}.case-info h2{font-size:54px;margin-bottom:24px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.project-image{transform:scale(var(--cover-crop,1.13))!important;scale:1!important}.enhanced .project-stage{transform:none!important}.project-cursor{display:none}}
.gallery{height:calc(var(--card-height) + 56px)}.project-track{padding-top:12px}.enhanced .project-track{padding-top:0}.enhanced .project{top:12px}.is-entering .gallery{overflow:visible;pointer-events:none}
.gallery{clip-path:inset(0 0 0 var(--gutter))}.case-cover,.image-transition img{transform:scale(var(--poster-crop,1))}
.opening-pending .gallery,.opening-pending .gallery-toolbar,.is-entering .gallery,.is-entering .gallery-toolbar{visibility:hidden}.opening-pending .site-header>*{opacity:0}.opening-sequence{position:fixed;inset:0;z-index:4;pointer-events:none;overflow:hidden}.opening-tile{position:absolute;overflow:hidden;will-change:left,top,width,height}.opening-picture{position:absolute;inset:0;overflow:hidden}.opening-picture img{width:100%;height:100%;object-fit:cover;max-width:none;transform:scale(var(--poster-crop,1))}.is-entering .site-header{z-index:5}.is-entering .project-cursor{display:none}
@media(prefers-reduced-motion:reduce){.opening-pending .gallery,.opening-pending .gallery-toolbar{visibility:visible}.opening-pending .site-header>*{opacity:1}.opening-sequence{display:none}}
.opening-picture img{transform:translateX(var(--parallax,0px)) scale(var(--poster-crop,1.13))}

.project-image,.case-cover,.image-transition img,.opening-picture img{object-position:var(--cover-position,50% 50%)}

.player-stage>video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#000;z-index:2}.client-logo{display:block;width:110px;max-height:55px;object-fit:contain;object-position:left;margin-bottom:16px;filter:grayscale(1)}
