@font-face{font-family:Anton;font-style:normal;font-display:swap;font-weight:400;src:url(/_next/static/media/anton-vietnamese-400-normal.7a0e1aba.woff2) format("woff2"),url(/_next/static/media/anton-vietnamese-400-normal.9feab41a.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Anton;font-style:normal;font-display:swap;font-weight:400;src:url(/_next/static/media/anton-latin-ext-400-normal.4d008ae9.woff2) format("woff2"),url(/_next/static/media/anton-latin-ext-400-normal.af34a566.woff) format("woff");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Anton;font-style:normal;font-display:swap;font-weight:400;src:url(/_next/static/media/anton-latin-400-normal.8051a086.woff2) format("woff2"),url(/_next/static/media/anton-latin-400-normal.70090b55.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_next/static/media/inter-cyrillic-ext-wght-normal.460bdf14.woff2) format("woff2-variations");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_next/static/media/inter-cyrillic-wght-normal.491cbc05.woff2) format("woff2-variations");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_next/static/media/inter-greek-ext-wght-normal.23aae568.woff2) format("woff2-variations");unicode-range:u+1f??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_next/static/media/inter-greek-wght-normal.4449bf7a.woff2) format("woff2-variations");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_next/static/media/inter-vietnamese-wght-normal.113a630f.woff2) format("woff2-variations");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_next/static/media/inter-latin-ext-wght-normal.3835a68e.woff2) format("woff2-variations");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_next/static/media/inter-latin-wght-normal.6c596dfc.woff2) format("woff2-variations");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}:root{--pine:#0c3b2e;--pine-deep:#072a20;--emerald:#176a4c;--pine-up:#145240;--mint:#7ee0b0;--blush:#f7c8d4;--petal:#fdeef1;--rose:#ff8fab;--butter:#f6d77c;--display:"Anton","Arial Narrow",Impact,sans-serif;--text:"Inter Variable","Helvetica Neue",Arial,sans-serif;--dock:56px;--edge:max(clamp(20px,4vw,64px),calc((100vw - 1400px) / 2));--top:clamp(36px,7vh,72px);--bg:var(--pine);--fg:#fdf3f5;--muted:#c3d6cb;--line:#ffffff2e;--hover:#ffffff12;--pill-bg:var(--mint);--pill-fg:var(--pine);--head:var(--blush);color-scheme:light}*,:after,:before{box-sizing:border-box}body,html{height:100%;margin:0;overflow:hidden}body{background:var(--pine);color:var(--blush);font-family:var(--text);font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased}dd,dl,h1,h2,h3,p,ul{margin:0;padding:0}ul{list-style:none}a,button{color:inherit}button{font:inherit;background:none;border:0;padding:0;cursor:pointer}:focus-visible{outline:2px solid currentColor;outline-offset:3px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;-webkit-clip-path:inset(50%);clip-path:inset(50%)}.landing{position:fixed;inset:0;z-index:50;background:var(--pine);color:var(--blush);display:grid;grid-template-rows:auto 1fr auto;padding:22px var(--edge);overflow:hidden}.landing-foot,.landing-top{display:flex;justify-content:space-between;align-items:center;gap:20px;font-size:14px}.landing nav{display:flex;gap:22px}.landing a,.landing nav button,.landing-enter{text-decoration:underline;text-underline-offset:4px;-webkit-text-decoration-color:#f7c8d466;text-decoration-color:#f7c8d466}.landing a:hover,.landing button:hover{-webkit-text-decoration-color:currentColor;text-decoration-color:currentColor}.landing-sig{position:absolute;right:clamp(0px,7vw,130px);top:clamp(30px,5vh,70px);height:min(52vh,34vw);width:min(62vw,700px);pointer-events:none}.contact-sign{display:block;width:min(100%,360px);height:230px;justify-self:start;pointer-events:none}.landing-title{align-self:end;font-family:var(--display);font-weight:400;font-size:min(9.4vw,25vh,176px);line-height:1.04;text-transform:uppercase;letter-spacing:0;margin-bottom:18px}.landing-line{display:block;overflow:hidden}.landing-line>span{display:block}.stage{position:fixed;inset:0 0 var(--dock) 0;overflow:hidden}.panel{position:absolute;inset:0;overflow-y:auto;overscroll-behavior:contain;visibility:hidden;background:var(--bg);color:var(--fg)}.panel.is-active{visibility:visible}.panel-about,.panel-contact{--bg:#efe7d7;--fg:var(--pine);--muted:#3c5a4e;--line:#0c3b2e30;--head:var(--pine);--hover:#0c3b2e12;--pill-bg:var(--pine);--pill-fg:#fdf3f5}.panel-inner{width:100%;min-height:100%;padding:var(--top) var(--edge) 64px;display:flex;flex-direction:column}.curtain{position:fixed;inset:0;z-index:25;background:var(--pine-up);-webkit-clip-path:inset(0 0 0 100%);clip-path:inset(0 0 0 100%);pointer-events:none}h2{color:var(--head);font-family:var(--display);font-weight:400;text-transform:uppercase;font-size:clamp(56px,7.5vw,112px);line-height:1;letter-spacing:0}h3{font-size:15px;font-weight:650}.pill{background:var(--pill-bg);color:var(--pill-fg);border-radius:999px;padding:9px 20px;font-size:14px;font-weight:600;transition:transform .25s}.pill:hover{transform:translateY(-2px)}.home{flex:1 1;display:grid;justify-items:center;align-content:center;grid-gap:18px;gap:18px;text-align:center}.home h2{font-size:min(12.4vw,30vh);line-height:1.02;white-space:nowrap}.word-cycle{font-size:clamp(22px,2.7vw,36px);font-weight:600;letter-spacing:-.02em;color:#fff;line-height:1.25}.word-mask{overflow:hidden;vertical-align:bottom;color:var(--mint)}.word-mask,.word-mask>span{display:inline-block}.home-line{max-width:42ch;font-size:clamp(15px,1.2vw,17px);color:var(--muted);margin-bottom:8px}.panel-head{display:flex;justify-content:space-between;gap:24px;align-items:flex-start}.badge{position:relative;flex:0 0 104px;width:104px;height:104px}.badge svg{width:100%;height:100%;animation:spin 16s linear infinite}.badge text{font-size:11.6px;letter-spacing:.1em;font-family:var(--text);fill:currentColor;font-weight:600}.badge>span{position:absolute;inset:0;display:grid;place-items:center;font-size:20px;transition:transform .3s}.badge:hover>span{transform:translateX(4px)}@keyframes spin{to{transform:rotate(1turn)}}.filters{margin-top:18px;display:flex;flex-wrap:wrap;gap:6px;font-size:13px}.filters button{padding:6px 14px;border-radius:999px;border:1px solid #ffffff4d;transition:background .2s,color .2s,border-color .2s}.filters button.is-on,.filters button:hover{border-color:var(--mint)}.filters button.is-on{background:var(--mint);color:var(--pine)}.rows{border-top:1px solid var(--line)}.rows li{border-bottom:1px solid var(--line)}.rows a{display:grid;grid-template-columns:minmax(0,1fr) 24px;grid-gap:28px;gap:28px;padding:34px 14px;margin-inline:-14px;text-decoration:none;align-items:center;transition:background .25s}.rows a:hover{background:var(--hover)}.row-text{display:grid;grid-gap:8px;gap:8px}.row-text strong{font-size:clamp(21px,2.1vw,28px);font-weight:650;letter-spacing:-.02em;line-height:1.15}.row-text>span{color:var(--muted);font-size:15px;max-width:56ch}.row-arrow{font-size:20px;transition:transform .3s}.rows a:hover .row-arrow{transform:translateX(5px)}.work-foot{margin-top:44px;font-size:14px;color:var(--muted)}.row-preview{position:fixed;top:0;left:0;z-index:30;width:280px;height:180px;margin:-90px 0 0 22px;pointer-events:none;opacity:0;scale:.92;rotate:-2deg;transition:opacity .25s,scale .35s;overflow:hidden}.row-preview.is-on{opacity:1;scale:1}.row-preview>div{position:absolute;inset:0;opacity:0;transition:opacity .25s}.row-preview>div.is-on{opacity:1}.row-preview svg{display:block;width:100%;height:100%}h3.work-sub{margin-top:56px;margin-bottom:14px;font-size:15px;color:var(--mint)}.more{display:grid;border-top:1px solid var(--line)}.more li{border-bottom:1px solid var(--line)}.more a{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);grid-gap:6px 32px;gap:6px 32px;align-items:baseline;padding:22px 10px;margin-inline:-10px;text-decoration:none;transition:background .2s}.more a:hover{background:var(--hover)}.more strong{font-size:16px;font-weight:650}.more span{color:var(--muted);font-size:14px}.show-all{margin-top:20px;color:var(--mint);font-weight:600;text-decoration:underline;text-underline-offset:4px;justify-self:start}.study{display:grid;grid-gap:44px;gap:44px}.back{justify-self:start;font-size:14px;color:var(--muted)}.back:hover{color:var(--fg)}.study header{display:grid;grid-gap:14px;gap:14px}.study h2.is-long{font-size:clamp(44px,7vw,92px);line-height:1.06}.study-summary{font-size:17px;line-height:1.5;max-width:56ch}.study-status{color:var(--mint);font-size:14px;font-weight:600}.study-stack{display:flex;flex-wrap:wrap;gap:4px 16px;font-size:14px;color:var(--muted)}.study-links{display:flex;gap:18px;font-weight:600}.flow{background:var(--pine-deep);color:var(--blush);padding:clamp(18px,3vw,34px)}.flow h3{font-size:17px}.flow-prompt{font-size:14px;color:var(--mint);margin-top:2px}.flow-buttons{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px;font-size:13.5px}.flow-buttons button{padding:5px 13px;border-radius:999px;border:1px solid #f7c8d466;transition:background .2s,color .2s,border-color .2s}.flow-buttons button:hover{border-color:var(--blush)}.flow-buttons button.is-on{background:var(--mint);color:var(--pine);border-color:var(--mint)}.flow-map{display:block;width:100%;margin-top:18px;max-height:70vh}.flow-map line{stroke:#f7c8d438;stroke-width:1.5;transition:stroke .3s}.flow-map line.is-lit{stroke:var(--mint)}.flow-node circle{fill:var(--pine-deep);stroke:#f7c8d470;stroke-width:1.5;transition:fill .25s,stroke .25s}.flow-node text{paint-order:stroke;stroke:var(--pine-deep);stroke-width:6px;stroke-linejoin:round;fill:#d7e4dc;font-size:14px;font-family:var(--text);transition:fill .25s}.flow-node.is-lit circle{fill:var(--mint);stroke:var(--mint)}.flow-node.is-lit text{fill:#fff}.flow-node.is-stop circle{fill:var(--rose);stroke:var(--rose)}.flow-node.is-hold circle{fill:var(--pine-deep);stroke:var(--butter);stroke-width:3}.flow-packet{fill:var(--blush)}.flow-result{min-height:1.6em;margin-top:10px;font-weight:600;color:var(--mint)}.flow-result.is-stop{color:var(--rose)}.flow-result.is-hold{color:var(--butter)}.flow-note{font-size:13px;color:#c9d9cf}.study-points{display:grid;grid-gap:12px;gap:12px}.study-points h3{font-size:19px;font-weight:650;letter-spacing:-.015em}.study-lens{font-size:14px;color:var(--muted)}.study-points ol,.study-points ul{display:grid;margin:0;padding:0;list-style:none}.study-points ol.is-ordered{counter-reset:step}.study-points ol.is-ordered li{counter-increment:step;display:grid;grid-template-columns:40px minmax(0,1fr)}.study-points ol.is-ordered li:before{content:counter(step);color:var(--mint);font-weight:650;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.study-insight{font-size:clamp(17px,1.6vw,20px);line-height:1.4;font-weight:550;color:var(--blush);max-width:42ch}.study-users{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:32px;gap:32px}.study-users h3{font-size:16px}.study-users small{display:block;color:var(--mint);font-size:14px;margin-bottom:8px}.study-users p{color:var(--muted);font-size:14px}.study-extra{max-width:66ch}.study-points li{padding:13px 0;border-top:1px solid var(--line);max-width:74ch;transition:opacity .35s}.study-points li.is-dim{opacity:.38}.next{display:grid;justify-items:start;grid-gap:2px;gap:2px;padding:22px 0 0;border-top:1px solid var(--fg);text-align:left}.next span{font-size:14px;color:var(--muted)}.next strong{font-size:clamp(20px,2.2vw,26px);font-weight:650;letter-spacing:-.02em;line-height:1.15}.next:hover strong{color:var(--mint)}.about{display:grid;grid-gap:30px;gap:30px}.about-head{display:flex;align-items:center;gap:clamp(16px,2vw,28px)}.photo-reveal{flex:0 0 auto;width:clamp(84px,8.5vw,124px);height:clamp(84px,8.5vw,124px);border-radius:50%}.about-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-gap:clamp(28px,5vw,64px);gap:clamp(28px,5vw,64px)}.about-statement{display:grid;grid-gap:16px;gap:16px;align-content:start}.about-statement .is-lead{font-size:clamp(18px,1.7vw,22px);line-height:1.3;letter-spacing:-.02em;font-weight:600;color:var(--pine)}.about-edu{margin-top:18px;display:grid;grid-gap:6px;gap:6px;font-size:14px}.about-edu span{color:var(--muted)}.skills{display:grid}.skills>div{padding:10px 0;border-top:1px solid var(--line)}.skills>div:last-child{border-bottom:1px solid var(--line)}.skills dt{font-size:14px;font-weight:650}.skills dd{color:var(--muted);font-size:14px}.contact{display:grid;grid-gap:30px;gap:30px}.contact-lead{color:var(--muted);max-width:48ch}.contact-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-gap:clamp(28px,5vw,64px);gap:clamp(28px,5vw,64px)}.contact-direct{display:grid;grid-gap:2px;gap:2px;align-content:start}.contact h3{margin-bottom:8px}.contact-row{display:grid;grid-template-columns:minmax(0,1fr) auto;padding:9px 10px;margin-inline:-10px;text-decoration:none;transition:background .2s}a.contact-row:hover{background:var(--hover)}.contact-row>span{grid-column:1/-1;font-size:13px;color:var(--muted)}.contact-row strong{font-size:14px;font-weight:550;overflow-wrap:anywhere}.contact-row button{font-size:13px;text-decoration:underline;text-underline-offset:3px;margin-left:10px}form{grid-gap:14px;gap:14px;align-content:start}form,label{display:grid}label{grid-gap:2px;gap:2px;font-size:13px;color:var(--muted)}input,textarea{font:inherit;font-size:16px;color:var(--fg);background:transparent;border:0;border-bottom:1px solid var(--line);padding:6px 0;border-radius:0;resize:vertical;width:100%}input:focus,textarea:focus{outline:0;border-color:var(--fg)}.field-pair{display:grid;grid-template-columns:1fr 1fr;grid-gap:16px;gap:16px}.form-end{display:grid;grid-gap:8px;gap:8px;justify-items:start;font-size:14px;color:var(--muted)}.dock{position:fixed;inset:auto 0 0;height:var(--dock);z-index:40;display:grid;grid-template-columns:repeat(4,1fr);background:var(--pine-deep);color:var(--fg)}.dock-mark{position:absolute;top:0;height:3px;left:0;width:25%;background:var(--mint)}.dock button{position:relative;display:flex;align-items:center;justify-content:center;gap:8px;font-size:14px;font-weight:550;transition:color .35s}.dock button.is-on{color:var(--mint)}.dock small{font-size:11px;opacity:.7;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}@media (max-width:980px){.about-grid,.contact-grid{grid-template-columns:1fr}}@media (max-width:820px){:root{--edge:max(16px,env(safe-area-inset-left,0px));--top:28px}.panel-inner{padding-bottom:40px}.more{grid-template-columns:1fr}.flow-map{max-height:none}.rows a{grid-template-columns:minmax(0,1fr) 20px;gap:6px 12px}.row-meta{grid-column:1;grid-row:2;justify-items:start;text-align:left}.row-arrow{grid-column:2;grid-row:1/3}.landing-sig{height:42vh;width:92vw;right:4vw;top:11vh}.more a,.study-users{grid-template-columns:1fr}.study-users{gap:22px}.landing-title{font-size:10vw}.badge{flex-basis:80px;width:80px;height:80px}.dock button{flex-direction:column;gap:0;line-height:1.2;font-size:13px}}@media (prefers-reduced-motion:reduce){.badge svg{animation:none}*{transition-duration:.01ms!important}}