*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #07071A;--surface: #0D0D24;--text: #EEEEF5;--text-muted: #6666AA;--text-dim: #33334F;--border: rgba(255, 255, 255, .06);--orange: #FF4500;--cyan: #00CFFF;--font-display: "Barlow Condensed", sans-serif;--font-body: "Barlow", sans-serif;--font-mono: "JetBrains Mono", monospace}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{background:var(--bg);color:var(--text);font-family:var(--font-body);font-weight:400;min-height:100vh;overflow-x:hidden}.bg-dots,.bg-glows{position:fixed;inset:0;pointer-events:none;z-index:0}.bg-dots{background-image:radial-gradient(circle,rgba(255,255,255,.022) 1px,transparent 1px);background-size:36px 36px}.bg-glows{background:radial-gradient(ellipse 70% 55% at 12% 12%,rgba(255,69,0,.07) 0%,transparent 65%),radial-gradient(ellipse 60% 45% at 88% 88%,rgba(0,207,255,.05) 0%,transparent 65%)}@keyframes fadeSlideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{to{opacity:1}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}@keyframes lineGrow{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes cardIn{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes fillSeg{0%{opacity:0;transform:scaleX(0)}to{opacity:1;transform:scaleX(1)}}.skill-card{background:var(--surface);border:1px solid rgba(255,255,255,.06);clip-path:polygon(0 0,calc(100% - 22px) 0,100% 22px,100% 100%,0 100%);padding:28px 28px 24px;position:relative;opacity:0;transform:translateY(30px);transition:transform .35s cubic-bezier(.4,0,.2,1),box-shadow .35s ease,border-color .35s ease}.skill-card.animate{animation:cardIn .6s calc(var(--delay, 0ms)) cubic-bezier(.4,0,.2,1) forwards}.skill-card:hover{transform:translateY(-6px);border-color:#ffffff21;box-shadow:0 28px 72px var(--glow, rgba(0,0,0,.3))}.card-bar{position:absolute;top:0;left:0;right:22px;height:2px;background:var(--accent);opacity:.65}.card-tab{display:inline-flex;align-items:center;gap:6px;font-family:JetBrains Mono,monospace;font-size:10px;letter-spacing:.08em;color:var(--accent);background:#ffffff08;border:1px solid rgba(255,255,255,.06);padding:4px 10px;border-radius:2px;margin-bottom:20px;opacity:.75}.tab-dot{width:5px;height:5px;background:var(--accent);border-radius:50%}.card-head{display:flex;align-items:flex-start;gap:14px;margin-bottom:14px}.card-icon{font-size:30px;line-height:1;flex-shrink:0;margin-top:2px}.card-info{flex:1;min-width:0}.card-name{font-family:Barlow Condensed,sans-serif;font-weight:700;font-size:22px;letter-spacing:-.01em;color:#eeeef5;margin-bottom:6px;line-height:1.1}.card-badge{display:inline-block;font-family:JetBrains Mono,monospace;font-size:9px;letter-spacing:.2em;color:var(--accent);border-left:2px solid var(--accent);padding:3px 8px;background:#ffffff08;border-top:1px solid rgba(255,255,255,.06);border-right:1px solid rgba(255,255,255,.06);border-bottom:1px solid rgba(255,255,255,.06);border-radius:0 2px 2px 0}.card-years{text-align:right;flex-shrink:0}.years-val{display:block;font-family:Barlow Condensed,sans-serif;font-weight:800;font-size:36px;line-height:1;color:var(--accent);letter-spacing:-.02em}.years-txt{display:block;font-family:JetBrains Mono,monospace;font-size:9px;letter-spacing:.15em;color:#66a;text-transform:uppercase;margin-top:2px}.card-desc{font-size:13px;color:#99c;line-height:1.65;margin-bottom:24px;font-weight:400}.card-meter{margin-bottom:22px}.meter-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:9px}.meter-lbl{font-family:JetBrains Mono,monospace;font-size:9px;letter-spacing:.2em;color:#33334f;text-transform:uppercase}.meter-pct{font-family:JetBrains Mono,monospace;font-size:11px;color:var(--accent);font-weight:500}.meter-track{display:flex;gap:3px}.seg{flex:1;height:6px;border-radius:1px}.seg-off{background:#ffffff0a;border:1px solid rgba(255,255,255,.05)}.seg-on{background:var(--accent);opacity:0;transform:scaleX(0);transform-origin:left}.skill-card.animate .seg-on{animation:fillSeg .25s cubic-bezier(.4,0,.2,1) forwards;animation-delay:calc(var(--delay, 0ms) + .38s + var(--si) * 55ms)}.card-techs{display:flex;flex-wrap:wrap;gap:6px}.chip{font-family:JetBrains Mono,monospace;font-size:10px;padding:4px 9px;background:#ffffff0d;border:1px solid rgba(255,255,255,.12);border-radius:2px;color:#88b;transition:color .2s,border-color .2s}.skill-card:hover .chip{color:#cce;border-color:#fff3}.proj-card{background:var(--surface);border:1px solid rgba(255,255,255,.06);clip-path:polygon(0 0,calc(100% - 22px) 0,100% 22px,100% 100%,0 100%);padding:0 0 24px;position:relative;opacity:0;transform:translateY(30px);transition:transform .35s cubic-bezier(.4,0,.2,1),box-shadow .35s ease,border-color .35s ease}.proj-card.animate{animation:cardIn .6s calc(var(--delay, 0ms)) cubic-bezier(.4,0,.2,1) forwards}.proj-card:hover{transform:translateY(-6px);border-color:#ffffff1c;box-shadow:0 32px 80px var(--glow, rgba(0,0,0,.3))}.proj-bar{position:absolute;top:0;left:0;right:22px;height:2px;background:var(--accent);opacity:.7}.proj-tabs{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid rgba(255,255,255,.04);background:#ffffff04}.proj-tab{display:inline-flex;align-items:center;gap:6px;font-family:JetBrains Mono,monospace;font-size:10px;letter-spacing:.08em;color:var(--accent);opacity:.8}.proj-tab-dot{width:5px;height:5px;background:var(--accent);border-radius:50%}.proj-gh-icon{color:var(--text-muted);text-decoration:none;display:flex;align-items:center;transition:color .2s}.proj-gh-icon:hover{color:var(--accent)}.proj-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:20px 24px 0;margin-bottom:14px}.proj-title-wrap{flex:1;min-width:0}.proj-name{font-family:Barlow Condensed,sans-serif;font-weight:800;font-size:28px;letter-spacing:-.01em;color:var(--text);line-height:1;margin-bottom:7px;text-transform:uppercase}.proj-subtitle{display:inline-block;font-family:JetBrains Mono,monospace;font-size:9px;letter-spacing:.18em;color:var(--accent);text-transform:uppercase;border-left:2px solid var(--accent);padding:2px 8px;background:#ffffff08;border-top:1px solid rgba(255,255,255,.06);border-right:1px solid rgba(255,255,255,.06);border-bottom:1px solid rgba(255,255,255,.06);border-radius:0 2px 2px 0}.proj-lang{display:flex;align-items:center;gap:5px;flex-shrink:0;padding-top:4px}.lang-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.lang-name{font-family:JetBrains Mono,monospace;font-size:10px;color:var(--text-muted);letter-spacing:.05em}.lang-pct{font-family:JetBrains Mono,monospace;font-size:9px;color:var(--text-dim);letter-spacing:.05em}.proj-desc{font-size:13px;color:#99c;line-height:1.7;font-weight:400;padding:0 24px;margin-bottom:18px}.proj-features{list-style:none;padding:0 24px;margin-bottom:20px;display:flex;flex-direction:column;gap:7px}.proj-feature{display:flex;align-items:baseline;gap:8px;font-family:JetBrains Mono,monospace;font-size:11px;color:#aaaad0;letter-spacing:.02em;line-height:1.5}.feature-arrow{color:var(--accent);font-size:14px;line-height:1;flex-shrink:0}.proj-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 24px 0;border-top:1px solid rgba(255,255,255,.04);flex-wrap:wrap}.proj-techs{display:flex;flex-wrap:wrap;gap:5px;flex:1;min-width:0}.proj-chip{font-family:JetBrains Mono,monospace;font-size:9px;padding:3px 8px;background:#ffffff0d;border:1px solid rgba(255,255,255,.12);border-radius:2px;color:#88b;letter-spacing:.04em;transition:color .2s,border-color .2s}.proj-card:hover .proj-chip{color:#cce;border-color:#fff3}.proj-cta{display:inline-flex;align-items:center;gap:7px;text-decoration:none;font-family:Barlow Condensed,sans-serif;font-weight:700;font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);border:1px solid rgba(255,69,0,.2);padding:7px 14px;clip-path:polygon(0 0,calc(100% - 8px) 0,100% 8px,100% 100%,0 100%);transition:background .2s,border-color .2s,transform .2s;flex-shrink:0;white-space:nowrap}.proj-cta:hover{background:#ff450014;border-color:#ff450066;transform:translateY(-2px)}main[data-astro-cid-j7pv25f6]{position:relative;z-index:1}.hero[data-astro-cid-j7pv25f6]{min-height:100vh;display:flex;align-items:center;justify-content:space-between;padding:80px clamp(24px,7vw,120px);gap:60px}.hero-content[data-astro-cid-j7pv25f6]{max-width:680px}.hero-tag[data-astro-cid-j7pv25f6]{display:inline-flex;align-items:center;gap:8px;padding:6px 14px;background:#ff450014;border:1px solid rgba(255,69,0,.18);border-radius:2px;font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;color:var(--orange);margin-bottom:36px;opacity:0;animation:fadeSlideUp .5s .1s forwards}.tag-dot[data-astro-cid-j7pv25f6]{width:6px;height:6px;background:var(--orange);border-radius:50%;animation:pulse 2s ease-in-out infinite}.hero-name[data-astro-cid-j7pv25f6]{display:flex;flex-direction:column;font-family:var(--font-display);font-weight:900;line-height:.86;letter-spacing:-.02em;margin-bottom:28px}.name-outline[data-astro-cid-j7pv25f6]{font-size:clamp(70px,13vw,168px);color:transparent;-webkit-text-stroke:2px var(--text);opacity:0;animation:fadeSlideUp .7s .2s forwards}.name-solid[data-astro-cid-j7pv25f6]{font-size:clamp(70px,13vw,168px);color:var(--orange);opacity:0;animation:fadeSlideUp .7s .35s forwards}.hero-rule[data-astro-cid-j7pv25f6]{margin-bottom:22px;opacity:0;animation:fadeIn .1s .6s forwards}.rule-line[data-astro-cid-j7pv25f6]{display:block;width:56px;height:2px;background:var(--orange);transform-origin:left;animation:lineGrow .55s .65s cubic-bezier(.4,0,.2,1) both}.hero-meta[data-astro-cid-j7pv25f6]{display:flex;align-items:center;gap:12px;font-family:var(--font-mono);font-size:clamp(12px,1.4vw,15px);margin-bottom:20px;opacity:0;animation:fadeSlideUp .5s .65s forwards}.meta-role[data-astro-cid-j7pv25f6]{color:var(--text)}.meta-dot[data-astro-cid-j7pv25f6]{color:var(--orange)}.meta-exp[data-astro-cid-j7pv25f6]{color:var(--cyan)}.hero-tagline[data-astro-cid-j7pv25f6]{font-size:clamp(15px,1.8vw,18px);color:var(--text-muted);font-weight:300;line-height:1.65;margin-bottom:44px;opacity:0;animation:fadeSlideUp .5s .78s forwards}.hero-tagline[data-astro-cid-j7pv25f6] em[data-astro-cid-j7pv25f6]{font-style:italic;color:var(--text);font-family:var(--font-display);font-size:1.15em;font-weight:300}.hero-actions[data-astro-cid-j7pv25f6]{display:flex;align-items:center;gap:14px;flex-wrap:wrap;opacity:0;animation:fadeSlideUp .5s .92s forwards}.cta[data-astro-cid-j7pv25f6]{display:inline-flex;align-items:center;gap:10px;text-decoration:none;background:var(--orange);color:#fff;font-family:var(--font-display);font-weight:700;font-size:16px;letter-spacing:.06em;text-transform:uppercase;padding:14px 30px;clip-path:polygon(0 0,calc(100% - 14px) 0,100% 14px,100% 100%,0 100%);transition:transform .2s ease,box-shadow .2s ease}.cta[data-astro-cid-j7pv25f6]:hover{transform:translateY(-3px);box-shadow:0 14px 44px #ff45006b}.cta-ghost[data-astro-cid-j7pv25f6]{display:inline-flex;align-items:center;gap:8px;text-decoration:none;background:transparent;color:var(--text-muted);font-family:var(--font-display);font-weight:700;font-size:16px;letter-spacing:.06em;text-transform:uppercase;padding:13px 24px;border:1px solid rgba(255,255,255,.12);clip-path:polygon(0 0,calc(100% - 14px) 0,100% 14px,100% 100%,0 100%);transition:color .2s,border-color .2s,transform .2s}.cta-ghost[data-astro-cid-j7pv25f6]:hover{color:var(--text);border-color:#ffffff4d;transform:translateY(-3px)}.hero-badge[data-astro-cid-j7pv25f6]{position:relative;width:200px;height:200px;flex-shrink:0;opacity:0;animation:fadeIn .8s 1.1s forwards}.badge-ring[data-astro-cid-j7pv25f6]{position:absolute;inset:0;border-radius:50%;border:1.5px solid var(--orange);opacity:.22;animation:spin 28s linear infinite}.badge-ring[data-astro-cid-j7pv25f6]:before,.badge-ring[data-astro-cid-j7pv25f6]:after{content:"";position:absolute;background:var(--orange);border-radius:50%}.badge-ring[data-astro-cid-j7pv25f6]:before{width:8px;height:8px;top:-4px;left:50%;transform:translate(-50%)}.badge-ring[data-astro-cid-j7pv25f6]:after{width:5px;height:5px;bottom:18%;right:-2.5px}.badge-core[data-astro-cid-j7pv25f6]{position:absolute;inset:24px;background:var(--surface);border:1px solid rgba(255,69,0,.15);border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}.badge-num[data-astro-cid-j7pv25f6]{font-family:var(--font-display);font-weight:900;font-size:58px;line-height:1;color:var(--orange);letter-spacing:-.02em}.badge-lbl[data-astro-cid-j7pv25f6]{font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;color:var(--text-muted);text-transform:uppercase}.skills[data-astro-cid-j7pv25f6]{padding:clamp(80px,12vh,140px) clamp(24px,7vw,120px)}.skills-header[data-astro-cid-j7pv25f6]{margin-bottom:64px}.sec-tag[data-astro-cid-j7pv25f6]{display:block;font-family:var(--font-mono);font-size:12px;color:var(--orange);letter-spacing:.12em;margin-bottom:14px}.sec-title[data-astro-cid-j7pv25f6]{font-family:var(--font-display);font-weight:800;font-size:clamp(40px,7vw,88px);letter-spacing:-.025em;line-height:.9;margin-bottom:20px}.sec-desc[data-astro-cid-j7pv25f6]{font-size:15px;color:var(--text-muted);max-width:480px;line-height:1.65}.skills-grid[data-astro-cid-j7pv25f6]{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.exp-section[data-astro-cid-j7pv25f6]{padding:clamp(80px,12vh,140px) clamp(24px,7vw,120px);border-top:1px solid var(--border)}.timeline[data-astro-cid-j7pv25f6]{position:relative;padding-left:180px}.timeline[data-astro-cid-j7pv25f6]:before{content:"";position:absolute;left:158px;top:8px;bottom:8px;width:1px;background:linear-gradient(to bottom,#ff450073,#ff45000d)}.tl-item[data-astro-cid-j7pv25f6]{position:relative;display:grid;grid-template-columns:1fr;padding-bottom:40px;opacity:0;transform:translate(-12px)}.tl-item[data-astro-cid-j7pv25f6].animate{animation:tlIn .5s calc(var(--ti) * .1s) cubic-bezier(.4,0,.2,1) forwards}.tl-item[data-astro-cid-j7pv25f6]:last-child{padding-bottom:0}.tl-item[data-astro-cid-j7pv25f6]:before{content:"";position:absolute;left:-26px;top:7px;width:8px;height:8px;background:var(--orange);border-radius:50%;box-shadow:0 0 10px #ff45008c}.tl-left[data-astro-cid-j7pv25f6]{position:absolute;left:-172px;top:0;width:140px;text-align:right}.tl-period[data-astro-cid-j7pv25f6]{display:block;font-family:var(--font-mono);font-size:11px;color:var(--text-muted);letter-spacing:.05em;white-space:nowrap;margin-bottom:3px}.tl-location[data-astro-cid-j7pv25f6]{display:block;font-family:var(--font-mono);font-size:10px;color:var(--text-dim);letter-spacing:.04em;white-space:nowrap}.tl-right[data-astro-cid-j7pv25f6]{padding-left:4px}.tl-company[data-astro-cid-j7pv25f6]{font-family:var(--font-display);font-weight:700;font-size:22px;letter-spacing:-.01em;color:var(--text);margin-bottom:5px;line-height:1.1}.tl-role[data-astro-cid-j7pv25f6]{display:inline-block;font-family:var(--font-mono);font-size:9px;letter-spacing:.18em;color:var(--orange);text-transform:uppercase;border-left:2px solid var(--orange);padding:2px 8px;background:#ff45000d;margin-bottom:10px}.tl-context[data-astro-cid-j7pv25f6]{font-size:13px;color:#99c;font-weight:400;line-height:1.55;margin-bottom:6px}.tl-impact[data-astro-cid-j7pv25f6]{font-size:12px;color:#aaaad0;font-family:var(--font-mono);font-weight:400;line-height:1.7;letter-spacing:.02em}@keyframes tlIn{to{opacity:1;transform:translate(0)}}@media (max-width: 640px){.timeline[data-astro-cid-j7pv25f6]{padding-left:24px}.timeline[data-astro-cid-j7pv25f6]:before{left:0}.tl-item[data-astro-cid-j7pv25f6]:before{left:-18px}.tl-left[data-astro-cid-j7pv25f6]{position:static;width:auto;text-align:left;margin-bottom:6px}}.proj-section[data-astro-cid-j7pv25f6]{padding:clamp(80px,12vh,140px) clamp(24px,7vw,120px);border-top:1px solid var(--border)}.proj-grid[data-astro-cid-j7pv25f6]{display:grid;grid-template-columns:repeat(auto-fill,minmax(420px,1fr));gap:20px}@media (max-width: 500px){.proj-grid[data-astro-cid-j7pv25f6]{grid-template-columns:1fr}}.site-footer[data-astro-cid-j7pv25f6]{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px;padding:32px clamp(24px,7vw,120px);border-top:1px solid var(--border)}.footer-brand[data-astro-cid-j7pv25f6]{font-family:var(--font-mono);font-size:12px;color:var(--text-dim);letter-spacing:.1em}.footer-nav[data-astro-cid-j7pv25f6]{display:flex;gap:24px}.flink[data-astro-cid-j7pv25f6]{font-family:var(--font-mono);font-size:12px;color:var(--text-muted);text-decoration:none;letter-spacing:.05em;transition:color .2s}.flink[data-astro-cid-j7pv25f6]:hover{color:var(--orange)}.flink-cv[data-astro-cid-j7pv25f6]{display:inline-flex;align-items:center;gap:5px;color:var(--orange);border:1px solid rgba(255,69,0,.2);padding:3px 10px;border-radius:2px}.flink-cv[data-astro-cid-j7pv25f6]:hover{background:#ff450014;border-color:#ff450066;color:var(--orange)}@media (max-width: 1024px){.skills-grid[data-astro-cid-j7pv25f6]{grid-template-columns:repeat(2,1fr)}.skills-grid[data-astro-cid-j7pv25f6]>[data-astro-cid-j7pv25f6]:last-child{grid-column:1 / -1}}@media (max-width: 768px){.hero[data-astro-cid-j7pv25f6]{flex-direction:column-reverse;align-items:flex-start;min-height:auto;padding-top:60px;padding-bottom:60px}.hero-badge[data-astro-cid-j7pv25f6]{width:140px;height:140px}.badge-num[data-astro-cid-j7pv25f6]{font-size:42px}}@media (max-width: 600px){.skills-grid[data-astro-cid-j7pv25f6]{grid-template-columns:1fr}.skills-grid[data-astro-cid-j7pv25f6]>[data-astro-cid-j7pv25f6]:last-child{grid-column:auto}.hero-badge[data-astro-cid-j7pv25f6]{display:none}}
