:root{color:#0f172a;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f8fafc;font-family:Plus Jakarta Sans,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-weight:400;line-height:1.6}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--bg-shell);min-width:320px;min-height:100vh;color:var(--text-color);margin:0;overflow-x:hidden}img,picture,video,canvas,svg{max-width:100%;display:block}a{color:inherit}button,input,textarea,select{font:inherit}p{margin:0}h1,h2,h3,h4,h5,h6{letter-spacing:-.01em;margin:0;font-family:Playfair Display,Georgia,serif;font-weight:700}ul,ol{margin:0;padding:0}#root{min-height:100vh}:root{--bg-shell-gradient:radial-gradient(circle at top left, #3b82f614, transparent 28%), radial-gradient(circle at top right, #0ea5e914, transparent 24%), linear-gradient(180deg, #f8fafc 0%, #eef2f7 100%);--bg-shell:#f8fafc;--text-color:#0f172a;--topbar-bg:#f8fafcbd;--border-color-muted:#94a3b829;--brand-mark-bg:linear-gradient(135deg, #0f172a 0%, #1e293b 100%);--brand-mark-text:#fff;--brand-mark-shadow:0 16px 30px #0f172a24;--text-muted:#64748b;--text-dark-muted:#475569;--text-nav:#334155;--text-nav-hover:#0f172a;--container-bg:#ffffffc7;--container-border:#94a3b829;--container-shadow:0 24px 50px #0f172a0f;--hero-lead-color:#1e293b;--btn-primary-bg:#0f172a;--btn-primary-border:#0f172a;--btn-primary-text:#fff;--btn-primary-hover-bg:#1e293b;--btn-primary-hover-border:#1e293b;--btn-primary-shadow:0 4px 12px #0f172a14;--btn-primary-hover-shadow:0 6px 18px #0f172a1f;--btn-secondary-bg:#fff;--btn-secondary-border:#94a3b852;--btn-secondary-text:#0f172a;--btn-secondary-hover-bg:#f8fafc;--btn-secondary-hover-border:#0f172a47;--social-link-bg:#fff;--social-link-border:#94a3b83d;--social-link-text:#475569;--social-link-hover-text:#0f172a;--social-link-hover-bg:#f8fafc;--social-link-hover-border:#0f172a40;--social-text-color:#334155;--meta-badge-bg:#94a3b814;--meta-badge-border:#94a3b826;--meta-badge-text-label:#64748b;--meta-badge-text-val:#0f172a;--meta-badge-sep:#94a3b866;--availability-badge-bg:#10b9810f;--availability-badge-border:#10b98133;--availability-text-label:#059669;--availability-text-val:#065f46;--availability-sep:#10b9814d;--availability-dot-bg:#10b981;--portrait-outline:#0f172a14;--portrait-outline-hover:#2563eb2e;--portrait-frame-bg:#fff;--portrait-fallback-bg:linear-gradient(135deg, #0f172a 0%, #1e293b 100%);--portrait-fallback-text:#fff;--spotlight-rgb:0, 0, 0;--spotlight-active-radius:72px;--card-bg:linear-gradient(180deg, #fff 0%, #f8fafc 100%);--card-border:#94a3b824;--card-hover-border:#64748b3d;--card-hover-shadow:0 28px 50px #0f172a1a;--card-media-bg:linear-gradient(135deg, #0f172a0a, #1e293b14), #e2e8f0;--card-badge-bg:#0f172a0f;--card-badge-text:#0f172a;--tag-bg:#f8fafcd9;--tag-border:#94a3b82e;--tag-text:#334155;--chip-bg:#f8fafcdb;--chip-border:#94a3b82e;--chip-text:#334155;--theme-switch-border:#94a3b83d;--theme-switch-hover-border:#0f172a47;--nav-active-color:#2563eb;--nav-active-glow:0 0 12px #2563eb59;--nav-active-bg:#2563eb0f;--nav-active-border:#2563eb26;--badge-management-color:#1e40af;--badge-management-bg:#1e40af0f;--badge-management-border:#1e40af4d;--badge-management-glow:#1e40af26;--badge-management-hover-glow:0 0 10px #1e40af59;--badge-management-hover-border:#1e40af80;--badge-ai-color:#5b21b6;--badge-ai-bg:#5b21b60f;--badge-ai-border:#5b21b64d;--badge-ai-glow:#5b21b626;--badge-ai-hover-glow:0 0 10px #5b21b659;--badge-ai-hover-border:#5b21b680;--badge-ecommerce-color:#b45309;--badge-ecommerce-bg:#b453090f;--badge-ecommerce-border:#b453094d;--badge-ecommerce-glow:#b4530926;--badge-ecommerce-hover-glow:0 0 10px #b4530959;--badge-ecommerce-hover-border:#b4530980;--badge-pentest-color:#be123c;--badge-pentest-bg:#be123c0f;--badge-pentest-border:#be123c4d;--badge-pentest-glow:#be123c26;--badge-pentest-hover-glow:0 0 10px #be123c59;--badge-pentest-hover-border:#be123c80;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-7:1.75rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-14:3.5rem;--space-16:4rem;--space-18:4.5rem;--space-22:5.5rem;--space-24:6rem;--contrib-color-0:#e2e8f0;--contrib-color-1:#94a3b8;--contrib-color-2:#64748b;--contrib-color-3:#334155;--contrib-color-4:#0f172a}html[data-theme=dark]{--bg-shell-gradient:radial-gradient(circle at top left, #3b82f626, transparent 30%), radial-gradient(circle at top right, #0ea5e926, transparent 26%), linear-gradient(180deg, #0b0f19 0%, #111827 100%);--bg-shell:#0b0f19;--text-color:#f1f5f9;--topbar-bg:#0b0f19d1;--border-color-muted:#ffffff1a;--brand-mark-bg:linear-gradient(135deg, #38bdf8 0%, #0ea5e9 100%);--brand-mark-text:#0f172a;--brand-mark-shadow:0 16px 30px #38bdf826;--text-muted:#94a3b8;--text-dark-muted:#cbd5e1;--text-nav:#cbd5e1;--text-nav-hover:#fff;--container-bg:#111827c7;--container-border:#ffffff14;--container-shadow:0 24px 50px #0006;--hero-lead-color:#cbd5e1;--btn-primary-bg:#38bdf8;--btn-primary-border:#38bdf8;--btn-primary-text:#0f172a;--btn-primary-hover-bg:#0ea5e9;--btn-primary-hover-border:#0ea5e9;--btn-primary-shadow:0 4px 12px #38bdf826;--btn-primary-hover-shadow:0 6px 18px #38bdf840;--btn-secondary-bg:#1e293b80;--btn-secondary-border:#ffffff1f;--btn-secondary-text:#f1f5f9;--btn-secondary-hover-bg:#1e293bcc;--btn-secondary-hover-border:#ffffff3d;--social-link-bg:#1e293b80;--social-link-border:#ffffff1a;--social-link-text:#cbd5e1;--social-link-hover-text:#fff;--social-link-hover-bg:#1e293bcc;--social-link-hover-border:#fff3;--social-text-color:#cbd5e1;--meta-badge-bg:#1e293b80;--meta-badge-border:#ffffff14;--meta-badge-text-label:#94a3b8;--meta-badge-text-val:#f1f5f9;--meta-badge-sep:#fff3;--availability-badge-bg:#10b98114;--availability-badge-border:#10b9814d;--availability-text-label:#34d399;--availability-text-val:#a7f3d0;--availability-sep:#10b98166;--availability-dot-bg:#10b981;--portrait-outline:#ffffff1f;--portrait-outline-hover:#38bdf866;--portrait-frame-bg:#1e293b;--portrait-fallback-bg:linear-gradient(135deg, #38bdf8 0%, #0ea5e9 100%);--portrait-fallback-text:#0f172a;--spotlight-rgb:255, 255, 255;--card-bg:linear-gradient(180deg, #1f2937 0%, #111827 100%);--card-border:#ffffff0f;--card-hover-border:#38bdf866;--card-hover-shadow:0 28px 50px #00000080;--card-media-bg:linear-gradient(135deg, #0003, #0000004d), #1f2937;--card-badge-bg:#38bdf826;--card-badge-text:#38bdf8;--tag-bg:#1f2937d9;--tag-border:#ffffff14;--tag-text:#cbd5e1;--chip-bg:#1f2937db;--chip-border:#ffffff14;--chip-text:#cbd5e1;--theme-switch-border:#ffffff1f;--theme-switch-hover-border:#ffffff3d;--nav-active-color:#38bdf8;--nav-active-glow:0 0 12px #38bdf899;--nav-active-bg:#38bdf814;--nav-active-border:#38bdf833;--badge-management-color:#3b82f6;--badge-management-bg:#3b82f614;--badge-management-border:#3b82f666;--badge-management-glow:#3b82f640;--badge-management-hover-glow:0 0 12px #3b82f680;--badge-management-hover-border:#3b82f6b3;--badge-ai-color:#8b5cf6;--badge-ai-bg:#8b5cf614;--badge-ai-border:#8b5cf666;--badge-ai-glow:#8b5cf640;--badge-ai-hover-glow:0 0 12px #8b5cf680;--badge-ai-hover-border:#8b5cf6b3;--badge-ecommerce-color:#f59e0b;--badge-ecommerce-bg:#f59e0b14;--badge-ecommerce-border:#f59e0b66;--badge-ecommerce-glow:#f59e0b40;--badge-ecommerce-hover-glow:0 0 12px #f59e0b80;--badge-ecommerce-hover-border:#f59e0bb3;--badge-pentest-color:#f43f5e;--badge-pentest-bg:#f43f5e14;--badge-pentest-border:#f43f5e66;--badge-pentest-glow:#f43f5e40;--badge-pentest-hover-glow:0 0 12px #f43f5e80;--badge-pentest-hover-border:#f43f5eb3;--contrib-color-0:#161b22;--contrib-color-1:#0e2a47;--contrib-color-2:#154c7a;--contrib-color-3:#1c73b0;--contrib-color-4:#38bdf8}.site-shell{background:var(--bg-shell-gradient);min-height:100vh;color:var(--text-color);position:relative}.container{width:min(1120px,100% - 2rem);margin:0 auto}.topbar{z-index:20;-webkit-backdrop-filter:blur(18px);background:var(--topbar-bg);border-bottom:1px solid var(--border-color-muted);will-change:transform;position:sticky;top:0;transform:translateZ(0)}.topbar__inner{padding:var(--space-4) 0;justify-content:space-between;align-items:center;gap:var(--space-4);display:flex}.brand{align-items:center;gap:var(--space-2);display:flex}.brand__mark{background:var(--brand-mark-bg);width:2.8rem;height:2.8rem;color:var(--brand-mark-text);letter-spacing:.08em;box-shadow:var(--brand-mark-shadow);border-radius:.9rem;place-items:center;font-size:.9rem;font-weight:800;display:grid}.brand__name{color:var(--text-color);font-size:.95rem;font-weight:700}.brand__role{color:var(--text-muted);font-size:.82rem}.topbar__nav{align-items:center;gap:var(--space-2);display:flex}.topbar__nav-link{color:var(--text-nav);border:1px solid #0000;border-radius:9999px;padding:.35rem .85rem;font-size:.92rem;font-weight:600;text-decoration:none;transition:color .3s cubic-bezier(.4,0,.2,1),background-color .3s cubic-bezier(.4,0,.2,1),border-color .3s cubic-bezier(.4,0,.2,1),box-shadow .3s cubic-bezier(.4,0,.2,1),text-shadow .3s cubic-bezier(.4,0,.2,1);position:relative}.topbar__nav-link:hover{color:var(--text-nav-hover);background:rgba(var(--spotlight-rgb), .03)}.topbar__nav-link--active{background:var(--nav-active-bg);border-color:var(--nav-active-border);box-shadow:0 0 15px var(--nav-active-bg), inset 0 0 8px rgba(var(--spotlight-rgb), .04);text-shadow:var(--nav-active-glow);color:var(--nav-active-color)!important}.section{padding:var(--space-8) 0 var(--space-16)}.section-heading{justify-content:space-between;align-items:end;gap:var(--space-6);margin-bottom:var(--space-6);display:flex}.section-heading__title{margin-top:var(--space-3);letter-spacing:-.03em;color:var(--text-color);font-size:clamp(1.8rem,3vw,2.6rem);line-height:1.08}.section-heading__description{max-width:46ch;color:var(--text-muted);line-height:1.8}.section--projects .container:last-child,.contact-panel{padding:var(--space-6);border:1px solid var(--container-border);background:var(--container-bg);box-shadow:var(--container-shadow);border-radius:1.5rem}.about-strip{border:1px solid var(--container-border);background:var(--container-bg);box-shadow:var(--container-shadow);padding:var(--space-12) var(--space-10);gap:var(--space-12);border-radius:1.5rem;grid-template-columns:.85fr 1.15fr;align-items:start;display:grid}.about-strip__text{color:var(--text-dark-muted);max-width:65ch;font-size:1rem;line-height:1.85}.contact-panel__text{color:var(--text-dark-muted);font-size:1rem;line-height:1.9}.contact-panel{justify-content:space-between;align-items:center;gap:var(--space-6);display:flex}.contact-panel__actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.footer{padding:var(--space-6) 0 var(--space-8)}.footer__inner{justify-content:space-between;align-items:center;gap:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--border-color-muted);color:var(--text-muted);font-size:.92rem;display:flex}.hero--editorial{padding:var(--space-24) 0 var(--space-22);position:relative}.hero__grid--editorial{gap:var(--space-18);grid-template-columns:1.15fr .85fr;align-items:flex-start;display:grid}.hero__content--editorial{max-width:620px;padding-top:var(--space-2)}.hero__eyebrow-container{align-items:center;gap:var(--space-2);margin-bottom:var(--space-6);text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);font-size:.78rem;font-weight:700;display:flex}.hero__eyebrow-separator{color:var(--border-color-muted);font-weight:400}.hero__eyebrow-role{color:var(--text-dark-muted);letter-spacing:.05em}.hero__headline--editorial{margin-bottom:var(--space-7);line-height:1.1;display:block}.hero__greeting{color:var(--text-muted);margin-bottom:var(--space-1);font-family:Playfair Display,Georgia,serif;font-size:clamp(1.8rem,3.2vw,2.8rem);font-style:italic;font-weight:400;display:block}.hero__name{color:var(--text-color);font-family:Playfair Display,Georgia,serif;font-size:clamp(2.8rem,5vw,4.8rem);font-weight:800;display:block}.hero__lead{color:var(--hero-lead-color);margin-bottom:var(--space-5);max-width:38ch;font-size:clamp(1.15rem,1.8vw,1.35rem);font-weight:500;line-height:1.55}.hero__description{color:var(--text-dark-muted);margin-bottom:var(--space-8);max-width:56ch;font-size:.98rem;line-height:1.8}.hero__actions-container{align-items:center;gap:var(--space-7);margin-bottom:var(--space-12);flex-wrap:wrap;display:flex}.hero__actions{gap:var(--space-3);margin-bottom:var(--space-6);flex-wrap:wrap;display:flex}.hero-btn{justify-content:center;align-items:center;gap:var(--space-2);min-height:48px;padding:var(--space-3) var(--space-6);border-radius:6px;font-size:.92rem;font-weight:700;text-decoration:none;transition:background-color .2s ease-in-out,border-color .2s ease-in-out,color .2s ease-in-out,box-shadow .2s ease-in-out,transform .2s ease-in-out;display:inline-flex}.hero-btn--primary{background:var(--btn-primary-bg);border:1px solid var(--btn-primary-border);color:var(--btn-primary-text);box-shadow:var(--btn-primary-shadow)}.hero-btn--primary:hover{background:var(--btn-primary-hover-bg);border-color:var(--btn-primary-hover-border);box-shadow:var(--btn-primary-hover-shadow);transform:translateY(-1px)}.hero-btn--primary:hover .hero-btn-arrow{transform:translate(3px)}.hero-btn--secondary{background:var(--btn-secondary-bg);border:1px solid var(--btn-secondary-border);color:var(--btn-secondary-text)}.hero-btn--secondary:hover{background:var(--btn-secondary-hover-bg);border-color:var(--btn-secondary-hover-border);transform:translateY(-1px)}.hero-btn-arrow{width:1rem;height:1rem;transition:transform .2s}.hero__socials{align-items:center;gap:var(--space-3);margin-bottom:var(--space-8);flex-wrap:wrap;display:flex}.hero__social-link{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--social-link-bg);border:1px solid var(--social-link-border);color:var(--social-link-text);border-radius:6px;font-size:.85rem;font-weight:600;text-decoration:none;transition:color .2s,background-color .2s,border-color .2s,transform .2s;display:inline-flex}.hero__social-link:hover{color:var(--social-link-hover-text);background:var(--social-link-hover-bg);border-color:var(--social-link-hover-border);transform:translateY(-1px)}.hero__social-text{color:var(--social-text-color);display:inline-block}.hero__meta-info{gap:var(--space-3);padding-top:var(--space-7);border-top:1px solid var(--border-color-muted);flex-flow:wrap;display:flex}@media (width<=768px){.hero__meta-info{align-items:flex-start;gap:var(--space-2);flex-direction:column}}.hero__meta-item{align-self:flex-start;align-items:center;gap:var(--space-1);background:var(--meta-badge-bg);padding:var(--space-2) var(--space-3);border:1px solid var(--meta-badge-border);border-radius:6px;flex-direction:row;display:inline-flex}.hero__meta-item--availability{background:var(--availability-badge-bg);border-color:var(--availability-badge-border)}.hero__meta-label--badge{color:var(--meta-badge-text-label);text-transform:uppercase;letter-spacing:.05em;font-size:.75rem;font-weight:700}.hero__meta-separator{color:var(--meta-badge-sep);font-weight:300}.hero__meta-value--badge{color:var(--meta-badge-text-val);font-size:.85rem;font-weight:700}.hero__meta-label--availability{color:var(--availability-text-label);text-transform:uppercase;letter-spacing:.05em;align-items:center;gap:var(--space-1);font-size:.75rem;font-weight:700;display:inline-flex}.hero__meta-dot{background:var(--availability-dot-bg);border-radius:50%;width:5px;height:5px;display:inline-block}.hero__meta-separator--availability{color:var(--availability-sep);font-weight:300}.hero__meta-value--availability{color:var(--availability-text-val);font-size:.85rem;font-weight:700}.hero__visual--editorial{justify-content:flex-end;display:flex}.hero__portrait-container{flex-direction:column;width:100%;max-width:240px;margin-top:clamp(1.5rem,6vw,4rem);margin-left:auto;margin-right:auto;display:flex;position:relative}.hero__portrait-frame--editorial{aspect-ratio:1;outline:1px solid var(--portrait-outline);background:linear-gradient(var(--portrait-frame-bg), var(--portrait-frame-bg)) padding-box, radial-gradient(circle var(--spotlight-active-radius,72px) at var(--mouse-x,50%) var(--mouse-y,50%), rgba(var(--spotlight-rgb), var(--spotlight-opacity,0)) 0%, rgba(var(--spotlight-rgb), var(--spotlight-opacity,0)) 50%, transparent 100%) border-box;z-index:1;border:5px solid #0000;border-radius:50%;transition:transform .3s,box-shadow .3s,outline-color .3s;position:relative;overflow:hidden;box-shadow:0 16px 32px -12px #0f172a14}.hero__portrait-container:hover .hero__portrait-frame--editorial{outline-color:var(--portrait-outline-hover);transform:translateY(-4px);box-shadow:0 28px 50px -12px #0f172a1f}.hero__portrait-image--editorial{object-fit:cover;width:100%;height:100%;display:block}.hero__portrait-fallback{background:var(--portrait-fallback-bg);color:var(--portrait-fallback-text);place-items:center;width:100%;height:100%;font-size:2.2rem;font-weight:800;display:grid}.hero__social-icon-wrapper{color:var(--text-muted);align-items:center;display:inline-flex}.fallback-loader{padding:var(--space-16) 0;text-align:center;color:var(--text-muted);font-weight:500}.hero__portrait-caption{align-items:center;gap:var(--space-2);color:var(--text-muted);padding-left:var(--space-1);font-size:.8rem;font-weight:600;display:flex}.caption-divider{color:var(--border-color-muted);font-weight:400}.caption-location{font-weight:500}.theme-toggle-btn{border:1px solid var(--theme-switch-border);background:var(--btn-secondary-bg);width:2.2rem;height:2.2rem;color:var(--text-color);cursor:pointer;margin-left:var(--space-2);border-radius:50%;justify-content:center;align-items:center;padding:0;transition:background-color .2s ease-in-out,border-color .2s ease-in-out,transform .2s ease-in-out,color .2s ease-in-out;display:inline-flex}.theme-toggle-btn:hover{background:var(--btn-secondary-hover-bg);border-color:var(--theme-switch-hover-border);transform:scale(1.05)}.theme-toggle-icon{stroke:currentColor;width:1.1rem;height:1.1rem;transition:transform .3s}.theme-toggle-btn:hover .theme-toggle-icon{transform:rotate(15deg)}.lang-toggle-btn{border:1px solid var(--theme-switch-border);background:var(--btn-secondary-bg);width:2.2rem;height:2.2rem;color:var(--text-color);cursor:pointer;margin-left:var(--space-2);border-radius:50%;justify-content:center;align-items:center;padding:0;transition:background-color .2s ease-in-out,border-color .2s ease-in-out,transform .2s ease-in-out,color .2s ease-in-out;display:inline-flex;overflow:hidden}.lang-toggle-btn:hover{background:var(--btn-secondary-hover-bg);border-color:var(--theme-switch-hover-border);transform:scale(1.05)}.lang-flag-icon{object-fit:cover;border-radius:50%;width:100%;height:100%;display:block}@media (width<=960px){.hero__grid--editorial{gap:var(--space-12);grid-template-columns:1fr}.hero__visual--editorial{justify-content:flex-start}.hero__portrait-container{max-width:240px;margin-top:0}.hero__portrait-image--editorial,.hero__portrait-fallback{height:100%}}@media (width<=640px){.hero--editorial{padding:var(--space-14) 0 var(--space-12)}.hero__eyebrow-container{align-items:center;gap:var(--space-1) var(--space-2);flex-flow:wrap}.hero__eyebrow-separator{display:inline}.hero__greeting{font-size:1.5rem}.hero__name{font-size:2.6rem}.hero__lead{font-size:1.1rem}.hero__meta-info{flex-direction:column;gap:1.25rem}.hero__portrait-image--editorial,.hero__portrait-fallback{height:100%}}@media (width<=960px){.about-strip{gap:var(--space-8);grid-template-columns:1fr}.contact-panel,.section-heading,.footer__inner{flex-direction:column;align-items:flex-start}.topbar__nav{gap:var(--space-2);flex-wrap:wrap}.hero__grid--refined{grid-template-columns:1fr}.hero__title--refined{max-width:100%}.hero-profile-card__details{grid-template-columns:1fr}}@media (width<=640px){.hero{padding-top:var(--space-14)}.hero__title--refined{font-size:2.6rem}.hero__meta-line{flex-direction:column;gap:.55rem}.hero__meta-line span:not(:last-child):after{display:none}.hero-profile-card__avatar--large{height:240px}.container{width:min(1120px,100% - 1.25rem)}.section--projects .container:last-child,.about-strip,.contact-panel,.hero-profile-card--refined{padding:var(--space-4)}}.about-strip__left{flex-direction:column;align-items:flex-start;display:flex}.about__name{color:var(--text-color);margin-top:var(--space-3);margin-bottom:var(--space-1);font-size:clamp(2rem,3.5vw,3rem);font-weight:800;line-height:1.1}.about__role{color:var(--btn-primary-bg);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--space-2);font-size:.95rem;font-weight:700}.about__location{align-items:center;gap:var(--space-2);color:var(--text-muted);margin-top:var(--space-1);margin-bottom:var(--space-4);font-size:.88rem;font-weight:600;display:inline-flex}.about__location-icon{stroke:currentColor;width:1rem;height:1rem}.about__ctas{gap:var(--space-3);margin-top:var(--space-2);display:flex}.about-btn{min-height:38px;padding:var(--space-2) var(--space-4);border-radius:6px;justify-content:center;align-items:center;font-size:.85rem;font-weight:700;text-decoration:none;transition:background-color .2s ease-in-out,border-color .2s ease-in-out,transform .2s ease-in-out,color .2s ease-in-out;display:inline-flex}.about-btn--primary{background:var(--btn-primary-bg);border:1px solid var(--btn-primary-border);color:var(--btn-primary-text)}.about-btn--primary:hover{background:var(--btn-primary-hover-bg);border-color:var(--btn-primary-hover-border);transform:translateY(-1px)}.about-btn--secondary{background:var(--btn-secondary-bg);border:1px solid var(--btn-secondary-border);color:var(--btn-secondary-text)}.about-btn--secondary:hover{background:var(--btn-secondary-hover-bg);border-color:var(--btn-secondary-hover-border);transform:translateY(-1px)}.about__summary{color:var(--text-color);margin-bottom:var(--space-6);border-left:3px solid var(--btn-primary-bg);padding-left:var(--space-4);max-width:65ch;font-size:1.12rem;font-weight:600;line-height:1.7}.about__portrait-container{width:100%;max-width:240px;margin-top:var(--space-4);margin-bottom:var(--space-4);flex-direction:column;display:flex}.about__portrait-frame{aspect-ratio:1;border:5px solid var(--portrait-frame-bg);outline:1px solid var(--portrait-outline);background:var(--portrait-frame-bg);z-index:1;border-radius:1.5rem;transition:transform .3s,box-shadow .3s,outline-color .3s;position:relative;overflow:hidden;box-shadow:0 16px 32px -12px #0f172a14}.about__portrait-container:hover .about__portrait-frame{outline-color:var(--portrait-outline-hover);transform:translateY(-2px);box-shadow:0 12px 24px -10px #0f172a1a}.about__portrait-image{object-fit:cover;width:100%;height:100%;display:block}.about__portrait-fallback{background:var(--portrait-fallback-bg);color:var(--portrait-fallback-text);place-items:center;width:100%;height:100%;font-size:2.2rem;font-weight:800;display:grid}@media (width<=960px){.about-strip__left{text-align:center;align-items:center}.about__portrait-container{margin-left:auto;margin-right:auto;margin-bottom:var(--space-4)}.about__ctas{justify-content:center}}@media (width<=1024px){.brand__role{display:none}}@media (width<=768px){.brand__copy{display:none}.topbar__inner{padding:var(--space-3) 0}.topbar__nav{gap:var(--space-1)}.topbar__nav-link{padding:.25rem .55rem;font-size:.85rem}.theme-toggle-btn,.lang-toggle-btn{width:2rem;height:2rem;margin-left:var(--space-1)}.theme-toggle-icon{width:.95rem;height:.95rem}}@media (width<=360px){.brand__mark{border-radius:.6rem;width:2.2rem;height:2.2rem;font-size:.75rem}.topbar__inner{gap:var(--space-2)}.topbar__nav{gap:2px}.topbar__nav-link{padding:.2rem .35rem;font-size:.74rem}.theme-toggle-btn,.lang-toggle-btn{width:1.7rem;height:1.7rem;margin-left:2px}.theme-toggle-icon{width:.8rem;height:.8rem}.about__ctas{gap:var(--space-2);flex-direction:column;width:100%}.about-btn{width:100%;min-height:36px;font-size:.8rem}.about__role{font-size:.82rem}}.featured-project-grid{gap:var(--space-8);grid-template-columns:repeat(2,1fr);display:grid}@media (width<=768px){.featured-project-grid{gap:var(--space-6);grid-template-columns:1fr}}.project-card-list-item{flex-direction:column;list-style:none;display:flex}.featured-project-empty{padding:var(--space-12) var(--space-6);border:1px dashed var(--border-color-muted);text-align:center;background:#94a3b808;border-radius:1rem;flex-direction:column;justify-content:center;align-items:center;display:flex}.featured-project-empty__icon{width:2.8rem;height:2.8rem;stroke:var(--text-muted);opacity:.6;margin-bottom:var(--space-4)}.featured-project-empty__text{color:var(--text-muted);font-size:.95rem;font-weight:600}.project-card__media-error{background:var(--meta-badge-bg);width:100%;height:100%;min-height:200px;color:var(--text-muted);border:1px solid var(--border-color-muted);border-radius:.5rem;place-items:center;font-size:.82rem;font-weight:600;display:grid}.project-grid-section{margin-top:0}.project-grid{gap:var(--space-5);grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));display:grid}.project-card{border:1px solid var(--card-border);border-radius:var(--space-5);background:var(--card-bg);min-height:100%;box-shadow:var(--container-shadow);backface-visibility:hidden;flex-direction:column;transition:transform .4s cubic-bezier(.16,1,.3,1),border-color .4s cubic-bezier(.16,1,.3,1);display:flex;position:relative;overflow:hidden;transform:translate(0,0)}.project-card:after{content:"";border-radius:inherit;width:100%;height:100%;box-shadow:var(--card-hover-shadow);opacity:0;pointer-events:none;z-index:1;transition:opacity .4s cubic-bezier(.16,1,.3,1);position:absolute;top:0;left:0}.project-card:hover{border-color:var(--card-hover-border);transform:translateY(-2px)}.project-card:hover:after{opacity:1}.project-card--featured{border-top:3px solid var(--category-color,#3b82f6)}.project-card__media{aspect-ratio:16/10;background:var(--card-media-bg);position:relative;overflow:hidden}.project-card__media--has-video{cursor:pointer}.project-card__image{object-fit:cover;z-index:2;width:100%;height:100%;transition:transform .4s cubic-bezier(.4,0,.2,1),opacity .4s cubic-bezier(.4,0,.2,1),visibility;position:absolute;top:0;left:0}.project-card__image--slide-right{opacity:0;visibility:hidden;transition:transform .4s cubic-bezier(.4,0,.2,1),opacity .4s cubic-bezier(.4,0,.2,1),visibility .4s step-end;transform:translate(100%)}.project-card__video{object-fit:cover;z-index:1;backface-visibility:hidden;width:100%;height:100%;position:absolute;top:0;left:0;transform:translate(0,0)}.project-card__overlay{z-index:3;justify-content:center;align-items:center;gap:var(--space-2);opacity:0;pointer-events:none;backface-visibility:hidden;background:linear-gradient(#0f172a66 0%,#0f172acc 100%);width:100%;height:100%;transition:opacity .3s cubic-bezier(.16,1,.3,1);display:flex;position:absolute;top:0;left:0;transform:translate(0,0)}.project-card__media--has-video:hover .project-card__overlay{opacity:1}.project-card__overlay-text{color:#fff;text-shadow:0 2px 4px #0006;font-size:.95rem;font-weight:700;transition:transform .3s cubic-bezier(.16,1,.3,1);transform:translateY(8px)}.project-card__overlay-icon,.project-card__overlay-arrow{color:#fff;width:1.2rem;height:1.2rem;transition:transform .3s cubic-bezier(.16,1,.3,1);transform:translateY(8px)}.project-card__media--has-video:hover .project-card__overlay-text,.project-card__media--has-video:hover .project-card__overlay-icon,.project-card__media--has-video:hover .project-card__overlay-arrow{transform:translateY(0)}.project-card__featured-badge{top:var(--space-3);left:var(--space-3);z-index:4;padding:var(--space-1) var(--space-3);-webkit-backdrop-filter:blur(8px);color:#fff;text-transform:uppercase;letter-spacing:.05em;pointer-events:none;background:#0f172a99;border:1px solid #ffffff26;border-radius:999px;font-size:.72rem;font-weight:700;position:absolute;box-shadow:0 4px 12px #00000026}.project-card__content{gap:var(--space-4);padding:var(--space-5);flex-direction:column;flex:1;display:flex}.project-card__meta{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.project-card__category{letter-spacing:.05em;text-transform:uppercase;padding:var(--space-1) var(--space-3);border:1px solid #0000;border-radius:999px;align-items:center;font-size:.72rem;font-weight:700;transition:all .3s;display:inline-flex}.project-card__category--management{background:var(--badge-management-bg);color:var(--badge-management-color);border-color:var(--badge-management-border);box-shadow:0 0 8px var(--badge-management-glow)}.project-card__category--ai{background:var(--badge-ai-bg);color:var(--badge-ai-color);border-color:var(--badge-ai-border);box-shadow:0 0 8px var(--badge-ai-glow)}.project-card__category--e-commerce{background:var(--badge-ecommerce-bg);color:var(--badge-ecommerce-color);border-color:var(--badge-ecommerce-border);box-shadow:0 0 8px var(--badge-ecommerce-glow)}.project-card__category--penetration-testing{background:var(--badge-pentest-bg);color:var(--badge-pentest-color);border-color:var(--badge-pentest-border);box-shadow:0 0 8px var(--badge-pentest-glow)}.project-card:hover .project-card__category--management{border-color:var(--badge-management-hover-border)}.project-card:hover .project-card__category--ai{border-color:var(--badge-ai-hover-border)}.project-card:hover .project-card__category--e-commerce{border-color:var(--badge-ecommerce-hover-border)}.project-card:hover .project-card__category--penetration-testing{border-color:var(--badge-pentest-hover-border)}.project-card__badge{padding:var(--space-1) var(--space-2);background:var(--card-badge-bg);color:var(--card-badge-text);border-radius:999px;font-size:.74rem;font-weight:700}.project-card__title{color:var(--text-color);font-size:1.12rem;font-weight:800;line-height:1.35}.project-card__summary{color:var(--text-dark-muted);font-size:.95rem;line-height:1.75}.project-card__tags{gap:var(--space-2);flex-wrap:wrap;display:flex}.project-card__tag{padding:var(--space-1) var(--space-3);border:1px solid var(--tag-border);background:var(--tag-bg);color:var(--tag-text);border-radius:999px;font-size:.78rem;font-weight:600}.project-card__actions{z-index:2;gap:var(--space-2);padding-top:var(--space-1);flex-direction:column;margin-top:auto;display:flex;position:relative}.btn{justify-content:center;align-items:center;gap:var(--space-2);min-height:36px;padding:var(--space-2) var(--space-3);border:1px solid #0000;border-radius:6px;flex:100%;width:100%;font-size:.8rem;text-decoration:none;transition:transform .2s cubic-bezier(.16,1,.3,1),background .2s cubic-bezier(.16,1,.3,1),border-color .2s cubic-bezier(.16,1,.3,1),box-shadow .2s cubic-bezier(.16,1,.3,1);display:inline-flex}.btn svg{width:.9rem!important;height:.9rem!important}.btn:hover{transform:translateY(-1px)}@media (width>=769px){.project-grid:not(.featured-project-grid) .project-card__actions{gap:var(--space-3);flex-direction:row}.project-grid:not(.featured-project-grid) .btn{width:auto;min-height:44px;padding:var(--space-3) var(--space-4);border-radius:8px;flex:auto;font-size:.92rem}.project-grid:not(.featured-project-grid) .btn svg{width:1.1rem!important;height:1.1rem!important}.featured-project-grid .project-card__actions{gap:var(--space-2);flex-direction:column}.featured-project-grid .btn{width:100%;min-height:38px;padding:var(--space-2) var(--space-3);border-radius:6px;flex:100%;font-size:.85rem}.featured-project-grid .btn svg{width:.95rem!important;height:.95rem!important}}@media (width<=360px){.btn{min-height:34px;padding:var(--space-1) var(--space-2);font-size:.76rem}.btn svg{width:.85rem!important;height:.85rem!important}}.btn-primary{background:var(--btn-primary-bg);color:var(--btn-primary-text);box-shadow:var(--btn-primary-shadow)}.btn-primary:hover{background:var(--btn-primary-hover-bg)}.btn-secondary{border-color:var(--btn-secondary-border);background:var(--btn-secondary-bg);color:var(--btn-secondary-text)}.btn-secondary:hover{background:var(--btn-secondary-hover-bg);border-color:var(--btn-secondary-hover-border)}.btn-muted{border-color:var(--border-color-muted);color:var(--text-muted);cursor:not-allowed;box-shadow:none;background:#94a3b81a}.btn-lock{pointer-events:none;user-select:none}.hero-profile-card{padding:var(--space-6);border:1px solid var(--container-border);border-radius:var(--space-6);background:var(--container-bg);box-shadow:var(--container-shadow)}.hero-profile-card__header{align-items:center;gap:var(--space-4);display:flex}.hero-profile-card__avatar{border-radius:var(--space-5);background:var(--brand-mark-bg);width:4.5rem;height:4.5rem;color:var(--brand-mark-text);place-items:center;font-size:1.1rem;font-weight:800;display:grid;overflow:hidden}.hero-profile-card__image{object-fit:cover;width:100%;height:100%}.hero-profile-card__name{color:var(--text-color);font-size:1rem;font-weight:800}.hero-profile-card__role{color:var(--text-muted);margin-top:.25rem;font-size:.88rem}.hero-profile-card__positioning{margin-top:var(--space-4);color:var(--text-dark-muted);line-height:1.8}.about-strip__content{gap:var(--space-6);flex-direction:column;display:flex}.about-strip__bios{gap:var(--space-5);flex-direction:column;display:flex}.about-strip__groups{gap:var(--space-5);grid-template-columns:repeat(auto-fit,minmax(180px,1fr));display:grid}.about-group__title{margin-bottom:var(--space-3);color:var(--text-color);font-size:.95rem;font-weight:700}.about-chip-list{gap:var(--space-2);flex-wrap:wrap;display:flex}.about-chip{padding:var(--space-2) var(--space-3);border:1px solid var(--chip-border);background:var(--chip-bg);color:var(--chip-text);border-radius:999px;align-items:center;font-size:.82rem;font-weight:600;display:inline-flex}.category-accordion{gap:var(--space-3);margin-top:var(--space-5);flex-direction:column;display:flex}.category-accordion-item{border:1px solid var(--border-color-muted);background:var(--container-bg);border-radius:12px;transition:border-color .2s;overflow:hidden}.category-accordion-item:hover,.category-accordion-item[data-hover=true],.category-accordion-item[data-open=true]{border-color:var(--category-color)}.category-accordion-trigger{justify-content:space-between;align-items:center;gap:var(--space-4);width:100%;padding:var(--space-4) var(--space-5);cursor:pointer;text-align:left;background:0 0;border:none;transition:background .15s,color .15s;display:flex}.category-accordion-item[data-open=true] .category-accordion-trigger{background:color-mix(in srgb, var(--category-color) 12%, transparent)}.category-accordion-trigger:focus-visible{background:color-mix(in srgb, var(--category-color) 10%, transparent);outline:none}.category-accordion-trigger:hover,.category-accordion-trigger[data-hover=true]{background:#94a3b80d}.category-accordion-item[data-open=true] .category-accordion-trigger:hover,.category-accordion-item[data-open=true] .category-accordion-trigger[data-hover=true]{background:color-mix(in srgb, var(--category-color) 18%, transparent)}.category-accordion-trigger__name{letter-spacing:.01em;color:var(--text-color);font-size:.9rem;font-weight:600;transition:color .15s}.category-accordion-item[data-open=true] .category-accordion-trigger__name{color:var(--category-color)}.category-accordion-trigger__trailing{align-items:center;gap:var(--space-2);flex-shrink:0;display:flex}.category-accordion-trigger__count{min-width:1.75rem;height:1.75rem;padding:0 var(--space-2);background:color-mix(in srgb, var(--category-color) 15%, transparent);color:var(--category-color);border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;font-size:.75rem;font-weight:700;transition:all .15s;display:inline-flex}.category-accordion-item[data-open=true] .category-accordion-trigger__count{background:var(--category-color);color:#fff}.category-accordion-trigger__icon{width:20px;height:20px;color:var(--category-color);flex-shrink:0;justify-content:center;align-items:center;transition:transform .2s cubic-bezier(.4,0,.2,1),color .15s;display:flex}.category-accordion-item[data-open=true] .category-accordion-trigger__icon{color:var(--category-color);transform:rotate(180deg)}.category-accordion-content-wrapper{grid-template-rows:0fr;transition:grid-template-rows .35s cubic-bezier(.4,0,.2,1);display:grid}.category-accordion-content-wrapper[hidden]{display:none}.category-accordion-content-wrapper:not([hidden]){grid-template-rows:1fr}.category-accordion-content-wrapper>div{overflow:hidden}.category-accordion-content{padding:0 var(--space-5) var(--space-5);border-top:1px solid var(--border-color-muted);opacity:0;transition:opacity .2s .1s;overflow:hidden}.category-accordion-content-wrapper:not([hidden]) .category-accordion-content{opacity:1}.category-accordion-content .project-grid{margin-top:var(--space-4);grid-template-columns:1fr}.section--timeline{padding:var(--space-12) 0 var(--space-16);background:var(--bg-shell-gradient)}.timeline-container{margin-top:var(--space-10);width:100%;position:relative}.timeline-item[data-category=web],.timeline-chart-dot[data-category=web],.timeline-curve-segment[data-category=web]{--accent-color:#2563eb;--accent-glow:#2563eb26}.timeline-item[data-category=security],.timeline-chart-dot[data-category=security],.timeline-curve-segment[data-category=security]{--accent-color:#dc2626;--accent-glow:#dc262626}.timeline-item[data-category=ai],.timeline-chart-dot[data-category=ai],.timeline-curve-segment[data-category=ai]{--accent-color:#7c3aed;--accent-glow:#7c3aed26}.timeline-item[data-category=cloud],.timeline-chart-dot[data-category=cloud],.timeline-curve-segment[data-category=cloud]{--accent-color:#0891b2;--accent-glow:#0891b226}.timeline-item[data-category=data],.timeline-chart-dot[data-category=data],.timeline-curve-segment[data-category=data]{--accent-color:#059669;--accent-glow:#05966926}.timeline-item[data-category=ui-ux],.timeline-chart-dot[data-category=ui-ux],.timeline-curve-segment[data-category=ui-ux]{--accent-color:#db2777;--accent-glow:#db277726}.timeline-item[data-category=other],.timeline-chart-dot[data-category=other],.timeline-curve-segment[data-category=other]{--accent-color:#475569;--accent-glow:#47556926}.timeline-item[data-category=gold],.timeline-chart-dot[data-category=gold],.timeline-curve-segment--gold{--accent-color:#c5a02b;--accent-glow:#c5a02b26}html[data-theme=dark] .timeline-item[data-category=web],html[data-theme=dark] .timeline-chart-dot[data-category=web],html[data-theme=dark] .timeline-curve-segment[data-category=web]{--accent-color:#38bdf8;--accent-glow:#38bdf840}html[data-theme=dark] .timeline-item[data-category=security],html[data-theme=dark] .timeline-chart-dot[data-category=security],html[data-theme=dark] .timeline-curve-segment[data-category=security]{--accent-color:#f43f5e;--accent-glow:#f43f5e40}html[data-theme=dark] .timeline-item[data-category=ai],html[data-theme=dark] .timeline-chart-dot[data-category=ai],html[data-theme=dark] .timeline-curve-segment[data-category=ai]{--accent-color:#a78bfa;--accent-glow:#a78bfa40}html[data-theme=dark] .timeline-item[data-category=cloud],html[data-theme=dark] .timeline-chart-dot[data-category=cloud],html[data-theme=dark] .timeline-curve-segment[data-category=cloud]{--accent-color:#22d3ee;--accent-glow:#22d3ee40}html[data-theme=dark] .timeline-item[data-category=data],html[data-theme=dark] .timeline-chart-dot[data-category=data],html[data-theme=dark] .timeline-curve-segment[data-category=data]{--accent-color:#34d399;--accent-glow:#34d39940}html[data-theme=dark] .timeline-item[data-category=ui-ux],html[data-theme=dark] .timeline-chart-dot[data-category=ui-ux],html[data-theme=dark] .timeline-curve-segment[data-category=ui-ux]{--accent-color:#f472b6;--accent-glow:#f472b640}html[data-theme=dark] .timeline-item[data-category=other],html[data-theme=dark] .timeline-chart-dot[data-category=other],html[data-theme=dark] .timeline-curve-segment[data-category=other]{--accent-color:#94a3b8;--accent-glow:#94a3b840}html[data-theme=dark] .timeline-item[data-category=gold],html[data-theme=dark] .timeline-chart-dot[data-category=gold],html[data-theme=dark] .timeline-curve-segment--gold{--accent-color:#d4af37;--accent-glow:#d4af3740}.timeline-chart-wrapper{width:100%;max-width:900px;padding:var(--space-4) 0;margin:0 auto;position:relative}.timeline-chart-svg{width:100%;height:auto;display:block;overflow:visible}.chart-axis-label{fill:var(--text-muted);letter-spacing:.05em;text-transform:uppercase;font-size:.68rem;font-weight:700}.chart-axis-title{fill:var(--text-muted);letter-spacing:.05em;text-transform:uppercase;opacity:.85;font-size:.65rem;font-weight:800}.timeline-curve-segment{stroke:var(--accent-color);stroke-width:4px;stroke-linecap:round;fill:none;filter:drop-shadow(0 2px 8px var(--accent-glow));transition:stroke .3s,filter .3s}html[data-theme=dark] .timeline-curve-segment{filter:drop-shadow(0 2px 12px var(--accent-glow))}.timeline-chart-overlay{top:var(--space-4);bottom:var(--space-4);pointer-events:none;position:absolute;left:0;right:0}.timeline-chart-dot{pointer-events:auto;cursor:pointer;z-index:5;background:0 0;border:none;border-radius:50%;outline:none;justify-content:center;align-items:center;width:32px;height:32px;padding:0;transition:transform .25s cubic-bezier(.16,1,.3,1),z-index .1s step-end;display:flex;position:absolute;transform:translate(-50%,-50%)}.timeline-chart-dot:hover,.timeline-chart-dot:focus-within{z-index:100!important}.timeline-chart-dot--active{z-index:10}.timeline-chart-dot-inner{border:2px solid var(--accent-color);background:var(--bg-shell);border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;margin:0;transition:transform .4s cubic-bezier(.34,1.56,.64,1),background-color .25s,border-color .25s,box-shadow .25s;display:flex;box-shadow:0 2px 4px #0000001a}.timeline-chart-dot-inner:after{content:"";background:var(--accent-color);border-radius:50%;width:6px;height:6px;transition:transform .45s cubic-bezier(.34,1.56,.64,1);display:block;transform:scale(0)}.timeline-chart-dot:hover .timeline-chart-dot-inner:after,.timeline-chart-dot:focus-visible .timeline-chart-dot-inner:after,.timeline-chart-dot--active .timeline-chart-dot-inner:after{transform:scale(1)}.timeline-chart-dot:hover .timeline-chart-dot-inner,.timeline-chart-dot:focus-visible .timeline-chart-dot-inner{border-color:var(--accent-color);box-shadow:0 0 12px var(--accent-glow);transform:scale(1.2)}.timeline-chart-dot--active .timeline-chart-dot-inner{border-color:var(--accent-color);background:var(--bg-shell);box-shadow:0 0 16px var(--accent-glow);transform:scale(1.35)}.timeline-chart-dot-pulse{border:1.5px solid var(--accent-color);opacity:0;pointer-events:none;border-radius:50%;width:32px;height:32px;position:absolute;transform:scale(.8)}.timeline-chart-dot--active .timeline-chart-dot-pulse{animation:2.4s cubic-bezier(.25,0,0,1) infinite chartDotPulse}@keyframes chartDotPulse{0%{opacity:.8;transform:scale(.8)}to{opacity:0;transform:scale(1.8)}}.timeline-chart-dot-label{color:var(--text-muted);letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;background:var(--bg-shell);border:1px solid var(--border-color-muted);pointer-events:none;z-index:1;border-radius:4px;padding:2px 6px;font-size:.62rem;font-weight:800;transition:all .25s cubic-bezier(.16,1,.3,1);position:absolute;top:-30px;left:50%;transform:translate(-50%);box-shadow:0 1px 3px #0000000d}.timeline-chart-dot:hover .timeline-chart-dot-label,.timeline-chart-dot:focus-visible .timeline-chart-dot-label,.timeline-chart-dot--active .timeline-chart-dot-label{color:var(--accent-color);border-color:var(--accent-color);background:var(--bg-shell);box-shadow:0 2px 6px var(--accent-glow);transform:translate(-50%)translateY(-2px)}.timeline-chart-tooltip{width:220px;padding:var(--space-3) var(--space-4);border:1px solid var(--container-border);color:var(--text-color);box-shadow:var(--container-shadow);pointer-events:none;opacity:0;visibility:hidden;text-align:center;border-radius:12px;flex-direction:column;gap:2px;transition:opacity .25s cubic-bezier(.16,1,.3,1),transform .25s cubic-bezier(.16,1,.3,1),visibility .25s step-end;display:flex;position:absolute;bottom:220%;left:50%;transform:translate(-50%)translateY(8px);z-index:9999!important;background:#fff!important}html[data-theme=dark] .timeline-chart-tooltip{background:#1e293b!important}.timeline-chart-tooltip:after{content:"";border:6px solid #0000;border-top-color:#fff;position:absolute;top:100%;left:50%;transform:translate(-50%)}html[data-theme=dark] .timeline-chart-tooltip:after{border-color:#1e293b #0000 #0000}.timeline-chart-dot:hover .timeline-chart-tooltip,.timeline-chart-dot:focus-visible .timeline-chart-tooltip,.timeline-chart-dot--autoplay-active .timeline-chart-tooltip{opacity:1;visibility:visible;transition:opacity .25s cubic-bezier(.16,1,.3,1),transform .25s cubic-bezier(.16,1,.3,1);transform:translate(-50%)translateY(0)}.timeline-chart-tooltip-title{color:var(--text-color);font-size:.8rem;font-weight:800;line-height:1.25}.timeline-chart-tooltip-issuer{color:var(--text-muted);font-size:.72rem;font-weight:600}.timeline-chart-tooltip-date{color:var(--accent-color);text-transform:uppercase;margin-top:2px;font-size:.68rem;font-weight:700}.timeline-autoplay-badge{align-items:center;gap:var(--space-2);background:var(--bg-shell);border:1px solid var(--border-color-muted);color:var(--text-muted);z-index:15;pointer-events:none;border-radius:999px;padding:4px 10px;font-size:.72rem;animation:.3s forwards autoplayFadeIn;display:inline-flex;position:absolute;bottom:-18px;right:85px;box-shadow:0 2px 8px #0000000d}.timeline-autoplay-text strong{color:var(--accent-color,var(--nav-active-color));font-weight:800}.timeline-autoplay-pulse{background-color:var(--accent-color,var(--nav-active-color));width:6px;height:6px;box-shadow:0 0 8px var(--accent-color,var(--nav-active-color));border-radius:50%;animation:1.5s ease-in-out infinite badgePulse}.timeline-autoplay-badge[data-category=web]{--accent-color:#2563eb}.timeline-autoplay-badge[data-category=security]{--accent-color:#dc2626}.timeline-autoplay-badge[data-category=ai]{--accent-color:#7c3aed}.timeline-autoplay-badge[data-category=cloud]{--accent-color:#0891b2}.timeline-autoplay-badge[data-category=data]{--accent-color:#059669}.timeline-autoplay-badge[data-category=ui-ux]{--accent-color:#db2777}.timeline-autoplay-badge[data-category=other]{--accent-color:#475569}.timeline-autoplay-badge[data-category=gold]{--accent-color:#c5a02b}html[data-theme=dark] .timeline-autoplay-badge[data-category=web]{--accent-color:#38bdf8}html[data-theme=dark] .timeline-autoplay-badge[data-category=security]{--accent-color:#f43f5e}html[data-theme=dark] .timeline-autoplay-badge[data-category=ai]{--accent-color:#a78bfa}html[data-theme=dark] .timeline-autoplay-badge[data-category=cloud]{--accent-color:#22d3ee}html[data-theme=dark] .timeline-autoplay-badge[data-category=data]{--accent-color:#34d399}html[data-theme=dark] .timeline-autoplay-badge[data-category=ui-ux]{--accent-color:#f472b6}html[data-theme=dark] .timeline-autoplay-badge[data-category=other]{--accent-color:#94a3b8}html[data-theme=dark] .timeline-autoplay-badge[data-category=gold]{--accent-color:#d4af37}@keyframes badgePulse{0%,to{opacity:.5;transform:scale(.8)}50%{opacity:1;transform:scale(1.3)}}@keyframes autoplayFadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.desktop-details-container{margin-top:var(--space-8);justify-content:center;width:100%;display:flex}.desktop-details-container .timeline-item{width:100%;max-width:540px;display:block}.desktop-details-container .timeline-node-container{display:none!important}.desktop-details-container .timeline-card{cursor:default!important;box-shadow:0 12px 30px var(--accent-glow)!important;border-color:var(--accent-color)!important;transform:none!important}.desktop-details-container .timeline-card:hover{box-shadow:0 12px 30px var(--accent-glow)!important;border-color:var(--accent-color)!important;transform:none!important}.desktop-details-container .timeline-card__title{-webkit-line-clamp:unset;height:auto;overflow:visible}.desktop-details-container .timeline-card__glow{opacity:.6!important}.active-card-wrapper{justify-content:center;width:100%;display:flex}.animate-fade-in{animation:.65s cubic-bezier(.16,1,.3,1) forwards chartCardFadeIn}@keyframes chartCardFadeIn{0%{opacity:0;filter:blur(8px);transform:translateY(16px)scale(.97)}to{opacity:1;filter:blur();transform:translateY(0)scale(1)}}.timeline-card{width:100%;padding:var(--space-5) var(--space-6);border:1px solid var(--card-border);border-left:5px solid var(--accent-color);background:var(--card-bg);box-shadow:var(--container-shadow);cursor:pointer;gap:var(--space-4);backface-visibility:hidden;border-radius:12px;flex-direction:column;transition:transform .4s cubic-bezier(.16,1,.3,1),box-shadow .4s cubic-bezier(.16,1,.3,1),border-color .4s cubic-bezier(.16,1,.3,1);display:flex;position:relative;overflow:hidden;transform:translateZ(0)}.timeline-card__glow{background:radial-gradient(circle, var(--accent-glow) 0%, transparent 60%);opacity:0;pointer-events:none;z-index:1;width:200%;height:200%;transition:opacity .4s;position:absolute;top:-50%;left:-50%}.timeline-card--active .timeline-card__glow,.timeline-card:hover .timeline-card__glow{opacity:1}.timeline-card__content{z-index:2;gap:var(--space-3);flex-direction:column;height:100%;display:flex;position:relative}.timeline-card:hover{border-color:var(--accent-color);box-shadow:0 16px 36px var(--accent-glow);transform:translateY(-4px)}.timeline-card--active{border-color:var(--accent-color)!important;box-shadow:0 20px 40px var(--accent-glow)!important}.timeline-card__meta-top{justify-content:space-between;align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.timeline-date{color:var(--accent-color);text-transform:uppercase;letter-spacing:.05em;font-size:.8rem;font-weight:700}.timeline-badge{letter-spacing:.05em;text-transform:uppercase;padding:var(--space-1) var(--space-3);border:1px solid #0000;border-radius:999px;align-items:center;font-size:.72rem;font-weight:700;display:inline-flex}.timeline-badge--category{background:var(--accent-glow);color:var(--accent-color);border-color:color-mix(in srgb, var(--accent-color) 30%, transparent)}.timeline-card__title{color:var(--text-color);-webkit-line-clamp:2;-webkit-box-orient:vertical;height:2.7rem;margin:0;font-size:1.05rem;font-weight:800;line-height:1.35;display:-webkit-box;overflow:hidden}.timeline-card__issuer{color:var(--text-muted);margin:0;font-size:.88rem}.timeline-card__issuer-name{color:var(--text-dark-muted);font-weight:700}.timeline-card__tags{gap:var(--space-1);flex-wrap:wrap;margin-top:auto;display:flex}.timeline-card__tag{color:var(--text-muted);font-size:.72rem;font-weight:600}.timeline-card__actions{gap:var(--space-2);margin-top:var(--space-2);width:100%;display:flex}@media (width<=480px){.timeline-card__actions{flex-direction:column}}.btn-timeline{justify-content:center;align-items:center;gap:var(--space-1);height:36px;padding:0 var(--space-3);border-radius:6px;flex:1;font-size:.8rem;font-weight:700;text-decoration:none;transition:all .2s ease-in-out;display:inline-flex}.btn-timeline--primary{background:var(--accent-color);color:var(--bg-shell);border:1px solid var(--accent-color)}.btn-timeline--primary:hover{filter:brightness(1.1);transform:translateY(-1px)}.btn-timeline--secondary{background:var(--btn-secondary-bg);border:1px solid var(--btn-secondary-border);color:var(--text-color)}.btn-timeline--secondary:hover{background:var(--btn-secondary-hover-bg);border-color:var(--accent-color);color:var(--accent-color);transform:translateY(-1px)}.btn-timeline-icon{width:.85rem;height:.85rem}.desktop-chart-view{display:block}.mobile-timeline-view{display:none}@media (width<=991px){.desktop-chart-view{display:none}.mobile-timeline-view{display:block}.mobile-timeline-view .timeline-guide-line{background:var(--border-color-muted);z-index:1;border-radius:999px;width:3px;height:auto;position:absolute;inset:0 auto 0 20px}.mobile-timeline-view .timeline-track{gap:var(--space-6);z-index:2;flex-direction:column;padding:0;display:flex;position:relative}.mobile-timeline-view .timeline-item{gap:var(--space-2);text-align:left;grid-template-columns:40px 1fr;align-items:start;width:100%;display:grid}.mobile-timeline-view .timeline-node-container{justify-content:center;align-items:center;width:40px;height:40px;display:flex}.mobile-timeline-view .timeline-dot{cursor:pointer;z-index:3;background:0 0;border:none;border-radius:50%;outline:none;justify-content:center;align-items:center;width:32px;height:32px;padding:0;transition:transform .25s cubic-bezier(.16,1,.3,1);display:flex;position:relative}.mobile-timeline-view .timeline-dot-inner{border:2px solid var(--accent-color);background:var(--bg-shell);border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;margin:0;transition:transform .4s cubic-bezier(.34,1.56,.64,1),background-color .25s,border-color .25s,box-shadow .25s;display:flex;box-shadow:0 2px 4px #0000001a}.mobile-timeline-view .timeline-dot-inner:after{content:"";background:var(--accent-color);border-radius:50%;width:6px;height:6px;transition:transform .45s cubic-bezier(.34,1.56,.64,1);display:block;transform:scale(0)}.mobile-timeline-view .timeline-dot:hover .timeline-dot-inner:after,.mobile-timeline-view .timeline-dot:focus-visible .timeline-dot-inner:after,.mobile-timeline-view .timeline-dot--active .timeline-dot-inner:after{transform:scale(1)}.mobile-timeline-view .timeline-dot:hover .timeline-dot-inner,.mobile-timeline-view .timeline-dot:focus-visible .timeline-dot-inner{border-color:var(--accent-color);box-shadow:0 0 12px var(--accent-glow);transform:scale(1.2)}.mobile-timeline-view .timeline-dot--active .timeline-dot-inner{border-color:var(--accent-color);background:var(--bg-shell);box-shadow:0 0 16px var(--accent-glow);transform:scale(1.35)}.mobile-timeline-view .timeline-card{cursor:default;margin-left:0}.mobile-timeline-view .timeline-card__title{-webkit-line-clamp:unset;height:auto;overflow:visible}}.contact-panel__socials{gap:var(--space-4);margin-top:var(--space-4);margin-bottom:var(--space-6);flex-wrap:wrap;display:flex}.contact-social-link{color:var(--text-muted);align-items:center;padding-bottom:2px;font-size:.9rem;font-weight:600;text-decoration:none;transition:color .2s;display:inline-flex;position:relative}.contact-social-link:after{content:"";background:var(--nav-active-color);transform-origin:100%;width:100%;height:1.5px;transition:transform .3s cubic-bezier(.4,0,.2,1);position:absolute;bottom:0;left:0;transform:scaleX(0)}.contact-social-link:hover{color:var(--text-nav-hover)}.contact-social-link:hover:after{transform-origin:0;transform:scaleX(1)}@media (width<=640px){.contact-panel__actions{flex-direction:column;width:100%;gap:var(--space-3)!important}.contact-panel__actions .hero-btn{width:100%}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.disable-hover,.disable-hover *{pointer-events:none!important}.section--github{padding:var(--space-8) 0 var(--space-12)}.github-contrib-card{padding:var(--space-8) var(--space-8);border:1px solid var(--container-border);background:var(--container-bg);box-shadow:var(--container-shadow);gap:var(--space-6);border-radius:1.5rem;flex-direction:column;display:flex}.github-contrib-header{justify-content:space-between;align-items:flex-start;gap:var(--space-4);flex-wrap:wrap;display:flex}.github-contrib-title-container{gap:var(--space-2);flex-direction:column;display:flex}.github-contrib-title{align-items:center;gap:var(--space-2);color:var(--text-color);margin:0;font-size:1.35rem;font-weight:800;display:inline-flex}.github-contrib-title svg{color:var(--text-muted)}.github-contrib-subtitle{color:var(--text-muted);margin:0;font-size:.88rem}.github-year-switcher{align-items:center;gap:var(--space-2);display:inline-flex}.github-year-btn{width:2.2rem;height:2.2rem;color:var(--text-color);cursor:pointer;background:0 0;border:none;border-radius:8px;place-items:center;transition:background-color .2s,color .2s;display:grid}.github-year-btn:hover:not(:disabled){background:#94a3b833}.github-year-btn:disabled{opacity:.3;cursor:not-allowed}.github-year-dropdown-container{align-items:center;display:inline-flex;position:relative}.github-year-select-btn{background:var(--btn-secondary-bg);border:1px solid var(--btn-secondary-border);color:var(--text-color);cursor:pointer;text-align:center;border-radius:8px;outline:none;justify-content:center;align-items:center;min-width:9.5rem;padding:.45rem 2.2rem;font-size:.88rem;font-weight:700;transition:border-color .2s,background-color .2s,box-shadow .2s;display:inline-flex;position:relative;box-shadow:0 1px 3px #0000000d}.github-year-select-btn:hover{background:var(--btn-secondary-hover-bg);border-color:var(--btn-secondary-hover-border)}.github-year-select-btn:focus-visible{border-color:var(--nav-active-color);box-shadow:0 0 0 3px var(--nav-active-bg)}.github-select-chevron{pointer-events:none;color:var(--text-muted);justify-content:center;align-items:center;transition:transform .2s;display:flex;position:absolute;right:12px}.github-select-chevron--open{transform:rotate(180deg)}.github-year-dropdown-list{background:var(--btn-secondary-bg);border:1px solid var(--btn-secondary-border);width:100%;box-shadow:var(--container-shadow);z-index:100;border-radius:8px;flex-direction:column;padding:4px 0;display:flex;position:absolute;top:110%;left:50%;overflow:hidden;transform:translate(-50%)}html[data-theme=dark] .github-year-dropdown-list{background:#1e293b;border-color:#ffffff1a}.github-year-dropdown-item{width:100%;color:var(--text-color);padding:.5rem var(--space-4);cursor:pointer;text-align:center;background:0 0;border:none;font-size:.88rem;font-weight:600;transition:background-color .15s,color .15s}.github-year-dropdown-item:hover{background:#94a3b81f}.github-year-dropdown-item--active{font-weight:700;background:var(--nav-active-bg)!important;color:var(--nav-active-color)!important}.github-contrib-summary{color:var(--text-color);letter-spacing:-.02em;font-size:2.2rem;font-weight:800}.github-contrib-summary-subtitle{color:var(--text-muted);font-size:.95rem}.github-calendar-scroller{scrollbar-width:thin;width:100%;padding-bottom:var(--space-2);overflow-x:auto}@media (width>=1024px){.github-calendar-scroller{padding-bottom:0;overflow-x:hidden}}.github-calendar-wrapper{padding-top:var(--space-2);width:100%;min-width:680px;height:fit-content;margin:0 auto;display:block}.contrib-grid-container{column-gap:var(--space-2);grid-template-columns:auto 1fr;align-items:stretch;row-gap:0;width:100%;height:fit-content;display:grid}.contrib-days-column{color:var(--text-muted);text-align:right;grid-area:2/1;grid-template-rows:repeat(7,1fr);justify-content:end;gap:3px;padding-right:4px;font-size:.68rem;display:grid}.contrib-days-column span{justify-content:flex-end;align-items:center;display:flex}.contrib-months-row{grid-area:1/2;grid-template-columns:repeat(53,1fr);gap:3px;width:100%;height:18px;display:grid;position:relative}.contrib-month-label{color:var(--text-muted);white-space:nowrap;font-size:.68rem}.contrib-grid{aspect-ratio:53/7;grid-area:2/2;grid-template-columns:repeat(53,1fr);gap:3px;width:100%;display:grid}.contrib-column{flex-direction:column;gap:3px;width:100%;height:100%;display:flex}.contrib-square{aspect-ratio:1;cursor:pointer;border-radius:2px;width:100%;height:auto;transition:transform .15s cubic-bezier(.16,1,.3,1)}.contrib-square:hover{z-index:2;transform:scale(1.3);box-shadow:0 0 6px #00000026}.github-contrib-footer{color:var(--text-muted);justify-content:space-between;align-items:center;gap:var(--space-3);padding-top:var(--space-4);border-top:1px solid var(--border-color-muted);flex-wrap:wrap;font-size:.76rem;display:flex}.github-contrib-legend{align-items:center;gap:6px;display:flex}.legend-squares{gap:3px;display:flex}.legend-square{border-radius:2px;width:10px;height:10px}.github-contrib-loading{padding:var(--space-12) 0;color:var(--text-color);justify-content:center;align-items:center;gap:var(--space-4);flex-direction:column;display:flex}.github-spinner{border:3px solid color-mix(in srgb, var(--text-color) 15%, transparent);border-top-color:var(--nav-active-color);border-radius:50%;width:2rem;height:2rem;animation:.8s linear infinite spin}.github-contrib-loading-overlay{background:color-mix(in srgb, var(--container-bg) 75%, transparent);color:var(--text-color);justify-content:center;align-items:center;gap:var(--space-4);z-index:10;backdrop-filter:blur(2px);border-radius:12px;flex-direction:column;display:flex;position:absolute;inset:0}.github-contrib-error{padding:var(--space-12) 0;color:var(--text-muted);justify-content:center;align-items:center;gap:var(--space-3);text-align:center;flex-direction:column;display:flex}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=768px){.github-contrib-card{padding:var(--space-5) var(--space-5)}.github-calendar-scroller{margin-top:var(--space-6)}}.github-langs-card{padding:var(--space-8) var(--space-8);border:1px solid var(--container-border);background:var(--container-bg);box-shadow:var(--container-shadow);border-radius:1.5rem}.github-langs-header{margin-bottom:var(--space-6)}.github-langs-title{align-items:center;gap:var(--space-2);color:var(--text-color);margin:var(--space-1) 0;font-size:1.35rem;font-weight:800;display:flex}.github-langs-title svg{color:var(--text-muted)}.github-langs-subtitle{color:var(--text-muted);margin:0;font-size:.88rem}.lang-distribution-bar{background-color:var(--border-color-muted);width:100%;height:12px;margin-bottom:var(--space-6);border-radius:6px;display:flex;overflow:hidden}.lang-bar-segment{height:100%;transition:opacity .2s}.lang-bar-segment:hover{opacity:.85}.lang-grid{gap:var(--space-4);grid-template-columns:repeat(3,1fr);display:grid}.lang-item{padding:var(--space-3) var(--space-4);border:1px solid var(--border-color-muted);cursor:pointer;background:#94a3b80a;border-radius:.75rem;justify-content:space-between;align-items:center;transition:transform .2s cubic-bezier(.16,1,.3,1),border-color .2s,box-shadow .2s;display:flex}.lang-item:hover{border-color:var(--hover-color);transform:translateY(-2px);box-shadow:0 4px 12px #94a3b814}.lang-item-left{align-items:center;gap:var(--space-2);display:flex}.lang-color-dot{border-radius:50%;width:8px;height:8px}.lang-name{color:var(--text-color);font-size:.9rem;font-weight:600}.lang-percentage{color:var(--text-muted);font-size:.9rem;font-weight:700}.github-langs-loading{gap:var(--space-6);flex-direction:column;display:flex}.lang-bar-skeleton{background:linear-gradient(90deg, var(--border-color-muted) 25%, #94a3b833 50%, var(--border-color-muted) 75%);background-size:200% 100%;border-radius:6px;width:100%;height:12px;animation:1.5s infinite loading-shimmer}.lang-grid-skeleton{gap:var(--space-4);grid-template-columns:repeat(3,1fr);display:grid}.lang-item-skeleton{background:linear-gradient(90deg, var(--border-color-muted) 25%, #94a3b833 50%, var(--border-color-muted) 75%);background-size:200% 100%;border-radius:.75rem;height:42px;animation:1.5s infinite loading-shimmer}@keyframes loading-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.github-langs-error{padding:var(--space-8) 0;color:var(--text-muted);justify-content:center;align-items:center;gap:var(--space-3);text-align:center;flex-direction:column;display:flex}@media (width<=768px){.github-langs-card{padding:var(--space-5) var(--space-5)}.lang-grid,.lang-grid-skeleton{gap:var(--space-3);grid-template-columns:repeat(2,1fr)}}@media (width<=480px){.lang-grid,.lang-grid-skeleton{grid-template-columns:1fr}}
