@font-face{font-family:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/_astro/space-grotesk-vietnamese-wght-normal.D0rl6rjA.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:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/_astro/space-grotesk-latin-ext-wght-normal.D9tNdqV9.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:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/_astro/space-grotesk-latin-wght-normal.BhU9QXUp.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}:root{--bg-page:#0c0c0e;--bg-raised:#141417;--bg-card:#18181d;--bg-card-hover:#1e1e25;--bg-inset:#101013;--bg-pill:#232329;--text-primary:#f4f1ea;--text-secondary:#b3afa5;--text-faint:#807c74;--accent:#cfe860;--accent-bright:#e0f581;--accent-ink:#10130a;--accent-dim:#cfe8601f;--warm:#d97a52;--violet:#8d7bf0;--border:#f4f1ea17;--border-strong:#f4f1ea2e;--focus-ring:2px solid var(--accent);--font-display:"Space Grotesk Variable", "Avenir Next", "Segoe UI", sans-serif;--font-body:ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--sidebar-width:232px;--projectbar-height:72px;--mobile-nav-height:60px;--content-max:1120px;--radius-sm:8px;--radius-md:14px;--radius-lg:22px;--shadow-card:0 8px 28px #00000059;--shadow-pop:0 14px 44px #00000080;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--bg-page);color:var(--text-primary);font-family:var(--font-body);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-size:1rem;line-height:1.6}h1,h2,h3,h4{font-family:var(--font-display);letter-spacing:-.015em;text-wrap:balance;margin:0 0 .5em;font-weight:600;line-height:1.15}p{margin:0 0 1em}a{color:inherit;text-decoration:none}img,video,iframe{max-width:100%;height:auto}button{font:inherit;cursor:pointer}::selection{background:var(--accent);color:var(--accent-ink)}:focus-visible{outline:var(--focus-ring);outline-offset:3px;border-radius:4px}.eyebrow{font-family:var(--font-display);letter-spacing:.14em;text-transform:uppercase;color:var(--accent);align-items:center;gap:.5rem;margin-bottom:.9rem;font-size:.78rem;font-weight:600;display:inline-flex}.section-title{font-size:clamp(1.5rem,3vw,2.1rem)}.section-lede{color:var(--text-secondary);max-width:56ch;font-size:1.04rem}.btn{font-family:var(--font-display);letter-spacing:.01em;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:.55rem;padding:.78rem 1.5rem;font-size:.95rem;font-weight:600;transition:transform .14s,background-color .14s,border-color .14s,color .14s;display:inline-flex}.btn:active{transform:scale(.97)}.btn-primary{background:var(--accent);color:var(--accent-ink)}.btn-primary:hover{background:var(--accent-bright)}.btn-ghost{border-color:var(--border-strong);color:var(--text-primary);background:0 0}.btn-ghost:hover{border-color:var(--text-secondary);background:#f4f1ea0d}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md)}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:200;background:var(--accent);color:var(--accent-ink);border-radius:999px;padding:.6rem 1.1rem;font-weight:600;transition:transform .16s;position:fixed;top:.75rem;left:.75rem;transform:translateY(-300%)}.skip-link:focus{transform:translateY(0)}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.sidebar[data-astro-cid-jxpweyzp]{width:var(--sidebar-width);padding:1.5rem 1rem calc(var(--projectbar-height) + 1.25rem);background:var(--bg-raised);border-right:1px solid var(--border);z-index:60;flex-direction:column;display:flex;position:fixed;inset:0 auto 0 0}.wordmark[data-astro-cid-jxpweyzp]{align-items:center;gap:.65rem;padding:.4rem .6rem 1.2rem;display:flex}.wordmark-mono[data-astro-cid-jxpweyzp]{background:var(--accent);width:34px;height:34px;color:var(--accent-ink);font-family:var(--font-display);letter-spacing:.02em;border-radius:10px;place-items:center;font-size:.85rem;font-weight:700;display:grid}.wordmark-text[data-astro-cid-jxpweyzp]{font-family:var(--font-display);letter-spacing:-.01em;font-size:1.02rem;font-weight:600}.nav-list[data-astro-cid-jxpweyzp]{flex-direction:column;gap:.15rem;margin:0;padding:0;list-style:none;display:flex}.nav-link[data-astro-cid-jxpweyzp]{border-radius:var(--radius-sm);color:var(--text-secondary);font-family:var(--font-display);align-items:center;gap:.75rem;padding:.62rem .75rem;font-size:.94rem;font-weight:500;transition:color .13s,background-color .13s;display:flex}.nav-link[data-astro-cid-jxpweyzp]:hover{color:var(--text-primary);background:#f4f1ea0d}.nav-link[data-astro-cid-jxpweyzp].active{color:var(--text-primary);background:var(--bg-pill);box-shadow:inset 2px 0 0 var(--accent)}.sidebar-foot[data-astro-cid-jxpweyzp]{margin-top:auto;padding:0 .6rem}.listen-label[data-astro-cid-jxpweyzp]{text-transform:uppercase;letter-spacing:.14em;color:var(--text-faint);margin-bottom:.5rem;font-size:.72rem}.social-list[data-astro-cid-jxpweyzp]{gap:.35rem;margin:0 0 .9rem;padding:0;list-style:none;display:flex}.social-list[data-astro-cid-jxpweyzp] a[data-astro-cid-jxpweyzp]{width:32px;height:32px;color:var(--text-secondary);border:1px solid var(--border);border-radius:8px;place-items:center;transition:color .13s,border-color .13s;display:grid}.social-list[data-astro-cid-jxpweyzp] a[data-astro-cid-jxpweyzp]:hover{color:var(--accent);border-color:var(--border-strong)}.sidebar-mail[data-astro-cid-jxpweyzp]{color:var(--text-faint);word-break:break-all;align-items:center;gap:.4rem;font-size:.76rem;transition:color .13s;display:inline-flex}.sidebar-mail[data-astro-cid-jxpweyzp]:hover{color:var(--accent)}@media (width<=860px){.sidebar[data-astro-cid-jxpweyzp]{display:none}}.mobile-header[data-astro-cid-k6c7o3mi],.mobile-nav[data-astro-cid-k6c7o3mi]{display:none}@media (width<=860px){.mobile-header[data-astro-cid-k6c7o3mi]{z-index:70;-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--border);background:#0c0c0ee0;justify-content:space-between;align-items:center;gap:1rem;padding:.7rem 1rem;display:flex;position:sticky;top:0}.m-wordmark[data-astro-cid-k6c7o3mi]{font-family:var(--font-display);align-items:center;gap:.55rem;font-size:.98rem;font-weight:600;display:flex}.m-mono[data-astro-cid-k6c7o3mi]{background:var(--accent);width:30px;height:30px;color:var(--accent-ink);border-radius:9px;place-items:center;font-size:.78rem;font-weight:700;display:grid}.m-cta[data-astro-cid-k6c7o3mi]{font-family:var(--font-display);color:var(--accent-ink);background:var(--accent);border-radius:999px;padding:.45rem .95rem;font-size:.82rem;font-weight:600}.mobile-nav[data-astro-cid-k6c7o3mi]{z-index:70;-webkit-backdrop-filter:blur(14px);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom,0);background:#101013f0;display:block;position:fixed;inset:auto 0 0}.mobile-nav[data-astro-cid-k6c7o3mi] ul[data-astro-cid-k6c7o3mi]{height:var(--mobile-nav-height);margin:0;padding:0;list-style:none;display:flex}.mobile-nav[data-astro-cid-k6c7o3mi] li[data-astro-cid-k6c7o3mi]{flex:1}.m-link[data-astro-cid-k6c7o3mi]{height:100%;font-size:.62rem;font-family:var(--font-display);letter-spacing:.02em;color:var(--text-faint);flex-direction:column;justify-content:center;align-items:center;gap:.15rem;font-weight:500;transition:color .13s;display:flex}.m-link[data-astro-cid-k6c7o3mi].active,.m-link[data-astro-cid-k6c7o3mi]:hover{color:var(--text-primary)}.m-link[data-astro-cid-k6c7o3mi].active svg,.m-link[data-astro-cid-k6c7o3mi].book{color:var(--accent)}}.project-bar[data-astro-cid-oluccgcd]{height:var(--projectbar-height);z-index:80;-webkit-backdrop-filter:blur(16px);border-top:1px solid var(--border);background:#101013eb;justify-content:space-between;align-items:center;gap:1rem;padding:0 1.25rem;display:flex;position:fixed;inset:auto 0 0}.pb-left[data-astro-cid-oluccgcd]{align-items:center;gap:.8rem;min-width:0;display:flex}.pb-avatar[data-astro-cid-oluccgcd]{object-fit:cover;border-radius:10px;width:44px;height:44px}.pb-meta[data-astro-cid-oluccgcd] p[data-astro-cid-oluccgcd]{margin:0}.pb-name[data-astro-cid-oluccgcd]{font-family:var(--font-display);font-size:.92rem;font-weight:600;line-height:1.3}.pb-status[data-astro-cid-oluccgcd]{color:var(--text-secondary);align-items:center;gap:.4rem;font-size:.78rem;line-height:1.3;display:flex}.pb-dot[data-astro-cid-oluccgcd]{background:var(--accent);width:7px;height:7px;box-shadow:0 0 8px var(--accent);border-radius:50%}.pb-right[data-astro-cid-oluccgcd]{align-items:center;gap:1rem;display:flex}.pb-mail[data-astro-cid-oluccgcd]{color:var(--text-secondary);align-items:center;gap:.45rem;font-size:.85rem;transition:color .13s;display:inline-flex}.pb-mail[data-astro-cid-oluccgcd]:hover{color:var(--accent)}.pb-cta[data-astro-cid-oluccgcd]{padding:.6rem 1.25rem;font-size:.88rem}@media (width<=1080px){.pb-mail-text[data-astro-cid-oluccgcd]{display:none}}@media (width<=860px){.project-bar[data-astro-cid-oluccgcd]{display:none}}.site-footer[data-astro-cid-nns7i3if]{border-top:1px solid var(--border);background:var(--bg-inset);padding:3rem 2rem 2.5rem}.foot-inner[data-astro-cid-nns7i3if]{max-width:var(--content-max);grid-template-columns:1.4fr 1fr 1fr;gap:2.5rem;margin:0 auto;display:grid}.foot-name[data-astro-cid-nns7i3if]{font-family:var(--font-display);margin-bottom:.3rem;font-size:1.1rem;font-weight:600}.foot-name[data-astro-cid-nns7i3if] span[data-astro-cid-nns7i3if]{color:var(--accent)}.foot-tag[data-astro-cid-nns7i3if]{color:var(--text-secondary);margin-bottom:.8rem;font-size:.88rem}.foot-mail[data-astro-cid-nns7i3if]{color:var(--text-secondary);border-bottom:1px solid var(--border-strong);font-size:.9rem;transition:color .13s}.foot-mail[data-astro-cid-nns7i3if]:hover{color:var(--accent)}.foot-head[data-astro-cid-nns7i3if]{text-transform:uppercase;letter-spacing:.14em;color:var(--text-faint);margin-bottom:.7rem;font-size:.72rem}.site-footer[data-astro-cid-nns7i3if] ul[data-astro-cid-nns7i3if]{flex-direction:column;gap:.45rem;margin:0;padding:0;list-style:none;display:flex}.foot-nav[data-astro-cid-nns7i3if] a[data-astro-cid-nns7i3if],.foot-social[data-astro-cid-nns7i3if] a[data-astro-cid-nns7i3if]{color:var(--text-secondary);align-items:center;gap:.5rem;font-size:.9rem;transition:color .13s;display:inline-flex}.foot-nav[data-astro-cid-nns7i3if] a[data-astro-cid-nns7i3if]:hover,.foot-social[data-astro-cid-nns7i3if] a[data-astro-cid-nns7i3if]:hover{color:var(--text-primary)}.foot-fine[data-astro-cid-nns7i3if]{max-width:var(--content-max);border-top:1px solid var(--border);color:var(--text-faint);margin:2.5rem auto 0;padding-top:1.5rem;font-size:.8rem}@media (width<=720px){.foot-inner[data-astro-cid-nns7i3if]{grid-template-columns:1fr;gap:2rem}.site-footer[data-astro-cid-nns7i3if]{padding:2.5rem 1.25rem 2rem}}.app-shell[data-astro-cid-z4jru4n3]{margin-left:var(--sidebar-width);padding-bottom:var(--projectbar-height);flex-direction:column;min-height:100vh;display:flex}main[data-astro-cid-z4jru4n3]{flex:1;width:100%}@media (width<=860px){.app-shell[data-astro-cid-z4jru4n3]{padding-bottom:var(--mobile-nav-height);margin-left:0}}
