@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:400;font-display:swap;src:url(../media/53e45098eac42afb-s.p.1uklb5el4zgvl.woff2)format("woff2");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:Be Vietnam Pro;font-style:normal;font-weight:400;font-display:swap;src:url(../media/85ea1b3aadcead52-s.05i4gb4p0piv4.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:400;font-display:swap;src:url(../media/3c285486269019b7-s.p.2g-0we2o5_ngd.woff2)format("woff2");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:Be Vietnam Pro;font-style:normal;font-weight:600;font-display:swap;src:url(../media/a3bcb02a0e9e5d11-s.p.25pbmqxk8u2s7.woff2)format("woff2");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:Be Vietnam Pro;font-style:normal;font-weight:600;font-display:swap;src:url(../media/b35fd19aef91b293-s.0n_ln9vqskgts.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:600;font-display:swap;src:url(../media/8f46d218c8f79e34-s.p.2wu4yy186g04j.woff2)format("woff2");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:Be Vietnam Pro;font-style:normal;font-weight:700;font-display:swap;src:url(../media/8ffc259da9d23054-s.p.10uaeld2xxvpt.woff2)format("woff2");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:Be Vietnam Pro;font-style:normal;font-weight:700;font-display:swap;src:url(../media/9e486ba39c38fb8a-s.2bbpeapf-lbjw.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:700;font-display:swap;src:url(../media/6f42e0a3b0519c4d-s.p.13y-iz2lazqtb.woff2)format("woff2");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:Be Vietnam Pro;font-style:normal;font-weight:800;font-display:swap;src:url(../media/fcf129058e6e31f2-s.p.1ubek13yfcpkr.woff2)format("woff2");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:Be Vietnam Pro;font-style:normal;font-weight:800;font-display:swap;src:url(../media/7b74840ea7c05e95-s.0t1_atrj_pkiu.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:800;font-display:swap;src:url(../media/3eca85881bcfa204-s.p.0unco9n87mni8.woff2)format("woff2");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:Be Vietnam Pro Fallback;src:local(Arial);ascent-override:90.61%;descent-override:24.01%;line-gap-override:0.0%;size-adjust:110.36%}.FXY4hG_className{font-family:Be Vietnam Pro,Be Vietnam Pro Fallback;font-style:normal}.FXY4hG_variable{--font-sans:"Be Vietnam Pro", "Be Vietnam Pro Fallback"}
@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/e390973e931a41c5-s.0rgnxg2b64rzs.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/59b15b4bcd7b1eb5-s.2vemzm0itqzfy.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/e532fa1b9921e1cd-s.3cb5lpr2l6xud.woff2)format("woff2");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:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/2fe89d53234c61d4-s.1u30mmyq6lnsd.woff2)format("woff2");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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/99e609270109b47d-s.40sczeszzbjw1.woff2)format("woff2");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:IBM Plex Mono Fallback;src:local(Arial);ascent-override:76.16%;descent-override:20.43%;line-gap-override:0.0%;size-adjust:134.59%}.MU_-uW_className{font-family:IBM Plex Mono,IBM Plex Mono Fallback;font-style:normal;font-weight:400}.MU_-uW_variable{--font-mono:"IBM Plex Mono", "IBM Plex Mono Fallback"}
@property --ang{syntax:"<angle>";inherits:false;initial-value:0deg}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#04060f;--soft:rgba(var(--deep-rgb), .55);--surface:#0c12269e;--surface-2:#101830b8;--ice:rgba(var(--accent-rgb), .14);--ink:#f3f6ff;--text:#b3bdd8;--muted:#9aa6c4;--faint:#7a86a6;--line:#96afe61f;--line-2:#96afe638;--blue:#5b8cff;--blue-600:#2563eb;--sky:#c1faff;--signal:#ffd27a;--ok:#5df0a8;--on-blue:#fff;--accent:#5b8cff;--accent-2:#2563eb;--accent-600:#1d4ed8;--film-ink:#0b1a3b;--film-blue:#1d4ed8;--film-muted:#3b4a6b;--fill:#2f66ea;--fill-2:#1d4ed8;--blue-ink:#a9c3ff;--on-signal:#1d1404;--glow-1:38%;--glow-2:30%;--signal-ink:#ffd27a;--bad:#ff8f85;--code-bg:#050a1a;--dot:#f3f6ff12;--glass:#0c12268c;--glass-2:#101830a6;--panel:#0b1124;--accent-rgb:59, 130, 246;--night-rgb:4, 6, 15;--scene:#040a1e;--deep-rgb:8, 12, 28;--glow-rgb:58, 108, 255;--rim-rgb:193, 250, 255;--glass-line:#96afe629;--sh-sm:0 1px 2px #00000080;--sh-md:0 1px 2px #00000080, 0 18px 44px -20px #000c;--sh-lg:0 30px 80px -30px #000000bf;--radius:18px;--radius-lg:26px;--f-sans:var(--font-sans), -apple-system, BlinkMacSystemFont, system-ui, "Segoe UI", sans-serif;--f-mono:var(--font-mono), ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--ease:cubic-bezier(.22, .7, .2, 1)}@media (max-width:760px){:root{--glass:#0a0f20b8;--glass-2:#0e152acc}}*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--bg);-moz-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:96px}body{background:var(--bg);color:var(--text);font-family:var(--f-sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-size:16.5px;line-height:1.65;overflow-x:clip}body:before{content:"";height:env(safe-area-inset-top,0px);z-index:60;background:var(--bg);position:fixed;inset:0 0 auto}img,svg{max-width:100%}[hidden]{display:none!important}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--blue);outline-offset:3px;border-radius:8px}h1,h2,h3,h4{color:var(--ink);margin:0}.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{z-index:100;background:var(--fill);color:var(--on-blue);border-radius:999px;padding:10px 16px;font-weight:600;transition:transform .2s;position:fixed;top:12px;left:16px;transform:translateY(-200%)}.skip:focus{transform:none}.wrap{max-width:1200px;padding-left:max(20px, env(safe-area-inset-left,0px));padding-right:max(20px, env(safe-area-inset-right,0px));margin-inline:auto}@media (min-width:900px){.wrap{padding-left:max(32px, env(safe-area-inset-left,0px));padding-right:max(32px, env(safe-area-inset-right,0px))}}.eyebrow{letter-spacing:.18em;text-transform:uppercase;color:var(--accent);margin:0 0 18px;font-size:12px;font-weight:600}.h2{letter-spacing:-.02em;text-wrap:balance;text-shadow:0 2px 40px #0009;font-size:clamp(30px,4.4vw,50px);font-weight:800;line-height:1.12}.h2 .mute{color:var(--muted)}.grad{background:linear-gradient(180deg, var(--accent), var(--accent-2));color:#0000;-webkit-background-clip:text;background-clip:text}.glass{background:var(--glass);border:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.w{vertical-align:top;margin-block:-.16em -.08em;padding-block:.16em .08em;display:inline-block;overflow:hidden}.w>span{transition:transform 1s var(--ease), opacity 1s;transition-delay:calc(var(--i,0) * 22ms);display:inline-block}.split[data-pending] .w>span{opacity:0;transform:translateY(70%)}.btn{font:600 15px/1 var(--f-sans);cursor:pointer;transition:transform .3s var(--ease), scale .12s ease-out, box-shadow .3s, background .3s, border-color .3s, color .3s;white-space:nowrap;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:9px;padding:15px 22px;display:inline-flex}.btn:active{scale:.97}.btn svg{flex:none;width:16px;height:16px;transition:transform .3s}.btn:hover svg{transform:translate(3px)}.btn-primary{background:linear-gradient(180deg, var(--fill), var(--fill-2));color:var(--on-blue);box-shadow:0 10px 30px -8px rgba(var(--accent-rgb), .55), inset 0 1px 0 #fff6}@media (hover:hover){.btn-primary:hover{box-shadow:0 16px 38px -8px rgba(var(--accent-rgb), .7), inset 0 1px 0 #fff6;transform:translateY(-2px)}}.btn-ghost{color:var(--ink);border-color:var(--line-2);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff0a}@media (hover:hover){.btn-ghost:hover{background:#ffffff17;transform:translateY(-2px)}}.btn-sm{padding:11px 18px;font-size:14px}.btn[disabled]{opacity:.7;cursor:progress}.cv{content-visibility:auto;contain-intrinsic-size:auto var(--cis,900px)}@media (max-width:760px){.cv{contain-intrinsic-size:auto var(--cis-m,1200px)}}.sec{padding-block:clamp(80px,11vw,140px)}.sec-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:24px 48px;margin-bottom:56px;display:flex}.sec-head>div{max-width:780px}.sec-link{color:var(--blue);align-items:center;gap:8px;font-size:15px;font-weight:600;display:inline-flex}.sec-link svg{width:15px;height:15px;transition:transform .25s}.sec-link:hover svg{transform:translate(3px)}.reveal{transition:transform .7s var(--ease), opacity .7s var(--ease);transition-delay:var(--rd,0s)}.reveal[data-pending]{opacity:0;transform:translateY(26px)}.reveal.reveal-kids,.reveal.reveal-kids[data-pending]{opacity:1;transform:none}.reveal-kids>*{--kd:var(--rd,0s);transition:transform .7s var(--ease), opacity .7s var(--ease);transition-delay:var(--kd)}.reveal-kids>:nth-child(2){--kd:calc(var(--rd,0s) + 80ms)}.reveal-kids>:nth-child(3){--kd:calc(var(--rd,0s) + .16s)}.reveal-kids>:nth-child(n+4){--kd:calc(var(--rd,0s) + .24s)}.reveal-kids[data-pending]>*{opacity:0;transform:translateY(26px)}.reveal.reveal-slide[data-pending]{opacity:1}.spot{position:relative}.spot:after{content:"";border-radius:inherit;pointer-events:none;background:radial-gradient(380px circle at var(--mx,50%) var(--my,0%), color-mix(in srgb, var(--accent) 9%, transparent), transparent 45%);opacity:0;transition:opacity .35s;position:absolute;inset:0}.spot:hover:after{opacity:1}[data-paused],.window:not([data-live]) .view,.window:not([data-live]) .live,.view:not([data-on]){--play:paused}@keyframes rise{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}@keyframes riseIn{0%{transform:translateY(18px)}to{transform:none}}@keyframes viewIn{0%{opacity:0;filter:blur(4px);transform:translateY(10px)}to{opacity:1;filter:none;transform:none}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes blink{50%{opacity:0}}html.lenis,html.lenis body{height:auto}.lenis.lenis-smooth{scroll-behavior:auto!important}.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}.lenis.lenis-stopped{overflow:hidden}.space{z-index:0;pointer-events:none;background:radial-gradient(70% 55% at 50% 118%, rgba(var(--glow-rgb), .34), transparent 70%), radial-gradient(48% 34% at 50% 104%, rgba(var(--rim-rgb), .16), transparent 70%), radial-gradient(60% 50% at 100% 0%, rgba(var(--glow-rgb), .12), transparent 70%), var(--scene);position:fixed;inset:0}.planet-canvas{opacity:0;width:100%;height:100%;transition:opacity 1.2s;display:block;position:absolute;inset:0}.planet-canvas[data-ready]{opacity:1}#main,.foot{z-index:1;position:relative}.planet-lite{transform-origin:50%;mix-blend-mode:screen;will-change:transform;width:auto;height:auto;inset:50% auto auto 50%}
.nav{top:env(safe-area-inset-top,0px);z-index:50;padding-top:14px;position:sticky}.nav-pill{border:1px solid #0000;border-radius:999px;align-items:center;gap:14px;height:60px;padding-inline:10px 8px;transition:background .35s,border-color .35s,box-shadow .35s;display:flex;position:relative}.nav[data-scrolled] .nav-pill{background:rgba(var(--deep-rgb), .7);-webkit-backdrop-filter:blur(18px)saturate(1.4);backdrop-filter:blur(18px)saturate(1.4);border-color:var(--glass-line);box-shadow:var(--sh-md)}.brand{color:var(--ink);align-items:center;gap:10px;padding-left:8px;display:flex}.brand svg{width:34px;height:30px;color:var(--ink);flex:none}.brand b{letter-spacing:.01em;font-size:19px;font-weight:800}.brand span{letter-spacing:.01em;color:var(--accent);font-size:19px;font-weight:800}.links{align-items:center;gap:2px;margin-left:auto;display:flex}.links>a,.links>button{color:var(--muted);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:999px;align-items:center;gap:6px;padding:9px 14px;font-size:14.5px;line-height:1.65;transition:color .2s,background .2s;display:inline-flex}.links>a:hover,.links>button:hover,.links>button[aria-expanded=true]{color:var(--ink);background:#ffffff0f}.links>a[aria-current=page]{color:var(--ink)}.links>button svg{width:12px;height:12px;transition:transform .3s var(--ease)}.links>button[aria-expanded=true] svg{transform:rotate(180deg)}.icon-btn{border:1px solid var(--line-2);cursor:pointer;width:42px;height:42px;color:var(--ink);background:#ffffff0d;border-radius:999px;flex:none;place-items:center;transition:border-color .2s,transform .3s;display:grid}.icon-btn:hover{border-color:var(--ink)}.icon-btn svg{width:18px;height:18px}.burger{display:none}.mega{background:rgba(var(--deep-rgb), .92);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid var(--line-2);box-shadow:var(--sh-lg);animation:megaIn .35s var(--ease);border-radius:26px;padding:10px;position:absolute;top:calc(100% + 10px);left:0;right:0}@keyframes megaIn{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}.mega-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;display:grid}.mega-item{border-radius:18px;flex-direction:column;gap:6px;padding:16px 18px;transition:background .2s;display:flex}.mega-item:hover,.mega-item:focus-visible{background:#ffffff0d}.mega-item code{font-family:var(--f-mono);color:var(--blue);font-size:11.5px}.mega-item b{color:var(--ink);letter-spacing:-.01em;align-items:center;gap:6px;font-size:15.5px;font-weight:600;display:flex}.mega-item b svg{width:13px;height:13px;color:var(--muted)}.mega-item span{color:var(--muted);font-size:13.5px;line-height:1.5}.mega-foot{border-top:1px solid var(--line);color:var(--text);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 20px;margin-top:6px;padding:14px 18px 8px;font-size:14px;display:flex}.mega-foot a{color:var(--blue);align-items:center;gap:8px;font-weight:600;display:inline-flex}.mega-foot a svg{width:15px;height:15px;transition:transform .25s}.mega-foot a:hover svg{transform:translate(3px)}.drawer{background:rgba(var(--deep-rgb), .94);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid var(--line-2);box-shadow:var(--sh-lg);overscroll-behavior:contain;border-radius:24px;max-height:calc(100dvh - 110px);padding:10px;position:absolute;top:calc(100% + 8px);left:0;right:0;overflow-y:auto}.drawer a{color:var(--ink);border-radius:14px;padding:14px 16px;font-size:16px;display:block}.drawer a:hover{background:#ffffff0d}.drawer-label{font-family:var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0;padding:12px 16px 4px;font-size:11px}.drawer-services{border-bottom:1px solid var(--line);grid-template-columns:repeat(2,minmax(0,1fr));gap:2px;margin-bottom:6px;padding-bottom:8px;display:grid}.drawer-services a{padding:12px 16px;font-size:15px}@media (max-width:420px){.drawer-services{grid-template-columns:minmax(0,1fr)}}@media (max-width:1180px){.links>a,.links>button{padding-inline:10px}}@media (max-width:999px){.links{display:none}.burger{display:grid}.nav-cta{margin-left:auto}}@media (min-width:1000px){.drawer{display:none!important}}@media (max-width:480px){.nav-cta{display:none}.burger{margin-left:auto}}
.announce{background:var(--glass);border:1px solid var(--glass-line);box-shadow:var(--sh-sm);color:var(--text);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:999px;align-items:center;gap:10px;margin-bottom:28px;padding:5px 14px 5px 5px;font-size:13.5px;transition:border-color .25s;display:inline-flex}.announce:hover{border-color:var(--line-2)}.announce b{letter-spacing:.04em;color:var(--on-signal);background:var(--signal);border-radius:999px;padding:4px 9px;font-size:11.5px;font-weight:700}.announce svg{width:14px;height:14px;color:var(--muted);flex:none}.hero-lead{color:var(--text);max-width:54ch;animation:rise 1s .25s var(--ease) both;margin:26px 0 0;font-size:clamp(1.05rem,1.35vw,1.18rem)}.hero-lead strong{color:var(--ink);font-weight:600}.cta-row{animation:rise 1s .35s var(--ease) both;flex-wrap:wrap;gap:12px;margin-top:34px;display:flex}.stage{perspective:1800px;position:relative}.stage:before{content:"";background:radial-gradient(50% 50% at 50% 50%, var(--accent), transparent 70%);opacity:.16;filter:blur(30px);z-index:-1;height:120px;position:absolute;bottom:-40px;left:8%;right:8%}.frame{background:var(--glass);border:1px solid var(--glass-line);box-shadow:var(--sh-lg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transform:rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transform-origin:50% 0;will-change:transform;border-radius:26px;padding:8px;transition:transform .25s ease-out}.window{background:var(--surface);border:1px solid var(--line);border-radius:18px;overflow:hidden}.win-bar{border-bottom:1px solid var(--line);align-items:center;gap:14px;height:46px;padding-inline:16px;display:flex}.lights{flex:none;gap:7px;display:flex}.lights i{background:var(--line-2);border-radius:50%;width:11px;height:11px}.crumb{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:13px;overflow:hidden}.crumb b{color:var(--ink);font-weight:600}.live{color:var(--ok);background:color-mix(in srgb, var(--ok) 12%, transparent);border-radius:999px;flex:none;align-items:center;gap:7px;margin-left:auto;padding:5px 10px;font-size:12px;display:inline-flex;position:relative}.live:before{content:"";background:currentColor;border-radius:50%;width:7px;height:7px}.live:after{content:"";opacity:0;width:7px;height:7px;animation:2s infinite ping;animation-play-state:var(--play,running);background:currentColor;border-radius:50%;margin-top:-3.5px;position:absolute;top:50%;left:10px}@keyframes ping{0%{opacity:.45;transform:scale(1)}to{opacity:0;transform:scale(3.3)}}.app{grid-template-columns:228px minmax(0,1fr);min-height:520px;display:grid}.side{background:var(--soft);border-right:1px solid var(--line);flex-direction:column;gap:4px;padding:16px 12px;display:flex}.ws{color:var(--ink);align-items:center;gap:10px;padding:6px 8px 14px;font-size:14px;font-weight:600;display:flex}.ws i{background:linear-gradient(135deg, var(--blue), var(--sky));border-radius:8px;flex:none;width:26px;height:26px}.ws small{color:var(--muted);font-size:11.5px;font-weight:400;display:block}.side-label{font-family:var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);padding:10px 10px 6px;font-size:10.5px}.vbtn{width:100%;color:var(--text);cursor:pointer;text-align:left;background:0 0;border:0;border-radius:10px;align-items:center;gap:10px;padding:9px 10px;font-size:14px;transition:background .2s,color .2s,box-shadow .2s;display:flex;position:relative}.vbtn svg{width:17px;height:17px;color:var(--muted);flex:none}.vbtn:hover{background:var(--surface);color:var(--ink)}.vbtn[aria-selected=true]{background:var(--surface);color:var(--ink);box-shadow:var(--sh-sm), 0 0 0 1px var(--line)}.vbtn[aria-selected=true] svg{color:var(--blue)}.side .vbtn .tm{background:var(--blue);transform-origin:0;opacity:0;border-radius:1px;height:2px;position:absolute;bottom:3px;left:10px;right:10px;transform:scaleX(0)}.side .vbtn[aria-selected=true] .tm[data-run]{opacity:.6;animation:7s linear forwards timer}@keyframes timer{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.side-foot{background:var(--surface);border:1px solid var(--line);color:var(--text);border-radius:12px;margin-top:auto;padding:12px;font-size:12.5px}.side-foot b{color:var(--ink);justify-content:space-between;margin-bottom:8px;font-weight:600;display:flex}.side-foot b span{color:var(--muted);font-weight:400}.meter{background:var(--ice);border-radius:3px;height:6px;overflow:hidden}.meter i{background:linear-gradient(90deg, var(--blue), var(--sky));border-radius:3px;width:64%;height:100%;display:block}.main{flex-direction:column;min-width:0;display:flex}.main-head{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:16px 22px;display:flex}.main-head .mh-t{min-width:0;color:var(--ink);margin:0;font-size:16px;font-weight:600}.main-head p{color:var(--muted);margin:0;font-size:12.5px}.head-actions{flex:none;gap:8px;margin-left:auto;display:flex}.chip-btn{border:1px solid var(--line-2);background:var(--surface);color:var(--ink);border-radius:999px;padding:7px 12px;font-size:12.5px}.chip-btn.primary{background:var(--fill);border-color:var(--accent);color:var(--on-blue)}.tabs-m{border-bottom:1px solid var(--line);scrollbar-width:none;gap:6px;padding:12px 14px;display:none;overflow-x:auto}.tabs-m .vbtn{background:var(--soft);flex:none;width:auto;padding:8px 12px;font-size:13px}.tabs-m .vbtn[aria-selected=true]{background:var(--fill);color:var(--on-blue);box-shadow:none}.tabs-m .vbtn[aria-selected=true] svg{color:var(--on-blue)}.views{flex:1;min-height:0;display:grid}.view{visibility:hidden;flex-direction:column;grid-area:1/1;min-width:0;min-height:0;display:flex}.view[data-on]{visibility:visible;animation:viewIn .55s var(--ease)}@media (max-width:860px){.app{grid-template-columns:minmax(0,1fr);min-height:0}.side{display:none}.tabs-m{display:flex}.head-actions{display:none}}.canvas{border:1px solid var(--line);aspect-ratio:1000/400;background-color:var(--surface);background-image:radial-gradient(var(--dot) 1px, transparent 1.2px);background-size:18px 18px;border-radius:14px;flex:1;margin:18px 22px 0;position:relative}.edges{width:100%;height:100%;position:absolute;inset:0}.edges path{fill:none;stroke:var(--line-2);stroke-width:1.6px}.edges .pulse{stroke:var(--blue);stroke-width:2.2px;stroke-linecap:round;stroke-dasharray:26 400;stroke-dashoffset:426px;animation:3s linear infinite travel;animation-play-state:var(--play,running)}.edges .pulse.d2{animation-delay:.9s}.edges .pulse.d3{animation-delay:1.1s}.edges .pulse.d4{animation-delay:1.9s}.edges .pulse.d5{animation-delay:2.1s}@keyframes travel{0%{stroke-dashoffset:426px;opacity:0}8%{opacity:1}55%{stroke-dashoffset:0;opacity:1}62%,to{stroke-dashoffset:0;opacity:0}}.node{background:var(--surface);border:1px solid var(--line-2);width:15%;min-width:104px;box-shadow:var(--sh-sm);border-radius:12px;flex-direction:column;gap:6px;padding:10px 11px;display:flex;position:absolute;transform:translate(-50%,-50%)}.node:after{content:"";border-radius:inherit;border:1px solid var(--blue);box-shadow:0 0 0 4px color-mix(in srgb, var(--blue) 14%, transparent);opacity:0;pointer-events:none;animation:3s infinite nodeLit;animation-delay:inherit;animation-play-state:var(--play,running);position:absolute;inset:-1px}.node .ic{background:var(--ice);width:26px;height:26px;color:var(--blue);border-radius:8px;place-items:center;display:grid}.node .ic svg{width:15px;height:15px}.node b{color:var(--ink);font-size:12.5px;font-weight:600;line-height:1.3}.node small{color:var(--muted);font-size:11px;line-height:1.3}.node.ai .ic{background:linear-gradient(135deg, var(--fill), var(--fill-2));color:var(--on-blue)}.n2{animation-delay:.9s}.n3,.n4{animation-delay:1.8s}.n5{animation-delay:2.6s}@keyframes nodeLit{0%,30%,to{opacity:0}6%,22%{opacity:1}}.n1{top:50%;left:10%}.n2{top:50%;left:32%}.n3{top:24%;left:56%}.n4{top:76%;left:56%}.n5{top:50%;left:80%}.run-strip{flex-wrap:wrap;gap:10px;padding:16px 22px 20px;display:flex}.stat{border:1px solid var(--line);color:var(--muted);border-radius:12px;flex:150px;padding:10px 14px;font-size:12px}.stat b{color:var(--ink);font-variant-numeric:tabular-nums;margin-top:2px;font-size:15px;font-weight:600;display:block}.stat b.okc{color:var(--ok)}@media (max-width:720px){.canvas{aspect-ratio:auto;gap:10px;margin:14px 14px 0;padding:14px;display:grid}.edges{display:none}.node{flex-direction:row;align-items:center;gap:10px;width:auto;min-width:0;position:relative;top:auto;left:auto;transform:none}.node .ic{flex:none}.node small{text-align:right;margin-left:auto}.run-strip{padding:14px}}.chat{background:linear-gradient(180deg, var(--surface), var(--soft));flex-direction:column;flex:1;gap:14px;min-height:360px;padding:22px;display:flex}.msg{border-radius:16px;max-width:min(78%,460px);padding:12px 16px;font-size:14.5px;line-height:1.55}.msg.user{background:var(--fill);color:var(--on-blue);border-bottom-right-radius:6px;align-self:flex-end}.msg.bot{background:var(--surface);color:var(--ink);border:1px solid var(--line);box-shadow:var(--sh-sm);border-bottom-left-radius:6px;align-self:flex-start}.msg.bot .who{color:var(--muted);align-items:center;gap:8px;margin-bottom:6px;font-size:12px;display:flex}.msg.bot .who i{background:linear-gradient(135deg, var(--blue), var(--sky));border-radius:6px;width:18px;height:18px}.src{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.src span{font-family:var(--f-mono);color:var(--blue-ink);background:var(--ice);border-radius:6px;padding:3px 8px;font-size:11px}.typing{gap:4px;padding:4px 0;display:inline-flex}.typing i{background:var(--muted);width:6px;height:6px;animation:1s infinite dot;animation-play-state:var(--play,running);border-radius:50%}.typing i:nth-child(2){animation-delay:.15s}.typing i:nth-child(3){animation-delay:.3s}@keyframes dot{0%,to{opacity:.3;transform:none}50%{opacity:1;transform:translateY(-3px)}}.quick{flex-wrap:wrap;align-self:flex-start;gap:8px;display:flex}.quick span{border:1px solid var(--line-2);background:var(--surface);color:var(--ink);border-radius:999px;padding:7px 12px;font-size:13px}.composer{border:1px solid var(--line-2);color:var(--muted);background:var(--surface);border-radius:999px;align-items:center;gap:10px;margin:0 22px 20px;padding:8px 8px 8px 16px;font-size:14px;display:flex}.composer span{flex:1;min-width:0}.composer i{background:var(--fill);width:34px;height:34px;color:var(--on-blue);border-radius:50%;flex:none;place-items:center;display:grid}.composer i svg{width:15px;height:15px}.lib{flex-direction:column;gap:16px;padding:20px 22px;display:flex}.search{border:1px solid var(--line-2);color:var(--muted);border-radius:12px;align-items:center;gap:10px;padding:11px 14px;font-size:14px;display:flex}.search svg{flex:none;width:16px;height:16px}.search kbd{font-family:var(--f-mono);border:1px solid var(--line-2);border-radius:6px;margin-left:auto;padding:2px 6px;font-size:11px}.filters{flex-wrap:wrap;gap:6px;display:flex}.filters span{background:var(--soft);color:var(--text);border-radius:999px;padding:6px 12px;font-size:12.5px}.filters span.on{background:var(--ink);color:var(--bg)}.res-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}@media (max-width:720px){.res-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.res:nth-child(n+5){display:none}}.res{border:1px solid var(--line);background:var(--surface);border-radius:14px;flex-direction:column;gap:8px;padding:14px;transition:border-color .2s,box-shadow .2s;display:flex}.res:hover{border-color:var(--line-2);box-shadow:var(--sh-md)}.tag{font-family:var(--f-mono);letter-spacing:.08em;color:var(--blue-ink);background:var(--ice);border-radius:6px;align-self:flex-start;padding:3px 7px;font-size:10.5px}.tag.wf{color:var(--signal-ink);background:color-mix(in srgb, var(--signal) 14%, transparent)}.tag.doc{color:var(--ok);background:color-mix(in srgb, var(--ok) 12%, transparent)}.res b{color:var(--ink);font-size:14px;font-weight:600;line-height:1.4}.res small{color:var(--muted);font-size:12px}.lib-note{color:var(--muted);margin:0;font-size:13px}.lib-note a{color:var(--blue)}.course-v{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:18px;padding:20px 22px;display:grid}@media (max-width:720px){.course-v{grid-template-columns:minmax(0,1fr)}}.player{aspect-ratio:16/9;background:radial-gradient(70% 90% at 80% 10%, rgba(var(--accent-rgb), .4), rgba(var(--accent-rgb), 0) 60%), linear-gradient(135deg, var(--panel), rgba(var(--glow-rgb), .55));color:#fff;border-radius:14px;flex-direction:column;justify-content:flex-end;padding:16px;display:flex;position:relative;overflow:hidden}.player .play{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffff2e;border:1px solid #ffffff80;border-radius:50%;place-items:center;width:58px;height:58px;display:grid;position:absolute;top:44%;left:50%;transform:translate(-50%,-50%)}.player .play svg{width:20px;height:20px;margin-left:3px}.player small{font-family:var(--f-mono);opacity:.85;font-size:11px}.player b{font-size:15px;font-weight:600}.ptrack{background:#ffffff40;border-radius:2px;height:4px;margin-top:10px;overflow:hidden}.ptrack i{transform-origin:0;width:100%;height:100%;animation:8s linear infinite prog;animation-play-state:var(--play,running);background:#fff;display:block;transform:scaleX(.38)}@keyframes prog{0%{transform:scaleX(.12)}to{transform:scaleX(.92)}}.mods{gap:4px;margin:0;padding:0;font-size:13.5px;list-style:none;display:grid}.mods li{color:var(--text);border-radius:10px;align-items:center;gap:10px;padding:9px 10px;display:flex}.mods li:before{content:"";border:1.5px solid var(--line-2);border-radius:50%;flex:none;width:18px;height:18px}.mods li.done{color:var(--ink)}.mods li.done:before{border-color:var(--fill);background:var(--fill) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8.5l2.5 2.5L12 5.5' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/12px no-repeat}.mods li.now{background:var(--ice);color:var(--ink);font-weight:600}.mods li.now:before{border-color:var(--blue);box-shadow:inset 0 0 0 4px var(--panel), inset 0 0 0 9px var(--blue)}.steps{--p:1;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin:0;padding:0;list-style:none;display:grid;position:relative}.steps:before,.steps:after{content:"";background:var(--line-2);height:1px;position:absolute;top:-22px;left:0;right:0}.steps:after{background:linear-gradient(90deg, var(--accent-2), var(--accent));height:2px;box-shadow:0 0 14px rgba(var(--accent-rgb), .55);transform:scaleX(var(--p));transform-origin:0;transition:transform .2s linear;top:-22.5px}.step{border-radius:var(--radius);background:var(--glass);border:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);min-width:0;transition:border-color .5s, background .5s, box-shadow .5s, translate .35s var(--ease);padding:26px 24px}@media (hover:hover){.step:hover{translate:0 -4px}}.steps[data-js] .step[data-on]{border-color:rgba(var(--accent-rgb), .32);background:var(--glass-2);box-shadow:0 0 0 1px rgba(var(--accent-rgb), .08), 0 18px 40px -24px rgba(var(--accent-rgb), .35)}.step .n{font-family:var(--f-mono);color:var(--accent);letter-spacing:.08em;font-size:12px}.step h3{letter-spacing:-.01em;margin:12px 0 8px;font-size:19px;font-weight:700}.step p{color:var(--muted);margin:0 0 14px;font-size:15px}.step .o{font-family:var(--f-mono);color:var(--muted);font-size:11.5px}.step .o b{color:var(--ink);font-weight:400}@media (max-width:980px){.steps{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:560px){.steps{grid-template-columns:minmax(0,1fr)}.steps:after,.steps:before{display:none}}.promise{grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin:56px 0 0;padding:0;list-style:none;display:grid}.promise>li{border-radius:var(--radius);background:var(--glass);border:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);flex-direction:column;gap:10px;padding:24px 22px;display:flex}.promise svg{width:22px;height:22px;color:var(--accent)}.promise h3{font-size:16px;font-weight:700}.promise p{color:var(--muted);margin:0;font-size:14.5px;line-height:1.6}@media (max-width:980px){.promise{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:560px){.promise{grid-template-columns:minmax(0,1fr)}}.courses{grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;gap:20px;display:grid}@media (max-width:980px){.courses{grid-template-columns:minmax(0,1fr)}}.course{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--glass);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);transition:box-shadow .35s, transform .45s var(--ease);flex-direction:column;gap:16px;padding:30px 28px;display:flex;overflow:hidden}@media (hover:hover){.course:hover{border-color:var(--line-2);background:var(--glass-2);transform:translateY(-4px)}}.course.feat{background:linear-gradient(var(--panel), var(--panel)) padding-box, conic-gradient(from var(--ang), var(--accent), var(--sky), var(--line), var(--line), var(--accent)) border-box;box-shadow:var(--sh-md);animation:8s linear infinite ang;animation-play-state:var(--play,running);border:1px solid #0000}@keyframes ang{to{--ang:360deg}}.c-top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.lvl{font-family:var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);align-items:center;gap:8px;font-size:11.5px;display:inline-flex}.lvl i{gap:3px;display:inline-flex}.lvl i b{background:var(--line-2);border-radius:2px;width:4px;height:12px}.lvl i b.on{background:var(--blue)}.badge{color:var(--blue-ink);background:var(--ice);border-radius:999px;padding:5px 11px;font-size:12px;font-weight:600}.course .btn-ghost{-webkit-backdrop-filter:none;backdrop-filter:none}.course h3{letter-spacing:-.02em;font-size:1.35rem;font-weight:700;line-height:1.3}.course>p{margin:0;font-size:15px}.course ul{color:var(--ink);gap:10px;margin:0;padding:0;font-size:14.5px;list-style:none;display:grid}.course li{gap:10px;line-height:1.5;display:flex}.course li svg{width:18px;height:18px;color:var(--blue);flex:none;margin-top:2px}.outc{border-top:1px solid var(--line);color:var(--ink);margin-top:auto;padding-top:16px;font-size:14.5px}.c-fee{color:var(--ink);margin:0;font-size:14.5px}.c-fee>span:first-child,.outc span{font-family:var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:4px;font-size:11px;display:block}.contact{border-radius:var(--radius-lg);background:radial-gradient(120% 140% at 50% 0%, rgba(var(--accent-rgb), .12), transparent 55%), var(--glass-2);border:1px solid var(--line-2);box-shadow:var(--sh-lg);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);align-items:start;gap:clamp(32px,5vw,72px);padding:clamp(28px,5vw,64px);display:grid;position:relative}@media (max-width:980px){.contact{grid-template-columns:minmax(0,1fr)}}.next{counter-reset:n;margin:36px 0 0;padding:0;list-style:none}.next li{border-top:1px solid var(--line);counter-increment:n;grid-template-columns:40px minmax(0,1fr);gap:10px;padding-block:16px;display:grid}.next li:before{content:"0" counter(n);font-family:var(--f-mono);color:var(--accent);padding-top:3px;font-size:12px}.next b{color:var(--ink);font-weight:600;display:block}.next span{color:var(--muted);font-size:14.5px}.contact-alt{margin:28px 0 0;font-size:14.5px}.contact-alt a{color:var(--accent);text-decoration:underline;-webkit-text-decoration-color:rgba(var(--accent-rgb), .4);text-decoration-color:rgba(var(--accent-rgb), .4);text-underline-offset:3px;font-weight:600}.contact-alt a:hover{-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}.fnote{background:rgba(var(--accent-rgb), .07);border:1px solid var(--line);border-radius:18px;align-items:center;gap:14px;margin:24px 0 0;padding:14px 16px;display:flex}.fnote-photo{object-fit:cover;object-position:50% 22%;border:1px solid rgba(var(--accent-rgb), .35);border-radius:50%;flex:none;width:56px;height:56px}.fnote p{color:var(--text);margin:0;font-size:14.5px;line-height:1.5}.fnote b{color:var(--ink);font-weight:600}.fnote a{color:var(--accent);white-space:nowrap;align-items:center;gap:4px;font-weight:600;display:inline-flex}.fnote a svg{width:14px;height:14px}.form{background:rgba(var(--night-rgb), .55);border:1px solid var(--line);color:var(--text);border-radius:22px;gap:18px;padding:28px;display:grid}@media (max-width:560px){.form{padding:20px}}.row2{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}@media (max-width:560px){.row2{grid-template-columns:minmax(0,1fr)}}.field{gap:7px;min-width:0;display:grid}.field label,.form legend{color:var(--ink);font-size:13.5px;font-weight:600}.form input[type=text],.form textarea{font:inherit;color:var(--ink);border:1px solid var(--line-2);background:#ffffff0a;border-radius:12px;width:100%;padding:12px 14px;font-size:15px;transition:border-color .2s,box-shadow .2s}.form textarea{resize:vertical;min-height:110px}.form input::placeholder,.form textarea::placeholder{color:var(--muted)}.form input:focus,.form textarea:focus{border-color:var(--blue);box-shadow:0 0 0 4px color-mix(in srgb, var(--blue) 16%, transparent);outline:none}.form [aria-invalid=true]{border-color:var(--signal-ink)}.field-err{color:var(--signal-ink);margin:0;font-size:13px}fieldset{border:0;min-width:0;margin:0;padding:0}.form legend{margin-bottom:10px;padding:0}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{position:relative}.chip input{opacity:0;width:1px;height:1px;position:absolute}.chip span{border:1px solid var(--line-2);color:var(--text);cursor:pointer;border-radius:999px;padding:8px 14px;font-size:13.5px;transition:all .2s;display:inline-block}.chip span:hover{border-color:var(--ink);color:var(--ink)}.chip input:checked+span{background:var(--ice);border-color:var(--blue-ink);color:var(--blue-ink)}.chip input:focus-visible+span{outline:2px solid var(--blue);outline-offset:2px}.hp{width:1px;height:1px;position:absolute;left:-10000px;overflow:hidden}.form .btn{width:100%}.form-msg{min-height:1.4em;margin:0;font-size:14px}.form-msg.ok{color:var(--ok)}.form-msg.err{color:var(--signal-ink)}.form-msg a{color:var(--blue);text-underline-offset:3px;font-weight:600;text-decoration:underline}.form-note{color:var(--muted);margin:0;font-size:12.5px}.form-note a{color:var(--text);text-underline-offset:3px;text-decoration:underline}.foot{background:linear-gradient(180deg, transparent, rgba(var(--night-rgb), .86) clamp(64px, 9vw, 110px));padding-block:clamp(64px,9vw,110px) 40px}.foot-grid{border-top:1px solid var(--line);grid-template-columns:1.6fr repeat(3,minmax(0,1fr));gap:48px 32px;padding-top:48px;display:grid}@media (max-width:800px){.foot-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.foot-about{grid-column:1/-1}}@media (max-width:420px){.foot-grid{grid-template-columns:minmax(0,1fr)}}.foot-about p{max-width:36ch;color:var(--muted);margin:14px 0 0;font-size:14.5px}.foot-contact{gap:6px;margin:18px 0 0;padding:0;font-size:14.5px;list-style:none;display:grid}.foot-contact a{color:var(--ink);font-weight:600;transition:color .2s}.foot-contact a:hover{color:var(--accent)}.foot-contact span{color:var(--faint);letter-spacing:.14em;text-transform:uppercase;margin-right:8px;font-size:11.5px;font-weight:600}.foot h2{letter-spacing:.16em;text-transform:uppercase;color:var(--faint);margin-bottom:14px;font-size:12px;font-weight:600}.foot ul.foot-links{margin:0;padding:0;list-style:none}.foot ul.foot-links a{color:var(--muted);padding-block:5px;font-size:14.5px;transition:color .2s;display:block}.foot ul.foot-links a:hover{color:var(--ink)}.foot-bottom{color:var(--faint);text-align:center;flex-wrap:wrap;justify-content:center;gap:6px 18px;margin-top:56px;font-size:13px;display:flex}.foot-bottom a{color:var(--muted)}.foot-bottom a:hover{color:var(--ink)}
.hero{text-align:center;flex-direction:column;min-height:calc(100svh - 74px);display:flex;position:relative}.hero:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(125% 62% at 50% -10%, rgba(var(--night-rgb), .82) 0%, rgba(var(--night-rgb), .28) 44%, transparent 68%);position:absolute;inset:-74px 0 0}.hero-inner{flex-direction:column;flex:1;align-items:center;padding-block:24px 48px;display:flex}.hero-inner:before,.hero-inner:after{content:"";flex:1}.hero-inner:after{flex-grow:4}.hero-title{letter-spacing:-.03em;text-wrap:balance;text-shadow:0 2px 50px #0000008c;font-size:clamp(36px,5.4vw,66px);font-weight:800;line-height:1.1}.hero-title em{background:linear-gradient(180deg, var(--blue-ink), var(--accent));color:#0000;-webkit-background-clip:text;background-clip:text;font-style:normal}.hero-sub{max-width:600px;color:var(--muted);text-shadow:0 1px 24px #0000008c;margin:24px auto 0;font-size:clamp(16px,2vw,19px);line-height:1.6}.hero-actions{flex-wrap:wrap;justify-content:center;gap:14px;margin-top:38px;display:flex}@media (min-width:761px) and (max-height:800px){.hero-inner{padding-bottom:24px}.hero-sub{margin-top:18px}.hero-actions{margin-top:28px}}.hero-actions .btn-ghost{background:rgba(var(--night-rgb), .45)}.proof-strip{flex-wrap:wrap;justify-content:center;align-self:center;gap:14px;width:min(1180px,100% - 40px);margin:0 0 clamp(28px,5vw,56px);padding:0;list-style:none;display:flex}.proof-stat{background:rgba(var(--night-rgb), .55);border:1px solid var(--glass-line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);text-align:left;border-radius:18px;flex-direction:column;flex:0 calc(33.3333% - 9.33333px);gap:4px;min-width:0;padding:16px 20px 18px;display:flex}.proof-stat b{letter-spacing:-.02em;color:var(--ink);font-size:clamp(24px,2.4vw,30px);font-weight:800;line-height:1.15}.proof-stat span{color:var(--text);font-size:13.5px;line-height:1.45}@media (min-width:1200px){.proof-stat{flex-basis:calc(20% - 11.2px)}}@media (max-width:760px){.proof-strip{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.proof-stat{padding:12px 14px 14px}.proof-stat:last-child{grid-column:1/-1}.proof-stat b{font-size:22px}}@media (min-width:400px){.hero-title em{white-space:nowrap}}.rise{animation:rise .9s var(--ease) both;animation-delay:var(--rd,0s)}.hero-title.rise{animation-name:riseIn}.sec-center{text-align:center;max-width:720px;margin:0 auto clamp(48px,6vw,80px)}.sec-lead{color:var(--muted);text-shadow:0 1px 24px #0000008c;margin:18px 0 0;font-size:18px;line-height:1.65}.sec-more{text-align:center;margin:36px 0 0}.cs-head{max-width:720px;margin:0 0 clamp(40px,5vw,64px)}.cs{grid-template-columns:minmax(280px,.42fr) minmax(0,1fr);align-items:center;column-gap:clamp(32px,4.5vw,64px);display:grid}.cs-tabs{border-radius:var(--radius);background:var(--glass);border:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);flex-direction:column;grid-area:1/1;gap:4px;padding:8px;display:flex}.cs-tab{width:100%;color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:14px;grid-template-columns:32px minmax(0,1fr) 16px;align-items:center;column-gap:14px;padding:14px 16px;transition:background .25s,border-color .25s;display:grid}.cs-tab:hover{background:rgba(var(--accent-rgb), .05)}.cs-tab[aria-selected=true]{background:rgba(var(--accent-rgb), .12);border-color:rgba(var(--accent-rgb), .4)}.cs-no{font-family:var(--f-mono);color:var(--faint);font-size:12px}.cs-tab[aria-selected=true] .cs-no{color:var(--blue-ink)}.cs-name{flex-direction:column;min-width:0;display:flex}.cs-name b{letter-spacing:-.01em;color:var(--ink);font-size:17px;font-weight:600}.cs-name span{color:var(--muted);margin-top:2px;font-size:13.5px;line-height:1.45}.cs-chev{fill:none;width:16px;height:16px;stroke:var(--blue-ink);stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;opacity:0;transition:opacity .25s, transform .25s var(--ease);transform:translate(-4px)}.cs-tab[aria-selected=true] .cs-chev{opacity:1;transform:none}.cs-panel{flex-direction:column;grid-area:1/2;gap:26px;min-width:0;display:flex}.cs-panel:not([hidden]) .cs-stage,.cs-panel:not([hidden]) .cs-foot{animation:cs-in .6s var(--ease) backwards}.cs-panel:not([hidden]) .cs-foot{animation-delay:80ms}@keyframes cs-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}.cs-stage{--ry:0deg;--rx:0deg;--px:0px;--py:0px;padding:24px 30px 56px 6px;position:relative}.cs-glow{background:rgba(var(--accent-rgb), .22);filter:blur(70px);pointer-events:none;border-radius:50%;height:64%;position:absolute;top:16%;left:14%;right:6%}.cs-ghost{background:var(--glass-2);box-shadow:inset 0 0 0 1px var(--line);transform:perspective(1800px) rotateY(calc(-10deg + var(--ry))) rotateX(calc(3deg + var(--rx))) translate(calc(30px - var(--px)), calc(-24px - var(--py)));transition:transform .5s var(--ease);pointer-events:none;border-radius:20px;position:absolute;inset:24px 30px 56px 6px}.cs-device{aspect-ratio:16/10;background:var(--panel);transform:perspective(1800px) rotateY(calc(-10deg + var(--ry))) rotateX(calc(3deg + var(--rx)));transform-origin:62%;box-shadow:0 50px 90px -30px #000000d9, 0 24px 50px -24px rgba(var(--accent-rgb), .45);transition:transform .45s var(--ease), scale .14s ease-out;border-radius:20px;position:relative;overflow:hidden}.cs-device img{object-fit:cover;object-position:top center;width:100%;height:100%;transform:translate(var(--px), var(--py)) scale(1.04);transition:transform .45s var(--ease);display:block}.cs-stage[data-hover] .cs-device,.cs-stage[data-hover] .cs-ghost,.cs-stage[data-hover] .cs-device>img{transition-duration:.18s}.cs-stage[data-press] .cs-device{scale:.98}.cs-motion{position:absolute;inset:0;overflow:hidden}.cs-device .cs-motion .cs-roll{object-fit:fill;height:auto;animation:7s ease-in-out infinite alternate cs-roll;animation-play-state:var(--play,running)}@keyframes cs-roll{0%{translate:0}to{translate:0 var(--roll)}}.cs-device .cs-motion .cs-frame{opacity:0;transition:opacity 0s linear .8s, scale 0s linear .8s, transform .45s var(--ease);position:absolute;inset:0;scale:1}.cs-device .cs-motion .cs-frame[data-on]{z-index:1;opacity:1;transition:opacity .8s var(--ease), scale 3.6s linear, transform .45s var(--ease);scale:1.04}.cs-pause{z-index:2;border:1px solid var(--glass-line);background:rgba(var(--night-rgb), .72);width:36px;height:36px;color:var(--ink);cursor:pointer;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:50%;place-items:center;padding:0;transition:background .2s,border-color .2s;display:grid;position:absolute;top:36px;right:42px}@media (hover:hover){.cs-pause:hover{background:rgba(var(--accent-rgb), .85);border-color:#0000}}.cs-pause:focus-visible{outline:2px solid var(--blue);outline-offset:2px}.cs-pause svg{fill:currentColor;width:14px;height:14px}.cs-label{background:rgba(var(--night-rgb), .82);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--glass-line);min-width:250px;max-width:min(320px,72%);transition:transform .4s var(--ease);border-radius:16px;flex-direction:column;gap:6px;padding:16px 18px;display:flex;position:absolute;bottom:18px;left:-6px;box-shadow:0 20px 40px -18px #000c}.cs-stage[data-hover] .cs-label{transform:translateY(-4px)}.cs-label .cs-title{letter-spacing:-.01em;color:var(--ink);margin:0;font-size:19px;font-weight:700}.cs-label p{color:var(--text);margin:0;font-size:13px;line-height:1.45}.cs-label code{font-family:var(--f-mono);color:var(--blue-ink);font-size:11.5px}.cs-roadmap{box-sizing:border-box;flex-direction:column;justify-content:center;gap:12px;height:100%;margin:0;padding:clamp(18px,5%,44px);list-style:none;display:flex}.cs-roadmap li{border:1px solid var(--line);color:var(--ink);border-radius:14px;align-items:center;gap:14px;padding:14px 18px;font-size:16px;font-weight:600;display:flex}.cs-roadmap li:nth-child(2){border-color:rgba(var(--accent-rgb), .45);background:rgba(var(--accent-rgb), .08)}.cs-roadmap span{font-family:var(--f-mono);color:var(--blue-ink);flex:none;font-size:12px;font-weight:400}.cs-foot{flex-direction:column;gap:22px;display:flex}.cs-points{border-radius:var(--radius);background:var(--glass);border:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:0;padding:16px 22px 18px;list-style:none;display:grid}.cs-points li{border-top:1px solid var(--line);color:var(--text);text-shadow:0 1px 18px #000000bf;flex-direction:column;gap:8px;padding-top:14px;font-size:14.5px;line-height:1.55;display:flex}@media (min-width:761px){.cs-foot .cs-points li{border-top:0;padding-top:0}.cs-foot .cs-points li+li{border-left:1px solid var(--line);padding-left:18px}}.cs-points span{font-family:var(--f-mono);color:var(--blue-ink);font-size:11px}.cs-more{align-self:flex-start}@media (max-width:980px){.cs{grid-template-columns:minmax(0,1fr);row-gap:22px}.cs-tabs{scroll-snap-type:x mandatory;-webkit-backdrop-filter:none;backdrop-filter:none;scrollbar-width:none;background:0 0;border:0;border-radius:0;flex-direction:row;gap:8px;padding:0 0 4px;overflow-x:auto}.cs-tabs::-webkit-scrollbar{display:none}.cs-panel{grid-area:2/1}.cs-tab{border-color:var(--line);background:var(--glass);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);scroll-snap-align:start;flex:none;grid-template-columns:auto auto;column-gap:10px;width:auto;padding:10px 14px}.cs-tab[aria-selected=true]{background:var(--glass-2)}.cs-name span,.cs-chev{display:none}.cs-name b{white-space:nowrap;font-size:15px}}@media (max-width:760px){.cs-device,.cs-device img{transform:none}.cs-ghost{display:none}.cs-stage{padding:0}.cs-pause{width:44px;height:44px;top:8px;right:8px}.cs-label{min-width:0;max-width:none;margin:-28px 12px 0;padding:14px 16px;position:relative;bottom:auto;left:auto}.cs-more{white-space:normal;text-align:left;max-width:100%;line-height:1.3}.cs-points{grid-template-columns:minmax(0,1fr);gap:0;padding:4px 16px}.cs-points li{padding:12px 0}.cs-points li:first-child{border-top:0}}.fb{flex-wrap:wrap;align-items:center;gap:clamp(32px,6vw,80px);display:flex}.fb-person{flex-direction:column;flex:0 320px;align-items:center;gap:18px;margin:0 auto;display:flex}.fb-ring{aspect-ratio:1;background:rgba(var(--accent-rgb), .1);border:1px solid rgba(var(--accent-rgb), .35);width:clamp(220px,24vw,300px);box-shadow:0 30px 70px -30px rgba(var(--accent-rgb), .6);border-radius:50%;padding:6px}.fb-photo{aspect-ratio:1;object-fit:cover;object-position:50% 22%;border-radius:50%;width:100%;height:auto;display:block}.fb-name{text-align:center;text-shadow:0 1px 18px #000000bf;flex-direction:column;align-items:center;gap:2px;margin:0;display:flex}.fb-name b{color:var(--ink);font-size:18px;font-weight:700}.fb-name span{font-family:var(--f-mono);color:var(--muted);font-size:12px}.fb-text{flex-direction:column;flex:440px;align-items:flex-start;gap:18px;min-width:0;display:flex}.fb-text .sec-lead{margin:0}.fb-work{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;width:100%;margin:0;padding:0;list-style:none;display:grid}.fb-work img{aspect-ratio:4/3;object-fit:cover;border:1px solid var(--line);border-radius:16px;width:100%;height:auto;display:block}.show-copy{text-align:center;max-width:720px;margin:0 auto clamp(40px,5vw,64px)}.show-copy .btn{margin-top:30px}.show-stage{min-width:0;overflow-x:clip}.facts{grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin:clamp(56px,8vw,96px) 0 0;padding:0;list-style:none;display:grid}@media (max-width:980px){.facts{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:380px){.facts{grid-template-columns:minmax(0,1fr)}}.fact{text-align:center;border-radius:var(--radius);background:var(--glass);border:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);padding:30px 18px}.fact b{letter-spacing:-.02em;background:linear-gradient(180deg, var(--ink), var(--accent));color:#0000;-webkit-background-clip:text;background-clip:text;font-size:clamp(30px,4vw,44px);font-weight:800;line-height:1.1;display:block}.fact span{color:var(--muted);margin-top:8px;font-size:14px;display:block}@media (max-width:720px){.sec{padding-block:clamp(64px,16vw,110px)}}@media (max-width:560px){.hero-actions .btn{flex:1}}.contact .h2{font-size:clamp(28px,3.3vw,40px)}
.page-hero{isolation:isolate;padding-block:56px clamp(48px,6vw,80px);position:relative;overflow:hidden}@media (min-width:900px){.page-hero{padding-top:80px}}.crumbs{animation:rise .8s var(--ease) both;margin-bottom:28px}.crumbs ol{color:var(--muted);flex-wrap:wrap;gap:6px 0;margin:0;padding:0;font-size:13.5px;list-style:none;display:flex}.crumbs li{align-items:center;display:inline-flex}.crumbs li+li:before{content:"/";color:var(--line-2);margin-inline:10px}.crumbs a{color:var(--text);transition:color .2s}.crumbs a:hover{color:var(--blue)}.crumbs [aria-current]{color:var(--ink)}.page-hero .eyebrow{animation:rise .9s 50ms var(--ease) both}.eyebrow.ep{text-transform:none;letter-spacing:.04em;font-size:13px}.page-h1{letter-spacing:-.025em;text-wrap:balance;text-shadow:0 2px 40px #0009;max-width:22ch;font-size:clamp(34px,4.6vw,58px);font-weight:800;line-height:1.1}.page-h1 .ln{animation:riseIn 1.1s .1s var(--ease) both;display:inline}.page-h1 .ln.mute{color:var(--muted);animation-delay:.18s}.page-hero .hero-lead{text-shadow:0 1px 24px #0000008c;max-width:60ch}.page-hero .proof-strip{justify-content:flex-start;align-self:auto;width:100%;max-width:1180px;margin:40px 0 0}.demo-sec{padding-block:8px clamp(32px,5vw,56px)}.demo-note{color:var(--muted);align-items:center;gap:8px;margin:14px 4px 0;font-size:13px;display:flex}.demo-note:before{content:"";background:var(--signal);border-radius:50%;flex:none;width:6px;height:6px}.deliv{counter-reset:d;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:0;padding:0;list-style:none;display:grid}.deliv li{border-radius:var(--radius);background:var(--glass);border:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);counter-increment:d;grid-template-columns:44px minmax(0,1fr);gap:4px 12px;padding:26px 26px 28px;display:grid}.deliv li:before{content:"0" counter(d);font-family:var(--f-mono);color:var(--blue);grid-row:span 2;padding-top:6px;font-size:12px}.deliv h3{letter-spacing:-.02em;font-size:1.25rem;font-weight:700;line-height:1.35}.deliv p{color:var(--muted);margin:0;font-size:15.5px}@media (max-width:760px){.deliv{grid-template-columns:minmax(0,1fr)}}.split-sec{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:start;gap:clamp(32px,6vw,96px);display:grid}.split-sec>:first-child{position:sticky;top:110px}.split-sec .lead-sm{max-width:40ch;margin:18px 0 0}.split-sec .lead-sm a{color:var(--blue);font-weight:600}@media (max-width:900px){.split-sec{grid-template-columns:minmax(0,1fr)}.split-sec>:first-child{position:static}}.fit{border-radius:var(--radius);background:var(--glass);border:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);margin:0;padding:0 26px;list-style:none}.fit li:first-child,.faq details:first-child,.others li:first-child a{border-top:0}.fit li{border-top:1px solid var(--line);color:var(--ink);letter-spacing:-.01em;align-items:flex-start;gap:16px;padding-block:22px;font-size:clamp(1.05rem,1.5vw,1.2rem);line-height:1.5;display:flex}.fit li svg{width:20px;height:20px;color:var(--blue);flex:none;margin-top:4px}.faq{border-radius:var(--radius);background:var(--glass);border:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);padding:0 26px}.faq details{border-top:1px solid var(--line)}.faq summary{cursor:pointer;color:var(--ink);letter-spacing:-.01em;justify-content:space-between;align-items:center;gap:20px;padding-block:22px;font-size:1.08rem;font-weight:600;list-style:none;display:flex}.faq summary::-webkit-details-marker{display:none}.faq summary svg{width:18px;height:18px;color:var(--muted);transition:transform .35s var(--ease), color .2s;flex:none}.faq summary:hover svg{color:var(--blue)}.faq details[open] summary svg{color:var(--blue);transform:rotate(45deg)}.faq details p{max-width:64ch;color:var(--muted);margin:0;padding:0 40px 24px 0;font-size:15.5px}.faq details[open] p{animation:viewIn .45s var(--ease)}.others{border-radius:var(--radius);background:var(--glass);border:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);margin:0;padding:0 22px;list-style:none}.others a{border-top:1px solid var(--line);grid-template-columns:118px minmax(0,1fr) auto;align-items:center;gap:18px;padding:22px 4px;transition:background .25s;display:grid}.others a:hover{background:linear-gradient(90deg, rgba(var(--accent-rgb), .06), transparent)}.others code{font-family:var(--f-mono);color:var(--muted);font-size:12px}.others b{letter-spacing:-.02em;color:var(--ink);font-size:clamp(1.15rem,1.7vw,1.4rem);font-weight:700;line-height:1.25;display:block}.others span{color:var(--muted);margin-top:2px;font-size:14px;display:block}.others svg{width:20px;height:20px;color:var(--muted);transition:transform .35s var(--ease), color .2s}.others a:hover svg{color:var(--blue);transform:translate(4px)}.others a:hover code{color:var(--blue)}@media (max-width:640px){.others a{grid-template-columns:minmax(0,1fr) auto}.others code{display:none}}.real{grid-template:"head stage""body stage"1fr/minmax(0,5fr) minmax(0,7fr);gap:26px clamp(28px,4vw,64px);display:grid}.real-head{grid-area:head}.real>.cs-stage{grid-area:stage;align-self:center}.real-body{flex-direction:column;grid-area:body;gap:28px;display:flex}.real-points{grid-template-columns:minmax(0,1fr);gap:0;padding:4px 18px}.real-points li:first-child{border-top:0}.real-points li{flex-direction:row;gap:14px;padding:12px 0}.real-points li span{flex:none;padding-top:4px}.real-cta{align-self:flex-start;max-width:100%}.real-related h3{font-family:var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);text-shadow:0 1px 18px #000000bf;margin:0 0 12px;font-size:12px;font-weight:400}.real-related .others{padding:0 16px}.real-related .others a{gap:12px;padding:14px 2px}.real-related .others b{font-size:1.05rem}@media (max-width:980px){.real{grid-template-rows:none;grid-template-columns:minmax(0,1fr);grid-template-areas:"head""stage""body"}}.track{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:28px;display:grid;position:relative}.track:before{content:"";background:var(--line-2);z-index:-1;height:1px;position:absolute;top:31px;left:24px;right:24px}.lv{text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:22px;flex-direction:column;align-items:flex-start;gap:12px;padding:18px 20px 20px;scroll-margin-top:120px;transition:background .3s,border-color .3s,box-shadow .3s;display:flex}.lv:hover{background:#ffffff0d}.lv[aria-selected=true]{background:var(--glass-2);border-color:rgba(var(--accent-rgb), .28);box-shadow:var(--sh-md);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.lv .dot{background:var(--bg);border:1.5px solid var(--line-2);width:26px;height:26px;font-family:var(--f-mono);color:var(--muted);border-radius:50%;place-items:center;font-size:11px;transition:all .3s;display:grid}.lv[aria-selected=true] .dot{background:var(--fill);border-color:var(--fill);color:var(--on-blue);box-shadow:0 0 0 6px color-mix(in srgb, var(--blue) 16%, transparent)}.lv small{font-family:var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-size:11.5px}.lv b{color:var(--ink);letter-spacing:-.015em;font-size:1.1rem;font-weight:700;line-height:1.35}.lv>span:last-child{flex-direction:column;gap:4px;display:flex}@media (max-width:720px){.track{grid-template-columns:minmax(0,1fr);gap:6px}.track:before{width:1px;height:auto;inset:30px auto 30px 33px}.lv{flex-direction:row;align-items:center;padding:12px 14px}}.course-detail{border-radius:var(--radius-lg);background:var(--glass-2);border:1px solid var(--line-2);box-shadow:var(--sh-lg);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:clamp(28px,5vw,64px);padding:clamp(24px,4vw,44px);display:grid}@media (max-width:900px){.course-detail{grid-template-columns:minmax(0,1fr)}}.course-detail h3{letter-spacing:-.03em;font-size:clamp(1.6rem,2.6vw,2.2rem);font-weight:800;line-height:1.2}.course-detail .sum{margin:14px 0 0;font-size:16px}.cd-meta{gap:14px;margin:24px 0 0;display:grid}.cd-meta div{border-top:1px solid var(--line);padding-top:14px}.fee s{color:var(--muted);margin-right:4px}.fee b{color:var(--ink);font-size:1.15em;font-weight:800}.cd-meta dt{font-family:var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:4px;font-size:11px}.cd-meta dd{color:var(--ink);margin:0;font-size:15px}.course-detail .btn{white-space:normal;text-align:center;margin-top:28px;line-height:1.3}.modules{counter-reset:m;gap:2px;margin:0;padding:0;list-style:none;display:grid}.modules li{color:var(--ink);counter-increment:m;border-radius:14px;grid-template-columns:64px minmax(0,1fr);align-items:baseline;gap:12px;padding:15px 16px;transition:background .25s;display:grid}.modules li:hover{background:#ffffff0d}.modules li:before{content:"Bài 0" counter(m);font-family:var(--f-mono);color:var(--blue-ink);font-size:11.5px}.modules li:last-child{background:var(--ice)}.modules-head{font-family:var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:0 0 10px 16px;font-size:11px}.course-detail[data-key]{animation:viewIn .5s var(--ease)}.cd-status{color:var(--blue-ink);background:var(--ice);border-radius:999px;margin:0 0 14px;padding:5px 11px;font-size:12px;font-weight:600;display:inline-block}.chapters{gap:14px;margin:0;padding:0;list-style:none;display:grid}.chapters h4{letter-spacing:.02em;color:var(--accent);margin:0 0 4px 16px;font-size:13px;font-weight:600}.lessons{gap:2px;margin:0;padding:0;list-style:none;display:grid}.lessons li{color:var(--ink);border-radius:14px;grid-template-columns:56px minmax(0,1fr);align-items:baseline;gap:10px;padding:10px 16px;transition:background .25s;display:grid}.lessons li:hover{background:#ffffff0d}.lessons span{font-family:var(--f-mono);color:var(--blue-ink);font-size:11.5px}@media (max-width:600px){.chapters h4{margin-left:0}.lessons li{grid-template-columns:44px minmax(0,1fr);gap:8px;padding:8px 0}}.hero-fee{color:var(--ink);flex-wrap:wrap;flex-basis:100%;align-items:baseline;gap:4px 12px;margin:0 0 6px;font-size:1.15rem;display:flex}.hero-fee>span:first-child{font-family:var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-size:11px}.page-hero .hero-fee{text-shadow:0 1px 24px #0000008c}.proof-own .proof-stat{flex-basis:calc(50% - 7px)}@media (min-width:1000px){.proof-own .proof-stat{flex-basis:calc(25% - 10.5px)}}@media (max-width:760px){.proof-own .proof-stat:last-child{grid-column:auto}}.preview{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);align-items:center;gap:clamp(18px,3vw,32px);display:grid}.preview-screen{box-shadow:var(--sh-lg)}.preview-screen .hoc-screen-msg p{text-wrap:balance}.preview-side{border-radius:var(--radius-lg);background:var(--glass);border:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);justify-items:start;gap:14px;padding:clamp(22px,3vw,32px);display:grid}.preview-side>p{margin:0}.preview-side .hero-fee{margin:4px 0 0}.preview-h{letter-spacing:-.015em;font-size:clamp(1.25rem,1.9vw,1.5rem);font-weight:700;line-height:1.3}.preview-side .btn{white-space:normal;text-align:center}.preview-note{color:var(--muted);font-size:14px}@media (max-width:900px){.preview{grid-template-columns:minmax(0,1fr)}}.faq details p a{color:var(--accent);text-underline-offset:3px;text-decoration:underline}.how{counter-reset:h;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:0;padding:0;list-style:none;display:grid}.how li{border-radius:var(--radius);background:var(--glass);border:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);counter-increment:h;padding:26px 26px 28px}.how li:before{content:"0" counter(h);font-family:var(--f-mono);color:var(--blue);margin-bottom:14px;font-size:12px;display:block}.how h3{letter-spacing:-.015em;font-size:1.2rem;font-weight:700}.how p{color:var(--muted);margin:8px 0 0;font-size:15.5px}@media (min-width:761px){.how li:last-child:nth-child(odd){grid-column:1/-1}}@media (max-width:760px){.how{grid-template-columns:minmax(0,1fr)}}.channels{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:0;padding:0;list-style:none;display:grid}@media (max-width:860px){.channels{grid-template-columns:minmax(0,1fr)}}.channels li{border-radius:var(--radius);background:var(--glass);border:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);flex-direction:column;gap:10px;padding:26px 26px 28px;display:flex}.channels .ic{background:var(--ice);width:40px;height:40px;color:var(--blue);border-radius:12px;place-items:center;display:grid}.channels .ic svg{width:20px;height:20px}.channels h3{font-size:1.05rem;font-weight:700}.channels p{color:var(--muted);margin:0;font-size:14.5px}.channels a.big{color:var(--ink);letter-spacing:-.01em;font-size:1.25rem;font-weight:700;transition:color .2s}.channels a.big:hover{color:var(--blue)}.channels .row{flex-direction:column;gap:2px;display:flex}.legal{border-radius:var(--radius-lg);background:var(--glass-2);border:1px solid var(--line);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);max-width:820px;padding:clamp(24px,4vw,48px)}.legal h2{letter-spacing:-.02em;margin:48px 0 12px;font-size:1.35rem;font-weight:700}.legal h2:first-child{margin-top:0}.legal p,.legal li{font-size:16px}.legal ul{margin:12px 0;padding-left:1.2em}.legal li{margin-block:6px}.legal a{color:var(--blue);text-underline-offset:3px;text-decoration:underline}.legal .updated{font-family:var(--f-mono);color:var(--muted);letter-spacing:.06em;font-size:12px}.nf{padding-block:clamp(72px,12vw,140px) clamp(48px,8vw,96px)}.nf-code{background:var(--code-bg);border:1px solid var(--line);max-width:520px;color:var(--text);font-family:var(--f-mono);white-space:pre-wrap;word-break:break-word;box-shadow:var(--sh-lg);border-radius:16px;margin:0 0 32px;padding:18px 20px;font-size:13px;line-height:1.8}.nf-code .k{color:var(--accent)}.nf-code .e{color:var(--signal)}.nf-code .c{color:var(--muted)}.nf-links{flex-wrap:wrap;gap:8px;margin:40px 0 0;padding:0;list-style:none;display:flex}.nf-links a{border:1px solid var(--line-2);color:var(--ink);background:#ffffff0a;border-radius:999px;padding:8px 14px;font-size:14px;transition:border-color .2s;display:inline-flex}.nf-links a:hover{border-color:var(--ink)}
.demo-frame{will-change:auto}.sim{color:var(--signal-ink);background:color-mix(in srgb, var(--signal) 14%, transparent);border-radius:999px;flex:none;align-items:center;gap:7px;margin-left:auto;padding:5px 10px;font-size:12px;display:inline-flex}.sim:before{content:"";background:var(--signal);border-radius:50%;width:7px;height:7px}.demo-btn{font:600 13.5px/1 var(--f-sans);border:1px solid var(--line-2);background:var(--surface);color:var(--ink);cursor:pointer;border-radius:999px;align-items:center;gap:8px;padding:10px 16px;transition:border-color .2s,background .2s;display:inline-flex}.demo-btn:hover{border-color:var(--ink)}.demo-btn.primary{background:var(--fill);border-color:var(--fill);color:var(--on-blue)}.demo-btn.primary:hover{background:var(--fill-2)}.demo-btn svg{width:14px;height:14px}.pill-tabs{flex-wrap:wrap;gap:6px;display:flex}.pill-tabs button{font:inherit;border:1px solid var(--line-2);background:var(--surface);color:var(--text);cursor:pointer;border-radius:999px;padding:8px 14px;font-size:13px;transition:all .2s}.pill-tabs button:hover{border-color:var(--ink);color:var(--ink)}.pill-tabs button[aria-pressed=true],.pill-tabs button[aria-selected=true]{background:var(--ink);border-color:var(--ink);color:var(--bg)}.cat{flex-direction:column;gap:18px;padding:22px;display:flex}.cat-top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.cat-count{font-family:var(--f-mono);color:var(--muted);font-size:12px}.cat-grid{grid-template-columns:repeat(4,minmax(0,1fr));align-content:start;gap:12px;min-height:212px;margin:0;padding:0;list-style:none;display:grid}@media (max-width:980px){.cat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:520px){.cat-grid{grid-template-columns:minmax(0,1fr)}}.cat-grid li{animation:viewIn .45s var(--ease) both}.cat-grid li:nth-child(2){animation-delay:40ms}.cat-grid li:nth-child(3){animation-delay:80ms}.cat-grid li:nth-child(4){animation-delay:.12s}.cat-grid li:nth-child(n+5){animation-delay:.16s}.cat-item{border:1px solid var(--line);background:var(--surface);height:100%;transition:border-color .2s, box-shadow .2s, transform .3s var(--ease);border-radius:14px;flex-direction:column;gap:8px;padding:14px 16px;display:flex;position:relative}@media (hover:hover){.cat-item:hover{border-color:var(--line-2);box-shadow:var(--sh-md);transform:translateY(-2px)}}.cat-item b{color:var(--ink);font-size:15px;font-weight:600}.cat-item small{color:var(--muted);font-size:12.5px}.cat-item>svg{width:14px;height:14px;color:var(--muted);position:absolute;top:14px;right:14px}.cat-flow{border-top:1px solid var(--line);color:var(--ink);flex-wrap:wrap;align-items:center;gap:10px 26px;margin:0;padding:16px 0 0;font-size:14px;list-style:none;display:flex}.cat-flow li{align-items:center;gap:10px;display:inline-flex}.cat-flow b{font-weight:400;font-family:var(--f-mono);color:var(--blue-ink);background:var(--ice);border-radius:6px;padding:3px 7px;font-size:11px}.cat-flow li+li:before{content:"";background:var(--line-2);width:18px;height:1px;margin-right:16px}@media (max-width:640px){.cat-flow{flex-direction:column;align-items:flex-start}.cat-flow li+li:before{display:none}}.tool{grid-template-columns:240px minmax(0,1fr);min-height:440px;display:grid}.tool-tasks{background:var(--soft);border-right:1px solid var(--line);flex-direction:column;gap:4px;padding:16px 12px;display:flex}.tool-tasks .side-label{padding:6px 10px 8px}.tool-main{flex-direction:column;gap:18px;min-width:0;padding:22px;display:flex}.tool-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.tf{border:1px solid var(--line);border-radius:12px;min-width:0;padding:10px 14px}.tf dt,.tf dd,.tool-fields{margin:0}.tf span{color:var(--muted);font-size:11.5px;font-family:var(--f-mono);letter-spacing:.06em;text-transform:uppercase;display:block}.tf b{color:var(--ink);overflow-wrap:anywhere;margin-top:2px;font-size:14px;font-weight:600;display:block}.tool-run{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.tool-status{color:var(--muted);align-items:center;gap:8px;font-size:13px;display:inline-flex}.tool-status[data-busy]:before{content:"";border:2px solid var(--line-2);border-top-color:var(--blue);border-radius:50%;width:12px;height:12px;animation:.8s linear infinite spin}.tool-out{border:1px solid var(--line);background:linear-gradient(180deg, var(--surface), var(--soft));border-radius:14px;flex:1;min-height:190px;padding:16px 18px}.tool-out-label{font-family:var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);align-items:center;gap:8px;margin:0 0 10px;font-size:11px;display:flex}.tool-out-label:before{content:"";background:var(--signal);border-radius:50%;width:6px;height:6px}.tool-text{white-space:pre-wrap;color:var(--ink);font-size:14.5px;line-height:1.7;font-family:var(--f-sans);margin:0}.tool-stack{display:grid}.tool-stack>*{grid-area:1/1}.tool-text.ghost{visibility:hidden}@media (max-width:860px){.tool{grid-template-columns:minmax(0,1fr)}.tool-tasks{border-right:0;border-bottom:1px solid var(--line);scrollbar-width:none;flex-direction:row;overflow-x:auto}.tool-tasks .side-label{display:none}.tool-tasks .vbtn{white-space:nowrap;flex:none;width:auto}}@media (max-width:520px){.tool-fields{grid-template-columns:minmax(0,1fr)}.tool-main{padding:16px}}.chatd{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);min-height:520px;display:grid}.chatd .chat{scroll-behavior:smooth;overscroll-behavior:contain;height:430px;min-height:0;overflow-y:auto}.chatd-col{border-right:1px solid var(--line);flex-direction:column;min-width:0;display:flex}.chatd .msg{animation:viewIn .4s var(--ease) both}.chatd .quick{border-top:1px solid var(--line);background:var(--surface);align-self:stretch;padding:14px 22px 18px}.chatd .quick button{font:inherit;border:1px solid var(--line-2);background:var(--surface);color:var(--ink);cursor:pointer;border-radius:999px;padding:8px 13px;font-size:13px;transition:border-color .2s,background .2s}.chatd .quick button:hover{border-color:var(--blue);background:var(--ice)}.chatd .quick button.reset{color:var(--muted)}.behind{background:var(--soft);flex-direction:column;gap:22px;min-width:0;padding:20px 22px;display:flex}.behind-h{font-family:var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:0 0 10px;font-size:11px}.files{gap:6px;margin:0;padding:0;list-style:none;display:grid}.files li{border:1px solid var(--line);background:var(--surface);font-family:var(--f-mono);color:var(--muted);border-radius:10px;align-items:center;gap:10px;padding:9px 12px;font-size:12px;transition:all .3s;display:flex}.files li svg{flex:none;width:15px;height:15px}.files li[data-used]{border-color:var(--blue);color:var(--ink);box-shadow:0 0 0 3px color-mix(in srgb, var(--blue) 12%, transparent)}.files li[data-used] svg{color:var(--blue)}.actions{color:var(--ink);gap:8px;margin:0;padding:0;font-size:13px;list-style:none;display:grid}.actions li{animation:viewIn .4s var(--ease) both;align-items:flex-start;gap:10px;display:flex}.actions li:before{content:"";background:var(--ok);border-radius:50%;flex:none;width:8px;height:8px;margin-top:6px}.actions .empty{color:var(--muted)}.actions .empty:before{background:var(--line-2)}@media (max-width:860px){.chatd{grid-template-columns:minmax(0,1fr)}.chatd-col{border-right:0;border-bottom:1px solid var(--line)}.chatd .chat{height:380px}}.wf-layout{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);align-items:start;gap:clamp(24px,4vw,48px);display:grid}@media (max-width:940px){.wf-layout{grid-template-columns:minmax(0,1fr)}}.wf-tabs{gap:8px;display:grid}.wf-tab{border:1px solid var(--line);background:var(--surface);text-align:left;cursor:pointer;border-radius:18px;flex-direction:column;gap:6px;width:100%;padding:18px 20px;transition:border-color .25s,box-shadow .25s,background .25s;display:flex}.wf-tab:hover{border-color:var(--line-2)}.wf-tab[aria-selected=true]{border-color:var(--blue);box-shadow:var(--sh-md)}.wf-tab code{font-family:var(--f-mono);color:var(--muted);font-size:11.5px}.wf-tab[aria-selected=true] code{color:var(--blue)}.wf-tab b{color:var(--ink);font-size:1.05rem;font-weight:600}.wf-tab span{color:var(--text);font-size:14px;line-height:1.55}.flow{border-bottom:1px solid var(--line);grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0;padding:18px;list-style:none;display:grid}@media (max-width:640px){.flow{grid-template-columns:repeat(2,minmax(0,1fr))}}.flow li{border:1px solid var(--line-2);border-radius:12px;flex-direction:column;gap:4px;min-width:0;padding:12px;transition:border-color .3s,box-shadow .3s,background .3s;display:flex}.flow .stt{font-family:var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:10.5px}.flow b{color:var(--ink);font-size:13.5px;font-weight:600;line-height:1.35}.flow small{color:var(--muted);font-size:12px;line-height:1.4}.flow li[data-state=run]{border-color:var(--blue);box-shadow:0 0 0 4px color-mix(in srgb, var(--blue) 14%, transparent)}.flow li[data-state=run] .stt{color:var(--blue)}.flow li[data-state=done]{background:color-mix(in srgb, var(--ok) 7%, var(--surface))}.flow li[data-state=done] .stt{color:var(--ok)}.log{height:236px;font-family:var(--f-mono);background:var(--soft);flex-direction:column;justify-content:flex-end;margin:0;padding:14px 18px;font-size:12.5px;line-height:1.8;list-style:none;display:flex;overflow:hidden}.log li{gap:12px;animation:.35s ease-out both viewIn;display:flex}.log .ts{color:var(--muted);flex:none}.log .ck{color:var(--ok);flex:none}.log .tx{min-width:0;color:var(--ink)}.wf-foot{border-top:1px solid var(--line);color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:12px 18px;font-size:12.5px;display:flex}.vitals{flex-direction:column;gap:18px;padding:22px;display:flex}.vt-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;display:grid}@media (max-width:1100px){.vt-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:640px){.vt-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.vt{border:1px solid var(--line);background:var(--surface);border-radius:16px;flex-direction:column;gap:6px;min-width:0;padding:14px 16px 16px;display:flex}.vt abbr{font-family:var(--f-mono);color:var(--ink);font-size:12px;text-decoration:none}.vt small{color:var(--muted);min-height:2.8em;font-size:12px;line-height:1.4}.vt output{letter-spacing:-.03em;color:var(--ink);font-variant-numeric:tabular-nums;font-size:clamp(1.5rem,2.4vw,1.9rem);font-weight:400;line-height:1.1}.vt output span{color:var(--muted);margin-left:2px;font-size:.55em}.rate{background:var(--soft);color:var(--muted);border-radius:999px;align-self:flex-start;padding:3px 9px;font-size:11.5px;font-weight:600}.rate[data-r=good]{color:var(--ok);background:color-mix(in srgb, var(--ok) 12%, transparent)}.rate[data-r=ni]{color:var(--signal-ink);background:color-mix(in srgb, var(--signal) 14%, transparent)}.rate[data-r=poor]{color:var(--bad);background:color-mix(in srgb, var(--bad) 12%, transparent)}.vt-bar{background:linear-gradient(90deg, var(--ok) 0 var(--g), var(--signal) var(--g) var(--n), var(--bad) var(--n));opacity:.35;border-radius:2px;height:4px;margin-top:4px;position:relative}.vt-bar i{background:var(--ink);border:2px solid var(--panel);width:10px;height:10px;top:50%;left:var(--x,0%);transition:left .6s var(--ease);border-radius:50%;margin:-5px 0 0 -5px;position:absolute}.vt-bar[data-empty] i{display:none}.vt-res{background:var(--line-2);border:1px solid var(--line);border-radius:14px;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;display:grid;overflow:hidden}@media (max-width:640px){.vt-res{grid-template-columns:minmax(0,1fr)}}.vt-res div{background:var(--panel);color:var(--muted);padding:12px 16px;font-size:12.5px}.vt-res b{color:var(--ink);font-variant-numeric:tabular-nums;font-size:16px;font-weight:600;display:block}.vt-foot{color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;font-size:13px;display:flex}.vt-foot p{max-width:70ch;margin:0}.stack{flex-wrap:wrap;gap:6px;display:flex}.stack span{font-family:var(--f-mono);background:var(--ice);color:var(--blue-ink);border-radius:6px;padding:4px 9px;font-size:11.5px}
:root{--dock-h:96px}html{scroll-padding-bottom:calc(var(--dock-h) + env(safe-area-inset-bottom,0px))}@media (min-width:761px){.foot{padding-bottom:var(--dock-h)}.proof-strip{margin-bottom:var(--dock-h)}}.dock{right:max(20px, env(safe-area-inset-right,0px));bottom:max(20px, env(safe-area-inset-bottom,0px));z-index:40;background:rgba(var(--deep-rgb), .8);border:1px solid var(--line-2);-webkit-backdrop-filter:blur(16px)saturate(1.4);backdrop-filter:blur(16px)saturate(1.4);box-shadow:var(--sh-md);animation:dockIn .6s var(--ease) .4s both;border-radius:999px;align-items:center;gap:2px;padding:5px;display:flex;position:fixed}@keyframes dockIn{0%{transform:translateY(calc(100% + 32px))}}.dock-ai{cursor:pointer;background:linear-gradient(135deg, var(--fill), var(--fill-2));height:46px;color:var(--on-blue);font:700 14.5px/1 var(--f-sans);white-space:nowrap;box-shadow:0 8px 22px -10px rgba(var(--accent-rgb), .9), inset 0 1px 0 #ffffff47;transition:transform .3s var(--ease), box-shadow .3s;border:0;border-radius:999px;align-items:center;gap:9px;padding:0 18px 0 5px;display:inline-flex}.dock-ai:hover{box-shadow:0 12px 28px -10px rgba(var(--accent-rgb), 1), inset 0 1px 0 #ffffff47;transform:translateY(-1px)}.dock-ai[aria-busy=true]{cursor:progress}.dock-av{background:var(--panel);border-radius:50%;flex:none;place-items:center;width:36px;height:36px;display:grid;box-shadow:inset 0 0 0 1px #ffffff24}.dock-av svg{width:22px;height:20px;color:var(--ink)}.dock-sep{background:var(--line-2);width:1px;height:24px;margin:0 5px}.dock-link{width:44px;height:44px;color:var(--blue-ink);border-radius:999px;place-items:center;transition:background .2s;display:grid;position:relative}.dock-link:hover{background:#ffffff12}.dock-ic{background:rgba(var(--accent-rgb), .16);border-radius:50%;place-items:center;width:36px;height:36px;transition:background .2s;display:grid}.dock-link:hover .dock-ic{background:rgba(var(--accent-rgb), .26)}.dock-ic svg{width:17px;height:17px}.dock-ic.dock-zalo,.dock-link:hover .dock-zalo{background:var(--fill);color:var(--on-blue);font:800 10.5px/1 var(--f-sans);letter-spacing:-.02em}.dock-zalo:before{content:"Zalo"}.dock-label{display:none}.cp{right:max(20px, env(safe-area-inset-right,0px));bottom:calc(max(20px, env(safe-area-inset-bottom,0px)) + 70px);z-index:80;background:rgba(var(--deep-rgb), .9);border:1px solid var(--line-2);-webkit-backdrop-filter:blur(20px)saturate(1.3);backdrop-filter:blur(20px)saturate(1.3);width:min(368px,100vw - 40px);height:min(540px,100dvh - 190px);box-shadow:var(--sh-lg);transform-origin:100% 100%;animation:cpIn .32s var(--ease);border-radius:24px;flex-direction:column;display:flex;position:fixed;overflow:hidden}.cp:focus{outline:none}@keyframes cpIn{0%{opacity:0;transform:translateY(14px)scale(.97)}}.cp-head{border-bottom:1px solid var(--line);background:rgba(var(--accent-rgb), .06);align-items:center;gap:10px;padding:12px 10px 12px 14px;display:flex}.cp-av{background:var(--panel);width:38px;height:38px;box-shadow:inset 0 0 0 1px rgba(var(--accent-rgb), .45), 0 6px 18px -8px rgba(var(--accent-rgb), .9);border-radius:50%;flex:none;place-items:center;display:grid}.cp-av svg{width:23px;height:21px;color:var(--ink)}.cp-who{min-width:0}.cp-who h2{letter-spacing:-.01em;font-size:15px;font-weight:700;line-height:1.3}.cp-who p{color:var(--muted);align-items:center;gap:6px;margin:1px 0 0;font-size:12px;line-height:1.3;display:flex}.cp-who i{background:var(--ok);width:7px;height:7px;box-shadow:0 0 0 3px color-mix(in srgb, var(--ok) 16%, transparent);border-radius:50%}.cp-leadbtn{isolation:isolate;border:1px solid var(--line-2);height:34px;color:var(--ink);font:600 12.5px/1 var(--f-sans);white-space:nowrap;cursor:pointer;background:#ffffff0a;border-radius:999px;align-items:center;gap:6px;margin-left:auto;padding:0 12px;transition:background .2s,border-color .2s;display:inline-flex;position:relative;overflow:hidden}.cp-leadbtn:before,.cp-leadbtn:after{content:"";border-radius:inherit;pointer-events:none;z-index:-1;animation-duration:5.6s;animation-iteration-count:infinite;animation-delay:1.4s;animation-play-state:var(--play,running);position:absolute;inset:0}.cp-leadbtn:before{background:linear-gradient(105deg,#0000 32%,#ffffff42 50%,#0000 68%);animation-name:cpSheen;animation-timing-function:cubic-bezier(.4,0,.2,1);transform:translate(-130%)}.cp-leadbtn:after{box-shadow:inset 0 0 0 1px rgba(var(--accent-rgb), .95), inset 0 0 14px rgba(var(--accent-rgb), .35);opacity:0;animation-name:cpHalo;animation-timing-function:ease-in-out}.cp-leadbtn[data-calm]:before,.cp-leadbtn[data-calm]:after{opacity:0;animation:none}@keyframes cpSheen{0%{transform:translate(-130%)}26%,to{transform:translate(130%)}}@keyframes cpHalo{0%,to{opacity:0}16%{opacity:1}42%{opacity:0}}.cp-leadbtn:hover{border-color:var(--accent);background:#ffffff17}.cp-leadbtn svg{width:14px;height:14px;color:var(--blue-ink)}.cp-x{width:36px;height:36px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:50%;flex:none;place-items:center;transition:background .2s,color .2s;display:grid}.cp-x:hover{color:var(--ink);background:#ffffff14}.cp-x svg{width:20px;height:20px}.cp-list{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--line-2) transparent;flex-direction:column;flex:1;gap:10px;min-height:0;padding:16px 14px 10px;display:flex;overflow-y:auto}.cp-log{flex-direction:column;gap:10px;display:flex}.cp-msg{white-space:pre-wrap;overflow-wrap:anywhere;max-width:86%;animation:cpMsg .3s var(--ease);border-radius:16px;margin:0;padding:10px 13px;font-size:14px;line-height:1.55}@keyframes cpMsg{0%{opacity:0;transform:translateY(6px)}}.cp-bot{white-space:normal;background:rgba(var(--accent-rgb), .1);border:1px solid var(--line);color:var(--ink);border-bottom-left-radius:5px;align-self:flex-start}.cp-bot p{margin:0}.cp-bot>*+*{margin-top:8px}.cp-ul{gap:5px;margin:0;padding:0;list-style:none;display:grid}.cp-ul li{padding-left:17px;position:relative}.cp-ul li:before{content:"";background:linear-gradient(135deg, var(--accent), var(--accent-2));width:6px;height:6px;box-shadow:0 0 0 3px rgba(var(--accent-rgb), .16);border-radius:50%;position:absolute;top:.6em;left:3px}.cp-hl{color:var(--ink);background:linear-gradient(180deg, transparent 62%, rgba(var(--accent-rgb), .38) 62%);-webkit-box-decoration-break:clone;box-decoration-break:clone;border-radius:2px;padding:0 1px;font-weight:700}.cp-user{background:var(--fill);color:var(--on-blue);border-bottom-right-radius:5px;align-self:flex-end}.cp-wait{padding-block:12px}.cp-chips{flex-wrap:wrap;gap:7px;display:flex}.cp-chips button{border:1px solid rgba(var(--accent-rgb), .5);color:var(--blue-ink);font:400 13px/1.35 var(--f-sans);text-align:left;cursor:pointer;background:0 0;border-radius:999px;padding:8px 12px;transition:background .2s,border-color .2s}.cp-chips button:hover{background:var(--ice);border-color:var(--accent)}.cp-notice,.cp-lead{background:rgba(var(--night-rgb), .55);border:1px solid var(--line-2);border-radius:16px;align-self:stretch;padding:12px}.cp-notice p{color:var(--signal-ink);margin:0 0 10px;font-size:13.5px;line-height:1.5}.cp-acts{flex-wrap:wrap;gap:6px;display:flex}.cp-act{border:1px solid var(--line-2);min-height:34px;color:var(--ink);font:600 12.5px/1.2 var(--f-sans);cursor:pointer;background:#ffffff0a;border-radius:999px;align-items:center;gap:6px;padding:0 12px;transition:background .2s,border-color .2s;display:inline-flex}.cp-act:hover{border-color:var(--accent);background:#ffffff17}.cp-act svg{width:14px;height:14px;color:var(--blue-ink);flex:none}.cp-lead{gap:10px;padding:14px;display:grid}.cp-lead-t{color:var(--ink);margin:0;font-size:14.5px;font-weight:700}.cp-lead-hint{color:var(--muted);margin:-4px 0 0;font-size:12.5px;line-height:1.5}.cp-lead-hint a,.cp-lead-msg a{color:var(--text);text-underline-offset:3px;text-decoration:underline}.cp-lead-msg a{color:var(--accent);font-weight:600}.cp-field{gap:5px;min-width:0;display:grid}.cp-field label{color:var(--ink);font-size:12.5px;font-weight:600}.cp-field input{border:1px solid var(--line-2);width:100%;color:var(--ink);font:400 14.5px/1.4 var(--f-sans);background:#ffffff0a;border-radius:11px;padding:10px 12px;transition:border-color .2s,box-shadow .2s}.cp-field input:focus{border-color:var(--accent);box-shadow:0 0 0 4px rgba(var(--accent-rgb), .18);outline:none}.cp-field [aria-invalid=true]{border-color:var(--signal-ink)}.cp-err{color:var(--signal-ink);margin:0;font-size:12.5px}.cp-lead-act{align-items:center;gap:8px;display:flex}.cp-lead-act .btn{flex:1}.cp-lead .btn[aria-disabled=true]{opacity:.7;cursor:progress}.cp-later{border:1px solid var(--line-2);min-height:36px;color:var(--text);font:600 13px/1 var(--f-sans);cursor:pointer;background:0 0;border-radius:999px;padding:0 14px;transition:background .2s,color .2s}.cp-later:hover{color:var(--ink);background:#ffffff12}.cp-later:disabled{opacity:.5;cursor:not-allowed}.cp-lead>.cp-later{justify-self:start}.cp-lead-msg{margin:0;font-size:13px;line-height:1.5}.cp-lead-msg:empty{margin-top:-10px}.cp-lead-msg:focus{outline:none}.cp-lead-msg.ok{color:var(--ok);font-weight:600}.cp-lead-msg.err{color:var(--signal-ink)}.cp-compose{border:1px solid var(--line-2);background:rgba(var(--night-rgb), .6);border-radius:22px;align-items:flex-end;gap:8px;margin:8px 12px 6px;padding:5px 5px 5px 14px;transition:border-color .2s,box-shadow .2s;display:flex}.cp-compose:focus-within{border-color:var(--accent);box-shadow:0 0 0 4px rgba(var(--accent-rgb), .18)}.cp-compose textarea{min-width:0;min-height:38px;max-height:120px;color:var(--ink);font:400 14.5px/1.4 var(--f-sans);resize:none;field-sizing:content;background:0 0;border:0;flex:1;padding:9px 0}.cp-compose textarea:focus{outline:none}.cp-compose textarea::placeholder{color:var(--muted)}.cp-send{background:linear-gradient(135deg, var(--fill), var(--fill-2));width:38px;height:38px;color:var(--on-blue);cursor:pointer;transition:transform .2s var(--ease), opacity .2s;border:0;border-radius:50%;flex:none;place-items:center;display:grid}@media (hover:hover){.cp-send:hover{transform:scale(1.06)}}.cp-send[aria-disabled=true]{opacity:.45;cursor:default;transform:none}.cp-send svg{width:17px;height:17px;margin:1px 1px 0 0}.cp-note{color:var(--muted);text-align:center;margin:0;padding:0 14px 10px;font-size:11.5px;line-height:1.4}@media (max-width:760px){:root{--dock-h:80px}body{padding-bottom:calc(var(--dock-h) + env(safe-area-inset-bottom,0px))}.dock{left:max(10px, env(safe-area-inset-left,0px));right:max(10px, env(safe-area-inset-right,0px));bottom:calc(8px + env(safe-area-inset-bottom,0px));border-radius:20px;gap:5px}.dock-long{display:none}.dock-ai,.dock-link{border-radius:15px;flex-direction:column;flex:1 1 0;justify-content:center;align-items:center;gap:3px;min-width:0;height:50px;padding:0;display:flex}.dock-sep,.dock-tg{display:none}.dock-ai{font-size:12px}.dock-ai:hover{transform:none}.dock-link{color:var(--blue-ink)}.dock-av,.dock-ic{width:26px;height:26px}.dock-av svg{width:16px;height:15px}.dock-ic svg{width:14px;height:14px}.dock-ic.dock-zalo,.dock-link:hover .dock-zalo{font-size:8px}.dock-label{color:var(--ink);font-size:12px;font-weight:700;line-height:1;display:block}}@media (max-width:760px),(max-height:500px){.cp{top:calc(8px + env(safe-area-inset-top,0px));right:max(8px, env(safe-area-inset-right,0px));bottom:calc(8px + env(safe-area-inset-bottom,0px));left:max(8px, env(safe-area-inset-left,0px));transform-origin:50% 100%;border-radius:22px;width:auto;height:auto}.cp-x,.cp-send{width:44px;height:44px}.cp-leadbtn,.cp-chips button,.cp-act,.cp-later,.cp-lead .btn{min-height:44px}.cp-compose textarea,.cp-field input{font-size:16px}.cp-compose textarea{min-height:44px;padding-block:11px}.cp-field input{min-height:44px}}
.post-filter{flex-wrap:wrap;gap:8px;margin-bottom:28px;display:flex}.post-filter button{border:1px solid var(--line-2);background:var(--glass);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);color:var(--text);cursor:pointer;border-radius:999px;padding:9px 16px;font-size:14px;font-weight:600;transition:background .2s,border-color .2s,color .2s}.post-filter button:hover{border-color:var(--ink);color:var(--ink)}.post-filter button[aria-pressed=true]{background:var(--fill);border-color:var(--accent);color:var(--on-blue)}.post-grid{grid-template-columns:minmax(0,1fr);gap:24px;margin:0;padding:0;list-style:none;display:grid}.post-card{border-radius:var(--radius);background:var(--glass);border:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);transition:transform .35s var(--ease), border-color .25s, background .25s;flex-direction:column;display:flex;position:relative;overflow:hidden}@media (hover:hover){.post-card:hover{border-color:var(--line-2);background:var(--glass-2);transform:translateY(-4px)}}.post-card h2 a:after{content:"";position:absolute;inset:0}.post-card h2 a:focus-visible{outline:none}.post-card:has(a:focus-visible){outline:2px solid var(--blue);outline-offset:3px}.post-thumb{aspect-ratio:16/9;background:var(--panel);border-bottom:1px solid var(--line)}.post-thumb img{object-fit:cover;width:100%;height:100%;display:block}.post-text{flex-direction:column;gap:10px;padding:22px 24px 26px;display:flex}.post-meta{font-family:var(--f-mono);color:var(--muted);flex-wrap:wrap;gap:4px 16px;margin:0;font-size:12.5px;display:flex}.post-cat{color:var(--blue-ink)}.post-card h2{letter-spacing:-.015em;text-wrap:balance;font-size:clamp(1.2rem,1.9vw,1.45rem);font-weight:700;line-height:1.3}.post-desc{color:var(--muted);margin:0;font-size:15.5px}@media (min-width:700px){.post-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.post-card:first-child{grid-column:1/-1}}@media (min-width:900px){.post-card:first-child{flex-direction:row}.post-card:first-child .post-thumb{border-bottom:0;border-right:1px solid var(--line);flex:0 0 56%}.post-card:first-child .post-text{justify-content:center;padding:36px 40px}.post-card:first-child h2{font-size:clamp(1.6rem,2.4vw,2rem);line-height:1.2}}.post-h1{max-width:24ch;font-size:clamp(32px,4.2vw,52px)}.post-hero .post-meta{text-shadow:0 1px 12px rgba(var(--night-rgb), .9);animation:rise 1s .3s var(--ease) both;margin-top:22px;font-size:13px}.post{grid-template-columns:minmax(0,1fr);gap:24px;max-width:760px;display:grid}@media (min-width:1100px){.post{grid-template-columns:minmax(0,760px) 264px;align-items:start;column-gap:48px;max-width:none}.post>*{grid-column:1}.post>.post-toc{max-height:calc(100dvh - 104px - var(--dock-h,96px) - 16px);overscroll-behavior:contain;grid-area:1/2/span 3;position:sticky;top:104px;overflow-y:auto}}.post-cover{border-radius:var(--radius-lg);border:1px solid var(--line);background:var(--panel);box-shadow:var(--sh-lg);margin:0;overflow:hidden}.post-cover img{width:100%;height:auto;display:block}.post-toc,.post-sources{border-radius:var(--radius);background:var(--glass);border:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.post-toc{padding:20px 22px}.post-toc p{letter-spacing:.18em;text-transform:uppercase;color:var(--accent);margin:0 0 8px;font-size:12px;font-weight:600}.post-toc ol{counter-reset:toc;margin:0;padding:0;list-style:none}.post-toc li{counter-increment:toc}.post-toc a{color:var(--text);gap:10px;padding:6px 0;font-size:14.5px;line-height:1.45;transition:color .2s;display:flex}.post-toc a:before{content:counter(toc, decimal-leading-zero);font-family:var(--f-mono);color:var(--muted);flex:none;padding-top:2px;font-size:12px}.post-toc a:hover{color:var(--ink)}.prose{border-radius:var(--radius-lg);background:rgba(var(--deep-rgb), .88);border:1px solid var(--line);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);color:var(--text);overflow-wrap:break-word;padding:clamp(20px,4.5vw,52px);font-size:17px;line-height:1.75}.prose>:first-child{margin-top:0}.prose>:last-child{margin-bottom:0}.prose p{margin:0 0 1.15em}.prose h2{letter-spacing:-.02em;margin:2.1em 0 .7em;font-size:clamp(1.4rem,2.4vw,1.75rem);font-weight:800;line-height:1.25}.prose h3{margin:1.8em 0 .5em;font-size:1.2rem;font-weight:700;line-height:1.35}.prose strong{color:var(--ink);font-weight:600}.prose a{color:var(--blue);text-underline-offset:3px;text-decoration:underline;text-decoration-thickness:1px}.prose a:hover{color:var(--blue-ink)}.prose ul,.prose ol{margin:0 0 1.2em;padding-left:1.3em}.prose li{margin:.45em 0;padding-left:.25em}.prose li>p{margin:0 0 .6em}.prose li>pre{margin:.6em 0}.prose li>:last-child{margin-bottom:0}.prose li::marker{color:var(--accent)}.prose ol>li::marker{font-family:var(--f-mono);font-size:.9em}.prose code{background:var(--code-bg);border:1px solid var(--line);font-family:var(--f-mono);color:var(--ink);overflow-wrap:anywhere;border-radius:6px;padding:.12em .4em;font-size:.86em}.prose pre{background:var(--code-bg);border:1px solid var(--line);white-space:pre-wrap;overflow-wrap:anywhere;border-radius:14px;margin:1.4em 0;padding:18px 20px;font-size:14px;line-height:1.7}.prose pre code{font-size:inherit;color:var(--text);background:0 0;border:0;padding:0}@media (max-width:600px){.prose pre{padding:14px 16px;font-size:13px}}.prose blockquote{border-left:3px solid var(--accent);color:var(--muted);margin:1.4em 0;padding:2px 0 2px 18px}.prose hr{border:0;border-top:1px solid var(--line);margin:2em 0}.post-sources{padding:clamp(20px,3.5vw,30px) clamp(20px,4.5vw,52px)}.post-sources h2{margin-bottom:10px;font-size:1.05rem;font-weight:700}.post-sources ol{margin:0;padding-left:1.3em;font-size:14.5px}.post-sources li{margin:6px 0}.post-sources li::marker{font-family:var(--f-mono);color:var(--muted)}.post-sources a{color:var(--blue);text-underline-offset:3px;overflow-wrap:anywhere;text-decoration:underline}.proj-status{--c:var(--ok);--c-ink:var(--ok);border:1px solid color-mix(in srgb, var(--c) 36%, transparent);background:color-mix(in srgb, var(--c) 12%, transparent);width:fit-content;color:var(--c-ink);letter-spacing:.01em;white-space:nowrap;border-radius:999px;align-items:center;gap:8px;padding:5px 12px 5px 10px;font-size:12.5px;font-weight:600;line-height:1.25;display:inline-flex}.proj-status:before{content:"";background:var(--c);width:7px;height:7px;box-shadow:0 0 0 3px color-mix(in srgb, var(--c) 18%, transparent);border-radius:50%;flex:none}.proj-status[data-status=beta]{--c:var(--accent);--c-ink:var(--blue-ink)}.proj-status[data-status=dang-phat-trien]{--c:var(--signal);--c-ink:var(--signal-ink)}.proj-design,.shot-flag{background:var(--signal);color:var(--on-signal);letter-spacing:.02em;white-space:nowrap;border-radius:999px;flex:none;padding:4px 10px;font-size:11.5px;font-weight:700;line-height:1.3}.proj-grid{grid-template-columns:minmax(0,1fr);gap:24px;margin:0;padding:0;list-style:none;display:grid}@media (min-width:760px){.proj-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.proj-card{border-radius:var(--radius-lg);background:var(--glass);border:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);transition:transform .7s var(--ease), translate .35s var(--ease), opacity .7s var(--ease), border-color .25s, background .25s;transition-delay:var(--kd,0s), 0s, var(--kd,0s), 0s, 0s;flex-direction:column;display:flex;position:relative;overflow:hidden}@media (hover:hover){.proj-card:hover{border-color:var(--line-2);background:var(--glass-2);translate:0 -4px}}.proj-card :is(h2,h3) a:after{content:"";z-index:1;position:absolute;inset:0}.proj-card :is(h2,h3) a:focus-visible{outline:none}.proj-card:has(a:focus-visible){outline:2px solid var(--blue);outline-offset:3px}.proj-thumb{aspect-ratio:16/11;border-bottom:1px solid var(--line);background:radial-gradient(90% 80% at 50% 0%, rgba(var(--glow-rgb), .28), transparent 70%), radial-gradient(60% 60% at 50% 120%, rgba(var(--rim-rgb), .08), transparent 70%), rgba(var(--deep-rgb), .6);place-items:center;padding:clamp(14px,2.4vw,22px);display:grid;position:relative;overflow:hidden}.proj-shot{width:100%;aspect-ratio:var(--ar,1.6);border:1px solid var(--line-2);background:var(--panel);transition:transform .55s var(--ease);border-radius:12px;position:relative;overflow:hidden;box-shadow:0 24px 48px -18px #000000d9}.proj-shot img{object-fit:cover;width:100%;height:100%;transition:scale .6s var(--ease);display:block}@media (hover:hover){.proj-card:hover .proj-shot img{scale:1.03}.proj-card:hover .proj-shot{transform:translateY(-6px)}}@media (min-width:980px){.proj-grid .proj-shot{transform-origin:50% 100%;transform:perspective(1400px)rotateX(5deg)}}@media (min-width:980px) and (hover:hover){.proj-grid .proj-card:hover .proj-shot{transform:perspective(1400px)rotateX(0)translateY(-6px)}}.proj-design{position:absolute;top:12px;left:12px;box-shadow:0 6px 18px -6px #000000b3}.proj-text{flex-direction:column;flex:1;align-items:flex-start;gap:10px;padding:22px 26px 26px;display:flex}.proj-card :is(h2,h3){letter-spacing:-.02em;text-wrap:balance;margin-top:4px;font-size:clamp(1.25rem,1.9vw,1.5rem);font-weight:700;line-height:1.25}.proj-kind{font-family:var(--f-mono);color:var(--muted);margin:-4px 0 0;font-size:12.5px;line-height:1.5}.proj-sum{color:var(--text);margin:0;font-size:15.5px;line-height:1.6}.proj-more{color:var(--accent);align-items:center;gap:8px;margin-top:auto;padding-top:6px;font-size:14px;font-weight:600;display:inline-flex}.proj-more svg{width:15px;height:15px;transition:transform .25s}.proj-card:hover .proj-more svg{transform:translate(3px)}.proj-grid-3{grid-template-columns:minmax(0,1fr)}@media (min-width:600px) and (max-width:979px){.proj-grid-3 .proj-card{grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);display:grid}.proj-grid-3 .proj-thumb{aspect-ratio:auto;border-bottom:0;border-right:1px solid var(--line);min-height:100%}}@media (min-width:980px){.proj-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.proj-grid-3 .proj-text{padding:20px 22px 24px}}.shot{--shot-h:520px;width:100%;min-width:0;max-width:calc(var(--shot-h) * var(--ar,1.6));margin:0 auto;position:relative}.shot-img{border:1px solid var(--line-2);background:var(--panel);box-shadow:0 40px 80px -36px #000000e6, 0 18px 44px -26px rgba(var(--accent-rgb), .4);transition:transform .6s var(--ease);border-radius:18px;display:block;position:relative;overflow:hidden}.shot-img img{width:100%;height:auto;transition:transform .6s var(--ease);display:block}.shot-zoom{cursor:zoom-in}.shot-zoom:focus-visible{border-radius:18px}@media (hover:hover){.shot-zoom:hover img{transform:scale(1.015)}}.shot-hint{background:rgba(var(--night-rgb), .82);border:1px solid var(--line-2);color:var(--ink);opacity:0;transition:opacity .25s, transform .25s var(--ease);border-radius:999px;align-items:center;gap:6px;padding:6px 12px;font-size:12.5px;font-weight:600;display:inline-flex;position:absolute;top:12px;right:12px;transform:translateY(-4px)}.shot-hint svg{width:13px;height:13px}.shot-zoom:hover .shot-hint,.shot-zoom:focus-visible .shot-hint{opacity:1;transform:none}@media (hover:none){.shot-hint{display:none}}.shot-cap{z-index:1;background:rgba(var(--night-rgb), .82);border:1px solid var(--glass-line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);width:fit-content;max-width:calc(100% - 28px);color:var(--text);border-radius:14px;flex-wrap:wrap;align-items:center;gap:6px 10px;margin:-22px 0 0 14px;padding:8px 14px;font-size:12.5px;line-height:1.45;display:flex;position:relative;box-shadow:0 16px 32px -16px #000c}.shot-cap:has(>.shot-flag:only-child){-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:none;background:0 0;border:0;padding:0}.shot-cap .shot-flag{white-space:normal;flex:0 auto;min-width:0;box-shadow:0 8px 24px -8px #000000bf}.shot-flag>span{white-space:nowrap}.proj-cover .shot-flag{padding:6px 14px;font-size:13px}@media (max-width:560px){.shot-img,.shot-zoom:focus-visible{border-radius:14px}.shot-cap{max-width:calc(100% - 20px);margin:-16px 0 0 10px;padding:7px 12px;font-size:12px}}@media (min-width:980px){.feat-row .shot-img{transform:perspective(1600px)rotateY(-6deg)}.feat-row[data-flip] .shot-img{transform:perspective(1600px)rotateY(6deg)}.proj-cover .shot-img{transform-origin:50% 100%;transform:perspective(2400px)rotateX(4deg)}}@media (min-width:980px) and (hover:hover){.feat-row .shot:hover .shot-img{transform:perspective(1600px)rotateY(0)}.proj-cover .shot:hover .shot-img{transform:perspective(2400px)rotateX(0)}}.proj-body .page-h1{max-width:24ch}.proj-body .page-h1 .ln.mute{letter-spacing:-.015em;max-width:34ch;margin-top:.3em;font-size:.5em;line-height:1.3;display:block}.proj-top,.proj-sec{padding-bottom:clamp(72px,9vw,120px)}.proj-meta{color:var(--muted);text-shadow:0 1px 12px rgba(var(--night-rgb), .9);flex-wrap:wrap;align-items:center;gap:10px 12px;margin:0 0 18px;font-size:13px;display:flex}.proj-cover .shot{--shot-h:700px}.proj-brief{grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:20px;display:grid}.proj-problem,.proj-approach{border-radius:var(--radius-lg);background:var(--glass);border:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);padding:clamp(24px,3.6vw,44px)}.proj-label{letter-spacing:.18em;text-transform:uppercase;color:var(--accent);margin:0 0 18px;font-size:12px;font-weight:600}.proj-problem p{letter-spacing:-.012em;color:var(--ink);text-wrap:pretty;margin:0;font-size:clamp(1.2rem,1.9vw,1.45rem);font-weight:600;line-height:1.5}.proj-approach ol{counter-reset:step;margin:0;padding:0;list-style:none}.proj-approach li{counter-increment:step;border-top:1px solid var(--line);color:var(--text);grid-template-columns:30px minmax(0,1fr);gap:12px;padding-block:14px;font-size:15.5px;line-height:1.6;display:grid}.proj-approach li:first-child{border-top:0;padding-top:0}.proj-approach li:last-child{padding-bottom:0}.proj-approach li:before{content:counter(step, decimal-leading-zero);font-family:var(--f-mono);color:var(--accent);padding-top:3px;font-size:12px}@media (max-width:860px){.proj-brief{grid-template-columns:minmax(0,1fr)}}.feat-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:0;padding:0;list-style:none;display:grid}.feat-row{grid-column:1/-1;grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:center;gap:clamp(24px,4vw,56px);margin-block:clamp(9px,2.4vw,35px);display:grid}.feat-list>:first-child{margin-top:0}.feat-list>:last-child{margin-bottom:0}.feat-row[data-flip]{grid-template-columns:minmax(0,7fr) minmax(0,5fr)}.feat-row[data-flip] .feat-copy{order:2}.feat-row[data-tall]{grid-template-columns:minmax(0,32rem) auto;justify-content:center}.feat-row[data-tall][data-flip]{grid-template-columns:auto minmax(0,32rem)}.feat-copy{border-radius:var(--radius);background:var(--glass);border:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);padding:clamp(24px,3vw,38px)}.feat-idx{font-family:var(--f-mono);color:var(--accent);font-size:12px;display:block}.feat-copy h3{letter-spacing:-.02em;text-wrap:balance;margin:12px 0;font-size:clamp(1.3rem,2.1vw,1.65rem);font-weight:700;line-height:1.25}.feat-copy p{max-width:68ch;color:var(--text);margin:0;font-size:16px;line-height:1.65}.feat-solo{padding:clamp(22px,2.6vw,30px)}.feat-solo:not([data-wide]) h3{letter-spacing:-.01em;margin:10px 0 8px;font-size:1.2rem;line-height:1.35}.feat-solo:not([data-wide]) p{color:var(--muted);font-size:15.5px}.feat-solo[data-wide]{grid-column:1/-1}@media (max-width:860px){.feat-row,.feat-row[data-flip],.feat-row[data-tall],.feat-row[data-tall][data-flip]{grid-template-columns:minmax(0,1fr)}.feat-row[data-flip] .feat-copy{order:0}}@media (max-width:760px){.feat-list{grid-template-columns:minmax(0,1fr)}}.pkg{border-radius:var(--radius-lg);background:var(--glass);border:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);padding:clamp(8px,1.6vw,14px) clamp(16px,3vw,34px) clamp(22px,3vw,32px)}.pkg-table{border-collapse:collapse;width:100%;font-size:15.5px;line-height:1.45}.pkg-table th,.pkg-table td{text-align:left;vertical-align:top;padding:15px 12px}.pkg-table thead th{letter-spacing:.14em;text-transform:uppercase;color:var(--muted);padding-block:14px;font-size:12px;font-weight:600}.pkg-table thead th:last-child,.pkg-table .pkg-price{text-align:right}.pkg-table tbody{border-top:1px solid var(--line-2)}.pkg-table tbody tr+tr td{border-top:1px solid var(--line)}.pkg-table th[scope=rowgroup]{width:1%;color:var(--ink);white-space:nowrap;padding-right:20px;font-weight:700}.pkg-table a{color:var(--ink);font-weight:600;transition:color .2s}.pkg-table .nw{white-space:nowrap}.pkg-table a svg{vertical-align:-1px;width:13px;height:13px;color:var(--muted);margin-left:6px;transition:color .2s}.pkg-table a:hover,.pkg-table a:hover svg{color:var(--blue)}.pkg-price{white-space:nowrap;color:var(--ink);font-variant-numeric:tabular-nums;font-weight:700}.pkg-foot{border-top:1px solid var(--line-2);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px 28px;margin-top:8px;padding:22px 12px 0;display:flex}.pkg-foot p{max-width:62ch;color:var(--muted);margin:0;font-size:14.5px}.pkg-foot time{color:var(--ink);font-weight:600}@media (max-width:560px){.pkg-table{font-size:14.5px}.pkg-table th,.pkg-table td{padding:13px 6px}.pkg-table th[scope=rowgroup]{padding-right:10px}.pkg-foot{padding-inline:6px}.pkg-foot .btn{width:100%}}.proj-video{background:var(--glass);border:1px solid var(--glass-line);box-shadow:var(--sh-lg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:22px;margin:0;padding:7px}.proj-video video{aspect-ratio:16/9;background:var(--panel);border-radius:15px;width:100%;display:block}.proj-video figcaption{color:var(--muted);padding:12px 10px 5px;font-size:13.5px}.gallery{flex-wrap:wrap;justify-content:center;gap:22px;display:flex}.gallery .shot{flex:var(--ar) 1 calc(var(--ar) * 230px);margin:0}.proj-tech{border-radius:var(--radius-lg);background:var(--glass);border:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);flex-wrap:wrap;align-items:center;gap:16px 36px;padding:clamp(20px,3vw,30px) clamp(22px,3.6vw,40px);display:flex}.proj-tech .proj-label{margin:0}.stack{flex-wrap:wrap;gap:10px;margin:0;padding:0;list-style:none;display:flex}.stack li{border:1px solid var(--line-2);background:rgba(var(--accent-rgb), .08);font-family:var(--f-mono);color:var(--ink);border-radius:999px;padding:8px 15px;font-size:13.5px}.proj-others a{grid-template-columns:minmax(0,1fr) auto auto}.proj-others .proj-status{color:var(--c-ink);margin-top:0;font-size:12.5px;display:inline-flex}@media (max-width:640px){.proj-others a{grid-template-columns:minmax(0,1fr) auto;row-gap:10px}.proj-others .proj-status{grid-area:2/1}}.about-sec{padding-bottom:clamp(72px,9vw,120px)}.founder-sec{overflow-x:clip}.founder{grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:center;gap:clamp(32px,6vw,88px);display:grid}.founder-photo{justify-self:center;width:100%;max-width:440px;margin:0;position:relative}.founder-photo:before{content:"";background:radial-gradient(closest-side, rgba(var(--glow-rgb), .34), transparent);filter:blur(28px);border-radius:50%;position:absolute;inset:4% -12% 22%}.founder-frame{aspect-ratio:4/5;border-radius:var(--radius-lg) var(--radius-lg) 0 0;position:relative;overflow:hidden;-webkit-mask-image:linear-gradient(#000 60%,#0000 97%);mask-image:linear-gradient(#000 60%,#0000 97%)}.founder-frame img{object-fit:cover;width:100%;height:100%;display:block}.founder-frame:after{content:"";border-radius:inherit;box-shadow:inset 0 0 0 1px rgba(var(--rim-rgb), .16), inset 0 1px 0 rgba(var(--rim-rgb), .18), inset -30px 0 56px -28px rgba(var(--glow-rgb), .9);mix-blend-mode:screen;pointer-events:none;position:absolute;inset:0}.founder-cap{border-radius:var(--radius);background:var(--glass-2);border:1px solid var(--line-2);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);text-align:center;flex-direction:column;align-items:center;gap:4px;width:max-content;max-width:calc(100% - 24px);padding:14px 24px;display:flex;position:absolute;bottom:5%;left:50%;transform:translate(-50%);box-shadow:0 18px 40px -18px #000c}.founder-name{letter-spacing:-.01em;color:var(--ink);font-size:19px;font-weight:700;line-height:1.3}.founder-title{color:var(--ink);font-size:15.5px;font-weight:700;line-height:1.35}.founder-alt{color:var(--text);font-size:13.5px;font-weight:500;line-height:1.3}.founder-name~.founder-title{color:var(--blue-ink);font-size:14px;font-weight:600}.founder-org{font-family:var(--f-mono);letter-spacing:.06em;color:var(--text);font-size:12px}.founder-text{border-radius:var(--radius-lg);background:var(--glass);border:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);padding:clamp(26px,4vw,52px)}.founder-h{font-size:clamp(28px,3.3vw,42px)}.founder-note{border-top:1px solid var(--line);margin-top:26px;padding-top:26px}.founder-note p{color:var(--text);text-wrap:pretty;margin:0;font-size:16.5px;line-height:1.7}.founder-note p:first-child{letter-spacing:-.01em;color:var(--ink);font-size:clamp(1.1rem,1.6vw,1.22rem);font-weight:600;line-height:1.6}.founder-note p+p{margin-top:14px}.about-how li{align-content:start}@media (max-width:860px){.founder{grid-template-columns:minmax(0,1fr)}.founder-photo{max-width:360px}}.dl-cta{justify-items:start;gap:10px;margin-top:6px;display:grid}.dl-btn{background:var(--film-blue)}.dl-btn:hover{background:var(--accent-2)}.dl-version,.dl-only{text-shadow:0 1px 2px rgba(var(--night-rgb), .95), 0 0 14px rgba(var(--night-rgb), .9)}.dl-version{font-family:var(--f-mono);color:var(--text);font-size:12.5px}.dl-only{color:var(--muted);margin:0;font-size:13.5px}.dl-sheet{border-radius:var(--radius-lg);color:var(--film-ink);background:#fff;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:clamp(20px,4vw,48px);padding:clamp(24px,4.5vw,52px);display:grid;box-shadow:0 30px 60px -30px #000000b3}.dl-brand{justify-items:center;gap:14px;display:grid}.dl-appicon{border-radius:22px;box-shadow:0 12px 26px -12px #0b1a3b73}.dl-maker{justify-items:center;gap:6px;display:grid}.dl-maker span{letter-spacing:.08em;text-transform:uppercase;color:var(--film-muted);font-size:11.5px}.dl-sheet h2{color:var(--film-ink);margin:0 0 14px;font-size:clamp(22px,2.6vw,30px);line-height:1.2}.dl-points{color:var(--film-muted);gap:10px;margin:0;padding:0;font-size:16px;line-height:1.55;list-style:none;display:grid}.dl-points li{grid-template-columns:22px minmax(0,1fr);gap:10px;display:grid}.dl-points svg{width:20px;height:20px;color:var(--film-blue);margin-top:2px}.dl-card{border-radius:var(--radius);background:var(--glass);border:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);padding:clamp(20px,3vw,30px)}.dl-card h2,.dl-card h3{color:var(--ink);margin:0 0 8px;font-size:19px}.dl-card p{color:var(--text);margin:0}.dl-list{color:var(--ink);gap:8px;margin:0;padding-left:18px;display:grid}.dl-card .dl-note{color:var(--muted);margin-top:14px;font-size:14px}.dl-plans{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:0;padding:0;list-style:none;display:grid}.dl-plans .dl-price{color:var(--ink);font-size:clamp(24px,2.6vw,30px);font-weight:800}.dl-plans .dl-days{font-family:var(--f-mono);color:var(--muted);margin-top:2px;font-size:12.5px}.dl-plan-notes{max-width:760px;color:var(--text);gap:8px;margin-top:18px;display:grid}.dl-plan-notes p{margin:0}.dl-two{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.dl-credit{color:var(--muted);margin:28px 0 0;font-size:12.5px}@media (max-width:900px){.dl-plans{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:640px){.dl-sheet,.dl-two{grid-template-columns:minmax(0,1fr)}.dl-brand{grid-auto-flow:column;justify-content:start;align-items:center}.dl-appicon{border-radius:16px;width:64px;height:64px}.dl-maker{justify-items:start}.dl-cta,.dl-btn{width:100%}}@media (max-width:380px){.dl-plans{grid-template-columns:minmax(0,1fr)}}
.hoc{min-height:70vh;padding-block:48px clamp(72px,9vw,120px)}@media (min-width:900px){.hoc{padding-top:72px}}.hoc>.eyebrow{text-shadow:0 1px 18px #0009}.hoc-h1{margin-bottom:clamp(24px,4vw,40px)}.hoc-wait-page{min-height:320px;color:var(--muted);margin:0}.hoc-card{border-radius:var(--radius-lg);min-width:0;padding:clamp(18px,3vw,26px)}.hoc-h{letter-spacing:-.01em;margin-bottom:14px;font-size:19px;font-weight:700;line-height:1.3}.hoc-note{color:var(--text);margin:0;font-size:15px}.hoc-done{color:var(--ok);align-items:center;gap:8px;margin:0;font-size:15px;font-weight:600;display:flex}.hoc-done svg{flex:none;width:18px;height:18px}.hoc-problem{justify-items:start;gap:14px;max-width:560px;display:grid}.hoc-problem p{margin:0}.hoc-gate{align-items:start;gap:28px;display:grid}@media (min-width:980px){.hoc-gate{grid-template-columns:minmax(0,1fr) minmax(0,500px);gap:56px}}.hoc-intro{text-shadow:0 1px 24px #0009}.hoc-lead{color:var(--ink);max-width:44ch;margin:0 0 20px;font-size:clamp(17px,1.6vw,19px)}.hoc-points{gap:12px;margin:0 0 20px;padding:0;list-style:none;display:grid}.hoc-points li{align-items:flex-start;gap:10px;display:flex}.hoc-points svg{width:18px;height:18px;color:var(--accent);flex:none;margin-top:4px}.hoc-buy{color:var(--muted);margin:0}.hoc-buy a{color:var(--accent);text-underline-offset:3px;font-weight:600;text-decoration:underline}.hoc-form.form{background:var(--glass)}.hoc-code{font-family:var(--f-mono);letter-spacing:.06em;text-transform:uppercase}.hoc-code::placeholder{text-transform:none}.hoc-form .hoc-force{white-space:normal;text-align:center;line-height:1.35}.field-hint{color:var(--muted);margin:0;font-size:13px}.hoc-course{gap:20px;display:grid}.hoc-top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px 24px;display:flex}.hoc-top-text{flex:260px;min-width:0}.hoc-hello{letter-spacing:-.015em;overflow-wrap:anywhere;font-size:clamp(20px,2.2vw,24px);font-weight:800;line-height:1.2}.hoc-hello:focus{outline:none}.hoc-count{color:var(--text);margin:4px 0 10px;font-size:14.5px}.hoc-meter{background:var(--line-2);border-radius:999px;max-width:420px;height:6px;overflow:hidden}.hoc-meter span{background:var(--accent);transform-origin:0;height:100%;transition:transform .6s var(--ease);display:block}.hoc-grid{grid-template-columns:minmax(0,1fr);grid-template-areas:"player""list""extra";align-items:start;gap:20px;display:grid}@media (min-width:980px){.hoc-grid{grid-template:"list player""list extra"1fr/minmax(300px,360px) minmax(0,1fr)}}.hoc-main{grid-area:player;min-width:0;scroll-margin-top:96px}.hoc-list{grid-area:list}.hoc-extra{grid-area:extra;gap:20px;min-width:0;display:grid}.hoc-player{padding:clamp(10px,1.6vw,14px)}.hoc-screen{aspect-ratio:16/9;border-radius:var(--radius);background:var(--panel);border:1px solid var(--line);position:relative;overflow:hidden}.hoc-screen iframe{border:0;width:100%;height:100%;position:absolute;inset:0}.hoc-screen-msg{text-align:center;color:var(--text);place-content:center;justify-items:center;gap:12px;padding:16px;display:grid;position:absolute;inset:0}.hoc-screen-msg p{color:var(--ink);margin:0;font-weight:600}.hoc-screen-msg svg{width:28px;height:28px;color:var(--accent)}.hoc-player-info{justify-items:start;gap:10px;padding:16px clamp(6px,1.4vw,12px) 4px;display:grid}.hoc-chap{letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin:0;font-size:12px;font-weight:600}.hoc-title{margin:0;font-size:clamp(18px,2vw,22px)}.hoc-player-info .form-msg:empty{display:none}.hoc-list{padding-inline:clamp(12px,2vw,18px)}.hoc-list>.hoc-h{padding-inline:8px}.hoc-chapter+.hoc-chapter{border-top:1px solid var(--line);margin-top:14px;padding-top:14px}.hoc-chapter h3{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:0 0 6px;padding-inline:8px;font-size:12px;font-weight:600;line-height:1.5}.hoc-chapter ol{gap:2px;margin:0;padding:0;list-style:none;display:grid}.hoc-item{text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:14px;align-items:flex-start;gap:12px;width:100%;min-height:44px;padding:10px 8px;transition:background .2s,border-color .2s;display:flex}@media (hover:hover){.hoc-item:hover{background:#ffffff0d}}.hoc-item[aria-current=true]{background:var(--ice);border-color:rgba(var(--accent-rgb), .45)}.hoc-num{border:1px solid var(--line-2);width:28px;height:28px;color:var(--ink);border-radius:50%;flex:none;place-items:center;font-size:13px;font-weight:700;display:grid}.hoc-item[data-done] .hoc-num{border-color:var(--ok);color:var(--ok)}.hoc-num svg{width:14px;height:14px}.hoc-item-body{gap:2px;min-width:0;display:grid}.hoc-item-title{color:var(--ink);font-size:14.5px;line-height:1.45;display:block}.hoc-item-meta{color:var(--muted);font-size:13px;display:block}.hoc-item[data-done] .hoc-item-meta{color:var(--ok)}.hoc-docs{gap:8px;margin:0 0 18px;padding:0;list-style:none;display:grid}.hoc-docs a{border:1px solid var(--line-2);min-height:48px;color:var(--ink);background:#ffffff08;border-radius:14px;align-items:center;gap:12px;padding:10px 14px;font-size:15px;font-weight:600;transition:background .2s,border-color .2s;display:flex}@media (hover:hover){.hoc-docs a:hover{border-color:var(--accent);background:#ffffff12}}.hoc-docs svg{width:20px;height:20px;color:var(--accent);flex:none}.hoc-docs span{flex:1;min-width:0}.hoc-docs small{font-family:var(--f-mono);color:var(--muted);font-size:12px;font-weight:400}.hoc-docs .hoc-docs-dl{width:16px;height:16px}.hoc-note+.hoc-zalo{margin-top:16px}.hoc-project{justify-items:start;gap:14px;display:grid}.hoc-project .hoc-h{margin-bottom:0}.hoc-form-bare.form{background:0 0;border:0;border-radius:0;gap:14px;width:100%;padding:0}@media (max-width:560px){.hoc-zalo,.hoc-project>.btn{width:100%}}.cert{min-height:70vh;padding-block:48px clamp(72px,9vw,120px)}@media (min-width:900px){.cert{padding-top:72px}}.cert>.eyebrow{text-shadow:0 1px 18px #0009}.cert-h1{margin-bottom:clamp(24px,4vw,40px)}.cert-card{border-radius:var(--radius-lg);min-width:0;max-width:880px;padding:clamp(24px,5vw,56px)}.cert-kicker,.cert-text{font-family:var(--font-mono), monospace;color:var(--muted);margin:0;font-size:14px}.cert-name{letter-spacing:-.02em;overflow-wrap:anywhere;color:var(--ink);margin:12px 0 14px;font-size:clamp(30px,6vw,56px);font-weight:800;line-height:1.15}.cert-course{color:var(--accent);margin:8px 0 0;font-size:clamp(20px,3.4vw,28px);font-weight:700;line-height:1.25}.cert-meta{border-top:1px solid var(--line);gap:18px 32px;margin:clamp(24px,4vw,40px) 0 0;padding-top:clamp(20px,3vw,28px);display:grid}@media (min-width:640px){.cert-meta{grid-template-columns:1fr 1fr}}.cert-meta div{min-width:0}.cert-meta dt{color:var(--muted);font-size:13px}.cert-meta dd{overflow-wrap:anywhere;margin:4px 0 0;font-size:16px;font-weight:600}.cert-id{font-family:var(--font-mono), monospace;letter-spacing:.08em}.cert-actions{flex-wrap:wrap;gap:12px;margin-top:24px;display:flex}.cert-missing{max-width:560px}@media print{body:has(.cert){background:#fff!important}.cert-h1{color:#08163a}.cert-actions,.cert>.eyebrow{display:none!important}body:has(.cert) :is(.nav,.foot,.dock,.space,.skip){display:none!important}.cert-card{color:#08163a;-webkit-backdrop-filter:none;backdrop-filter:none;background:#fff;border-color:#08163a}.cert-kicker,.cert-text,.cert-meta dt{color:#4a5675}.cert-course{color:#002e93}}
@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;transition-delay:0s!important;animation-duration:.001ms!important;animation-iteration-count:1!important;animation-delay:0s!important}html{scroll-behavior:auto}.reveal[data-pending],.reveal-kids[data-pending]>*,.split[data-pending] .w>span{opacity:1;transform:none}.frame{transform:none}.cs-device,.cs-device img,.cs-ghost,.cs-label{transform:none!important}.cs-motion,.cs-pause{display:none}.proj-card:hover,.step:hover{translate:none}.proj-card:hover .proj-shot img,.btn:active{scale:none}.spot:after{display:none}.shot-img,.shot-img img{transform:none!important}.cs-stage[data-press] .cs-device{scale:none}}
