:root{--bg:#02070c;--bg-deep:#010409;--bg-soft:#07141e;--panel:#040f18c2;--panel-strong:#030c14eb;--panel-soft:#081823ad;--line:#60b7d747;--line-strong:#63dcf885;--line-soft:#68aac224;--cyan:#0fd1ef;--cyan-2:#73efff;--cyan-3:#078ab4;--amber:#ffb45f;--amber-soft:#ffb45f24;--green:#36e49a;--white:#f7fbfd;--text:#d6e0e6;--muted:#b1c0c9;--dim:#899aa6;--shell:min(1360px,calc(100vw - clamp(40px,6vw,116px)));--radius:22px;--radius-sm:13px;--font-sans:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--font-mono:"SFMono-Regular",Consolas,"Liberation Mono",Menlo,monospace;--cut:8px;--chip-clip:polygon(var(--cut)0,100% 0,100% calc(100% - var(--cut)),calc(100% - var(--cut))100%,0 100%,0 var(--cut))}*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--bg);overflow-x:clip}body{min-width:320px;color:var(--text);font-family:var(--font-sans);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;background:radial-gradient(circle at 78% 4%,#0089b929,#0000 34rem),radial-gradient(circle at 9% 38%,#05486f1c,#0000 42rem),linear-gradient(#02070c 0,#041019 50%,#02070c 100%);margin:0;font-size:17px;line-height:1.62;position:relative;overflow-x:clip}body.nav-open{overflow:hidden}::selection{color:#fff;background:#0fd1ef52}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}img,svg{max-width:100%;display:block}svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round}:focus-visible{outline:3px solid var(--amber);outline-offset:4px;border-radius:8px}#ambient-field{z-index:0;pointer-events:none;opacity:.96;width:100vw;height:100vh;position:fixed;inset:0}body:before{content:"";z-index:1;pointer-events:none;background:linear-gradient(90deg,#0105096b,#0000 17% 83%,#0105096b),radial-gradient(circle at 50% 42%,#0000 0 34%,#0000002e 73%,#0000007a 100%);position:fixed;inset:0}.site-footer,.site-header,main{z-index:2;position:relative}.skip-link{z-index:9999;color:#001018;background:var(--cyan);border-radius:9px;padding:.75rem 1.1rem;font-weight:850;position:fixed;top:.8rem;left:.8rem;transform:translateY(-180%)}.skip-link:focus{transform:none}.svg-sprite{width:0;height:0;position:absolute;overflow:hidden}.site-noise{z-index:500;pointer-events:none;opacity:.025;background-image:url(../images/noise.webp);position:fixed;inset:0}.scroll-progress{z-index:550;height:3px;position:fixed;inset:0 0 auto}.scroll-progress span{background:linear-gradient(90deg,var(--cyan),var(--cyan-2));width:0;height:100%;box-shadow:0 0 15px var(--cyan);display:block}.shell{width:var(--shell);margin-inline:auto}.section{z-index:2;isolation:isolate;padding:78px 0;position:relative}.section-anchor{scroll-margin-top:96px}.section:before{content:"";z-index:-2;pointer-events:none;background:radial-gradient(at 8% 52%,#006fa11b,#0000 39%),radial-gradient(at 92% 44%,#0090b616,#0000 37%);position:absolute;inset:-180px 0}.section:after{content:"";z-index:-1;pointer-events:none;opacity:.14;background-image:radial-gradient(circle,#5ccbe89e .75px,#0000 .9px);background-size:30px 30px;position:absolute;inset:-90px 0;mask-image:linear-gradient(90deg,#000 0,#0000 28% 72%,#000 100%)}.site-header{z-index:100;background:linear-gradient(#02070cf7,#02070ccc);border-bottom:1px solid #4e9dbc2b;height:82px;position:fixed;inset:0 0 auto}.site-header.scrolled{background:#02070cf2;box-shadow:0 16px 38px #00000057}.header-inner{justify-content:space-between;align-items:center;height:82px;display:flex}.brand-frame{align-items:center;height:100%;margin-inline:-16px;padding-inline:16px;display:flex;position:relative;overflow:hidden;-webkit-mask-image:linear-gradient(#0000 0,#000 5% 95%,#0000 100%);mask-image:linear-gradient(#0000 0,#000 5% 95%,#0000 100%)}.brand{filter:drop-shadow(0 0 3px #06c9ec80)drop-shadow(0 0 6px #06c9ec42);width:clamp(190px,12vw,230px)}.brand img{width:100%;height:auto}.site-nav{align-items:center;gap:clamp(26px,2.2vw,44px);height:100%;display:flex}.site-nav a{color:#dbe6ec;letter-spacing:.005em;place-items:center;min-width:48px;height:100%;padding-inline:4px;font-size:16px;font-weight:680;display:grid;position:relative}.site-nav a:after{content:"";background:var(--cyan);height:2px;box-shadow:0 0 14px var(--cyan);transition:left .2s,right .2s;position:absolute;bottom:13px;left:50%;right:50%}.site-nav a.active,.site-nav a:hover{color:var(--cyan-2)}.site-nav a.active:after,.site-nav a:hover:after{left:0;right:0}.mobile-nav-backdrop,.nav-toggle{display:none}.hero{--avatar-render-width:540px;z-index:1;isolation:isolate;border-bottom:1px solid #478ea91f;min-height:clamp(710px,76vh,840px);padding-top:82px;position:relative;overflow:hidden}#signal-field{z-index:0;pointer-events:none;width:100%;height:calc(100% - 82px);position:absolute;inset:82px 0 0}.hero:before{content:"";z-index:0;pointer-events:none;background:linear-gradient(25deg,#0000 47%,#00bbe707 48% 49%,#0000 50%) 0 0/74px 74px,radial-gradient(circle at 75% 47%,#00c2e91f,#0000 360px);position:absolute;inset:82px 0 0;mask-image:linear-gradient(#000 0 88%,#0000)}.hero:after{content:"";z-index:1;pointer-events:none;background:linear-gradient(90deg,#02070c33 0,transparent 22%,transparent 80%,#02070c40 100%),linear-gradient(180deg,transparent 67%,#02070c61 88%,var(--bg)100%);position:absolute;inset:82px 0 0}.hero-grid{z-index:3;grid-template-columns:minmax(0,.92fr) minmax(520px,1.08fr);align-items:stretch;gap:clamp(24px,3.8vw,58px);min-height:calc(clamp(710px,76vh,840px) - 82px);display:grid;position:relative}.hero-copy{z-index:6;align-self:center;max-width:640px;padding:42px 0 62px;position:relative}.hero-copy:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(#02070c8f 0 38%,#02070c40 68%,#0000 84%);width:810px;height:570px;position:absolute;top:-100px;left:-160px}.eyebrow,.kicker{color:#9cb0bc;font:760 13px/1.35 var(--font-mono);letter-spacing:.105em;text-transform:uppercase;align-items:center;gap:10px;margin:0;display:inline-flex}.kicker span{background:var(--cyan);width:22px;height:2px;box-shadow:0 0 10px #0fd1ef99}.hero .eyebrow{margin-bottom:16px}.hero h1{color:var(--white);letter-spacing:-.062em;text-shadow:0 13px 36px #00000094;margin:0 0 20px;font-size:clamp(78px,6.1vw,108px);font-weight:870;line-height:.91}.hero h1 span{color:#fff}.hero-role{max-width:620px;color:var(--cyan);flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 20px;font-size:clamp(17px,1.16vw,20px);font-weight:790;line-height:1.45;display:flex}.hero-role i{background:var(--cyan);border-radius:50%;flex:none;width:5px;height:5px}.hero-intro{color:#c0ccd4;max-width:43ch;margin:0;font-size:clamp(17px,1.05vw,19px);line-height:1.72}.hero-actions{flex-wrap:wrap;gap:14px;margin-top:30px;display:flex}.button{--notch:11px;isolation:isolate;min-height:50px;clip-path:polygon(var(--notch)0,100% 0,100% calc(100% - var(--notch)),calc(100% - var(--notch))100%,0 100%,0 var(--notch));letter-spacing:.015em;border:0;border-radius:0;justify-content:center;align-items:center;gap:12px;padding:13px 27px;font-size:15px;font-weight:830;transition:transform .18s,filter .22s,background .18s,clip-path .3s;display:inline-flex}.button:before{content:"";z-index:-1;clip-path:polygon(var(--notch)0,100% 0,100% calc(100% - var(--notch)),calc(100% - var(--notch))100%,0 100%,0 var(--notch));transition:background .18s,clip-path .3s;position:absolute;inset:1.5px}.button svg{stroke-width:1.9px;width:18px;height:18px;transition:transform .2s}.button:hover svg{transform:translate(3px)}.button-primary{color:#001018;filter:drop-shadow(0 10px 26px #00c4e942);background:linear-gradient(135deg,#b2f6fff2,#33c7e8f2 55%,#96f0ffe6);min-width:190px}.button-primary:before{background:repeating-linear-gradient(-45deg,#001e2921 0 2px,#0000 2px 7px) 100%/30px 100% no-repeat,linear-gradient(120deg,#ffffff61,#0000 38%),linear-gradient(135deg,#5deaff,#05bcde)}.button-primary:hover{filter:drop-shadow(0 15px 36px #00c4e970)}.button-ghost{min-width:182px;color:var(--cyan-2);background:linear-gradient(135deg,#06c9ec9e,#06c9ec38 40% 60%,#06c9ec9e)}.button-ghost:before{background:linear-gradient(120deg,#5deaff1f,#0000 42%),#010b11e0}.button-ghost:hover{color:#e4faff;background:linear-gradient(135deg,#78ecffe6,#06c9ec73 50%,#78ecffe6)}.button-ghost:hover:before{background:linear-gradient(120deg,#5deaff33,#0000 46%),#031822eb}.button:focus-visible{background:var(--amber);outline:0}.button:focus-visible:before{inset:3px}.hero-focus{flex-wrap:wrap;gap:10px;margin-top:26px;display:flex}.hero-focus span{color:#aebdc6;background:#04111a8f;border:1px solid #56aac933;border-radius:999px;align-items:center;gap:8px;min-height:34px;padding:6px 10px;font-size:13px;display:inline-flex}.hero-focus svg{width:15px;height:15px;color:var(--cyan)}.hero-visual{z-index:4;min-width:0;min-height:100%;position:relative;overflow:visible}.hero-visual:before{content:"";background:radial-gradient(#00bee529,#0000 72%);height:73%;position:absolute;bottom:3%;left:-4%;right:-16%}.hero-visual:after{content:"";opacity:.8;background:radial-gradient(#00d1ef21,#00d1ef0a 42%,#0000 72%);border-radius:50%;height:160px;position:absolute;bottom:-40px;left:8%;right:4%}.avatar-stage{z-index:3;pointer-events:none;transform:translateX(var(--avatar-x,0));transform-origin:bottom;transition:transform .15s ease-out;position:absolute;inset:0}.avatar-wrap{z-index:5;pointer-events:none;justify-content:center;align-items:flex-end;display:flex;position:absolute;inset:0}.avatar-wrap img{width:var(--avatar-render-width);max-width:100%;height:auto;transform:perspective(900px)rotateX(var(--avatar-tilt-x,0deg))rotateY(var(--avatar-tilt-y,0deg));transform-origin:bottom;filter:drop-shadow(0 24px 42px #0000008c)drop-shadow(0 0 24px #00aed821);transition:transform .15s ease-out}.hero-hex{z-index:2;border:4px solid var(--cyan);clip-path:polygon(25% 2%,75% 2%,98% 50%,75% 98%,25% 98%,2% 50%);opacity:.9;filter:drop-shadow(0 0 12px #06c9ec7a);width:580px;height:420px;position:absolute;top:18%;left:1%}.hero-hex:before{content:"";clip-path:inherit;border:1px solid #5ae8ff73;position:absolute;inset:13px}.hero-hud{z-index:1;pointer-events:none;position:absolute;inset:0}.hud-ring{border:1px solid #0fd1ef38;border-radius:50%;position:absolute}.hud-ring-a{width:520px;height:520px;top:10%;left:3%}.hud-ring-b{border-style:dashed;width:420px;height:420px;top:17%;left:10%}.hud-ring-c{opacity:.7;width:320px;height:320px;top:24%;left:17%}.hud-line{background:linear-gradient(90deg,#0000,#0fd1ef8c,#0000);height:1px;position:absolute}.hud-line-a{width:78%;top:34%;left:-4%;transform:rotate(-14deg)}.hud-line-b{width:84%;top:65%;left:-2%;transform:rotate(12deg)}.hud-node{background:var(--cyan);width:7px;height:7px;box-shadow:0 0 16px var(--cyan);border-radius:50%;position:absolute}.node-a{top:30%;left:7%}.node-b{top:22%;right:12%}.node-c{top:62%;right:4%}.section-heading{justify-content:space-between;align-items:end;gap:42px;margin-bottom:30px;display:flex}.about-copy h2,.contact-copy h2,.lab-heading h2,.section-heading h2{color:var(--white);letter-spacing:-.035em;margin:10px 0 0;font-size:clamp(32px,2.6vw,46px);line-height:1.13}.section-lede{max-width:52ch;color:var(--muted);margin:0;font-size:17px;line-height:1.65}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;display:grid}.project-card{border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(145deg,#05131ef0,#020a11e0);grid-template-rows:auto 310px;min-width:0;display:grid;position:relative;overflow:hidden;box-shadow:0 26px 70px #0000003b,inset 0 1px #ffffff06}.project-card:after{content:"";background:linear-gradient(90deg,transparent,var(--cyan),transparent);opacity:.55;height:1px;position:absolute;inset:auto 0 0}.project-copy{padding:30px 30px 26px}.project-meta{color:#8fa3af;font:720 13px/1.35 var(--font-mono);text-transform:uppercase;letter-spacing:.07em;flex-wrap:wrap;align-items:center;gap:9px 14px;display:flex}.accent-tag{color:var(--cyan-2)}.accent-tag-warm{color:var(--amber);background:var(--amber-soft);border-color:#ffb45f80}.project-card h3{color:var(--white);letter-spacing:-.025em;margin:17px 0 10px;font-size:30px;line-height:1.15}.project-summary{color:#c8d4db;margin:0 0 22px;font-size:17px;line-height:1.65}.project-evidence{gap:12px;margin:0;display:grid}.project-evidence div{grid-template-columns:76px 1fr;gap:12px;display:grid}.project-evidence dt{color:var(--cyan);font:760 13px/1.55 var(--font-mono);text-transform:uppercase;letter-spacing:.05em}.project-evidence dd{color:#b8c5cd;margin:0;font-size:16px;line-height:1.55}.project-actions{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;margin-top:24px;display:flex}.project-actions a,.text-link{color:var(--cyan-2);align-items:center;gap:8px;font-size:15px;font-weight:780;display:inline-flex}.project-actions a svg,.text-link svg{width:17px;height:17px;transition:transform .18s}.project-actions a:hover svg,.text-link:hover svg{transform:translate(3px)}.project-actions>span{color:#8194a0;font:690 13px/1.4 var(--font-mono)}.project-visual{border-top:1px solid var(--line-soft);background:radial-gradient(circle at 50% 35%,#009bcb26,#0000 60%),#020a10;min-height:310px;position:relative;overflow:hidden}.mini-browser,.native-window{background:#01070ceb;border:1px solid #5cd2f052;border-radius:14px 14px 0 0;position:absolute;inset:28px 7% -28px;overflow:hidden;box-shadow:0 20px 50px #0000007a,0 0 32px #00b7e217}.browser-bar,.window-bar{color:#728896;height:36px;font:650 12px/1 var(--font-mono);border-bottom:1px solid #5faecc2e;align-items:center;gap:7px;padding:0 13px;display:flex}.browser-bar i,.window-bar i{background:#2b4656;border-radius:50%;width:8px;height:8px}.window-bar span{margin-left:6px}.window-body{position:absolute;inset:36px 0 0;overflow:hidden}.window-body:before{content:"";opacity:.35;background-image:radial-gradient(circle,#40aacc40 .65px,#0000 .8px);background-size:14px 14px;position:absolute;inset:0}.window-body svg{width:100%;height:100%;color:var(--cyan);position:absolute;inset:0}.window-body path{fill:none;stroke:currentColor;stroke-width:1.2px;opacity:.3}.code-rail{z-index:2;color:#31566b;font:11px/1 var(--font-mono);gap:12px;display:grid;position:absolute;top:16px;left:14px}.code-lines{z-index:2;gap:11px;width:44%;display:grid;position:absolute;top:16px;left:46px}.code-lines i{background:linear-gradient(90deg,#0fd1ef94,#0fd1ef0f);border-radius:2px;height:3px}.code-lines i:nth-child(2){width:72%}.code-lines i:nth-child(3){width:88%}.code-lines i:nth-child(4){width:60%}.code-lines i:nth-child(5){width:95%}.code-lines i:nth-child(6){width:68%}.visual-node{z-index:3;background:var(--cyan-2);width:7px;height:7px;box-shadow:0 0 15px var(--cyan);border-radius:50%;position:absolute}.visual-node.n1{top:62%;left:27%}.visual-node.n2{top:48%;left:54%}.visual-node.n3{top:36%;right:16%}.browser-bar b{color:#7593a1;margin-left:6px;font-weight:600}.browser-page{background:radial-gradient(circle at 75% 38%,#00bde42b,#0000 40%),#030c13;position:absolute;inset:36px 0 0;overflow:hidden}.mini-nav{border-bottom:1px solid #59a5c329;height:26px}.mini-copy{gap:10px;width:42%;display:grid;position:absolute;top:23%;left:8%}.mini-copy i{background:var(--cyan);opacity:.7;border-radius:3px;width:40%;height:5px}.mini-copy strong{opacity:.92;background:#e8f1f5;border-radius:3px;width:86%;height:25px}.mini-copy span{opacity:.56;background:#718691;border-radius:3px;height:5px}.mini-copy span:nth-of-type(2){width:75%}.mini-copy b{background:var(--cyan);border-radius:4px;width:44%;height:18px;margin-top:8px}.mini-character{width:48%;position:absolute;bottom:-20%;right:3%}.mini-character img{filter:drop-shadow(0 10px 24px #00000080);width:100%;height:auto}.mini-cards{grid-template-columns:repeat(3,1fr);gap:8px;display:grid;position:absolute;bottom:7%;left:7%;right:7%}.mini-cards i{background:#020f17c7;border:1px solid #5bb5d63d;border-radius:5px;height:34px}.capability-strip{border:1px solid var(--line-soft);background:var(--line-soft);border-radius:15px;grid-template-columns:repeat(3,1fr);gap:1px;margin-top:24px;display:grid;overflow:hidden}.capability-strip>div{background:#030e16b8;align-items:center;gap:14px;padding:20px 22px;display:flex}.capability-strip svg{width:27px;height:27px;color:var(--cyan);flex:none}.capability-strip p{margin:0}.capability-strip strong{color:#e5edf2;font-size:15px;display:block}.capability-strip span{color:#95a7b2;margin-top:2px;font-size:14px;line-height:1.45;display:block}.about-section{padding-top:96px;padding-bottom:96px}.about-layout{grid-template-columns:.92fr 1.08fr;align-items:center;gap:clamp(70px,8vw,130px);display:grid}.about-copy{max-width:650px}.about-copy>p:not(.kicker){color:#bdcbd3;margin:22px 0 0;font-size:18px;line-height:1.72}.about-copy .text-link{margin-top:28px}.principles{border-top:1px solid var(--line)}.principles article{border-bottom:1px solid var(--line-soft);grid-template-columns:48px 1fr;gap:20px;padding:24px 0;display:grid}.principles article>span{color:var(--cyan);font:760 14px/1.5 var(--font-mono)}.principles h3{color:var(--white);margin:0 0 5px;font-size:20px}.principles p{color:var(--muted);margin:0;font-size:16px;line-height:1.6}.skills-section{padding-top:96px}.skills-layout{grid-template-columns:minmax(0,1.2fr) minmax(360px,.8fr);align-items:start;gap:28px;display:grid}.skill-groups{border-top:1px solid var(--line)}.skill-group{border-bottom:1px solid var(--line-soft)}.skill-group summary{cursor:pointer;justify-content:space-between;align-items:center;gap:24px;min-height:70px;padding:14px 4px;list-style:none;display:flex}.skill-group summary::-webkit-details-marker{display:none}.skill-group summary>span{color:#e6eef2;align-items:center;gap:12px;font-size:17px;font-weight:760;display:inline-flex}.skill-group summary svg{width:21px;height:21px;color:var(--cyan)}.skill-group summary b{color:#91a5b1;text-align:right;font-size:14px;font-weight:600}.skill-group summary:after{content:"+";color:var(--cyan);font:500 25px/1 var(--font-sans);display:none}.skill-tags{flex-wrap:wrap;gap:9px;padding:0 4px 18px 37px;display:flex}.skill-tags span{color:#bfe8f0;min-height:32px;font-size:14px;line-height:1.4}.experience-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.experience-grid article{border:1px solid var(--line);background:#041019b8;border-radius:15px;min-height:180px;padding:20px}.experience-grid article:nth-child(2){border-top-color:#ffb45f70}.experience-grid>article>span{color:var(--cyan);font:760 12px/1.4 var(--font-mono);text-transform:uppercase;letter-spacing:.07em}.experience-grid article:nth-child(2)>span{color:var(--amber)}.experience-grid h3{color:var(--white);margin:10px 0 7px;font-size:19px}.experience-grid p{color:var(--muted);margin:0;font-size:16px;line-height:1.55}.homelab-section{padding-top:100px;padding-bottom:86px}.lab-shell{border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(145deg,#040f18e6,#02090fd1);padding:32px;position:relative;overflow:hidden;box-shadow:0 30px 80px #00000045}.lab-shell:before{content:"";pointer-events:none;background:radial-gradient(circle at 12% 4%,#00b1de1c,#0000 28%),radial-gradient(circle at 96% 80%,#ffb45f0e,#0000 24%);position:absolute;inset:0}.lab-heading{z-index:1;justify-content:space-between;align-items:end;gap:32px;margin-bottom:28px;display:flex;position:relative}.lab-disclaimer{border-left:3px solid var(--amber);color:#c2ccd2;background:var(--amber-soft);max-width:460px;margin:0;padding:11px 13px;font-size:15px;line-height:1.5}.lab-disclaimer strong{color:var(--amber)}.lab-layout{z-index:1;grid-template-columns:minmax(350px,.9fr) minmax(430px,1.15fr) minmax(280px,.65fr);align-items:stretch;gap:16px;display:grid;position:relative}.lab-card{background:#020c13b3;border:1px solid #5baecf3d;border-radius:15px;min-width:0}.card-heading{border-bottom:1px solid var(--line-soft);justify-content:space-between;align-items:center;gap:15px;min-height:48px;padding:0 17px;display:flex}.card-heading span{color:var(--cyan-2);font:760 13px/1.3 var(--font-mono);text-transform:uppercase;letter-spacing:.06em}.card-heading b{color:#8397a3;font-size:13px;font-weight:620}.lab-topology{padding-bottom:10px}.topology-svg{width:100%;height:390px;color:var(--cyan);padding:12px}.topology-svg .links{fill:none;stroke:#3dbfe08c;stroke-width:2px}.topology-svg .leaf rect,.topology-svg .node>:not(text){fill:#01121bf2;stroke:currentColor;stroke-width:2px}.topology-svg text{fill:#b9c8d0;stroke:none;font:14px var(--font-sans);text-anchor:middle}.topology-svg .leaf text{fill:#9eafb9;font-size:13px}.lab-core{gap:16px;display:grid}.core-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.core-card{gap:14px;min-height:142px;padding:18px;display:flex}.core-card>svg{width:26px;height:26px;color:var(--cyan);flex:none}.core-card span{color:#8fa3af;font:720 12px/1.35 var(--font-mono);text-transform:uppercase;letter-spacing:.06em}.core-card h3{color:var(--white);margin:5px 0 4px;font-size:18px}.core-card p{color:#afbec7;margin:0;font-size:15px;line-height:1.5}.core-card p a{color:var(--cyan-2);text-underline-offset:2px;text-decoration:underline}.core-card p a:hover{color:var(--cyan)}.services-card{overflow:hidden}.service-list>div{border-bottom:1px solid #4f8ba41a;align-items:center;gap:12px;min-height:62px;padding:9px 16px;display:flex}.service-list>div:last-child{border-bottom:0}.service-icon{width:34px;height:34px;color:var(--cyan);font:800 14px/1 var(--font-mono);background:#00567024;border:1px solid #0fd1ef57;border-radius:8px;flex:none;place-items:center;display:grid}.service-list p{margin:0}.service-list strong{color:#e2ebef;font-size:15px;display:block}.service-list small{color:#9fb0bb;margin-top:2px;font-size:14px;line-height:1.4;display:block}.lab-side{grid-template-rows:1fr 1fr;gap:16px;display:grid}.network-card,.resilience-card{padding-bottom:18px}.resilience-card>strong{color:var(--white);margin:19px 18px 8px;font-size:25px;line-height:1.2;display:block}.resilience-card>p{color:#a7b6bf;margin:0 18px 16px;font-size:14px;line-height:1.55}.resilience-card ul{gap:8px;margin:0;padding:0 18px;list-style:none;display:grid}.resilience-card li{color:#b7c4cc;align-items:center;gap:8px;font-size:14px;display:flex}.resilience-card li svg{width:16px;height:16px;color:var(--green)}.network-flow{grid-template-columns:auto 1fr auto 1fr auto 1fr auto;align-items:center;gap:6px;padding:24px 17px 18px;display:grid}.network-flow span{color:var(--cyan-2);font:760 12px/1 var(--font-mono)}.network-flow i{background:linear-gradient(90deg,#0fd1ef40,var(--cyan),#0fd1ef40);height:1px;position:relative;box-shadow:0 0 8px #0fd1ef59}.network-card dl{gap:9px;margin:0;padding:0 17px;display:grid}.network-card dl div{border-bottom:1px solid var(--line-soft);justify-content:space-between;gap:12px;padding-bottom:7px;font-size:14px;display:flex}.network-card dt{color:#8ea2af}.network-card dd{color:#d7e2e7;text-align:right;margin:0}.contact{padding-top:36px;padding-bottom:28px}.contact-band{border:1px solid var(--line);background:linear-gradient(135deg,#05131de0,#030c13d1);border-radius:18px;grid-template-columns:minmax(0,1fr) auto minmax(360px,.65fr);align-items:center;gap:34px;min-height:160px;padding:26px 30px;display:grid}.contact-copy h2{margin-top:8px;font-size:clamp(25px,2vw,34px)}.contact-copy>p:last-child{color:var(--muted);margin:8px 0 0;font-size:15px}.contact-band>.button{white-space:nowrap}.social-grid{grid-template-columns:repeat(3,minmax(54px,1fr));justify-content:start;gap:8px;display:grid}.social-grid a{color:#9aabb5;border-radius:10px;align-content:center;justify-items:center;gap:6px;min-width:54px;min-height:58px;font-size:12px;transition:color .18s,background .18s,transform .18s;display:grid}.social-grid a:hover{color:var(--cyan-2);background:#0fd1ef0f;transform:translateY(-2px)}.social-grid svg{width:24px;height:24px;color:var(--cyan);stroke-width:1.6px}.site-footer{color:#8fa1ac;padding:0 0 10px;font-size:14px}.site-footer .shell{border-top:1px solid #4b839a24;justify-content:space-between;align-items:center;min-height:54px;padding:0 4px;display:flex}.site-footer p{margin:0}.site-footer a{min-height:44px;color:var(--cyan);justify-content:center;align-items:center;gap:7px;font-weight:740;display:inline-flex}.site-footer a svg{width:15px;height:15px;transform:rotate(-90deg)}.reveal{opacity:1;transform:none}.js .reveal{opacity:0;transition:opacity .65s ease var(--delay,0s),transform .65s ease var(--delay,0s);transform:translateY(18px)}.js .reveal.is-visible{opacity:1;transform:none}@media (width<=1240px){:root{--shell:min(1100px,calc(100vw - 50px))}.hero-grid{grid-template-columns:minmax(0,.94fr) minmax(440px,1.06fr)}.hero-hex{width:500px;height:370px;left:0}.project-card{grid-template-rows:auto 275px}.lab-layout{grid-template-columns:minmax(330px,.9fr) minmax(400px,1.1fr)}.lab-side{grid-column:1/-1;grid-template-rows:none;grid-template-columns:1fr 1fr}.contact-band{grid-template-columns:1fr auto}.social-grid{grid-column:1/-1;width:min(520px,100%)}}.hero-grid.force-stack{grid-template-columns:1fr;min-height:0;padding-top:48px}.hero-grid.force-stack .hero-copy{text-align:center;justify-self:center;max-width:690px;padding:26px 0 10px}.hero-grid.force-stack .hero-copy:before{left:50%;transform:translate(-50%)}.hero-grid.force-stack .hero-actions,.hero-grid.force-stack .hero-focus,.hero-grid.force-stack .hero-role{justify-content:center;margin-inline:auto}.hero-grid.force-stack .hero-intro{margin-inline:auto}.hero-grid.force-stack .hero-visual{min-height:520px;margin-top:-18px}.hero-grid.force-stack .hero-hex{width:min(510px,78vw);height:min(370px,58vw);top:110px;left:50%;transform:translate(-50%)}@media (width<=960px){:root{--shell:min(840px,calc(100vw - 36px))}.header-inner,.site-header{height:72px}.brand{width:182px}.nav-toggle{width:46px;height:46px;color:var(--cyan);background:#020c13c7;border:1px solid #06c9ec61;border-radius:10px;place-items:center;padding:0;display:grid}.nav-toggle svg{width:23px;height:23px}.site-nav{z-index:120;border:1px solid var(--line);opacity:0;visibility:hidden;background:#020a11fa;border-radius:15px;gap:2px;height:auto;padding:9px;transition:all .2s;display:grid;position:fixed;top:82px;left:18px;right:18px;transform:translateY(-18px);box-shadow:0 24px 70px #00000080}.site-nav.open{opacity:1;visibility:visible;transform:none}.site-nav a{border-radius:8px;justify-items:start;height:50px;padding:0 15px;font-size:16px}.site-nav a:after{display:none}.mobile-nav-backdrop{z-index:90;opacity:0;visibility:hidden;background:#0009;transition:all .2s;display:block;position:fixed;inset:0}.mobile-nav-backdrop.visible{opacity:1;visibility:visible}.hero{min-height:auto;padding-top:72px}#signal-field,.hero:after,.hero:before{top:72px}.hero-grid{grid-template-columns:1fr;min-height:0;padding-top:48px}.hero-copy{text-align:center;justify-self:center;max-width:690px;padding:26px 0 10px}.hero-copy:before{left:50%;transform:translate(-50%)}.hero-actions,.hero-focus,.hero-role{justify-content:center;margin-inline:auto}.hero-intro{margin-inline:auto}.hero-visual{min-height:520px;margin-top:-22px}.hero-hex{width:min(510px,78vw);height:min(370px,58vw);top:110px;left:50%;transform:translate(-50%)}.hud-ring-a,.hud-ring-b,.hud-ring-c{left:50%;transform:translate(-50%)}.project-grid{grid-template-columns:1fr}.project-card{grid-template-rows:none;grid-template-columns:1.05fr .95fr;min-height:550px}.project-visual{border-top:0;border-left:1px solid var(--line-soft);min-height:100%}.cdp-window-body{grid-template-columns:minmax(0,1fr) minmax(220px,.88fr);padding-right:26px}.mini-browser,.native-window{border-radius:14px 0 0 14px;inset:8% -8% 8% 8%}.capability-strip{grid-template-columns:1fr}.about-layout{grid-template-columns:1fr;gap:48px}.about-copy{max-width:720px}.skills-layout{grid-template-columns:1fr}.experience-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.experience-grid article{min-height:190px}.lab-layout{grid-template-columns:1fr}.lab-side{grid-column:auto}.contact-band{grid-template-columns:1fr auto}}@media (width<=680px){:root{--shell:min(620px,calc(100vw - 28px));--radius:16px}body{font-size:16px;line-height:1.6}.section{padding:54px 0}.section:after{opacity:.1}.hero-grid{padding-top:30px}.hero-copy{padding-inline:2px}.hero .eyebrow{margin-bottom:13px;font-size:12px}.hero h1{margin-bottom:16px;font-size:clamp(57px,17vw,80px)}.hero-role{gap:6px;max-width:31ch;font-size:15px}.hero-intro{max-width:37ch;font-size:16px;line-height:1.62}.hero-actions{gap:10px;width:min(400px,100%)}.button{width:100%;min-width:0;min-height:50px;font-size:15px}.hero-focus{display:none}.hero-visual{min-height:350px;margin-top:-8px}.hero-hex{border-width:3px;width:min(370px,88vw);height:min(270px,64vw);top:84px}.hud-ring-a{width:370px;height:370px;top:1%}.hud-ring-b{width:300px;height:300px;top:10%}.hud-ring-c{width:230px;height:230px;top:19%}.section-heading{margin-bottom:23px;display:block}.about-copy h2,.contact-copy h2,.lab-heading h2,.section-heading h2{font-size:31px}.section-lede{margin-top:14px;font-size:16px}.kicker{font-size:12px}.project-card{flex-direction:column;min-height:0;display:flex}.project-copy{padding:23px 20px 20px}.project-card h3{font-size:27px}.project-summary{font-size:16px}.project-evidence{gap:13px}.project-evidence div{grid-template-columns:1fr;gap:3px}.project-evidence dt{font-size:12px}.project-evidence dd{font-size:15px}.project-actions{align-items:flex-start}.project-actions>span{width:100%;font-size:12px}.project-visual{border-left:0;border-top:1px solid var(--line-soft);min-height:215px}.mini-browser,.native-window{border-radius:12px 12px 0 0;inset:20px 6% -32px}.capability-strip{display:none}.about-section{padding-block:64px}.about-copy>p:not(.kicker){margin-top:16px;font-size:16px}.principles article{grid-template-columns:38px 1fr;gap:12px;padding:19px 0}.principles article:nth-child(3){display:none}.principles h3{font-size:18px}.principles p{font-size:15px}.skills-section{padding-top:64px}.skill-group summary{min-height:60px;padding:10px 2px}.skill-group summary>span{font-size:16px}.skill-group summary b{display:none}.skill-group summary:after{display:block}.skill-group[open] summary:after{content:"−"}.skill-tags{padding:0 2px 16px 33px}.skill-tags span{font-size:13px}.experience-grid{grid-template-columns:1fr}.experience-grid article{min-height:0;padding:17px}.experience-grid article:nth-child(4){display:none}.experience-grid p{font-size:15px}.homelab-section{padding-top:66px}.lab-shell{width:var(--shell);box-shadow:none;background:0 0;border:0;padding:0;overflow:visible}.lab-shell:before{display:none}.lab-heading{margin-bottom:22px;display:block}.lab-disclaimer{max-width:none;margin-top:16px;font-size:14px}.lab-layout{gap:13px}.lab-card{background:#030e16d1;border-radius:14px}.card-heading{min-height:46px;padding-inline:14px}.card-heading b,.card-heading span{font-size:12px}.topology-svg{height:300px;padding:8px 4px}.topology-svg text{font-size:15px}.topology-svg .leaf text{font-size:14px}.core-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.core-card{min-height:168px;padding:15px;display:block}.core-card>svg{margin-bottom:10px}.core-card h3{font-size:17px}.core-card p{font-size:14px}.service-list>div{min-height:68px;padding:10px 14px}.service-list>div:nth-child(4){display:none}.service-list strong{font-size:15px}.service-list small{font-size:13px}.lab-side{grid-template-columns:1fr}.resilience-card>strong{font-size:23px}.resilience-card li,.resilience-card>p{font-size:14px}.network-flow{padding-inline:14px}.contact{padding-top:18px;padding-bottom:18px}.contact-band{text-align:center;grid-template-columns:1fr;gap:20px;min-height:0;padding:22px 20px}.contact-copy .kicker{justify-content:center}.contact-copy h2{font-size:27px}.contact-copy>p:last-child{font-size:15px}.contact-band>.button{width:100%}.social-grid{grid-column:auto;grid-template-columns:repeat(3,1fr);justify-content:stretch;width:100%}.social-grid a{min-width:44px;min-height:48px}.social-grid span{display:none}.site-footer .shell{min-height:58px;font-size:13px}}@media (width<=430px){:root{--shell:calc(100vw - 22px)}.brand{width:165px}.hero h1{font-size:58px}.hero-role{font-size:14px}.hero-visual{min-height:325px}.core-grid{grid-template-columns:1fr 1fr}.core-card{min-height:184px;padding:13px}.network-flow{gap:4px}.network-flow span{font-size:11px}.site-footer .shell{flex-direction:column;justify-content:center;gap:0;padding-block:6px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:after,:before{animation-duration:NaNs!important;transition-duration:NaNs!important;animation-iteration-count:1!important}#ambient-field,#signal-field{opacity:.74}.avatar-stage,.avatar-wrap img{transform:none!important}}.project-details>summary{display:none}.project-details[open]>summary{margin-bottom:0}@media (width<=680px){.project-details{border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);margin-top:16px}.project-details>summary{min-height:48px;color:var(--cyan-2);cursor:pointer;justify-content:space-between;align-items:center;font-size:14px;font-weight:780;list-style:none;display:flex}.project-details>summary::-webkit-details-marker{display:none}.project-details>summary:after{content:"+";font-size:22px;font-weight:500}.project-details[open]>summary:after{content:"−"}.project-details[open] .project-evidence{padding-bottom:16px}.project-visual{min-height:175px}.project-card:nth-child(2) .project-visual{min-height:150px}.experience-grid{overscroll-behavior-inline:contain;scroll-snap-type:inline mandatory;scrollbar-width:thin;gap:12px;padding:2px 1px 8px;display:flex;overflow-x:auto}.experience-grid article{scroll-snap-align:start;flex:0 0 min(290px,82vw);min-height:172px}.experience-grid article:nth-child(4){display:block}.topology-svg{height:235px}.core-grid{scroll-snap-type:inline mandatory;overscroll-behavior-inline:contain;scrollbar-width:thin;padding-bottom:7px;display:flex;overflow-x:auto}.core-card{scroll-snap-align:start;flex:0 0 min(248px,76vw);min-height:154px}.network-card dl,.resilience-card li:nth-child(3),.service-list>div:nth-child(4){display:none}.network-card{padding-bottom:8px}.network-flow{padding-block:24px}.network-card,.project-card:nth-child(2) .project-visual,.service-list>div:nth-child(n+3){display:none}.section{padding-block:48px}.about-section,.homelab-section,.skills-section{padding-top:56px;padding-bottom:56px}.hero-visual{min-height:315px}.about-copy>p:nth-of-type(3),.services-card{display:none}}.project-actions a,.text-link{min-height:44px}@media (width<=430px){.network-flow span{font-size:12px}}.cdp-window-body{grid-template-columns:minmax(0,1.12fr) minmax(236px,.88fr);align-items:stretch;gap:24px;display:grid}.cdp-window-body:before{opacity:.22}.cdp-code{z-index:2;color:#b9d8e5;min-width:0;font:600 13px/1.75 var(--font-mono);white-space:pre-wrap;margin:0;padding:2px 0;position:relative;overflow:hidden}.code-dim{color:#7693a2}.code-string{color:#7ce6be}.code-keyword{color:var(--cyan-2)}.cdp-flow{z-index:3;grid-template-columns:minmax(58px,1fr) 28px minmax(58px,1fr) 28px minmax(72px,1.12fr);place-self:center stretch;align-items:center;gap:9px;display:grid;position:relative}.cdp-flow span{color:#d8edf4;font:760 11px/1.25 var(--font-mono);text-align:center;background:#03141edb;border:1px solid #44caeb4d;border-radius:10px;place-items:center;display:grid;box-shadow:inset 0 1px #ffffff08,0 0 22px #00bce20d}.cdp-flow i{background:linear-gradient(90deg,#0fd1ef2e,var(--cyan),#0fd1ef2e);min-width:0;height:1px;position:relative}.cdp-flow i:after{content:"";border-top:1px solid var(--cyan);border-right:1px solid var(--cyan);width:7px;height:7px;position:absolute;top:-3px;right:-1px;transform:rotate(45deg)}.protocol-pulse{z-index:2;background:var(--cyan-2);width:7px;height:7px;box-shadow:0 0 18px var(--cyan);border-radius:50%;position:absolute}.pulse-a{top:32%;right:31%}.pulse-b{bottom:24%;right:13%}.coming-soon-card{background:linear-gradient(145deg,#061119c2,#02090fb8);border-style:dashed;border-color:#6f92a24d}.coming-soon-card:after{background:linear-gradient(90deg,transparent,var(--amber),transparent);opacity:.35}.coming-points{flex-wrap:wrap;gap:9px;margin-top:24px;display:flex}.coming-points span{color:#c9b9a5;font:690 12px/1.2 var(--font-mono);background:#ffb45f0e;border:1px solid #ffb45f38;border-radius:999px;padding:7px 9px}.coming-visual{isolation:isolate;background:radial-gradient(circle at 50% 48%,#ffb45f1c,#0000 37%),radial-gradient(circle,#00b2dc14,#0000 65%),#02090f}.coming-grid{z-index:-1;background-image:linear-gradient(#477f9417 1px,#0000 1px),linear-gradient(90deg,#477f9417 1px,#0000 1px);background-size:28px 28px;position:absolute;inset:0;mask-image:radial-gradient(circle,#000,#0000 72%)}.coming-orbit{border:1px solid #54b5d330;border-radius:50%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.orbit-a{width:210px;height:210px}.orbit-b{border-style:dashed;border-color:#ffb45f26;width:290px;height:290px}.coming-mark{background:#040f16e0;border:1px solid #ffb45f57;border-radius:24px;place-items:center;width:118px;height:118px;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotate(45deg);box-shadow:0 0 40px #ffb45f0f,inset 0 1px #ffffff08}.coming-mark>*{transform:rotate(-45deg)}.coming-mark span{color:var(--amber);font:300 54px/1 var(--font-sans)}.coming-mark small{color:#a79581;font:760 9px/1 var(--font-mono);letter-spacing:.12em;margin-top:-24px}@media (width<=680px){.cdp-window-body{grid-template-columns:1fr;padding:16px}.cdp-code{font-size:11px;line-height:1.6}.cdp-flow{display:none}.coming-points{margin-top:18px}}@media (width>=681px){.project-evidence div{grid-template-columns:106px minmax(0,1fr)}}.cdp-window-body{grid-template-columns:minmax(0,1.18fr) minmax(202px,.82fr);gap:20px;padding:24px 34px 20px 22px}.cdp-flow{grid-template-columns:minmax(0,1fr) 16px minmax(0,.78fr) 16px minmax(0,1.16fr);gap:5px;width:100%;min-width:0;max-width:248px;margin:0 auto}.cdp-flow span{overflow-wrap:anywhere;min-width:0;min-height:60px;padding:9px 5px;overflow:hidden}@media (width<=960px) and (width>=681px){.project-card{flex-direction:column;min-height:0;display:flex}.project-visual{border-left:0;border-top:1px solid var(--line-soft);min-height:300px}.mini-browser,.native-window{border-radius:14px 14px 0 0;inset:24px 6% -28px}.cdp-window-body{grid-template-columns:minmax(0,1.2fr) minmax(210px,.8fr);padding-right:32px}}html.pre-boot body{opacity:0;animation:.4s 2.6s forwards boot-failsafe}@keyframes boot-failsafe{to{opacity:1}}html.boot-active body,html.boot-reveal body{opacity:1;animation:none}.boot-overlay{z-index:9000;background:radial-gradient(circle at 50% 40%,#005a821f,transparent 60%),var(--bg-deep);clip-path:inset(0);place-items:center;transition:clip-path .45s cubic-bezier(.7,0,.3,1),opacity .4s;display:grid;position:fixed;inset:0}.boot-overlay:after{content:"";opacity:.5;background-image:linear-gradient(#0fd1ef0b 1px,#0000 1px);background-size:100% 3px;position:absolute;inset:0}.boot-overlay.boot-done{clip-path:inset(0 0 100%);opacity:.6}.boot-log{color:#7ea4b4;min-width:min(320px,80vw);font:600 13px/2 var(--font-mono);letter-spacing:.04em}.boot-log p{opacity:0;margin:0;animation:.12s step-end forwards boot-line}.boot-log p:first-child{color:var(--cyan-2);animation-delay:50ms}.boot-log p:nth-child(2){animation-delay:.18s}.boot-log p:nth-child(3){animation-delay:.32s}.boot-log p:nth-child(4){animation-delay:.46s}.boot-log p:nth-child(5){color:#cfe6ee;animation-delay:.62s}.boot-log b{color:var(--green);font-weight:700}.boot-log .boot-last span{vertical-align:-2px;background:var(--cyan);width:8px;height:14px;margin-left:5px;animation:.7s step-end infinite caret-blink;display:inline-block}@keyframes boot-line{to{opacity:1}}@keyframes caret-blink{50%{opacity:0}}html.boot-active .avatar-wrap,html.boot-active .hero-copy>*,html.boot-active .hero-hex,html.boot-active .hero-hud{opacity:0}html.boot-reveal .hero-copy>*{animation:.7s cubic-bezier(.16,.84,.3,1) both boot-rise;animation-delay:calc(var(--bi,0)*95ms)}html.boot-reveal .hero h1{animation:.25s 50ms both boot-flash}html.boot-reveal .hero-hud{animation:1.1s .4s both boot-fade}html.boot-reveal .hero-hex{animation:.9s cubic-bezier(.2,.8,.25,1) .3s both boot-hex}html.boot-reveal .avatar-wrap{animation:.9s cubic-bezier(.3,.7,.3,1) .25s both boot-avatar}html.boot-reveal .avatar-stage:after{content:"";height:3px;box-shadow:0 0 22px var(--cyan);pointer-events:none;background:linear-gradient(90deg,#0000,#73efffe6,#0000);animation:.9s cubic-bezier(.3,.7,.3,1) .25s both boot-scan;position:absolute;top:0;left:12%;right:12%}@keyframes boot-rise{0%{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}@keyframes boot-flash{0%{opacity:0}to{opacity:1}}@keyframes boot-fade{0%{opacity:0}to{opacity:1}}@keyframes boot-hex{0%{opacity:0;transform:scale(.82)}to{opacity:.9;transform:none}}@keyframes boot-avatar{0%{opacity:0;clip-path:inset(-12% -12% 112%)}60%{opacity:1}to{opacity:1;clip-path:inset(-12%)}}@keyframes boot-scan{0%{opacity:0;transform:translateY(0)}15%,85%{opacity:1}to{opacity:0;transform:translateY(78vh)}}html[data-cursor=on],html[data-cursor=on] *{cursor:none!important}.cursor-dot,.cursor-ring{z-index:9500;pointer-events:none;opacity:0;will-change:transform;border-radius:50%;position:fixed;top:0;left:0}.cursor-dot{background:var(--cyan-2);width:7px;height:7px;box-shadow:0 0 12px var(--cyan),0 0 4px var(--cyan-2);margin:-3.5px 0 0 -3.5px}.cursor-ring{border:1.5px solid #73efff99;width:34px;height:34px;margin:-17px 0 0 -17px;transition:opacity .25s}.cursor-ring.is-link{background:#0fd1ef12;border-color:#73effff2}.cursor-dot.is-on,.cursor-ring.is-on{opacity:1}html[data-tier=medium] .cursor-ring{display:none}.cursor-pulse{z-index:9490;border:1.5px solid var(--cyan);pointer-events:none;border-radius:50%;width:40px;height:40px;margin:-20px 0 0 -20px;animation:.55s cubic-bezier(.2,.7,.3,1) forwards cursor-pulse;position:fixed}@keyframes cursor-pulse{0%{opacity:.9;transform:scale(.3)}to{opacity:0;transform:scale(1.6)}}.button{transform:translate(var(--mx,0),var(--my,0));position:relative;overflow:hidden}.button:hover{--notch:17px;transform:translate(var(--mx,0),calc(var(--my,0px) - 2px))}.button:active{transform:translate(var(--mx,0),calc(var(--my,0px) + 1px))scale(.98);transition-duration:60ms}.button:after{content:"";pointer-events:none;background:linear-gradient(90deg,#0000,#ffffff52,#0000);position:absolute;inset:0;transform:translate(-130%)skew(-18deg)}.button:hover:after{transition:transform .55s;transform:translate(130%)skew(-18deg)}@media (width>=961px){.site-nav{position:relative}}.nav-indicator{background:var(--cyan);width:40px;height:2px;box-shadow:0 0 14px var(--cyan);opacity:0;pointer-events:none;transition:transform .32s cubic-bezier(.5,0,.2,1),width .32s cubic-bezier(.5,0,.2,1),opacity .2s;position:absolute;bottom:13px;left:0}.site-nav.has-indicator a:after{display:none}@media (width<=960px){.nav-indicator{display:none}}.scroll-progress span{position:relative}.scroll-progress span:after{content:"";background:var(--cyan-2);width:9px;height:9px;box-shadow:0 0 14px var(--cyan),0 0 5px var(--cyan-2);border-radius:50%;position:absolute;top:50%;right:-2px;transform:translateY(-50%)}.js .reveal[data-reveal=left]{transform:translate(-30px)}.js .reveal[data-reveal=right]{transform:translate(30px)}.js .reveal[data-reveal=scale]{transform:scale(.94)translateY(14px)}.js .reveal[data-reveal].is-visible{transform:none}@media (width<=680px){.js .reveal[data-reveal=left]{transform:translate(-14px)}.js .reveal[data-reveal=right]{transform:translate(14px)}}.js .reveal .kicker span,.js .reveal.is-visible .kicker span{transition:transform .6s cubic-bezier(.2,.7,.2,1) .12s}.js .reveal .kicker span{transform-origin:0;transform:scaleX(0)}.js .reveal.is-visible .kicker span{transform:none}.js .stagger>*{opacity:0;transition:opacity .5s ease calc(var(--si,0)*55ms),transform .55s cubic-bezier(.16,.84,.3,1)calc(var(--si,0)*55ms);transform:translateY(14px)scale(.98)}.js .is-visible .stagger>*,.js .stagger.is-visible>*{opacity:1;transform:none}.split .w{vertical-align:bottom;margin-bottom:-.14em;padding-bottom:.14em;display:inline-block;overflow:hidden}.split .wi{transition:transform .7s cubic-bezier(.16,.84,.3,1)calc(var(--wi,0)*55ms);display:inline-block;transform:translateY(118%)}.is-visible .split .wi{transform:none}.section .beam{z-index:1;transform-origin:0;pointer-events:none;background:linear-gradient(90deg,#0000,#73efff8c,#73efff33,#0000);height:1px;transition:transform 1.2s cubic-bezier(.2,.7,.2,1) .1s;position:absolute;top:0;left:6%;right:6%;transform:scaleX(0)}.section.in-view .beam{transform:scaleX(1)}html[data-tier=low] .section .beam{display:none}.glow-card{position:relative}.glow-card:before{content:"";z-index:4;border-radius:inherit;background:radial-gradient(260px circle at var(--gx,50%)var(--gy,50%),#73efff8c,transparent 72%);-webkit-mask-composite:xor;opacity:0;pointer-events:none;padding:1px;transition:opacity .35s;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-position:0 0,0 0;mask-position:0 0,0 0;-webkit-mask-size:auto,auto;mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;mask-origin:content-box,border-box;mask-composite:exclude;mask-mode:match-source,match-source}.glow-card:hover:before{opacity:1}.glow-spot{z-index:1;border-radius:inherit;background:radial-gradient(340px circle at var(--gx,50%)var(--gy,50%),#0fd1ef13,transparent 65%);opacity:0;pointer-events:none;transition:opacity .35s;position:absolute;inset:0}.glow-card:hover .glow-spot{opacity:1}html[data-tier=low] .glow-card:before,html[data-tier=low] .glow-spot{display:none}html[data-tier=high] .js .project-card.reveal.is-visible{transform:perspective(1100px)rotateX(var(--rx,0deg))rotateY(var(--ry,0deg));transition:opacity .65s ease var(--delay,0s),transform .25s ease-out}.hero h1{position:relative}.hero h1:after,.hero h1:before{content:attr(data-text);color:var(--white);text-shadow:inherit;pointer-events:none;display:none;position:absolute;inset:0}.hero h1.glitching:before{color:#24e7ff;clip-path:inset(12% 0 58%);animation:.32s steps(2,end) both glitch-a;display:block}.hero h1.glitching:after{color:#ff5d8f;clip-path:inset(62% 0 8%);animation:.32s steps(2,end) both glitch-b;display:block}@keyframes glitch-a{0%{opacity:.85;transform:translate(-5px,-2px)}50%{clip-path:inset(38% 0 30%);opacity:.85;transform:translate(4px,1px)}to{opacity:0;transform:none}}@keyframes glitch-b{0%{opacity:.8;transform:translate(5px,2px)}50%{clip-path:inset(8% 0 74%);opacity:.8;transform:translate(-4px,-1px)}to{opacity:0;transform:none}}.avatar-stage,.hero-copy,.hero-hex,.hero-hud{translate:0 var(--py,0px)}.topology-svg .links path{transition:stroke .25s,opacity .25s}.topology-svg.will-draw .links path{stroke-dasharray:1;stroke-dashoffset:1px}.topology-svg.will-draw .leaf,.topology-svg.will-draw .node{opacity:0}.topology-svg.drawn .links path{stroke-dashoffset:0;transition:stroke-dashoffset .8s cubic-bezier(.4,0,.2,1)calc(var(--li,0)*.14s),stroke .25s ease,opacity .25s ease}.topology-svg.drawn .node{opacity:1;transition:opacity .55s ease calc(var(--ni,0)*.17s)}.topology-svg.drawn .leaf{opacity:1;transition:opacity .6s 1.15s}.topology-svg .links path.lit{stroke:var(--cyan-2);filter:drop-shadow(0 0 4px #73efffcc)}.topology-svg .node{transition:opacity .55s}.topology-svg .node:hover{color:var(--cyan-2);cursor:pointer}.topology-svg .node:hover text{fill:#eaf6fa}.topology-svg .pkt{fill:var(--cyan-2);stroke:none;opacity:0;offset-rotate:0deg;animation:linear infinite paused topo-pkt}.section.in-view .topology-svg .pkt{animation-play-state:running}@keyframes topo-pkt{0%{offset-distance:0%;opacity:0}8%,90%{opacity:1}to{offset-distance:100%;opacity:0}}.network-flow i:before{content:"";background:var(--cyan-2);width:5px;height:5px;box-shadow:0 0 9px var(--cyan);opacity:0;border-radius:50%;position:absolute;top:-2px;left:0}.section.in-view .network-flow i:before{animation:2.6s linear infinite flow-dot}.section.in-view .network-flow i:nth-of-type(2):before{animation-delay:.85s}.section.in-view .network-flow i:nth-of-type(3):before{animation-delay:1.7s}html[data-tier=low] .network-flow i:before{display:none}@keyframes flow-dot{0%{opacity:0;left:0}12%,30%{opacity:1}to,33%{opacity:0;left:calc(100% - 5px)}}.cdp-code{min-height:148px}.cdp-code.typing{position:relative}.cdp-code.typing:after{content:"▋";color:var(--cyan-2);animation:.7s step-end infinite caret-blink}.cdp-window .window-bar i:nth-child(3){transition:background .3s}.cdp-live .window-bar i:nth-child(3){background:var(--cyan);animation:1.6s steps(2,end) infinite rec-blink}@keyframes rec-blink{50%{opacity:.35}}.cdp-flow i:before{content:"";background:var(--cyan-2);width:6px;height:6px;box-shadow:0 0 9px var(--cyan);opacity:0;border-radius:50%;position:absolute;top:-2.5px;left:0}.cdp-live .cdp-flow i:before{animation:2.2s linear infinite flow-dot}.cdp-live .cdp-flow i:nth-of-type(2):before{animation-delay:.7s}.protocol-pulse{opacity:.4}.cdp-live .protocol-pulse{animation:2.1s ease-in-out infinite proto-pulse}.cdp-live .protocol-pulse.pulse-b{animation-delay:1s}@keyframes proto-pulse{0%,to{opacity:.25;transform:scale(.8)}50%{opacity:1;transform:scale(1.3)}}html[data-tier=high] .cdp-live .cdp-window-body:after{content:"";pointer-events:none;background:linear-gradient(#0000,#73efff0d,#0000);height:46px;animation:5.5s linear infinite cdp-scan;position:absolute;top:0;left:0;right:0}@keyframes cdp-scan{0%{transform:translateY(-50px)}to{transform:translateY(330px)}}.skill-tags span{isolation:isolate;--cut:6px;clip-path:var(--chip-clip);background:#0fd1ef57;border:0;border-radius:0;padding:6px 12px;transition:background .2s,color .2s;position:relative}.skill-tags span:before{content:"";z-index:-1;clip-path:var(--chip-clip);background:#021a24f7;position:absolute;inset:1px}.skill-tags span:hover{color:#eafcff;background:#73efffcc}.term-hint kbd:before{content:"";z-index:-1;clip-path:var(--chip-clip);background:#04222e;position:absolute;inset:1px}.nav-toggle{isolation:isolate;--cut:9px;clip-path:var(--chip-clip);background:#06c9ec80;border:0;border-radius:0;position:relative}.nav-toggle:before{content:"";z-index:-1;clip-path:var(--chip-clip);background:#020c13f0;position:absolute;inset:1px}.nav-toggle:focus-visible{background:var(--amber);outline:0}.nav-toggle:focus-visible:before{inset:3px}.accent-tag{isolation:isolate;clip-path:polygon(7px 0,100% 0,100% calc(100% - 7px),calc(100% - 7px) 100%,0 100%,0 7px);color:var(--cyan-2);background:#0fd1ef80;border:0;border-radius:0;padding:6px 10px;position:relative}.accent-tag:before{content:"";z-index:-1;clip-path:polygon(7px 0,100% 0,100% calc(100% - 7px),calc(100% - 7px) 100%,0 100%,0 7px);background:#04202b;position:absolute;inset:1px}.accent-tag-warm{color:var(--amber);background:#ffb45f8c}.accent-tag-warm:before{background:#241a10}.is-visible .accent-tag{animation:1.3s .45s tag-glow}@keyframes tag-glow{40%{filter:brightness(1.7)}}html[data-tier=high] .hero-role i{animation:2.6s ease-in-out infinite role-dot}html[data-tier=high] .hero-role i:nth-of-type(2){animation-delay:1.3s}@keyframes role-dot{50%{box-shadow:0 0 10px var(--cyan);transform:scale(1.35)}}.term-hint{color:#778c98;font:600 13px/1.3 var(--font-mono);cursor:pointer;background:0 0;border:0;border-radius:8px;padding:6px 10px;transition:color .2s}.term-hint:hover{color:var(--cyan-2)}.term-hint kbd{isolation:isolate;--cut:5px;clip-path:var(--chip-clip);color:var(--cyan-2);font:700 12px/1.4 var(--font-mono);background:#031923b3;border:1px solid #0fd1ef66;border-radius:5px;padding:1px 6px;position:relative}html[data-pointer=coarse] .term-hint{display:none}body.term-open{overflow:hidden}.terminal{z-index:8000;opacity:0;background:#0002048c;place-items:end center;padding:0 14px 6vh;transition:opacity .22s;display:grid;position:fixed;inset:0}.terminal[hidden]{display:none}.terminal.open{opacity:1}.terminal-window{isolation:isolate;--cut:16px;width:min(760px,100%);height:min(430px,68vh);clip-path:var(--chip-clip);filter:drop-shadow(0 26px 50px #0000008c)drop-shadow(0 0 26px #00b7e224);background:linear-gradient(160deg,#70def899,#5cd2f038 28% 72%,#70def899);border:0;border-radius:0;flex-direction:column;transition:transform .24s cubic-bezier(.2,.8,.3,1);display:flex;position:relative;overflow:hidden;transform:translateY(26px)scale(.985)}.terminal-window:before{content:"";z-index:-1;clip-path:var(--chip-clip);background:#01080dfa;position:absolute;inset:1px}.terminal.open .terminal-window{transform:none}.terminal-bar{color:#728896;font:650 12px/1 var(--font-mono);background:repeating-linear-gradient(-45deg,#5cd2f014 0 2px,#0000 2px 7px) 100%/110px 100% no-repeat;border-bottom:1px solid #5faecc33;flex:0 0 38px;align-items:center;gap:7px;padding:0 13px;display:flex}.terminal-bar i{border-radius:50%;width:9px;height:9px}.terminal-bar i:first-child{background:#e2574c}.terminal-bar i:nth-child(2){background:#e0b341}.terminal-bar i:nth-child(3){background:#43c26b}.terminal-bar span{margin-left:6px}.terminal-close{color:#8fa3af;cursor:pointer;background:0 0;border:0;border-radius:7px;width:30px;height:30px;margin-left:auto;font-size:19px;line-height:1}.terminal-close:hover{color:var(--white);background:#ffffff12}.terminal-body{color:#c4dbe5;font:500 13.5px/1.75 var(--font-mono);overscroll-behavior:contain;flex:1;padding:14px 16px;position:relative;overflow-y:auto}.terminal-output div{white-space:pre-wrap;overflow-wrap:anywhere}.terminal-output .term-dim{color:#7a8f9b}.terminal-output .term-cmd{color:#e8f2f6}.terminal-output .term-accent{color:var(--cyan-2)}.terminal-output .term-green{color:var(--green)}.terminal-output pre{color:var(--cyan-2);font:inherit;margin:4px 0;line-height:1.35}.terminal-output a{color:var(--cyan-2);text-underline-offset:3px;text-decoration:underline}.terminal-line{align-items:baseline;gap:9px;display:flex}.terminal-prompt{color:var(--green);white-space:nowrap}.terminal-input{color:#eef7fa;min-width:0;caret-color:var(--cyan-2);font:inherit;background:0 0;border:0;outline:0;flex:1;padding:0}.term-matrix{z-index:5;pointer-events:none;position:absolute;inset:0}@supports (content-visibility:auto){.about-section,.contact,.homelab-section,.interests-section,.projects-section,.skills-section{content-visibility:auto;contain-intrinsic-size:auto 900px}}html[data-tier=low] .cdp-window-body:after,html[data-tier=low] .cursor-dot,html[data-tier=low] .cursor-ring,html[data-tier=low] .topology-svg .pkt{display:none}@media (prefers-reduced-motion:reduce){html.pre-boot body{opacity:1;animation:none}.boot-overlay{display:none}.split .wi{transform:none!important}.js .stagger>*{opacity:1!important;transform:none!important}.topology-svg.will-draw .links path{stroke-dasharray:none;stroke-dashoffset:0}.topology-svg.will-draw .leaf,.topology-svg.will-draw .node{opacity:1}.cdp-flow i:before,.cursor-dot,.cursor-pulse,.cursor-ring,.network-flow i:before,.topology-svg .pkt{display:none}.avatar-stage,.hero-copy,.hero-hex,.hero-hud{translate:none}}.interlude{z-index:2;width:var(--shell);text-align:center;margin:30px auto;position:relative}.interlude p{color:#bdd6e0;font:640 15px/1.7 var(--font-mono);letter-spacing:.01em;text-shadow:0 2px 16px #01060af2,0 0 3px #01060ae6;margin:0}.interlude-prompt{color:var(--green)}.interlude-sep{color:var(--cyan)}.interlude-caret{vertical-align:-2px;background:var(--cyan);width:8px;height:15px;margin-left:7px;animation:.9s step-end infinite caret-blink;display:inline-block}html[data-tier=low] .interlude-caret{animation:none}@media (width<=680px){.interlude{margin:14px auto}.interlude p{font-size:12.5px;line-height:1.65}.terminal{padding-bottom:3vh}.terminal-window{height:min(420px,62vh)}.site-footer .shell{flex-wrap:wrap}.cdp-window-body{grid-template-columns:1fr;gap:12px;padding:16px}.cdp-flow{display:none}.project-card-primary .project-visual{min-height:245px}}