:root{--bg: #0e0e0f;--bg-2: #151517;--line: #2b2b2e;--line-soft: #1e1e20;--fg: #f2f2f0;--fg-dim: #a3a3a6;--fg-mute: #77777a;--white: #ffffff;--accent: #7c5cff;--accent-2: #22d3ee;--accent-3: #ff6b8b;--accent-soft: rgba(124, 92, 255, .16);--nav-bg: rgba(14, 14, 15, .86);--dot: rgba(255, 255, 255, .38);--shadow: 0 30px 60px -24px rgba(0, 0, 0, .75);--on-accent: #ffffff;--ff-head: "Nunito", system-ui, sans-serif;--ff-body: "Nunito", system-ui, sans-serif;--ff-mono: "Nunito", system-ui, sans-serif;color-scheme:dark;box-sizing:border-box}:root[data-theme=light]{--bg: #f6f7f9;--bg-2: #ffffff;--line: #d9dce3;--line-soft: #e6e8ee;--fg: #16171b;--fg-dim: #4b4f5b;--fg-mute: #7b808d;--white: #16171b;--accent: #6a4bf5;--accent-2: #0a86a6;--accent-3: #d93a63;--accent-soft: rgba(106, 75, 245, .1);--nav-bg: rgba(246, 247, 249, .88);--dot: rgba(22, 23, 27, .3);--shadow: 0 28px 50px -26px rgba(30, 30, 60, .35);color-scheme:light}*,*:before,*:after{box-sizing:inherit;margin:0;padding:0}html{scroll-behavior:smooth;scroll-padding-top:72px}body{background:var(--bg);color:var(--fg);font-family:var(--ff-body);line-height:1.5;-webkit-font-smoothing:antialiased;overflow-x:hidden;transition:background .3s,color .3s}a{color:inherit}img{max-width:100%;display:block}::selection{background:var(--accent);color:#fff}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.wrap{max-width:920px;margin:0 auto;padding:0 28px}.progress{position:fixed;top:0;left:0;right:0;height:3px;background:var(--accent);transform:scaleX(0);transform-origin:left;z-index:40;pointer-events:none}.reveal{opacity:0;transform:translateY(14px);transition:opacity .6s ease,transform .6s cubic-bezier(.2,.8,.2,1)}.reveal--in{opacity:1;transform:none}.nav{position:sticky;top:0;z-index:30;background:var(--nav-bg);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--line-soft)}.nav__row{display:flex;align-items:center;justify-content:space-between;padding:14px 28px;max-width:920px;margin:0 auto}.nav__mark{font-weight:800;letter-spacing:-.02em;font-size:19px;text-decoration:none}.nav__mark i{color:var(--accent);font-style:normal}.nav__links{display:flex;align-items:center;gap:24px;list-style:none}.nav__link{position:relative;font-size:14px;font-weight:600;color:var(--fg-dim);text-decoration:none;padding:6px 0;transition:color .2s}.nav__link:after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;border-radius:2px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .25s ease}.nav__link:hover,.nav__link--active{color:var(--fg)}.nav__link--active:after,.nav__link:hover:after{transform:scaleX(1)}.nav__tools{display:flex;align-items:center;gap:10px}.nav__toggle{display:none;background:none;border:1px solid var(--line);color:var(--fg);width:38px;height:38px;border-radius:8px;font-size:18px;cursor:pointer}.nav__lang{display:flex;border:1px solid var(--line);border-radius:20px;padding:3px;gap:2px}.nav__lang-btn{border:none;background:none;color:var(--fg-mute);font-family:var(--ff-body);font-weight:700;font-size:11px;padding:5px 10px;border-radius:16px;cursor:pointer;transition:.2s}.nav__lang-btn:hover{color:var(--fg)}.nav__lang-btn--active,.nav__lang-btn--active:hover{background:var(--accent);color:#fff}.nav__theme{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;border:1px solid var(--line);background:none;color:var(--fg-dim);cursor:pointer;transition:color .2s,border-color .2s,transform .3s}.nav__theme:hover{color:var(--accent);border-color:var(--accent);transform:rotate(18deg)}.hero{--mx: 78%;--my: 40%;position:relative;overflow:hidden;padding:88px 0 80px;border-bottom:1px solid var(--line-soft)}.hero:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:radial-gradient(var(--dot) 1px,transparent 1.6px);background-size:24px 24px;-webkit-mask-image:radial-gradient(240px circle at var(--mx) var(--my),#000,transparent);mask-image:radial-gradient(240px circle at var(--mx) var(--my),#000,transparent);opacity:.55;pointer-events:none}.hero>.wrap{position:relative}.hero__row{display:flex;align-items:center;justify-content:space-between;gap:56px}.hero__main{flex:1;min-width:0}.hero__role{display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:var(--fg-mute);margin-bottom:20px}.hero__role:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--accent-2)}.hero__title{font-size:clamp(36px,5.6vw,62px);font-weight:800;letter-spacing:-.03em;line-height:1.07;max-width:640px}.hero__title em{font-style:normal;color:var(--accent)}.hero__lede{margin-top:24px;max-width:520px;font-size:17px;color:var(--fg-dim);line-height:1.65}.hero__meta{display:flex;gap:36px;margin-top:40px;flex-wrap:wrap}.hero__stat b{display:block;font-size:30px;font-weight:800;line-height:1.1;color:var(--fg);font-variant-numeric:tabular-nums}.hero__stat span{display:block;margin-top:2px;max-width:130px;font-size:13px;color:var(--fg-mute);line-height:1.35}.hero__photo{--rx: 0deg;--ry: 0deg;--gx: 50%;--gy: 30%;position:relative;flex-shrink:0;width:340px;animation:photo-in .8s cubic-bezier(.2,.8,.2,1) both}.hero__frame{position:relative;aspect-ratio:4 / 5;border-radius:22px;overflow:hidden;background:var(--bg-2);border:1px solid var(--line);box-shadow:var(--shadow);transform:perspective(900px) rotateX(var(--rx)) rotateY(var(--ry));transition:transform .25s ease-out,border-color .25s}.hero__photo:hover .hero__frame{border-color:var(--accent)}.hero__frame img{width:100%;height:100%;object-fit:cover;object-position:50% 20%;transform:scale(1.02);transition:transform .6s cubic-bezier(.2,.8,.2,1)}.hero__photo:hover .hero__frame img{transform:scale(1.07)}.hero__glare{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(260px circle at var(--gx) var(--gy),rgba(255,255,255,.2),transparent 65%);opacity:0;transition:opacity .3s;pointer-events:none}.hero__photo:hover .hero__glare{opacity:1}.hero__badge{position:absolute;left:14px;bottom:14px;display:inline-flex;align-items:center;gap:8px;padding:8px 13px;border-radius:999px;font-size:13px;font-weight:700;color:#fff;background:#0e0e0fb8;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.14)}.hero__badge i{width:8px;height:8px;border-radius:50%;background:#3ddc84;box-shadow:0 0 #3ddc8499;animation:pulse 2.2s ease-out infinite}@keyframes pulse{70%{box-shadow:0 0 0 8px #3ddc8400}to{box-shadow:0 0 #3ddc8400}}@keyframes photo-in{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}section{padding:70px 0;border-bottom:1px solid var(--line-soft)}.head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:34px;gap:20px}.head__title{font-size:28px;font-weight:800;letter-spacing:-.02em}.head__count{font-size:13px;font-weight:600;color:var(--fg-mute)}.about__text{max-width:680px;font-size:17px;color:var(--fg-dim);line-height:1.75}.about__text strong{color:var(--fg);font-weight:700}.skills__tabs{display:flex;gap:8px;margin-bottom:28px;flex-wrap:wrap}.skills__tab{font-family:var(--ff-body);font-size:14px;font-weight:600;padding:9px 16px;border-radius:20px;border:1px solid var(--line);background:transparent;color:var(--fg-dim);cursor:pointer;transition:all .18s}.skills__tab:hover{border-color:var(--accent);color:var(--fg)}.skills__tab--active,.skills__tab--active:hover{border-color:var(--accent);color:#fff;background:var(--accent)}.skills__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.skill,.project{position:relative;overflow:hidden;background:var(--bg);border:1px solid var(--line);transition:border-color .2s,transform .2s,background .3s}.skill:after,.project:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(220px circle at var(--mx, 50%) var(--my, 50%),var(--accent-soft),transparent 70%);opacity:0;transition:opacity .25s;pointer-events:none}.skill:hover:after,.project:hover:after{opacity:1}.skill{border-radius:12px;padding:18px 20px;cursor:default}.skill:hover{border-color:var(--accent);transform:translateY(-2px)}.skill__top{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.skill__name{font-weight:700;font-size:16px}.skill__level{font-size:13px;font-weight:600;color:var(--fg-mute)}.skill__bar{height:4px;background:var(--line);border-radius:4px;overflow:hidden}.skill__bar i{display:block;height:100%;background:var(--accent);border-radius:4px;transform:scaleX(0);transform-origin:left;transition:transform .9s cubic-bezier(.2,.8,.2,1)}.skill--visible .skill__bar i{transform:scaleX(1)}.timeline{position:relative;padding-left:28px}.timeline:before{content:"";position:absolute;left:5px;top:6px;bottom:6px;width:1px;background:var(--line)}.t-item{position:relative;margin-bottom:8px;border:1px solid transparent;border-radius:12px;transition:background .2s}.t-item:hover{background:var(--accent-soft)}.t-item:before{content:"";position:absolute;left:-27px;top:25px;width:9px;height:9px;border-radius:50%;background:var(--bg);border:1px solid var(--fg-mute);transition:.2s}.t-item--open:before,.t-item:hover:before{background:var(--accent);border-color:var(--accent)}.t-item__btn{width:100%;text-align:left;background:none;border:none;color:inherit;cursor:pointer;padding:18px 10px;display:flex;justify-content:space-between;align-items:flex-start;gap:16px;font-family:var(--ff-body)}.t-item__role{font-size:18px;font-weight:700}.t-item__org{font-size:15px;color:var(--fg-mute);margin-top:4px}.t-item__period{font-size:13px;font-weight:600;color:var(--fg-mute);white-space:nowrap;padding-top:4px}.t-item__panel{max-height:0;overflow:hidden;transition:max-height .4s ease}.t-item--open .t-item__panel{max-height:420px}.t-item__body{padding:0 10px 22px;font-size:16px;color:var(--fg-dim);line-height:1.7;max-width:640px}.t-item__tags{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.t-item__tag,.project__tag{font-size:12px;font-weight:700;border:1px solid var(--line);border-radius:6px;padding:3px 9px;color:var(--fg-mute);transition:.2s}.t-item__tag:hover,.project__tag:hover{border-color:var(--accent);color:var(--accent)}.projects__note{font-size:13px;font-weight:600;color:var(--accent-3);background:#ff6b8b1a;border:1px dashed rgba(255,107,139,.4);border-radius:10px;padding:10px 14px;margin-bottom:26px}.projects__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.projects__grid>.reveal{display:flex}.project{flex:1;border-radius:14px;padding:22px}.project:hover{border-color:var(--accent);transform:translateY(-4px)}.project__name{font-size:18px;font-weight:800}.project__role{font-size:14px;font-weight:600;color:var(--accent-2);margin-top:4px}.project__period{font-size:12px;font-weight:600;color:var(--fg-mute);margin-top:10px}.project__body{font-size:15px;color:var(--fg-dim);line-height:1.6;margin-top:12px}.project__tags{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}.langs{display:flex;flex-direction:column;gap:22px;max-width:480px}.lang__top{display:flex;justify-content:space-between;font-size:16px;margin-bottom:9px}.lang__name{font-weight:700}.lang__level{color:var(--fg-mute);font-weight:600;font-size:13px}.lang__bar{height:5px;background:var(--line);border-radius:4px;overflow:hidden}.lang__bar i{display:block;height:100%;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform 1s cubic-bezier(.2,.8,.2,1)}.lang--visible .lang__bar i{transform:scaleX(1)}footer{padding:44px 0 60px;border-bottom:none}.foot__row{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:14px}.foot__text{color:var(--fg-mute);font-size:14px}.foot__top{border:1px solid var(--line);background:none;color:var(--fg-dim);font-family:var(--ff-body);font-weight:600;font-size:14px;padding:9px 18px;border-radius:20px;cursor:pointer;transition:.2s}.foot__top:hover{border-color:var(--accent);color:var(--accent);transform:translateY(-2px)}@media (max-width: 900px) and (min-width: 641px){.projects__grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 860px) and (min-width: 641px){.hero__photo{width:270px}.hero__row{gap:36px}}@media (max-width: 640px){.nav__links{position:fixed;inset:64px 0 auto 0;background:var(--bg);flex-direction:column;align-items:flex-start;gap:14px;padding:18px 28px;border-bottom:1px solid var(--line-soft);transform:translateY(-8px);opacity:0;pointer-events:none;transition:.2s}.nav__links--open{opacity:1;transform:translateY(0);pointer-events:auto}.nav__toggle{display:block}.hero{padding:48px 0}.hero__row{flex-direction:column-reverse;align-items:flex-start;gap:30px}.hero__photo{width:min(82%,320px)}.hero__meta{gap:26px}.skills__grid,.projects__grid{grid-template-columns:1fr}.t-item__btn{flex-direction:column;gap:4px}}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}.hero__photo,.hero__badge i{animation:none}.hero__frame,.hero__frame img,.skill__bar i,.lang__bar i{transition:none}}
