@font-face{font-family:Orbitron;src:url(/fonts/orbitron-400.ttf)format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Orbitron;src:url(/fonts/orbitron-700.ttf)format("truetype");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Orbitron;src:url(/fonts/orbitron-900.ttf)format("truetype");font-weight:900;font-style:normal;font-display:swap}@font-face{font-family:Share Tech Mono;src:url(/fonts/share-tech-mono-400.ttf)format("truetype");font-weight:400;font-style:normal;font-display:swap}:root{--bg:#050a0e;--panel:#081220;--cyan:#00f5ff;--green:#39ff14;--orange:#ff6b35;--text:#c0d0e0;--muted:#607080;--line:#00f5ff21;--font-display:Orbitron,sans-serif;--font-mono:"Share Tech Mono",monospace}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text);font-family:var(--font-mono),monospace;margin:0;overflow-x:hidden}a{color:inherit}button{font:inherit}::selection{background:var(--cyan);color:var(--bg)}.container{width:min(1100px,100% - 48px);margin-inline:auto}.site-header{z-index:50;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#050a0ee0;border-bottom:1px solid #00f5ff14;justify-content:space-between;align-items:center;height:64px;padding:0 max(24px,50vw - 640px);display:flex;position:fixed;inset:0 0 auto}.logo{font-family:var(--font-display);color:var(--cyan);letter-spacing:3px;font-size:13px;font-weight:700;text-decoration:none}.logo span{color:var(--green)}.site-header nav{gap:28px;display:flex}.site-header nav a{text-transform:uppercase;color:#718495;letter-spacing:2px;font-size:11px;text-decoration:none;transition:all .2s}.site-header nav a:hover{color:var(--cyan)}.mobile-navigation{display:none}.button{border:1px solid var(--cyan);color:var(--cyan);font:12px var(--font-mono);letter-spacing:2px;text-transform:uppercase;cursor:pointer;background:0 0;justify-content:center;align-items:center;padding:13px 28px;text-decoration:none;transition:all .2s;display:inline-flex}.button:hover{background:#00f5ff14;transform:translateY(-2px);box-shadow:0 0 28px #00f5ff2e}.button.green{color:var(--green);border-color:var(--green)}.button.green:hover{background:#39ff1412;box-shadow:0 0 28px #39ff1429}.button-small{padding:8px 16px;font-size:10px}.hero{place-items:center;height:100svh;min-height:760px;display:grid;position:relative;overflow:hidden}.grid-bg{background-image:linear-gradient(#00f5ff0a 1px,#0000 1px),linear-gradient(90deg,#00f5ff0a 1px,#0000 1px),radial-gradient(circle,#00f5ff0d,#0000 48%);background-size:60px 60px,60px 60px,100% 100%;animation:10s linear infinite gridScroll;position:absolute;inset:0}.scanline{background:linear-gradient(#0000,#00f5ff1f,#0000);height:3px;animation:7s linear infinite scanline;position:absolute;left:0;right:0}.corner{opacity:.3;width:52px;height:52px;position:absolute}.corner-tl{border-top:2px solid var(--cyan);border-left:2px solid var(--cyan);top:76px;left:36px}.corner-tr{border-top:2px solid var(--cyan);border-right:2px solid var(--cyan);top:76px;right:36px}.corner-bl{border-bottom:2px solid var(--cyan);border-left:2px solid var(--cyan);bottom:36px;left:36px}.corner-br{border-bottom:2px solid var(--cyan);border-right:2px solid var(--cyan);bottom:36px;right:36px}.hero-content{text-align:center;width:min(900px,100% - 40px);padding-top:40px;animation:.9s both fadeUp;position:relative}.system-state{letter-spacing:4px;color:var(--green);opacity:.8;margin:0 0 24px;font-size:11px}.system-state span{color:var(--cyan)}.glitch-name{margin-bottom:12px;display:inline-block;position:relative}.hero h1,.glitch-layer{font:900 52px/1.1 var(--font-display);letter-spacing:5px;white-space:nowrap}.hero h1{color:#fff;text-shadow:0 0 40px #00f5ff40;margin:0}.glitch-layer{position:absolute;inset:0}.glitch-cyan{color:var(--cyan);animation:.18s step-end both glitch1}.glitch-orange{color:var(--orange);animation:.18s step-end both glitch2}.typewriter{height:40px;color:var(--cyan);letter-spacing:2px;justify-content:center;align-items:center;margin-bottom:32px;font-size:22px;display:flex}.typewriter span{color:var(--green);margin-right:8px}.typewriter i{font-style:normal;animation:1s step-end infinite blink}.hero-summary{color:#607080;letter-spacing:1px;max-width:480px;margin:0 auto 48px;font-size:13px;line-height:2}.actions{flex-wrap:wrap;justify-content:center;gap:14px;display:flex}.stats{justify-content:center;gap:52px;margin:68px 0 0;display:flex}.stats div{text-align:center}.stats dt{font:700 26px var(--font-display);color:var(--cyan)}.stats dd{text-transform:uppercase;color:#304050;letter-spacing:2px;margin:6px 0 0;font-size:10px}.section{padding-block:105px;scroll-margin-top:60px}.band{background:#0812207a;border-block:1px solid #00f5ff12;width:100%}.section-title p{color:#00f5ffb3;letter-spacing:4px;margin:0 0 10px;font-size:11px}.section-title h2,.section-title h1{font:700 clamp(28px,4vw,36px) var(--font-display);color:#fff;letter-spacing:3px;margin:0 0 54px}.section-title span{color:var(--cyan)}.section-title.green p,.section-title.green span{color:var(--green)}.about-grid{grid-template-columns:1fr 1fr;gap:60px;display:grid}.copy p{color:#8ea5b5;margin:0 0 22px;font-size:14px;line-height:2}.certs{flex-wrap:wrap;gap:9px;display:flex}.certs span{color:var(--green);border:1px solid #39ff1459;padding:7px 12px;font-size:11px}.terminal{background:#00000080;border:1px solid #00f5ff33;padding:25px;font-size:13px;line-height:1.8}.terminal p{color:#405565;margin:0}.terminal strong{color:var(--green);margin-bottom:14px;font-weight:400;display:block}.terminal pre{color:#a9bdca;white-space:pre-wrap;font:13px/1.8 var(--font-mono);margin:0 0 14px}.skills-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}.skill-card{--accent:var(--cyan);border:1px solid var(--line);background:#081220b8;align-items:center;gap:20px;min-height:104px;padding:24px 26px;transition:all .2s;display:flex;position:relative;overflow:hidden}.skill-card:before{content:"";background:var(--accent);width:2px;box-shadow:0 0 12px var(--accent);position:absolute;inset:0 auto 0 0}.skill-card.green{--accent:var(--green)}.skill-card.orange{--accent:var(--orange)}.skill-card:hover{border-color:var(--accent);transform:translateY(-2px)}.skill-card>span{color:var(--accent);letter-spacing:2px;opacity:.65;font-size:10px}.skill-card h2{color:#c9d8e2;font:500 14px/1.5 var(--font-display);letter-spacing:.6px;margin:0}.toolbox{border-top:1px solid var(--line);margin-top:58px;padding-top:30px}.content-label{color:#00f5ffb3;letter-spacing:4px;margin:0;font-size:11px}.tech-list{flex-wrap:wrap;justify-content:flex-start;gap:10px;margin-top:18px;display:flex}.tech-list span,.tags span{color:#6d8494;letter-spacing:1px;border:1px solid #00f5ff38;padding:6px 12px;font-size:10px}.card-grid{grid-template-columns:repeat(3,1fr);gap:20px;display:grid}.project-card{border:1px solid var(--line);background:#081220cc;padding:30px;text-decoration:none;transition:all .25s}.project-card:hover{border-color:var(--cyan);transform:translateY(-5px);box-shadow:0 14px 40px #00f5ff14}.card-top{justify-content:space-between;align-items:center;margin-bottom:22px;display:flex}.card-top i{color:var(--cyan);font-size:22px;font-style:normal}.card-top span{color:var(--cyan);text-transform:uppercase;letter-spacing:1px;border:1px solid #00f5ff40;padding:4px 8px;font-size:9px}.project-card.green .card-top>*{color:var(--green)}.project-card.orange .card-top>*{color:var(--orange)}.project-card h2,.video-card h3{font:600 14px/1.6 var(--font-display);letter-spacing:.6px;color:#e0ecf4;margin:0 0 14px}.project-card p,.video-card p{color:#64798a;margin:0 0 22px;font-size:13px;line-height:1.8}.tags{flex-wrap:wrap;gap:7px;display:flex}.tags span{padding:4px 8px}.section-lede{color:#536878;letter-spacing:1px;margin:-42px 0 48px}.video-card{text-align:left;color:inherit;cursor:pointer;background:#081220d9;border:1px solid #39ff1424;padding:0;transition:all .25s}.video-card:hover{border-color:var(--green);transform:translateY(-4px)}.video-art{background:radial-gradient(circle at 50% 40%,#39ff1417,#0000 35%),linear-gradient(135deg,#0a1927,#050a0e);place-items:center;height:180px;display:grid;position:relative}.play{border:2px solid var(--green);width:56px;height:56px;color:var(--green);border-radius:50%;place-items:center;padding-left:4px;display:grid;box-shadow:0 0 25px #39ff1433}.video-tag,.duration{color:var(--green);background:#000000a6;padding:4px 9px;font-size:10px;position:absolute}.video-tag{text-transform:uppercase;border:1px solid #39ff1459;top:12px;left:12px}.duration{bottom:12px;right:12px}.video-copy{padding:22px}.video-copy time{color:#405564;font-size:10px}.center{text-align:center;margin-top:42px}.modal{z-index:100;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#000407e6;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal-panel{background:#08121c;border:1px solid #39ff144d;width:min(920px,100%);padding:16px;position:relative}.modal-panel h2{font:16px var(--font-display);color:#fff;margin:20px 8px 8px}.modal-close{z-index:2;color:#fff;cursor:pointer;background:0 0;border:0;font-size:35px;position:absolute;top:-44px;right:5px}.video-frame{aspect-ratio:16/9}.video-frame iframe{border:0;width:100%;height:100%}.post-list{border-top:1px solid var(--line)}.post-row{border-bottom:1px solid var(--line);border-left:2px solid #0000;padding:26px 55px 26px 28px;text-decoration:none;transition:all .2s;display:block;position:relative}.post-row:hover{border-left-color:var(--cyan);background:#00f5ff06;padding-left:36px}.post-meta{color:#4c6070;text-transform:uppercase;letter-spacing:1px;gap:16px;font-size:10px;display:flex}.post-row h3{font:500 16px/1.5 var(--font-display);color:#c9d8e2;letter-spacing:.6px;margin:10px 0 6px}.post-row p{color:#657a8a;margin:0 0 13px;font-size:13px}.post-row b{color:var(--cyan);font-size:22px;position:absolute;top:50%;right:24px}.more{margin-top:38px}.contact{border-top:1px solid var(--line);background:#08122080}.contact-inner{text-align:center;width:min(680px,100% - 48px);margin:auto}.contact-inner .section-title h2{margin-bottom:18px}.contact-inner>p{color:#667c8c;margin:0 auto 40px;line-height:1.9}.contact-links{margin-bottom:34px}.contact-links a{border:1px solid var(--line);color:#8ba0af;text-align:left;gap:26px;margin-top:6px;padding:17px 22px;text-decoration:none;display:flex}.contact-links a:hover{border-color:var(--cyan);color:var(--cyan)}.contact-links span{color:#425665;letter-spacing:2px;width:85px;font-size:10px}.footer{color:#405261;letter-spacing:1px;justify-content:space-between;align-items:center;min-height:75px;font-size:10px;display:flex}.online{align-items:center;gap:9px;display:flex}.online i{background:var(--green);width:7px;height:7px;box-shadow:0 0 10px var(--green);border-radius:50%}.interior,.article-shell{min-height:calc(100vh - 75px);padding-top:130px;padding-bottom:100px}.back{color:#5f7585;margin-bottom:55px;font-size:12px;text-decoration:none;display:inline-block}.back:hover{color:var(--cyan)}.page-intro{max-width:760px;margin-bottom:50px}.interior .section-title h1{margin-bottom:18px}.page-intro .page-lede{color:#687e8e;letter-spacing:.5px;margin:0;font-size:14px;line-height:1.8}.contact-page-grid{grid-template-columns:.75fr 1.25fr;align-items:start;gap:80px;display:grid}.contact-page-grid>p{color:#718797;margin:0;font-size:14px;line-height:2}.contact-page .contact-links{margin-top:0}.article-shell article{max-width:790px;margin:auto}.article-shell article>header{border-bottom:1px solid var(--line);padding-bottom:38px}.article-shell article h1{font:700 clamp(30px,5vw,48px)/1.2 var(--font-display);color:#fff;letter-spacing:1px;margin:22px 0}.article-shell article header>p{color:#778e9d;font-size:16px;line-height:1.8}.article-meta{color:#536978;text-transform:uppercase;gap:20px;font-size:11px;display:flex}.prose{color:#a9bac5;padding-top:35px;font-family:system-ui,sans-serif;font-size:16px;line-height:1.85}.prose h2,.prose h3{font-family:var(--font-display);color:#e7f0f5;margin:2em 0 .7em;line-height:1.4}.prose h2{font-size:25px}.prose h3{font-size:18px}.prose a{color:var(--cyan)}.prose code{font-family:var(--font-mono);color:var(--green);background:#081622;padding:2px 5px}.prose pre{border:1px solid var(--line);background:#03070a;padding:20px;overflow:auto}.prose pre code{background:0 0;padding:0}.prose blockquote{border-left:2px solid var(--cyan);color:#748b9a;margin-left:0;padding-left:20px}.prose table{border-collapse:collapse;width:100%}.prose th,.prose td{border:1px solid var(--line);text-align:left;padding:10px}.not-found{text-align:center;place-content:center;min-height:100vh;display:grid}.not-found p,.not-found span{color:var(--cyan)}.not-found h1{font-family:var(--font-display);color:#fff;margin:10px 0 30px}.muted{color:var(--muted)}.skill-card{align-items:flex-start;min-height:156px;text-decoration:none}.skill-card-copy{flex:1}.skill-card h2{margin-bottom:8px}.skill-card p{color:#64798a;margin:0;font-size:12px;line-height:1.65}.skill-card small{color:var(--accent);letter-spacing:1px;text-transform:uppercase;margin-top:13px;font-size:10px;display:block}.skill-card>b{color:var(--accent);align-self:center;font-size:20px;font-weight:400;transition:all .2s}.skill-card:hover>b{transform:translate(4px)}.tag-filters{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:8px;margin:-12px 0 42px;padding-bottom:22px;display:flex}.tag-filters a{color:#607687;letter-spacing:1px;text-transform:uppercase;border:1px solid #00f5ff24;align-items:center;gap:8px;padding:8px 11px;font-size:10px;text-decoration:none;transition:all .2s;display:inline-flex}.tag-filters a:hover,.tag-filters a.active{color:var(--cyan);background:#00f5ff0d;border-color:#00f5ff8c}.tag-filters a span{color:#3d5363;font-size:9px}.tag-filters a.active span{color:var(--green)}.filter-summary{color:#566c7c;letter-spacing:1px;margin:-22px 0 25px;font-size:11px}.filter-summary strong{color:var(--cyan);font-weight:400}.post-title-link{color:inherit;text-decoration:none}.post-title-link:hover{color:var(--cyan)}.post-row .tags{z-index:1;position:relative}.tags a{color:#6d8494;letter-spacing:1px;border:1px solid #00f5ff38;padding:4px 8px;font-size:10px;text-decoration:none;transition:all .2s}.tags a:hover{color:var(--cyan);border-color:var(--cyan)}.demo-label{color:var(--orange)!important}.demo-notice{background:#ff6b350a;border:1px solid #ff6b354d;align-items:center;gap:18px;margin-top:28px;padding:15px 18px;font-size:11px;line-height:1.6;display:flex}.demo-notice strong{color:var(--orange);text-transform:uppercase;letter-spacing:1px;flex:none;font-weight:400}.demo-notice span{color:#718797}.video-card{cursor:default;overflow:hidden}.video-trigger{width:100%;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;padding:0;display:block}.video-state{color:var(--orange);letter-spacing:1px;text-transform:uppercase;background:#000000b3;border:1px solid #ff6b3573;padding:4px 9px;font-size:9px;position:absolute;top:12px;right:12px}.video-tags{padding:0 22px 22px}.video-placeholder{aspect-ratio:16/9;text-align:center;background:radial-gradient(circle,#39ff1414,#0000 42%),#050a0e;flex-direction:column;justify-content:center;align-items:center;display:flex}.video-placeholder span{color:var(--green);letter-spacing:3px;text-transform:uppercase;font-size:10px}.video-placeholder strong{color:#d6e4ec;font:500 18px var(--font-display);margin:12px 0 4px}.video-placeholder p{color:#5b7181;max-width:380px;margin:0;font-size:12px;line-height:1.7}.skill-detail .back{margin-bottom:35px}.skill-detail .page-intro{margin-bottom:28px}.skill-topic-list{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:75px;display:flex}.skill-topic-list>span{color:#465c6c;letter-spacing:2px;text-transform:uppercase;margin-right:5px;font-size:10px}.skill-topic-list i{color:#718797;border:1px solid #00f5ff2e;padding:6px 10px;font-size:10px;font-style:normal}.related-content{gap:85px;display:grid}.related-section{border-top:1px solid var(--line);padding-top:34px}.related-heading{justify-content:space-between;align-items:end;gap:24px;margin-bottom:30px;display:flex}.related-heading p{color:#00f5ffa6;letter-spacing:3px;margin:0 0 8px;font-size:10px}.related-heading h2{color:#e4edf3;font:600 22px var(--font-display);letter-spacing:1px;margin:0}.related-heading h2 span{min-width:25px;height:25px;color:var(--cyan);font:10px var(--font-mono);border:1px solid #00f5ff40;place-items:center;margin-left:8px;display:inline-grid}.related-heading>a{color:#617787;letter-spacing:1px;text-transform:uppercase;font-size:10px;text-decoration:none}.related-heading>a:hover{color:var(--cyan)}@keyframes gridScroll{to{background-position:0 60px,60px 0,0 0}}@keyframes scanline{0%{top:-5%}to{top:105%}}@keyframes blink{0%,49%{opacity:1}50%,to{opacity:0}}@keyframes fadeUp{0%{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}@keyframes glitch1{0%,to{clip-path:inset(0 0 100%);transform:translate(0)}15%{clip-path:inset(15% 0 65%);transform:translate(-5px)}35%{clip-path:inset(55% 0 25%);transform:translate(5px)}55%{clip-path:inset(75% 0 10%);transform:translate(-3px)}75%{clip-path:inset(8% 0 80%);transform:translate(3px)}}@keyframes glitch2{0%,to{clip-path:inset(0 0 100%);transform:translate(0)}15%{clip-path:inset(65% 0 15%);transform:translate(5px)}35%{clip-path:inset(20% 0 60%);transform:translate(-5px)}55%{clip-path:inset(10% 0 80%);transform:translate(2px)}75%{clip-path:inset(80% 0 8%);transform:translate(-3px)}}@media (max-width:800px){.site-header{padding-inline:20px}.desktop-navigation,.desktop-resume{display:none!important}.mobile-navigation{display:block;position:relative}.mobile-navigation summary{color:#718495;letter-spacing:2px;text-transform:uppercase;cursor:pointer;font-size:11px;list-style:none}.mobile-navigation summary::-webkit-details-marker{display:none}.mobile-navigation[open] summary{color:var(--cyan)}.mobile-navigation nav{border:1px solid var(--line);background:#050a0efa;border-top:0;gap:0;width:min(280px,100vw - 36px);padding:10px 18px 18px;display:grid;position:absolute;top:39px;right:-20px;box-shadow:0 18px 35px #00000073}.mobile-navigation nav a{border-bottom:1px solid #00f5ff12;padding:13px 8px}.container{width:min(100% - 36px,1100px)}.hero{min-height:720px}.system-state{letter-spacing:2px;font-size:9px}.hero h1,.glitch-layer{letter-spacing:2px;font-size:26px}.typewriter{font-size:18px}.stats{grid-template-columns:1fr 1fr;margin-top:45px;display:grid}.corner{display:none}.section{padding-block:75px}.section-title h2,.section-title h1{margin-bottom:38px}.about-grid,.skills-grid,.card-grid,.contact-page-grid{grid-template-columns:1fr}.about-grid{gap:38px}.skills-grid{gap:12px}.contact-page-grid{gap:36px}.section-lede{margin-top:-26px}.footer{text-align:center;flex-direction:column;gap:14px;padding-block:24px}.post-row{padding-inline:18px 45px}.post-row:hover{padding-left:22px}.post-meta{flex-wrap:wrap}.contact-links a{gap:12px}.contact-links span{width:72px}.interior,.article-shell{padding-top:105px}.article-shell .back{margin-bottom:35px}.skill-card{gap:14px;min-height:auto;padding:21px 20px}.skill-card>b{display:none}.tag-filters{scrollbar-width:thin;flex-wrap:nowrap;margin-top:-5px;padding-bottom:16px;overflow-x:auto}.tag-filters a{flex:none}.demo-notice{flex-direction:column;align-items:flex-start;gap:6px}.skill-topic-list{margin-bottom:55px}.related-content{gap:65px}.related-heading{flex-direction:column;align-items:flex-start;margin-bottom:24px}.related-heading>a{padding:4px 0}.video-placeholder{padding:25px}.video-placeholder strong{font-size:15px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
