:root{--ink:#090909;--paper:#f5f5f3;--red:#d31725;--graphite:#292929;--grey:#777}html{scroll-behavior:smooth;scrollbar-gutter:stable}.gateway.project{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;background:var(--ink);padding:7%;gap:0}.gateway h2{font-family:Impact,'Arial Narrow',sans-serif;font-size:clamp(70px,12vw,180px);line-height:.9;letter-spacing:-.025em;margin:30px 0}.red-period{color:var(--red)}.gateway>p{font-size:12px;letter-spacing:.23em}.gateway-link{margin-top:35px;border-bottom:1px solid #777;padding:12px 0}.gateway-note{position:absolute;bottom:7%;right:7%;font-size:12px;color:#999}.chapter-flow{position:relative;background:var(--ink)}.red-thread{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:5;overflow:visible}.red-thread path{fill:none;stroke:var(--red);stroke-width:1.8;vector-effect:non-scaling-stroke;stroke-dasharray:1;stroke-dashoffset:1}.selected-section{height:240svh;background:radial-gradient(ellipse at 50% 55%,#202020 0,#090909 64%);position:relative}.gallery-stage{height:100svh;position:sticky;top:0;overflow:hidden;padding:34px 4%}.works-top{display:flex;justify-content:space-between;align-items:center;color:#a9a9a9}.edition{font-size:10px;letter-spacing:.18em}.works-heading{position:absolute;left:4%;top:9%;z-index:3}.works-heading h2{font-family:Impact,'Arial Narrow',sans-serif;font-weight:900;font-size:clamp(55px,7.4vw,116px);line-height:1;margin:0;letter-spacing:-.015em}.works-heading h2 span,.expertise h2 span{color:var(--red)}.works-heading p{font-size:10px;letter-spacing:.24em;color:#b1b1b1;margin-top:15px}.reveal-mask{clip-path:inset(100% 0 0);transition:clip-path 1.2s cubic-bezier(.2,.65,.25,1)}.reveal-mask.revealed{clip-path:inset(0 0 0)}.filters{position:absolute;right:5%;top:25%;display:flex;gap:22px;z-index:8}.filters button{font-size:10px;letter-spacing:.09em;color:#aaa;padding:12px 0;min-height:44px;border-bottom:1px solid transparent}.filters button[aria-pressed=true]{color:#fff;border-color:var(--red)}.filters sup{font-size:8px;color:var(--red);margin-left:5px}.spatial-gallery{position:absolute;left:4%;right:7%;top:34%;height:55%;perspective:1100px;transform-style:preserve-3d}.project-tile{position:absolute;width:19%;transform:translateY(var(--scroll-y,0px)) scale(var(--scroll-scale,1)) rotateY(var(--turn,0deg));transform-origin:center;will-change:transform;transition:filter .35s,opacity .4s;outline-offset:10px!important}.project-tile .demo-crop{transition:transform .5s,box-shadow .5s;box-shadow:0 16px 50px #0007}.project-tile:hover .demo-crop,.project-tile:focus-visible .demo-crop{transform:translateY(-10px) scale(1.045);box-shadow:0 25px 80px #000}.tile-0{left:0;top:30%;z-index:1}.tile-1{left:18%;top:7%;z-index:2}.tile-2{left:39%;top:0;width:24%;z-index:4}.tile-3{left:65%;top:10%;z-index:2}.tile-4{left:83%;top:27%;width:17%;z-index:1}.demo-crop{position:relative;aspect-ratio:3/5;overflow:hidden;background:#222}.demo-crop img{position:absolute!important;width:500%!important;max-width:none;height:100%!important;object-fit:fill!important;left:calc(var(--panel,0)*-100%);top:0}.demo-crop img.single-image{width:100%!important;left:0;object-fit:cover!important}.tile-label{display:flex;justify-content:space-between;font-size:11px;letter-spacing:.1em;margin-top:14px}.tile-label span:last-child{color:#eee}.project-tile small{font-size:8px;letter-spacing:.14em;color:#777;display:block;margin-top:8px}.gallery-bottom{position:absolute;left:4%;right:7%;bottom:3%;display:flex;justify-content:space-between;gap:20px;font-size:9px;letter-spacing:.15em;color:#888}.gallery-bottom a{color:#ddd}.work-bubble{position:absolute;width:65px;mix-blend-mode:screen;pointer-events:none;z-index:4}.bubble-one{left:35%;top:63%;width:55px}.bubble-two{left:80%;top:32%;width:35px}.empty-filter{position:absolute;top:47%;left:15%;right:15%;text-align:center;border-top:1px solid #333;padding:45px 0}.empty-filter>span{font-size:clamp(22px,3vw,40px)}.empty-filter p{color:#999;line-height:1.6}.empty-filter button{margin-top:15px;border-bottom:1px solid var(--red);padding:10px}.expertise{--light:1;padding:70px 7% 35px 4%;position:relative;background:rgb(calc(41 + 204*var(--light)) calc(41 + 204*var(--light)) calc(41 + 202*var(--light)));color:var(--ink);min-height:100svh}.expertise-top{display:flex;justify-content:space-between;align-items:center;font-size:10px;letter-spacing:.15em}.expertise h2{font-family:Impact,'Arial Narrow',sans-serif;font-size:clamp(66px,13.7vw,210px);line-height:1;margin:45px 0 50px;letter-spacing:-.025em}.expertise-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:12%}.expertise-intro>p{font-size:clamp(22px,2.4vw,38px);line-height:1.25;letter-spacing:-.04em;margin:0 0 30px}.service-preview{width:58%;max-width:250px}.service-preview .demo-crop{aspect-ratio:4/5}.service-preview>span{font-size:8px;letter-spacing:.15em;color:#777;display:block;margin-top:12px}.service-list{border-top:1px solid #aaa}.service-row{display:grid;grid-template-columns:28px 1fr 24px;align-items:center;gap:15px;width:100%;text-align:left;padding:24px 0;border-bottom:1px solid #bbb;color:#111;font-size:clamp(18px,2.1vw,32px);letter-spacing:-.035em;transition:color .2s,padding .2s}.service-number{font-size:10px;color:#777;letter-spacing:0}.service-row[data-active=true]{color:var(--red)}.service-row:hover{padding-left:8px}.expertise-end{margin-top:80px;display:flex;justify-content:space-between;gap:25px;font-size:9px;letter-spacing:.1em;border-top:1px solid #bbb;padding-top:24px}.expertise-end a{font-weight:bold}.case-page{background:var(--paper);color:#111}.case-top{display:flex;justify-content:space-between;padding:28px 5%;border-bottom:1px solid #ccc}.case-top a{font-size:11px;letter-spacing:.12em}.case-main{padding:60px 7%;max-width:1600px;margin:auto;animation:case-in .6s ease both}.case-flag{font-size:10px;color:var(--red);letter-spacing:.15em}.case-main h1{font-family:Impact,'Arial Narrow',sans-serif;font-size:clamp(64px,10vw,160px);line-height:1;transform:none;letter-spacing:-.02em;margin:25px 0}.case-heading{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:40px}.case-heading p{font-size:11px;color:#777;letter-spacing:.12em}.case-hero{width:100%;max-height:80svh;aspect-ratio:1.65;background:#181818;display:flex;justify-content:center;overflow:hidden}.case-hero .demo-crop{width:43%;height:100%;aspect-ratio:auto}.case-description{font-size:clamp(20px,2.3vw,34px);line-height:1.5;max-width:900px;margin:70px 0}.case-gallery{display:grid;grid-template-columns:1fr 1fr;gap:30px}.case-gallery .demo-crop{aspect-ratio:3/4}.case-process{display:grid;grid-template-columns:1fr 2fr;gap:30px;padding:65px 0;border-bottom:1px solid #aaa;line-height:1.7}.case-process h2{font-size:12px;letter-spacing:.15em}.case-process p{max-width:640px;margin-top:0}.case-video video{width:100%;max-height:80svh;background:#090909}.case-actions{display:flex;justify-content:space-between;gap:30px;padding:40px 0}.case-actions a{border-bottom:1px solid var(--red);padding-bottom:10px;font-size:13px}.case-footnote{font-size:11px;color:#777}.case-error{padding:15vh 7%}.case-error a{text-decoration:underline}@keyframes case-in{from{opacity:0}to{opacity:1}}[hidden]{display:none!important}
@media(max-width:700px){.gateway.project{padding:8%;min-height:100svh}.gateway h2{font-size:19vw}.gateway-note{font-size:9px;left:8%;right:auto}.selected-section{height:auto;min-height:100svh;background:#090909}.gallery-stage{position:relative;height:auto;padding:32px 6% 40px;overflow:hidden}.edition{display:none}.works-heading{position:relative;top:auto;left:auto;margin:30px 0}.works-heading h2{font-size:15vw;line-height:.95;max-width:100%}.works-heading p{font-size:8px}.filters{position:relative;top:auto;right:auto;gap:12px;flex-wrap:wrap;margin:25px 0 35px}.filters button{font-size:9px}.spatial-gallery{position:relative;inset:auto;height:auto;display:flex;flex-direction:column;gap:45px;perspective:none}.project-tile{position:relative;left:auto;top:auto;width:78%;transform:none!important;opacity:1!important;will-change:auto}.project-tile:nth-child(even){align-self:flex-end;width:67%}.project-tile.tile-2{width:92%;align-self:center}.project-tile .demo-crop{aspect-ratio:3/4}.tile-label{font-size:11px}.gallery-bottom{position:relative;inset:auto;margin-top:50px;flex-wrap:wrap;line-height:1.7;font-size:8px}.gallery-bottom span:nth-child(2){order:3;width:100%}.work-bubble{display:none}.empty-filter{position:relative;inset:auto;padding:35px 0;min-height:35svh}.empty-filter p{font-size:13px}.red-thread{width:100%}.expertise{padding:50px 8% 30px 6%;background:var(--paper)}.expertise-top{font-size:8px}.expertise-top>span:last-child{display:none}.expertise h2{font-size:18vw;margin:35px 0}.expertise-grid{grid-template-columns:1fr;gap:35px}.expertise-intro{display:flex;gap:25px;justify-content:space-between;align-items:start}.expertise-intro>p{font-size:23px;margin:0}.service-preview{width:29%;flex-shrink:0}.service-preview>span{font-size:6px}.service-row{font-size:22px;padding:22px 0}.expertise-end{flex-direction:column;font-size:8px;line-height:1.6;margin-top:45px}.case-main{padding:35px 6%}.case-heading{display:block}.case-main h1{font-size:17vw}.case-hero{aspect-ratio:3/4;max-height:none}.case-hero .demo-crop{width:100%}.case-description{margin:35px 0;font-size:21px}.case-gallery{gap:15px}.case-process{display:block;padding:35px 0}.case-actions{flex-direction:column;align-items:start}.case-top{padding:25px 6%}.case-top a{font-size:9px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal-mask{clip-path:none;transition:none}.project-tile,.project-tile .demo-crop{transition:none!important;transform:none!important;will-change:auto}.case-main{animation:none}.selected-section{height:auto}.gallery-stage{position:relative;min-height:100svh}.red-thread path{stroke-dashoffset:0}.expertise{background:var(--paper)}}
html{scrollbar-gutter:auto}.work-bubble{height:auto;aspect-ratio:1;object-fit:contain}
@media(min-width:701px){.tile-0{top:15%}.tile-4{top:18%}}
/* Cyrillic copy fitting: local to portfolio/services; HERO untouched. */
.works-heading h2{font-size:clamp(36px,5.35vw,86px);letter-spacing:-.015em}
.gateway h2{font-size:clamp(58px,10vw,150px)}
.service-copy{min-width:0}.service-copy>span{display:block;font-size:clamp(16px,1.65vw,25px);line-height:1.25;letter-spacing:-.02em}
.service-copy small{display:block;font-size:12px;line-height:1.5;letter-spacing:0;color:#666;margin-top:8px;font-weight:400}
.service-row{padding:21px 0}.expertise-intro>p{font-size:clamp(19px,2.1vw,31px);letter-spacing:-.035em}
@media(max-width:700px){.works-heading h2{font-size:12vw;max-width:100%;line-height:1.04}.gateway h2{font-size:14vw}.service-copy>span{font-size:17px}.service-copy small{font-size:12px}.service-row{grid-template-columns:20px 1fr 18px;gap:9px}.expertise-intro{flex-wrap:wrap}.expertise-intro>p{font-size:clamp(18px,5.8vw,24px)}.case-main h1{font-size:15vw}}

.project-tile[data-id="project-03"] .single-image{width:100%;height:100%;object-fit:cover;object-position:50% 12%;left:0;transform:none}

.project-tile[data-id="project-01"] .single-image{width:100%;height:100%;object-fit:cover;object-position:50% 15%;left:0;transform:none}.project-tile[data-id="project-01"] .tile-label>span:first-child{min-width:0;overflow-wrap:normal;white-space:normal;line-height:1.35}
.project-tile[data-id="project-04"] .single-image{object-position:50% 50%}.tile-preview{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .3s;pointer-events:none}.tile-preview.playing{opacity:1}.tile-label{gap:8px;line-height:1.4}.tile-label>span:first-child{min-width:0;overflow-wrap:anywhere}.tile-label>span:last-child{flex-shrink:0}.project-tile small{line-height:1.6;overflow-wrap:anywhere;min-height:26px}
@media(min-width:701px){.gallery-stage{height:max(100svh,76vw);max-height:none}.selected-section{height:max(240svh,130vw)}.spatial-gallery{top:29%;height:53%}.gallery-bottom{bottom:2%;padding-top:18px}}

[data-id="project-02"] .single-image{object-position:50% 50%}

[data-id="project-05"] .single-image,[data-id="project-05"] .mira-preview{object-position:50% 45%}

/* Final copy cleanup and local spacing for the two right-hand projects. */
.service-row{grid-template-columns:28px 1fr;cursor:default;transition:color .2s}.service-row:hover{padding-left:0}.expertise-end{border-top:0;padding-top:0;justify-content:flex-end}
@media(min-width:701px){.spatial-gallery{--right-card-gap:clamp(4px,.3vw,6px)}.project-tile.tile-3{width:calc(18% - var(--right-card-gap)/2)}.project-tile.tile-4{left:calc(83% + var(--right-card-gap)/2);width:calc(17% - var(--right-card-gap)/2)}}
@media(max-width:700px){.service-row{grid-template-columns:20px 1fr}}

@media(min-width:701px) and (prefers-reduced-motion:reduce){.spatial-gallery{--right-card-gap:clamp(24px,2vw,32px)}}
