@import"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600&family=Onest:wght@400;500;600;700;800&display=swap";:root{color-scheme:dark;font-family:Onest,sans-serif;--bg: #070a0b;--surface: #0c1113;--surface-2: #11181b;--text: #edf5f2;--muted: #8b9998;--line: #263234;--line-soft: rgba(137, 162, 159, .14);--cyan: #18d5e8;--lime: #a8ff35;--violet: #9c7bff;--shadow: 0 24px 80px rgba(0, 0, 0, .35)}:root[data-theme=light]{color-scheme:light;--bg: #f2f7f4;--surface: #ffffff;--surface-2: #eaf1ed;--text: #071311;--muted: #5f706d;--line: #bdcbc6;--line-soft: rgba(30, 65, 59, .12);--cyan: #087f8c;--lime: #4f8f00;--violet: #6746cb;--shadow: 0 24px 70px rgba(36, 65, 58, .13)}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:88px}body{margin:0;min-width:320px;background:var(--bg);color:var(--text)}body.modal-open{overflow:hidden}button,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{border:0}img{display:block;max-width:100%}body:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:-1;background-image:linear-gradient(var(--line-soft) 1px,transparent 1px),linear-gradient(90deg,var(--line-soft) 1px,transparent 1px);background-size:72px 72px;-webkit-mask-image:linear-gradient(to bottom,black,transparent 62%);mask-image:linear-gradient(to bottom,black,transparent 62%)}.site-shell{min-height:100vh;overflow:hidden}.topbar{position:fixed;z-index:50;top:0;left:0;right:0;height:72px;padding:0 max(24px,calc((100vw - 1440px)/2));display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--bg) 82%,transparent);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.brand{display:inline-flex;align-items:center;gap:12px;font:600 .84rem JetBrains Mono,monospace}.brand-mark{display:grid;place-items:center;width:34px;height:34px;border:1px solid var(--cyan);color:var(--cyan)}.nav{display:flex;align-items:center;gap:28px}.nav a{color:var(--muted);font-size:.86rem;font-weight:600;transition:.18s ease}.nav a:hover{color:var(--text)}.header-actions{display:flex;align-items:center;gap:8px}.icon-button,.menu-button{width:40px;height:40px;display:grid;place-items:center;border:1px solid var(--line);color:var(--text);background:var(--surface);cursor:pointer}.menu-button{display:none}main{padding-top:72px}.section-grid,.content-section{width:min(1440px,calc(100% - 48px));margin-inline:auto}.hero{display:grid;grid-template-columns:1.04fr .96fr;min-height:calc(100vh - 72px);border-inline:1px solid var(--line)}.hero-copy{padding:clamp(72px,9vw,132px) clamp(28px,6vw,92px) 58px;border-right:1px solid var(--line)}.eyebrow,.section-index,.project-label{font:600 .74rem JetBrains Mono,monospace;letter-spacing:.12em;color:var(--cyan)}.eyebrow{display:flex;align-items:center;gap:10px;margin-bottom:32px}.pulse-dot{width:8px;height:8px;border-radius:50%;background:var(--lime);box-shadow:0 0 color-mix(in srgb,var(--lime) 45%,transparent);animation:pulse 2s infinite}@keyframes pulse{70%{box-shadow:0 0 0 9px transparent}to{box-shadow:0 0 0 0 transparent}}.hero h1{margin:0;max-width:800px;font-family:Onest,sans-serif;font-size:clamp(4rem,8vw,8.35rem);font-weight:700;line-height:.88;letter-spacing:-.075em}.hero h1 span{color:var(--lime)}.hero-role{margin:30px 0 0;font:500 clamp(1rem,1.7vw,1.35rem) "JetBrains Mono",monospace;color:var(--cyan);text-transform:uppercase}.hero-description{max-width:650px;margin:24px 0 0;color:var(--muted);font-size:clamp(1rem,1.3vw,1.16rem);line-height:1.75}.hero-actions,.contact-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:34px}.primary-button,.ghost-button{min-height:48px;display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:0 20px;font-weight:700;font-size:.9rem;transition:.18s ease}.primary-button{background:var(--lime);color:#0a1207;border:1px solid var(--lime)}.primary-button:hover{transform:translateY(-2px);box-shadow:0 10px 30px color-mix(in srgb,var(--lime) 20%,transparent)}.ghost-button{border:1px solid var(--line);background:var(--surface);color:var(--text)}.ghost-button:hover{border-color:var(--cyan);color:var(--cyan)}.hero-meta{margin-top:34px;display:flex;flex-wrap:wrap;gap:22px;color:var(--muted);font:500 .78rem JetBrains Mono,monospace}.hero-meta span{display:inline-flex;align-items:center;gap:7px}.hero-console{align-self:stretch;display:flex;flex-direction:column;background:var(--surface)}.console-head{height:56px;padding:0 22px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);font:500 .7rem JetBrains Mono,monospace;color:var(--muted)}.status-pill{display:inline-flex;align-items:center;gap:7px;color:var(--muted);text-transform:uppercase}.status-pill:before{content:"";width:7px;height:7px;border-radius:50%;background:#ffbf3c}.status-pill.online{color:var(--lime)}.status-pill.online:before{background:var(--lime);box-shadow:0 0 12px var(--lime)}.status-pill.offline:before{background:#ff5d5d}.topology{position:relative;flex:1;min-height:520px;overflow:hidden}.topology:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at center,transparent,color-mix(in srgb,var(--surface) 90%,transparent) 72%)}.topology-grid{position:absolute;inset:0;background-image:linear-gradient(var(--line-soft) 1px,transparent 1px),linear-gradient(90deg,var(--line-soft) 1px,transparent 1px);background-size:32px 32px}.node{position:absolute;z-index:2;width:58px;height:58px;display:grid;place-items:center;border:1px solid var(--cyan);background:var(--surface-2);color:var(--cyan);font:600 .72rem JetBrains Mono,monospace;box-shadow:0 0 24px color-mix(in srgb,var(--cyan) 10%,transparent)}.node:before{content:"";position:absolute;inset:7px;border:1px solid var(--line);transform:rotate(45deg)}.node-main{width:76px;height:76px;top:42%;left:45%;color:var(--lime);border-color:var(--lime)}.node-a{top:15%;left:18%}.node-b{top:12%;right:14%}.node-c{bottom:14%;left:14%}.node-d{right:16%;bottom:17%}.link{position:absolute;z-index:1;left:48%;top:47%;height:1px;transform-origin:left center;background:linear-gradient(90deg,var(--cyan),transparent)}.link-a{width:39%;transform:rotate(-142deg)}.link-b{width:37%;transform:rotate(-43deg)}.link-c{width:39%;transform:rotate(143deg)}.link-d{width:38%;transform:rotate(40deg)}.signal{position:absolute;z-index:3;width:7px;height:7px;border-radius:50%;background:var(--lime);box-shadow:0 0 14px var(--lime);animation:signal 4s linear infinite}.signal-one{top:36%;left:38%}.signal-two{bottom:29%;right:33%;animation-delay:-2s}@keyframes signal{0%,to{opacity:.25;transform:scale(.7)}50%{opacity:1;transform:scale(1.25)}}.metric-strip{min-height:98px;display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line)}.metric-strip div{padding:18px;border-right:1px solid var(--line)}.metric-strip div:last-child{border-right:0}.metric-strip span{display:block;margin-bottom:9px;color:var(--muted);font:500 .65rem JetBrains Mono,monospace}.metric-strip strong{color:var(--cyan);font:600 .82rem JetBrains Mono,monospace}.hero-stats{grid-column:1 / -1;display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line)}.hero-stats article{min-height:132px;padding:24px 28px;border-right:1px solid var(--line);background:color-mix(in srgb,var(--surface) 70%,transparent)}.hero-stats article:last-child{border-right:0}.hero-stats span{display:block;color:var(--muted);font:500 .66rem JetBrains Mono,monospace;letter-spacing:.08em}.hero-stats strong{display:block;margin-top:20px;font:700 clamp(1.5rem,2.5vw,2.2rem) "JetBrains Mono",monospace;color:var(--text)}.hero-stats small{font-size:.8rem;color:var(--muted)}.content-section{padding:clamp(80px,10vw,144px) clamp(0px,3vw,44px);border-inline:1px solid var(--line);border-top:1px solid var(--line)}.section-heading{display:grid;grid-template-columns:1fr .65fr;gap:40px;align-items:end;padding:0 clamp(22px,3vw,44px) 48px}.section-heading h2,.about-copy h2{margin:10px 0 0;font-size:clamp(2.5rem,5vw,5rem);line-height:.98;letter-spacing:-.055em}.section-heading p{margin:0;color:var(--muted);line-height:1.75;font-size:1rem}.filter-row{display:flex;flex-wrap:wrap;gap:8px;padding:0 clamp(22px,3vw,44px) 30px}.filter-row button{padding:10px 16px;border:1px solid var(--line);background:transparent;color:var(--muted);cursor:pointer;font:500 .76rem JetBrains Mono,monospace}.filter-row button:hover,.filter-row .filter-active{color:#081006;background:var(--lime);border-color:var(--lime)}.projects-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid var(--line);border-left:1px solid var(--line);margin:0 clamp(22px,3vw,44px)}.project-card{position:relative;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--surface);transition:.22s ease}.project-card:hover{transform:translateY(-4px);box-shadow:var(--shadow);z-index:2}.project-hitarea{position:absolute;inset:0;z-index:5;background:transparent;cursor:pointer}.project-visual{position:relative;height:260px;overflow:hidden;border-bottom:1px solid var(--line);background:#081012}.project-visual img{width:100%;height:100%;object-fit:cover;opacity:.5;filter:grayscale(.85) contrast(1.08);transition:.35s ease}.project-card:hover img{opacity:.72;transform:scale(1.025);filter:grayscale(.35) contrast(1.08)}.project-visual:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 35%,rgba(3,8,9,.86))}.project-number,.project-metric{position:absolute;z-index:2;font:600 .68rem JetBrains Mono,monospace}.project-number{top:18px;left:18px;color:#fff}.project-metric{right:18px;bottom:18px;color:var(--cyan)}.telemetry-visual{background-image:linear-gradient(var(--line-soft) 1px,transparent 1px),linear-gradient(90deg,var(--line-soft) 1px,transparent 1px);background-size:28px 28px}.telemetry-lines{position:absolute;inset:28px;display:flex;align-items:flex-end;gap:12px}.telemetry-lines span{flex:1;height:20%;border-top:2px solid var(--cyan);background:linear-gradient(to top,color-mix(in srgb,var(--cyan) 2%,transparent),color-mix(in srgb,var(--cyan) 26%,transparent))}.telemetry-lines span:nth-child(2){height:42%}.telemetry-lines span:nth-child(3){height:30%}.telemetry-lines span:nth-child(4){height:76%}.telemetry-lines span:nth-child(5){height:54%}.telemetry-lines span:nth-child(6){height:88%}.telemetry-lines span:nth-child(7){height:62%}.accent-lime .telemetry-lines span{border-color:var(--lime);background:linear-gradient(to top,color-mix(in srgb,var(--lime) 2%,transparent),color-mix(in srgb,var(--lime) 23%,transparent))}.project-body{padding:28px}.project-body h3{margin:10px 0 12px;font-size:clamp(1.5rem,2.3vw,2.2rem);letter-spacing:-.035em}.project-body p{min-height:82px;margin:0;color:var(--muted);line-height:1.65}.tag-row,.stack-tags{display:flex;flex-wrap:wrap;gap:7px;margin-top:22px}.tag-row span,.stack-tags span{padding:6px 9px;border:1px solid var(--line);color:var(--muted);font:500 .68rem JetBrains Mono,monospace}.project-footer{display:flex;justify-content:space-between;align-items:center;margin-top:28px;padding-top:18px;border-top:1px solid var(--line);color:var(--muted);font:500 .72rem JetBrains Mono,monospace}.project-footer svg{color:var(--cyan)}.timeline{margin:0 clamp(22px,3vw,44px);border-top:1px solid var(--line)}.timeline-item{display:grid;grid-template-columns:84px .55fr 1.2fr;min-height:176px;border-bottom:1px solid var(--line)}.timeline-marker{display:grid;place-items:start center;padding-top:28px;border-right:1px solid var(--line)}.timeline-marker span{display:grid;place-items:center;width:38px;height:38px;border:1px solid var(--cyan);color:var(--cyan);font:500 .72rem JetBrains Mono,monospace}.timeline-period{padding:30px;color:var(--muted);font:500 .75rem/1.6 JetBrains Mono,monospace;border-right:1px solid var(--line)}.timeline-main{padding:28px 36px}.timeline-main h3{margin:0 0 4px;font-size:1.35rem}.timeline-main strong{color:var(--lime);font-size:.9rem}.timeline-main p{margin:14px 0 0;color:var(--muted);line-height:1.65}.experience-skills{display:flex;flex-wrap:wrap;gap:7px;margin-top:18px}.experience-skills span{padding:6px 9px;border:1px solid var(--line);color:var(--cyan);background:color-mix(in srgb,var(--cyan) 5%,transparent);font:500 .66rem JetBrains Mono,monospace}.stack-layout{margin:0 clamp(22px,3vw,44px);display:grid;grid-template-columns:.82fr 1.18fr;border:1px solid var(--line)}.stack-map{position:relative;min-height:560px;display:grid;place-items:center;overflow:hidden;background:var(--surface);border-right:1px solid var(--line)}.radar-circle{position:absolute;border:1px solid var(--line);border-radius:50%}.radar-one{width:140px;height:140px}.radar-two{width:290px;height:290px}.radar-three{width:440px;height:440px}.radar-center{z-index:2;display:grid;place-items:center;width:86px;height:86px;border-radius:50%;background:var(--lime);color:#091007;font:700 1.1rem JetBrains Mono,monospace;box-shadow:0 0 48px color-mix(in srgb,var(--lime) 20%,transparent)}.radar-label{position:absolute;color:var(--cyan);font:500 .7rem JetBrains Mono,monospace}.label-one{top:14%}.label-two{right:9%}.label-three{bottom:14%}.label-four{left:10%}.stack-groups{display:grid;grid-template-columns:1fr 1fr}.stack-groups article{min-height:280px;padding:32px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.stack-groups article:nth-child(2n){border-right:0}.stack-groups article:nth-child(n+3){border-bottom:0}.stack-groups article>span{color:var(--cyan);font:500 .7rem JetBrains Mono,monospace}.stack-groups h3{margin:28px 0 0;font-size:1.45rem}.terminal-window{margin:0 clamp(22px,3vw,44px);border:1px solid var(--line);background:#050809;box-shadow:var(--shadow);color:#deebe7}.terminal-titlebar{min-height:48px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 18px;border-bottom:1px solid #273133;color:#84928f;font:500 .7rem JetBrains Mono,monospace}.terminal-titlebar>div{display:flex;gap:7px}.terminal-titlebar i{width:9px;height:9px;border-radius:50%;background:#ff625b}.terminal-titlebar i:nth-child(2){background:#ffc14b}.terminal-titlebar i:nth-child(3){background:#55d66b}.terminal-titlebar>span{display:flex;align-items:center;gap:8px}.terminal-titlebar>span:last-child{justify-self:end}.terminal-body{height:370px;overflow-y:auto;padding:26px;font:500 .86rem/1.75 JetBrains Mono,monospace}.terminal-line.system{color:#a8ff35}.terminal-line.command{margin-top:10px;color:#18d5e8}.terminal-line.output{color:#bdc9c6}.terminal-body form{display:flex;gap:10px;margin-top:10px}.terminal-body label{color:#18d5e8;white-space:nowrap}.terminal-body input{width:100%;border:0;outline:0;background:transparent;color:#edf5f2;caret-color:#a8ff35}.terminal-suggestions{display:flex;flex-wrap:wrap;gap:7px;padding:14px 18px;border-top:1px solid #273133}.terminal-suggestions button{padding:6px 10px;border:1px solid #273133;background:transparent;color:#8f9e9a;cursor:pointer;font:500 .68rem JetBrains Mono,monospace}.terminal-suggestions button:hover{color:#a8ff35;border-color:#a8ff35}.about-section{display:grid;grid-template-columns:.72fr 1.28fr;padding:0}.about-photo{min-height:620px;display:flex;align-items:flex-end;justify-content:center;overflow:hidden;border-right:1px solid var(--line);background:var(--surface-2)}.about-photo img{width:min(100%,520px);max-height:600px;object-fit:contain;object-position:bottom;filter:grayscale(.25) contrast(1.04)}.about-copy{padding:clamp(60px,8vw,112px);display:flex;flex-direction:column;justify-content:center}.about-copy h2{max-width:800px}.about-copy p{max-width:670px;margin:26px 0 0;color:var(--muted);font-size:1.08rem;line-height:1.75}.social-row{display:flex;gap:10px;margin-top:38px}.social-row a{width:42px;height:42px;display:grid;place-items:center;border:1px solid var(--line);color:var(--muted);transition:.18s ease}.social-row a:hover{color:var(--cyan);border-color:var(--cyan)}.site-footer{width:min(1440px,calc(100% - 48px));min-height:86px;margin-inline:auto;padding:0 28px;display:flex;align-items:center;justify-content:space-between;border:1px solid var(--line);color:var(--muted);font:500 .7rem JetBrains Mono,monospace}.site-footer a{color:var(--cyan)}.modal-backdrop{position:fixed;z-index:100;inset:0;display:flex;justify-content:flex-end;background:#000000b8;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.project-modal{position:relative;width:min(620px,100%);height:100%;overflow-y:auto;padding:clamp(34px,6vw,72px);background:var(--surface);border-left:1px solid var(--line);box-shadow:var(--shadow);animation:slideIn .26s ease}@keyframes slideIn{0%{transform:translate(100%)}}.modal-close{position:absolute;top:22px;right:22px;width:42px;height:42px;display:grid;place-items:center;border:1px solid var(--line);background:transparent;color:var(--text);cursor:pointer}.project-modal h2{margin:18px 0 0;font-size:clamp(2.4rem,5vw,4.5rem);line-height:.98;letter-spacing:-.06em}.modal-summary{margin:24px 0;color:var(--muted);font-size:1.05rem;line-height:1.75}.modal-grid{display:grid;grid-template-columns:1fr 1fr;margin:34px 0;border:1px solid var(--line)}.modal-grid div{padding:20px;border-right:1px solid var(--line)}.modal-grid div:last-child{border-right:0}.modal-grid span{display:block;margin-bottom:10px;color:var(--muted);font:500 .65rem JetBrains Mono,monospace}.modal-grid strong{font:600 .78rem JetBrains Mono,monospace;color:var(--cyan)}.project-modal h3{margin-top:34px}.project-modal ul{padding:0;list-style:none}.project-modal li{position:relative;margin:14px 0;padding-left:24px;color:var(--muted);line-height:1.55}.project-modal li:before{content:">";position:absolute;left:0;color:var(--lime);font-family:JetBrains Mono,monospace}@media (max-width: 1020px){.nav{position:fixed;top:72px;left:0;right:0;display:none;flex-direction:column;align-items:stretch;gap:0;padding:18px 24px 24px;border-bottom:1px solid var(--line);background:var(--bg)}.nav-open{display:flex}.nav a{padding:14px 0;border-bottom:1px solid var(--line)}.menu-button{display:grid}.hero{grid-template-columns:1fr}.hero-copy{border-right:0;border-bottom:1px solid var(--line)}.topology{min-height:440px}.section-heading{grid-template-columns:1fr;align-items:start}.section-heading p{max-width:720px}.stack-layout{grid-template-columns:1fr}.stack-map{min-height:480px;border-right:0;border-bottom:1px solid var(--line)}.about-section{grid-template-columns:1fr}.about-photo{min-height:470px;border-right:0;border-bottom:1px solid var(--line)}}@media (max-width: 720px){.topbar{padding-inline:16px}.brand>span:last-child{display:none}.section-grid,.content-section,.site-footer{width:calc(100% - 24px)}.hero-copy{padding:72px 22px 44px}.hero h1{font-size:clamp(3.45rem,20vw,6rem)}.hero-actions a{width:100%}.topology{min-height:360px}.node-a{left:10%}.node-b{right:8%}.node-c{left:8%}.node-d{right:8%}.metric-strip{grid-template-columns:1fr}.metric-strip div{border-right:0;border-bottom:1px solid var(--line)}.metric-strip div:last-child{border-bottom:0}.hero-stats{grid-template-columns:1fr 1fr}.hero-stats article:nth-child(2){border-right:0}.hero-stats article{border-bottom:1px solid var(--line)}.content-section{padding-block:82px}.section-heading{padding-inline:20px}.projects-grid{grid-template-columns:1fr;margin-inline:20px}.project-body p{min-height:0}.filter-row{padding-inline:20px}.timeline{margin-inline:20px}.timeline-item{grid-template-columns:54px 1fr}.timeline-marker{grid-row:1 / 3}.timeline-period{padding:24px 20px 0;border-right:0}.timeline-main{padding:12px 20px 28px}.stack-layout,.terminal-window{margin-inline:20px}.stack-map{min-height:370px}.radar-three{width:330px;height:330px}.radar-two{width:230px;height:230px}.stack-groups{grid-template-columns:1fr}.stack-groups article{min-height:220px;border-right:0;border-bottom:1px solid var(--line)!important}.stack-groups article:last-child{border-bottom:0!important}.terminal-titlebar{grid-template-columns:1fr auto}.terminal-titlebar>span:last-child{display:none}.terminal-body{height:430px;padding:18px;font-size:.76rem}.terminal-body form{flex-wrap:wrap}.terminal-body input{min-width:100%}.about-copy{padding:64px 24px}.about-photo{min-height:390px}.about-photo img{max-height:430px}.site-footer{padding:24px;flex-direction:column;align-items:flex-start;justify-content:center;gap:12px}.modal-grid{grid-template-columns:1fr}.modal-grid div{border-right:0;border-bottom:1px solid var(--line)}.modal-grid div:last-child{border-bottom:0}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
