@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-cyrillic-wght-normal-CHSlOQsW.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-latin-ext-wght-normal-DMtmJ5ZE.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-latin-wght-normal-Dm3htQBi.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-cyrillic-ext-wght-normal-X_5orZeX.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-cyrillic-wght-normal-DiZS0aHC.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-symbols2-wght-normal-CO5SzqOn.woff2)format("woff2-variations");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-vietnamese-wght-normal-DadHysG0.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-latin-ext-wght-normal-Bwz-egvJ.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-latin-wght-normal-XN7g48iV.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--page:#0b0d14;--surface:#11141c;--raised:#1a1e28;--line:#eef0f517;--line-strong:#eef0f52e;--text:#eef0f5;--text-2:#b0b6c4;--text-3:#7d8596;--brass:#dca85f;--radius-s:6px;--radius-m:10px;--radius-l:14px;--ease:cubic-bezier(.22, 1, .36, 1);--pad:clamp(20px, 4vw, 40px);--maxw:1160px;--section:clamp(56px, 7vw, 88px)}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:80px}body{background:var(--page);color:var(--text);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-family:Geist Variable,system-ui,-apple-system,Segoe UI,sans-serif;font-size:16px;line-height:1.6}::selection{background:var(--brass);color:#171006}img{max-width:100%;display:block}a{color:inherit}h1,h2,h3,h4,p,figure,ul,ol,dl,dd{margin:0}ul,ol{padding:0;list-style:none}:focus-visible{outline:2px solid var(--brass);outline-offset:2px;border-radius:2px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{left:var(--pad);z-index:60;background:var(--text);color:var(--page);border-radius:var(--radius-s);padding:8px 14px;font-size:14px;text-decoration:none;position:absolute;top:8px;transform:translateY(-160%)}.skip-link:focus-visible{transform:none}.label{color:var(--text-3);font-family:Geist Mono Variable,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;line-height:1.4}.h2{letter-spacing:-.022em;text-wrap:balance;font-size:clamp(24px,2.9vw,34px);font-weight:500;line-height:1.15}.h3{letter-spacing:-.01em;font-size:17px;font-weight:500;line-height:1.35}.page-title{letter-spacing:-.03em;text-wrap:balance;max-width:24ch;font-size:clamp(30px,4vw,46px);font-weight:500;line-height:1.08}.body{color:var(--text-2);font-size:15.5px;line-height:1.65}.wrap{width:100%;max-width:var(--maxw);padding-inline:var(--pad);margin-inline:auto}.site-header{z-index:40;background:var(--page);border-bottom:1px solid var(--line);position:sticky;top:0}.site-header__inner{max-width:var(--maxw);padding-inline:var(--pad);justify-content:space-between;align-items:center;gap:24px;height:64px;margin-inline:auto;display:flex}.brand{letter-spacing:-.01em;white-space:nowrap;font-size:15px;font-weight:500;text-decoration:none}.site-nav{align-items:center;gap:2px;margin-left:auto;display:flex}.site-nav a{color:var(--text-2);border-radius:var(--radius-s);transition:color .16s var(--ease), background-color .16s var(--ease);padding:7px 10px;font-size:14px;text-decoration:none}.site-nav a:hover{color:var(--text);background:#eef0f50a}.site-nav a[aria-current=page]{color:var(--text)}.header-actions{align-items:center;gap:8px;display:flex}.lang-switch{align-items:center;gap:2px;display:flex}.lang-switch button{appearance:none;font:inherit;letter-spacing:.02em;color:var(--text-3);cursor:pointer;transition:color .16s var(--ease), background-color .16s var(--ease);background:0 0;border:0;border-radius:4px;padding:6px 7px;font-size:12px}.lang-switch button:hover{color:var(--text);background:#eef0f50a}.lang-switch button[aria-pressed=true]{color:var(--text)}.menu-toggle{appearance:none;border:1px solid var(--line);border-radius:var(--radius-s);color:var(--text);cursor:pointer;background:0 0;justify-content:center;align-items:center;width:36px;height:34px;display:none}.mobile-menu{display:none}.btn{height:44px;transition:background-color .16s var(--ease), border-color .16s var(--ease), color .16s var(--ease);border:1px solid #0000;border-radius:8px;align-items:center;gap:8px;padding:0 18px;font-size:14px;font-weight:500;text-decoration:none;display:inline-flex}.btn svg{flex:none}.btn--primary{background:var(--text);color:var(--page)}.btn--primary:hover{background:#fff}.btn--ghost{border-color:var(--line-strong);color:var(--text)}.btn--ghost:hover{background:#eef0f50d;border-color:#eef0f547}.btn--compact{border-radius:var(--radius-s);height:34px;padding:0 12px;font-size:13px}.btn:active{transform:scale(.985)}.arrow-link{color:var(--text);transition:color .16s var(--ease);align-items:center;gap:7px;font-size:14px;font-weight:500;text-decoration:none;display:inline-flex}.arrow-link svg{transition:transform .16s var(--ease)}.arrow-link:hover{color:var(--brass)}.arrow-link:hover svg{transform:translate(2px,-2px)}.text-link{color:var(--text);border-bottom:1px solid var(--line-strong);transition:border-color .16s var(--ease), color .16s var(--ease);padding-bottom:1px;text-decoration:none}.text-link:hover{color:var(--brass);border-color:var(--brass)}.hero{border-bottom:1px solid var(--line);padding-block:clamp(40px,5vw,64px) clamp(48px,6vw,80px)}.hero__name{letter-spacing:-.045em;margin-bottom:clamp(28px,3.4vw,48px);font-size:clamp(44px,8.6vw,96px);font-weight:500;line-height:.94}.hero__name span{white-space:nowrap}.hero__body{grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr);align-items:center;gap:clamp(32px,4.5vw,72px);display:grid}.hero__role{letter-spacing:-.012em;max-width:26ch;font-size:clamp(18px,1.5vw,21px);line-height:1.45}.hero__text{max-width:44ch;margin-top:16px}.hero__actions{flex-wrap:wrap;gap:12px;margin-top:32px;display:flex}.hero__enter{animation:enter .48s var(--ease) both}.hero__enter--2{animation-delay:70ms}@keyframes enter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero__enter,.hero__enter--2{animation:none}*{transition-duration:1ms!important}}.plate{flex-direction:column;gap:12px;margin:0;display:flex}.plate__frame{border-radius:var(--radius-m);background:var(--surface);border:1px solid #eef0f521;position:relative;overflow:hidden;box-shadow:0 16px 40px #00000047}.plate__frame img{border-radius:calc(var(--radius-m) - 1px);width:100%;height:auto}.plate__frame--button{cursor:zoom-in;width:100%;padding:0;display:block}.plate__frame--button img{transition:opacity .16s var(--ease)}.plate__frame--button:hover img{opacity:.88}.plate__cap{color:var(--text-3);align-items:baseline;gap:10px;font-family:Geist Mono Variable,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;line-height:1.5;display:flex}.plate__tick{background:var(--brass);flex:none;width:10px;height:1px;transform:translateY(-3px)}.plate__cap b{color:var(--text-2);font-weight:400}.plate__cap em{text-align:right;margin-left:auto;font-style:normal}.section{padding-block:var(--section);border-bottom:1px solid var(--line)}.section:last-of-type{border-bottom:0}.section-head{grid-template-columns:minmax(0,1fr) minmax(0,.72fr);align-items:end;gap:clamp(24px,4vw,64px);margin-bottom:clamp(32px,4vw,48px);display:grid}.section-head__label{margin-bottom:12px}.section-head__text{color:var(--text-2);max-width:46ch;font-size:15px;line-height:1.65}.split{grid-template-columns:minmax(0,1fr) minmax(0,.9fr);align-items:start;gap:clamp(28px,4.5vw,72px);display:grid}.points{flex-direction:column;gap:8px;margin-top:14px;display:flex}.points li{color:var(--text-2);padding-left:18px;font-size:14.5px;line-height:1.6;position:relative}.points li:before{content:"";background:var(--text-3);width:7px;height:1px;position:absolute;top:.68em;left:0}.roles{border-top:1px solid var(--line)}.roles li{border-bottom:1px solid var(--line);padding:16px 0;font-size:15px}.stack{border-block:1px solid var(--line);flex-wrap:wrap;gap:10px 40px;padding-block:24px;display:flex}.stack li{color:var(--text-2);font-size:15px}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(24px,3.5vw,48px);display:grid}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(24px,3.5vw,48px);display:grid}.block{border-top:1px solid var(--line);padding-top:20px}.block .h3{margin-bottom:10px}.block .points{margin-top:0}.block .body{margin-top:10px}.block .hero__actions{margin-top:16px}.about-text{max-width:52ch;margin-top:20px}.sub-head{margin-top:clamp(48px,6vw,88px)}.contact-intro{max-width:58ch}.contact-intro .h2{margin-bottom:18px}.contact-intro .body+.body{margin-top:12px}.page-foot{padding-bottom:56px}.case-plate{margin-bottom:clamp(28px,4vw,44px)}.case-notes{margin-top:clamp(24px,3vw,36px);margin-bottom:28px}.project-list{border-top:1px solid var(--line)}.project-row{border-bottom:1px solid var(--line);transition:background-color .16s var(--ease);grid-template-columns:minmax(0,1fr) 280px;align-items:start;gap:clamp(24px,4vw,56px);padding:28px 16px 28px 0;text-decoration:none;display:grid}.project-row:hover{background:#eef0f506}.project-row__label{margin-bottom:10px}.project-row h3{letter-spacing:-.015em;margin-bottom:10px;font-size:20px;font-weight:500;line-height:1.3}.project-row__sum{color:var(--text-2);max-width:62ch;font-size:14.5px;line-height:1.65}.project-row__side{flex-direction:column;align-items:flex-start;gap:16px;display:flex}.project-row__tech{color:var(--text-3);flex-direction:column;gap:5px;font-family:Geist Mono Variable,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11.5px;line-height:1.5;display:flex}.project-row:hover .arrow-link{color:var(--brass)}.project-row:hover .arrow-link svg{transform:translate(2px,-2px)}.note{color:var(--text-3);margin-bottom:32px;font-size:14px}.contact-grid{grid-template-columns:minmax(0,1fr) minmax(0,.85fr);align-items:start;gap:clamp(28px,4.5vw,64px);display:grid}.contact-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-l);padding:24px}.contact-rows{border-top:1px solid var(--line);margin-top:8px}.contact-rows a,.contact-rows span.value{color:var(--text);font-size:15px}.contact-rows a{transition:color .16s var(--ease);text-decoration:none}.contact-rows a:hover{color:var(--brass)}.contact-row{border-bottom:1px solid var(--line);grid-template-columns:72px minmax(0,1fr);align-items:baseline;gap:12px;padding:12px 0;display:grid}.contact-row dt{color:var(--text-3);font-family:Geist Mono Variable,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11.5px}.contact-card .btn{justify-content:center;width:100%;margin-top:20px}.site-footer{border-top:1px solid var(--line);padding-block:28px}.site-footer__inner{color:var(--text-3);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px 24px;font-size:13px;display:flex}.site-footer nav{gap:20px;display:flex}.site-footer a{color:var(--text-2);transition:color .16s var(--ease);text-decoration:none}.site-footer a:hover{color:var(--text)}.project-hero{border-bottom:1px solid var(--line);padding-block:40px clamp(40px,5vw,72px)}.back-link{color:var(--text-3);transition:color .16s var(--ease);align-items:center;gap:6px;margin-bottom:32px;font-family:Geist Mono Variable,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;text-decoration:none;display:inline-flex}.back-link:hover{color:var(--text)}.project-hero h1{letter-spacing:-.028em;max-width:22ch;margin-bottom:18px;font-size:clamp(28px,3.6vw,42px);font-weight:500;line-height:1.1}.project-hero .label{margin-bottom:12px}.project-hero__lead{color:var(--text-2);max-width:66ch;font-size:16.5px;line-height:1.65}.chips{color:var(--text-3);flex-wrap:wrap;gap:6px 14px;margin-top:24px;font-family:Geist Mono Variable,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11.5px;display:flex}.chips li+li:before{content:"·";color:var(--text-3);margin-right:14px}.stats{border-top:1px solid var(--line);grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;margin-top:36px;padding-top:20px;display:grid}.stats dt{color:var(--text-3);margin-bottom:6px;font-family:Geist Mono Variable,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;line-height:1.45}.stats dd{color:var(--text);font-size:14.5px;line-height:1.45}.panel{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);align-items:start;gap:clamp(28px,4vw,56px);margin-top:clamp(32px,4vw,48px);display:grid}.panel__quote{border-left:2px solid var(--brass);letter-spacing:-.01em;color:var(--text);max-width:46ch;padding-left:20px;font-size:18px;line-height:1.55}.panel__body{padding-top:2px}.fact-list{flex-direction:column;gap:12px;display:flex}.fact-list li{color:var(--text-2);padding-left:18px;font-size:14.5px;line-height:1.6;position:relative}.fact-list li:before{content:"";background:var(--text-3);width:7px;height:1px;position:absolute;top:.68em;left:0}.workflow{border-top:1px solid var(--line)}.workflow li{border-bottom:1px solid var(--line);grid-template-columns:48px 160px minmax(0,1fr);align-items:baseline;gap:20px;padding:20px 0;display:grid}.workflow__num,.workflow__actor{color:var(--text-3);font-family:Geist Mono Variable,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11.5px}.workflow h3{margin-bottom:6px;font-size:15.5px;font-weight:500}.workflow p{color:var(--text-2);max-width:62ch;font-size:14.5px;line-height:1.6}.gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(24px,3vw,40px);display:grid}.gallery--single{grid-template-columns:minmax(0,1fr)}.gallery figure{flex-direction:column;gap:14px;display:flex}.gallery figcaption .h3{margin-bottom:6px}.gallery figcaption p{color:var(--text-2);font-size:13.5px;line-height:1.6}.doc{max-width:68ch}.doc__block{border-top:1px solid var(--line);padding-top:24px}.doc__block+.doc__block{margin-top:32px}.doc__block h3{letter-spacing:-.012em;margin-bottom:12px;font-size:18px;font-weight:500;line-height:1.35}.doc__block p{color:var(--text-2);font-size:15.5px;line-height:1.7}.doc__block p+p{margin-top:14px}.lightbox{z-index:80;place-items:center;padding:clamp(16px,3vw,40px);display:grid;position:fixed;inset:0}.lightbox__backdrop{cursor:zoom-out;background:#06070bdb;border:0;padding:0;position:absolute;inset:0}.lightbox__dialog{border:1px solid var(--line-strong);border-radius:var(--radius-m);background:var(--surface);max-width:min(1400px,100%);max-height:100%;position:relative;overflow:auto}.lightbox__dialog img{width:auto;max-height:calc(100vh - 80px)}.lightbox__close{z-index:1;border-radius:var(--radius-s);border:1px solid var(--line-strong);background:var(--page);width:36px;height:36px;color:var(--text);cursor:pointer;place-items:center;display:grid;position:absolute;top:clamp(12px,2vw,24px);right:clamp(12px,2vw,24px)}body.lightbox-open{overflow:hidden}.notfound{max-width:52ch;padding-block:clamp(64px,10vw,140px)}.notfound h1{letter-spacing:-.025em;margin:12px 0 14px;font-size:clamp(28px,3.4vw,40px);font-weight:500}@media (width<=900px){.hero__body,.split,.section-head,.contact-grid,.panel{grid-template-columns:minmax(0,1fr)}.section-head{align-items:start}.hero__body{gap:40px}.hero__role{max-width:30ch}.grid-2,.gallery{grid-template-columns:minmax(0,1fr)}.grid-3,.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.stack{gap:10px 28px}.project-row{grid-template-columns:minmax(0,1fr);gap:18px;padding:24px 0}.project-row__side{flex-direction:row;justify-content:space-between;align-items:center;gap:16px}.project-row__tech{display:none}.workflow li{grid-template-columns:36px minmax(0,1fr);gap:8px 16px}.workflow h3,.workflow p{grid-column:2}}@media (width<=860px){.site-nav,.header-actions .btn,.header-actions .lang-switch{display:none}.menu-toggle{display:inline-flex}.mobile-menu{border-top:1px solid var(--line);background:var(--page);display:block}.mobile-menu ul{padding:8px var(--pad) 16px}.mobile-menu a{color:var(--text-2);border-bottom:1px solid var(--line);padding:12px 0;font-size:16px;text-decoration:none;display:block}.mobile-menu a:hover{color:var(--text)}.mobile-menu__foot{padding:16px var(--pad) 24px;justify-content:space-between;align-items:center;gap:16px;display:flex}}@media (width<=560px){.hero{padding-top:32px}.hero__name{letter-spacing:-.04em;font-size:clamp(40px,13.4vw,60px)}.hero__actions .btn{flex:auto;justify-content:center}.grid-3,.stats{grid-template-columns:minmax(0,1fr)}.contact-card{padding:20px}.stats{gap:16px}}
