@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-cyrillic-ext-wght-normal-BOeWTOD4.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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-cyrillic-wght-normal-DqGufNeO.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-greek-ext-wght-normal-DlzME5K_.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-greek-wght-normal-CkhJZR-_.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-vietnamese-wght-normal-CBcvBZtf.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-latin-ext-wght-normal-DO1Apj_S.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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-latin-wght-normal-Dx4kXJAl.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:Michroma;font-style:normal;font-display:swap;font-weight:400;src:url(./michroma-latin-400-normal-4gS0VCia.woff2) format("woff2"),url(./michroma-latin-400-normal-C7Pn7qca.woff) format("woff")}:root{--ink: #000000;--paper: #fafafa;--paper-2: #f2f2f0;--accent: #2b3aeb;--accent-deep: #1c27b8;--muted: #5f5f5f;--muted-2: #737373;--line: #e3e3e1;--line-strong: #cfcfcc;--on-accent: #ffffff;--on-accent-dim: #d0d6fc;--sw: 22.53;--maxw: 1240px;--pad: clamp(20px, 5vw, 60px);--radius: 2px;--font-sans: "Inter Variable", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mark: "Michroma", var(--font-sans);--fs-display: clamp(40px, 5.3vw, 78px);--fs-h2: clamp(30px, 4.6vw, 60px);--fs-h3: clamp(20px, 2.1vw, 26px);--fs-lede: clamp(16.5px, 1.55vw, 20px);--fs-body: clamp(14.5px, 1.05vw, 16px);--fs-micro: clamp(11px, .85vw, 12.5px);--track-tight: -.035em;--track-wide: .22em;--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-in-out: cubic-bezier(.76, 0, .24, 1);--dur-fast: .28s;--dur: .6s;--dur-slow: 1.1s;--z-grain: 92;--z-menu: 80;--z-nav: 85;--z-intro: 120}:root{--grain-url: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='260' height='260'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.82' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--paper);color:var(--ink);font-family:var(--font-sans);font-size:var(--fs-body);font-weight:400;line-height:1.6;letter-spacing:-.006em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden;font-variant-ligatures:common-ligatures}body.is-loading{overflow:hidden;height:100svh}img,svg,canvas{display:block;max-width:100%}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}::selection{background:var(--accent);color:var(--on-accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:var(--radius)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:absolute;top:8px;left:8px;z-index:200;padding:10px 18px;background:var(--ink);color:var(--paper);font-size:13px;transform:translateY(-160%);transition:transform var(--dur-fast) var(--ease-out)}.skip-link:focus-visible{transform:translateY(0)}.sym{fill:none;stroke:currentColor;stroke-width:var(--sw);stroke-linecap:round;stroke-linejoin:round}.sym .solid{fill:currentColor;stroke:currentColor}.wm{font-family:var(--font-mark);font-weight:400}.wrap{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:var(--pad)}.section{padding-block:clamp(72px,12vh,148px)}.rule{height:1px;background:var(--line);border:0}.eyebrow{font-size:var(--fs-micro);font-weight:500;letter-spacing:var(--track-wide);text-transform:uppercase;color:var(--muted)}.eyebrow .dot{display:inline-block;width:5px;height:5px;margin-right:10px;vertical-align:2px;border-radius:50%;background:var(--accent)}h1,h2,h3,h4{font-weight:600;letter-spacing:var(--track-tight);line-height:1.04;text-wrap:balance}.h2{font-size:var(--fs-h2)}.lede{font-size:var(--fs-lede);line-height:1.55;color:#333;letter-spacing:-.011em;text-wrap:pretty}.accent{color:var(--accent);font-style:normal}.sec-head{display:grid;gap:20px;max-width:62ch;margin-bottom:clamp(44px,6.5vh,80px)}.sec-head .lede{max-width:56ch}.btn{--btn-fg: var(--ink);--btn-bg: transparent;position:relative;display:inline-flex;align-items:center;gap:12px;padding:15px 28px;border:1px solid var(--ink);border-radius:999px;font-size:14.5px;font-weight:500;letter-spacing:-.008em;color:var(--btn-fg);background:var(--btn-bg);overflow:hidden;isolation:isolate;transition:color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out);will-change:transform}.btn:before{content:"";position:absolute;inset:0;z-index:-1;background:var(--ink);transform:translateY(101%);transition:transform .45s var(--ease-out)}.btn:hover:before,.btn:focus-visible:before{transform:translateY(0)}.btn:hover,.btn:focus-visible{color:var(--paper)}.btn--solid{color:var(--paper);background:var(--ink)}.btn--solid:before{background:var(--accent);transform:translateY(101%)}.btn--solid:hover,.btn--solid:focus-visible{color:var(--on-accent);border-color:var(--accent)}.btn .arw{transition:transform .45s var(--ease-out)}.btn:hover .arw{transform:translate(4px)}.link{position:relative;display:inline-flex;align-items:center;gap:8px;padding-bottom:2px;font-weight:500}.link:after{content:"";position:absolute;left:0;bottom:0;width:100%;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .45s var(--ease-out)}.link:hover:after,.link:focus-visible:after{transform:scaleX(1);transform-origin:left}.grain{position:fixed;inset:-120px;z-index:var(--z-grain);pointer-events:none;background-image:var(--grain-url);opacity:.038;will-change:transform;animation:grain-shift 6s steps(6) infinite}@keyframes grain-shift{0%{transform:translateZ(0)}16%{transform:translate3d(-40px,22px,0)}33%{transform:translate3d(26px,-34px,0)}50%{transform:translate3d(-32px,-18px,0)}66%{transform:translate3d(38px,28px,0)}83%{transform:translate3d(-18px,36px,0)}to{transform:translateZ(0)}}.intro{position:fixed;inset:0;z-index:var(--z-intro);display:grid;place-items:center;background:var(--paper);color:var(--ink)}.intro__stage{width:min(44vmin,300px);user-select:none}.intro__stage svg{width:100%;height:auto;overflow:visible}.intro__bar{position:absolute;left:var(--pad);right:var(--pad);bottom:clamp(28px,6vh,56px);height:1px;background:var(--line)}.intro__bar>i{position:absolute;inset:0;display:block;background:var(--accent);transform:scaleX(0);transform-origin:left}.intro.is-done{pointer-events:none}.trace{stroke-dasharray:1;stroke-dashoffset:1}.node,.tip{opacity:0}.nav{position:fixed;top:0;left:0;right:0;z-index:var(--z-nav);border-bottom:1px solid transparent;transition:background .4s var(--ease-out),border-color .4s var(--ease-out),transform .5s var(--ease-out)}.nav.is-stuck{background:color-mix(in srgb,var(--paper) 82%,transparent);backdrop-filter:saturate(180%) blur(16px);-webkit-backdrop-filter:saturate(180%) blur(16px);border-bottom-color:var(--line)}.nav.is-hidden{transform:translateY(-100%)}.nav__in{display:flex;align-items:center;justify-content:space-between;height:74px}.brand{display:flex;align-items:center;gap:11px}.brand svg{--sw: 46;width:25px;color:var(--ink)}.brand__name{font-size:18px;letter-spacing:.045em}.nav__links{display:flex;align-items:center;gap:36px}.nav__links a:not(.btn){position:relative;font-size:14px;color:var(--muted);transition:color var(--dur-fast) var(--ease-out)}.nav__links a:not(.btn):after{content:"";position:absolute;left:0;bottom:-5px;width:100%;height:1px;background:var(--accent);transform:scaleX(0);transform-origin:right;transition:transform .4s var(--ease-out)}.nav__links a:not(.btn):hover{color:var(--ink)}.nav__links a:not(.btn):hover:after{transform:scaleX(1);transform-origin:left}.nav .btn{padding:11px 22px;font-size:13px}.burger{display:none;width:44px;height:44px;margin-right:-10px;place-items:center}.burger span{display:block;width:24px;height:1.5px;background:var(--ink);transition:transform .4s var(--ease-out),opacity .25s var(--ease-out)}.burger span+span{margin-top:6px}.is-menu-open .burger span:nth-child(1){transform:translateY(3.75px) rotate(45deg)}.is-menu-open .burger span:nth-child(2){opacity:0}.is-menu-open .burger span:nth-child(3){transform:translateY(-3.75px) rotate(-45deg)}.menu{position:fixed;inset:0;z-index:var(--z-menu);display:grid;grid-template-columns:minmax(0,1fr);align-content:center;gap:6px;padding:0 var(--pad);background:var(--paper);clip-path:inset(0 0 100% 0);visibility:hidden;transition:clip-path .7s var(--ease-in-out),visibility 0s linear .7s}.is-menu-open .menu{clip-path:inset(0 0 0 0);visibility:visible;transition:clip-path .7s var(--ease-in-out),visibility 0s}.menu>a{display:block;padding:6px 0;font-size:clamp(34px,9vw,58px);font-weight:600;letter-spacing:var(--track-tight);opacity:0;transform:translateY(28px);transition:opacity .5s var(--ease-out),transform .5s var(--ease-out),color .3s var(--ease-out)}.menu a:hover{color:var(--accent)}.is-menu-open .menu>a{opacity:1;transform:translateY(0)}.is-menu-open .menu>a:nth-child(1){transition-delay:.18s}.is-menu-open .menu>a:nth-child(2){transition-delay:.24s}.is-menu-open .menu>a:nth-child(3){transition-delay:.3s}.is-menu-open .menu>a:nth-child(4){transition-delay:.36s}.is-menu-open .menu>a:nth-child(5){transition-delay:.42s}.menu__foot{margin-top:40px;font-size:14px;line-height:1.9;color:var(--muted);overflow-wrap:anywhere}.menu__foot a{transition:color var(--dur-fast) var(--ease-out)}.menu__foot a:hover{color:var(--accent)}@media(max-width:880px){.nav__links{display:none}.burger{display:grid}}@media(min-width:881px){.menu{display:none}}.hero{position:relative;display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);align-items:center;gap:clamp(30px,5vw,64px);min-height:100svh;padding-top:96px;padding-bottom:clamp(48px,8vh,96px)}.hero h1{margin-top:26px;font-size:var(--fs-display);max-width:13ch}.hero .lede{margin-top:28px;max-width:46ch}.hero__actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:40px}.hero__mark{position:relative;aspect-ratio:1 / 1;width:100%;max-width:520px;margin-inline:auto}.hero__mark canvas{width:100%;height:100%}.hero__cue{position:absolute;left:0;bottom:clamp(20px,4vh,40px);display:flex;align-items:center;gap:12px;font-size:var(--fs-micro);letter-spacing:var(--track-wide);text-transform:uppercase;color:var(--muted-2)}.hero__cue i{display:block;width:46px;height:1px;background:var(--line-strong);overflow:hidden}.hero__cue i:after{content:"";display:block;width:40%;height:100%;background:var(--accent);animation:cue 2.4s var(--ease-in-out) infinite}@keyframes cue{0%{transform:translate(-100%)}60%,to{transform:translate(250%)}}@media(max-width:980px){.hero{grid-template-columns:1fr;min-height:auto;padding-top:112px}.hero h1{max-width:14ch}.hero__mark{max-width:270px;margin-inline:auto}.hero__cue{display:none}}.marquee{border-block:1px solid var(--line);padding-block:22px;overflow:hidden;user-select:none}.marquee__track{display:flex;width:max-content;will-change:transform}.marquee__group{display:flex;align-items:center;flex:none}.marquee__group span{display:flex;align-items:center;gap:28px;padding-right:28px;font-size:clamp(17px,2.1vw,25px);font-weight:600;letter-spacing:var(--track-tight);white-space:nowrap}.marquee__group span:after{content:"";width:7px;height:7px;border-radius:50%;background:var(--accent)}.marquee__group span:nth-child(2n){color:transparent;-webkit-text-stroke:1px var(--ink)}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border-bottom:1px solid var(--line)}.stats__cell{background:var(--paper);padding:clamp(28px,4vw,44px) clamp(18px,2.4vw,32px)}.stats__num{font-size:clamp(28px,3.4vw,46px);font-weight:600;letter-spacing:var(--track-tight);line-height:1}.stats__cap{margin-top:12px;font-size:var(--fs-micro);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}@media(max-width:760px){.stats{grid-template-columns:repeat(2,1fr)}}.caps{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}.cap{position:relative;display:flex;flex-direction:column;min-height:268px;padding:30px 26px 34px;background:var(--paper);isolation:isolate;overflow:hidden}.cap:before{content:"";position:absolute;inset:0;z-index:-1;background:var(--accent);transform:translateY(100%);transition:transform .55s var(--ease-out)}.cap:hover:before,.cap:focus-within:before{transform:translateY(0)}.cap__idx{font-family:var(--font-mark);font-size:12px;letter-spacing:.06em;color:var(--muted-2);transition:color .4s var(--ease-out)}.cap h3{margin-top:auto;padding-top:52px;font-size:var(--fs-h3);line-height:1.2;transition:color .4s var(--ease-out)}.cap p{margin-top:12px;font-size:13.6px;line-height:1.62;color:var(--muted);transition:color .4s var(--ease-out)}.cap:hover .cap__idx,.cap:hover p{color:var(--on-accent-dim)}.cap:hover h3{color:var(--on-accent)}@media(max-width:1080px){.caps{grid-template-columns:repeat(2,1fr)}}@media(max-width:560px){.caps{grid-template-columns:1fr}.cap{min-height:0}.cap h3{padding-top:26px}}.work{border-top:1px solid var(--line)}.work__row{position:relative;display:grid;grid-template-columns:88px minmax(0,1fr) minmax(0,.85fr) 150px;align-items:start;gap:clamp(16px,3vw,44px);padding-block:clamp(28px,3.6vw,44px);border-bottom:1px solid var(--line);isolation:isolate}.work__row:before{content:"";position:absolute;inset:0 calc(var(--pad) * -.6);z-index:-1;background:var(--paper-2);opacity:0;transition:opacity .45s var(--ease-out)}.work__row:hover:before{opacity:1}.work__row:after{content:"";position:absolute;left:calc(var(--pad) * -.6);top:0;bottom:0;width:2px;background:var(--accent);transform:scaleY(0);transform-origin:top;transition:transform .5s var(--ease-out)}.work__row:hover:after{transform:scaleY(1)}.work__idx{font-family:var(--font-mark);font-size:12px;letter-spacing:.06em;color:var(--muted-2);padding-top:6px}.work__name{font-size:clamp(23px,2.6vw,34px);line-height:1.12;transition:transform .5s var(--ease-out)}.work__row:hover .work__name{transform:translate(6px)}.work__kicker{margin-top:12px;font-size:14.5px;color:#333;max-width:40ch}.work__detail{font-size:14px;line-height:1.65;color:var(--muted);max-width:46ch}.work__tags{display:flex;flex-wrap:wrap;gap:7px;margin-top:16px}.work__tags li{list-style:none;padding:4px 11px;border:1px solid var(--line-strong);border-radius:999px;font-size:11.5px;letter-spacing:.02em;color:var(--muted)}.work__meta{display:flex;flex-direction:column;align-items:flex-end;gap:14px;text-align:right;padding-top:6px}.work__type{font-size:var(--fs-micro);line-height:1.4;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);text-wrap:balance}.work__type--os{color:var(--accent)}.work__go{display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--ink);border-radius:50%;transition:background .4s var(--ease-out),color .4s var(--ease-out),transform .4s var(--ease-out)}.work__go svg{width:15px;height:15px}.work__row:hover .work__go{background:var(--ink);color:var(--paper);transform:rotate(45deg)}.work__private{font-size:11.5px;letter-spacing:.02em;color:var(--muted-2);max-width:13ch}@media(max-width:940px){.work__row{grid-template-columns:44px minmax(0,1fr) 56px}.work__detail{grid-column:2 / 4;margin-top:14px;max-width:none}.work__meta{gap:10px}.work__type{display:none}.work__go{width:38px;height:38px}.work__private{font-size:10px;text-align:right}}@media(max-width:560px){.work__row{grid-template-columns:1fr 44px}.work__idx{grid-column:1 / 3;padding-top:0;margin-bottom:4px}.work__detail{grid-column:1 / 3}}.approach{position:relative;background:var(--accent);color:var(--on-accent);overflow:hidden}.approach .eyebrow{color:var(--on-accent-dim)}.approach .eyebrow .dot{background:var(--on-accent)}.approach h2{font-size:clamp(38px,7vw,96px);max-width:14ch}.approach h2 .word{display:inline-block}.pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(28px,4vw,56px);margin-top:clamp(52px,8vh,88px)}.pillar h4{padding-bottom:15px;border-bottom:1px solid color-mix(in srgb,var(--on-accent) 30%,transparent);font-size:17px;letter-spacing:0}.pillar p{margin-top:18px;font-size:14.5px;line-height:1.68;color:var(--on-accent-dim)}.approach__mark{position:absolute;right:-8%;top:50%;width:min(52vw,620px);translate:0 -50%;opacity:.07;color:var(--on-accent);pointer-events:none;will-change:transform}@media(max-width:820px){.pillars{grid-template-columns:1fr}.approach__mark{display:none}}.about{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(30px,6vw,80px);align-items:start}.about__body p+p{margin-top:20px}.about__body{font-size:var(--fs-lede);line-height:1.6;color:#333;letter-spacing:-.011em}@media(max-width:860px){.about{grid-template-columns:1fr}}.cta{text-align:center;padding-block:clamp(86px,15vh,168px);border-top:1px solid var(--line)}.cta h2{font-size:clamp(34px,6.4vw,82px)}.cta .lede{margin:24px auto 44px;max-width:46ch}.cta__actions{display:flex;flex-wrap:wrap;justify-content:center;gap:14px}.btn .ico{width:17px;height:17px;flex:none}@media(max-width:620px){.cta__actions{flex-direction:column;align-items:stretch}.cta__actions .btn{justify-content:center}.cta__mail{font-size:13.5px;overflow-wrap:anywhere}}.foot{border-top:1px solid var(--line);padding-block:60px 44px}.foot__in{display:flex;justify-content:space-between;gap:48px;flex-wrap:wrap}.foot__brand svg{--sw: 46;width:24px;color:var(--ink)}.foot__tag{margin-top:18px;font-size:13.5px;color:var(--muted);max-width:28ch}.foot__cols{display:flex;gap:clamp(32px,6vw,72px);flex-wrap:wrap}.foot__col h5{margin-bottom:16px;font-size:11.5px;font-weight:500;letter-spacing:var(--track-wide);text-transform:uppercase;color:var(--muted-2)}.foot__col a,.foot__col span{display:block;margin-bottom:10px;font-size:14px;color:#333;transition:color var(--dur-fast) var(--ease-out)}.foot__col a:hover{color:var(--accent)}.foot__bottom{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:56px;padding-top:24px;border-top:1px solid var(--line);font-size:12.5px;color:var(--muted-2)}.split-line{display:inline-block;overflow:hidden;vertical-align:bottom;padding-bottom:.14em;margin-bottom:-.14em}.split-line>i{display:inline-block;font-style:inherit;will-change:transform}.js .split-line>i{transform:translateY(105%)}.js [data-reveal]{opacity:0;transform:translateY(22px);will-change:transform,opacity}.js [data-draw]{transform:scaleX(0);transform-origin:left}.js .page{opacity:0}.cursor{position:fixed;top:0;left:0;z-index:95;width:9px;height:9px;margin:-4.5px 0 0 -4.5px;border-radius:50%;background:var(--accent);pointer-events:none;opacity:0;mix-blend-mode:multiply;will-change:transform;transition:opacity .3s var(--ease-out),width .3s var(--ease-out),height .3s var(--ease-out),margin .3s var(--ease-out)}.cursor.is-on{opacity:1}.cursor.is-wide{width:46px;height:46px;margin:-23px 0 0 -23px;opacity:.16}@media(hover:none),(pointer:coarse){.cursor{display:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}.js .split-line>i,.js [data-reveal]{opacity:1!important;transform:none!important}.js [data-draw]{transform:scaleX(1)!important}.js .page{opacity:1}.grain,.cursor,.hero__cue,.intro{display:none}}
