@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-vietnamese-wght-normal-BUzh504Q.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-ext-wght-normal-CcLUaPy7.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-wght-normal-DLoelf7F.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Hanken Grotesk;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/hanken-grotesk-latin-400-normal-BG6hkEXj.woff2)format("woff2"),url(/assets/hanken-grotesk-latin-400-normal-CjyVwvJV.woff)format("woff")}@font-face{font-family:Hanken Grotesk;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/hanken-grotesk-latin-500-normal-DrDcrrxK.woff2)format("woff2"),url(/assets/hanken-grotesk-latin-500-normal-Bo-NxEKf.woff)format("woff")}@font-face{font-family:Hanken Grotesk;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/hanken-grotesk-latin-600-normal-CIXX6EOa.woff2)format("woff2"),url(/assets/hanken-grotesk-latin-600-normal-NEn2C4Q3.woff)format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff)format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.woff)format("woff")}@font-face{font-family:Nanum Pen Script;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/nanum-pen-script-latin-400-normal-_AdqYBm1.woff2)format("woff2"),url(/assets/nanum-pen-script-latin-400-normal-CEV0Fmsy.woff)format("woff")}:root{--paper:#fbfbfa;--ink:#16151b;--ink-soft:#5f5d69;--hair:#e7e6ea;--logo-gray:#e3e3e3;--a-magenta:#d306f3;--i-blue:#189cf0;--pen:#3a3844;--kw-navy:#14213d;--kw-orange:#f7931e;--kw-cream:#fff7ec;--sticky:#fff1a8;--sticky-2:#ddebff;--f-display:"Bricolage Grotesque Variable", "Bricolage Grotesque", "Hanken Grotesk", system-ui, sans-serif;--f-body:"Hanken Grotesk", system-ui, -apple-system, "Segoe UI", sans-serif;--f-mono:"IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;--f-hand:"Nanum Pen Script", "Comic Sans MS", cursive;--gutter:clamp(16px, 5vw, 64px);--maxw:1240px;--lightningcss-light:initial;--lightningcss-dark: ;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}.saile-site img{max-width:100%}.saile-site [hidden]{display:none!important}html{scroll-behavior:auto}html body{background:var(--paper);color:var(--ink);font-family:var(--f-body);-webkit-font-smoothing:antialiased;margin:0;font-size:17px;line-height:1.6}a{color:inherit}:focus-visible{outline:2px solid var(--i-blue);outline-offset:4px;border-radius:6px}.hero-track{height:290vh;position:relative}.hero-track+main{margin-top:-40vh;position:relative}.hero-sticky{height:100svh;position:sticky;top:0;overflow:hidden}#stage{touch-action:pan-y;width:100%;height:100%;display:block;position:absolute;inset:0}.hero-fallback{padding-inline:var(--gutter);place-items:center;display:grid;position:absolute;inset:0}.hero-fallback svg{display:none}.hero-fallback:after{content:"";border:3px solid #e3e3e326;border-top-color:#8e40f5;border-radius:50%;width:36px;height:36px;animation:.8s linear infinite hero-spin}@keyframes hero-spin{to{transform:rotate(360deg)}}html.nogl .hero-fallback svg{width:min(560px,82vw);height:auto;display:block}html.nogl .hero-fallback:after,html.gl .hero-fallback{display:none}@keyframes float{50%{transform:translateY(-10px)}}.hero-meta{padding:0 var(--gutter) calc(clamp(20px, 4vh, 40px) + env(safe-area-inset-bottom,0px));pointer-events:none;opacity:0;justify-content:space-between;align-items:flex-end;gap:24px;transition:opacity .9s;display:flex;position:absolute;bottom:0;left:0;right:0}.hero-meta.on,html:not(.gl) .hero-meta{opacity:1}.eyebrow{font-family:var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);font-size:12px}.hero-meta p,.hero-meta h1{font-family:var(--f-display);letter-spacing:-.01em;color:var(--ink);text-wrap:balance;margin:.4em 0 0;font-size:clamp(17px,1.5vw,21px);font-weight:500;line-height:1.25}.hero-meta .intro{max-width:30ch}.play-hint{font-family:var(--f-hand);color:var(--pen);pointer-events:none;opacity:0;white-space:nowrap;font-size:clamp(22px,2vw,27px);line-height:1;transition:opacity .7s;position:absolute;top:0;left:0;transform:translate(-20%,-100%)}.play-hint.on{opacity:1}.play-hint svg{width:38px;height:34px;margin:4px 0 0 6px;display:block;overflow:visible}.play-hint svg path{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round}.scroll-cue{font-family:var(--f-hand);color:var(--pen);flex-direction:column;align-items:center;gap:2px;font-size:24px;line-height:1;display:flex}.scroll-cue svg{width:22px;height:46px;animation:2.4s ease-in-out infinite nudge}@keyframes nudge{50%{transform:translateY(6px)}}.wrap{max-width:var(--maxw);padding-inline:var(--gutter);margin:0 auto}.services{gap:clamp(96px,14vw,180px);padding-block:clamp(40px,8vw,96px) clamp(96px,12vw,160px);display:grid}.services-head{max-width:30ch}.services-head h2{font-family:var(--f-display);letter-spacing:-.02em;text-wrap:balance;margin:.4em 0 0;font-size:clamp(28px,3.4vw,44px);font-weight:500;line-height:1.08}.svc{grid-template-columns:minmax(0,1.4fr) minmax(0,.8fr);align-items:center;gap:clamp(28px,6vw,88px);display:grid}.svc.flip{grid-template-columns:minmax(0,.8fr) minmax(0,1.4fr)}.svc.flip .plate-wrap{order:2}.svc>*{min-width:0}.plate-wrap{gap:14px;display:grid}.plate{aspect-ratio:16/11;isolation:isolate;border-radius:22px;max-width:100%;text-decoration:none;transition:transform .6s cubic-bezier(.2,.8,.2,1),box-shadow .6s;display:block;position:relative;overflow:hidden;transform:translateZ(0);box-shadow:0 1px #16151b0a,0 30px 60px -40px #16151b59}.plate:hover{transform:translateY(-6px)rotate(-.4deg);box-shadow:0 1px #16151b0a,0 46px 80px -40px #16151b73}.svc.flip .plate:hover{transform:translateY(-6px)rotate(.4deg)}.plate .layer{transition:transform .8s cubic-bezier(.2,.8,.2,1);position:absolute}.plate-cap{font-family:var(--f-mono);color:var(--ink-soft);justify-content:space-between;align-items:center;padding-inline:4px;font-size:13px;display:flex}.plate-cap a{border-bottom:1px solid var(--hair);padding-bottom:1px;text-decoration:none}.plate-cap a:hover{color:var(--ink);border-color:var(--ink)}.p-kw{background:radial-gradient(90% 85% at 100% 0%, #ffe3c2 0%, var(--kw-cream) 42%, #fffdf9 100%);color:var(--kw-navy)}.p-kw .glow{aspect-ratio:1;background:radial-gradient(circle,#f7931e52,#f7931e00 65%);border-radius:50%;width:75%;inset:auto -15% -45% auto}.p-kw .kw-logo{width:34%;height:auto;top:7%;left:6%}.p-kw .screen{background:var(--kw-navy);border-radius:14px 14px 0 0;flex-direction:column;display:flex;inset:31% 6% -5%;overflow:hidden;box-shadow:0 30px 60px -30px #14213db3,0 0 0 1px #14213d14}.p-kw .screen-bar{background:#0e1830;flex:none;align-items:center;gap:6px;height:clamp(22px,2.4vw,30px);padding:0 12px;display:flex}.p-kw .screen-bar i{background:#fff3;border-radius:50%;width:8px;height:8px}.p-kw .screen-bar span{font-family:var(--f-mono);color:#ffffff8c;letter-spacing:.04em;margin-left:10px;font-size:clamp(8px,.8vw,11px)}.p-kw .screen-body{color:#fff;background:radial-gradient(120% 90% at 85% 10%, #22345e 0%, var(--kw-navy) 60%);flex:1;position:relative}.p-kw .kw-video{object-fit:cover;object-position:top center;background:var(--kw-navy);width:100%;height:100%;position:absolute;inset:0}.p-kw .lesson{width:57%;color:var(--kw-navy);background:#fff;border-radius:12px;padding:4% 4.5%;top:9%;left:5%;box-shadow:0 20px 40px -24px #0009}.p-kw .lesson small{font-family:var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:#8a6a42;font-size:clamp(8px,.8vw,11px);display:block}.p-kw .lesson strong{font-family:var(--f-display);letter-spacing:-.01em;margin:.35em 0 .6em;font-size:clamp(12px,1.5vw,20px);font-weight:600;line-height:1.15;display:block}.p-kw .prog{background:#eef0f5;border-radius:6px;height:6px;overflow:hidden}.p-kw .prog i{background:var(--kw-orange);border-radius:6px;width:58%;height:100%;display:block}.p-kw ul{gap:.4em;margin:.8em 0 0;padding:0;font-size:clamp(9px,1vw,13px);list-style:none;display:grid}.p-kw li{align-items:center;gap:.6em;display:flex}.p-kw li:before{content:"";border:1.5px solid #c9cfdb;border-radius:50%;flex:none;width:.95em;height:.95em}.p-kw li.done:before{background:var(--kw-orange);border-color:var(--kw-orange);box-shadow:inset 0 0 0 2px #fff}.p-kw .roles{gap:7px;width:28%;display:grid;top:11%;right:5%}.p-kw .roles span{font-family:var(--f-mono);white-space:nowrap;text-overflow:ellipsis;background:#ffffff14;border:1px solid #ffffff29;border-radius:999px;padding:.5em .8em;font-size:clamp(8px,.8vw,11px);overflow:hidden}.p-kw .roles span.on{background:var(--kw-orange);border-color:var(--kw-orange);color:var(--kw-navy);font-weight:500}.p-kw .cert{background:var(--kw-cream);width:38%;color:var(--kw-navy);border-radius:10px;padding:3.5% 4%;bottom:9%;right:5%;transform:rotate(-3deg);box-shadow:0 24px 40px -22px #000000a6}.p-kw .cert small{font-family:var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:#8a6a42;font-size:clamp(7px,.72vw,10px)}.p-kw .cert strong{font-family:var(--f-display);margin:.25em 0;font-size:clamp(11px,1.35vw,18px);font-weight:600;line-height:1.15;display:block}.p-kw .cert code{font-family:var(--f-mono);color:#6b6f80;font-size:clamp(7px,.72vw,10px)}.p-kw.has-video .demo{display:none}.p-kw:hover .screen{transform:translateY(-8px)}.p-kw:hover .kw-logo{transform:translateY(-3px)}.p-kw:hover .cert{transform:rotate(-6deg)translate(6px,-8px)}.p-ws{color:#fff;background:#2a2622}.p-ws .photo{object-fit:cover;object-position:44% 40%;width:100%;height:100%;transition:transform 1.2s cubic-bezier(.2,.8,.2,1);inset:0}.p-ws .scrim{background:linear-gradient(#0e0c1200 40%,#0e0c122e 62%,#0e0c12b8 100%);inset:0}.p-ws .app{aspect-ratio:1;background:#fffffff0;border-radius:24%;place-items:center;width:clamp(40px,9%,74px);animation:5.5s ease-in-out infinite bob;display:grid;box-shadow:0 18px 30px -14px #0000008c,0 0 0 1px #ffffff80}.p-ws .app img{width:64%;height:auto;display:block}.p-ws .app.full{background:0 0;box-shadow:0 18px 30px -14px #0000008c}.p-ws .app.full img{border-radius:24%;width:100%}.p-ws .a1{--r:-6deg;animation-delay:-1s;top:9%;right:33%}.p-ws .a2{--r:5deg;animation-delay:-2.6s;top:24%;right:8%}.p-ws .a3{--r:-3deg;animation-delay:-4s;top:50%;right:21%}.p-ws .a4{--r:7deg;animation-delay:-.4s;top:12%;left:7%}@keyframes bob{0%,to{transform:translateY(0) rotate(var(--r,0deg))}50%{transform:translateY(-8px) rotate(calc(var(--r,0deg) * -.4))}}.p-ws .count{font-family:var(--f-display);letter-spacing:-.04em;color:#fff;font-size:clamp(30px,5vw,68px);font-weight:600;line-height:.9;bottom:8%;left:6%}.p-ws .count span{font-family:var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:#ffffffbf;margin-top:.6em;font-size:clamp(8px,.85vw,11px);font-weight:400;display:block}.p-ws .live{display:none;top:7%;left:auto;right:6%}.p-ws:hover .photo{transform:scale(1.035)}.p-ws:hover .a1{translate:-6px -6px}.p-ws:hover .a2{translate:6px -4px}.p-ws:hover .a3{translate:6px 6px}.p-ws:hover .a4{translate:-6px -4px}.p-ws .app{transition:translate .6s cubic-bezier(.2,.8,.2,1)}.side{gap:14px;max-width:40ch;display:grid;position:relative}.hand{font-family:var(--f-hand);color:var(--pen);white-space:nowrap;align-items:flex-end;gap:10px;font-size:clamp(26px,2.6vw,34px);line-height:1;display:flex}.arrow{flex:none;width:clamp(110px,12vw,170px);height:auto;overflow:visible}.arrow path{fill:none;stroke:var(--pen);stroke-width:2.2px;stroke-linecap:round;stroke-linejoin:round}.svc:not(.flip) .hand{margin-left:clamp(-56px,-3vw,-12px)}.svc.flip .hand{flex-direction:row-reverse;justify-content:flex-end;margin-right:clamp(-56px,-3vw,-12px)}.svc.flip .arrow{transform:scaleX(-1)}.arrow.pending path{stroke-dasharray:var(--len);stroke-dashoffset:var(--len)}.arrow.draw path{transition:stroke-dashoffset 1.1s cubic-bezier(.6,.1,.2,1)}.arrow.draw path+path{transition-duration:.35s;transition-delay:.9s}.arrow.draw path{stroke-dashoffset:0}.side h3{font-family:var(--f-display);-webkit-hyphens:manual;hyphens:manual;letter-spacing:-.03em;text-wrap:balance;margin:0;font-size:clamp(30px,3vw,44px);font-weight:500;line-height:1.02}.side p{color:var(--ink-soft);margin:0}.go{border:1px solid var(--ink);border-radius:999px;justify-self:start;align-items:center;gap:.6em;padding:.75em 1.15em;font-size:16px;font-weight:600;text-decoration:none;transition:background .25s,color .25s;display:inline-flex}.go:hover{background:var(--ink);color:var(--paper)}.go svg{width:14px;height:14px;transition:transform .25s}.go:hover svg{transform:translate(2px,-2px)}.about{border-top:1px solid var(--hair);grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr);align-items:end;gap:clamp(28px,6vw,96px);padding-block:clamp(48px,8vw,96px);display:grid}.about>*{min-width:0}.portrait{aspect-ratio:4/5;isolation:isolate;width:100%;max-width:100%;position:relative}.portrait .halo{aspect-ratio:1;z-index:0;width:94%;height:auto;animation:40s linear infinite orbit;position:absolute;top:6%;left:3%;overflow:visible}.portrait .halo circle.track{fill:none;stroke:url(#ringGrad);stroke-width:1.4px;vector-effect:non-scaling-stroke}.portrait .halo circle.dot{fill:url(#ringGrad)}.portrait img{z-index:1;width:80%;height:auto;position:absolute;bottom:0;left:50%;transform:translate(-50%);-webkit-mask-image:linear-gradient(#000 86%,#0000);mask-image:linear-gradient(#000 86%,#0000)}@keyframes orbit{to{transform:rotate(360deg)}}.bio h2{font-family:var(--f-display);letter-spacing:-.03em;margin:.35em 0 .45em;font-size:clamp(34px,4.4vw,60px);font-weight:500;line-height:1}.bio p{max-width:58ch;color:var(--ink-soft);margin:0 0 .8em}.bio p:last-of-type{margin-bottom:0}.facts{flex-wrap:wrap;gap:12px 28px;margin:28px 0 0;padding:0;display:flex}.facts div{gap:2px;display:grid}.facts dt{font-family:var(--f-display);letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:22px;font-weight:600}.facts dd{font-family:var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);margin:0;font-size:12px}.clients{padding-block:8px clamp(64px,9vw,120px)}.clients .eyebrow{margin-bottom:18px}.marquee{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000,#000 8% 92%,#0000);mask-image:linear-gradient(90deg,#0000,#000 8% 92%,#0000)}.marquee-row{align-items:center;width:max-content;animation:90s linear infinite slide;display:flex}.marquee-row img{filter:grayscale()contrast(1.1);opacity:.5;mix-blend-mode:multiply;margin-right:clamp(40px,6vw,72px);transition:filter .3s,opacity .3s;display:block}.marquee-row img:hover{filter:none;opacity:1}.marquee:hover .marquee-row{animation-play-state:paused}@keyframes slide{to{transform:translate(-33.3333%)}}footer{border-top:1px solid var(--hair)}.foot{padding-block:28px calc(28px + env(safe-area-inset-bottom,0px));color:var(--ink-soft);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px 32px;font-size:14px;display:flex}.foot svg{width:auto;height:16px;display:block}.foot svg .g{fill:#bdbcc4}.foot nav{flex-wrap:wrap;gap:22px;display:flex}.foot nav a{text-decoration:none}.foot nav a:hover{color:var(--ink)}.foot .left{flex-wrap:wrap;align-items:center;gap:18px;display:flex}@media (width<=860px){.hero-track{height:230vh}.hero-track+main{margin-top:-30vh}.svc,.svc.flip{grid-template-columns:1fr}.svc.flip .plate-wrap{order:0}.side{max-width:none}.svc .hand,.svc:not(.flip) .hand,.svc.flip .hand{flex-direction:row;justify-content:flex-start;margin:0}.svc .arrow,.svc.flip .arrow{width:84px;margin:-6px 0 -10px;transform:rotate(62deg)}.about{grid-template-columns:1fr;align-items:start}.portrait{max-width:340px}.hero-meta .intro p,.hero-meta .intro h1{font-size:14px}.p-kw .roles{display:none}.plate{aspect-ratio:4/3}.p-ws .count{font-size:34px}.p-kw .screen{top:30%}.p-kw .kw-logo{width:44%}.marquee-row img{zoom:.8}.p-kw .lesson{width:66%}.p-kw .cert{width:46%}}@media (prefers-reduced-motion:reduce){.hero-track{height:auto}.hero-sticky{position:relative}.hero-track+main{margin-top:0}.marquee-row{flex-wrap:wrap;gap:20px 0;width:auto;animation:none}.p-ws .app,.portrait .halo{animation:none}.marquee-row [aria-hidden]{display:none}.marquee{-webkit-mask-image:none;mask-image:none}.hero-fallback svg,.scroll-cue svg{animation:none}.arrow.pending path{stroke-dashoffset:0}}
