@import"https://fonts.googleapis.com/css2?family=Inter:wght@400&display=swap";@import"https://fonts.googleapis.com/css2?family=Geist+Mono:wght@400&display=swap";*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;height:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color-scheme:dark}img,picture,video,canvas,svg{display:block;max-width:100%;height:auto}:root{--canvas: #0a0a0a;--canvas-soft: #1a1c20;--canvas-card: #191919;--canvas-mid: #363a3f;--hairline: #212327;--ink: #ffffff;--ink-hover: #fafaf7;--body: #dadbdf;--body-mid: #7d8187;--primary: #ffffff;--on-primary: #0a0a0a;--accent-sunset: #ff7a17;--accent-sunset-soft: #ffc285;--accent-dusk: #7c3aed;--accent-twilight: #c4b5fd;--accent-breeze: #a0c3ec;--accent-midnight: #0d1726;--border-btn: rgba(255, 255, 255, .25);--border-btn-hover: rgba(255, 255, 255, .6);--font-sans: "Inter", system-ui, -apple-system, sans-serif;--font-mono: "Geist Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, monospace;--radius-sm: 8px;--radius-pill: 9999px;--ease: cubic-bezier(.25, .46, .45, .94);font-family:var(--font-sans);font-weight:400}body{min-height:100vh;margin:0;color:var(--body);background:var(--canvas)}#root{width:100%;min-height:100vh}b,strong{font-weight:400;color:var(--ink)}::selection{background:#ff7a1759;color:var(--ink)}:focus-visible{outline:1px solid var(--border-btn-hover);outline-offset:2px}.app{min-height:100vh;display:flex;flex-direction:column}.app__main{flex:1;width:100%}.container{width:100%;max-width:1200px;margin:0 auto;padding-left:24px;padding-right:24px}.eyebrow{font-family:var(--font-mono);font-size:12px;font-weight:400;line-height:16px;letter-spacing:.12em;text-transform:uppercase;color:var(--body-mid)}.nav{position:sticky;top:0;z-index:40;background:var(--canvas);border-bottom:1px solid var(--hairline)}.nav__inner{position:relative;max-width:1200px;margin:0 auto;padding:12px 24px;display:flex;justify-content:space-between;align-items:center;gap:24px}.nav__logo{font-family:var(--font-mono);font-size:14px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink);text-decoration:none}.logo-accent{color:var(--accent-sunset)}.nav__menu{list-style:none;display:flex;gap:24px}.nav__menu a{color:var(--body-mid);text-decoration:none;font-size:14px;line-height:20px;transition:color .2s var(--ease)}.nav__menu a:hover,.nav__menu a.active{color:var(--ink)}.nav__right{display:flex;align-items:center;gap:16px}.nav__lang{display:inline-flex;gap:2px;border:1px solid var(--border-btn);border-radius:var(--radius-pill);padding:2px}.nav__lang-btn{border:none;background:transparent;color:var(--body-mid);font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;padding:4px 10px;border-radius:var(--radius-pill);cursor:pointer;transition:color .2s var(--ease),background-color .2s var(--ease)}.nav__lang-btn:hover{color:var(--ink)}.nav__lang-btn.is-active{background:var(--primary);color:var(--on-primary)}.nav__toggle{display:none;flex-direction:column;justify-content:center;gap:5px;width:40px;height:40px;padding:0 10px;background:transparent;border:1px solid var(--border-btn);border-radius:var(--radius-pill);cursor:pointer}.nav__toggle-bar{display:block;height:1px;width:100%;background:var(--ink);transition:transform .2s var(--ease)}.nav__toggle.is-open .nav__toggle-bar:first-child{transform:translateY(3px) rotate(45deg)}.nav__toggle.is-open .nav__toggle-bar:last-child{transform:translateY(-3px) rotate(-45deg)}@media (max-width: 768px){.nav__toggle{display:inline-flex}.nav__menu{display:none;position:absolute;top:100%;left:-24px;right:-24px;flex-direction:column;gap:2px;background:var(--canvas);border-bottom:1px solid var(--hairline);padding:8px 24px 16px}.nav__menu.is-open{display:flex}.nav__menu a{display:block;padding:12px 0;font-size:16px;line-height:24px}}.btn{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;border-radius:var(--radius-pill);font-family:var(--font-sans);font-size:14px;font-weight:400;line-height:20px;text-decoration:none;border:1px solid transparent;cursor:pointer;transition:background-color .2s var(--ease),color .2s var(--ease),border-color .2s var(--ease)}.btn_primary{background:var(--primary);color:var(--on-primary);border-color:var(--primary)}.btn_primary:hover{background:var(--ink-hover);border-color:var(--ink-hover)}.btn_secondary{background:#0000;color:var(--ink);border-color:var(--border-btn)}.btn_secondary:hover{border-color:var(--border-btn-hover);background:#ffffff0f}.btn_sm{padding:4px 12px}@media (max-width: 525px){.home__actions .btn{width:100%;justify-content:center}}.home{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:48px;align-items:center;padding:96px 0 88px}.home__content{display:flex;flex-direction:column;gap:20px;min-width:0}.home__eyebrow{color:var(--ink)}.home__title{font-size:clamp(48px,8vw,96px);font-weight:400;line-height:1.02;letter-spacing:-.025em;color:var(--ink)}.home__title span{display:block}.home__subtitle{font-size:18px;line-height:28px;color:var(--body);max-width:560px}.home__subtitle a{color:var(--ink);text-decoration:underline;text-decoration-color:#ffffff4d;text-underline-offset:3px;transition:text-decoration-color .2s var(--ease)}.home__subtitle a:hover{text-decoration-color:var(--ink)}.home__meta{display:flex;align-items:center;gap:12px;flex-wrap:wrap;font-family:var(--font-mono);font-size:12px;line-height:16px;letter-spacing:.12em;text-transform:uppercase;color:var(--body-mid)}.home__meta .dot{color:var(--accent-sunset)}.home__actions{display:flex;gap:12px;margin-top:12px;flex-wrap:wrap}@media (max-width: 900px){.home{grid-template-columns:1fr;padding:64px 0}}@media (max-width: 525px){.home__actions{flex-direction:column;width:100%}}.profile{display:flex;flex-direction:column;align-items:center;gap:20px}.profile__img{width:176px;height:176px;border-radius:var(--radius-pill);object-fit:cover;border:1px solid var(--border-btn);transition:border-color .25s var(--ease)}.profile__img:hover{border-color:var(--border-btn-hover)}.profile__links{display:flex;gap:12px}.profile__links a{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--radius-pill);background:#0000;border:1px solid var(--border-btn);color:var(--body-mid);font-size:16px;transition:color .2s var(--ease),border-color .2s var(--ease)}.profile__links a:hover{color:var(--ink);border-color:var(--border-btn-hover)}@media (max-width: 900px){.profile__img{width:144px;height:144px}}.page-header{display:flex;flex-direction:column;gap:12px;padding:64px 0 40px}.page-header__title{font-size:clamp(32px,5vw,48px);font-weight:400;line-height:1.05;letter-spacing:-.025em;color:var(--ink)}.page-header__lead{font-size:18px;line-height:28px;color:var(--body);max-width:60ch}.about{display:grid;grid-template-columns:280px minmax(0,1fr);gap:48px;align-items:start;padding:64px 0 88px}.about__sidebar{display:flex;flex-direction:column;gap:24px;position:sticky;top:72px}.about__card{background:var(--canvas-card);border:1px solid var(--hairline);border-radius:var(--radius-sm);padding:24px;display:flex;flex-direction:column;gap:24px}.about__divider{width:100%;height:1px;background:var(--hairline);border:none}.about__bio>h4,.about__education>h4,.about__certs>h4,.about__skills>h4,.tech-section h4{font-family:var(--font-mono);font-size:12px;font-weight:400;line-height:16px;letter-spacing:.12em;text-transform:uppercase;color:var(--body-mid);margin-bottom:12px}.about__bio p{font-size:14px;line-height:22px;color:var(--body);margin-bottom:12px}.about__bio p:last-child{margin-bottom:0}.about__education,.about__certs,.about__skills{width:100%}.education-item,.cert-item{display:flex;flex-direction:column;gap:2px}.education-degree,.cert-name{font-size:14px;line-height:20px;color:var(--ink)}.education-school,.cert-issuer{font-size:12px;line-height:16px;color:var(--body-mid)}.tech-tags{display:flex;flex-wrap:wrap;gap:8px}.tech-tag{padding:4px 12px;background:#0000;border:1px solid var(--hairline);border-radius:var(--radius-pill);font-family:var(--font-mono);font-size:12px;line-height:16px;letter-spacing:.04em;color:var(--body-mid);transition:color .2s var(--ease),border-color .2s var(--ease)}.tech-tag:hover{color:var(--ink);border-color:var(--border-btn)}.skills-sidebar{display:flex;flex-direction:column;gap:12px}.skill-group{display:flex;flex-direction:column;gap:2px}.skill-label{font-family:var(--font-mono);font-size:11px;line-height:16px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink)}.skill-items{font-size:13px;line-height:20px;color:var(--body-mid)}.about__main{min-width:0}.experience{display:flex;flex-direction:column;gap:24px}.experience>h2{font-size:clamp(28px,4vw,32px);font-weight:400;line-height:36px;letter-spacing:-.02em;color:var(--ink)}@media (max-width: 960px){.about{grid-template-columns:1fr;gap:40px;padding:56px 0 72px}.about__sidebar{position:static}}.timeline{display:flex;flex-direction:column;position:relative;padding-left:24px}.timeline:before{content:"";position:absolute;left:3px;top:28px;bottom:28px;width:1px;background:var(--hairline)}.timeline__item{position:relative;padding:20px 0;border-bottom:1px solid var(--hairline)}.timeline__item:first-child{padding-top:4px}.timeline__item:last-child{border-bottom:none;padding-bottom:0}.timeline__item:before{content:"";position:absolute;left:-24px;top:28px;width:7px;height:7px;border-radius:var(--radius-pill);background:var(--accent-sunset)}.timeline__date{font-family:var(--font-mono);font-size:12px;line-height:16px;letter-spacing:.12em;text-transform:uppercase;color:var(--body-mid);margin-bottom:10px}.timeline__content h3{font-size:20px;font-weight:400;line-height:28px;letter-spacing:-.01em;color:var(--ink);margin-bottom:2px}.timeline__content h4{font-size:14px;font-weight:400;line-height:20px;color:var(--body-mid);margin-bottom:10px}.timeline__content p{font-size:14px;line-height:22px;color:var(--body)}.projects{display:grid;grid-template-columns:repeat(auto-fill,minmax(440px,1fr));gap:24px;padding-bottom:88px}.project-card{background:var(--canvas-card);border:1px solid var(--hairline);border-radius:var(--radius-sm);overflow:hidden;display:flex;flex-direction:column;transition:border-color .25s var(--ease)}.project-card:hover{border-color:var(--border-btn)}.project-card__body{padding:14px 16px 16px;display:flex;flex-direction:column;gap:6px;flex:1}.project-card__meta{margin-bottom:2px}.project-card__title{font-size:17px;font-weight:400;line-height:24px;letter-spacing:-.01em;color:var(--ink)}.project-card__desc{font-size:13px;line-height:19px;color:var(--body-mid);flex:1;margin-bottom:6px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.project-card__link{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;padding:3px 10px;border:1px solid var(--border-btn);border-radius:var(--radius-pill);color:var(--ink);font-size:13px;line-height:18px;text-decoration:none;transition:border-color .2s var(--ease)}.project-card__link:hover{border-color:var(--border-btn-hover)}@media (max-width: 525px){.projects{grid-template-columns:1fr}}.code-block{position:relative;background:var(--canvas-card);border:1px solid var(--hairline);border-radius:var(--radius-sm);margin:12px 0;transition:border-color .2s var(--ease)}.code-block:hover{border-color:var(--border-btn)}.code-block__label{display:block;font-family:var(--font-mono);font-size:12px;line-height:16px;letter-spacing:.12em;color:var(--body-mid);padding:10px 64px 10px 16px;border-bottom:1px solid var(--hairline)}.code-block__copy{position:absolute;top:8px;right:8px;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;background:var(--canvas-soft);border:1px solid var(--hairline);border-radius:var(--radius-pill);color:var(--body-mid);font-size:13px;cursor:pointer;opacity:0;transition:opacity .2s var(--ease),color .2s var(--ease),border-color .2s var(--ease)}.code-block:hover .code-block__copy,.code-block__copy:focus-visible{opacity:1}.code-block__copy:hover{color:var(--ink);border-color:var(--border-btn)}@media (hover: none){.code-block__copy{opacity:1}}.code-block__pre{margin:0;padding:14px 16px;overflow-x:auto;font-family:var(--font-mono);font-size:13px;line-height:1.7;color:var(--body)}.code-block__pre code{display:block}.code-block__line{display:block;white-space:pre}.code-block__prompt{color:var(--accent-sunset);-webkit-user-select:none;user-select:none;margin-right:10px}.code-block__prompt[data-ghost=true]{visibility:hidden}.code-block__comment{color:var(--body-mid)}.toc{display:flex;flex-direction:column;gap:12px}.toc__heading{font-family:var(--font-mono);font-size:12px;line-height:16px;letter-spacing:.12em;text-transform:uppercase;color:var(--body-mid)}.toc__list{list-style:none;display:flex;flex-direction:column;gap:2px;border-left:1px solid var(--hairline)}.toc__link{display:block;padding:5px 0 5px 14px;margin-left:-1px;border-left:1px solid transparent;font-size:13px;line-height:20px;color:var(--body-mid);text-decoration:none;transition:color .2s var(--ease),border-color .2s var(--ease)}.toc__link:hover{color:var(--ink)}.toc__link.is-active{color:var(--ink);border-left-color:var(--ink)}.docs-layout{display:grid;grid-template-columns:minmax(0,1fr) 185px;gap:64px;align-items:start;padding:64px 0 88px}.docs__aside{position:sticky;top:72px}.docs{display:flex;flex-direction:column;gap:56px;min-width:0}.docs__toc-mobile{display:none}.docs__hero{display:flex;flex-direction:column;gap:16px}.docs__eyebrow{font-family:var(--font-mono);font-size:12px;line-height:16px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink)}.docs__title{font-size:clamp(40px,6vw,72px);font-weight:400;line-height:1.02;letter-spacing:-.025em;color:var(--ink)}.docs__lead{font-size:18px;line-height:28px;color:var(--body);max-width:60ch}.docs__hero-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:8px}.docs__badge{font-family:var(--font-mono);font-size:12px;line-height:16px;letter-spacing:.08em;color:var(--body-mid);border:1px solid var(--hairline);border-radius:var(--radius-pill);padding:7px 14px}.docs__section{display:flex;flex-direction:column;gap:16px;scroll-margin-top:80px}.docs__section-title{font-size:32px;font-weight:400;line-height:36px;letter-spacing:-.02em;color:var(--ink);padding-bottom:16px;border-bottom:1px solid var(--hairline)}.docs__subtitle{font-size:18px;font-weight:400;line-height:28px;color:var(--ink);margin-top:16px}.docs__subtitle:first-of-type{margin-top:4px}.docs__section-lead,.docs p{font-size:15px;line-height:26px;color:var(--body);max-width:68ch}.docs p b{color:var(--ink)}.docs code{font-family:var(--font-mono);font-size:.86em;background:var(--canvas-soft);border:1px solid var(--hairline);border-radius:4px;padding:.1em .4em;color:var(--accent-sunset-soft);word-break:break-word}.docs kbd{font-family:var(--font-mono);font-size:.8em;background:var(--canvas-soft);border:1px solid var(--border-btn);border-radius:4px;padding:.1em .45em;color:var(--ink)}.docs-note{border-left:1px solid var(--body-mid);padding-left:16px;font-size:14px!important;line-height:22px;color:var(--body-mid)!important;margin:4px 0}.docs-note--warning{border-left-color:var(--accent-sunset)}.docs-note b{color:var(--ink)}.docs-list{display:flex;flex-direction:column;gap:12px;padding-left:20px;list-style:none;max-width:68ch}.docs-list li{position:relative;font-size:15px;line-height:25px;color:var(--body)}.docs-list li:before{content:"—";position:absolute;left:-20px;color:var(--body-mid)}.docs-list li b{color:var(--ink)}.docs-table{display:flex;flex-direction:column;border:1px solid var(--hairline);border-radius:var(--radius-sm);overflow:hidden}.docs-table__row{display:grid;grid-template-columns:.8fr .9fr 1.9fr;gap:16px;padding:12px 16px;font-size:14px;line-height:22px;color:var(--body);border-bottom:1px solid var(--hairline)}.docs-table__row:last-child{border-bottom:none}.docs-table__row--head{background:var(--canvas-soft);font-family:var(--font-mono);font-size:12px;line-height:16px;text-transform:uppercase;letter-spacing:.12em;color:var(--body-mid)}.docs-table__key{color:var(--ink)}.docs-tabs{display:inline-flex;gap:4px;background:#0000;border:1px solid var(--border-btn);border-radius:var(--radius-pill);padding:4px;align-self:flex-start;max-width:100%;overflow-x:auto}.docs-tabs__tab{border:none;background:transparent;color:var(--body-mid);font-family:var(--font-sans);font-size:14px;font-weight:400;line-height:20px;padding:6px 16px;border-radius:var(--radius-pill);cursor:pointer;white-space:nowrap;transition:color .2s var(--ease),background-color .2s var(--ease)}.docs-tabs__tab:hover{color:var(--ink)}.docs-tabs__tab.is-active{background:var(--primary);color:var(--on-primary)}.docs-tabs__panel{display:flex;flex-direction:column;gap:12px;padding-top:4px}.docs-faq{display:flex;flex-direction:column;border-top:1px solid var(--hairline)}.docs-faq__item{border-bottom:1px solid var(--hairline)}.docs-faq__item summary{cursor:pointer;list-style:none;padding:18px 0;font-size:15px;font-weight:400;line-height:24px;color:var(--ink);display:flex;align-items:center;gap:14px;transition:color .2s var(--ease)}.docs-faq__item summary:hover{color:var(--body)}.docs-faq__item summary::-webkit-details-marker{display:none}.docs-faq__item summary:before{content:"+";font-family:var(--font-mono);color:var(--body-mid);font-size:16px;line-height:1;flex-shrink:0}.docs-faq__item[open] summary:before{content:"−";color:var(--accent-sunset)}.docs-faq__item>*:last-child{margin-bottom:20px}@media (max-width: 900px){.docs-layout{grid-template-columns:minmax(0,1fr);gap:0}.docs__aside{display:none}.docs__toc-mobile{display:block;border:1px solid var(--hairline);border-radius:var(--radius-sm);padding:16px}.docs__toc-mobile summary{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:8px;font-family:var(--font-mono);font-size:12px;text-transform:uppercase;letter-spacing:.12em;color:var(--ink)}.docs__toc-mobile summary:after{content:"▾";transition:transform .2s var(--ease)}.docs__toc-mobile[open] summary:after{transform:rotate(180deg)}.docs__toc-mobile summary::-webkit-details-marker{display:none}.docs__toc-mobile[open] summary{margin-bottom:12px}.docs__toc-mobile .toc__heading{display:none}}@media (max-width: 600px){.docs{gap:44px}.docs__section-title{font-size:26px;line-height:32px}.docs-table__row{grid-template-columns:1fr;gap:2px}.docs-table__row--head{display:none}.code-block__pre{font-size:12px}}.site-footer{border-top:1px solid var(--hairline);background:var(--canvas)}.site-footer__inner{max-width:1200px;margin:0 auto;padding:48px 24px;display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap}.site-footer__mark{font-family:var(--font-mono);font-size:14px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink)}.site-footer__copy{font-size:14px;line-height:20px;color:var(--body-mid)}.site-footer__links{display:flex;gap:20px}.site-footer__links a{font-family:var(--font-mono);font-size:12px;line-height:16px;letter-spacing:.12em;text-transform:uppercase;color:var(--body-mid);text-decoration:none;transition:color .2s var(--ease)}.site-footer__links a:hover{color:var(--ink)}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--canvas)}::-webkit-scrollbar-thumb{background:var(--canvas-mid);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--body-mid)}
