@font-face{font-family:Manrope;src:url(manrope-cyrillic-wght-normal.woff2) format('woff2');font-weight:200 800;font-display:swap;unicode-range:U+0400-052F,U+2DE0-2DFF,U+A640-A69F}@font-face{font-family:Manrope;src:url(manrope-latin-wght-normal.woff2) format('woff2');font-weight:200 800;font-display:swap}
:root{--muted:#a5a5a5}svg[focusable=false]{width:20px;height:20px;display:inline-block;flex-shrink:0;vertical-align:middle}.arrow-down{rotate:90deg}.arrow-up{rotate:-90deg}.hero-caption svg{width:12px;height:12px}.nav-availability svg{width:14px;height:14px}.hero-role svg{width:16px;height:16px}.process-caption{gap:20px}.process-caption>span:first-child{display:flex;align-items:center;gap:12px}.process-caption svg{width:14px;height:14px}.contact-title>span svg{width:8vw;height:8vw}.contact-links a{display:flex;gap:10px;align-items:center}.contact-links svg{width:18px;height:18px}footer a{display:flex;gap:10px}.bio-text{font-family:Manrope,sans-serif;font-size:22px;line-height:1.55}.bio-text em{font-style:normal;color:var(--muted)}
.work{height:250svh}.project-card{width:400px;height:338px;top:-169px;left:-200px;border-radius:7px;padding:0;box-shadow:0 24px 55px #0007}.project-card .cover{height:266px;overflow:visible;background:#101010}.cover img{display:block;width:100%;height:100%;object-fit:contain;transform:none!important;transition:none!important}.project-card .card-overlay{position:relative;inset:auto;height:72px;opacity:1;transform:none;display:grid;grid-template-columns:1fr 24px;grid-template-rows:auto auto;gap:5px;padding:12px 16px;text-align:left;background:#101010}.card-overlay strong{font-size:23px;grid-column:1}.card-overlay span{font-size:7px;grid-column:1}.card-overlay>svg{grid-column:2;grid-row:1/3;align-self:center}.work-bottom{font-size:9px}.list-link{display:flex;gap:12px;align-items:center;min-height:44px}
.project-list{padding:100px 7vw 70px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:80px 4vw;max-width:1800px;margin:auto}.project-entry{min-width:0;perspective:1400px}.project-entry:nth-child(even){padding-top:100px}.project-list .entry-art{padding:0;display:block;width:100%;position:relative;overflow:visible;border:0;background:none;min-height:0;transform-origin:center center;clip-path:inset(0 0 100% 0);transition:clip-path 1.1s var(--ease),transform 1s var(--ease)}.project-entry.entered .entry-art{clip-path:inset(0)}.project-list .entry-art img{display:block;width:100%;height:auto;object-fit:contain;border-radius:5px;transform:none!important}.entry-open{position:absolute;right:14px;bottom:14px;width:44px;height:44px;display:grid;place-items:center;color:#fff;background:#141414d9;border:1px solid #ffffff30;border-radius:50%;backdrop-filter:blur(8px);transition:rotate .5s,background .3s}.entry-open svg{width:19px;height:19px}.entry-art:hover .entry-open{rotate:45deg;background:#080808}.entry-art:hover{transform:rotateX(2deg) rotateY(-3deg)}.entry-copy{padding:23px 0 0}.entry-kind{font-family:Manrope,sans-serif;font-size:11px;color:var(--muted);margin-bottom:13px}.project-list .entry-copy h3 button{display:flex;justify-content:space-between;align-items:center;width:100%;border:0;padding:0;gap:15px;text-align:left;font:500 38px/1.1 var(--display);color:var(--fg);min-height:44px}.entry-copy h3 svg{width:23px;height:23px}.entry-description{font:15px/1.6 Manrope,sans-serif;margin-top:15px;max-width:490px}.entry-status{display:block;font:10px/1.5 Manrope,sans-serif;color:var(--muted);margin-top:18px}.project-list button:hover strong{transform:none}
.dialog-content{display:block}.dialog-art{min-height:0;height:auto;background:#101010}.dialog-art .cover{min-height:0;height:auto}.dialog-art .cover img{width:100%;height:auto;object-fit:contain}.dialog-copy{max-width:850px;margin:auto;padding:36px 44px}.dialog-copy>p{font:17px/1.6 Manrope,sans-serif}.dialog-copy .art-note{font:11px/1.6 Manrope,sans-serif}.dialog-copy ul{font:14px/1.7 Manrope,sans-serif}.dialog-copy h3{font-size:11px}.dialog-site{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--border);padding:22px 0;font:14px Manrope,sans-serif}.dialog-site[hidden]{display:none}.dialog-close{position:sticky;top:12px;float:right;margin:12px;z-index:10;background:#080808e8;color:#fff;width:44px;height:44px;display:grid;place-items:center}.dialog-art{clear:none}.dialog-close+div{margin-top:-68px}.dialog-close svg{width:20px;height:20px}.project-cta{font-size:10px;align-items:center}.motion-off .entry-art{clip-path:inset(0);transition:none;transform:none!important}
.phone-demo{padding:100px 5vw 60px;background:#17191a;color:#fafaf7;position:relative;margin:70px 0 0}.phone-intro{display:grid;grid-template-columns:1fr 1.5fr;gap:16px 70px;max-width:1500px;margin:auto}.phone-intro>p:first-child{font-size:13px;margin:10px 0}.phone-intro h2{font-size:clamp(36px,5vw,76px);line-height:1.04;letter-spacing:-.06em;margin:0;grid-column:2;grid-row:1/3}.phone-intro>p:last-child{font-size:17px;max-width:300px;color:#bfc2bf;margin:0;line-height:1.5}.phone-controls{display:flex;gap:8px;margin:35px auto 22px;max-width:1500px}.phone-controls button{background:transparent;color:#ccc;border:1px solid #ffffff40;border-radius:100px;min-height:46px;padding:10px 24px;cursor:pointer;transition:background .25s,color .25s}.phone-controls button.active{background:#f8f8f5;color:#17191a;border-color:#f8f8f5}.phone-stage{height:680px;position:relative;overflow:hidden;border-radius:22px;max-width:1500px;margin:auto;background:#716c65}.phone-room{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:brightness(.62);transition:filter .7s}.phone-stage canvas{position:absolute;inset:0;width:100%;height:100%;z-index:2;touch-action:pan-y;cursor:grab}.phone-stage canvas:active{cursor:grabbing}.phone-caption{position:absolute;left:5%;bottom:48px;z-index:4;pointer-events:none;width:300px;text-shadow:0 2px 20px #000}.phone-caption strong{display:block;font-size:25px;line-height:1.15;font-weight:500;letter-spacing:-.04em}.phone-caption span{display:block;font-size:14px;line-height:1.5;margin-top:12px;color:#eee}.spin-phone{position:absolute;bottom:28px;right:28px;z-index:5;background:#fff;color:#202426;display:flex;gap:8px;align-items:center;padding:12px 18px;border-radius:100px;border:0;cursor:pointer;min-height:44px}.phone-disclaimer{font-size:11px;opacity:.6;max-width:1500px;margin:18px auto 0}.phone-fallback{position:absolute;left:50%;top:40px;transform:translateX(-50%) rotate(8deg);width:240px;padding:28px 12px;border:9px solid #161719;border-radius:38px;background:#e5eeea;color:#172420;box-shadow:20px 30px 80px #0005}.phone-fallback p{background:white;padding:14px;border-radius:18px;font-size:13px}.phone-fallback img{width:100%;border-radius:12px}.scene-ready .phone-fallback,.scene-ready .scene-fallback{display:none}.scene-fallback{position:absolute;width:100%;height:100%;inset:0;object-fit:contain;pointer-events:none}.scene-ready canvas{visibility:visible}.phone-stage:not(.scene-ready) canvas{visibility:hidden}

.phone-demo{background:var(--bg);color:var(--fg);margin:0;padding:100px 7vw;border-top:1px solid var(--border);border-bottom:1px solid var(--border);font-family:Manrope,sans-serif}.phone-intro h2{font-family:var(--display);font-weight:500;letter-spacing:-.025em}.phone-stage{border-radius:6px}.phone-caption{bottom:95px}.phone-stage[data-step="1"] .phone-caption{left:auto;right:5%;text-align:right}.phone-controls button{font:13px Manrope,sans-serif}.phone-stage canvas{display:block}.phone-fallback{margin:0}.phone-controls button:focus-visible,.spin-phone:focus-visible{outline:2px solid #fff;outline-offset:5px}
@media(min-width:1700px){.project-card{width:460px;height:379px;left:-230px;top:-189px}.project-card .cover{height:307px}}
@media(max-width:767px){.phone-demo{padding:70px 0}.phone-intro{display:block;padding:0 6vw}.phone-intro>p:first-child{font-size:11px}.phone-intro h2{font-size:43px;line-height:1.1;margin:22px 0}.phone-intro>p:last-child{font-size:15px;max-width:320px}.phone-controls{margin:25px 6vw;gap:7px}.phone-controls button{padding:10px 15px;min-height:46px;font-size:12px}.phone-stage{height:550px;border-radius:0}.phone-caption,.phone-stage[data-step="1"] .phone-caption{left:6%;right:auto;bottom:90px;max-width:260px;text-align:left}.phone-caption strong{font-size:22px}.phone-caption span{font-size:13px;margin-top:8px}.spin-phone{bottom:22px;right:6%;font-size:12px}.phone-disclaimer{font-size:10px;line-height:1.5;padding:0 6vw;margin-top:18px}.phone-room{object-fit:cover;object-position:35% center}}
@media(max-width:640px){.hero{min-height:600px}.hero-field path{stroke:#454545;opacity:.72;stroke-width:.8}.hero-bottom .name{display:grid;grid-template-columns:1fr auto;gap:0;padding:18px 6vw 22px;font-size:18.5vw;line-height:1.15}.name-word:first-child{grid-column:1}.name-word:last-child{grid-column:1/-1}.name-star{grid-column:2;grid-row:1;font-size:36px;margin-right:8px}.hero-role{font:9px/1.5 Manrope,sans-serif;padding:15px 6vw;gap:20px}.hero-role>span{max-width:170px}.hero-caption{font-size:8px;line-height:1.7;left:6vw;right:6vw}.hero-caption span{max-width:150px}.nav-links{font-size:8px;gap:17px}.connection{height:430px;min-height:430px}.connection-label p{font:11px/1.6 Manrope,sans-serif}.scene-corner{font-size:7px}.about{padding:65px 0}.bio-text{font:16px/1.65 Manrope,sans-serif;padding:28px 23px}.bio-panel{width:88%}.panel-label{font-size:8px}.work{height:auto;border-bottom:0}.work-stage{height:auto;min-height:0;position:relative;overflow:visible;background-image:none}.section-top{position:relative;inset:auto;padding:35px 6vw 12px;display:block}.section-top h2{font:500 33px/1.1 var(--display);letter-spacing:0;max-width:240px}.section-top>span{display:block;font-size:9px;margin-top:12px}.ring-scene,.gallery-arrow,.work-bottom{display:none}.project-list{display:block;padding:20px 6vw 60px}.project-entry,.project-entry:nth-child(even){padding:0;margin-bottom:46px}.project-list .entry-art{clip-path:inset(0);transform:none;transition:none}.entry-art img{border-radius:3px}.entry-copy{padding-top:18px}.entry-kind{font-size:10px;margin-bottom:8px}.project-list .entry-copy h3 button{font-size:32px}.entry-description{font-size:14px;line-height:1.55;margin-top:10px}.entry-status{font-size:10px;margin-top:12px}.entry-open{width:36px;height:36px;bottom:10px;right:10px}.entry-copy h3 svg{width:20px;height:20px}.services{padding:65px 6vw}.service-row p{font:12px/1.6 Manrope,sans-serif}.service-row{gap:12px}.row-arrow svg{width:24px;height:24px}.process{height:110svh}.process-stage{min-height:500px}.process-caption{font-size:8px;flex-direction:column;line-height:1.7;align-items:flex-start;gap:10px}.process-caption svg{width:10px;height:10px}.faq{padding-top:70px}.faq-answer p{font:14px/1.7 Manrope,sans-serif}.faq summary h3{font-size:22px}.contact-top p{font:19px/1.4 Manrope,sans-serif}.contact-links{font-size:10px}.contact-handle>a{font-size:22px}.contact-handle>span{font-size:9px}.contact-title>span svg{width:30px;height:30px}.contact-stage{min-height:780px}footer,footer .motion-toggle{font-size:8px}footer{gap:13px}.dialog-art,.dialog-art .cover{height:auto;min-height:0}.dialog-art svg{transform:none}.dialog-copy{padding:28px 22px}.dialog-copy h2{font-size:36px}.dialog-copy>p{font-size:15px}.dialog-copy ul{font-size:13px}.dialog-copy .art-note{font-size:10px}.dialog-copy h3{font-size:10px}.project-cta{font-size:9px;line-height:1.6}.dialog-close{width:44px;height:44px}.dialog-content{grid-template-columns:1fr}.dialog-site{font-size:13px}}
@media(prefers-reduced-motion:reduce){.project-list .entry-art{clip-path:inset(0);transform:none!important}}

.dialog-close{float:none;position:sticky;top:12px;margin:12px 12px 12px auto}.dialog-close+div{margin-top:0}.dialog-content{position:relative}
@media(max-width:640px){.work{min-height:0}.section-top>span{margin-left:0;text-align:left}.project-list .entry-art{clip-path:inset(0 0 28% 0);transition:clip-path 1s var(--ease)}.project-entry.entered .entry-art{clip-path:inset(0)}.motion-off .project-list .entry-art{clip-path:inset(0)}}
@media(prefers-reduced-motion:reduce){.project-list .entry-art{clip-path:inset(0)}}

.phone-controls button{color:var(--fg);border-color:var(--border)}.phone-controls button.active{background:var(--fg);color:var(--bg);border-color:var(--fg)}.phone-caption{color:#fff}

@media(min-width:641px) and (max-width:1699px){.project-card{width:340px;height:299px;left:-170px;top:-149.5px;transform-style:flat}.project-card .cover{height:227px}}
.project-card{transform-style:flat}

.nav-links a{min-height:44px;display:flex;align-items:center;justify-content:center}

/* The portfolio's own four-blade mark. */
.identity-mark{display:block;fill:currentColor;overflow:visible}.name-star{display:grid;place-items:center;flex:0 0 auto;line-height:1}.name-star .identity-mark{width:.95em;height:.95em}.connection-center strong .identity-mark{width:54px;height:54px}.nav-links a:before{content:'';width:9px;height:9px;top:50%;margin-top:-4.5px;background:currentColor;-webkit-mask:url(identity-mark.svg) center/contain no-repeat;mask:url(identity-mark.svg) center/contain no-repeat}.brand:hover .identity-mark{transform:rotate(270deg) scale(.94)}
@media(max-width:640px){.name-star .identity-mark{width:33px;height:33px}.connection-center strong .identity-mark{width:35px;height:35px}}
.brand .identity-mark{width:47px;height:47px}.intro .identity-mark{width:54px;height:54px}@media(max-width:640px){.brand .identity-mark{width:35px;height:35px}}

/* Approved final offer and the Telegram action. */
.contact-message{min-width:0}.contact-task-cta{display:inline-flex;align-items:center;justify-content:space-between;gap:36px;min-height:54px;margin-top:28px;padding:16px 23px;background:var(--fg);color:var(--bg);border:1px solid var(--fg);border-radius:3px;font:600 14px/1.3 Manrope,sans-serif;transition:background .25s,color .25s}.contact-task-cta svg{width:20px;height:20px;transition:transform .3s}.contact-task-cta:hover svg{transform:translate(2px,-2px)}.contact-task-cta:focus-visible{outline:2px solid var(--fg);outline-offset:5px}.contact-fringe{max-height:130px;opacity:.2}
@media(max-width:640px){.contact-title{top:34%}.contact-task-cta{min-height:52px;margin-top:25px;padding:15px 20px;font-size:14px;gap:30px}.contact-fringe{max-height:100px}}
@media(min-width:641px) and (max-height:800px){.contact-title{top:24%}.contact-title h2{font-size:min(7.4vw,80px)}.contact-task-cta{margin-top:22px}}

/* Two faces keep every project visible all the way around the carousel. */
.project-card{transform-style:preserve-3d;backface-visibility:visible;-webkit-backface-visibility:visible;overflow:visible;background:none;border:0;box-shadow:none}
.card-face{position:absolute;inset:0;display:block;border:1px solid #ffffff22;border-radius:7px;overflow:hidden;background:#101010;backface-visibility:hidden;-webkit-backface-visibility:hidden;box-shadow:0 24px 55px #0007;transition:border-color .25s}
.card-front{transform:translateZ(.5px)}
.card-back{transform:rotateY(180deg) translateZ(.5px)}
.project-card .cover{display:block}
.card-back img{display:block;width:100%;height:100%;object-fit:contain;transform:scaleX(-1)}
.project-card:hover .card-face,.project-card:focus-visible .card-face{border-color:#fff9}
.code-digit{position:absolute;top:0;left:0;display:block;width:16px;height:23px;margin:-11.5px 0 0 -8px;font:400 18px/23px var(--mono);text-align:center;color:var(--fg);pointer-events:none;user-select:none;backface-visibility:visible;-webkit-backface-visibility:visible;will-change:transform;transform-origin:center}
@media(max-width:640px){.code-digit{display:none}}

/* A scroll-driven room with the biography on its back wall. */
.about{padding:clamp(160px,17.5vw,280px) 0}
.about .bio-panel{width:52.5%;max-width:760px;will-change:transform;transition:none;opacity:1}
.about .room-grid{opacity:.65;stroke-width:1;overflow:hidden}
@media(min-width:641px) and (max-width:1023px){.about .bio-panel{width:76%;max-width:680px}.about .bio-text{padding:48px 40px;font-size:20px}}
@media(max-width:640px){.about{padding:112px 0}.about .bio-panel{width:92%}.about .bio-text{padding:32px 24px}}
@media(prefers-reduced-motion:reduce){.about .bio-panel{will-change:auto}}

/* Project frames fly from a vanishing point. The heading follows the floor plane. */
.process{height:250svh;min-height:1500px}
.process-stage{position:relative;top:auto;height:100%;min-height:0;display:block;overflow:hidden;perspective:none;border-top:1px solid var(--border)}
.flight-grid{position:absolute;inset:0;width:100%;height:100%;fill:none;stroke:var(--border);stroke-width:.8;opacity:.65;pointer-events:none}
.flight-core{position:absolute;left:50%;top:calc(var(--flight-focal) - 85px);width:170px;height:170px;transform:translateX(-50%);z-index:2;pointer-events:none}
.flight-core canvas{width:100%;height:100%;display:block}
.flight-core-fallback{position:absolute;inset:25%;width:50%;height:50%;animation:spin 20s linear infinite}
.flight-core-ready .flight-core-fallback{display:none}
.flight-field{position:absolute;inset:0;perspective:1000px;transform-style:preserve-3d;pointer-events:none;z-index:3}
.flight-object{position:absolute;left:50%;top:var(--flight-focal);transform-style:preserve-3d;will-change:transform;pointer-events:none}
.flight-card{width:280px;height:205px;margin:-102.5px 0 0 -140px}
.flight-card-face{position:absolute;inset:0;display:flex;flex-direction:column;background:var(--bg);border:2px solid var(--fg);backface-visibility:hidden;-webkit-backface-visibility:hidden;opacity:var(--flight-alpha,1)}
.flight-card-front{transform:translateZ(4px)}
.flight-card-back{transform:rotateY(180deg) translateZ(4px)}
.flight-card-face img{width:100%;height:calc(100% - 25px);object-fit:contain;display:block}
.flight-card-back img{height:100%;transform:scaleX(-1)}
.flight-card-face>span{height:25px;padding:5px 8px;border-top:1px solid var(--border);font:10px/14px Manrope,sans-serif;color:var(--fg);white-space:nowrap}
.flight-card:before,.flight-card:after{content:'';position:absolute;background:#777;backface-visibility:visible}
.flight-card:before{width:8px;height:100%;right:-4px;top:0;transform:rotateY(90deg)}
.flight-card:after{width:100%;height:8px;bottom:-4px;left:0;transform:rotateX(90deg)}
.flight-shuriken{width:90px;height:90px;margin:-45px 0 0 -45px}
.flight-shuriken>span{position:absolute;inset:0;display:block;backface-visibility:hidden;-webkit-backface-visibility:hidden}
.flight-shuriken svg{width:100%;height:100%;fill:var(--fg)}
.shuriken-slice:first-child{transform:translateZ(-2px)}
.shuriken-slice:nth-child(2){transform:translateZ(-4px)}
.shuriken-slice svg{fill:#777}
.shuriken-face{transform:translateZ(1px)}
.shuriken-back{transform:rotateY(180deg) translateZ(5px)}
.process-catcher{position:absolute;inset:0 0 auto;height:min(100svh,100%);perspective:1000px;pointer-events:none;z-index:1;will-change:transform}
.process-type{position:absolute;bottom:clamp(80px,14svh,180px);left:0;right:0;width:100%;font:800 clamp(80px,12.8vw,205px)/.95 Manrope,sans-serif;letter-spacing:-.065em;transform-origin:50% 100%;margin:0;transform-style:preserve-3d}
.process-type b{display:block;font-size:.6em;line-height:.95}
.process-caption{z-index:5;bottom:22px}
.motion-off .process{height:100svh;min-height:640px}
.motion-off .flight-field{display:none}
.motion-off .process-catcher{perspective:none;display:flex;align-items:center;justify-content:center}
.motion-off .process-type{position:relative;bottom:auto;transform:none!important}
.motion-off .flight-core{opacity:.2;top:30px}
@media(max-width:640px){
 .work{height:280svh;min-height:0;border-bottom:1px solid var(--border)}
 .work-stage{position:sticky;top:0;height:100svh;min-height:0;overflow:hidden;background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-size:25vw 25vw}
 .work-stage .section-top{position:absolute;top:25px;left:6vw;right:6vw;padding:0;display:block}
 .work-stage .section-top h2{font:500 28px/1.1 var(--display);max-width:230px;letter-spacing:0}
 .work-stage .section-top>span{font-size:8px;margin-top:10px}
 .ring-scene{display:block;inset:150px 0 95px;perspective:900px;touch-action:pan-y}
 .project-ring{position:absolute;top:50%;left:50%;width:0;height:0;transform-style:preserve-3d}
 .project-card{--card-width:clamp(155px,44vw,220px);width:var(--card-width);height:calc(var(--card-width)*.666667 + 60px);left:calc(var(--card-width)*-.5);top:calc((var(--card-width)*.666667 + 60px)*-.5);margin:0;transition:none;transform-style:preserve-3d}
 .project-card .cover{height:calc(var(--card-width)*.666667)}
 .project-card .card-overlay{height:60px;padding:10px 11px;gap:5px;grid-template-columns:1fr 15px}
 .project-card .card-overlay strong{font-size:19px;line-height:1.1}
 .project-card .card-overlay span{font:7px/1.3 Manrope,sans-serif;letter-spacing:0}
 .card-overlay>svg{width:14px;height:14px}
 .gallery-arrow{display:grid;top:50%;width:38px;height:38px;z-index:8;background:var(--bg)}
 .gallery-prev{left:10px}.gallery-next{right:10px}
 .work-bottom{position:absolute;left:6vw;right:6vw;bottom:22px;display:flex;font-size:8px;align-items:center}
 .work-bottom .list-link{font-size:9px;gap:8px}
 .code-digit{display:block;font-size:13px;width:12px;margin-left:-6px}
 .process{height:180svh;min-height:1150px}
 .flight-core{width:136px;height:136px;top:calc(var(--flight-focal) - 68px)}
 .flight-card{width:210px;height:158px;margin:-79px 0 0 -105px}
 .flight-card-face img{height:calc(100% - 21px)}
 .flight-card-back img{height:100%}
 .flight-card-face>span{height:21px;padding:3px 6px;font-size:8px}
 .flight-shuriken{width:65px;height:65px;margin:-32.5px 0 0 -32.5px}
 .process-type{font-size:16.3vw;bottom:max(105px,18svh);line-height:1.02;letter-spacing:-.065em}
 .process-caption{bottom:20px;left:6vw;right:6vw;gap:8px;font-size:7px;max-width:88vw}
 .process-caption>span:last-child{text-align:left}
 .motion-off .process{height:100svh;min-height:550px}
}

.process-type>span{white-space:nowrap}
