@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-cyrillic-ext-wght-normal.BOeWTOD4.woff2)format("woff2-variations");unicode-range:U+460-52F,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(/_astro/inter-cyrillic-wght-normal.DqGufNeO.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-greek-ext-wght-normal.DlzME5K_.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(/_astro/inter-greek-wght-normal.CkhJZR-_.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-vietnamese-wght-normal.CBcvBZtf.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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-latin-ext-wght-normal.DO1Apj_S.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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-latin-wght-normal.Dx4kXJAl.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{--font-sans:"Inter Variable", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;--bg:#0c0e12;--bg-soft:#12151b;--bg-card:#14171e;--text:#eceef2;--text-soft:#a6abbb;--text-faint:#7c8194;--border:#232733;--border-strong:#313749;--accent:#6c85ff;--accent-soft:#1a2036;--accent-text:#93a5ff;--hero-glow:radial-gradient(60% 50% at 70% 10%, #6c85ff1a, transparent 70%), radial-gradient(40% 40% at 20% 90%, #6c85ff0f, transparent 70%);--shadow-card:0 1px 2px #0006, 0 8px 24px -12px #00000080;--shadow-card-hover:0 0 0 1px #ffffff12, 0 16px 36px -14px #000000b3;--header-bg:#0c0e12d1}:root[data-theme=light]{--bg:#fcfcfd;--bg-soft:#f4f5f7;--bg-card:#fff;--text:#16181d;--text-soft:#4b5162;--text-faint:#7c8194;--border:#e6e8ee;--border-strong:#d5d8e2;--accent:#2547f4;--accent-soft:#eef1ff;--accent-text:#1d3ad1;--hero-glow:radial-gradient(60% 50% at 70% 10%, #2547f414, transparent 70%), radial-gradient(40% 40% at 20% 90%, #2547f40d, transparent 70%);--shadow-card:0 1px 2px #16181d0a, 0 8px 24px -12px #16181d14;--shadow-card-hover:0 2px 6px #16181d12, 0 16px 32px -14px #16181d29;--header-bg:#fcfcfdd1}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:var(--font-sans);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-size:1.0625rem;line-height:1.65}img{max-width:100%;height:auto;display:block}a{color:var(--accent-text);text-decoration:none}a:hover{text-underline-offset:3px;text-decoration:underline}h1,h2,h3,h4{letter-spacing:-.02em;text-wrap:balance;margin:0 0 .5em;font-weight:650;line-height:1.15}h1{font-size:clamp(1.85rem,4.6vw,3rem);font-weight:700}h2{font-size:clamp(1.5rem,3.2vw,2.1rem)}h3{font-size:1.2rem}p{margin:0 0 1em}::selection{background:var(--accent);color:#fff}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}.container{max-width:85rem;margin-inline:auto;padding-inline:clamp(1.25rem,4vw,2.5rem)}.narrow{max-width:46rem}.section{padding-block:4em}.section+.section{border-top:1px solid var(--border)}.section-soft{background:var(--bg-soft)}.kicker{letter-spacing:.12em;text-transform:uppercase;color:var(--accent-text);margin-bottom:.9rem;font-size:.8rem;font-weight:650;display:block}.lead{color:var(--text-soft);max-width:44rem;font-size:clamp(1.1rem,2vw,1.3rem)}.muted{color:var(--text-soft)}.faint{color:var(--text-faint);font-size:.8rem}.site-header{z-index:50;background:var(--header-bg);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--border);position:sticky;top:0}.site-header .inner{justify-content:space-between;align-items:center;gap:1rem;min-height:4rem;display:flex}.brand{letter-spacing:-.02em;color:var(--text);white-space:nowrap;align-items:stretch;gap:.65rem;font-size:1.05rem;font-weight:700;display:inline-flex}.brand .logo-bw{flex:none;align-self:center;transition:transform .4s}.brand span{color:var(--accent-text);align-items:center;line-height:1;display:inline-flex}.logo-bw .logo-letter{transform-box:fill-box;transform-origin:50%;transition:transform .4s}.brand:hover{color:var(--accent-text);text-decoration:none}.brand:hover .logo-bw{transform:rotate(90deg)}.brand:hover .logo-bw .logo-letter{transform:rotate(-90deg)}.header-actions{order:3;align-items:center;gap:.5rem;display:flex}.theme-toggle{border:1px solid var(--border-strong);width:2.3rem;height:2.3rem;color:var(--text-soft);cursor:pointer;background:0 0;border-radius:50%;justify-content:center;align-items:center;transition:color .15s,border-color .15s,transform .15s;display:inline-flex}.theme-toggle:hover{color:var(--text);border-color:var(--accent);transform:rotate(15deg)}.theme-toggle svg{width:1.05rem;height:1.05rem}.theme-toggle .icon-moon{display:none}:root[data-theme=light] .theme-toggle .icon-moon{display:block}:root[data-theme=light] .theme-toggle .icon-sun{display:none}.main-nav ul{align-items:center;gap:.25rem;margin:0;padding:0;list-style:none;display:flex}.main-nav a{color:var(--text-soft);white-space:nowrap;border-radius:8px;padding:.45rem .7rem;font-size:.92rem;font-weight:520;display:block}.main-nav a:hover{color:var(--text);background:var(--bg-soft);text-decoration:none}.main-nav a[aria-current=page]{color:var(--accent-text);background:var(--accent-soft)}.lang-switch{border:1px solid var(--border-strong);color:var(--text-soft);white-space:nowrap;border-radius:999px;align-items:center;gap:.45rem;padding:.35rem .85rem;font-size:.85rem;font-weight:600;display:inline-flex}.flag-icon{width:1.15rem;height:auto;box-shadow:0 0 0 1px var(--border);border-radius:2px;flex:none}.lang-switch:hover{color:var(--text);border-color:var(--accent);text-decoration:none}@media (width<=420px){.header-actions .lang-switch{padding:.35rem}.header-actions .lang-switch .lang-code{display:none}}.nav-toggle{border:1px solid var(--border-strong);color:var(--text);cursor:pointer;background:0 0;border-radius:8px;padding:.55rem .6rem;display:none}.nav-toggle-box{flex-direction:column;justify-content:space-between;width:1.25rem;height:.95rem;display:flex}.nav-toggle-line{transform-origin:50%;background:currentColor;border-radius:2px;height:2px;transition:transform .28s cubic-bezier(.65,.05,.36,1),opacity .2s;display:block}.nav-toggle.is-open .nav-toggle-line:first-child{transform:translateY(.42rem)rotate(45deg)}.nav-toggle.is-open .nav-toggle-line:nth-child(2){opacity:0;transform:scaleX(.2)}.nav-toggle.is-open .nav-toggle-line:nth-child(3){transform:translateY(-.42rem)rotate(-45deg)}.main-nav .has-sub{position:relative}.main-nav .has-sub>a{align-items:center;gap:.3rem;display:inline-flex}.main-nav .caret{width:.7rem;height:.7rem;transition:transform .2s}.main-nav .has-sub:hover>a .caret,.main-nav .has-sub:focus-within>a .caret{transform:rotate(180deg)}.main-nav .has-sub.current-branch>a{color:var(--accent-text)}.sub-menu{margin:0;padding:.4rem;list-style:none}@media (width>=861px){.sub-menu{background:var(--bg-card);border:1px solid var(--border);min-width:11rem;box-shadow:var(--shadow-card);opacity:0;visibility:hidden;z-index:60;border-radius:12px;transition:opacity .18s,transform .18s,visibility .18s;position:absolute;top:calc(100% + .35rem);left:0;transform:translateY(-6px)}.main-nav .has-sub:after{content:"";inset-inline:0;height:.5rem;position:absolute;top:100%}.main-nav .has-sub:hover>.sub-menu,.main-nav .has-sub:focus-within>.sub-menu{opacity:1;visibility:visible;transform:translateY(0)}.sub-menu a{padding:.5rem .75rem;display:block}}@media (width<=860px){.nav-toggle{display:inline-flex}.main-nav{inset-inline:0;background:var(--bg-card);border:1px solid var(--border-strong);box-shadow:var(--shadow-card-hover);border-top:none;max-height:calc(100vh - 4rem);display:none;position:absolute;top:100%;overflow-y:auto}:root:not([data-theme=light]) .main-nav{box-shadow:0 0 0 1px #6c85ff29, var(--shadow-card-hover)}.main-nav.open{animation:.25s both nav-drop;display:block}@keyframes nav-drop{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.main-nav ul{flex-direction:column;align-items:stretch;gap:.15rem;padding:.75rem clamp(1.25rem,4vw,2.5rem) 1rem}.main-nav a{padding:.7rem .75rem;font-size:1rem}.sub-menu{border-left:2px solid var(--border);margin-left:.9rem;padding:0 0 .25rem 1rem}.sub-menu a{font-size:.95rem}.main-nav .caret{display:none}}.skip-link{background:var(--accent);color:#fff;z-index:100;border-radius:0 0 8px;padding:.6rem 1rem;position:absolute;top:0;left:-999px}.skip-link:focus{left:0}.hero{background-image:var(--hero-glow);padding-block:5em;position:relative}.hero .lead{margin-top:1.25rem}.hero-lead{max-width:50em}.name-highlight{color:var(--accent-text);font-weight:700}@media (width<=1200px){.hero-lead .lead-break{display:none}}.top-projects-intro{max-width:none}.expertise-intro{max-width:60em}.about-intro{text-align:justify;text-justify:inter-word;hyphens:auto}.story-block{max-width:46rem}.story-block .muted{text-align:justify;text-justify:inter-word;hyphens:auto}.soft-skills-block{max-width:46rem}@media (width<=1200px){.lead,.muted{text-align:justify;text-justify:inter-word;hyphens:auto}}.hero-actions{flex-wrap:wrap;gap:.75rem;margin-top:2rem;display:flex}.btn{border:1px solid #0000;border-radius:10px;align-items:center;gap:.5rem;padding:.7rem 1.35rem;font-size:.95rem;font-weight:600;transition:transform .12s,box-shadow .12s;display:inline-flex}.btn:hover{text-decoration:none;transform:translateY(-1px)}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{box-shadow:0 6px 20px -6px var(--accent)}.btn-ghost{border-color:var(--border-strong);color:var(--text)}.btn-ghost:hover{border-color:var(--accent);color:var(--accent-text)}.grid{gap:1.25rem;display:grid}.project-list{flex-direction:column;gap:1.5rem;display:flex}.project-entry-extra{display:none}.projects-intro{max-width:none}.project-role{color:var(--accent-text)}.project-tasks{flex-direction:column;gap:.4rem;margin:.75rem 0 1rem;padding:0;list-style:none;display:flex}.project-tasks li{color:var(--text-soft);align-items:flex-start;gap:.6rem;font-size:.92rem;display:flex}.project-tasks svg{width:1.1rem;height:1.1rem;color:var(--accent-text);flex:none;margin-top:.15rem}.project-filters{flex-wrap:wrap;gap:.6rem;display:flex}.project-filter-btn{border:1px solid var(--border-strong);color:var(--text-soft);cursor:pointer;background:0 0;border-radius:999px;padding:.5rem 1rem;font-size:.88rem;font-weight:550;transition:border-color .2s,color .2s,background .2s}.project-filter-btn:hover{border-color:var(--accent);color:var(--accent-text)}.project-filter-btn.is-active{background:var(--accent);border-color:var(--accent);color:#fff}.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}@media (width<=900px){.grid-3,.grid-4{grid-template-columns:repeat(2,1fr)}}@media (width<=600px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}}.card{background:var(--bg-card);border:1px solid var(--border);box-shadow:var(--shadow-card);border-radius:14px;padding:1.5rem;transition:box-shadow .25s,border-color .25s}.card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-card-hover)}a.card-link{color:inherit;transition:transform .25s,box-shadow .25s,border-color .25s;display:block}a.card-link:hover{border-color:var(--accent);box-shadow:var(--shadow-card-hover);text-decoration:none;transform:translateY(-4px)}a.card-link h3{color:var(--accent-text)}.card h3{margin-bottom:.5rem}.card p:last-child{margin-bottom:0}.stat{text-align:left}.glance-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem 2.5rem;margin:0;padding:0;list-style:none;display:grid}.glance-list li{align-items:center;gap:.75rem;font-size:1.05rem;font-weight:600;display:flex}.glance-list svg{width:1.35rem;height:1.35rem;color:var(--accent-text);flex:none}@media (width<=700px){.glance-list{grid-template-columns:1fr}}.stat .value{letter-spacing:-.03em;color:var(--text);font-size:clamp(1.8rem,4vw,2.4rem);font-weight:700;line-height:1.1}.stat .label{color:var(--text-soft);margin-top:.35rem;font-size:.92rem}.tags{flex-wrap:wrap;gap:.4rem;margin:.75rem 0 0;padding:0;list-style:none;display:flex}.tag{color:var(--text-soft);background:var(--bg-soft);border:1px solid var(--border);white-space:nowrap;border-radius:999px;padding:.15rem .65rem;font-size:.78rem;font-weight:550}.timeline{margin:0;padding:0;list-style:none;position:relative}.timeline:before{content:"";background:var(--border-strong);width:2px;position:absolute;top:.4rem;bottom:.4rem;left:.45rem}.timeline li{padding:0 0 2.5rem 2.25rem;position:relative}.timeline li:last-child{padding-bottom:0}.timeline li:before{content:"";background:var(--bg);border:3px solid var(--accent);border-radius:50%;width:1rem;height:1rem;position:absolute;top:.4rem;left:0}.timeline .period{color:var(--accent-text);letter-spacing:.02em;font-size:.85rem;font-weight:600}.timeline h3{margin:.25rem 0 .1rem}.timeline .org{color:var(--text-soft);margin-bottom:.6rem;font-weight:550}.timeline ul{color:var(--text-soft);margin:.5rem 0 0;padding-left:1.1rem}.timeline ul li{padding:0 0 .3rem}.timeline ul li:before{display:none}.jobs{flex-direction:column;display:flex}.job{border-top:1px solid var(--border);grid-template-columns:15rem 1fr;gap:1.25rem 2.75rem;padding-block:2.5rem;display:grid}.jobs .job:first-child{border-top:none;padding-top:.5rem}.job-period{color:var(--accent-text);letter-spacing:.02em;margin:0 0 .6rem;font-size:.85rem;font-weight:600}.job-org{align-items:center;gap:.8rem;display:flex}.job-logo{border:1px solid var(--border);background:#fff;border-radius:10px;flex:none;justify-content:center;align-items:center;width:3rem;height:3rem;display:flex;overflow:hidden}.job-logo img{object-fit:contain;width:100%;height:100%;padding:.35rem}.job-logo-fallback{background:var(--accent-soft);color:var(--accent-text);font-size:1.25rem;font-weight:700}.job-org-name{font-weight:650}.job-role+.job-role{margin-top:2rem}.job-role h3{margin:.1rem 0 .55rem}.job-points{color:var(--text-soft);margin:0;padding-left:1.1rem}.job-points li{padding-bottom:.35rem}@media (width<=760px){.job{grid-template-columns:1fr;gap:1rem}}.timeline .positions{margin:.9rem 0 0;padding:0;list-style:none;position:relative}.timeline .positions:before{content:"";background:var(--border);width:2px;position:absolute;top:.4rem;bottom:.4rem;left:.28rem}.timeline .positions>li{padding:0 0 1.6rem 1.6rem;position:relative}.timeline .positions>li:last-child{padding-bottom:0}.timeline .positions>li:before{content:"";background:var(--bg);border:2px solid var(--accent);border-radius:50%;width:.65rem;height:.65rem;position:absolute;top:.42rem;left:0}.timeline h4{margin:.2rem 0 .1rem;font-size:1.02rem}.prose h2{margin-top:2.2rem;font-size:1.35rem}.prose h3{margin-top:1.6rem}.prose p,.prose li{color:var(--text-soft)}.site-footer{border-top:1px solid var(--border);background:var(--bg-soft);padding-block:2.5rem}.site-footer .inner{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1.5rem;display:flex}.site-footer nav ul{flex-wrap:wrap;gap:.35rem 1.25rem;margin:0;padding:0;list-style:none;display:flex}.site-footer a{color:var(--text-soft);font-size:.9rem}.site-footer a:hover{color:var(--text)}.footer-heart{color:var(--accent-text);font-size:1.05em;font-weight:700}.scroll-top-btn{z-index:40;border:1px solid var(--border-strong);background:var(--bg-card);width:2.8rem;height:2.8rem;color:var(--text-soft);box-shadow:var(--shadow-card);cursor:pointer;opacity:0;pointer-events:none;border-radius:50%;justify-content:center;align-items:center;transition:opacity .2s,transform .2s,color .15s,border-color .15s;display:flex;position:fixed;bottom:1.5rem;right:1.5rem;transform:translateY(.5rem)}.scroll-top-btn.is-visible{opacity:1;pointer-events:auto;transform:translateY(0)}.scroll-top-btn:hover{color:var(--accent-text);border-color:var(--accent)}.scroll-top-btn svg{width:1.3rem;height:1.3rem}@media (width<=600px){.scroll-top-btn{bottom:1rem;right:1rem}}@media (prefers-reduced-motion:reduce){.scroll-top-btn{transition:opacity .2s}}.social-links{flex-wrap:wrap;gap:.6rem;margin:0;padding:0;list-style:none;display:flex}.social-links a{border:1px solid var(--border-strong);width:2.4rem;height:2.4rem;color:var(--text-soft);background:var(--bg-card);border-radius:50%;justify-content:center;align-items:center;transition:color .15s,border-color .15s,transform .15s;display:flex}.social-links a:hover,.social-links a:focus-visible{color:var(--text);border-color:var(--text-soft);transform:translateY(-2px)}.social-links svg{fill:currentColor;width:1.05rem;height:1.05rem}.social-links-expanded{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem 1.5rem;display:grid}@media (width<=500px){.social-links-expanded{grid-template-columns:1fr}}.social-links-expanded a{border-radius:999px;justify-content:flex-start;gap:.75rem;width:100%;height:auto;padding:.5rem 1rem .5rem .5rem}.social-links-expanded svg{flex:none;width:1.3rem;height:1.3rem}.social-links-expanded a span{font-size:.95rem;font-weight:550}.portrait{border:1px solid var(--border);box-shadow:var(--shadow-card);border-radius:18px}.two-col{grid-template-columns:1.4fr 1fr;align-items:start;gap:clamp(2rem,5vw,4rem);display:grid}@media (width<=800px){.two-col{grid-template-columns:1fr}}.ai-role-image{border:1px solid var(--border);box-shadow:var(--shadow-card);aspect-ratio:60/37;border-radius:16px;justify-self:end;width:67%;margin-top:3.25rem;position:relative;overflow:hidden}.ai-role-image img{object-fit:cover;transform-origin:50% 78%;width:100%;height:100%;animation:12s ease-in-out infinite alternate ai-role-zoom;position:absolute;inset:0}@keyframes ai-role-zoom{0%{transform:scale(1)}to{transform:scale(1.2)}}@media (prefers-reduced-motion:reduce){.ai-role-image img{animation:none}}@media (width<=800px){.ai-role-image{justify-self:start;width:100%;margin-top:0}.about-hero-grid{gap:.5rem}}.personal-grid{grid-template-columns:1.4fr 1fr;grid-template-areas:"text img""cta img";align-content:start;gap:clamp(1.5rem,4vw,3rem) clamp(2rem,5vw,4rem);display:grid}.personal-text{grid-area:text}.personal-portrait{grid-area:img;place-self:start center;margin-top:5px}.personal-cta{grid-area:cta;align-self:start;margin:0}@media (width<=800px){.personal-grid{grid-template-columns:1fr;grid-template-areas:"text""img""cta";gap:.5rem}.personal-portrait{justify-self:start;margin-top:0}}.about-hero-portrait{margin-top:42px}@media (width<=800px){.about-hero-portrait{margin-top:0}}.divider{border:0;border-top:1px solid var(--border);margin:2.5rem 0}.reveal{opacity:0;will-change:opacity, transform;transition:opacity .6s,transform .6s cubic-bezier(.22,.61,.36,1);transform:translateY(22px)}.reveal.reveal-left{transform:translate(-28px)}.reveal.reveal-right{transform:translate(28px)}.reveal.in-view{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transition:none;transform:none}html{scroll-behavior:auto}}.typing:after{content:"";background:var(--accent);vertical-align:text-bottom;width:.55ch;height:1em;margin-left:.08ch;animation:.85s step-end infinite caret-blink;display:inline-block}@keyframes caret-blink{50%{opacity:0}}.hero{overflow:hidden}.matrix-rain,.particle-net,.workflow-flow,.chat-bubbles,.code-fragments,.blueprint-grid{opacity:.22;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.workflow-flow,.chat-bubbles,.code-fragments,.blueprint-grid{opacity:.3}:root[data-theme=light] .matrix-rain,:root[data-theme=light] .particle-net{opacity:.34}.matrix-rain{opacity:.27}:root[data-theme=light] .matrix-rain{opacity:.4}:root[data-theme=light] .workflow-flow,:root[data-theme=light] .chat-bubbles,:root[data-theme=light] .code-fragments{opacity:.32}.blueprint-grid{opacity:.42}:root[data-theme=light] .blueprint-grid{opacity:.46}.hero>.container{z-index:1;position:relative}.hero-filmstrip{position:absolute;inset:0;overflow:hidden}.hero-filmstrip .strip{width:max-content;height:100%;animation:140s linear infinite strip-scroll;display:flex}.hero-filmstrip img{filter:grayscale(.55)brightness(.85);opacity:.3;width:auto;height:100%;margin-right:4px}:root[data-theme=light] .hero-filmstrip img{filter:grayscale(.55)brightness(1.05);opacity:.35}.hero-filmstrip:after{content:"";background:linear-gradient(to bottom, color-mix(in srgb, var(--bg) 55%, transparent), color-mix(in srgb, var(--bg) 35%, transparent) 45%, var(--bg));position:absolute;inset:0}@keyframes strip-scroll{0%{transform:translate(0)}to{transform:translate(-50%)}}@media (prefers-reduced-motion:reduce){.hero-filmstrip .strip{animation:none}}.career-path{pointer-events:none;opacity:.32;width:100%;height:100%;position:absolute;inset:0}:root[data-theme=light] .career-path{opacity:.3}.career-path-inner{transform:translateY(50px)}.stations-mobile,.traveler-mobile{display:none}@media (width<=800px){.stations-desktop,.traveler-desktop{display:none}.stations-mobile,.traveler-mobile{display:block}}.career-path .path-line{fill:none;stroke:var(--accent);stroke-width:2px;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1px;animation:1.8s ease-out .2s forwards path-draw}:root[data-theme=light] .career-path .path-line{stroke:var(--accent-text)}@keyframes path-draw{to{stroke-dashoffset:0}}.career-path .station{fill:var(--accent);opacity:0;animation:.4s forwards station-in}:root[data-theme=light] .career-path .station{fill:var(--accent-text)}@keyframes station-in{to{opacity:.8}}.career-path .ping{fill:none;stroke:var(--accent);stroke-width:2px;transform-box:fill-box;transform-origin:50%;opacity:0;animation:32s linear infinite station-ping}:root[data-theme=light] .career-path .ping{stroke:var(--accent-text)}@keyframes station-ping{0%{opacity:.65;transform:scale(.6)}3%{opacity:0;transform:scale(2.4)}to{opacity:0;transform:scale(2.4)}}.career-path .traveler{fill:#fff;stroke:var(--accent);stroke-width:2px}:root[data-theme=light] .career-path .traveler{fill:var(--accent-text);stroke:#fff;stroke-width:1.5px}@media (prefers-reduced-motion:reduce){.career-path .path-line{stroke-dashoffset:0;animation:none}.career-path .station{opacity:.8;animation:none}.career-path .ping,.career-path .traveler{display:none}}.hero-bg{position:absolute;inset:0;overflow:hidden}.hero-bg img{object-fit:cover;opacity:.22;filter:grayscale();width:100%;height:100%;animation:30s ease-in-out infinite alternate ken-burns}:root[data-theme=light] .hero-bg img{opacity:.16}.hero-bg:after{content:"";background:linear-gradient(to bottom, transparent 30%, var(--bg));position:absolute;inset:0}@media (prefers-reduced-motion:reduce){.hero-bg img{animation:none}}.code-panel{box-shadow:var(--shadow-card);background:#0d1117;border:1px solid #232733;border-radius:12px;font-size:.85rem;overflow:hidden}.code-panel-bar{background:#161b22;border-bottom:1px solid #232733;align-items:center;gap:.45rem;padding:.6rem .9rem;display:flex}.code-panel .dot{border-radius:50%;width:.7rem;height:.7rem}.code-panel .dot-r{background:#ff5f57}.code-panel .dot-y{background:#febc2e}.code-panel .dot-g{background:#28c840}.code-panel-title{color:#7c8194;margin-left:.5rem;font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:.78rem}.code-panel-body{color:#c9d1d9;white-space:pre-wrap;word-break:break-word;min-height:12rem;margin:0;padding:1rem 1.1rem 1.25rem;font-family:ui-monospace,Cascadia Code,Consolas,monospace;line-height:1.7}.code-panel .cp-prompt{color:#79c0ff}.code-panel .cp-comment{color:#8b949e}.code-panel .cp-ok{color:#56d364}.code-panel .cp-cursor{vertical-align:text-bottom;background:#79c0ff;width:.6ch;height:1em;animation:.85s step-end infinite caret-blink;display:inline-block}.media-banner{border:1px solid var(--border);box-shadow:var(--shadow-card);aspect-ratio:21/9;border-radius:16px;position:relative;overflow:hidden}.media-banner img,.media-banner video{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.media-banner img{animation:26s ease-in-out infinite alternate ken-burns}@keyframes ken-burns{0%{transform:scale(1)translate(0)}to{transform:scale(1.12)translate(1.5%,-1.5%)}}@media (prefers-reduced-motion:reduce){.media-banner img{animation:none}}.media-banner .media-caption{inset-inline:0;color:#fff;text-shadow:0 1px 8px #000000b3;background:linear-gradient(#0000,#0000008c);margin:0;padding:1.75rem 1.5rem 1rem;font-weight:600;position:absolute;bottom:0}.gallery{grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));gap:1.25rem;margin-top:2rem;display:grid}.gallery figure{border:1px solid var(--border);background:var(--bg-card);box-shadow:var(--shadow-card);border-radius:14px;margin:0;overflow:hidden}.gallery img{aspect-ratio:4/3;object-fit:cover;width:100%;transition:transform .45s}.gallery figure:hover img{transform:scale(1.05)}.gallery figcaption{color:var(--text-soft);padding:.65rem .9rem;font-size:.85rem}.mcp-try-grid{grid-template-columns:1.2fr 1fr}@media (width<=800px){.mcp-try-grid{grid-template-columns:1fr}}.mcp-flow{grid-template-columns:1fr auto 1fr;align-items:center;gap:1.5rem;margin-top:3rem;padding:1.75rem;display:grid}.mcp-flow-item{width:100%;margin:0}.mcp-flow-item img{border:1px solid var(--border);background:var(--bg);border-radius:10px;width:100%;height:auto}.mcp-flow-label{text-align:center;margin:0 0 .6rem;font-size:.85rem}.mcp-flow-divider{background:var(--border-strong);align-self:stretch;width:1px}@media (width<=700px){.mcp-flow{grid-template-columns:1fr;gap:2rem}.mcp-flow-divider{width:100%;height:1px}}.breadcrumb{margin-bottom:1.25rem}.breadcrumb ol{flex-wrap:wrap;align-items:center;gap:.4rem;margin:0;padding:0;font-size:.85rem;list-style:none;display:flex}.breadcrumb li{align-items:center;gap:.4rem;display:flex}.breadcrumb a{color:var(--text-faint)}.breadcrumb a:hover{color:var(--accent-text);text-decoration:none}.breadcrumb [aria-current=page]{color:var(--text-soft);font-weight:600}.breadcrumb-sep{color:var(--border-strong)}.back-link{align-items:center;gap:.4rem;margin-bottom:1.5rem;font-size:.9rem;font-weight:600;display:inline-flex}.detail-list{color:var(--text-soft);padding-left:1.2rem}.detail-list li{padding-bottom:.45rem}.training-list{column-count:2;column-gap:3rem}.training-list li{break-inside:avoid}@media (width<=800px){.training-list{column-count:1}}.detail-link{font-size:.92rem;font-weight:600}.build-placeholder{border-style:dashed;border-color:var(--border-strong);flex-direction:column;align-items:flex-start;display:flex}.build-placeholder-icon{border:1px dashed var(--border-strong);width:2.6rem;height:2.6rem;color:var(--text-faint);border-radius:50%;justify-content:center;align-items:center;margin-bottom:1rem;display:inline-flex}.build-placeholder-icon svg{width:1.1rem;height:1.1rem}.soft-skills .tag{padding:.45rem 1rem;font-size:.95rem}.project-role{letter-spacing:.08em;text-transform:uppercase;color:var(--accent-text);margin:0 0 .75rem;font-size:.72rem;font-weight:650;display:inline-block}.tag-accent{color:var(--accent-text);background:var(--accent-soft);border-color:#0000}.channel-icon{background:var(--accent-soft);width:2.6rem;height:2.6rem;color:var(--accent-text);border-radius:50%;justify-content:center;align-items:center;margin-bottom:.9rem;display:inline-flex}.channel-icon svg{fill:currentColor;width:1.2rem;height:1.2rem}.hobby-icon{background:var(--accent-soft);width:2.9rem;height:2.9rem;color:var(--accent-text);border-radius:50%;justify-content:center;align-items:center;margin-bottom:1rem;display:inline-flex}.hobby-icon svg{width:1.4rem;height:1.4rem;transition:transform .3s}.hobbies-grid .card:hover .hobby-icon svg{transform:scale(1.15)rotate(-8deg)}.gallery figure.lb-clickable{cursor:zoom-in}dialog.lightbox{background:0 0;border:none;width:auto;max-width:min(92vw,70rem);padding:0;overflow:visible}dialog.lightbox::backdrop{backdrop-filter:blur(6px);background:#050609d1}dialog.lightbox figure{flex-direction:column;align-items:center;margin:0;display:flex}dialog.lightbox img{border-radius:12px;width:auto;max-width:min(88vw,68rem);height:auto;max-height:76vh;animation:.25s lb-in;box-shadow:0 24px 80px #0009}@keyframes lb-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}dialog.lightbox figcaption{color:#eceef2;text-align:center;text-shadow:0 1px 6px #000c;margin-top:.9rem;font-size:.95rem}dialog.lightbox .lb-close,dialog.lightbox .lb-prev,dialog.lightbox .lb-next{color:#fff;cursor:pointer;z-index:2;background:#14171eb3;border:1px solid #ffffff40;border-radius:50%;justify-content:center;align-items:center;width:2.8rem;height:2.8rem;font-size:1.6rem;line-height:1;transition:background .15s,transform .15s;display:flex;position:fixed}dialog.lightbox .lb-close:hover,dialog.lightbox .lb-prev:hover,dialog.lightbox .lb-next:hover{background:#282e3ce6;transform:scale(1.08)}dialog.lightbox .lb-close{top:1rem;right:1rem}dialog.lightbox .lb-prev{top:50%;left:1rem;transform:translateY(-50%)}dialog.lightbox .lb-next{top:50%;right:1rem;transform:translateY(-50%)}dialog.lightbox .lb-prev:hover,dialog.lightbox .lb-next:hover{transform:translateY(-50%)scale(1.08)}dialog.lightbox .lb-dots{justify-content:center;gap:.45rem;margin-top:.9rem;display:flex}dialog.lightbox .lb-dot{cursor:pointer;background:#ffffff59;border:none;border-radius:50%;width:.6rem;height:.6rem;padding:0;transition:background .15s,transform .15s}dialog.lightbox .lb-dot.active{background:#fff;transform:scale(1.25)}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.btn:hover{transform:none}}
