@layer vendor,tokens,base,layout,components,utilities;@layer vendor{@font-face{font-family:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url("./fonts/space-grotesk-vietnamese-wght-normal-UOJE75FD.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:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url("./fonts/space-grotesk-latin-ext-wght-normal-KWQTIOU2.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:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url("./fonts/space-grotesk-latin-wght-normal-LIGEH75C.woff2") format("woff2-variations");unicode-range:U+0000-00FF,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}}@layer vendor{@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url("./fonts/jetbrains-mono-cyrillic-ext-wght-normal-BUWC6ZS3.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:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url("./fonts/jetbrains-mono-cyrillic-wght-normal-ENSFVLK4.woff2") format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url("./fonts/jetbrains-mono-greek-wght-normal-Y3BRZMJV.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:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url("./fonts/jetbrains-mono-vietnamese-wght-normal-SP6EBKAH.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:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url("./fonts/jetbrains-mono-latin-ext-wght-normal-TSLVDSQR.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:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url("./fonts/jetbrains-mono-latin-wght-normal-VBS632QH.woff2") format("woff2-variations");unicode-range:U+0000-00FF,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}}@layer vendor;@layer tokens{:root{--bg1: #18224a;--badge-bg: rgb(34 211 238 / 14%);--badge-bg-hover: rgb(227 119 184 / 14%);--chip-bg: rgb(255 255 255 / 8%);--hover-bg: rgb(255 255 255 / 14%);--card: rgb(255 255 255 / 10%);--panel-gradient: linear-gradient(135deg, rgb(124 92 255 / 14%), rgb(34 211 238 / 6%) 55%, transparent);--card-title-bg: rgb(255 255 255 / 6%);--border: rgb(255 255 255 / 18%);--border-hover: rgb(255 255 255 / 28%);--text: rgb(255 255 255 / 95%);--muted: rgb(255 255 255 / 80%);--subtle: rgb(255 255 255 / 78%);--sans: "Space Grotesk Variable", "Space Grotesk Fallback", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Ubuntu, Cantarell, "Noto Sans", "Helvetica Neue", Arial, sans-serif;--mono: "JetBrains Mono Variable", "JetBrains Mono Fallback", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--mono-system: "SFMono-Regular", "Menlo", "Monaco", "Consolas", "Liberation Mono", "Courier New", monospace;--light: #f8f9fa;--light-focus: rgb(248 249 250 / 50%);--fs-1: calc(1.375rem + 1.5vw) ;--fs-2: calc(1.325rem + .9vw) ;--fs-3: calc(1.3rem + .6vw) ;--radius-sm: .25rem;--radius: .5rem;--space-1: .25rem;--space-2: .5rem;--space-3: 1rem;--space-4: 1.5rem;--space-panel: .75rem;--gutter: .75rem;--container-max: none;--transition: all .2s ease}@media(width>=576px){:root{--container-max: 540px}}@media(width>=768px){:root{--container-max: 720px}}@media(width>=992px){:root{--container-max: 960px}}@media(width>=1200px){:root{--container-max: 1140px;--fs-1: 2.5rem;--fs-2: 2rem;--fs-3: 1.75rem}}@media(width>=1400px){:root{--container-max: 1320px}}}@layer base{*,*:before,*:after{box-sizing:border-box}body{margin:0;font-size:1rem;font-weight:400;line-height:1.5;text-size-adjust:100%;-webkit-tap-highlight-color:transparent}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2}h1{font-size:var(--fs-1)}h2{font-size:var(--fs-2)}h3{font-size:var(--fs-3)}p{margin-top:0;margin-bottom:1rem}ul{margin-top:0;margin-bottom:1rem;padding-left:2rem}hr{margin:1rem 0;color:inherit;border:0;border-top:1px solid;opacity:.25}small{font-size:.875em}img,svg{vertical-align:middle}[hidden]{display:none!important}}@layer base{@font-face{font-family:Space Grotesk Fallback;src:local("Arial"),local("Helvetica");size-adjust:112.94%;ascent-override:87.13%;descent-override:25.85%;line-gap-override:0%}@font-face{font-family:JetBrains Mono Fallback;src:local("Courier New");size-adjust:100%;ascent-override:102%;descent-override:30%;line-gap-override:0%}html{font-size:115%}body{font-family:var(--sans);color:var(--text);background:var(--bg1)}a{color:inherit;text-decoration:none}picture{display:contents}picture source{display:none}@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}@view-transition{navigation:auto}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important}}}@layer layout{.bg-gradient{position:fixed;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(255,255,255,.12),transparent),var(--bg1)}.container{width:100%;max-width:var(--container-max);margin-inline:auto;padding-inline:var(--gutter)}.header,.footer{border:1px solid var(--border);border-radius:var(--radius-sm);border-radius:var(--radius);background:var(--panel-gradient),var(--card);border-radius:0;border-inline:none;background:var(--card)}.header{border-top:none}.footer{border-bottom:none;margin-top:auto}.header-icons{font-size:125%}.footer-text{font-size:90%}.hero-grid{display:grid;grid-template-columns:auto 1fr;align-items:center}@media(width<=768px){.hero-grid{grid-template-columns:1fr;text-align:center}}.about-tag-grid{display:grid;grid-template-columns:minmax(0,1fr);align-items:stretch}@media(width>=576px){.about-tag-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(width>=1400px){.about-tag-grid{grid-template-columns:repeat(4,auto)}}.about-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-3)}@media(width>=992px){.about-layout{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}.about-layout .about-side{grid-column:1;grid-row:1}.about-layout .about-experience{grid-column:2;grid-row:1}}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(20rem,1fr));align-items:stretch}}@layer components{.glass{border:1px solid var(--border);border-radius:var(--radius-sm);border-radius:var(--radius);background:var(--panel-gradient),var(--card)}.icon{display:inline-block;flex-shrink:0;width:1.25em;height:1em;vertical-align:-.125em;fill:currentcolor}.chip{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--chip-bg);color:var(--muted);font-size:.9rem}.menu-icon{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--chip-bg);color:var(--muted);transition:var(--transition);display:inline-flex;align-items:center;justify-content:center;width:1.75em;height:1.75em;line-height:1}.menu-icon:hover{background:var(--hover-bg);border-color:var(--border-hover);transform:translateY(-2px)}.btn{transition:var(--transition);display:inline-block;padding:.375rem .75rem;font-size:1rem;line-height:1.5;text-align:center;vertical-align:middle;cursor:pointer;user-select:none;background-color:transparent;border:1px solid var(--light);border-radius:var(--radius)}.btn:hover{color:#000;background-color:var(--light)}.btn:focus-visible{outline:0;box-shadow:0 0 0 .25rem var(--light-focus)}.btn-sm{padding:.25rem .5rem;font-size:.875rem;border-radius:var(--radius-sm)}.badge{border:1px solid var(--border);border-radius:var(--radius-sm);transition:var(--transition);display:inline-block;padding:.35em .65em;font-size:.75em;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;background:var(--badge-bg);color:inherit;min-width:4em}.badge:is(a):hover{background:var(--badge-bg-hover)}.site-nav a:not([aria-current]){color:var(--subtle)}.site-nav a:not(.header-logo),.company-link{display:inline-block;padding-block:var(--space-1)}.header-logo img{display:block;border-radius:var(--radius);transition:transform .2s ease,box-shadow .2s ease}.header-logo:hover img{transform:scale(1.05);box-shadow:0 0 0 2px var(--border)}.hero-photo{border:1px solid var(--border);border-radius:var(--radius-sm);width:160px;height:160px;object-fit:cover;box-shadow:0 12px 40px #00000059}@media(width<=768px){.hero-photo{width:140px;height:140px}}.about-tag-icon{font-size:1.2rem}.about-tag-grid-item{min-width:0;max-width:100%;white-space:normal;word-break:keep-all;overflow-wrap:anywhere}.about-main-links{font-size:150%}.about-skills{font-size:.9rem}.list-group{display:flex;flex-direction:column;margin-bottom:0;padding-left:0;list-style:none}li.link-list{transition:var(--transition);display:block;border-bottom:1px solid var(--card)}li.link-list:last-child{border-bottom:none}li.link-list a:hover{background:var(--hover-bg)}li.link-list .link-img{width:1em;height:1em;object-fit:contain}.skill-level{font-size:.8rem;font-weight:400;text-transform:uppercase;letter-spacing:.08em}.skill-list{margin:0;padding:0;list-style:none}.skill-list .badge{font-size:.85rem;font-weight:500}.glass-card-title{padding:var(--space-2) var(--space-panel);background:var(--card-title-bg)}.experience-card,.projects-card{border:1px solid var(--border);border-radius:var(--radius-sm);border-radius:var(--radius);background:var(--panel-gradient),var(--card);overflow:clip;container-type:inline-size}.projects-card .mono{font-size:.85rem}.project-description{line-height:1.25}@container (max-width: 22rem){.glass-card-title{padding-inline:var(--space-2);font-size:.95em}}}@layer utilities{.muted{color:var(--muted)}.subtle{color:var(--subtle)}.text-white{color:#fff}.text-teal{color:#17a2b8}.text-rose{color:#e1808a}.mono{font-family:var(--mono)}.font-monospace{font-family:var(--mono-system)}.fluid-text{font-size:clamp(.8em,.6em + .8vw,1em)}.small{font-size:.875em}.fs-2{font-size:var(--fs-2)}.fs-3{font-size:var(--fs-3)}.fs-6{font-size:1rem}.fw-semibold{font-weight:600}.fw-bold{font-weight:700}.lh-1{line-height:1}.text-start{text-align:left}.text-center{text-align:center}.rounded-2{border-radius:var(--radius)}.d-none{display:none}.d-block{display:block}.d-flex{display:flex}.d-inline-flex{display:inline-flex}@media(width>=768px){.d-md-inline-block{display:inline-block}}.flex-column{flex-direction:column}.flex-wrap{flex-wrap:wrap}.align-items-center{align-items:center}.align-items-baseline{align-items:baseline}.justify-content-center{justify-content:center}.justify-content-between{justify-content:space-between}.w-100{width:100%}.h-100{height:100%}.min-vh-100{min-height:100vh}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.p-0{padding:0}.p-2{padding:var(--space-2)}.p-panel{padding:var(--space-panel)}.px-2{padding-inline:var(--space-2)}.px-3{padding-inline:var(--space-3)}.px-panel{padding-inline:var(--space-panel)}.py-1{padding-block:var(--space-1)}.py-2{padding-block:var(--space-2)}.pt-2{padding-top:var(--space-2)}.pb-3{padding-bottom:var(--space-3)}.my-0{margin-block:0}.my-2{margin-block:var(--space-2)}.mt-2{margin-top:var(--space-2)}.mt-auto{margin-top:auto}.mb-0{margin-bottom:0}.mb-2{margin-bottom:var(--space-2)}.mb-3{margin-bottom:var(--space-3)}.me-1{margin-right:var(--space-1)}.visually-hidden,.visually-hidden-focusable:not(:focus,:focus-within){position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}}
