:root{--accent:hsl(45,100%,72%);--accent-dim:hsl(45,100%,60%);--accent-glow:hsla(45,100%,72%,0.18);--accent-border:hsla(45,100%,72%,0.35);--gold:hsl(43,74%,58%);--bg-body:hsl(222,14%,7%);--bg-card:hsl(222,13%,10%);--bg-elevated:hsl(222,12%,13%);--bg-surface:hsl(222,11%,16%);--border:hsl(222,10%,20%);--border-light:hsl(222,10%,25%);--text-primary:hsl(0,0%,97%);--text-secondary:hsl(0,0%,78%);--text-muted:hsl(0,0%,52%);--grad-card:linear-gradient(145deg,hsl(222,13%,11%) 0%,hsl(222,11%,9%) 100%);--grad-accent:linear-gradient(135deg,hsl(45,100%,72%) 0%,hsl(35,100%,60%) 100%);--grad-glow:radial-gradient(ellipse 70% 50% at 50% -10%,hsla(45,100%,72%,0.1) 0%,transparent 65%);--shadow-xs:0 1px 4px hsla(0,0%,0%,0.35);--shadow-sm:0 4px 16px hsla(0,0%,0%,0.4);--shadow-md:0 8px 28px hsla(0,0%,0%,0.45);--shadow-lg:0 16px 50px hsla(0,0%,0%,0.55);--shadow-glow:0 0 32px hsla(45,100%,72%,0.2);--font-sans:'Inter',system-ui,sans-serif;--font-mono:'JetBrains Mono','Fira Code',monospace;--fs-xs:11px;--fs-sm:13px;--fs-base:15px;--fs-md:17px;--fs-lg:20px;--fs-xl:24px;--fs-2xl:30px;--fw-light:300;--fw-regular:400;--fw-medium:500;--fw-semi:600;--fw-bold:700;--fw-black:800;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:18px;--radius-2xl:24px;--ease-fast:0.15s cubic-bezier(0.4,0,0.2,1);--ease-base:0.25s cubic-bezier(0.4,0,0.2,1);--ease-slow:0.5s cubic-bezier(0.4,0,0.2,1);--ease-spring:0.4s cubic-bezier(0.34,1.56,0.64,1)}*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{font-family:var(--font-sans);background:var(--bg-body);color:var(--text-secondary);line-height:1.65;min-height:100vh;overflow-x:hidden;position:relative}#snow-canvas{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:0;opacity:0.55}body>*{position:relative;z-index:1}body::-webkit-scrollbar{width:5px}body::-webkit-scrollbar-track{background:var(--bg-body)}body::-webkit-scrollbar-thumb{background:var(--border-light);border-radius:99px}body::-webkit-scrollbar-thumb:hover{background:var(--accent-dim)}a{text-decoration:none;color:inherit}li{list-style:none}img{display:block;max-width:100%;height:auto}ion-icon{display:inline-flex;align-items:center;justify-content:center;width:1em;height:1em;line-height:1;fill:currentColor;stroke:currentColor;contain:strict;vertical-align:middle;pointer-events:none}ion-icon svg,ion-icon .ion-icon-svg{display:block;width:100%;height:100%}.ionicon-fill-none{fill:none !important}.ionicon-stroke-width{stroke-width:32px}button{font:inherit;background:none;border:none;cursor:pointer}input,textarea{display:block;width:100%;font:inherit;background:none}address{font-style:normal}::selection{background:var(--accent);color:var(--bg-body)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}.h2{font-size:var(--fs-xl);font-weight:var(--fw-bold);color:var(--text-primary)}.h3{font-size:var(--fs-lg);font-weight:var(--fw-semi);color:var(--text-primary)}.h4{font-size:var(--fs-base);font-weight:var(--fw-semi);color:var(--text-primary)}.h5{font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text-primary)}@keyframes fadeIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInLeft{from{opacity:0;transform:translateX(-16px)}to{opacity:1;transform:translateX(0)}}@keyframes pulseDot{0%,100%{box-shadow:0 0 0 0 var(--accent-glow)}60%{box-shadow:0 0 0 6px transparent}}@keyframes blink{0%,100%{opacity:1}50%{opacity:0}}@keyframes scaleIn{from{transform:scale(0.93);opacity:0}to{transform:scale(1);opacity:1}}@keyframes avatarRing{0%,100%{opacity:0.6;transform:scale(1)}50%{opacity:0.15;transform:scale(1.18)}}@keyframes statusPulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:0.5;transform:scale(1.4)}}@keyframes slideIn{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}main{display:flex;flex-direction:column;gap:16px;padding:16px;padding-bottom:80px;min-height:100vh}.sidebar{background:var(--grad-card);border:1px solid var(--border);border-radius:var(--radius-2xl);padding:28px 24px;box-shadow:var(--shadow-md);max-height:108px;overflow:hidden;transition:max-height var(--ease-slow),box-shadow var(--ease-base);position:relative}.sidebar::before{content:'';position:absolute;inset:0;border-radius:inherit;background:var(--grad-glow);pointer-events:none}.sidebar.active{max-height:600px}.sidebar-info{display:flex;align-items:center;gap:20px;position:relative}.avatar-box{position:relative;flex-shrink:0;width:88px;height:88px;border-radius:var(--radius-lg);overflow:visible}.avatar-box picture{display:block;width:100%;height:100%}.avatar-box img{width:100%;height:100%;object-fit:cover;object-position:center 0%;border-radius:var(--radius-lg);border:2px solid var(--border-light);display:block}.avatar-ring{position:absolute;inset:-5px;border-radius:calc(var(--radius-lg)+4px);border:1.5px solid var(--accent-border);animation:avatarRing 3s ease infinite;pointer-events:none}.info-content{flex:1;min-width:0}.info-content .name{font-size:var(--fs-md);font-weight:var(--fw-bold);color:var(--text-primary);letter-spacing:-0.3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:8px}.title-tag{background:var(--bg-surface);color:var(--text-secondary);border:1px solid var(--border);font-size:var(--fs-xs);font-weight:var(--fw-medium);padding:5px 16px;border-radius:var(--radius-sm);display:inline-flex;align-items:center;justify-content:center;min-width:175px;min-height:32px;letter-spacing:0.2px}#role-text{display:inline-block;text-align:center;min-height:1.2em}.cursor{color:var(--accent);font-weight:300;animation:blink 1s step-end infinite;display:inline-block;margin-left:2px}.blog-nav-link{display:inline-flex;align-items:center;gap:3px;color:var(--accent-dim) !important}.blog-nav-link ion-icon{display:inline-block;width:11px;height:11px;min-width:11px;min-height:11px;vertical-align:middle}.blog-nav-link:hover{color:var(--accent) !important}.info_more-btn{position:absolute;top:-28px;right:-24px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:0 var(--radius-2xl) 0 var(--radius-lg);color:var(--accent);padding:9px 14px;font-size:var(--fs-xs);font-weight:var(--fw-medium);display:flex;align-items:center;gap:6px;transition:all var(--ease-base);z-index:2}.info_more-btn:hover{background:var(--accent);color:var(--bg-body);border-color:var(--accent)}.info_more-btn span{display:none}.sidebar-info_more{opacity:0;visibility:hidden;transition:opacity var(--ease-slow),visibility var(--ease-slow)}.sidebar.active .sidebar-info_more{opacity:1;visibility:visible}.separator{width:100%;height:1px;background:linear-gradient(90deg,transparent,var(--border),transparent);margin:22px 0}.contacts-list{display:grid;grid-template-columns:1fr;gap:18px}.contact-item{display:flex;align-items:center;gap:16px}.icon-box{width:44px;height:44px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;color:var(--accent);font-size:18px;flex-shrink:0;transition:all var(--ease-base);box-shadow:var(--shadow-xs)}.contact-item:hover .icon-box{background:var(--accent);border-color:var(--accent);color:var(--bg-body);box-shadow:0 0 16px var(--accent-glow)}.contact-title{font-size:var(--fs-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:0.8px;margin-bottom:2px;font-weight:var(--fw-medium)}.contact-link,.contact-addr,time{font-size:var(--fs-sm);color:var(--text-secondary);transition:color var(--ease-base);word-break:break-all;line-height:1.4}.contact-link:hover{color:var(--accent)}.social-list{display:flex;gap:10px;flex-wrap:wrap}.social-link{width:40px;height:40px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:18px;transition:all var(--ease-base)}.social-link:hover{background:var(--accent);border-color:var(--accent);color:var(--bg-body);transform:translateY(-2px);box-shadow:0 4px 14px var(--accent-glow)}.social-link.resume-btn{background:hsla(45,100%,72%,0.1);border-color:var(--accent-border);color:var(--accent)}.social-link.resume-btn:hover{background:var(--accent);color:var(--bg-body)}.navbar{position:fixed;bottom:0;left:0;width:100%;min-height:52px;background:hsla(222,14%,8%,0.92);backdrop-filter:blur(20px) saturate(180%);border-top:1px solid var(--border);z-index:100}.navbar-list{display:flex;justify-content:center;align-items:center;gap:2px;padding:0 12px;overflow-x:auto;-ms-overflow-style:none;scrollbar-width:none}.navbar-list::-webkit-scrollbar{display:none}.navbar-link{color:var(--text-muted);font-size:var(--fs-xs);font-weight:var(--fw-medium);padding:14px 13px;white-space:nowrap;position:relative;transition:color var(--ease-base);text-transform:uppercase;letter-spacing:0.6px}.navbar-link::after{content:'';position:absolute;bottom:0;left:50%;width:0;height:2px;background:var(--grad-accent);border-radius:2px 2px 0 0;transform:translateX(-50%);transition:width var(--ease-spring)}.navbar-link:hover{color:var(--text-secondary)}.navbar-link.active{color:var(--accent)}.navbar-link.active::after{width:70%}article{background:var(--grad-card);border:1px solid var(--border);border-radius:var(--radius-2xl);padding:28px 24px;box-shadow:var(--shadow-md);display:none;position:relative;overflow:hidden}article::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--accent-glow),transparent);pointer-events:none}article.active{display:block;animation:fadeIn 0.4s var(--ease-base) both}.article-title{font-size:var(--fs-xl);font-weight:var(--fw-black);color:var(--text-primary);padding-bottom:12px;margin-bottom:24px;position:relative}.article-title::after{content:'';position:absolute;bottom:0;left:0;width:36px;height:3px;background:var(--grad-accent);border-radius:99px}.section-header{display:flex;align-items:center;gap:12px;margin-bottom:22px;margin-top:36px}.section-header-line{width:3px;height:18px;background:var(--grad-accent);border-radius:2px;flex-shrink:0}.about-text{color:var(--text-secondary);font-size:var(--fs-sm);line-height:1.85;margin-bottom:28px}.about-text p{margin-bottom:14px}.about-text p:last-child{margin-bottom:0}.about-text strong{color:var(--text-primary);font-weight:var(--fw-semi)}.stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:36px}.stats-grid-5{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:36px}.stat-card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px 14px;text-align:center;position:relative;overflow:hidden;cursor:default;transition:all var(--ease-base);display:flex;flex-direction:column;align-items:center;justify-content:center}.stat-card::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 50% -30%,var(--accent-glow) 0%,transparent 70%);opacity:0;transition:opacity var(--ease-base)}.stat-card:hover{border-color:var(--accent-border);transform:translateY(-3px);box-shadow:var(--shadow-glow)}.stat-card:hover::before{opacity:1}.stat-icon{font-size:22px;color:var(--accent);margin-bottom:8px;display:flex;align-items:center;justify-content:center}.stat-number{font-size:26px;font-weight:var(--fw-black);line-height:1;margin-bottom:6px;background:var(--grad-accent);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;font-variant-numeric:tabular-nums}.stat-pill-title{font-size:18px;font-weight:var(--fw-bold);line-height:1.2;margin-bottom:6px;background:var(--grad-accent);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.stat-label{font-size:11px;color:var(--text-muted);line-height:1.35;text-transform:uppercase;letter-spacing:0.4px}.building-section{margin-bottom:36px}.building-section>.h3{display:flex;align-items:center;gap:10px;margin-bottom:20px}.building-section>.h3::before{content:'';width:3px;height:18px;background:var(--grad-accent);border-radius:2px;flex-shrink:0}.building-card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);padding:22px;margin-bottom:14px;position:relative;overflow:hidden;transition:border-color var(--ease-base),box-shadow var(--ease-base)}.building-card::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:var(--grad-accent);transform:scaleX(0);transform-origin:left;transition:transform var(--ease-slow)}.building-card:hover{border-color:var(--accent-border);box-shadow:var(--shadow-glow)}.building-card:hover::before{transform:scaleX(1)}.building-title-wrap{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-start;margin-bottom:14px}.building-icon-wrap{width:40px;height:40px;background:var(--accent-glow);border:1px solid var(--accent-border);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;color:var(--accent);font-size:18px;flex-shrink:0}.building-title{font-size:var(--fs-base);font-weight:var(--fw-semi);color:var(--text-primary);margin-bottom:4px;line-height:1.3}.building-badge{display:inline-flex;align-items:center;gap:5px;font-size:var(--fs-xs);background:hsla(45,100%,72%,0.1);color:var(--accent);border:1px solid var(--accent-border);padding:3px 10px;border-radius:99px;font-weight:var(--fw-medium)}.building-text{color:var(--text-secondary);font-size:var(--fs-sm);line-height:1.8;margin-bottom:16px}.building-text strong{color:var(--text-primary)}.tag-list{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:14px}.tag-item{font-size:var(--fs-xs);font-weight:var(--fw-medium);font-family:var(--font-mono);background:var(--bg-surface);color:var(--text-secondary);border:1px solid var(--border);padding:3px 9px;border-radius:4px;transition:all var(--ease-fast)}.tag-item:hover{background:var(--accent-glow);color:var(--accent);border-color:var(--accent-border)}.project-link-btn{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-xs);font-weight:var(--fw-medium);color:var(--accent);background:hsla(45,100%,72%,0.08);border:1px solid var(--accent-border);padding:5px 12px;border-radius:6px;transition:all var(--ease-base)}.project-link-btn ion-icon{font-size:13px}.project-link-btn:hover{background:var(--accent);color:var(--bg-body);border-color:var(--accent);transform:translateY(-1px);box-shadow:0 4px 12px var(--accent-glow)}.service{margin-bottom:36px}.service>.h3{display:flex;align-items:center;gap:10px;margin-bottom:20px}.service>.h3::before{content:'';width:3px;height:18px;background:var(--grad-accent);border-radius:2px;flex-shrink:0}.service-list{display:grid;grid-template-columns:1fr;gap:12px}.service-item{display:flex;gap:16px;align-items:flex-start;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);padding:18px;transition:all var(--ease-base)}.service-item:hover{border-color:var(--accent-border);transform:translateY(-2px);box-shadow:var(--shadow-sm)}.service-icon-box{width:42px;height:42px;background:var(--accent-glow);border:1px solid var(--accent-border);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;color:var(--accent);font-size:20px;flex-shrink:0;transition:all var(--ease-base)}.service-item:hover .service-icon-box{background:var(--accent);color:var(--bg-body);border-color:var(--accent)}.service-item-title{font-size:var(--fs-base);font-weight:var(--fw-semi);color:var(--text-primary);margin-bottom:6px}.service-item-text{color:var(--text-muted);font-size:var(--fs-sm);line-height:1.65}.timeline{margin-bottom:40px}.timeline .title-wrapper{display:flex;align-items:center;gap:14px;margin-bottom:28px}.timeline-list{position:relative;padding-left:0}.timeline-list::before{content:'';position:absolute;top:0;left:20px;width:1px;height:100%;background:linear-gradient(to bottom,var(--accent-border),transparent)}.timeline-item{position:relative;padding-left:56px;margin-bottom:28px}.timeline-item:last-child{margin-bottom:0}.timeline-dot{position:absolute;left:14px;top:12px;width:12px;height:12px;background:var(--border-light);border:2px solid var(--bg-card);border-radius:50%}.timeline-dot.pulse{background:var(--accent);box-shadow:0 0 0 3px var(--accent-glow);animation:pulseDot 2s ease infinite}.timeline-content{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);padding:18px 20px;transition:border-color var(--ease-base);animation:fadeIn 0.5s var(--ease-base) both}.timeline-content:hover{border-color:var(--border-light)}.timeline-header{display:flex;align-items:flex-start;gap:12px;margin-bottom:10px}.timeline-logo{width:36px;height:36px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden}.timeline-logo img{width:100%;height:100%;object-fit:contain}.timeline-item-title{font-size:var(--fs-base);font-weight:var(--fw-semi);color:var(--text-primary);margin-bottom:4px;line-height:1.3}.timeline-company{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:var(--fs-sm);color:var(--text-secondary);margin-bottom:0}.timeline-company strong{color:var(--text-primary)}.timeline-type{font-size:var(--fs-xs);padding:2px 8px;border-radius:99px;font-weight:var(--fw-medium)}.full-time{background:hsla(120,60%,50%,0.12);color:hsl(120,60%,55%);border:1px solid hsla(120,60%,50%,0.25)}.part-time{background:hsla(200,80%,50%,0.12);color:hsl(200,80%,65%);border:1px solid hsla(200,80%,50%,0.25)}.community{background:hsla(45,100%,72%,0.12);color:var(--accent);border:1px solid var(--accent-border)}.freelance{background:hsla(280,60%,60%,0.12);color:hsl(280,60%,72%);border:1px solid hsla(280,60%,60%,0.25)}.timeline-date{display:flex;align-items:center;gap:5px;font-size:var(--fs-xs);color:var(--text-muted);font-family:var(--font-mono);margin-bottom:10px;margin-top:6px}.timeline-date ion-icon{font-size:12px}.timeline-text{color:var(--text-muted);font-size:var(--fs-sm);line-height:1.75;margin-bottom:12px}.timeline-text strong{color:var(--text-secondary)}.cert-section{margin-bottom:36px}.cert-grid{display:grid;grid-template-columns:1fr;gap:12px;margin-top:20px}.cert-item{display:flex;align-items:center;gap:14px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);padding:14px 16px;transition:all var(--ease-base)}.cert-item:hover{border-color:var(--accent-border);transform:translateX(4px)}.cert-org-logo{width:42px;height:42px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden}.cert-org-logo img{width:26px;height:26px;object-fit:contain}.secops-logo{background:hsl(0,72%,22%)}.cert-name{font-size:var(--fs-sm);font-weight:var(--fw-semi);color:var(--text-primary);margin-bottom:3px;line-height:1.35}.cert-abbr{font-weight:var(--fw-regular);color:var(--text-muted)}.cert-issuer{font-size:var(--fs-xs);color:var(--text-muted)}.cert-badge-icon{margin-left:auto;font-size:18px;color:var(--accent);flex-shrink:0;opacity:0.7}.skills-categories{display:grid;grid-template-columns:1fr;gap:24px}.skills-group{}.skills-group-title{display:flex;align-items:center;gap:8px;font-size:var(--fs-sm);font-weight:var(--fw-semi);color:var(--text-secondary);margin-bottom:14px;text-transform:uppercase;letter-spacing:0.5px}.skills-group-title ion-icon{color:var(--accent);font-size:16px}.skills-list{padding:18px 20px}.skills-item:not(:last-child){margin-bottom:18px}.title-wrapper{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px}.title-wrapper data{font-size:var(--fs-xs);font-family:var(--font-mono);color:var(--accent);font-weight:var(--fw-medium);flex-shrink:0}.skill-progress-bg{background:var(--bg-surface);border-radius:99px;height:5px;overflow:hidden;border:1px solid var(--border)}.skill-progress-fill{height:100%;border-radius:inherit;background:var(--grad-accent);box-shadow:0 0 8px var(--accent-glow);transition:width 1.2s cubic-bezier(0.4,0,0.2,1);width:0%}.skills-title{margin-bottom:20px}.content-card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs)}.filter-list{display:none}.filter-select-box{position:relative;margin-bottom:24px}.filter-select{background:var(--bg-elevated);color:var(--text-secondary);display:flex;justify-content:space-between;align-items:center;width:100%;padding:12px 16px;border:1px solid var(--border);border-radius:var(--radius-md);font-size:var(--fs-sm);transition:border-color var(--ease-base)}.filter-select:hover,.filter-select.active{border-color:var(--accent-border)}.filter-select.active .select-icon{transform:rotate(180deg)}.select-icon{transition:transform var(--ease-base)}.select-list{position:absolute;top:calc(100%+8px);left:0;width:100%;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);padding:6px;z-index:20;opacity:0;visibility:hidden;transform:translateY(-8px);transition:all var(--ease-base)}.filter-select.active+.select-list{opacity:1;visibility:visible;transform:translateY(0)}.select-item button{display:block;width:100%;padding:8px 12px;color:var(--text-secondary);font-size:var(--fs-sm);border-radius:var(--radius-sm);transition:all var(--ease-fast)}.select-item button:hover{background:var(--bg-surface);color:var(--text-primary)}.project-list{display:grid;grid-template-columns:1fr;gap:20px}.project-item{display:none}.project-item.active{display:block;animation:scaleIn 0.3s var(--ease-base) both}.project-card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;transition:all var(--ease-base)}.project-card:hover{border-color:var(--accent-border);transform:translateY(-4px);box-shadow:var(--shadow-lg)}.project-img{position:relative;width:100%;aspect-ratio:16/9;overflow:hidden;background:var(--bg-surface)}.project-img picture{display:block;width:100%;height:100%}.project-img img{width:100%;height:100%;object-fit:cover;transition:transform 0.5s var(--ease-base)}.project-card:hover .project-img img{transform:scale(1.05)}.project-overlay{position:absolute;inset:0;background:hsla(222,14%,7%,0.6);display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity var(--ease-base);font-size:28px;color:var(--accent);backdrop-filter:blur(2px)}.project-card:hover .project-overlay{opacity:1}.project-card-content{padding:18px 20px}.project-header{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:10px}.project-cat-badge{font-size:var(--fs-xs);font-weight:var(--fw-medium);padding:3px 10px;border-radius:99px;text-transform:uppercase;letter-spacing:0.5px}.badge-security{background:hsla(0,70%,55%,0.12);color:hsl(0,70%,65%);border:1px solid hsla(0,70%,55%,0.25)}.badge-web{background:hsla(200,80%,55%,0.12);color:hsl(200,80%,65%);border:1px solid hsla(200,80%,55%,0.25)}.badge-ai{background:hsla(270,70%,60%,0.12);color:hsl(270,70%,72%);border:1px solid hsla(270,70%,60%,0.25)}.badge-network{background:hsla(150,60%,45%,0.12);color:hsl(150,60%,55%);border:1px solid hsla(150,60%,45%,0.25)}.project-year{font-size:var(--fs-xs);font-family:var(--font-mono);color:var(--text-muted);white-space:nowrap}.patent-badge,.award-badge{display:inline-flex;align-items:center;gap:4px;font-size:var(--fs-xs);color:var(--accent);background:var(--accent-glow);border:1px solid var(--accent-border);padding:3px 8px;border-radius:99px}.project-title{font-size:var(--fs-base);font-weight:var(--fw-semi);color:var(--text-primary);margin-bottom:8px;line-height:1.3;transition:color var(--ease-base)}.project-card:hover .project-title{color:var(--accent)}.project-desc{color:var(--text-muted);font-size:var(--fs-sm);line-height:1.65;margin-bottom:14px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.project-links{display:flex;flex-wrap:wrap;gap:8px}.homelab-intro{color:var(--text-secondary);font-size:var(--fs-sm);line-height:1.8;margin-bottom:24px;padding:16px 20px;background:var(--bg-elevated);border-left:3px solid var(--accent);border-radius:0 var(--radius-md) var(--radius-md) 0}.lab-stats-strip{display:flex;align-items:center;gap:0;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px 20px;margin-bottom:24px;overflow-x:auto;-ms-overflow-style:none;scrollbar-width:none}.lab-stats-strip::-webkit-scrollbar{display:none}.lab-stat{display:flex;flex-direction:column;align-items:center;text-align:center;flex:1;min-width:90px;gap:4px}.lab-stat ion-icon{font-size:20px;color:var(--accent)}.ls-num{font-size:var(--fs-md);font-weight:var(--fw-bold);color:var(--text-primary);line-height:1;font-family:var(--font-mono)}.ls-label{font-size:var(--fs-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:0.4px}.lab-stat-sep{width:1px;height:40px;background:var(--border);flex-shrink:0;margin:0 8px}.homelab-grid{display:grid;grid-template-columns:1fr;gap:14px;margin-bottom:24px}.homelab-card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);padding:22px;position:relative;overflow:hidden;transition:all var(--ease-base)}.homelab-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.hl-compute{border-top:2px solid hsl(200,100%,50%)}.hl-network{border-top:2px solid hsl(120,70%,45%)}.hl-identity{border-top:2px solid hsl(280,80%,65%)}.hl-pki{border-top:2px solid hsl(45,100%,72%)}.hl-compute:hover{border-color:hsl(200,100%,50%);box-shadow:0 8px 30px hsla(200,100%,50%,0.12)}.hl-network:hover{border-color:hsl(120,70%,45%);box-shadow:0 8px 30px hsla(120,70%,45%,0.12)}.hl-identity:hover{border-color:hsl(280,80%,65%);box-shadow:0 8px 30px hsla(280,80%,65%,0.12)}.hl-pki:hover{border-color:var(--accent);box-shadow:0 8px 30px var(--accent-glow)}.hlab-card-glow{position:absolute;inset:0;border-radius:inherit;background:radial-gradient(ellipse at 100% -30%,hsla(200,100%,50%,0.06) 0%,transparent 60%);pointer-events:none}.hl-network .hlab-card-glow{background:radial-gradient(ellipse at 100% -30%,hsla(120,70%,45%,0.06) 0%,transparent 60%)}.hl-identity .hlab-card-glow{background:radial-gradient(ellipse at 100% -30%,hsla(280,80%,65%,0.06) 0%,transparent 60%)}.hl-pki .hlab-card-glow{background:radial-gradient(ellipse at 100% -30%,hsla(45,100%,72%,0.06) 0%,transparent 60%)}.homelab-header{display:flex;align-items:center;gap:12px;margin-bottom:18px}.homelab-icon-wrap{width:40px;height:40px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0}.hl-icon-compute{background:hsla(200,100%,50%,0.12);border:1px solid hsla(200,100%,50%,0.3);color:hsl(200,100%,60%)}.hl-icon-network{background:hsla(120,70%,45%,0.12);border:1px solid hsla(120,70%,45%,0.3);color:hsl(120,70%,55%)}.hl-icon-identity{background:hsla(280,80%,65%,0.12);border:1px solid hsla(280,80%,65%,0.3);color:hsl(280,80%,70%)}.hl-icon-pki{background:var(--accent-glow);border:1px solid var(--accent-border);color:var(--accent)}.homelab-card-title{font-size:var(--fs-base);font-weight:var(--fw-semi);color:var(--text-primary)}.hlab-status{display:inline-flex;align-items:center;gap:5px;font-size:var(--fs-xs);font-weight:var(--fw-medium);padding:2px 8px;border-radius:99px;margin-left:auto}.hlab-status.online{background:hsla(120,60%,45%,0.12);color:hsl(120,60%,55%);border:1px solid hsla(120,60%,45%,0.25)}.status-dot{width:6px;height:6px;border-radius:50%;background:hsl(120,60%,55%);animation:statusPulse 2s ease infinite}.homelab-list{margin-bottom:14px}.homelab-list-item{display:flex;gap:10px;font-size:var(--fs-sm);color:var(--text-muted);line-height:1.7;margin-bottom:10px}.homelab-list-item:last-child{margin-bottom:0}.homelab-list-item strong{color:var(--text-secondary)}.homelab-list-item div{flex:1}.hlab-bullet{width:6px;height:6px;border-radius:50%;background:var(--accent);margin-top:9px;flex-shrink:0}.hl-network .hlab-bullet{background:hsl(120,70%,55%)}.hl-identity .hlab-bullet{background:hsl(280,80%,70%)}.hl-compute .hlab-bullet{background:hsl(200,100%,60%)}.homelab-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}.terminal-strip{background:hsl(222,20%,6%);border:1px solid hsl(120,50%,30%);border-radius:var(--radius-lg);padding:18px 20px;font-family:var(--font-mono);font-size:var(--fs-xs);line-height:1.9;overflow-x:auto}.term-line{display:flex;gap:0;flex-wrap:wrap}.term-prompt{color:hsl(120,70%,55%);font-weight:var(--fw-semi);white-space:nowrap}.term-cmd{color:hsl(45,100%,72%);white-space:nowrap}.term-out{color:hsl(0,0%,65%);padding-left:16px;white-space:pre}.term-cursor{color:hsl(120,70%,55%);animation:blink 1s step-end infinite}.contact-intro{font-size:var(--fs-sm);color:var(--text-secondary);line-height:1.8;margin-bottom:28px;padding:16px 20px;background:var(--bg-elevated);border-left:3px solid var(--accent);border-radius:0 var(--radius-md) var(--radius-md) 0}.contact-info-grid{display:grid;grid-template-columns:1fr;gap:10px;margin-bottom:32px}.contact-info-card{display:flex;align-items:center;gap:14px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);padding:14px 16px;transition:all var(--ease-base);cursor:pointer}.contact-info-card:hover{border-color:var(--accent-border);transform:translateX(4px);box-shadow:var(--shadow-sm)}.contact-info-icon{width:40px;height:40px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0;transition:all var(--ease-base)}.ci-email{background:hsla(0,70%,55%,0.12);border:1px solid hsla(0,70%,55%,0.25);color:hsl(0,70%,65%)}.ci-linkedin{background:hsla(200,90%,50%,0.12);border:1px solid hsla(200,90%,50%,0.25);color:hsl(200,90%,60%)}.ci-github{background:hsla(0,0%,80%,0.1);border:1px solid hsla(0,0%,80%,0.2);color:hsl(0,0%,80%)}.ci-blog{background:hsla(45,100%,72%,0.12);border:1px solid var(--accent-border);color:var(--accent)}.ci-resume{background:hsla(120,60%,45%,0.12);border:1px solid hsla(120,60%,45%,0.25);color:hsl(120,60%,55%)}.ci-discord{background:hsla(235,85%,65%,0.12);border:1px solid hsla(235,85%,65%,0.25);color:hsl(235,85%,72%)}.contact-info-card:hover .contact-info-icon{background:var(--accent);border-color:var(--accent);color:var(--bg-body)}.contact-info-text{flex:1;min-width:0}.contact-info-label{font-size:var(--fs-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:0.7px;font-weight:var(--fw-medium);margin-bottom:2px}.contact-info-value{font-size:var(--fs-sm);color:var(--text-secondary);font-weight:var(--fw-medium);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ci-arrow{font-size:14px;color:var(--text-muted);flex-shrink:0;transition:color var(--ease-base),transform var(--ease-spring)}.contact-info-card:hover .ci-arrow{color:var(--accent);transform:translateX(3px)}.contact-form{border-top:1px solid var(--border);padding-top:28px}.form-header{margin-bottom:20px}.form-title{margin-bottom:6px}.form-subtitle{font-size:var(--fs-sm);color:var(--text-muted);line-height:1.6}.form-alert{display:flex;align-items:center;gap:10px;padding:12px 16px;border-radius:var(--radius-md);font-size:var(--fs-sm);font-weight:var(--fw-medium);margin-bottom:20px}.form-alert--success{background:hsla(120,60%,45%,0.12);color:hsl(120,60%,55%);border:1px solid hsla(120,60%,45%,0.3)}.form-alert--error{background:hsla(0,70%,55%,0.12);color:hsl(0,70%,65%);border:1px solid hsla(0,70%,55%,0.3)}.form-row{display:grid;grid-template-columns:1fr;gap:16px;margin-bottom:16px}.form-group{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}.form-label{font-size:var(--fs-xs);color:var(--text-muted);font-weight:var(--fw-medium);text-transform:uppercase;letter-spacing:0.6px}.required{color:var(--accent)}.form-input{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-primary);font-size:var(--fs-sm);padding:12px 16px;transition:all var(--ease-base);outline:none;line-height:1.5}.form-input::placeholder{color:var(--text-muted)}.form-input:focus{border-color:var(--accent-border);box-shadow:0 0 0 3px var(--accent-glow)}textarea.form-input{min-height:130px;resize:vertical}.form-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:4px}.form-note{display:flex;align-items:center;gap:6px;font-size:var(--fs-xs);color:var(--text-muted)}.form-note ion-icon{font-size:13px;color:var(--accent)}.form-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--grad-accent);color:var(--bg-body);font-size:var(--fs-sm);font-weight:var(--fw-semi);padding:12px 28px;border-radius:var(--radius-md);transition:all var(--ease-base);white-space:nowrap;position:relative;overflow:hidden}.form-btn::before{content:'';position:absolute;inset:0;background:linear-gradient(135deg,hsla(255,255,255,0.15) 0%,transparent 60%);opacity:0;transition:opacity var(--ease-base)}.form-btn:hover::before{opacity:1}.form-btn:hover{transform:translateY(-2px);box-shadow:0 8px 24px var(--accent-glow)}.form-btn:disabled{opacity:0.45;cursor:not-allowed;transform:none;box-shadow:none}.scroll-top-btn{position:fixed;bottom:80px;right:16px;width:40px;height:40px;background:var(--bg-elevated);border:1px solid var(--accent-border);border-radius:50%;color:var(--accent);font-size:18px;display:flex;align-items:center;justify-content:center;z-index:90;cursor:pointer;transition:all var(--ease-spring);box-shadow:var(--shadow-sm)}.scroll-top-btn:hover{background:var(--accent);color:var(--bg-body);transform:translateY(-3px);box-shadow:var(--shadow-glow)}.scroll-top-btn[hidden]{display:none}@media (min-width:580px){main{padding:24px;padding-bottom:90px}article{padding:32px 28px}.article-title{font-size:var(--fs-2xl)}.sidebar{padding:28px 24px}.sidebar-info{gap:22px}.avatar-box{width:100px;height:100px}.info-content .name{font-size:var(--fs-lg)}.info_more-btn span{display:flex;font-size:var(--fs-xs)}.info_more-btn ion-icon{display:none}.contacts-list{grid-template-columns:1fr 1fr}.stats-grid{grid-template-columns:repeat(4,1fr)}.stats-grid-5{grid-template-columns:repeat(2,1fr)}.service-list{grid-template-columns:1fr 1fr}.cert-grid{grid-template-columns:1fr 1fr}.skills-categories{grid-template-columns:1fr 1fr}.homelab-grid{grid-template-columns:1fr 1fr}.contact-info-grid{grid-template-columns:repeat(2,1fr)}.form-row{grid-template-columns:1fr 1fr}}@media (min-width:768px){main{max-width:800px;margin-inline:auto}.stats-grid-5{grid-template-columns:repeat(3,1fr)}.filter-select-box{display:none}.filter-list{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px;padding-left:0}.filter-item button{font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text-muted);padding:7px 16px;border-radius:99px;border:1px solid var(--border);background:var(--bg-elevated);transition:all var(--ease-base)}.filter-item button:hover{color:var(--text-secondary);border-color:var(--border-light)}.filter-item button.active{background:var(--accent);color:var(--bg-body);border-color:var(--accent);box-shadow:0 0 16px var(--accent-glow)}.project-list{grid-template-columns:1fr 1fr}.navbar{border-top:none;border-radius:var(--radius-2xl) var(--radius-2xl) 0 0}.navbar-link{font-size:var(--fs-sm);padding:16px 16px}}@media (min-width:1024px){main{max-width:1200px;margin-inline:auto;display:flex;flex-direction:row;align-items:stretch;gap:28px;padding:60px 24px;margin-bottom:0}.sidebar{position:sticky;top:60px;width:320px;flex-shrink:0;max-height:max-content;height:100%;min-height:740px;overflow:visible;padding:55px 26px 38px;display:flex;flex-direction:column;justify-content:flex-start;z-index:1}.sidebar-info{flex-direction:column;align-items:center;text-align:center;gap:0}.avatar-box{width:150px;height:150px;border-radius:30px;margin-bottom:18px}.avatar-box img{border-radius:30px;object-position:center 0%}.avatar-ring{border-radius:34px;inset:-6px}.info-content .name{font-size:24px;font-weight:var(--fw-bold);white-space:nowrap;text-align:center;margin-bottom:10px}.title-tag{margin:0 auto;padding:6px 18px;font-size:12px;border-radius:8px;min-width:185px;min-height:34px;display:inline-flex;align-items:center;justify-content:center}.info_more-btn{display:none}.sidebar-info_more{opacity:1 !important;visibility:visible !important;width:100%;display:flex;flex-direction:column;flex:1}.separator{margin:28px 0;width:100%}.contacts-list{grid-template-columns:1fr;gap:28px}.contact-item{gap:16px}.icon-box{width:48px;height:48px;border-radius:12px;font-size:18px}.contact-title{font-size:11px;margin-bottom:4px}.contact-link,time,address{font-size:13.5px}.social-list{justify-content:center;gap:14px;margin-top:auto;padding-top:14px}.social-link{width:42px;height:42px;border-radius:10px;font-size:18px}.stats-grid-5{grid-template-columns:repeat(5,1fr);gap:10px}.main-content{flex:1;min-width:0;position:relative}.navbar{position:absolute;top:0;right:0;bottom:auto;left:auto;width:max-content;min-height:52px;border-radius:0 var(--radius-2xl);border-top:none;border:1px solid var(--border);background:hsla(222,14%,9%,0.96);backdrop-filter:blur(20px)}.navbar-list{padding:0 20px;gap:4px}.navbar-link{font-size:var(--fs-xs);padding:14px 14px}article{min-height:100%}.project-list{grid-template-columns:repeat(3,1fr)}.scroll-top-btn{bottom:40px;right:40px}}@media (min-width:1280px){main{max-width:1260px;gap:30px}.sidebar{width:310px;padding:60px 30px 42px;min-height:760px}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}