:root{font-family:Inter,system-ui,-apple-system,sans-serif;line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{margin:0;min-width:320px;background:#0b0b0b}a{color:inherit}#root{min-height:100vh}:root{--bg: #000000;--panel: #0a0a0f;--panel-2: #0f0f16;--text: #e8edf5;--muted: #9ca9c3;--line: #1a1d2e;--accent: #3b82f6;--accent-2: #8b5cf6;--accent-cyan: #06b6d4;--shadow: 0 10px 40px rgba(0, 0, 0, .6);--grad-1: rgba(59, 130, 246, .4);--grad-2: rgba(139, 92, 246, .35);--grad-3: rgba(6, 182, 212, .3)}.page{background:radial-gradient(ellipse 100% 100% at 10% 20%,rgba(59,130,246,.08),transparent 40%),radial-gradient(ellipse 80% 80% at 90% 80%,rgba(139,92,246,.06),transparent 40%),radial-gradient(ellipse 100% 80% at 50% 50%,rgba(6,182,212,.04),transparent 50%),linear-gradient(135deg,#000,#0a0e1a,#000814,#0a0e1a,#000);color:var(--text);position:relative;overflow:hidden}.page:before,.page:after{content:"";position:absolute;width:800px;height:800px;border-radius:50%;filter:blur(120px);opacity:.15;z-index:0;pointer-events:none;mix-blend-mode:screen}.page:before{background:radial-gradient(circle,rgba(59,130,246,.4),transparent 70%);top:-300px;left:-300px;animation:floatOne 25s ease-in-out infinite}.page:after{background:radial-gradient(circle,rgba(139,92,246,.3),transparent 70%);bottom:-300px;right:-300px;animation:floatTwo 28s ease-in-out infinite}.page>*{position:relative;z-index:1}.page>main:before{content:"";position:absolute;width:700px;height:700px;border-radius:50%;background:radial-gradient(circle,rgba(6,182,212,.3),transparent 70%);top:40%;right:5%;filter:blur(100px);opacity:.12;z-index:0;pointer-events:none;animation:floatThree 30s ease-in-out infinite;mix-blend-mode:screen}.page>main:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 20% 30%,rgba(59,130,246,.03),transparent 30%),radial-gradient(circle at 80% 70%,rgba(139,92,246,.03),transparent 30%),radial-gradient(circle at 50% 50%,rgba(6,182,212,.02),transparent 40%);z-index:0;pointer-events:none;animation:shimmer 15s ease-in-out infinite}.container{max-width:1180px;margin:0 auto;padding:0 28px}.header{position:sticky;top:0;z-index:5;-webkit-backdrop-filter:blur(20px) saturate(180%);backdrop-filter:blur(20px) saturate(180%);background:#000000d9;border-bottom:1px solid rgba(59,130,246,.15);box-shadow:0 4px 24px #00000080,inset 0 1px #3b82f61a}.header:after{content:"";position:absolute;inset:auto 0 0;height:1px;background:linear-gradient(90deg,transparent,var(--accent),var(--accent-cyan),transparent);opacity:.5;animation:shimmer 8s linear infinite}.headerContent{display:flex;justify-content:space-between;align-items:center;height:76px}.brand{display:flex;align-items:center;gap:12px;font-weight:600}.brandMark{display:block;width:42px;height:42px;object-fit:contain;background:transparent;filter:drop-shadow(0 4px 12px rgba(59,130,246,.25))}.brandName{letter-spacing:.3px}.nav{display:flex;align-items:center;gap:18px}.nav a{color:var(--text);text-decoration:none;font-weight:500;opacity:.7;position:relative;transition:opacity .2s ease,color .2s ease}.nav a:after{content:"";position:absolute;bottom:-3px;left:0;right:0;height:2px;background:var(--accent);border-radius:999px;transform:scaleX(0);transition:transform .25s ease}.nav a:hover{opacity:1}.nav a.active{opacity:1;color:var(--accent)}.nav a.active:after{transform:scaleX(1)}.hero{padding:120px 0 80px;position:relative}.heroGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:40px;align-items:center}.eyebrow{text-transform:uppercase;letter-spacing:.24em;font-size:.75rem;color:var(--muted);margin-bottom:18px}.hero h1{font-size:clamp(2.2rem,3vw + 1rem,3.6rem);line-height:1.1;margin-bottom:18px}.lead{font-size:1.05rem;color:var(--muted);margin-bottom:28px}.actions{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:28px}.heroCard{background:linear-gradient(145deg,var(--panel),#0e0e0e);border:1px solid var(--line);padding:28px;border-radius:18px;box-shadow:var(--shadow);transition:transform .4s ease,box-shadow .4s ease,border-color .4s ease;position:relative;overflow:hidden}.heroCard:after{content:"";position:absolute;inset:-30% 20% auto;height:120px;background:radial-gradient(circle,var(--grad-1),transparent 70%);filter:blur(22px);opacity:.6;animation:pulseGlow 8s ease-in-out infinite;pointer-events:none}.heroCard:hover{transform:translateY(-6px);border-color:#c7f36a59;box-shadow:0 18px 40px #00000073}.heroBadge{display:inline-flex;align-items:center;padding:6px 12px;border-radius:999px;background:#3b82f633;color:var(--accent);font-weight:600;margin-bottom:14px;animation:floatBadge 6s ease-in-out infinite;border:1px solid rgba(59,130,246,.3);box-shadow:0 4px 12px #3b82f633}.tickList{list-style:none;padding:0;margin:18px 0 0;display:grid;gap:10px}.tickList li:before{content:"✦";color:var(--accent);margin-right:10px;font-size:1.1em}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:18px}.stat{padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:var(--panel-2);position:relative;overflow:hidden}.stat:after{content:"";position:absolute;inset:0;background:linear-gradient(120deg,transparent,rgba(255,255,255,.08),transparent);transform:translate(-100%);animation:sweep 7s ease-in-out infinite}.statValue{font-size:1.3rem;font-weight:700;display:block}.statLabel{color:var(--muted);font-size:.85rem}.section{padding:90px 0}.light{background:#0f0f0f}.sectionHead{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:36px}.sectionHead p{color:var(--muted);max-width:480px}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:22px}.card{padding:22px;border:1px solid rgba(59,130,246,.12);border-radius:16px;background:linear-gradient(135deg,#0a0a0fcc,#0f0f1699);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:transform .35s ease,border-color .35s ease,box-shadow .35s ease;box-shadow:0 4px 20px #00000080,inset 0 1px #3b82f614}.card:hover{transform:translateY(-6px);border-color:#3b82f659;box-shadow:0 14px 40px #3b82f626,0 0 60px #3b82f60d}.card h3{margin-top:0;margin-bottom:8px}.card p{color:var(--muted)}.reveal.visible .card,.reveal.visible .projectCard,.reveal.visible .experienceCard,.reveal.visible .skillCat,.reveal.visible .certCard{animation:slideUp .5s ease both}.reveal.visible .card:nth-child(2),.reveal.visible .projectCard:nth-child(2),.reveal.visible .experienceCard:nth-child(2),.reveal.visible .skillCat:nth-child(2),.reveal.visible .certCard:nth-child(2){animation-delay:.07s}.reveal.visible .card:nth-child(3),.reveal.visible .projectCard:nth-child(3),.reveal.visible .experienceCard:nth-child(3),.reveal.visible .skillCat:nth-child(3),.reveal.visible .certCard:nth-child(3){animation-delay:.14s}.reveal.visible .card:nth-child(4),.reveal.visible .projectCard:nth-child(4),.reveal.visible .skillCat:nth-child(4),.reveal.visible .certCard:nth-child(4){animation-delay:.21s}.reveal.visible .card:nth-child(5),.reveal.visible .projectCard:nth-child(5),.reveal.visible .skillCat:nth-child(5){animation-delay:.28s}.reveal.visible .card:nth-child(6),.reveal.visible .projectCard:nth-child(6),.reveal.visible .skillCat:nth-child(6){animation-delay:.35s}.reveal.visible .skillCat:nth-child(7){animation-delay:.42s}.reveal.visible .skillCat:nth-child(8){animation-delay:.49s}.workGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:22px}.experienceCard{background:linear-gradient(135deg,#050508e6,#0a0a0fb3);-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);border:1px solid rgba(59,130,246,.15);border-radius:18px;padding:26px;transition:transform .35s ease,border-color .35s ease,box-shadow .35s ease;box-shadow:0 6px 24px #0009,inset 0 1px #3b82f61a}.experienceCard:hover{transform:translateY(-6px);border-color:#3b82f666;box-shadow:0 16px 48px #3b82f633,0 0 80px #3b82f60f}.expHeader{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px}.expHeader h3{margin:0 0 6px;font-size:1.15rem}.expCompany{color:var(--muted);margin:0;font-size:.9rem}.expYear{color:var(--accent);font-size:.85rem;font-weight:600;white-space:nowrap}.expList{list-style:none;padding:0;margin:0;display:grid;gap:10px}.expList li{padding-left:20px;position:relative;font-size:.95rem;line-height:1.5}.expList li:before{content:"→";position:absolute;left:0;color:var(--accent)}.projectsGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:22px}.projectCard{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:24px;transition:transform .35s ease,border-color .35s ease,box-shadow .35s ease}.projectCard:hover{transform:translateY(-4px);border-color:#7f8cff66;box-shadow:0 12px 32px #7f8cff1a}.projectCard h3{margin:0 0 10px}.projectTech{color:var(--accent-2);font-size:.85rem;margin:0 0 12px;font-weight:600}.projectDesc{color:var(--muted);line-height:1.6;margin:0}.skillsGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px}.skillCat{background:linear-gradient(135deg,#08080cb3,#0c0c1280);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(59,130,246,.15);border-radius:14px;padding:20px;transition:border-color .3s ease,box-shadow .3s ease,transform .3s ease;box-shadow:0 4px 16px #00000080,inset 0 1px #3b82f614}.skillCat:hover{border-color:#3b82f659;box-shadow:0 8px 28px #3b82f626,0 0 50px #3b82f60a;transform:translateY(-3px)}.skillCat h4{margin:0 0 12px;color:var(--accent);font-size:1.05rem}.skillCat ul{list-style:none;padding:0;margin:0;display:grid;gap:8px}.skillCat li{padding-left:18px;position:relative;font-size:.9rem;color:var(--text);opacity:.9}.skillCat li:before{content:"•";position:absolute;left:0;color:var(--muted)}.certGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px}.certCard{background:linear-gradient(135deg,#08080ccc,#0c0a1299);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(139,92,246,.15);border-radius:14px;padding:20px;transition:transform .3s ease,border-color .3s ease,box-shadow .3s ease;box-shadow:0 4px 16px #00000080,inset 0 1px #8b5cf614}.certCard:hover{transform:translateY(-3px);border-color:#8b5cf666;box-shadow:0 8px 28px #8b5cf633,0 0 50px #8b5cf60d}.certCard h4{margin:0 0 8px;font-size:1.05rem}.certOrg{color:var(--accent-2);font-weight:600;margin:0 0 8px;font-size:.85rem}.certDesc{color:var(--muted);margin:0;font-size:.9rem}.ghost{margin-top:auto;padding:8px 14px;border-radius:999px;border:1px solid var(--line);background:transparent;color:var(--text);cursor:pointer}.ghost:hover{border-color:var(--accent-2);color:var(--accent-2)}.faq{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:22px}.faqItem{border:1px solid var(--line);border-radius:16px;padding:22px;background:#0e0e0e;transition:transform .35s ease,border-color .35s ease,box-shadow .35s ease;cursor:pointer;-webkit-user-select:none;user-select:none}.faqItem:hover{transform:translateY(-4px);border-color:#7f8cff4d;box-shadow:0 8px 24px #7f8cff1a}.faqItem.open{border-color:#3b82f659;box-shadow:0 8px 28px #3b82f61f}.faqHeader{display:flex;justify-content:space-between;align-items:center;gap:16px}.faqHeader h3{margin:0;font-size:1rem;font-weight:600}.faqChevron{color:var(--accent);font-size:1.3rem;line-height:1;flex-shrink:0;transition:transform .3s ease;display:inline-block}.faqItem.open .faqChevron{transform:rotate(180deg)}.faqBody{max-height:0;overflow:hidden;transition:max-height .4s ease,padding-top .3s ease}.faqItem.open .faqBody{max-height:300px;padding-top:14px}.faqBody p{color:var(--muted);margin:0;line-height:1.6}.contact{text-align:center}.homelabDiagram{background:var(--panel);border:1px solid var(--line);border-radius:20px;padding:40px 28px;margin-top:20px}.networkFlow{display:flex;flex-direction:column;align-items:center;gap:0}.networkNode{background:linear-gradient(145deg,var(--panel-2),#0e0e0e);border:2px solid var(--line);border-radius:16px;padding:18px 24px;text-align:center;min-width:160px;transition:all .3s ease;position:relative}.networkNode:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 12px 28px #0006}.networkNode.internet{border-color:#7f8cff80}.networkNode.router{border-color:#ff9f4080}.networkNode.firewall{border-color:#ff638480;box-shadow:0 0 20px #ff638426}.networkNode.network{border-color:#4bc0c080}.networkNode.server{min-width:140px}.networkNode.proxmox{border-color:#c7f36a66;min-width:180px}.nodeIcon{font-size:2rem;margin-bottom:8px;filter:drop-shadow(0 2px 4px rgba(0,0,0,.3))}.nodeLabel{font-weight:700;font-size:1rem;margin-bottom:4px;color:var(--text)}.nodeDetail{font-size:.8rem;color:var(--muted);margin-top:4px}.connectionLine{width:2px;background:linear-gradient(180deg,var(--line),var(--accent),var(--line));position:relative}.connectionLine.vertical{height:40px}.connectionLine.vertical.short{height:30px}.connectionLine:after{content:"";position:absolute;bottom:-4px;left:50%;transform:translate(-50%);width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:6px solid var(--accent)}.connectionSplit{display:flex;justify-content:center;align-items:flex-start;width:100%;height:100px;position:relative;margin-bottom:20px}.connectionLine.diagonal-left,.connectionLine.diagonal-right{width:3px;height:120px;background:linear-gradient(180deg,var(--accent),var(--line));position:absolute;top:0;transform-origin:top center}.connectionLine.diagonal-left{left:50%;transform:translate(-50%) rotate(-35deg) translateY(0);margin-left:-200px}.connectionLine.diagonal-right{right:50%;transform:translate(50%) rotate(35deg) translateY(0);margin-right:-200px}.connectionLine.diagonal-left:after,.connectionLine.diagonal-right:after{content:"";position:absolute;bottom:-6px;left:50%;transform:translate(-50%) rotate(0);width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-top:8px solid var(--line)}.networkRow{display:flex;justify-content:center;gap:80px;width:100%;flex-wrap:wrap}.networkBranch{display:flex;flex-direction:column;align-items:center;gap:0}.proxmoxCluster{background:#c7f36a0d;border:2px dashed rgba(199,243,106,.3);border-radius:18px;padding:24px 20px;margin-top:10px}.clusterTitle{text-align:center;font-weight:700;color:var(--accent);margin-bottom:20px;font-size:1.05rem}.proxmoxNodes{display:flex;gap:16px;justify-content:center;flex-wrap:wrap}.vmList{display:flex;flex-direction:column;gap:6px;margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}.clusterGroup{border:2px dashed rgba(59,130,246,.4);border-radius:14px;padding:12px;margin-top:8px;display:grid;gap:10px;background:#3b82f60d}.clusterNode{display:flex;flex-direction:column;gap:6px}.clusterNodeTitle{font-size:.8rem;color:var(--accent);font-weight:700;text-transform:uppercase;letter-spacing:.05em}.vmProject{font-size:.8rem;color:var(--accent);font-weight:700;margin-top:8px;padding:0;text-transform:uppercase;letter-spacing:.05em}.vmProject:first-child{margin-top:0}.vm{font-size:.75rem;color:var(--muted);background:#c7f36a1a;padding:4px 10px;border-radius:8px;border:1px solid rgba(199,243,106,.2)}.homelabLegend{display:flex;justify-content:center;gap:24px;margin-top:40px;padding-top:24px;border-top:1px solid var(--line);flex-wrap:wrap}.legendItem{display:flex;align-items:center;gap:8px;font-size:.9rem;color:var(--muted)}.legendIcon{font-size:1.3rem}@media(max-width:1024px){.networkRow{gap:40px}.proxmoxNodes{flex-direction:column}.connectionLine.diagonal-left{left:calc(50% - 120px)}.connectionLine.diagonal-right{right:calc(50% - 120px)}}.btn{display:inline-flex;align-items:center;justify-content:center;padding:12px 22px;border-radius:999px;border:1px solid var(--text);text-decoration:none;color:var(--text);font-weight:600;gap:8px;transition:transform .25s ease,box-shadow .25s ease,background .25s ease,border-color .25s ease;position:relative;overflow:hidden}.btn.primary{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;border-color:transparent;box-shadow:0 4px 16px #3b82f64d}.btn.primary:hover{background:linear-gradient(135deg,#2563eb,#1d4ed8);box-shadow:0 12px 32px #3b82f673,0 0 0 1px #3b82f64d;transform:translateY(-3px)}.btn:hover{transform:translateY(-2px);box-shadow:0 10px 20px #00000059}.btn.small{padding:8px 14px;font-size:.85rem}.btn.secondary{background:#7f8cff1a;color:var(--accent);border-color:#7f8cff4d}.btn.secondary:hover{background:#7f8cff33;box-shadow:0 12px 28px #7f8cff26}.cvBtn{border-color:#fff6}.cvBtn:hover{border-color:#fffc;box-shadow:0 10px 28px #0006}.cvBtn:hover .downloadIcon{animation:downloadBounce .55s ease}.downloadIcon{flex-shrink:0;transition:transform .25s ease}.ripple{position:absolute;border-radius:50%;background:#ffffff40;transform:scale(0);animation:rippleAnim .55s linear;pointer-events:none}.linkedinBtn{position:absolute;top:40px;right:40px;display:inline-flex;align-items:center;justify-content:center;width:50px;height:50px;border-radius:50%;background:#0077b5;border:none;color:#fff;transition:all .3s ease;text-decoration:none;z-index:10;box-shadow:0 4px 12px #0077b54d;overflow:hidden}.linkedinBtn:hover{background:#005885;transform:translateY(-3px) scale(1.06);box-shadow:0 8px 24px #0077b573}.linkedinBtn svg{display:block}.scrollToTop{position:fixed;bottom:30px;right:30px;width:48px;height:48px;border-radius:50%;background:#c7f36a26;border:1px solid rgba(199,243,106,.3);color:var(--accent);font-size:20px;cursor:pointer;opacity:0;visibility:hidden;transform:translateY(20px);transition:all .3s ease;z-index:999;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.scrollToTop:hover{background:#c7f36a40;transform:translateY(-2px);box-shadow:0 8px 20px #c7f36a33}.scrollToTop.visible{opacity:1;visibility:visible;transform:translateY(0)}.footer{border-top:1px solid var(--line);padding:28px 0 40px}.footerContent{display:flex;justify-content:space-between;align-items:center;gap:16px;color:var(--muted);font-size:.9rem}.footerLinks{display:flex;gap:16px}.footerLinks a{color:var(--muted);text-decoration:none}.footerLinks a:hover{color:var(--text)}@media(max-width:780px){.headerContent{flex-direction:column;height:auto;padding:14px 0;gap:12px}.nav{flex-wrap:wrap;justify-content:center}.sectionHead{flex-direction:column;align-items:flex-start}.footerContent{flex-direction:column;text-align:center}.homelabDiagram{padding:28px 18px}.networkRow{flex-direction:column;gap:30px;align-items:center}.connectionSplit{display:none}.networkBranch:before{content:"";width:2px;height:30px;background:var(--line);margin-bottom:0}}@keyframes floatOne{0%,to{transform:translate(0)}50%{transform:translate(60px,40px)}}@keyframes floatTwo{0%,to{transform:translate(0)}50%{transform:translate(-50px,-30px)}}@keyframes floatThree{0%,to{transform:translate(0) scale(1)}33%{transform:translate(40px,-50px) scale(1.1)}66%{transform:translate(-30px,40px) scale(.95)}}@keyframes floatBadge{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes sweep{0%,80%,to{transform:translate(-120%)}40%{transform:translate(120%)}}@keyframes pulseGlow{0%,to{opacity:.45;transform:translateY(0)}50%{opacity:.8;transform:translateY(10px)}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes rippleAnim{to{transform:scale(4);opacity:0}}@keyframes downloadBounce{0%{transform:translateY(0)}25%{transform:translateY(-5px)}50%{transform:translateY(2px)}75%{transform:translateY(-3px)}to{transform:translateY(0)}}.reveal{opacity:0;transform:translateY(28px);transition:opacity .65s ease,transform .65s ease}.reveal.fadeUp{transition-delay:.05s}.reveal.visible{opacity:1;transform:translateY(0)}@media(prefers-reduced-motion:reduce){.page:before,.page:after,.page>main:before,.heroBadge,.stat:after,.header:after{animation:none}.reveal{opacity:1;transform:none;transition:none}.reveal.visible .card,.reveal.visible .projectCard,.reveal.visible .experienceCard,.reveal.visible .skillCat,.reveal.visible .certCard{animation:none}.card,.workCard,.heroCard,.projectCard,.faqItem,.btn{transition:none}}
