@font-face{font-family:Fraunces;font-style:normal;font-display:swap;font-weight:100 900;src:url(/fonts/fraunces-latin-ext-full-normal.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Fraunces;font-style:normal;font-display:swap;font-weight:100 900;src:url(/fonts/fraunces-latin-full-normal.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Manrope;font-style:normal;font-display:swap;font-weight:200 800;src:url(/fonts/manrope-cyrillic-ext-wght-normal.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Manrope;font-style:normal;font-display:swap;font-weight:200 800;src:url(/fonts/manrope-cyrillic-wght-normal.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Manrope;font-style:normal;font-display:swap;font-weight:200 800;src:url(/fonts/manrope-latin-ext-wght-normal.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Manrope;font-style:normal;font-display:swap;font-weight:200 800;src:url(/fonts/manrope-latin-wght-normal.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg: #0d1116;--text: #e8f0f6;--muted: #9eaebb;--card: rgba(21, 28, 37, .8);--border: rgba(186, 212, 227, .2);--shadow: 0 20px 48px rgba(0, 0, 0, .46);--accent: #7cc8e4;--header-bg: rgba(13, 17, 22, .82);--focus: #a8def1;--glow-1: rgba(87, 148, 174, .24);--glow-2: rgba(49, 82, 123, .3);--hero-ambient-cool: #3b7ea6;--hero-ambient-warm: #a66f4b;--hero-vignette: #04070b;--hero-sweep: #9bcde5;--hero-noise: #7f9dad;--hero-ambient-opacity: .74;--hero-sweep-opacity: .22;--hero-noise-opacity: .028;--hero-blob1: 54, 132, 174;--hero-blob2: 168, 108, 62;--hero-blob3: 118, 88, 148;--hero-blob-opacity: .3;--paint-c1: 48, 196, 255;--paint-c2: 255, 110, 68;--paint-c3: 236, 82, 194;--paint-c4: 122, 116, 255;--paint-layer-opacity: .48;--paint-x1: 22%;--paint-y1: 18%;--paint-x2: 79%;--paint-y2: 24%;--paint-x3: 28%;--paint-y3: 72%;--paint-x4: 75%;--paint-y4: 68%;--paint-shift-x: 0px;--paint-shift-y: 0px;--paint-saturation: 128%;--paint-brightness: 1.08;--paint-energy: 0;--hero-spotlight-rgb: 140, 199, 228;--hero-spotlight-opacity: .08;--magnetic-max-translate: 6px;--magnetic-max-scale: 1.02;--page-gutter: clamp(1rem, 2.2vw, 1.75rem);--shell-max: 72rem;--content-max: 62rem;--media-max: 62rem;--copy-max: 36rem;--header-height: 4.5rem;--nav-gap: 1.08rem;--section-space: clamp(3.4rem, 5vw, 4.6rem);--section-space-compact: clamp(2.55rem, 3.8vw, 3.1rem);--stack-xs: .42rem;--stack-sm: .72rem;--stack-md: 1rem;--stack-lg: 1.45rem;--type-display: clamp(2.8rem, 5.2vw, 4.4rem);--type-section: clamp(1.9rem, 2.5vw, 2.18rem);--type-h3: clamp(1.08rem, 1.15vw, 1.22rem);--type-body: clamp(1rem, .18vw + .96rem, 1.05rem);--type-small: clamp(.78rem, .1vw + .75rem, .84rem);--type-ui: clamp(.84rem, .16vw + .81rem, .94rem);--leading-display: .95;--leading-heading: 1.1;--leading-body: 1.6;--tracking-display: -.03em;--tracking-heading: -.02em;--tracking-eyebrow: .09em;--radius-card: 1rem;--radius-pill: 999px;--cta-primary-height: 3rem;--cta-primary-pad: 1.16rem;--cta-primary-font: .98rem;--cta-primary-weight: 650;--cta-secondary-height: 3rem;--cta-secondary-pad: 1.08rem;--cta-secondary-font: .96rem;--cta-secondary-weight: 620;--chip-height: 2.18rem;--chip-pad-inline: .86rem;--chip-font: .84rem;--chip-weight: 600;--chip-gap: .48rem;--font-body: "Manrope", "Segoe UI", "Trebuchet MS", sans-serif;--font-display: "Fraunces", Georgia, serif;font-optical-sizing:auto;font-synthesis:none;text-rendering:optimizeLegibility}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--bg)}html.is-menu-open,body.is-menu-open{overflow:hidden;overscroll-behavior:none;height:100%}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{margin:0;min-width:320px;overflow-x:hidden;font-family:var(--font-body);font-weight:450;line-height:var(--leading-body);color:var(--text);background:radial-gradient(circle at 8% -16%,var(--glow-1),transparent 36%),radial-gradient(circle at 90% 116%,var(--glow-2),transparent 42%),var(--bg)}#root{min-height:100vh}@media(min-width:1440px){:root{--shell-max: 73rem;--content-max: 62rem;--media-max: 62rem;--copy-max: 36rem;--header-height: 4.25rem;--nav-gap: 1rem;--section-space: clamp(3.2rem, 4vw, 4.2rem);--section-space-compact: clamp(2.45rem, 3vw, 2.95rem);--type-display: clamp(3.1rem, 3.25vw, 4.1rem);--type-section: clamp(1.84rem, 1.65vw, 2.04rem)}}a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.site{position:relative;isolation:isolate;overflow-x:clip;color:var(--text)}.container{width:min(var(--shell-max),calc(100% - (var(--page-gutter) * 2)));margin-inline:auto}.section{padding:var(--section-space) 0;scroll-margin-top:calc(var(--header-height) + .9rem)}.skip-link{position:fixed;left:var(--page-gutter);top:.75rem;z-index:100;transform:translateY(-140%);border-radius:.5rem;background:var(--text);color:var(--bg);padding:.7rem .9rem;font-weight:750;transition:transform .18s ease}.skip-link:focus-visible{transform:translateY(0);outline:2px solid var(--focus);outline-offset:3px}#projects.section{padding-top:var(--section-space-compact)}.section-head{width:min(100%,var(--content-max));margin:0 auto var(--stack-md)}.section-eyebrow{margin:0 0 var(--stack-xs);text-transform:uppercase;letter-spacing:var(--tracking-eyebrow);font-size:var(--type-small);font-weight:700;color:var(--accent)}.section-title{margin:0;font-size:var(--type-section);line-height:var(--leading-heading);letter-spacing:var(--tracking-heading)}.header{position:sticky;top:0;z-index:30;isolation:isolate;border-bottom:1px solid var(--border);background:var(--header-bg);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.header-inner{position:relative;min-height:var(--header-height);display:flex;align-items:center;justify-content:space-between;gap:1rem}.header-toprow{position:relative;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:.9rem}.header-actions{position:relative;z-index:2;display:flex;align-items:center;min-width:0;gap:.9rem}.header-backdrop{display:none}.header-actions nav{min-width:0}.header-toggles{display:inline-flex;align-items:center;gap:.5rem;flex:0 0 auto}.brand{font-size:var(--type-ui);font-weight:700;letter-spacing:.08em;text-transform:uppercase}.menu-toggle{display:none;flex-direction:column;justify-content:center;align-items:center;gap:.24rem;width:2.32rem;height:2.32rem;border:1px solid var(--border);border-radius:.62rem;background:var(--card);color:var(--text)}.menu-toggle-line{width:1rem;height:1.5px;border-radius:999px;background:currentColor;transition:transform .18s ease,opacity .18s ease}.menu-toggle.is-open .menu-toggle-line:nth-child(1){transform:translateY(5.5px) rotate(45deg)}.menu-toggle.is-open .menu-toggle-line:nth-child(2){opacity:0}.menu-toggle.is-open .menu-toggle-line:nth-child(3){transform:translateY(-5.5px) rotate(-45deg)}.nav-list{margin:0;padding:0;list-style:none;display:flex;gap:var(--nav-gap);flex-wrap:wrap;justify-content:flex-end}.nav-list a{position:relative;display:inline-flex;align-items:center;padding:.12rem .1rem;color:var(--muted);font-size:var(--type-ui);font-weight:550;border-radius:.4rem;transition:color .22s ease}.nav-list a:after{content:"";position:absolute;left:.1rem;right:.1rem;bottom:-.38rem;height:2px;border-radius:999px;background:color-mix(in srgb,var(--accent) 78%,transparent);opacity:0;transform:scaleX(.6);transform-origin:center;transition:opacity .22s ease,transform .22s ease}.nav-list a:hover{color:var(--text)}.nav-list a:hover:after,.nav-list a:focus-visible:after{opacity:.55;transform:scaleX(1)}.nav-list a[aria-current=location],.nav-list a[aria-current=page]{color:var(--text)}.nav-list a[aria-current=location]:after,.nav-list a[aria-current=page]:after{opacity:1;transform:scaleX(1)}.language-switch{position:relative;display:grid;grid-template-columns:1fr 1fr;align-items:center;flex:0 0 auto;width:4.9rem;height:2.22rem;padding:.16rem;border:1px solid var(--border);border-radius:999px;background:var(--card);color:var(--muted);font:inherit;font-size:var(--type-small);font-weight:700;letter-spacing:.03em;transition:border-color .22s ease,box-shadow .22s ease}.language-switch:hover{border-color:var(--accent)}.language-switch-label{position:relative;z-index:1;display:grid;min-width:0;height:100%;place-items:center;border-radius:999px;color:inherit;text-align:center;-webkit-user-select:none;user-select:none}.language-switch-thumb{position:absolute;top:.18rem;left:.18rem;width:calc(50% - .18rem);height:calc(100% - .36rem);border-radius:999px;background:#7cc8e433;border:1px solid rgba(124,200,228,.34);transition:transform .26s cubic-bezier(.22,1,.36,1)}.language-switch.is-en .language-switch-thumb{transform:translate(100%)}.language-switch.is-ru .language-switch-label:first-child{color:var(--text)}.language-switch.is-en .language-switch-label:last-child{color:var(--text)}.hero{position:relative;min-height:max(36rem,calc(100svh - var(--header-height)));min-height:max(36rem,calc(100dvh - var(--header-height)));display:flex;align-items:center;box-sizing:border-box;padding-block:clamp(1.7rem,4vh,2.55rem) clamp(4rem,8vh,5.6rem);overflow:hidden;isolation:isolate}.hero-inner{position:relative;z-index:2;max-width:min(100%,var(--copy-max));margin-inline:auto}.hero-background{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden;background:#0a1017}.hero-ambient-base,.hero-sweep-layer,.hero-grain-layer,.hero-paint-field,.hero-paint-softener,.hero-center-vignette,.hero-blob{position:absolute;inset:0}.hero-ambient-base{background:radial-gradient(76% 92% at 12% 18%,color-mix(in srgb,var(--hero-ambient-cool) 56%,transparent),transparent 68%),radial-gradient(82% 88% at 88% 18%,color-mix(in srgb,var(--hero-ambient-warm) 44%,transparent),transparent 72%),radial-gradient(90% 86% at 16% 94%,rgba(var(--paint-c3),.18),transparent 72%),radial-gradient(78% 78% at 90% 88%,rgba(var(--paint-c4),.14),transparent 72%),linear-gradient(140deg,#111822,#0d141d 42%,#091018)}.hero-sweep-layer{background:radial-gradient(56% 54% at 44% 36%,rgba(214,237,248,.11),transparent 72%),radial-gradient(92% 70% at 28% 88%,rgba(124,200,228,.1),transparent 76%),radial-gradient(48% 42% at 78% 26%,rgba(255,221,208,.08),transparent 76%);opacity:.88}.hero-grain-layer{background-image:radial-gradient(circle at 24% 18%,rgba(255,255,255,.05) 0 .65px,transparent .9px),radial-gradient(circle at 72% 38%,rgba(255,255,255,.03) 0 .72px,transparent .96px),radial-gradient(circle at 42% 76%,rgba(255,255,255,.024) 0 .58px,transparent .84px);background-size:13px 13px,17px 17px,19px 19px;background-position:0 0,8px 5px,4px 10px;opacity:.12}.hero-paint-field{background:radial-gradient(62% 58% at 22% 18%,rgba(var(--paint-c1),calc(var(--paint-layer-opacity) * .62)) 0%,rgba(var(--paint-c1),calc(var(--paint-layer-opacity) * .26)) 46%,rgba(var(--paint-c1),calc(var(--paint-layer-opacity) * .08)) 64%,transparent 84%),radial-gradient(58% 54% at 79% 22%,rgba(var(--paint-c2),calc(var(--paint-layer-opacity) * .5)) 0%,rgba(var(--paint-c2),calc(var(--paint-layer-opacity) * .22)) 48%,rgba(var(--paint-c2),calc(var(--paint-layer-opacity) * .06)) 66%,transparent 86%),radial-gradient(62% 66% at 28% 76%,rgba(var(--paint-c3),calc(var(--paint-layer-opacity) * .48)) 0%,rgba(var(--paint-c3),calc(var(--paint-layer-opacity) * .2)) 50%,rgba(var(--paint-c3),calc(var(--paint-layer-opacity) * .06)) 70%,transparent 88%),radial-gradient(56% 58% at 74% 70%,rgba(var(--paint-c4),calc(var(--paint-layer-opacity) * .4)) 0%,rgba(var(--paint-c4),calc(var(--paint-layer-opacity) * .17)) 52%,rgba(var(--paint-c4),calc(var(--paint-layer-opacity) * .05)) 72%,transparent 90%),radial-gradient(84% 74% at 50% 42%,rgba(206,226,244,.11),transparent 78%);opacity:.96}.hero-paint-softener{background:radial-gradient(80% 68% at 50% 44%,rgba(227,237,247,.048),transparent 74%),radial-gradient(92% 74% at 50% 60%,rgba(83,101,132,.1),transparent 84%),linear-gradient(180deg,#080c1205,#080c121a);opacity:.96}.hero-blob{width:clamp(38rem,58vw,70rem);height:clamp(30rem,48vw,58rem);inset:auto;opacity:.12;isolation:isolate;overflow:visible;transform-origin:center;animation-duration:var(--hero-blob-duration, 84s);animation-timing-function:cubic-bezier(.48,.04,.22,.98);animation-iteration-count:infinite;animation-fill-mode:both;animation-direction:alternate}.hero-blob-layer{position:absolute;inset:0;pointer-events:none;mix-blend-mode:normal}.hero-blob-layer-a{inset:6% 8% 12% 4%;border-radius:44% 56% 54% 46%/40% 48% 52% 60%}.hero-blob-layer-b{inset:16% 14% 8% 10%;border-radius:58% 42% 46% 54%/52% 40% 60% 48%}.hero-blob-layer-c{inset:10% 20% 18% 2%;border-radius:52% 48% 58% 42%/44% 58% 42% 56%}.hero-blob-cyan{animation-name:hero-blob-cyan-path}.hero-blob-cyan .hero-blob-layer-a{background:radial-gradient(98% 92% at 34% 34%,rgba(var(--paint-c1),calc(var(--paint-layer-opacity) * .24)) 0%,rgba(var(--paint-c1),calc(var(--paint-layer-opacity) * .13)) 22%,rgba(var(--paint-c1),calc(var(--paint-layer-opacity) * .05)) 50%,rgba(var(--paint-c4),calc(var(--paint-layer-opacity) * .018)) 70%,transparent 96%),radial-gradient(84% 76% at 72% 58%,rgba(205,232,244,.022) 0%,rgba(205,232,244,.008) 46%,transparent 90%)}.hero-blob-cyan .hero-blob-layer-b{background:radial-gradient(92% 82% at 70% 26%,rgba(var(--paint-c1),calc(var(--paint-layer-opacity) * .13)) 0%,rgba(var(--paint-c1),calc(var(--paint-layer-opacity) * .04)) 34%,transparent 84%),radial-gradient(90% 80% at 22% 74%,rgba(var(--paint-c4),calc(var(--paint-layer-opacity) * .03)) 0%,transparent 88%)}.hero-blob-cyan .hero-blob-layer-c{background:radial-gradient(94% 86% at 52% 66%,rgba(218,239,249,.026) 0%,rgba(var(--paint-c1),calc(var(--paint-layer-opacity) * .03)) 24%,transparent 86%)}.hero-blob-amber{width:clamp(40rem,60vw,72rem);height:clamp(30rem,46vw,56rem);animation-name:hero-blob-amber-path;animation-duration:92s;opacity:.13}.hero-blob-amber .hero-blob-layer-a{background:radial-gradient(98% 90% at 58% 34%,rgba(var(--paint-c2),calc(var(--paint-layer-opacity) * .22)) 0%,rgba(var(--paint-c2),calc(var(--paint-layer-opacity) * .12)) 24%,rgba(var(--paint-c2),calc(var(--paint-layer-opacity) * .05)) 48%,rgba(var(--paint-c3),calc(var(--paint-layer-opacity) * .016)) 70%,transparent 96%),radial-gradient(78% 72% at 30% 64%,rgba(255,228,214,.022) 0%,rgba(255,228,214,.008) 42%,transparent 90%)}.hero-blob-amber .hero-blob-layer-b{background:radial-gradient(90% 80% at 28% 36%,rgba(var(--paint-c2),calc(var(--paint-layer-opacity) * .11)) 0%,rgba(var(--paint-c2),calc(var(--paint-layer-opacity) * .03)) 32%,transparent 84%),radial-gradient(92% 84% at 72% 72%,rgba(var(--paint-c3),calc(var(--paint-layer-opacity) * .024)) 0%,transparent 88%)}.hero-blob-amber .hero-blob-layer-c{background:radial-gradient(96% 84% at 48% 58%,rgba(255,236,224,.022) 0%,rgba(var(--paint-c2),calc(var(--paint-layer-opacity) * .024)) 22%,transparent 86%)}.hero-blob-magenta{width:clamp(38rem,56vw,68rem);height:clamp(30rem,48vw,56rem);animation-name:hero-blob-magenta-path;animation-duration:104s;opacity:.12}.hero-blob-magenta .hero-blob-layer-a{background:radial-gradient(100% 92% at 40% 60%,rgba(var(--paint-c3),calc(var(--paint-layer-opacity) * .2)) 0%,rgba(var(--paint-c3),calc(var(--paint-layer-opacity) * .11)) 26%,rgba(var(--paint-c3),calc(var(--paint-layer-opacity) * .045)) 48%,rgba(var(--paint-c2),calc(var(--paint-layer-opacity) * .015)) 70%,transparent 96%),radial-gradient(76% 72% at 66% 26%,rgba(255,255,255,.02) 0%,rgba(255,255,255,.006) 42%,transparent 90%)}.hero-blob-magenta .hero-blob-layer-b{background:radial-gradient(94% 82% at 70% 42%,rgba(var(--paint-c3),calc(var(--paint-layer-opacity) * .1)) 0%,rgba(var(--paint-c3),calc(var(--paint-layer-opacity) * .028)) 34%,transparent 84%),radial-gradient(90% 84% at 24% 26%,rgba(var(--paint-c2),calc(var(--paint-layer-opacity) * .018)) 0%,transparent 88%)}.hero-blob-magenta .hero-blob-layer-c{background:radial-gradient(96% 86% at 36% 72%,rgba(255,238,248,.02) 0%,rgba(var(--paint-c3),calc(var(--paint-layer-opacity) * .022)) 24%,transparent 86%)}.hero-blob-violet{width:clamp(42rem,62vw,74rem);height:clamp(32rem,50vw,60rem);animation-name:hero-blob-violet-path;animation-duration:112s;opacity:.11}.hero-blob-violet .hero-blob-layer-a{background:radial-gradient(100% 88% at 54% 48%,rgba(var(--paint-c4),calc(var(--paint-layer-opacity) * .17)) 0%,rgba(var(--paint-c4),calc(var(--paint-layer-opacity) * .095)) 30%,rgba(var(--paint-c4),calc(var(--paint-layer-opacity) * .04)) 52%,rgba(var(--paint-c3),calc(var(--paint-layer-opacity) * .014)) 72%,transparent 96%),radial-gradient(78% 74% at 32% 36%,rgba(214,228,255,.018) 0%,rgba(214,228,255,.006) 42%,transparent 90%)}.hero-blob-violet .hero-blob-layer-b{background:radial-gradient(92% 80% at 28% 54%,rgba(var(--paint-c4),calc(var(--paint-layer-opacity) * .075)) 0%,rgba(var(--paint-c4),calc(var(--paint-layer-opacity) * .022)) 34%,transparent 84%),radial-gradient(92% 86% at 70% 30%,rgba(var(--paint-c3),calc(var(--paint-layer-opacity) * .017)) 0%,transparent 88%)}.hero-blob-violet .hero-blob-layer-c{background:radial-gradient(98% 88% at 54% 72%,rgba(227,236,255,.018) 0%,rgba(var(--paint-c4),calc(var(--paint-layer-opacity) * .018)) 24%,transparent 86%)}.hero-center-vignette{background:radial-gradient(44% 48% at 46% 42%,rgba(235,244,251,.07),transparent 64%),linear-gradient(180deg,rgba(4,7,11,.1) 0%,transparent 28%,rgba(4,7,11,.46) 100%),radial-gradient(112% 86% at 50% 108%,rgba(4,7,11,.66),transparent 64%);opacity:.96}.hero.is-paint-paused .hero-blob{animation-play-state:paused}.hero.has-paint-bg .role-line,.hero.has-paint-bg .hero-copy{color:color-mix(in srgb,var(--text) 84%,var(--muted))}.hero.has-paint-bg .trust-line-item{background:#0c1117ad;border-color:#bad4e32e;color:#e8f0f6db}.hero.has-paint-bg .button-outline{background:#0c11179e;border-color:#bad4e32e}@keyframes hero-blob-cyan-path{0%{transform:translate3d(4vw,8vh,0) rotate(-9deg) scale(.96);opacity:.18}24%{transform:translate3d(24vw,2vh,0) rotate(4deg) scale(1.04);opacity:.26}48%{transform:translate3d(44vw,18vh,0) rotate(12deg) scale(.94);opacity:.16}76%{transform:translate3d(16vw,44vh,0) rotate(-6deg) scale(1.08);opacity:.28}to{transform:translate3d(30vw,10vh,0) rotate(6deg) scale(1);opacity:.2}}@keyframes hero-blob-amber-path{0%{transform:translate3d(56vw,4vh,0) rotate(10deg) scale(1.02);opacity:.16}24%{transform:translate3d(34vw,18vh,0) rotate(0) scale(1.06);opacity:.24}52%{transform:translate3d(10vw,34vh,0) rotate(-12deg) scale(.96);opacity:.18}78%{transform:translate3d(40vw,50vh,0) rotate(8deg) scale(1.08);opacity:.25}to{transform:translate3d(24vw,12vh,0) rotate(-4deg) scale(.98);opacity:.18}}@keyframes hero-blob-magenta-path{0%{transform:translate3d(10vw,56vh,0) rotate(-10deg) scale(1.02);opacity:.14}26%{transform:translate3d(46vw,38vh,0) rotate(4deg) scale(1.08);opacity:.22}54%{transform:translate3d(64vw,16vh,0) rotate(14deg) scale(.94);opacity:.16}80%{transform:translate3d(24vw,10vh,0) rotate(-6deg) scale(1.08);opacity:.24}to{transform:translate3d(8vw,36vh,0) rotate(8deg) scale(1);opacity:.17}}@keyframes hero-blob-violet-path{0%{transform:translate3d(62vw,50vh,0) rotate(8deg) scale(1);opacity:.12}28%{transform:translate3d(40vw,24vh,0) rotate(-4deg) scale(1.06);opacity:.2}56%{transform:translate3d(18vw,58vh,0) rotate(-14deg) scale(.96);opacity:.14}82%{transform:translate3d(56vw,8vh,0) rotate(6deg) scale(1.08);opacity:.22}to{transform:translate3d(34vw,42vh,0) rotate(-6deg) scale(1.01);opacity:.15}}.eyebrow{margin:0;color:var(--accent);text-transform:uppercase;letter-spacing:var(--tracking-eyebrow);font-size:var(--type-small);font-weight:700}.role-line{margin:var(--stack-xs) 0 0;color:var(--muted);font-size:var(--type-ui)}.hero-title{margin:var(--stack-sm) 0 0;font-family:var(--font-display);font-size:var(--type-display);line-height:var(--leading-display);letter-spacing:var(--tracking-display)}.hero-copy{margin:var(--stack-md) 0 0;max-width:var(--copy-max);font-size:var(--type-body);color:var(--muted)}.trust-lines{list-style:none;margin:var(--stack-md) 0 0;padding:0;display:flex;flex-wrap:wrap;gap:var(--chip-gap)}.hero-actions{margin-top:var(--stack-lg);display:flex;flex-wrap:wrap;gap:var(--stack-sm)}.hero-scroll-cue{position:absolute;left:50%;bottom:1rem;z-index:3;width:2rem;height:3rem;display:grid;place-items:center;transform:translate(-50%);border-radius:999px;border:1px solid color-mix(in srgb,var(--border) 86%,transparent);background:color-mix(in srgb,var(--bg) 44%,transparent);color:color-mix(in srgb,var(--text) 80%,var(--muted));-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);opacity:.86;transition:transform .22s ease,border-color .22s ease,background-color .22s ease,opacity .22s ease}.hero-scroll-cue:hover{transform:translate(-50%) translateY(-2px);border-color:var(--accent);opacity:1}.hero-scroll-cue:focus-visible{outline:2px solid var(--focus);outline-offset:3px}.hero-scroll-arrow{width:.52rem;height:.52rem;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translateY(-1px);animation:hero-scroll-bounce 2.4s ease-in-out infinite}@keyframes hero-scroll-bounce{0%,to{transform:rotate(45deg) translateY(-1px)}50%{transform:rotate(45deg) translateY(4px)}}.button{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;min-height:var(--button-height, var(--cta-secondary-height));padding:0 var(--button-pad, var(--cta-secondary-pad));border-radius:var(--radius-pill);border:1px solid transparent;cursor:pointer;font:inherit;font-size:var(--button-font-size, var(--cta-secondary-font));line-height:1;font-weight:var(--button-font-weight, var(--cta-secondary-weight));letter-spacing:-.01em;white-space:nowrap;transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}.magnetic-button{will-change:transform}.cta-primary{--button-height: var(--cta-primary-height);--button-pad: var(--cta-primary-pad);--button-font-size: var(--cta-primary-font);--button-font-weight: var(--cta-primary-weight)}.cta-secondary{--button-height: var(--cta-secondary-height);--button-pad: var(--cta-secondary-pad);--button-font-size: var(--cta-secondary-font);--button-font-weight: var(--cta-secondary-weight)}.button-small{min-height:2.44rem;padding:0 .96rem;font-size:var(--type-ui)}.button:hover{transform:translateY(-1px)}.button-solid{background:var(--text);color:var(--bg);box-shadow:0 12px 22px #0000003d}.button-outline{border-color:var(--border);background:var(--card);color:var(--text)}.showreel-frame,.work-embed-frame{position:relative;width:100%;max-width:min(100%,var(--media-max));margin-inline:auto;aspect-ratio:16 / 9;overflow:hidden;border-radius:var(--radius-card);border:1px solid var(--border);background:radial-gradient(70% 82% at 16% 20%,color-mix(in srgb,var(--accent) 14%,transparent),transparent 72%),radial-gradient(72% 88% at 84% 78%,color-mix(in srgb,var(--hero-ambient-warm) 14%,transparent),transparent 74%),linear-gradient(140deg,#090e15eb,#121922e6);box-shadow:var(--shadow)}.showreel-frame iframe,.work-embed-frame iframe{width:100%;height:100%;border:0;opacity:1;transition:opacity .22s ease}.work-embed-frame.is-player-loading iframe,.showreel-frame.is-player-loading iframe{opacity:0}.work-embed-frame.is-player-loading .work-embed-loading-bar,.showreel-frame.is-player-loading .work-embed-loading-bar{z-index:2}.showreel-caption{margin:.85rem 0 0;max-width:min(100%,var(--content-max));margin-inline:auto;color:var(--muted);font-size:var(--type-ui)}.showreel-note{margin:.3rem 0 0;max-width:min(100%,var(--content-max));margin-inline:auto;color:var(--muted);font-size:var(--type-small)}.work-filters-wrap{margin-bottom:.82rem;max-width:min(100%,var(--content-max));margin-inline:auto}.work-filters-hint{margin:0 0 .42rem;color:var(--muted);font-size:var(--type-small);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase}.work-filters{display:flex;flex-wrap:wrap;gap:.5rem}.work-filters-note{margin:.5rem 0 0;color:var(--muted);font-size:.84rem}.chip-utility,.work-filter-chip,.trust-line-item,.contact-link{display:inline-flex;align-items:center;justify-content:center;gap:var(--chip-gap);min-height:var(--chip-height);padding-inline:var(--chip-pad-inline);border-radius:var(--radius-pill);font-size:var(--chip-font);font-weight:var(--chip-weight);line-height:1;letter-spacing:.01em;white-space:nowrap}.work-filter-chip,.trust-line-item,.contact-link{border:1px solid var(--border);color:var(--muted)}.trust-line-item{background:var(--card)}.work-filter-chip{background:var(--card);font-family:inherit;cursor:pointer;transition:border-color .18s ease,color .18s ease,background-color .18s ease}.work-filter-chip:hover{color:var(--text);border-color:color-mix(in srgb,var(--accent) 64%,var(--border))}.work-filter-chip.is-active{color:var(--text);border-color:color-mix(in srgb,var(--accent) 72%,var(--border));background:color-mix(in srgb,var(--card) 78%,var(--accent) 12%)}.work-filter-count{display:inline-flex;align-items:center;justify-content:center;min-width:1.3rem;height:1.3rem;border-radius:999px;border:1px solid color-mix(in srgb,var(--border) 80%,transparent);color:var(--muted);font-size:var(--type-small);line-height:1;padding:0 .32rem}.work-filter-chip.is-active .work-filter-count{color:var(--text);border-color:color-mix(in srgb,var(--accent) 48%,var(--border))}.work-list{display:grid;max-width:min(100%,var(--media-max));margin-inline:auto;gap:1.08rem;transition:opacity .17s ease,transform .17s ease}.work-list.is-filter-transitioning{opacity:.22;transform:translateY(4px)}.work-item{display:grid;gap:.72rem;container-type:inline-size}.work-empty{margin:0;color:var(--muted);font-size:var(--type-ui)}.work-embed-placeholder{position:relative;width:100%;aspect-ratio:16 / 9;border-radius:var(--radius-card);border:1px solid var(--border);background:radial-gradient(70% 82% at 16% 20%,color-mix(in srgb,var(--accent) 18%,transparent),transparent 72%),radial-gradient(72% 88% at 84% 78%,color-mix(in srgb,var(--hero-ambient-warm) 18%,transparent),transparent 74%),linear-gradient(140deg,#090e15eb,#121922e6);box-shadow:var(--shadow);padding:clamp(1rem,2vw,1.5rem);text-align:left;display:flex;align-items:flex-end;justify-content:flex-start;overflow:hidden}.work-embed-placeholder:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#04090f38,#04090fa8);z-index:1}.work-embed-loading-bar{position:absolute;left:1rem;right:1rem;top:1rem;z-index:2;height:2px;overflow:hidden;border-radius:999px;background:color-mix(in srgb,var(--border) 88%,transparent)}.work-embed-loading-bar:after{content:"";position:absolute;inset:0;width:42%;border-radius:inherit;background:color-mix(in srgb,var(--accent) 76%,#ffffff);animation:work-embed-loading 1.8s ease-in-out infinite}.work-embed-caption{position:relative;z-index:2;display:grid;gap:.2rem;max-width:min(var(--copy-max),88%);color:#f4faff}.work-embed-caption strong{font-size:clamp(1.12rem,1.8vw,1.38rem);line-height:var(--leading-heading)}.work-embed-caption span{font-size:var(--type-small);color:#f2fafff0}.work-embed-fallback{display:grid;place-items:center;padding:clamp(1rem,2vw,1.4rem)}.work-embed-fallback-content{display:grid;justify-items:center;gap:.62rem;max-width:min(100%,25rem);text-align:center}.work-embed-fallback-title,.work-embed-fallback-text{margin:0}.work-embed-fallback-title{font-size:var(--type-h3);font-weight:720}.work-embed-fallback-text{color:var(--muted);font-size:var(--type-ui)}.work-embed-fallback-link{margin-top:.25rem}@keyframes work-embed-loading{0%{transform:translate(-120%)}50%{transform:translate(82%)}to{transform:translate(260%)}}.work-item-meta{display:block}.work-item-meta h3{margin:0;font-size:var(--type-h3);line-height:calc(var(--leading-heading) + .1)}.work-item-meta p{margin:.32rem 0 0;color:var(--muted);font-size:var(--type-ui)}.clients-note{margin:0;color:color-mix(in srgb,var(--text) 24%,var(--muted));max-width:min(100%,var(--content-max));margin-inline:auto;font-size:var(--type-body)}.clients-card{margin-top:1.15rem;max-width:min(100%,var(--media-max));margin-inline:auto;border-radius:var(--radius-card);border:1px solid color-mix(in srgb,var(--border) 112%,transparent);background:color-mix(in srgb,var(--card) 98%,transparent);padding:clamp(1rem,2.2vw,1.45rem);container-type:inline-size}.clients-grid{margin:0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.9rem 1rem}.client-logo{min-height:7.8rem;position:relative;display:grid;align-content:center;justify-items:center;gap:.56rem;border-radius:.85rem;border:1px solid color-mix(in srgb,var(--border) 102%,transparent);background:color-mix(in srgb,var(--card) 94%,transparent);padding:.8rem .85rem .72rem;overflow:hidden;transition:transform .22s ease,background-color .22s ease,border-color .22s ease,box-shadow .22s ease}.client-logo:after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(72% 78% at 16% 8%,color-mix(in srgb,var(--accent) 18%,transparent),transparent 76%);opacity:.18;transition:opacity .22s ease}.client-logo:hover:after,.client-logo:focus-within:after{opacity:.34}.client-logo-asset{width:100%;height:clamp(2.6rem,4vw,3.35rem);display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;overflow:visible}.client-logo-image{width:var(--logo-width, 72%);max-width:100%;height:100%;object-fit:contain;object-position:center;transform:translateY(var(--logo-nudge-y, 0px)) scale(var(--logo-scale, 1));transform-origin:center;filter:var(--logo-filter-dark)}.client-logo-name{font-size:var(--type-small);font-weight:600;letter-spacing:.08em;text-transform:uppercase;line-height:1;border-radius:999px;border:1px solid color-mix(in srgb,var(--border) 66%,transparent);background:color-mix(in srgb,var(--bg) 28%,transparent);padding:.24rem .52rem;color:color-mix(in srgb,var(--text) 42%,var(--muted));transition:color .22s ease,border-color .22s ease,background-color .22s ease}.client-logo-fallback{width:var(--logo-width, 72%);height:100%;display:inline-flex;align-items:center;justify-content:center;font-size:1rem;font-weight:700;letter-spacing:.03em;color:var(--text)}.client-logo:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--accent) 58%,var(--border));background:color-mix(in srgb,var(--card) 92%,transparent);box-shadow:0 16px 26px #04080c33}.services-grid{display:grid;max-width:min(100%,var(--media-max));margin-inline:auto;grid-template-columns:repeat(3,minmax(0,1fr));gap:.9rem}.service-card{position:relative;overflow:hidden;border-radius:var(--radius-card);border:1px solid var(--border);background:var(--card);padding:clamp(1.05rem,1.3vw,1.28rem);transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease,background-color .22s ease}.service-card:after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(60% 80% at 18% 14%,color-mix(in srgb,var(--accent) 24%,transparent),transparent 72%);opacity:0;transition:opacity .22s ease}.service-card:hover{transform:translateY(-4px);border-color:color-mix(in srgb,var(--accent) 62%,var(--border));box-shadow:0 18px 34px #04080c3d}.service-card:focus-within{transform:translateY(-4px);border-color:color-mix(in srgb,var(--accent) 62%,var(--border));box-shadow:0 18px 34px #04080c3d}.service-card:hover:after{opacity:1}.service-card:focus-within:after{opacity:1}.service-card h3{margin:0;font-size:var(--type-h3);line-height:var(--leading-heading);letter-spacing:var(--tracking-heading)}.service-card p{margin:.65rem 0 0;color:var(--muted);font-size:var(--type-ui)}.about-card,.contact-card{max-width:min(100%,var(--media-max));margin-inline:auto;border-radius:var(--radius-card);border:1px solid var(--border);background:var(--card);padding:clamp(1.18rem,1.5vw,1.45rem);container-type:inline-size}.contact-card{display:flex;flex-direction:column;gap:1rem}.contact-card-content{min-width:0}.contact-card-text{margin:0;color:var(--muted);max-width:min(100%,var(--copy-max));font-size:var(--type-body)}.contact-card-bar{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:.9rem;padding-top:.9rem;border-top:1px solid color-mix(in srgb,var(--border) 85%,transparent)}.contact-email-button{align-self:start;white-space:nowrap;gap:.62rem}.contact-email-text{font-variant-numeric:tabular-nums}.contact-links{margin:0;padding:0;list-style:none;display:flex;flex-wrap:wrap;justify-content:flex-start;align-content:flex-start;gap:.5rem}.contact-link{padding:0 calc(var(--chip-pad-inline) + .04rem) 0 calc(var(--chip-pad-inline) - .08rem);border:1px solid color-mix(in srgb,var(--border) 90%,transparent);background:color-mix(in srgb,var(--bg) 22%,transparent);color:color-mix(in srgb,var(--muted) 88%,transparent);transition:transform .22s ease,border-color .22s ease,background-color .22s ease,color .22s ease}.contact-link-icon{flex:0 0 auto;opacity:.86}.contact-link:hover .contact-link-icon,.contact-link:focus-visible .contact-link-icon{opacity:1}.contact-link:hover,.contact-link:focus-visible{color:var(--text);border-color:color-mix(in srgb,var(--accent) 60%,var(--border));background:color-mix(in srgb,var(--accent) 14%,var(--bg));transform:translateY(-1px)}.contact-link.is-disabled{cursor:default;opacity:.6;transform:none;border-color:color-mix(in srgb,var(--border) 70%,transparent);background:color-mix(in srgb,var(--bg) 18%,transparent)}.about-layout{display:grid;grid-template-columns:auto 1fr;gap:1rem;align-items:center}.about-photo-frame{position:relative;width:clamp(9.4rem,18vw,12.4rem);aspect-ratio:1 / 1;display:grid;place-items:center;border-radius:999px;padding:.36rem;background:linear-gradient(145deg,color-mix(in srgb,var(--accent) 58%,#ffffff),color-mix(in srgb,var(--accent) 16%,var(--border)) 42%,color-mix(in srgb,var(--hero-ambient-warm) 40%,var(--accent)));box-shadow:0 14px 30px #03070b47,0 0 0 1px color-mix(in srgb,var(--border) 70%,transparent) inset}.about-photo{width:100%;aspect-ratio:1 / 1;border-radius:999px;object-fit:cover;object-position:center;border:1px solid color-mix(in srgb,var(--border) 65%,rgba(255,255,255,.14))}.about-photo-frame{background:radial-gradient(72% 70% at 18% 16%,color-mix(in srgb,var(--accent) 60%,transparent),transparent 72%),linear-gradient(145deg,#7cc8e4d1,#3f638185 44%,#a66f4bd1)}.about-content-title{margin:0;font-size:var(--type-h3);line-height:var(--leading-heading);letter-spacing:var(--tracking-heading)}.about-card p,.contact-card p{margin:.78rem 0 0;color:var(--muted);font-size:var(--type-ui)}.contact-card h2{margin:0;font-size:var(--type-section);line-height:var(--leading-heading)}.contact-card .button{margin-top:0}.footer{border-top:1px solid var(--border);padding:1.2rem 0}.footer-inner{display:flex;justify-content:space-between;align-items:center;gap:.8rem}.footer p{margin:0;color:var(--muted);font-size:var(--type-ui)}.footer a{color:var(--muted)}.footer a:hover{color:var(--text)}@container (max-width: 44rem){.about-layout{grid-template-columns:1fr;gap:.95rem}.contact-card-bar{grid-template-columns:1fr;align-items:flex-start}.contact-email-button{width:100%;justify-content:center}.contact-links{justify-content:flex-start}.clients-grid{grid-template-columns:1fr;gap:.75rem}}@container (max-width: 38rem){.work-embed-caption{max-width:100%}}.reveal{opacity:0;transform:translateY(20px)}.reveal.is-visible{opacity:1;transform:translateY(0);transition:opacity .7s cubic-bezier(.22,1,.36,1),transform .7s cubic-bezier(.22,1,.36,1);transition-delay:var(--delay, 0ms)}@media(max-width:1080px){.section{padding:4rem 0}#projects.section{padding-top:2.8rem}.work-list{gap:1.04rem}}@media(max-width:880px){.services-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.work-embed-caption{max-width:100%}.clients-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem 1rem}}@media(max-width:760px){.site:before{content:"";position:absolute;top:0;left:0;right:0;height:calc(env(safe-area-inset-top,0px) + 5.3rem);z-index:35;pointer-events:none;background:linear-gradient(180deg,color-mix(in srgb,var(--bg) 92%,var(--header-bg)),color-mix(in srgb,var(--header-bg) 98%,var(--bg)) 72%,color-mix(in srgb,var(--header-bg) 74%,transparent))}.section{scroll-margin-top:1.35rem}.header{position:relative;top:auto;z-index:40;-webkit-backdrop-filter:none;backdrop-filter:none}.header-inner{align-items:stretch;flex-direction:column;gap:.5rem;padding:.78rem 0}.header-toprow{width:100%}.menu-toggle{display:inline-flex;position:relative;z-index:43;background:#080c12f0;border-color:#bad4e342;box-shadow:0 10px 22px #04080e47}.menu-toggle.is-open{background:#080c12fa;border-color:#a8def157;box-shadow:0 14px 28px #03060a57}.header-actions{display:none;position:fixed;left:50%;top:calc(env(safe-area-inset-top,0px) + 4.75rem);z-index:42;width:min(var(--shell-max),calc(100% - (var(--page-gutter) * 2)));max-height:calc(100dvh - env(safe-area-inset-top,0px) - 5.65rem);overflow-y:auto;align-items:stretch;flex-direction:column;gap:.78rem;padding:.95rem 1rem 1rem;border:1px solid color-mix(in srgb,var(--border) 96%,transparent);border-radius:1rem;background:#080c12fa;box-shadow:0 26px 54px #04090f57;transform:translate(-50%)}.header-actions.is-open{display:flex}.header-actions.is-open .nav-list a{color:var(--text);font-weight:600}.header-actions.is-open .language-switch{color:color-mix(in srgb,var(--text) 92%,var(--muted));border-color:color-mix(in srgb,var(--border) 100%,transparent);background:color-mix(in srgb,var(--card) 96%,var(--bg))}.header-backdrop{display:block;position:fixed;inset:0;z-index:41;border:0;padding:0;background:#04090f00;-webkit-backdrop-filter:blur(0);backdrop-filter:blur(0);pointer-events:none;cursor:pointer;transition:background-color .22s ease,backdrop-filter .22s ease}.header-backdrop.is-open{background:#04090f7a;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);pointer-events:auto}.header-actions nav{width:100%}.nav-list{flex-direction:column;align-items:flex-start;gap:.2rem}.nav-list a{width:100%;padding:.34rem .1rem}.nav-list a:after{display:none}.header-toggles{width:100%;justify-content:flex-start}.hero{min-height:max(34rem,calc(100svh - var(--header-height)));min-height:max(34rem,calc(100dvh - var(--header-height)));padding-top:.92rem;padding-bottom:3.35rem;contain:paint}.hero-inner{max-width:min(100%,33rem)}.role-line{margin-top:.34rem}.hero-title{margin-top:.52rem;font-size:clamp(2.62rem,11vw,3.9rem)}.hero-copy{margin-top:.82rem}.trust-lines{margin-top:.88rem;gap:.42rem}.hero-actions{margin-top:1.18rem;gap:.56rem}.hero-background,.hero-blob{contain:paint}.hero-scroll-cue{width:1.84rem;height:2.72rem;bottom:.58rem}.work-list{gap:.84rem}.work-filters{flex-wrap:nowrap;overflow-x:auto;padding-bottom:.2rem;scrollbar-width:none}.work-filters::-webkit-scrollbar{display:none}.work-filter-chip{flex:0 0 auto;white-space:nowrap}.work-embed-placeholder{padding:.9rem}.work-embed-caption{gap:.16rem}.work-item-meta{display:block}.about-photo{width:100%}.about-photo-frame{width:9.8rem}.services-grid{grid-template-columns:1fr}.clients-grid{grid-template-columns:1fr;gap:.75rem}.footer-inner{flex-direction:column;align-items:flex-start}}@media(prefers-reduced-motion:reduce){.hero-blob,.hero-scroll-arrow{animation:none}.reveal,.reveal.is-visible{opacity:1;transform:none;transition:none}.button,.menu-toggle-line,.header-backdrop,.language-switch,.language-switch-thumb,.hero-scroll-cue,.service-card,.service-card:after,.client-logo,.client-logo:after,.contact-link,.work-filter-chip,.work-embed-placeholder{transition:none}}@media(hover:none),(pointer:coarse){.hero.has-paint-bg{--paint-layer-opacity: .42}.hero-blob{opacity:.14}.hero-blob-cyan{animation-duration:96s}.hero-blob-amber{animation-duration:106s}.hero-blob-magenta{animation-duration:120s}.hero-blob-violet{animation-duration:128s}}
