.site{position:relative;min-height:100dvh;display:flex;flex-direction:column}.menu,.site-footer,.site-header,.site-main{position:relative;z-index:1}.skip-link{position:fixed;left:16px;top:-80px;z-index:120;padding:10px 16px;border-radius:999px;background:var(--text);color:var(--bg);text-decoration:none;font-weight:600;transition:top .2s var(--ease-out)}.skip-link:focus{top:calc(var(--safe-top) + 12px)}.site-header{position:-webkit-sticky;position:sticky;top:0;z-index:60;padding:calc(var(--safe-top) + 10px) 12px 0;pointer-events:none}.header-pill{pointer-events:auto;display:flex;align-items:center;justify-content:space-between;gap:12px;max-width:1160px;margin:0 auto;padding:6px 6px 6px 8px;border-radius:999px;background:var(--header-bg);border:1px solid var(--line);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(22px) saturate(180%);backdrop-filter:blur(22px) saturate(180%)}.brand{display:inline-flex;align-items:center;gap:10px;padding-right:10px;border-radius:999px;text-decoration:none;color:var(--text);font-family:var(--font-display);font-weight:700;font-size:1.1rem;letter-spacing:-.02em}.brand-avatar{width:44px;height:44px;border-radius:50%;overflow:hidden;background:var(--iris);display:grid;place-items:end center;transition:rotate .5s var(--ease-out)}@media (hover:hover) and (pointer:fine){.brand:hover .brand-avatar{rotate:-12deg}}.site-nav{position:relative;display:none;padding:4px;border-radius:999px}.site-nav-indicator{position:absolute;top:4px;bottom:4px;left:0;width:var(--iw,0);border-radius:999px;background:var(--surface-hi);border:1px solid var(--line);transform:translateX(var(--ix,0));opacity:0;transition:transform .42s var(--ease-drawer),width .42s var(--ease-drawer),opacity .2s}.site-nav[data-ready] .site-nav-indicator{opacity:1}.site-nav-link{position:relative;display:inline-block;padding:9px 16px;border-radius:999px;text-decoration:none;color:var(--muted);font-weight:500;font-size:.93rem;white-space:nowrap;transition:color .2s}.site-nav-link-active,.site-nav-link:hover{color:var(--text)}.header-actions{display:flex;align-items:center;gap:8px}.header-lang{display:none}.nav-toggle{position:relative;width:44px;height:44px;border-radius:50%;border:0;background:var(--text);color:var(--bg);cursor:pointer;transition:scale .16s var(--ease-out)}.nav-toggle:active{scale:.92}.nav-toggle-bar{position:absolute;left:13px;right:13px;height:2px;border-radius:2px;background:currentColor;transition:transform .38s var(--ease-out)}.nav-toggle-bar-1{top:17px}.nav-toggle-bar-2{top:25px}.nav-toggle[aria-expanded=true] .nav-toggle-bar-1{transform:translateY(4px) rotate(45deg)}.nav-toggle[aria-expanded=true] .nav-toggle-bar-2{transform:translateY(-4px) rotate(-45deg)}.menu{position:fixed;inset:0;z-index:55;display:flex;flex-direction:column;justify-content:center;gap:2rem;padding:calc(var(--safe-top) + 90px) var(--gutter) calc(var(--safe-bottom) + 32px);background:color-mix(in srgb,var(--bg) 82%,transparent);-webkit-backdrop-filter:blur(28px) saturate(180%);backdrop-filter:blur(28px) saturate(180%);visibility:hidden;opacity:0;-webkit-clip-path:circle(0 at calc(100% - 40px) calc(var(--safe-top) + 38px));clip-path:circle(0 at calc(100% - 40px) calc(var(--safe-top) + 38px));transition:opacity .25s,visibility 0s .45s,-webkit-clip-path .45s var(--ease-drawer);transition:clip-path .45s var(--ease-drawer),opacity .25s,visibility 0s .45s;transition:clip-path .45s var(--ease-drawer),opacity .25s,visibility 0s .45s,-webkit-clip-path .45s var(--ease-drawer);overscroll-behavior:contain}.menu-open{visibility:visible;opacity:1;-webkit-clip-path:circle(150vmax at calc(100% - 40px) calc(var(--safe-top) + 38px));clip-path:circle(150vmax at calc(100% - 40px) calc(var(--safe-top) + 38px));transition:opacity .2s,visibility 0s,-webkit-clip-path .6s var(--ease-drawer);transition:clip-path .6s var(--ease-drawer),opacity .2s,visibility 0s;transition:clip-path .6s var(--ease-drawer),opacity .2s,visibility 0s,-webkit-clip-path .6s var(--ease-drawer)}.menu-nav{display:flex;flex-direction:column}.menu-foot,.menu-link{opacity:0;transform:translateY(24px);transition:opacity .2s,transform .2s var(--ease-out),color .2s}.menu-open .menu-foot,.menu-open .menu-link{opacity:1;transform:none;transition:opacity .45s var(--ease-out),transform .55s var(--ease-out),color .2s;transition-delay:calc(.12s + var(--i) * 55ms)}.menu-link{padding:.18em 0;font-family:var(--font-display);font-size:clamp(2.6rem,13vw,4.5rem);font-weight:600;font-variation-settings:"wdth" 85;letter-spacing:-.03em;line-height:1.02;text-decoration:none;color:var(--muted)}.menu-link-active{color:var(--text);background:var(--iris);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.site-main{flex:1 1}.site-footer{--foot-gap:clamp(1.5rem,4vw,2.5rem);margin-top:clamp(5rem,14vw,9rem);padding:calc(var(--foot-gap) * 1.5) 0 calc(var(--safe-bottom) + var(--foot-gap));border-top:1px solid var(--line);background:linear-gradient(180deg,transparent,color-mix(in srgb,var(--bg-2) 70%,transparent))}.footer-cta{display:flex;flex-direction:column;align-items:flex-start;gap:var(--foot-gap);padding-bottom:var(--foot-gap)}.footer-cta-link{text-decoration:none;font-size:clamp(2.3rem,10.5vw,6rem);font-weight:700;line-height:1.05;letter-spacing:-.035em;max-width:14ch;color:var(--text)}.footer-row{display:flex;flex-direction:column;gap:1rem;padding-top:var(--foot-gap);border-top:1px solid var(--line)}.footer-note{margin:0;font-size:.88rem}.footer-row .social-link{min-height:40px;padding:0 14px;font-size:.92rem}@media (min-width:1000px){.site-header{padding-inline:24px}.site-nav{display:flex}.header-lang{display:block}.menu,.nav-toggle{display:none}}@media (min-width:900px){.footer-cta,.footer-row{flex-direction:row;align-items:center;justify-content:space-between}.footer-row .social-link{min-height:44px;padding:0 18px;font-size:.95rem}}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;font-stretch:75% 100%;src:url(/_next/static/media/bricolage-grotesque-vietnamese-wdth-normal.4eab860b.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:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;font-stretch:75% 100%;src:url(/_next/static/media/bricolage-grotesque-latin-ext-wdth-normal.2804f10d.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:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;font-stretch:75% 100%;src:url(/_next/static/media/bricolage-grotesque-latin-wdth-normal.568e6357.woff2) format("woff2-variations");unicode-range:u+00??,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:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_next/static/media/geist-cyrillic-ext-wght-normal.8bbfa6e0.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:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_next/static/media/geist-cyrillic-wght-normal.12b57c6b.woff2) format("woff2-variations");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_next/static/media/geist-vietnamese-wght-normal.c6a3f4e5.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:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_next/static/media/geist-latin-ext-wght-normal.b921df26.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:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_next/static/media/geist-latin-wght-normal.9ff55a8a.woff2) format("woff2-variations");unicode-range:u+00??,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{--font-display:"Bricolage Grotesque Variable","Geist Variable",system-ui,sans-serif;--font-body:"Geist Variable",-apple-system,BlinkMacSystemFont,"Segoe UI",system-ui,sans-serif;--ease-out:cubic-bezier(0.23,1,0.32,1);--ease-in-out:cubic-bezier(0.77,0,0.175,1);--ease-drawer:cubic-bezier(0.32,0.72,0,1);--violet:#9885ff;--aqua:#46e0cf;--amber:#ffb86b;--rose:#ff7aa8;--accent:var(--violet);--iris:linear-gradient(105deg,var(--violet),var(--aqua) 55%,var(--amber));--bg:#08080f;--bg-2:#0e0f1b;--surface:hsla(0,0%,100%,.045);--surface-hi:hsla(0,0%,100%,.085);--line:hsla(0,0%,100%,.1);--text:#f4f3fc;--muted:#a3a1bb;--header-bg:rgba(14,15,27,.6);--shadow:0 1px 0 hsla(0,0%,100%,.06) inset,0 24px 48px -24px rgba(0,0,0,.7);--aurora-opacity:0.55;--grain-opacity:0.07;--blend:screen;--gutter:20px;--radius:24px;--radius-sm:14px;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);color-scheme:dark}:root[data-theme=light]{--violet:#5b47e8;--aqua:#0b9e92;--amber:#e07a12;--rose:#d6366f;--bg:#f5f4fb;--bg-2:#ebeaf6;--surface:hsla(0,0%,100%,.62);--surface-hi:hsla(0,0%,100%,.95);--line:rgba(19,18,43,.1);--text:#13122b;--muted:#5a5876;--header-bg:rgba(245,244,251,.7);--shadow:0 1px 0 hsla(0,0%,100%,.9) inset,0 20px 40px -24px rgba(40,30,120,.3);--aurora-opacity:0.4;--grain-opacity:0.05;--blend:multiply;color-scheme:light}@media (min-width:700px){:root{--gutter:32px}}*{box-sizing:border-box}html{-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%;overscroll-behavior-y:none;scroll-behavior:smooth}body{margin:0;min-height:100dvh;font-family:var(--font-body);font-size:1rem;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;overflow-x:clip}h1,h2,h3,h4{font-family:var(--font-display);font-weight:600;line-height:1.05;letter-spacing:-.02em;margin:0 0 .5em;text-wrap:balance}p{line-height:1.65;color:var(--muted);text-wrap:pretty}a{color:inherit}[role=button],a,button{touch-action:manipulation}button{font:inherit;-webkit-user-select:none;-moz-user-select:none;user-select:none}input,select,textarea{font-size:16px}::selection{background:color-mix(in srgb,var(--violet) 45%,transparent)}:focus-visible{outline:2px solid var(--aqua);outline-offset:3px;border-radius:6px}.container{width:100%;max-width:1160px;margin:0 auto;padding-inline:var(--gutter)}.text-muted{color:var(--muted)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.section-subheading{font-size:clamp(1.4rem,4vw,1.9rem);margin:3.5rem 0 1.25rem}@supports (animation-timeline:scroll()){body:before{content:"";position:fixed;inset:0 0 auto 0;height:2px;z-index:80;background:var(--iris);transform-origin:0 50%;transform:scaleX(0);animation:progress linear both;animation-timeline:scroll(root)}@keyframes progress{to{transform:scaleX(1)}}}::view-transition-new(root),::view-transition-old(root){animation:none;mix-blend-mode:normal}::view-transition-new(root){animation:theme-reveal .65s var(--ease-in-out)}@keyframes theme-reveal{0%{-webkit-clip-path:circle(0 at var(--vt-x,50%) var(--vt-y,0));clip-path:circle(0 at var(--vt-x,50%) var(--vt-y,0))}to{-webkit-clip-path:circle(150vmax at var(--vt-x,50%) var(--vt-y,0));clip-path:circle(150vmax at var(--vt-x,50%) var(--vt-y,0))}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:after,:before{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}::view-transition-new(root){animation:none}}.page-enter{animation:page-enter .55s var(--ease-out) both}@keyframes page-enter{0%{opacity:0;transform:translateY(12px)}}.home-marquee{margin-top:clamp(2rem,6vw,3.5rem)}