@import"https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@300;400;500;600;700&family=IBM+Plex+Mono:wght@400;500&display=swap";:root{color-scheme:light;font-family:Space Grotesk,system-ui,sans-serif;line-height:1.5;font-weight:400;--bg: #0f1115;--bg-soft: #161a22;--surface: #1b212d;--surface-2: #222a38;--text: #f5f7fb;--muted: #a5afc3;--accent: #a855f7;--accent-2: #c084fc;--stroke: rgba(255, 255, 255, .08);--glow: rgba(168, 85, 247, .3);background-color:var(--bg)}*{box-sizing:border-box;margin:0;padding:0}body{min-height:100vh;background:radial-gradient(circle at top left,#1c273b 0%,transparent 55%),radial-gradient(circle at 70% 20%,#13323c 0%,transparent 50%),linear-gradient(180deg,#0e1015,#0b0c11);color:var(--text)}#root{min-height:100vh}.page{display:flex;flex-direction:column;gap:72px;padding:56px clamp(24px,6vw,120px) 80px;position:relative;overflow:hidden}.page:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:radial-gradient(rgba(168,85,247,.08) 1px,transparent 1px),radial-gradient(rgba(255,255,255,.06) 1px,transparent 1px);background-size:120px 120px,40px 40px;background-position:0 0,20px 20px;opacity:.3;pointer-events:none}.hero-centered{text-align:center;max-width:900px;margin:0 auto;padding:80px 0 60px;position:relative;z-index:1}.hero-title{font-size:clamp(48px,6vw,72px);font-weight:300;color:var(--muted);margin-bottom:12px;letter-spacing:-.02em}.hero-subtitle{font-size:clamp(32px,4vw,48px);font-weight:600;margin-bottom:24px;background:linear-gradient(120deg,var(--text) 0%,var(--text) 40%,var(--accent-2) 60%,var(--accent) 100%);background-size:200% auto;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:gradientShift 8s ease infinite}.hero-tagline{font-size:18px;line-height:1.6;color:var(--muted);margin-bottom:40px;max-width:700px;margin-left:auto;margin-right:auto}.hero-tagline strong{color:var(--text);font-weight:600}.social-buttons{display:flex;justify-content:center;gap:16px;flex-wrap:wrap;margin-top:32px}.social-btn{display:inline-flex;align-items:center;gap:10px;padding:14px 24px;background:#ffffff08;border:1px solid var(--stroke);border-radius:12px;font-size:14px;font-weight:500;color:var(--muted);text-decoration:none;transition:all .3s cubic-bezier(.16,1,.3,1);cursor:pointer;min-height:48px}.social-btn:hover{background:#a855f71a;border-color:var(--accent);color:var(--text);transform:translateY(-2px);box-shadow:0 8px 24px #a855f733}.expertise-section{max-width:1200px;margin:0 auto;padding:40px 0;position:relative;z-index:1}.expertise-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:32px}.expertise-card{background:#ffffff05;border:1px solid var(--stroke);border-radius:24px;padding:48px 32px;text-align:center;transition:all .4s cubic-bezier(.16,1,.3,1);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.expertise-card:hover{transform:translateY(-8px);box-shadow:0 20px 60px #0006;border-color:var(--accent)}.expertise-icon{width:80px;height:80px;margin:0 auto 24px;border-radius:20px;display:flex;align-items:center;justify-content:center;transition:all .4s cubic-bezier(.16,1,.3,1)}.expertise-icon-blue{background:linear-gradient(135deg,#3b82f626,#2563eb0d);border:2px solid rgba(59,130,246,.3);color:#60a5fa}.expertise-icon-red{background:linear-gradient(135deg,#ef444426,#dc26260d);border:2px solid rgba(239,68,68,.3);color:#f87171}.expertise-icon-purple{background:linear-gradient(135deg,#a855f726,#9333ea0d);border:2px solid rgba(168,85,247,.3);color:var(--accent-2)}.expertise-card:hover .expertise-icon-blue{background:linear-gradient(135deg,#3b82f640,#2563eb1a);box-shadow:0 8px 32px #3b82f64d}.expertise-card:hover .expertise-icon-red{background:linear-gradient(135deg,#ef444440,#dc26261a);box-shadow:0 8px 32px #ef44444d}.expertise-card:hover .expertise-icon-purple{background:linear-gradient(135deg,#a855f740,#9333ea1a);box-shadow:0 8px 32px #a855f74d}.expertise-title{font-size:32px;font-weight:600;margin-bottom:8px;color:var(--text)}.expertise-voip .expertise-title{color:#60a5fa}.expertise-security .expertise-title{color:#f87171}.expertise-infra .expertise-title{color:var(--accent-2)}.expertise-label{font-family:IBM Plex Mono,monospace;text-transform:uppercase;letter-spacing:.15em;font-size:11px;color:var(--muted);font-weight:500}.hero{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:48px;align-items:center;position:relative;z-index:1}.eyebrow{font-family:IBM Plex Mono,monospace;text-transform:uppercase;letter-spacing:.2em;font-size:12px;color:var(--accent-2);margin-bottom:16px}.hero h1{font-size:clamp(32px,4vw,56px);line-height:1.1;margin-bottom:16px;background:linear-gradient(120deg,#fff,#d7d1ff 30%,#8b5cf6 55%,#60a5fa 75%,#a855f7);background-size:200% auto;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:gradientShift 8s ease infinite;text-shadow:0 0 24px rgba(168,85,247,.25),0 0 64px rgba(168,85,247,.25)}.lede{color:var(--muted);font-size:18px;max-width:560px}.hero-actions{display:flex;gap:16px;margin-top:24px;flex-wrap:wrap}button{border:none;cursor:pointer;font-family:inherit;font-weight:600;transition:transform .3s cubic-bezier(.16,1,.3,1),box-shadow .3s cubic-bezier(.16,1,.3,1),filter .3s ease,background .3s ease,border-color .3s ease;will-change:transform;display:inline-flex;align-items:center;gap:8px}button:hover{transform:translateY(-3px) scale(1.02)}button:active{transform:translateY(-1px) scale(.98)}.primary{background:linear-gradient(130deg,var(--accent) 0%,var(--accent-2) 100%);color:#fff;padding:12px 22px;border-radius:999px;box-shadow:0 10px 20px var(--glow)}.primary:hover{box-shadow:0 15px 35px var(--glow),0 5px 15px #a855f766;filter:brightness(1.1)}.ghost{background:transparent;border:1px solid var(--stroke);color:var(--text);padding:12px 22px;border-radius:999px}.ghost:hover{background:#ffffff0d;border-color:#fff3;box-shadow:0 8px 24px #0003}.profile-card{background:linear-gradient(150deg,rgba(255,255,255,.05),transparent);border:1px solid var(--stroke);border-radius:24px;padding:28px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 30px 80px #00000059;transition:transform .4s cubic-bezier(.16,1,.3,1),box-shadow .4s cubic-bezier(.16,1,.3,1)}.profile-card:hover{transform:translateY(-6px);box-shadow:0 40px 100px #00000080}.profile-header{display:grid;grid-template-columns:auto 1fr;gap:24px;margin-bottom:24px;align-items:center}.avatar{width:180px;height:240px;border-radius:20px;display:grid;place-items:center;font-weight:700;background:linear-gradient(135deg,var(--accent) 0%,var(--accent-2) 100%);color:var(--text);overflow:hidden;border:3px solid rgba(168,85,247,.5);box-shadow:0 12px 40px #a855f74d,0 4px 12px #0006}.avatar-image{width:100%;height:100%;object-fit:cover;border-radius:20px}.profile-info{display:flex;flex-direction:column;gap:20px;flex:1}.profile-header h2{margin:0 0 4px;font-size:24px}.profile-header p{color:var(--muted);font-size:14px;margin-bottom:0}.profile-body{display:grid;gap:14px;margin-bottom:0}.profile-body span{font-family:IBM Plex Mono,monospace;text-transform:uppercase;font-size:11px;color:var(--accent-2);letter-spacing:.12em}.profile-body p{color:var(--muted)}.profile-body a{color:var(--muted);text-decoration:none;transition:color .2s ease}.profile-body a:hover{color:var(--accent-2)}.availability{border-radius:14px;background:#34d1bf1a;border:1px solid rgba(52,209,191,.25);position:relative;padding:12px 14px 12px 32px}.availability:before{content:"";position:absolute;top:50%;left:14px;transform:translateY(-50%);width:8px;height:8px;background:var(--accent-2);border-radius:50%;animation:breathe 2s ease-in-out infinite;box-shadow:0 0 12px var(--accent-2)}.profile-footer{display:flex;gap:10px;flex-wrap:wrap}.pill{border:1px solid var(--stroke);padding:8px 14px;border-radius:999px;font-size:13px;color:var(--muted);cursor:pointer;transition:all .3s cubic-bezier(.16,1,.3,1);display:inline-flex;align-items:center;gap:6px;min-height:36px}.pill:hover{background:var(--accent-2);border-color:var(--accent-2);color:var(--bg);transform:translateY(-2px)}.metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;z-index:1}.metric-card{background:var(--surface);border:1px solid var(--stroke);padding:22px;border-radius:18px;box-shadow:inset 0 0 0 1px #ffffff05;cursor:pointer;transition:transform .3s cubic-bezier(.16,1,.3,1),border-color .3s ease,box-shadow .3s ease}.metric-card:hover{transform:translateY(-4px);border-color:var(--accent-2);box-shadow:0 12px 40px #34d1bf26,inset 0 0 0 1px #34d1bf1a}.metric-card h3{font-size:28px;margin:8px 0}.metric-label{color:var(--muted);font-size:13px;font-family:IBM Plex Mono,monospace;text-transform:uppercase;letter-spacing:.12em}.metric-detail{color:var(--muted);font-size:14px}.split{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:32px;align-items:center;z-index:1}.split h2{font-size:28px;margin-bottom:12px}.split p{color:var(--muted);font-size:16px}.callout{background:linear-gradient(135deg,rgba(52,209,191,.18),transparent);border:1px solid rgba(52,209,191,.25);padding:24px;border-radius:18px}.callout-title{font-family:IBM Plex Mono,monospace;text-transform:uppercase;font-size:12px;letter-spacing:.2em;color:var(--accent-2);margin-bottom:12px}.section{display:flex;flex-direction:column;gap:24px;z-index:1}.section-header{display:flex;align-items:center;justify-content:space-between;gap:16px}.section-header h2{font-size:28px}.text-button{background:transparent;border:1px solid var(--stroke);color:var(--text);padding:8px 16px;border-radius:999px;font-size:13px;font-family:IBM Plex Mono,monospace;text-transform:uppercase;letter-spacing:.12em}.text-button:hover{background:#ffffff0d;border-color:var(--accent-2);color:var(--accent-2)}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}@media (max-width: 1200px){.grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 768px){.grid{grid-template-columns:1fr}}.project-card{background:var(--surface-2);padding:22px;border-radius:18px;border:1px solid var(--stroke);display:grid;gap:12px;position:relative;overflow:hidden;cursor:pointer;transition:transform .4s cubic-bezier(.16,1,.3,1),box-shadow .4s cubic-bezier(.16,1,.3,1),border-color .3s ease}.project-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,rgba(168,85,247,.1),transparent);opacity:0;transition:opacity .4s ease}.project-card:hover:before{opacity:1}.project-card:hover{transform:translateY(-8px) scale(1.02);border-color:#a855f780;box-shadow:0 20px 60px #0006,0 0 0 1px #a855f733}.project-card:hover .project-accent{opacity:1;animation:pulse 2s ease-in-out infinite}.project-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:4px}.project-card h3{font-size:20px;margin:0}.project-period{font-size:11px;font-family:IBM Plex Mono,monospace;color:var(--muted);white-space:nowrap;text-transform:uppercase;letter-spacing:.05em}.project-card p{color:var(--muted);font-size:15px;line-height:1.5}.project-accent{position:absolute;top:-20px;right:-20px;width:90px;height:90px;border-radius:50%;background:radial-gradient(circle,rgba(168,85,247,.6),transparent 70%);opacity:.5}.tag-row{display:flex;flex-wrap:nowrap;gap:8px;align-items:center;overflow-x:auto;padding-bottom:4px;scrollbar-width:none;cursor:grab;user-select:none;-webkit-user-select:none;touch-action:pan-x;-webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 8%,#000 92%,transparent 100%);mask-image:linear-gradient(90deg,transparent 0%,#000 8%,#000 92%,transparent 100%)}.tag-row::-webkit-scrollbar{height:0}.tag-row:active{cursor:grabbing}.tag{font-size:11px;font-family:IBM Plex Mono,monospace;color:#e1d7ff;border:1px solid rgba(168,85,247,.35);background:#ffffff0f;padding:4px 10px;border-radius:999px;transition:all .2s ease;white-space:nowrap}.tag:hover{background:#a855f733;border-color:#a855f799;color:#fff;transform:translateY(-1px)}.timeline{display:grid;gap:16px}.timeline-item{display:grid;gap:8px;padding:18px 20px;border-radius:16px;border:1px solid var(--stroke);background:#1b212db3;transition:all .3s cubic-bezier(.16,1,.3,1);cursor:pointer}.timeline-item:hover{background:#1b212de6;border-color:#a855f766;transform:translate(8px);box-shadow:-4px 0 0 var(--accent)}.timeline-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:8px}.timeline-time{font-size:12px;font-family:IBM Plex Mono,monospace;white-space:nowrap}.timeline-highlights{margin-top:12px;padding-left:20px;list-style:none;display:grid;gap:6px}.timeline-highlights li{position:relative;color:var(--muted);font-size:14px;line-height:1.5}.timeline-highlights li:before{content:"→";position:absolute;left:-18px;color:var(--accent-2);font-weight:600}.muted{color:var(--muted)}.section-header .eyebrow{font-size:12px;margin:0}.contact{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:28px;border-radius:24px;border:1px solid var(--stroke);background:linear-gradient(120deg,rgba(168,85,247,.2),transparent);z-index:1}.contact h2{font-size:28px;margin-bottom:12px}.contact p{color:var(--muted);max-width:520px}.footer{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:24px;color:var(--muted);font-size:14px;z-index:1;padding-top:40px;border-top:1px solid var(--stroke)}.footer-content{display:flex;flex-direction:column;gap:12px}.footer-links{display:flex;gap:16px;font-family:IBM Plex Mono,monospace;text-transform:uppercase;font-size:12px;letter-spacing:.12em}.footer-links a{color:var(--muted);text-decoration:none;transition:color .2s ease}.footer-links a:hover{color:var(--accent-2)}.floating-donation-widget{position:fixed;bottom:200px;right:24px;z-index:1000;display:flex;flex-direction:column;align-items:flex-end;gap:12px}.donation-mascot{width:64px;height:64px;background:linear-gradient(135deg,var(--accent) 0%,var(--accent-2) 100%);border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s cubic-bezier(.16,1,.3,1);box-shadow:0 8px 24px #a855f766,0 4px 12px #0000004d;animation:float 3s ease-in-out infinite}.donation-mascot:hover{transform:scale(1.1);box-shadow:0 12px 32px #a855f780,0 6px 16px #0006}.mascot-heart{color:#fff;animation:heartPulse 1.5s ease-in-out infinite}@keyframes heartPulse{0%,to{transform:scale(1)}50%{transform:scale(1.15)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes cloudDrift{0%,to{transform:translate3d(0,-6px,0)}50%{transform:translate3d(6px,6px,0)}}.donation-tooltip{opacity:0;transform:translate(10px);transition:all .3s cubic-bezier(.16,1,.3,1);pointer-events:none}.floating-donation-widget.is-open .donation-tooltip{opacity:1;transform:translate(0)}.donation-tooltip-text{display:inline-block;padding:8px 16px;background:#a855f7f2;color:#fff;border-radius:20px;font-size:13px;font-weight:500;white-space:nowrap;box-shadow:0 4px 12px #a855f74d}.donation-popup{opacity:0;transform:translateY(10px) scale(.95);transition:all .3s cubic-bezier(.16,1,.3,1);pointer-events:none;max-width:240px}.floating-donation-widget.is-open .donation-popup{opacity:1;transform:translateY(0) scale(1);pointer-events:all}.donation-popup-header{display:flex;align-items:center;gap:8px;padding:12px 16px;background:linear-gradient(135deg,#a855f7f2,#c084fce6);border-radius:16px 16px 0 0;font-family:IBM Plex Mono,monospace;text-transform:uppercase;font-size:11px;letter-spacing:.12em;color:#fff;font-weight:500}.donation-popup-buttons{display:flex;flex-direction:column;gap:8px;padding:12px;background:#1b212dfa;border:1px solid rgba(168,85,247,.3);border-top:none;border-radius:0 0 16px 16px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.donation-popup-btn-wrapper{position:relative}.donation-popup-btn{display:flex;align-items:center;gap:10px;padding:12px 16px;background:#ffffff0d;border:1px solid var(--stroke);border-radius:12px;font-size:14px;font-weight:500;color:var(--text);text-decoration:none;transition:all .3s cubic-bezier(.16,1,.3,1);cursor:pointer}.donation-popup-btn:hover{background:var(--accent);border-color:var(--accent);color:#fff;transform:translate(-4px);box-shadow:0 4px 16px #a855f74d}.qr-code-preview{position:absolute;right:100%;top:50%;transform:translateY(-50%) translate(-12px) scale(.95);opacity:0;pointer-events:none;transition:all .3s cubic-bezier(.16,1,.3,1);z-index:10}.donation-popup-btn-wrapper:hover .qr-code-preview,.qr-code-preview.qr-visible{opacity:1;transform:translateY(-50%) translate(-12px) scale(1);pointer-events:all}.qr-code-image{width:280px;height:auto;display:block;border-radius:12px;box-shadow:0 20px 60px #00000080,0 8px 24px #a855f74d;border:2px solid rgba(168,85,247,.3)}.donation-section{display:flex;flex-direction:column;gap:12px;padding:16px 20px;background:linear-gradient(135deg,#a855f71a,#c084fc0d);border:1px solid rgba(168,85,247,.3);border-radius:16px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.donation-header{display:flex;align-items:center;gap:8px;font-family:IBM Plex Mono,monospace;text-transform:uppercase;font-size:11px;letter-spacing:.12em;color:var(--accent-2)}.heart-icon{animation:heartbeat 1.5s ease-in-out infinite}@keyframes heartbeat{0%,to{transform:scale(1)}10%,30%{transform:scale(1.1)}20%,40%{transform:scale(1)}}.donation-buttons{display:flex;gap:10px;flex-wrap:wrap}.donation-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;background:#ffffff08;border:1px solid var(--stroke);border-radius:999px;font-size:13px;color:var(--muted);text-decoration:none;transition:all .3s cubic-bezier(.16,1,.3,1);cursor:pointer;min-height:36px}.donation-btn:hover{background:var(--accent);border-color:var(--accent);color:#fff;transform:translateY(-2px);box-shadow:0 8px 20px #a855f74d}@media (max-width: 1024px){.page{padding:60px 32px 80px}.hero{grid-template-columns:1fr!important;gap:40px;display:flex;flex-direction:column}.hero h1{font-size:32px;line-height:1.3}.lede{font-size:17px}.eyebrow{font-size:13px}.hero-actions{flex-direction:row;gap:12px}.hero-actions button{padding:12px 20px;font-size:14px}.profile-card{padding:24px}.profile-header{grid-template-columns:1fr;gap:20px;text-align:center}.avatar{width:160px;height:200px;margin:0 auto}.profile-info{gap:16px;align-items:center}.profile-body{text-align:left;max-width:400px}.profile-footer{justify-content:center;flex-wrap:wrap}.profile-header h2{font-size:22px}.metrics{grid-template-columns:repeat(3,1fr);gap:20px}.metric-card{padding:24px 20px}.metric-card h3{font-size:36px}.section{padding:48px 0}.section-header{flex-direction:column;align-items:flex-start;gap:8px}.section-header h2{font-size:28px}.grid{grid-template-columns:1fr;gap:24px}.project-card{padding:28px}.skills-grid{gap:14px}.skill-category{min-height:92px}.skill-category-title{font-size:16px}.timeline-item{padding:24px}.timeline-header{flex-direction:column;align-items:flex-start;gap:8px}.timeline-header h3{font-size:20px}.contact{flex-direction:column;align-items:flex-start;gap:24px;padding:28px}.contact h2{font-size:26px}.footer{padding-top:32px}.floating-donation-widget{bottom:140px;right:20px}.donation-mascot{width:58px;height:58px}.mascot-heart{width:30px;height:30px}.expertise-grid{grid-template-columns:1fr;gap:24px}.hero-centered{padding:60px 0 40px}.hero-title{font-size:40px}.hero-subtitle{font-size:32px}}@media (max-width: 640px){.page{padding:40px 20px 64px}.hero-centered{padding:40px 0 30px}.hero-title{font-size:32px}.hero-subtitle{font-size:24px}.hero-tagline{font-size:16px}.social-buttons{flex-direction:column;gap:12px}.social-btn{width:100%;justify-content:center;padding:12px 20px}.expertise-section{padding:20px 0}.expertise-grid{gap:20px}.expertise-card{padding:32px 24px}.expertise-icon{width:64px;height:64px}.expertise-title{font-size:24px}.hero-actions{flex-direction:column;align-items:flex-start;width:100%}.hero-actions button{width:100%;justify-content:center}.profile-header{grid-template-columns:1fr;gap:20px}.avatar{width:120px;height:160px;margin:0 auto}.profile-info{text-align:center}.profile-body{text-align:left}.profile-header h2{font-size:22px}.profile-footer{justify-content:center}.hero{grid-template-columns:1fr;gap:32px}.hero h1{font-size:28px}.lede{font-size:16px}.metrics{grid-template-columns:1fr}.skill-category{min-height:auto}.grid{grid-template-columns:1fr}.section-header h2{font-size:24px}button{min-height:44px;padding:12px 24px}.profile-card{padding:20px}.timeline-item{padding:16px}.availability{padding:10px 12px 10px 28px}.availability:before{left:12px}.contact{padding:20px}.contact h2{font-size:22px}.footer{flex-direction:column;text-align:center;gap:20px}.footer-content{align-items:center;text-align:center}.footer-links{flex-direction:column;gap:12px}.donation-section{width:100%;align-items:center;text-align:center}.donation-buttons{justify-content:center;width:100%}.donation-btn{flex:1;justify-content:center;min-width:120px}.floating-donation-widget{bottom:72px;right:16px}.donation-mascot{width:68px;height:68px}.mascot-heart{width:34px;height:34px}.donation-tooltip{display:none}.donation-popup{max-width:200px}.donation-popup-btn{padding:10px 14px;font-size:13px}.qr-code-preview{right:auto;left:50%;top:auto;bottom:100%;transform:translate(-50%) translateY(-12px) scale(.95)}.donation-popup-btn-wrapper:hover .qr-code-preview,.qr-code-preview.qr-visible{transform:translate(-50%) translateY(-12px) scale(1)}.qr-code-image{width:220px}}@media (max-width: 374px){.avatar{width:100px;height:140px}.hero h1{font-size:24px}.profile-header h2{font-size:20px}.pill{font-size:12px;padding:6px 12px}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(40px);filter:blur(4px)}to{opacity:1;transform:translate(0);filter:blur(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes pulse{0%,to{transform:scale(1);opacity:.5}50%{transform:scale(1.15);opacity:.8}}@keyframes breathe{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(.85)}}@keyframes gradientShift{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-30px)}to{opacity:1;transform:translate(0)}}.animate-fade-in-up{animation:fadeInUp .8s cubic-bezier(.16,1,.3,1) forwards}.animate-slide-in-right{animation:slideInRight .9s cubic-bezier(.16,1,.3,1) forwards}.animate-scale-in{animation:scaleIn .6s cubic-bezier(.16,1,.3,1) forwards}.will-animate{opacity:0}.delay-100{animation-delay:.1s}.delay-200{animation-delay:.2s}.delay-300{animation-delay:.3s}.delay-400{animation-delay:.4s}.delay-500{animation-delay:.5s}.scroll-progress{position:fixed;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--accent),var(--accent-2));transform-origin:0%;transform:scaleX(var(--scroll-progress, 0));z-index:1000;opacity:.8}section:not(.hero){opacity:0;transform:translateY(40px);transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1)}section.section-in-view{opacity:1;transform:translateY(0)}.section-in-view .grid>*{animation:fadeInUp .6s cubic-bezier(.16,1,.3,1) forwards}.section-in-view .grid>*:nth-child(1){animation-delay:0ms}.section-in-view .grid>*:nth-child(2){animation-delay:.1s}.section-in-view .grid>*:nth-child(3){animation-delay:.2s}.section-in-view .grid>*:nth-child(4){animation-delay:.3s}.section-in-view .timeline-item{animation:slideInLeft .6s cubic-bezier(.16,1,.3,1) forwards}.section-in-view .timeline-item:nth-child(1){animation-delay:0ms}.section-in-view .timeline-item:nth-child(2){animation-delay:.15s}.section-in-view .timeline-item:nth-child(3){animation-delay:.3s}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.skills-grid{display:flex;flex-direction:column;gap:12px}.skills-row{display:flex;flex-wrap:nowrap;gap:12px;justify-content:flex-start;overflow-x:auto;padding:6px 32px 2px;scroll-snap-type:x mandatory;scrollbar-width:none;scrollbar-color:rgba(168,85,247,.35) transparent;position:relative}.skills-row-top{justify-content:flex-start}.skills-row-bottom{justify-content:center}.skills-row::-webkit-scrollbar{height:0}.skills-row::-webkit-scrollbar-track{background:transparent}.skills-row::-webkit-scrollbar-thumb{background:#a855f759;border-radius:999px}.skills-row:hover{scrollbar-width:none}.skills-row:hover::-webkit-scrollbar{height:0}.skill-category{position:relative;overflow:hidden;background:linear-gradient(135deg,#a855f71f,#ffffff08 45%,#34d1bf14),#161a22e6;border:1px solid rgba(168,85,247,.22);border-radius:16px;padding:14px 16px;transition:all .3s cubic-bezier(.16,1,.3,1);display:flex;flex-direction:column;align-items:center;gap:10px;min-height:88px;flex:0 0 clamp(220px,18vw,300px);scroll-snap-align:start}.skills-row-top .skill-category:nth-child(3n+1){margin-top:6px}.skills-row-top .skill-category:nth-child(3n){margin-top:-6px}.skills-row-bottom .skill-category:nth-child(3n+2){margin-top:6px}.skills-row-bottom .skill-category:nth-child(3n){margin-top:-6px}.skills-row:before,.skills-row:after{content:"";position:sticky;top:0;align-self:stretch;width:28px;pointer-events:none;z-index:2}.skills-row:before{left:0;background:linear-gradient(90deg,rgba(11,12,17,.9),transparent)}.skills-row:after{right:0;background:linear-gradient(270deg,rgba(11,12,17,.9),transparent)}.skills-row .skill-category{animation:cloudDrift 12s ease-in-out infinite;will-change:transform}.skills-row .skill-category:nth-child(3n){animation-duration:14s;animation-delay:-4s}.skills-row .skill-category:nth-child(3n+1){animation-duration:11s;animation-delay:-2s}.skills-row .skill-category:nth-child(3n+2){animation-duration:13s;animation-delay:-6s}.skill-category:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at top right,rgba(255,255,255,.15),transparent 55%);opacity:.3;pointer-events:none}.skill-category:hover{border-color:#a855f780;box-shadow:0 16px 40px #00000059,0 0 0 1px #a855f733}.skill-category-title{font-size:11px;font-family:IBM Plex Mono,monospace;text-transform:uppercase;letter-spacing:.16em;color:var(--accent-2);margin-bottom:0;font-weight:600;text-align:center;width:100%}.skill-tags{display:flex;flex-wrap:nowrap;gap:5px;justify-content:flex-start;width:100%;overflow-x:auto;padding-bottom:4px;scrollbar-width:none;scrollbar-color:rgba(168,85,247,.5) transparent;cursor:grab;user-select:none;-webkit-user-select:none;touch-action:pan-x}.skill-tags::-webkit-scrollbar{height:0}.skill-tags::-webkit-scrollbar-track{background:transparent}.skill-tags::-webkit-scrollbar-thumb{background:#a855f759;border-radius:999px}.skill-tags.is-dragging{cursor:grabbing}.skill-tag{font-size:10.5px;padding:3px 8px;background:#ffffff0d;border:1px solid rgba(255,255,255,.12);border-radius:999px;color:#d7dcec;transition:all .2s ease;cursor:default;white-space:nowrap}.skill-tag:hover{background:#a855f733;border-color:#a855f780;color:#fff;transform:translateY(-1px)}.navbar{position:fixed;top:0;left:0;right:0;z-index:100;background:#0f1115d9;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--stroke)}.navbar-content{display:flex;align-items:center;justify-content:space-between;max-width:1400px;margin:0 auto;padding:12px clamp(24px,6vw,120px)}.navbar-content.navbar-centered{justify-content:center}.scroll-to-top{position:fixed;bottom:32px;right:32px;z-index:99;width:48px;height:48px;border-radius:50%;background:linear-gradient(135deg,var(--accent) 0%,var(--accent-2) 100%);border:none;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;visibility:hidden;transform:translateY(20px);transition:all .3s cubic-bezier(.16,1,.3,1);box-shadow:0 8px 24px #a855f766}.scroll-to-top.visible{opacity:1;visibility:visible;transform:translateY(0)}.scroll-to-top:hover{transform:translateY(-4px);box-shadow:0 12px 32px #a855f780}.scroll-to-top:active{transform:translateY(-2px)}@media (max-width: 640px){.scroll-to-top{bottom:24px;right:24px;width:44px;height:44px}}.navbar-brand{font-size:24px;font-weight:700;color:var(--text);text-decoration:none;background:linear-gradient(135deg,var(--accent) 0%,var(--accent-2) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.navbar-links{display:flex;gap:8px}.navbar-link{display:flex;align-items:center;gap:8px;padding:10px 18px;border-radius:999px;font-size:14px;font-weight:500;color:var(--muted);text-decoration:none;transition:all .3s cubic-bezier(.16,1,.3,1);border:1px solid transparent}.navbar-link:hover{color:var(--text);background:#ffffff0d}.navbar-link.active{color:var(--text);background:#a855f726;border-color:#a855f74d}.page{padding-top:80px}.portfolio-page{min-height:100vh}.portfolio-header{margin-bottom:48px}.back-link{display:inline-flex;align-items:center;gap:8px;color:var(--muted);text-decoration:none;font-size:14px;margin-bottom:32px;transition:color .2s ease}.back-link:hover{color:var(--accent-2)}.portfolio-hero{text-align:center;max-width:700px;margin:0 auto}.portfolio-hero h1{font-size:clamp(36px,5vw,56px);margin-bottom:16px;background:linear-gradient(120deg,#fff,#d7d1ff 30%,#8b5cf6 55%,#60a5fa 75%,#a855f7);background-size:200% auto;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:gradientShift 8s ease infinite}.portfolio-subtitle{color:var(--muted);font-size:18px;line-height:1.6}.portfolio-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:32px}.portfolio-card{background:var(--surface-2);border:1px solid var(--stroke);border-radius:24px;overflow:hidden;cursor:pointer;transition:all .4s cubic-bezier(.16,1,.3,1)}.portfolio-card:hover{transform:translateY(-8px);border-color:#a855f780;box-shadow:0 24px 64px #0006,0 0 0 1px #a855f733}.portfolio-card-image{position:relative;aspect-ratio:16 / 10;overflow:hidden}.portfolio-card-image img{width:100%;height:100%;object-fit:cover;transition:transform .4s cubic-bezier(.16,1,.3,1)}.portfolio-card:hover .portfolio-card-image img{transform:scale(1.05)}.portfolio-card-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#0f1115b3;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;opacity:0;transition:opacity .3s ease;color:var(--text)}.portfolio-card:hover .portfolio-card-overlay{opacity:1}.image-count-badge{position:absolute;top:12px;right:12px;background:#000000b3;color:#fff;padding:6px 12px;border-radius:999px;font-size:12px;font-weight:600;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:1px solid rgba(255,255,255,.1)}.portfolio-card-content{padding:24px;display:flex;flex-direction:column;gap:12px}.portfolio-card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.portfolio-card-header h3{font-size:22px;margin:0}.portfolio-card-content p{color:var(--muted);font-size:15px;line-height:1.6}.project-card.has-image{cursor:pointer}.project-card-thumbnail{width:100%;height:140px;border-radius:12px;overflow:hidden;margin-bottom:12px}.project-card-thumbnail img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}.project-card.has-image:hover .project-card-thumbnail img{transform:scale(1.05)}.footer-home-link{color:var(--muted);text-decoration:none;font-family:IBM Plex Mono,monospace;text-transform:uppercase;font-size:12px;letter-spacing:.12em;transition:color .2s ease}.footer-home-link:hover{color:var(--accent-2)}.empty-state{text-align:center;padding:80px 40px;background:var(--surface);border:1px dashed var(--stroke);border-radius:24px}.empty-state p{color:var(--muted);font-size:16px;max-width:400px;margin:0 auto}.lightbox-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#000000eb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;padding:40px;animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.lightbox-content{position:relative;max-width:1200px;width:100%;max-height:90vh;display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--stroke);border-radius:24px;overflow:hidden;animation:scaleIn .3s cubic-bezier(.16,1,.3,1)}.lightbox-close{position:absolute;top:16px;right:16px;z-index:10;width:44px;height:44px;border-radius:50%;background:#0009;border:1px solid var(--stroke);color:var(--text);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease}.lightbox-close:hover{background:#a855f74d;border-color:var(--accent);transform:scale(1.1)}.lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);z-index:10;width:52px;height:52px;border-radius:50%;background:#0009;border:1px solid var(--stroke);color:var(--text);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease}.lightbox-nav:hover{background:#a855f74d;border-color:var(--accent);transform:translateY(-50%) scale(1.1)}.lightbox-prev{left:16px}.lightbox-next{right:16px}.lightbox-image-container{position:relative;flex:1;min-height:0;display:flex;align-items:center;justify-content:center;padding:24px;background:#0000004d}.lightbox-image{max-width:100%;max-height:60vh;object-fit:contain;border-radius:12px;box-shadow:0 20px 60px #00000080}.lightbox-image-counter{position:absolute;bottom:16px;left:50%;transform:translate(-50%);background:#000000b3;color:#fff;padding:8px 16px;border-radius:999px;font-size:14px;font-weight:500;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:1px solid rgba(255,255,255,.1)}.lightbox-info{padding:24px 32px;border-top:1px solid var(--stroke);display:flex;flex-direction:column;gap:12px}.lightbox-header{display:flex;justify-content:space-between;align-items:center;gap:16px}.lightbox-header h2{font-size:24px;margin:0}.lightbox-info p{color:var(--muted);font-size:15px;line-height:1.6}.lightbox-tech{display:flex;gap:8px;flex-wrap:wrap;font-size:14px}.tech-label{color:var(--accent-2);font-weight:500}.lightbox-tech span:not(.tech-label){color:var(--muted)}@media (max-width: 1024px){.portfolio-grid{grid-template-columns:1fr}.lightbox-overlay{padding:20px}.lightbox-content{max-height:95vh}.lightbox-image{max-height:50vh}}@media (max-width: 640px){.navbar-link span{display:none}.navbar-link{padding:10px 14px}.portfolio-grid{grid-template-columns:1fr;gap:24px}.portfolio-card-content{padding:20px}.lightbox-overlay{padding:12px}.lightbox-content{border-radius:16px}.lightbox-image-container{padding:16px}.lightbox-info{padding:20px}.lightbox-header{flex-direction:column;align-items:flex-start;gap:8px}.lightbox-header h2{font-size:20px}.lightbox-nav{width:44px;height:44px}.lightbox-prev{left:8px}.lightbox-next{right:8px}}
