*,*:before,*:after{box-sizing:border-box}:root{--col: rgba(255,255,255,.04);--border: rgba(255,255,255,.08);--text-muted: #71717a;--text-dim: #a1a1aa}html{scroll-behavior:smooth}html.home-lock{scroll-behavior:auto!important}html.home-lock body{opacity:0}body{background:#050507;color:#f4f4f5;font-family:DM Sans,sans-serif;overflow-x:hidden;cursor:none}#cursor{width:10px;height:10px;background:#f59e0b;border-radius:50%;position:fixed;top:0;left:0;pointer-events:none;z-index:9999;transition:transform .1s ease;mix-blend-mode:difference}#cursor-ring{width:36px;height:36px;border:1.5px solid rgba(245,158,11,.5);border-radius:50%;position:fixed;top:0;left:0;pointer-events:none;z-index:9998;transition:all .15s ease}::-webkit-scrollbar{width:3px}::-webkit-scrollbar-track{background:#050507}::-webkit-scrollbar-thumb{background:#7c3aed;border-radius:10px}#scroll-progress{position:fixed;top:0;left:0;height:2px;background:linear-gradient(90deg,#7c3aed,#f59e0b);z-index:1000;transition:width .1s linear}.glass{background:#ffffff08;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--border)}.card{background:#ffffff06;border:1px solid rgba(255,255,255,.07);border-radius:20px;transition:all .35s cubic-bezier(.23,1,.32,1)}.card:hover{border-color:#7c3aed66;background:#7c3aed0f;transform:translateY(-4px);box-shadow:0 20px 60px #7c3aed1f,0 0 0 1px #7c3aed26}h1,h2,h3,h4{font-family:Syne,sans-serif}.text-grad{background:linear-gradient(135deg,#c4b5fd,#7c3aed 40%,#f59e0b);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.text-grad-amber{background:linear-gradient(135deg,#fbbf24,#f59e0b,#d97706);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.04'/%3E%3C/svg%3E");opacity:.35;pointer-events:none;z-index:0}#stars-canvas{position:fixed;top:0;left:0;width:100%;height:100%;z-index:0;pointer-events:none;opacity:.5}.orb{position:fixed;border-radius:50%;filter:blur(80px);pointer-events:none;z-index:0}.type-cursor:after{content:"|";animation:blink .7s infinite;color:#f59e0b}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}@keyframes noticeBlink{0%,to{opacity:1}50%{opacity:.35}}.notice-blink{animation:noticeBlink 1.2s ease-in-out infinite}.notice-callout{background:linear-gradient(90deg,#7c3aed33,#f59e0b33);border:1px solid rgba(245,158,11,.35);border-radius:999px;padding:6px 12px;box-shadow:0 0 22px #f59e0b2e}.nav-link{position:relative;transition:color .3s}.nav-link:after{content:"";position:absolute;bottom:-2px;left:0;width:0;height:1.5px;background:#f59e0b;transition:width .3s ease}.nav-link:hover:after,.nav-link.active:after{width:100%}.nav-link:hover{color:#fff}.skill-bar-fill{height:3px;border-radius:99px;background:linear-gradient(90deg,#7c3aed,#f59e0b);width:0;transition:width 1.2s cubic-bezier(.23,1,.32,1)}.timeline-line{position:absolute;left:16px;top:0;bottom:0;width:1px;background:linear-gradient(to bottom,transparent,rgba(124,58,237,.5),transparent)}.timeline-dot{width:10px;height:10px;background:#7c3aed;border-radius:50%;border:2px solid #050507;box-shadow:0 0 0 3px #7c3aed4d;flex-shrink:0}.badge{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:99px;font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.tag{padding:4px 12px;border-radius:99px;background:#ffffff0d;border:1px solid rgba(255,255,255,.08);font-size:11px;color:#a1a1aa}.btn-primary{padding:14px 32px;background:#7c3aed;color:#fff;font-weight:700;font-family:Syne,sans-serif;border-radius:12px;transition:all .3s;position:relative;overflow:hidden}.btn-primary:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,rgba(255,255,255,.15),transparent);opacity:0;transition:opacity .3s}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 12px 40px #7c3aed66}.btn-primary:hover:before{opacity:1}.btn-outline{padding:13px 32px;border:1px solid rgba(255,255,255,.12);color:#d4d4d8;font-weight:600;font-family:Syne,sans-serif;border-radius:12px;transition:all .3s;background:#ffffff08}.btn-outline:hover{border-color:#f59e0b80;color:#fff;background:#f59e0b0d}.reveal{opacity:0;transform:translateY(30px);transition:opacity .7s ease,transform .7s ease}.reveal.visible{opacity:1;transform:translateY(0)}.proj-card{border-radius:20px;border:1px solid rgba(255,255,255,.07);background:#ffffff05;transition:all .35s cubic-bezier(.23,1,.32,1);cursor:pointer;overflow:hidden;position:relative}.proj-card:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,#7c3aed,#f59e0b);opacity:0;transition:opacity .3s}.proj-card:hover:before{opacity:1}.proj-card:hover{transform:translateY(-5px);border-color:#7c3aed4d;box-shadow:0 24px 64px #0006,0 0 0 1px #7c3aed1a}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000d9;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);z-index:200;display:none;align-items:center;justify-content:center;padding:16px}.modal-backdrop.open{display:flex}.modal-box{background:#0e0e14;border:1px solid rgba(255,255,255,.1);border-radius:24px;width:100%;max-width:860px;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;transform:scale(.95) translateY(20px);opacity:0;transition:all .35s cubic-bezier(.23,1,.32,1)}.modal-box.open{transform:scale(1) translateY(0);opacity:1}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-12px)}}.float{animation:float 6s ease-in-out infinite}.cert-card{border-radius:16px;border:1px solid rgba(255,255,255,.07);background:#ffffff05;padding:20px;transition:all .3s ease}.cert-card:hover{border-color:#f59e0b4d;background:#f59e0b08}.section-label{font-size:11px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:#f59e0b;margin-bottom:12px;display:flex;align-items:center;gap:10px}.section-label:before{content:"";width:24px;height:1px;background:#f59e0b}.stat-num{font-family:Syne,sans-serif;font-size:2.5rem;font-weight:800;line-height:1}@keyframes ring{0%{transform:scale(1);opacity:.6}to{transform:scale(2.2);opacity:0}}.avail-ring{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;background:#4ade80;animation:ring 2s ease-out infinite}.grid-bg{background-image:linear-gradient(rgba(255,255,255,.02) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.02) 1px,transparent 1px);background-size:60px 60px}.exp-card{border-radius:16px;border:1px solid rgba(255,255,255,.07);background:#ffffff05;transition:all .3s ease}.exp-card:hover{border-color:#7c3aed4d;background:#7c3aed0a}.cert-scroll{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.resume-panel{border-radius:24px;border:1px solid rgba(16,185,129,.25);background:linear-gradient(180deg,#041a14f2,#030a0cf2);box-shadow:0 24px 60px #10b98114}.resume-headline{border-bottom:1px solid rgba(255,255,255,.08)}.resume-rule{height:2px;background:linear-gradient(90deg,#10b981,#10b98126);border-radius:99px}.resume-chip{display:inline-flex;align-items:center;gap:8px;font-size:11px;color:#bbf7d0;border:1px solid rgba(16,185,129,.22);background:#10b98114;border-radius:999px;padding:5px 10px}.resume-table{width:100%;border-collapse:collapse;font-size:13px}.resume-table th,.resume-table td{border:1px solid rgba(255,255,255,.09);padding:10px;text-align:left;vertical-align:top}.resume-table th{background:#ffffff0a;color:#f4f4f5;font-weight:700}.resume-table td{color:#d4d4d8}#resume-print h3,#resume-print h4{color:#f4f4f5}#resume-print p,#resume-print li,#resume-print td,#resume-print th{color:#d4d4d8}.github-mini{border:1px solid rgba(255,255,255,.12);background:#00000073;border-radius:14px;padding:10px 12px;max-width:190px;margin:0 auto 14px}.github-mini-count{font-family:Syne,sans-serif;font-size:1.6rem;font-weight:800;line-height:1;color:#22c55e}.github-mini-label{font-size:12px;color:#a1a1aa;margin-top:3px}.hero-contrib-badge{position:absolute;top:10px;right:-18px;z-index:20;margin:0;min-width:186px;text-align:center;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.hero-contrib-badge:hover{border-color:#10b98173}@media (max-width: 768px){.hero-contrib-badge{top:-4px;right:50%;transform:translate(50%)}}.cv-modal-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:16px}.gallery-tabs-shell{display:flex;align-items:center;gap:10px;width:100%;max-width:560px;margin-left:auto}.gallery-tabs-viewport{flex:1;min-width:0;overflow:hidden;border-radius:999px}.gallery-tabs{display:flex;gap:8px;flex-wrap:nowrap;overflow-x:auto;padding:8px;border-radius:999px;background:#ffffff14;border:1px solid rgba(255,255,255,.14);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.gallery-tabs::-webkit-scrollbar{height:0}.gallery-nav{width:36px;height:36px;border-radius:999px;border:1px solid rgba(255,255,255,.2);background:#ffffff14;color:#f4f4f5;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .22s ease}.gallery-nav:hover{background:#7c3aed59;border-color:#7c3aed8c;transform:translateY(-1px)}.gallery-nav[disabled]{opacity:0;pointer-events:none;transform:scale(.9)}.gallery-tab{border:1px solid transparent;color:#1f2937;background:#fce7f3;display:inline-flex;align-items:center;gap:8px;padding:0 10px 0 0;min-height:37px;border-radius:999px;font-size:10.5px;font-weight:800;letter-spacing:.03em;text-transform:uppercase;white-space:nowrap;flex-shrink:0;overflow:hidden;transition:transform .22s ease,box-shadow .22s ease,filter .22s ease;box-shadow:inset 0 -1px #0000000f}.gallery-tab-thumb{width:33px;min-height:37px;height:100%;border-radius:999px 0 0 999px;object-fit:cover;border-right:1px solid rgba(255,255,255,.7);box-shadow:inset -1px 0 #00000014;flex-shrink:0}.gallery-tab span{padding-right:2px}.gallery-tab[data-tone=pink]{background:#fce7f3}.gallery-tab[data-tone=blue]{background:#dbeafe}.gallery-tab[data-tone=green]{background:#dcfce7}.gallery-tab[data-tone=yellow]{background:#fef3c7}.gallery-tab:hover{transform:translateY(-1px);filter:saturate(1.08);box-shadow:0 8px 20px #0000002e,inset 0 -1px #00000014}.gallery-tab.active{color:#fff;border-color:#7c3aed73;background:linear-gradient(135deg,#7c3aed,#9333ea);box-shadow:0 10px 24px #7c3aed59}@media (max-width: 900px){.gallery-tabs-shell{max-width:100%}}.gallery-grid{column-count:4;column-gap:16px}.gallery-item{display:inline-block;width:100%;margin:0 0 16px;border-radius:16px;overflow:hidden;border:1px solid rgba(255,255,255,.08);background:#ffffff05;break-inside:avoid;-webkit-column-break-inside:avoid;page-break-inside:avoid}.gallery-item img{width:100%;height:auto;object-fit:unset;background:transparent;display:block;transition:transform .35s ease,filter .35s ease}.gallery-item:hover img{transform:scale(1.02);filter:saturate(1.06)}.gallery-meta{display:none}@media (max-width: 1200px){.gallery-grid{column-count:3}}@media (max-width: 820px){.gallery-grid{column-count:2}}@media (max-width: 520px){.gallery-grid{column-count:1}}@media (max-width: 768px){#cursor,#cursor-ring{display:none}body{cursor:auto}}@media print{html,body{margin:0!important;padding:0!important;background:#fff!important;color:#111!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}body *{visibility:hidden!important}#resume,#resume *{visibility:visible!important}#resume{display:block!important;padding:0!important;margin:0!important;min-height:0!important;position:relative!important}#resume>*:not(#resume-print){display:none!important}#resume-print{display:block!important;position:relative;width:100%;margin:0;padding:18px 22px 20px;background:#fff!important;color:#111!important;border:0;box-shadow:none;border-radius:0}#resume-print *{visibility:visible!important}.reveal,.reveal.visible{opacity:1!important;transform:none!important}#resume-print section,#resume-print table,#resume-print tr,#resume-print td,#resume-print th,#resume-print ul,#resume-print li{break-inside:avoid;page-break-inside:avoid}#resume-print *{color:#111!important;background:transparent!important;box-shadow:none!important;text-shadow:none!important}#resume-print,#resume-print *{font-family:Times New Roman,Times,serif!important}#resume-print a,#resume-print a:visited{color:#111!important;text-decoration:none!important}#resume-print .resume-rule{background:#111!important;height:1px!important}#resume-print .resume-table th,#resume-print .resume-table td{border-color:#d4d4d8!important;color:#111!important}#resume-print .resume-headline,#resume-print .resume-panel{border-color:#d4d4d8!important;background:#fff!important}#resume-print .resume-chip{border:1px solid #d1d5db!important;background:#f9fafb!important;color:#111!important}#resume-print .resume-chip i,#resume-print .resume-chip svg,#resume-print .resume-chip span,#resume-print i{color:#111!important}.btn-primary,.btn-outline,.section-label,.github-mini,.hero-contrib-badge,.cv-modal-actions,.nav-link,nav,footer,#cursor,#cursor-ring,#scroll-progress,#stars-canvas,.orb,.modal-backdrop,.gallery-tabs,.gallery-grid,#projects,#about,#certs,#contact,#gallery,#github,#home{display:none!important}@page{size:A4;margin:10mm}}
