@font-face{font-family:InterTight;src:url(fonts/InterTight-Regular.woff2) format('woff2');font-weight:400;font-display:swap}@font-face{font-family:InterTight;src:url(fonts/InterTight-Bold.woff2) format('woff2');font-weight:700;font-display:swap}@font-face{font-family:InterTight;src:url(fonts/InterTight-Black.woff2) format('woff2');font-weight:900;font-display:swap}
:root{--bg:#101010;--ink:#f0eee8;--muted:#9b9993;--red:#c02a32;--line:#343331}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:InterTight,Arial,sans-serif}a{color:inherit;text-decoration:none}button{font:inherit}::selection{background:var(--red);color:#fff}.grain{position:fixed;inset:0;pointer-events:none;z-index:100;opacity:.1;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.45'/%3E%3C/svg%3E")}.site-header{height:78px;display:flex;align-items:center;justify-content:space-between;padding:0 4vw;position:absolute;inset:0 0 auto;z-index:10;border-bottom:1px solid #ffffff30}.wordmark{font-weight:900;font-size:27px;letter-spacing:-.07em;white-space:nowrap}.wordmark span{color:var(--red)}.wordmark small{display:inline-block;font-size:.36em;letter-spacing:.2em;vertical-align:top;margin:4px 0 0 8px}.site-header nav{display:flex;gap:38px;font-size:13px;text-transform:uppercase;letter-spacing:.14em}.site-header nav a,.text-button,.email-link{transition:color .25s}.site-header nav a:hover,.text-button:hover,.email-link:hover{color:var(--red)}.header-actions{display:flex;align-items:center;gap:28px}.lang{background:none;border:0;color:#bbb;cursor:pointer;font-size:12px;letter-spacing:.1em}.lang-active{color:#fff;font-weight:700}.header-contact{font-size:13px;text-transform:uppercase;letter-spacing:.12em;border:1px solid #ffffff60;padding:13px 19px}.header-contact span{margin-left:15px;color:var(--red)}.hero{min-height:100svh;position:relative;display:flex;align-items:end;padding:160px 4vw 95px;overflow:hidden}.hero-photo{position:absolute;inset:0;background:url('assets/hero-image.png') center 29%/cover no-repeat;opacity:.72;transform:scale(1.04);animation:heroZoom 9s ease-out both}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,#0c0c0ce8 0%,#0c0c0c92 52%,#0c0c0c15 100%),linear-gradient(0deg,#0c0c0cbf 0%,transparent 55%)}.hero-kicker{position:absolute;top:107px;right:4vw;font-size:11px;letter-spacing:.16em;display:flex;gap:10px;align-items:center}.red-dot{width:7px;height:7px;border-radius:50%;background:var(--red);box-shadow:0 0 14px var(--red)}.hero-content{position:relative;z-index:1;max-width:1140px}.eyebrow,.section-index{font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--red);font-weight:700}.hero h1,.section-heading h2,.statement h2,.contact h2{font-size:clamp(60px,8.2vw,144px);line-height:.92;letter-spacing:-.075em;margin:24px 0 28px;font-weight:900}.hero h1 em,.section-heading h2 em,.contact h2 em{font-style:normal;color:#d7d0c4}.hero-sub{max-width:480px;font-size:clamp(17px,1.55vw,23px);line-height:1.4;color:#e1ddd5}.hero-buttons,.contact-buttons{display:flex;gap:30px;align-items:center;margin-top:30px}.primary-button{display:inline-flex;align-items:center;justify-content:space-between;min-width:275px;padding:21px 22px;background:var(--red);color:#fff;text-transform:uppercase;letter-spacing:.1em;font-size:12px;font-weight:700;transition:background .25s,transform .25s}.primary-button:hover{background:#e3434a;transform:translateY(-3px)}.primary-button span:last-child{font-size:19px}.text-button{text-transform:uppercase;letter-spacing:.12em;font-size:12px;display:inline-flex;gap:18px}.hero-footer{position:absolute;bottom:26px;left:4vw;right:4vw;display:flex;justify-content:space-between;font-size:10px;letter-spacing:.18em;color:#aaa;z-index:1}.statement,.work,.services,.approach,.contact{padding:130px 7vw}.statement{display:grid;grid-template-columns:1fr 2.2fr;column-gap:7vw;border-bottom:1px solid var(--line)}.statement h2{font-size:clamp(45px,5.8vw,96px);margin:0}.statement h2 span{color:#77746f}.statement>p:last-child{grid-column:2;max-width:580px;color:var(--muted);font-size:20px;line-height:1.55;margin:35px 0 0}.section-heading{display:grid;grid-template-columns:1fr 2.2fr;gap:7vw;margin-bottom:60px}.section-heading h2{font-size:clamp(52px,6.3vw,105px);margin:0}.work{background:#171615}.work-feature{position:relative;display:block;height:min(64vw,650px);min-height:380px;overflow:hidden;background:#222}.work-image{position:absolute;inset:0;background:url('assets/work-still.jpg') center/cover no-repeat;filter:grayscale(1);transition:transform .8s,filter .5s}.work-feature:hover .work-image{transform:scale(1.04);filter:grayscale(.35)}.work-feature:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#000a,transparent 45%)}.work-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);border:1px solid #fff9;border-radius:50%;width:85px;height:85px;display:grid;place-items:center;z-index:1;font-size:19px;padding-left:4px}.work-meta{position:absolute;bottom:26px;left:28px;right:28px;display:flex;justify-content:space-between;z-index:1;font-size:12px;letter-spacing:.16em}.work-note{color:var(--muted);font-size:13px}.services-grid{display:grid;grid-template-columns:repeat(2,1fr);border-top:1px solid var(--line)}.service-card{min-height:280px;padding:25px 28px 30px 0;border-bottom:1px solid var(--line);position:relative}.service-card:nth-child(odd){border-right:1px solid var(--line)}.service-card:nth-child(even){padding-left:35px}.service-card>span,.step>span{color:var(--red);letter-spacing:.16em;font-size:12px}.service-card h3{font-size:clamp(35px,3.4vw,58px);letter-spacing:-.045em;margin:46px 0 18px}.service-card p{color:var(--muted);font-size:18px;max-width:400px;line-height:1.4}.service-card b{position:absolute;right:28px;top:22px;font-size:22px;font-weight:400}.approach{background:#e7e3d9;color:#171717}.approach .section-heading h2 em{color:#88857e}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:40px}.step{border-top:1px solid #aaa69d;padding-top:22px}.step h3{font-size:clamp(29px,2.7vw,46px);line-height:1.05;letter-spacing:-.05em;min-height:100px}.step p{font-size:17px;line-height:1.45;color:#68665f}.contact{min-height:740px;display:flex;align-items:center;position:relative;overflow:hidden}.contact-content{position:relative;z-index:2}.contact h2{font-size:clamp(60px,7.3vw,130px)}.contact-content>p:not(.section-index){max-width:520px;font-size:20px;color:var(--muted);line-height:1.45}.contact-orbit{position:absolute;width:650px;height:650px;border:1px solid #5553;border-radius:50%;right:-90px;top:30px;display:grid;place-items:center;animation:orbit 22s linear infinite}.contact-orbit:before,.contact-orbit:after{content:"";position:absolute;border:1px solid #7773;border-radius:50%;inset:60px}.contact-orbit:after{inset:140px}.contact-orbit span{font-size:380px;font-weight:900;letter-spacing:-.12em;color:#ffffff0d;margin-left:-40px}.email-link{font-size:15px;border-bottom:1px solid #aaa;padding-bottom:4px}footer{border-top:1px solid var(--line);padding:36px 4vw;display:flex;align-items:center;justify-content:space-between;gap:15px}footer>span,footer>a:last-child{font-size:11px;color:var(--muted);letter-spacing:.13em}footer>a:last-child{color:#ddd}.reveal{opacity:0;transform:translateY(30px);transition:opacity .8s,transform .8s}.reveal.in-view{opacity:1;transform:none}@keyframes heroZoom{from{transform:scale(1.1)}to{transform:scale(1.04)}}@keyframes orbit{to{transform:rotate(360deg)}}
@media(max-width:900px){.site-header nav{display:none}.hero{min-height:850px}.hero-photo{background-position:64% center}.hero-shade{background:linear-gradient(0deg,#0c0c0cf5 2%,#0c0c0c77 65%,#0c0c0c4d)}.hero-kicker{left:4vw;right:auto}.statement,.section-heading{grid-template-columns:1fr}.statement>p:last-child{grid-column:1}.steps{gap:20px}.contact-orbit{right:-320px;opacity:.65}footer{flex-wrap:wrap}}@media(max-width:640px){.site-header{height:68px}.wordmark{font-size:24px}.header-actions{gap:12px}.header-contact{padding:10px;font-size:10px}.header-contact span{margin-left:5px}.hero{min-height:780px;padding:170px 6vw 80px}.hero-photo{background-position:61% 0%;background-size:auto 75%;background-color:#0e0e0e}.hero-shade{background:linear-gradient(0deg,#0c0c0c 8%,#0c0c0cd9 37%,#0c0c0c30 80%)}.hero-kicker{top:90px;left:6vw;max-width:280px;line-height:1.4}.hero h1{font-size:clamp(53px,12vw,82px)}.hero-sub{font-size:17px}.hero-buttons,.contact-buttons{align-items:stretch;flex-direction:column;gap:20px}.primary-button{min-width:0}.hero-footer{left:6vw;right:6vw}.statement,.work,.services,.approach,.contact{padding:85px 6vw}.statement h2,.section-heading h2{font-size:clamp(44px,11vw,67px)}.statement>p:last-child{font-size:17px}.work-feature{height:430px;min-height:0}.work-image{background-position:56% center}.services-grid,.steps{grid-template-columns:1fr}.service-card:nth-child(odd){border-right:0}.service-card:nth-child(even){padding-left:0}.service-card{min-height:230px}.service-card h3{margin-top:30px}.step h3{min-height:0}.contact{min-height:680px}.contact h2{font-size:clamp(53px,12vw,82px)}.contact-orbit{width:520px;height:520px;right:-380px;top:100px}.contact-orbit span{font-size:280px}footer{padding:35px 6vw;display:grid;grid-template-columns:1fr 1fr}footer>span,footer>a:last-child{line-height:1.4}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.grain,.contact-orbit{animation:none}.reveal{opacity:1;transform:none;transition:none}.hero-photo{animation:none}}
@media(min-width:901px){.hero-content{max-width:1500px}.hero h1{font-size:clamp(60px,6vw,112px);line-height:.96}}
.hero-motion{position:absolute;inset:0;width:100%;height:100%;opacity:0;pointer-events:none;transition:opacity .7s;transform:translateZ(0)}
.hero.motion-ready .hero-motion{opacity:.72}
.hero.motion-ready .hero-photo{opacity:0}
@media(max-width:640px){.hero h1{font-size:clamp(42px,10.5vw,55px);letter-spacing:-.045em;line-height:1.03}.hero-sub{font-size:16px}}
@media(prefers-reduced-motion:reduce){.hero-motion{display:none}.hero-photo{opacity:.72!important}}
.cursor-line{position:fixed;z-index:40;pointer-events:none;opacity:0;background:rgba(255,255,255,.19);transition:opacity .25s}
.cursor-line-x{left:0;right:0;height:1px;top:50%}
.cursor-line-y{top:0;bottom:0;width:1px;left:50%}
.cursor-active .cursor-line{opacity:1}
@media(max-width:900px),(pointer:coarse){.cursor-line{display:none}}
.film-transition{height:210svh;position:relative;background:#101010}
.film-sticky{height:100svh;position:sticky;top:0;display:flex;align-items:center;justify-content:center;overflow:hidden}
.film-frame{width:min(48vw,680px);height:42svh;position:relative;overflow:hidden;border-radius:20px;background:#1a1a1a;will-change:width,height,border-radius}
.film-frame:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#050505a8,transparent 50%);pointer-events:none}
.film-video{display:block;width:100%;height:100%;object-fit:cover;filter:saturate(.6) contrast(1.07)}
.film-caption{position:absolute;z-index:1;bottom:6%;left:5%;font-size:11px;letter-spacing:.19em;font-weight:700;color:#fff}
@media(max-width:640px){.film-transition{height:180svh}.film-frame{width:80vw;height:38svh;border-radius:14px}.film-caption{font-size:9px;line-height:1.5;max-width:220px}}
@media(prefers-reduced-motion:reduce){.film-transition{height:80svh}.film-sticky{height:80svh}.film-frame{width:100%;height:80svh;border-radius:0}}
@media(max-width:640px){html[lang="ru"] .hero h1{font-size:clamp(40px,10vw,52px);letter-spacing:-.02em}}

/* Keep the complete desktop portrait in both WebGL and static fallback. */
@media(min-width:901px){.hero-photo{background-size:auto 100%;background-position:right 3vw center;transform:none;animation:none}.hero-shade{background:linear-gradient(90deg,#0c0c0cf2 0%,#0c0c0c96 42%,#0c0c0c15 76%),linear-gradient(0deg,#0c0c0cbf 0%,transparent 60%)}}
.work-feature{width:100%;padding:0;border:0;color:inherit;font:inherit;text-align:left;cursor:pointer}
.work-feature:focus-visible{outline:2px solid var(--ink);outline-offset:5px}
.work-feature[hidden],.demo-video[hidden]{display:none}
.demo-video{display:block;width:100%;height:auto;max-height:80svh;background:#080808;object-fit:contain}
.work-player{background:#080808;min-height:0}

/* EXIT29 signature: readable wordmark with independently moving signal rings. */
.contact-orbit{animation:none;border:0;overflow:visible;right:-50px}
.contact-orbit:before,.contact-orbit:after{content:none}
.contact-orbit .orbit-brand{position:relative;display:flex;align-items:center;gap:.06em;margin:0;font-size:clamp(90px,10vw,175px);font-weight:900;letter-spacing:-.07em;line-height:1;color:#ffffff12;white-space:nowrap}
.contact-orbit .orbit-brand b{font:inherit;color:#c02a3228}
.signal-ring{position:absolute;inset:8%;border:1px solid #ffffff14;border-radius:50%;animation:signalOrbit 32s linear infinite;pointer-events:none}
.signal-ring:nth-child(2){inset:18% 0;animation-duration:43s;animation-direction:reverse;border-color:#c02a3224}
.signal-ring:nth-child(3){inset:0 23%;animation-duration:51s;border-style:dashed;border-color:#ffffff10}
@keyframes signalOrbit{to{transform:rotate(360deg)}}
@media(max-width:900px){.contact-orbit{right:-250px}.contact-orbit .orbit-brand{font-size:125px}}
@media(max-width:640px){.contact-orbit{right:-100px;top:100px;width:380px;height:380px;opacity:.65}.contact-orbit .orbit-brand{font-size:95px;transform:translateX(-65px)}}
@media(prefers-reduced-motion:reduce){.signal-ring{animation:none}}

/* A short video-signal burst at the actual pointer position, on every section. */
.tap-ripple{position:fixed;z-index:101;left:0;top:0;width:12px;height:12px;border:1px solid rgba(242,236,229,.55);border-radius:50%;transform:translate(-50%,-50%) scale(.15);box-shadow:0 0 16px rgba(242,236,229,.14),inset 0 0 10px rgba(242,236,229,.1);pointer-events:none;animation:tapRipple 1.05s cubic-bezier(.18,.6,.4,1) forwards}
.tap-ripple::after{content:"";position:absolute;inset:-1px;border:1px solid rgba(242,236,229,.38);border-radius:50%;animation:tapRippleInner 1.05s ease-out forwards}
@keyframes tapRipple{0%{opacity:.82;width:12px;height:12px;transform:translate(-50%,-50%) scale(.15)}45%{opacity:.55}100%{opacity:0;width:240px;height:240px;transform:translate(-50%,-50%) scale(1)}}
@keyframes tapRippleInner{0%{opacity:.9;transform:scale(.16)}100%{opacity:0;transform:scale(.72)}}
@media(prefers-reduced-motion:reduce){.tap-ripple{display:none}}
