@font-face{font-family:DM Sans Variable;font-style:normal;font-display:swap;font-weight:100 1000;src:url(/_astro/dm-sans-latin-ext-wght-normal.BOFOeGcA.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:DM Sans Variable;font-style:normal;font-display:swap;font-weight:100 1000;src:url(/_astro/dm-sans-latin-wght-normal.Xz1IZZA0.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:DM Sans Variable;font-style:italic;font-display:swap;font-weight:100 1000;src:url(/_astro/dm-sans-latin-ext-wght-italic.DUE6_iCb.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:DM Sans Variable;font-style:italic;font-display:swap;font-weight:100 1000;src:url(/_astro/dm-sans-latin-wght-italic.Cz4n9dED.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:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/fraunces-vietnamese-wght-normal.CnvboYUG.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:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/fraunces-latin-ext-wght-normal.Ca2vKHc0.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:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/fraunces-latin-wght-normal.ukD16Tqj.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:#0c0f14;--bg-elevated:#141a22;--bg-card:#1a222d;--border:#ffffff14;--text:#e8edf4;--text-muted:#94a3b8;--accent:#2dd4bf;--accent-soft:#2dd4bf1f;--accent-glow:#2dd4bf59;--warm:#fbbf24;--radius:14px;--shadow:0 24px 80px #00000073;--font-body:"DM Sans", system-ui, sans-serif;--font-display:"Fraunces", Georgia, serif;--max-width:1120px;--header-height:4.25rem;--subnav-height:4.25rem;--scroll-buffer:1rem;--scroll-offset:calc(var(--header-height) + var(--scroll-buffer));--page-gutter:2.5rem}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:var(--scroll-offset);text-size-adjust:100%}html:has(.about-subnav){--scroll-offset:calc(var(--header-height) + var(--subnav-height) + var(--scroll-buffer))}body{font-family:var(--font-body);color:var(--text);background:var(--bg);background-image:radial-gradient(80% 50% at 20% -10%,#2dd4bf26,#0000),radial-gradient(60% 40% at 90% 10%,#fbbf2414,#0000);min-height:100vh;margin:0;font-size:1.05rem;line-height:1.65;overflow-x:clip}a{color:var(--accent);text-decoration:none;transition:color .2s}a:hover{color:#5eead4}img{max-width:100%}.container{width:min(var(--max-width), calc(100% - var(--page-gutter)));margin-inline:auto}.site-header{z-index:100;backdrop-filter:blur(16px);border-bottom:1px solid var(--border);background:#0c0f14d1;position:sticky;top:0}.header-inner{grid-template-columns:auto 1fr auto;grid-template-areas:"logo nav lang";align-items:center;gap:.75rem 1rem;padding:.85rem 0;display:grid}.logo{font-family:var(--font-display);color:var(--text);letter-spacing:-.02em;flex-shrink:0;grid-area:logo;font-size:1.15rem;font-weight:600}.site-nav{grid-area:nav;justify-content:center;min-width:0;display:flex}.lang-switch{background:var(--bg-elevated);border:1px solid var(--border);border-radius:999px;flex-shrink:0;grid-area:lang;gap:.25rem;padding:.2rem;display:flex}.nav-links a,.lang-btn,.about-subnav-link,.btn{min-height:2.75rem}.nav-links{flex-wrap:wrap;justify-content:center;gap:.35rem 1.25rem;margin:0;padding:0;list-style:none;display:flex}.nav-links a{color:var(--text-muted);align-items:center;font-size:.92rem;font-weight:500;display:inline-flex}.nav-links a:hover{color:var(--text)}.lang-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:999px;justify-content:center;align-items:center;padding:.35rem .75rem;font-family:inherit;font-size:.82rem;font-weight:600;text-decoration:none;transition:background .2s,color .2s;display:inline-flex}.lang-btn.active{background:var(--accent-soft);color:var(--accent)}.lang-btn:hover:not(.active){color:var(--text)}.hero{padding:4.5rem 0 3.5rem}.hero-grid{gap:2rem;display:grid}.hero-badge{letter-spacing:.04em;text-transform:uppercase;color:var(--accent);background:var(--accent-soft);border:1px solid #2dd4bf40;border-radius:999px;align-items:center;gap:.5rem;margin-bottom:1.25rem;padding:.4rem .85rem;font-size:.82rem;font-weight:600;display:inline-flex}.hero-badge:before{content:"";background:var(--accent);width:7px;height:7px;box-shadow:0 0 12px var(--accent-glow);border-radius:50%}.hero h1{font-family:var(--font-display);letter-spacing:-.03em;background:linear-gradient(135deg,#fff 30%,#94a3b8);-webkit-text-fill-color:transparent;background-clip:text;margin:0 0 .75rem;font-size:clamp(2.5rem,6vw,4rem);font-weight:700;line-height:1.08}.hero-title{color:var(--warm);margin:0 0 1rem;font-size:clamp(1.1rem,2.5vw,1.45rem);font-weight:600}.hero-tagline{color:var(--text-muted);max-width:42rem;margin:0 0 2rem;font-size:1.15rem}.contact-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);gap:.65rem;padding:1.35rem 1.5rem;display:grid}.contact-row{color:var(--text-muted);flex-wrap:wrap;gap:.35rem 1.5rem;font-size:.95rem;display:flex}.contact-row strong{color:var(--text);font-weight:500}main section{border-top:1px solid var(--border);padding:3rem 0}.section-heading{font-family:var(--font-display);letter-spacing:-.02em;color:var(--text);margin:0 0 1.5rem;font-size:clamp(1.6rem,3vw,2rem);font-weight:600}.section-heading:after{content:"";background:linear-gradient(90deg, var(--accent), transparent);border-radius:2px;width:3rem;height:3px;margin-top:.65rem;display:block}.prose p{color:var(--text-muted);margin:0 0 1rem}.prose p:last-child{margin-bottom:0}.timeline{gap:0;display:grid;position:relative}.timeline-item{border-bottom:1px solid var(--border);grid-template-columns:9rem 1fr;gap:1.25rem;padding:1.35rem 0;display:grid}.timeline-item:last-child{border-bottom:none}.timeline-period{color:var(--accent);padding-top:.15rem;font-size:.85rem;font-weight:600}.timeline-body h3{color:var(--text);margin:0 0 .25rem;font-size:1.05rem;font-weight:600}.timeline-body p{color:var(--text-muted);margin:0;font-size:.95rem}.skill-groups{gap:1.25rem;display:grid}.skill-group{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem 1.35rem}.skill-group h3{text-transform:uppercase;letter-spacing:.06em;color:var(--warm);margin:0 0 .85rem;font-size:.92rem;font-weight:600}.skill-tags{flex-wrap:wrap;gap:.45rem;display:flex}.skill-tag{background:var(--bg-elevated);border:1px solid var(--border);color:var(--text);border-radius:999px;padding:.35rem .7rem;font-size:.85rem}.note{color:var(--text-muted);margin-top:1.25rem;font-size:.92rem;font-style:italic}.check-list{gap:.55rem;margin:0;padding:0;list-style:none;display:grid}.check-list li{color:var(--text-muted);padding-left:1.35rem;position:relative}.check-list li:before{content:"→";color:var(--accent);font-weight:600;position:absolute;left:0}.training-grid{gap:.65rem;display:grid}.training-item{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;justify-content:space-between;gap:1rem;padding:.75rem 1rem;font-size:.92rem;display:flex}.training-item span:last-child{color:var(--accent);white-space:nowrap;font-weight:600}.two-col{gap:2rem;display:grid}.site-footer{border-top:1px solid var(--border);text-align:center;color:var(--text-muted);padding:2rem 0 3rem;font-size:.88rem}.about-subnav{top:var(--header-height);z-index:90;backdrop-filter:blur(16px);border-bottom:1px solid var(--border);background:#0c0f14e0;position:sticky}.about-subnav .container{position:relative}.about-subnav .container:after{content:"";pointer-events:none;background:linear-gradient(90deg,#0000,#0c0f14f2);width:2.5rem;position:absolute;top:0;bottom:0;right:0}.about-subnav-list{-webkit-overflow-scrolling:touch;scrollbar-width:none;scroll-padding-inline:var(--page-gutter);gap:.45rem;margin:0;padding:.65rem 0;list-style:none;display:flex;overflow-x:auto}.about-subnav-list::-webkit-scrollbar{display:none}.about-subnav-link{white-space:nowrap;color:var(--text-muted);border:1px solid var(--border);background:var(--bg-elevated);border-radius:999px;align-items:center;padding:.4rem .85rem;font-size:.82rem;font-weight:600;transition:color .2s,border-color .2s,background .2s;display:inline-flex}.about-subnav-link:hover{color:var(--text);border-color:#ffffff29}.about-subnav-link:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.hero .contact-card,main section[id]{scroll-margin-top:var(--scroll-offset)}.site-nav .nav-links a.nav-active{color:var(--accent)}.contact-row a,.legal-body{overflow-wrap:anywhere}@media (width>=768px){.hero-grid{grid-template-columns:1.4fr 1fr;align-items:start}.two-col{grid-template-columns:1fr 1fr}.services-grid{grid-template-columns:repeat(2,1fr)}}@media (width>=1024px){.services-grid{grid-template-columns:repeat(3,1fr)}}@media (width<=767px){:root{--header-height:6.25rem;--page-gutter:1.25rem}.header-inner{grid-template-columns:1fr auto;grid-template-areas:"logo lang""nav nav";gap:.5rem .75rem;padding:.65rem 0}.site-nav .nav-links{justify-content:space-around;gap:.25rem .5rem;width:100%}.site-nav .nav-links a{padding-inline:.25rem;font-size:.85rem}.hero,.home-hero{padding-top:2.75rem;padding-bottom:2.25rem}main section{padding:2.25rem 0}.home-blog-header{flex-direction:column;align-items:flex-start}.blog-index,.blog-post,.legal-page{padding-top:2.5rem;padding-bottom:3rem}}@media (width<=640px){.timeline-item{grid-template-columns:1fr;gap:.35rem}.training-item{flex-direction:column;align-items:flex-start;gap:.35rem}.training-item span:last-child{white-space:normal}.home-hero-actions{flex-direction:column;align-items:stretch}.home-hero-actions .btn{width:100%}.blog-list-item h2,.home-blog-list .blog-list-item h3{font-size:1.15rem}.blog-post-header h1,.blog-index-header h1,.legal-inner>h1{font-size:clamp(1.65rem,8vw,2.25rem)}}@media (width<=380px){:root{--page-gutter:1rem}.lang-btn{padding-inline:.6rem}.about-subnav-link{padding-inline:.7rem;font-size:.78rem}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}.footer-inner{flex-direction:column;align-items:center;gap:.5rem;display:flex}.footer-links{margin:0;font-size:.88rem}.blog-index{padding:3.5rem 0 4rem}.blog-index-header{max-width:40rem;margin-bottom:2.5rem}.blog-index-header h1{font-family:var(--font-display);letter-spacing:-.02em;margin:0 0 1rem;font-size:clamp(2rem,4vw,2.75rem);font-weight:700}.blog-index-header p{color:var(--text-muted);margin:0 0 .75rem}.blog-index-rss{font-size:.95rem}.blog-list{gap:0;margin:0;padding:0;list-style:none;display:grid}.blog-list-item{border-top:1px solid var(--border)}.blog-list-item:last-child{border-bottom:1px solid var(--border)}.blog-list-item article{padding:1.75rem 0}.blog-list-item time{color:var(--accent);margin-bottom:.5rem;font-size:.85rem;font-weight:600;display:block}.blog-list-item h2{font-family:var(--font-display);letter-spacing:-.02em;margin:0 0 .5rem;font-size:1.5rem;font-weight:600}.blog-list-item h2 a{color:var(--text)}.blog-list-item h2 a:hover{color:var(--accent)}.blog-list-item p{color:var(--text-muted);max-width:42rem;margin:0 0 .85rem}.blog-tags{flex-wrap:wrap;gap:.45rem;margin:0;padding:0;list-style:none;display:flex}.blog-empty{color:var(--text-muted)}.blog-post{padding:2.5rem 0 4rem}.blog-post-inner{max-width:42rem}.blog-back{color:var(--text-muted);margin-bottom:1.5rem;font-size:.92rem;font-weight:500;display:inline-block}.blog-back:hover{color:var(--accent)}.blog-post-header h1{font-family:var(--font-display);letter-spacing:-.03em;margin:0 0 1rem;font-size:clamp(2rem,4vw,2.75rem);font-weight:700;line-height:1.15}.blog-post-description{color:var(--text-muted);margin:0 0 1rem;font-size:1.15rem}.blog-post-meta{color:var(--accent);flex-wrap:wrap;gap:.5rem 1.25rem;margin-bottom:1rem;font-size:.9rem;font-weight:600;display:flex}.blog-post-updated{color:var(--text-muted);font-weight:500}.blog-content.prose h2,.blog-content.prose h3{font-family:var(--font-display);color:var(--text);letter-spacing:-.02em;margin:2rem 0 .75rem}.blog-content.prose h2{font-size:1.5rem}.blog-content.prose h3{font-size:1.2rem}.blog-content.prose p,.blog-content.prose li{color:var(--text-muted)}.blog-content.prose strong{color:var(--text)}.blog-content.prose ul,.blog-content.prose ol{margin:0 0 1rem;padding-left:1.35rem}.blog-content.prose li{margin-bottom:.35rem}.blog-content.prose a{color:var(--accent)}.blog-content.prose code{background:var(--bg-elevated);border:1px solid var(--border);border-radius:6px;padding:.15rem .4rem;font-size:.9em}.blog-content.prose pre{border-radius:var(--radius);background:var(--bg-card);border:1px solid var(--border);margin:1.25rem 0;padding:1rem 1.15rem;overflow-x:auto}.blog-content.prose pre code{background:0 0;border:none;padding:0;font-size:.88rem}.blog-content.prose blockquote{border-left:3px solid var(--accent);background:var(--accent-soft);border-radius:0 var(--radius) var(--radius) 0;margin:1.25rem 0;padding:.75rem 1rem}.blog-content.prose blockquote p{margin:0}.home-hero{padding:4.5rem 0 3rem}.home-hero-inner{max-width:44rem}.home-hero h1{font-family:var(--font-display);letter-spacing:-.03em;background:linear-gradient(135deg,#fff 30%,#94a3b8);-webkit-text-fill-color:transparent;background-clip:text;margin:0 0 .5rem;font-size:clamp(2.25rem,5vw,3.5rem);font-weight:700;line-height:1.1}.home-hero-title{margin-bottom:2rem}.home-hero-sub{color:var(--text-muted);max-width:40rem;margin:0 0 2rem;font-size:1.15rem}.home-hero-actions{flex-wrap:wrap;gap:.75rem;display:flex}.btn{border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;padding:.65rem 1.25rem;font-family:inherit;font-size:.95rem;font-weight:600;transition:background .2s,color .2s,border-color .2s;display:inline-flex}.btn-primary{background:var(--accent-soft);color:var(--accent);border-color:#2dd4bf40}.btn-primary:hover{color:#5eead4;background:#2dd4bf33}.btn-secondary{background:var(--bg-elevated);color:var(--text);border-color:var(--border)}.btn-secondary:hover{color:var(--accent);border-color:#ffffff2e}.home-section-intro{color:var(--text-muted);max-width:42rem;margin:0 0 1.75rem}.home-contact{padding-bottom:4rem}.home-contact-card{max-width:24rem;margin-top:1.5rem}.home-services{border-top:1px solid var(--border);padding:3rem 0}.services-grid{gap:1rem;display:grid}.service-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:1.35rem 1.5rem}.service-card h3{color:var(--warm);margin:0 0 .65rem;font-size:1.05rem;font-weight:600}.service-card p{color:var(--text-muted);margin:0;font-size:.95rem}.home-blog{border-top:1px solid var(--border);padding:3rem 0 4rem}.home-blog-header{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:.5rem;display:flex}.home-blog-header .section-heading{margin-bottom:0}.home-blog-all{font-size:.95rem;font-weight:600}.home-blog-list .blog-list-item h3{font-family:var(--font-display);margin:0 0 .5rem;font-size:1.25rem}.home-blog-list .blog-list-item h3 a{color:var(--text)}.home-blog-list .blog-list-item h3 a:hover{color:var(--accent)}.legal-page{padding:3.5rem 0 4rem}.legal-inner{max-width:42rem}.legal-inner>h1{font-family:var(--font-display);letter-spacing:-.02em;margin:0 0 2rem;font-size:clamp(2rem,4vw,2.75rem);font-weight:700}.legal-block{margin-bottom:2rem}.legal-block h2{color:var(--warm);margin:0 0 .65rem;font-size:1.05rem;font-weight:600}.legal-body{color:var(--text-muted);white-space:pre-line;margin:0}
