@font-face{font-family:Editorial;src:url('assets/editorial.otf') format('opentype');font-display:swap}@font-face{font-family:Editorial;src:url('assets/editorial-italic.otf') format('opentype');font-style:italic;font-display:swap}@font-face{font-family:Sans;src:url('assets/sans.otf') format('opentype');font-display:swap}
:root{--paper:#fff;--ink:#090909;--line:#d2d2d2}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:20px}body{margin:0;background:var(--paper);color:var(--ink);font-family:Sans,Arial,sans-serif;font-size:16px;line-height:1.45}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button{cursor:pointer}button,a,summary,input,select,textarea{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid currentColor;outline-offset:6px}h1,h2,h3,p{margin:0}h1,h2,h3,.wordmark{font-family:Editorial,'Times New Roman',serif;font-weight:400}em{font-weight:400}.skip{position:absolute;z-index:10;top:-100px;left:20px;background:white;padding:15px}.skip:focus{top:10px}.hero{height:min(910px,100svh);min-height:750px;position:relative;overflow:hidden;background:#f9f9f9}.hero-photo{position:absolute;inset:0 0 0 38%;background-image:url('assets/roxi-hires.png');background-size:cover;background-position:45% 20%;filter:grayscale(1)}.hero:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#fff 0%,#fff 25%,rgba(255,255,255,.94) 33%,rgba(255,255,255,.25) 52%,transparent 65%);pointer-events:none}header{position:relative;z-index:2;display:flex;align-items:center;gap:56px;padding:28px 5%}.wordmark{font-size:clamp(40px,4.4vw,68px);line-height:1;letter-spacing:-.075em}.brand-note{font-size:13px;letter-spacing:.15em;line-height:1.45}nav{display:flex;gap:32px;margin-left:auto;font-size:14px}nav a{border-bottom:1px solid transparent;padding:8px 0}nav a:hover{border-bottom-color:currentColor}.menu-toggle{display:none}.hero-copy{position:relative;z-index:1;padding:45px 5% 30px;max-width:790px}h1{font-size:clamp(88px,9.1vw,143px);line-height:.89;letter-spacing:-.068em}h1 em{letter-spacing:-.055em}.intro{font-family:Editorial,serif;font-size:clamp(22px,2vw,29px);line-height:1.1;margin-top:24px;letter-spacing:-.025em}.expertise{font-size:14px;margin-top:30px;display:flex;gap:12px;flex-wrap:wrap;max-width:540px}.text-link{display:inline-block;font-size:14px;letter-spacing:.14em;line-height:1.6;border:0;border-bottom:1px solid currentColor;background:transparent;color:inherit;padding:6px 0;margin-top:48px}.text-link:hover{opacity:.55}.hero-aside,.scroll-note{position:absolute;z-index:1;right:4.5%;font-size:13px;letter-spacing:.045em;color:white}.hero-aside{top:49%}.scroll-note{bottom:28px}.scroll-note span{height:46px;width:1px;background:white;display:block;margin:14px 0 0 20px}.about{display:grid;grid-template-columns:35% 65%;border-bottom:1px solid var(--line)}.architecture{position:relative;min-height:355px;overflow:hidden}.architecture img{width:100%;height:100%;object-fit:cover;position:absolute}.architecture>span{position:absolute;color:white;left:14%;top:17%;font-size:13px;line-height:1.5;letter-spacing:.06em}.about-copy{padding:58px 6% 48px;position:relative;display:grid;grid-template-columns:1.3fr 1fr;align-items:end;gap:32px}.section-number{position:absolute;right:6%;top:32px;font-size:14px}h2{font-size:clamp(46px,5.6vw,84px);line-height:.96;letter-spacing:-.055em}.about-copy p{font-size:16px;line-height:1.55;padding-bottom:4px}.section-pad{padding:44px 5% 48px}.section-label{display:flex;justify-content:space-between;font-size:14px;letter-spacing:.12em;margin-bottom:20px}.services details{border-bottom:1px solid var(--line)}.services details:last-of-type{border:0}.services summary{display:grid;grid-template-columns:6% 51% 1fr 30px;align-items:center;gap:12px;list-style:none;padding:20px 0;cursor:pointer}.services summary::-webkit-details-marker{display:none}.index{font-size:13px}.services h3{font-size:clamp(32px,4.3vw,63px);line-height:1;letter-spacing:-.055em}.services summary p{font-size:16px;line-height:1.5;color:#333}.expand{font-family:Arial;font-size:26px;font-weight:300;justify-self:end;transition:transform .2s}details[open] .expand{transform:rotate(45deg)}.service-detail{margin:0 8% 22px 7%;max-width:720px;font-size:17px;line-height:1.55}.services-foot{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-top:42px;font-size:13px}.services-foot>span:last-child{font-size:12px;line-height:1.3}.work{color:white;background:#111;padding-top:58px;padding-bottom:64px}.work h2{font-size:clamp(45px,6.5vw,100px);margin:50px 0 60px}.applications{display:grid;grid-template-columns:repeat(3,1fr);gap:42px}.applications article{border-top:1px solid #666;padding-top:20px}.applications span{font-size:13px;letter-spacing:.1em}.applications h3{font-size:33px;line-height:1.1;letter-spacing:-.03em;margin:20px 0 14px}.applications p{font-size:17px;color:#ccc;max-width:340px}.approach{padding-top:52px;padding-bottom:70px}.approach-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:8%;margin-top:60px}.approach-grid h2{font-size:clamp(45px,5.6vw,83px)}.approach-intro{font-family:Editorial,serif;font-size:29px;line-height:1.2;max-width:470px}ol{list-style:none;padding:0;margin:35px 0 0}ol li{display:flex;gap:28px;padding:21px 0;border-top:1px solid var(--line)}ol li>span{font-size:13px;margin-top:5px}ol h3{font-size:30px;line-height:1.1;margin-bottom:8px}ol p{font-size:16px;color:#444}.contact{background:#eee;border-top:1px solid var(--line);padding-top:48px;padding-bottom:70px}.contact h2{font-size:clamp(64px,10vw,154px);margin:48px 0}.contact-bottom{display:flex;align-items:flex-end;justify-content:space-between;gap:30px}.contact-bottom p{font-size:18px;line-height:1.45}.contact-bottom button{margin:0}footer{padding:32px 5%;display:flex;align-items:center;gap:40px}footer .wordmark{font-size:42px}footer span,footer>a:last-of-type{font-size:12px;letter-spacing:.075em}footer>a:last-of-type{margin-left:auto}dialog{border:1px solid #aaa;background:#fff;max-width:620px;width:calc(100% - 32px);max-height:90svh;padding:42px;color:#111}dialog::backdrop{background:rgba(0,0,0,.55);backdrop-filter:blur(5px)}dialog .close{position:absolute;top:14px;right:18px;border:0;background:none;font-size:30px}.eyebrow{font-size:12px;letter-spacing:.1em}dialog h2{font-size:58px;margin:25px 0 20px}dialog>p{font-size:16px;color:#555}form{margin-top:25px}label{display:block;font-size:14px;margin-top:18px}input,select,textarea{display:block;width:100%;border:1px solid #bbb;background:white;color:#111;border-radius:0;padding:12px;margin-top:7px}textarea{resize:vertical}.solid-button{width:100%;background:#111;color:white;border:1px solid #111;padding:16px;margin-top:20px;font-size:14px;letter-spacing:.1em}#brief-status{font-size:14px;margin-top:12px}
@media(min-width:1600px){.hero-copy{padding-top:70px}.hero{max-height:1000px}}@media(max-width:1100px){header{gap:35px}nav{gap:22px}.hero{min-height:660px}.hero-copy{padding-top:50px}.hero h1{font-size:10.5vw}.hero-copy{max-width:65%}.intro{font-size:25px}.expertise{gap:8px;max-width:470px}.text-link{margin-top:32px}.hero-aside{right:3%;font-size:12px}.about-copy{gap:20px;padding-top:60px}.about-copy h2{font-size:5.7vw}.services summary{grid-template-columns:5% 48% 1fr 25px}.services summary p{font-size:15px}.about-copy p{font-size:15px}}
@media(max-width:700px){header{padding:22px 6%;gap:22px}.wordmark{font-size:43px}.brand-note{font-size:12px}.menu-toggle{display:block;margin-left:auto;border:0;background:none;font-size:13px;padding:10px 0}nav{display:none;position:absolute;top:80px;right:6%;left:6%;background:#fff;padding:20px;border:1px solid #ddd;gap:0}nav.open{display:flex;flex-direction:column}nav a{padding:12px}.hero{height:auto;min-height:830px}.hero-photo{inset:80px 0 0 22%;background-position:43% 0;background-size:auto 100%}.hero:after{background:linear-gradient(90deg,#fff 0%,rgba(255,255,255,.9) 7%,rgba(255,255,255,.5) 35%,transparent 80%),linear-gradient(0deg,#fff 0%,rgba(255,255,255,.98) 19%,transparent 55%)}.hero-copy{padding:55px 6% 38px;max-width:none}.hero h1{font-size:clamp(65px,15.5vw,110px);line-height:.94;letter-spacing:-.065em}.intro{font-size:25px;max-width:330px;margin-top:175px;line-height:1.15}.desktop{display:none}.expertise{font-size:13px;gap:7px;margin-top:23px;max-width:330px}.text-link{margin-top:28px;font-size:13px}.hero-aside,.scroll-note{display:none}.about{grid-template-columns:1fr}.architecture{min-height:260px}.architecture img{object-position:50% 80%}.architecture>span{left:6%;top:14%}.about-copy{padding:50px 6% 38px;grid-template-columns:1fr;gap:25px}.about-copy h2{font-size:clamp(48px,12vw,75px)}.about-copy p{font-size:17px}.section-number{top:20px}.section-pad{padding:35px 6% 42px}.section-label{font-size:12px;margin-bottom:20px}.services summary{grid-template-columns:25px 1fr 24px;gap:12px;padding:23px 0}.services h3{font-size:clamp(29px,7.5vw,45px);line-height:1.02}.services summary p{grid-column:2;grid-row:2;font-size:16px}.expand{grid-column:3;grid-row:1}.service-detail{margin:0 5px 22px 37px;font-size:16px}.services-foot{align-items:flex-start;margin-top:26px;font-size:12px}.services-foot>span:last-child{max-width:130px}.work h2{font-size:11vw;margin:40px 0}.applications{grid-template-columns:1fr;gap:28px}.applications h3{margin:16px 0 12px;font-size:34px}.applications p{max-width:100%}.approach-grid{grid-template-columns:1fr;gap:35px;margin-top:40px}.approach-grid h2{font-size:12vw}.approach-intro{font-size:28px}.contact h2{font-size:15vw;margin:38px 0}.contact-bottom{align-items:flex-start;flex-direction:column;gap:25px}.contact-bottom p{font-size:17px}footer{padding:25px 6%;flex-wrap:wrap;gap:20px}footer .wordmark{font-size:37px}footer span{font-size:12px}footer>a:last-of-type{margin-left:0}footer>span:last-child{margin-left:auto}dialog{padding:35px 22px}dialog h2{font-size:48px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
.language-toggle{order:4;flex:none;background:transparent;border:1px solid currentColor;border-radius:0;padding:7px 10px;font-size:13px;line-height:1;letter-spacing:.08em}.language-toggle:hover{background:#111;color:white}.lang-ru h1{font-size:clamp(76px,7.5vw,120px)}.lang-ru .services h3{font-size:clamp(28px,3.3vw,50px)}.lang-ru .about-copy h2{font-size:clamp(40px,4.7vw,70px)}.lang-ru .work h2{font-size:clamp(40px,5.3vw,82px)}.lang-ru .approach-grid h2{font-size:clamp(40px,4.4vw,68px)}.lang-ru .contact h2{font-size:clamp(54px,7.7vw,120px)}
@media(max-width:1100px){header{gap:25px}nav{gap:17px}.lang-ru nav{font-size:13px}.lang-ru .hero h1{font-size:8.8vw}.lang-ru .hero-copy{max-width:72%}}
@media(max-width:700px){header{gap:18px}.language-toggle{order:0;margin-left:auto}.menu-toggle{margin-left:0}.lang-ru .hero-copy{max-width:none}.lang-ru .hero h1{font-size:clamp(48px,12vw,85px);line-height:1.08}.lang-ru .hero .intro{margin-top:175px}.lang-ru .about-copy h2{font-size:11vw}.lang-ru .services h3{font-size:clamp(23px,6vw,36px)}.lang-ru .work h2{font-size:7.8vw;line-height:1.15}.lang-ru .approach-grid h2{font-size:10vw}.lang-ru .contact h2{font-size:11vw;line-height:1.12}}

/* Motion keeps the editorial layout and native scrolling intact. */
.architecture>span{font-size:14px;line-height:1.55;max-width:80%;z-index:1}
.motion-ready .reveal{opacity:0;transform:translate3d(0,30px,0);transition:opacity .85s ease,transform 1s cubic-bezier(.22,1,.36,1);transition-delay:var(--reveal-delay,0ms)}
.motion-ready .reveal.is-visible{opacity:1;transform:translate3d(0,0,0)}
.motion-ready .hero-photo{transform:translate3d(0,var(--hero-shift,0px),0) scale(1.06);transform-origin:center;will-change:transform}
.motion-ready .architecture img{transform:scale(1.08) translate3d(0,var(--architecture-shift,0px),0);will-change:transform}
.services summary{transition:background-color .25s ease}
.services summary:hover{background-color:#f5f5f5}
.text-link{position:relative;transition:opacity .25s ease}
.text-link:after{content:'';position:absolute;bottom:-1px;left:0;width:100%;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .35s ease}
.text-link:hover:after,.text-link:focus-visible:after{transform:scaleX(1)}
@media(max-width:700px){.motion-ready .reveal{transform:translate3d(0,20px,0)}.motion-ready .reveal.is-visible{transform:none}}
@media(prefers-reduced-motion:reduce){.motion-ready .reveal{opacity:1;transform:none;transition:none}.motion-ready .hero-photo,.motion-ready .architecture img{transform:none;will-change:auto}}

.contact-actions{display:flex;flex-direction:column;align-items:flex-start;gap:16px}.contact-email{font-size:clamp(18px,2.2vw,28px);overflow-wrap:anywhere}.contact-email:hover{text-decoration:underline;text-underline-offset:5px}.email-fallback{margin-top:18px;font-size:14px}.email-fallback a{text-decoration:underline;overflow-wrap:anywhere}

/* Portrait edition: a crisp editorial spread, with the photograph intact. */
.hero{height:auto;min-height:0;display:grid;grid-template-columns:48% 52%;grid-template-rows:auto minmax(690px,calc(100svh - 120px));background:#fff;isolation:isolate}
.hero:after{display:none}
.hero header{grid-column:1/-1;grid-row:1;min-height:118px;background:#fff;padding:25px 5%;gap:32px;border-bottom:1px solid #dedede}
.hero .hero-photo{position:relative;inset:auto;grid-column:2;grid-row:2;background:none;filter:none;overflow:hidden;transform:none}
.hero-photo img{width:100%;height:100%;position:absolute;inset:0;object-fit:cover;object-position:50% 38%;display:block}
.hero .hero-copy{grid-column:1;grid-row:2;max-width:none;align-self:center;padding:52px 10.4%;z-index:1}
.hero h1{font-size:clamp(72px,7.2vw,120px);line-height:1.04;letter-spacing:-.045em}
.hero .intro{font-size:clamp(22px,1.95vw,30px);line-height:1.25;margin-top:30px;max-width:390px}
.hero .expertise{font-size:14px;line-height:1.65;gap:9px;margin-top:28px}
.hero .text-link{margin-top:40px}
.hero .hero-aside{display:none}
.hero .scroll-note{right:4%;bottom:30px;font-size:12px;letter-spacing:.11em;text-shadow:0 1px 6px #000}
.hero .scroll-note span{height:30px}
.hero .brand-note{font-size:12px;letter-spacing:.14em}
.lang-ru .hero .hero-copy{max-width:none}
.lang-ru .hero h1{font-size:clamp(46px,5.35vw,85px);line-height:1.14;letter-spacing:-.04em}
.motion-ready .hero .hero-photo{transform:none;will-change:auto}
.motion-ready .hero-photo img{transform:translate3d(0,var(--hero-shift,0px),0) scale(1.08);transform-origin:center;will-change:transform}
@media(min-width:1600px){.hero{max-height:none}.hero .hero-copy{padding-top:65px;padding-bottom:65px}}
@media(max-width:1100px) and (min-width:701px){.hero{grid-template-columns:48% 52%;grid-template-rows:auto minmax(610px,calc(100svh - 110px))}.hero header{gap:20px;min-height:110px}.hero .hero-copy{padding:40px 10%}.hero h1{font-size:8vw}.lang-ru .hero h1{font-size:5.5vw}.hero .intro{font-size:23px}.hero .desktop{display:none}.hero nav{gap:16px;font-size:13px}}
@media(max-width:700px){
.hero{display:flex;flex-direction:column;min-height:0;height:auto}
.hero header{order:0;min-height:92px;padding:22px 6%;gap:16px}
.hero .hero-photo{order:1;flex:none;width:88%;height:auto;aspect-ratio:3/4;max-height:590px;margin:12px 6% 0;grid-area:auto}
.hero-photo img{object-position:50% 40%}
.hero .hero-copy{order:2;width:100%;padding:32px 6% 42px;max-width:none;align-self:auto}
.hero h1{font-size:clamp(64px,17vw,104px);line-height:1.04}
.lang-ru .hero h1{font-size:clamp(44px,11.5vw,72px);line-height:1.14}
.hero .intro,.lang-ru .hero .intro{margin-top:24px;font-size:25px;max-width:420px;line-height:1.24}
.hero .expertise{margin-top:23px;font-size:14px;max-width:none}
.hero .text-link{margin-top:28px;font-size:14px}
.hero .scroll-note{display:none}
.hero nav{z-index:5;top:82px;color:#111}
.motion-ready .hero-photo img{transform:none;will-change:auto}
}
@media(prefers-reduced-motion:reduce){.motion-ready .hero-photo img{transform:none;will-change:auto}}

/* Cinematic chapter transitions, driven by native scroll in both directions. */
.slide-deck{position:relative;isolation:isolate}
.slide-scene{position:relative}
.slide-surface{position:relative;background:#fff}
.cinematic-motion .slide-scene{position:sticky;top:var(--scene-top,0px)}
.cinematic-motion .slide-surface{transform:translate3d(0,var(--scene-lift,0px),0) scale(var(--scene-scale,1));transform-origin:50% 90%;border-radius:var(--scene-radius,0px);overflow:clip;box-shadow:0 -16px 65px rgba(0,0,0,.12)}
.cinematic-motion .slide-surface::before{content:'';position:absolute;inset:0;z-index:8;pointer-events:none;background:#000;opacity:var(--scene-shade,0)}
.cinematic-motion .scene-on-screen .slide-surface{will-change:transform}
.slide-surface.work{background:#111}
.slide-surface.contact{background:#eee}
.motion-line{display:block;padding-bottom:.12em;margin-bottom:-.12em;overflow:clip}
.motion-line-inner{display:block}
.cinematic-motion .motion-line-inner{transform:translate3d(0,115%,0) rotate(3deg);transform-origin:left center;opacity:0;transition:transform 1.15s cubic-bezier(.16,1,.3,1),opacity .6s ease;transition-delay:calc(var(--line-index,0)*120ms)}
.cinematic-motion .scene-active .motion-line-inner{transform:translate3d(0,0,0) rotate(0);opacity:1}
.cinematic-motion .scene-reveal{opacity:0;transform:translate3d(0,48px,0);transition:transform 1s cubic-bezier(.16,1,.3,1),opacity .7s ease;transition-delay:calc(var(--item-index,0)*65ms)}
.cinematic-motion .scene-reveal.in-view{opacity:1;transform:translate3d(0,0,0)}
.cinematic-motion .hero-photo img,.cinematic-motion .architecture img{transform:translate3d(0,var(--photo-y,0px),0) scale(var(--photo-scale,1.04));transform-origin:50% 50%;will-change:transform}
.cinematic-motion .architecture{min-height:70svh}
.cinematic-motion .about{min-height:100svh;grid-template-columns:42% 58%}
.cinematic-motion .about-copy{grid-template-columns:1fr;align-content:center;gap:45px;padding:90px 10%}
.cinematic-motion .services,.cinematic-motion .work,.cinematic-motion .approach,.cinematic-motion .contact{min-height:100svh;display:flex;flex-direction:column;justify-content:center}
.cinematic-motion .section-label{margin-bottom:36px}
.cinematic-motion .hero header{animation:header-in .9s cubic-bezier(.16,1,.3,1) both}
@keyframes header-in{from{opacity:0;transform:translateY(-25px)}to{opacity:1;transform:none}}
@media(max-width:700px){
 .cinematic-motion .about{grid-template-columns:1fr}
 .cinematic-motion .architecture{min-height:45svh}
 .cinematic-motion .about-copy{padding:55px 6%;gap:30px}
 .cinematic-motion .motion-line-inner{transition-duration:.85s;transform:translate3d(0,108%,0) rotate(2deg)}
 .cinematic-motion .scene-reveal{transform:translate3d(0,30px,0)}
 .cinematic-motion .scene-reveal.in-view{transform:none}
 .cinematic-motion .hero-photo img{transform:translate3d(0,var(--photo-y,0px),0) scale(var(--photo-scale,1.04))}
}
@media(prefers-reduced-motion:reduce){
 .slide-scene{position:relative!important;top:auto!important}
 .slide-surface{transform:none!important;border-radius:0!important;box-shadow:none!important}
 .motion-line-inner,.scene-reveal{transform:none!important;opacity:1!important;animation:none!important}
}
