.navbar{z-index:1000;background:color-mix(in srgb, var(--bg-primary) 85%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:background .3s var(--ease-out-quart), border-color .3s var(--ease-out-quart), box-shadow .3s var(--ease-out-quart), height .3s var(--ease-out-quart);border-bottom:1px solid #0000;position:fixed;top:0;left:0;right:0}.navbar--scrolled{border-bottom-color:var(--border);box-shadow:var(--shadow)}.navbar-inner{height:3.5rem;transition:height .3s var(--ease-out-quart);justify-content:space-between;align-items:center;display:flex;overflow:visible}.navbar--scrolled .navbar-inner{height:3rem}.nav-logo{font-weight:700;font-size:var(--text-base);letter-spacing:-.03em;transition:transform .2s var(--ease-out-quart);color:var(--accent)!important}.nav-logo:hover{transform:translate(2px)}.nav-logo:before{content:"~/";color:var(--text-muted);font-weight:400}.nav-links{align-items:center;gap:.25rem;list-style:none;display:flex}.nav-links a{color:var(--text-secondary);font-size:var(--text-xs);transition:color .2s var(--ease-out-quart), background .2s var(--ease-out-quart);border-radius:3px;padding:.25rem .5rem;font-weight:500;position:relative}.nav-links a:before{content:"./";color:var(--text-muted);transition:color .2s var(--ease-out-quart);font-weight:400}.nav-links a:after{content:"";background:var(--accent);transform-origin:0;height:1px;transition:transform .25s var(--ease-out-expo);position:absolute;bottom:0;left:.5rem;right:.5rem;transform:scaleX(0)}.nav-links a:hover{color:var(--accent);background:var(--accent-glow)}.nav-links a:hover:after{transform:scaleX(1)}.theme-toggle{border:1px solid var(--border);color:var(--text-secondary);font-family:var(--font-mono);font-size:var(--text-xs);cursor:pointer;transition:border-color .2s var(--ease-out-quart), color .2s var(--ease-out-quart), transform .15s var(--ease-out-quart);background:0 0;border-radius:3px;padding:.3125rem .625rem;font-weight:500}.theme-toggle:hover{border-color:var(--accent);color:var(--accent)}.theme-toggle:active{transform:scale(.95)}.mobile-toggle{border:1px solid var(--border);color:var(--text-secondary);font-family:var(--font-mono);cursor:pointer;min-width:2.75rem;min-height:2.75rem;transition:transform .15s var(--ease-out-quart);background:0 0;border-radius:3px;padding:.25rem .625rem;font-size:1.125rem;display:none}.mobile-toggle:active{transform:scale(.92)}@media (width<=640px){.nav-links{background:var(--bg-primary);border-bottom:1px solid var(--border);flex-direction:column;gap:.25rem;padding:.75rem 1.5rem;display:none;position:absolute;top:3.5rem;left:0;right:0}.nav-links.open{display:flex}.mobile-toggle{display:block}.nav-links a:after{display:none}}.hero{border-bottom:1px dashed var(--border);align-items:center;min-height:100vh;padding-top:3.5rem;display:flex;position:relative;overflow:hidden}.matrix-rain{z-index:0;pointer-events:auto;opacity:.6;position:absolute;inset:0}[data-theme=dark] .matrix-rain{opacity:1}.hero-content{z-index:1;width:100%;position:relative}@supports (animation-timeline:scroll()){.matrix-rain{animation:linear both matrix-parallax;animation-timeline:scroll();animation-range:0 100vh}.hero-content{animation:linear both content-parallax;animation-timeline:scroll();animation-range:0 100vh}@keyframes matrix-parallax{to{transform:translateY(-60px)}}@keyframes content-parallax{to{transform:translateY(-30px)}}}.hero-prompt{color:var(--text-muted);font-size:var(--text-sm);margin-bottom:1rem}.cursor{color:var(--accent);font-weight:700}.cursor.hidden{visibility:hidden}.hero-reveal{opacity:0;transition:opacity .45s var(--ease-out-quart), transform .45s var(--ease-out-quart);transform:translateY(10px)}.hero-reveal.show{opacity:1;transform:translateY(0)}.hero-reveal--2{transition-delay:.1s}.hero-reveal--3{transition-delay:.2s}.hero-reveal--4{transition-delay:.32s}.hero-reveal.show.hero-reveal--2{transition-delay:.1s}.hero-reveal.show.hero-reveal--3{transition-delay:.2s}.hero-reveal.show.hero-reveal--4{transition-delay:.32s}@media (prefers-reduced-motion:reduce){.hero-reveal{opacity:1;transition:none;transform:none}}.hero-name{font-size:var(--text-display);color:var(--accent);letter-spacing:-.02em;text-shadow:var(--crt-glow);cursor:default;margin-bottom:.75rem;font-weight:700;line-height:1.1;position:relative}.hero-name:hover{animation:.3s steps(2,end) both glitch-text}.hero-name:before,.hero-name:after{content:attr(data-text);opacity:0;pointer-events:none;font-size:inherit;font-weight:inherit;line-height:inherit;letter-spacing:inherit;position:absolute;inset:0;overflow:hidden}.hero-name:hover:before{color:#f04;opacity:.6;z-index:-1;animation:.3s steps(3,end) both glitch-slice-top}.hero-name:hover:after{color:#00e5ff;opacity:.6;z-index:-1;animation:.3s steps(3,end) both glitch-slice-bottom}@keyframes glitch-text{0%{text-shadow:2px 0 #f046,-2px 0 #00e5ff66}20%{text-shadow:-3px 1px #f046,3px -1px #00e5ff66}40%{text-shadow:1px -2px #f044,-1px 2px #00e5ff44}60%{text-shadow:-2px 0 #f043,2px 0 #00e5ff33}80%{text-shadow:1px 1px #f041,-1px -1px #00e5ff11}to{text-shadow:var(--crt-glow)}}@keyframes glitch-slice-top{0%{clip-path:inset(0 0 65%);opacity:.7;transform:translate(4px,-2px)}25%{clip-path:inset(20% 0 50%);transform:translate(-3px,1px)}50%{clip-path:inset(40% 0 30%);transform:translate(2px)}75%{clip-path:inset(10% 0 70%);opacity:.4;transform:translate(-1px,1px)}to{clip-path:inset(0 0 100%);opacity:0;transform:translate(0)}}@keyframes glitch-slice-bottom{0%{clip-path:inset(60% 0 0);opacity:.7;transform:translate(-4px,2px)}25%{clip-path:inset(45% 0 20%);transform:translate(3px,-1px)}50%{clip-path:inset(30% 0 40%);transform:translate(-2px)}75%{clip-path:inset(70% 0 10%);opacity:.4;transform:translate(1px,-1px)}to{clip-path:inset(100% 0 0);opacity:0;transform:translate(0)}}@media (prefers-reduced-motion:reduce){.hero-name:hover{animation:none}.hero-name:hover:before,.hero-name:hover:after{opacity:0;animation:none}}.hero-title{font-size:var(--text-lg);color:var(--text-secondary);margin-bottom:2rem;font-weight:400;line-height:1.3}.hero-summary{color:var(--text-secondary);font-size:var(--text-base);max-width:60ch;margin-bottom:2.5rem;line-height:1.8}.hero-summary:before{content:"/* ";color:var(--text-muted)}.hero-summary:after{content:" */";color:var(--text-muted)}.hero-links{flex-wrap:wrap;gap:.75rem;display:flex}.hero-link{border:1px solid var(--border);font-size:var(--text-sm);transition:border-color .2s var(--ease-out-quart), color .2s var(--ease-out-quart), background .2s var(--ease-out-quart), box-shadow .2s var(--ease-out-quart), transform .15s var(--ease-out-quart);border-radius:3px;align-items:center;gap:.5rem;padding:.625rem 1.25rem;font-weight:500;display:inline-flex;color:var(--text-primary)!important}.hero-link:hover{border-color:var(--accent);box-shadow:var(--crt-glow);color:var(--accent)!important}.hero-link:active{transform:scale(.97)}.hero-link--primary{background:var(--accent);border-color:var(--accent);font-weight:600;color:var(--bg-primary)!important}.hero-link--primary:hover{background:0 0;color:var(--accent)!important}@media (width<=640px){.hero-links{flex-direction:column}.hero-link{justify-content:center}}.about-content{gap:1.5rem;display:grid}.about-text{color:var(--text-secondary);font-size:var(--text-base);gap:.625rem;line-height:1.8;display:grid}.about-text .line:before{content:"> ";color:var(--accent)}.about-terminal{border:1px solid var(--border);font-family:var(--font-mono);font-size:var(--text-base);background:var(--bg-card);border-radius:3px;margin-top:.5rem;padding:1rem 1.25rem;line-height:1.8}.terminal-cmd{color:var(--text-muted);font-size:var(--text-sm);margin-bottom:.25rem;display:block}.terminal-row{gap:.5rem;display:flex}.terminal-label{color:var(--text-secondary);min-width:8.75rem;font-size:var(--text-sm);padding-left:1rem}@media (width<=640px){.terminal-label{min-width:6.5rem}}.terminal-value{color:var(--accent);font-weight:600;font-size:var(--text-base);font-variant-numeric:tabular-nums}.timeline{gap:1.5rem;display:grid}.timeline-item{border:1px solid var(--border);background:var(--bg-card);transition:border-color .25s var(--ease-out-quart), background .25s var(--ease-out-quart), transform .25s var(--ease-out-quart);border-radius:3px;padding:1.5rem;position:relative}.timeline-item:before{content:"";background:var(--accent);opacity:.3;transform-origin:top;width:3px;transition:opacity .3s var(--ease-out-quart), transform .3s var(--ease-out-quart);border-radius:3px 0 0 3px;position:absolute;top:0;bottom:0;left:0;transform:scaleY(.6)}.timeline-item:hover{border-color:var(--border-glow);background:var(--bg-card-hover)}.timeline-item:hover:before{opacity:1;transform:scaleY(1)}.timeline-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.5rem;margin-bottom:.25rem;display:flex}.timeline-company{font-size:var(--text-md);color:var(--text-primary);font-weight:600;line-height:1.3}.timeline-date{font-size:var(--text-xs);color:var(--accent-secondary);white-space:nowrap;letter-spacing:.02em;font-variant-numeric:tabular-nums;font-weight:500}.timeline-role{font-size:var(--text-sm);color:var(--accent);margin-bottom:.25rem;font-weight:500}.timeline-location{font-size:var(--text-xs);color:var(--text-muted);margin-bottom:1rem}.timeline-bullets{gap:.625rem;list-style:none;display:grid}.timeline-bullets li{font-size:var(--text-base);color:var(--text-secondary);padding-left:1.25rem;line-height:1.7;position:relative}.timeline-bullets li:before{content:"$";color:var(--accent);font-weight:600;position:absolute;left:0}@media (width<=640px){.timeline-header{flex-direction:column}}.projects-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.25rem;display:grid}.project-card{border:1px solid var(--border);background:var(--bg-card);transition:border-color .25s var(--ease-out-quart), background .25s var(--ease-out-quart), transform .25s var(--ease-out-quart), box-shadow .25s var(--ease-out-quart);border-radius:3px;padding:1.5rem;display:block}.project-card:hover{border-color:var(--border-glow);background:var(--bg-card-hover);box-shadow:var(--crt-glow);transform:translateY(-3px)}.project-card:active{transition-duration:.1s;transform:translateY(-1px)}.project-header{justify-content:space-between;align-items:flex-start;gap:.5rem;margin-bottom:.5rem;display:flex}.project-name{font-size:var(--text-md);color:var(--accent);font-weight:600;line-height:1.3}.project-external{color:var(--text-muted);opacity:0;transition:opacity .25s var(--ease-out-quart), transform .25s var(--ease-out-quart), color .25s var(--ease-out-quart);flex-shrink:0;margin-top:.125rem;transform:translate(-4px,4px)}.project-card:hover .project-external{opacity:1;color:var(--accent);transform:translate(0)}.project-desc{font-size:var(--text-base);color:var(--text-secondary);margin-bottom:1rem;line-height:1.7}.project-tech{flex-wrap:wrap;gap:.375rem;display:flex}.tech-tag{font-size:var(--text-xs);border:1px solid var(--border);color:var(--accent-tertiary);background:var(--bg-secondary);transition:border-color .2s var(--ease-out-quart), color .2s var(--ease-out-quart);border-radius:2px;align-items:center;gap:.25rem;padding:.1875rem .5rem;font-weight:500;display:inline-flex}.tech-tag-icon{flex-shrink:0;font-size:.75rem}.project-card:hover .tech-tag{border-color:var(--accent-tertiary)}.skills-grid{grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));gap:1.5rem;display:grid}.skill-group{border-left:2px solid var(--accent);padding-left:1rem}.skill-group-name{font-size:var(--text-xs);color:var(--accent-secondary);text-transform:uppercase;letter-spacing:.08em;margin-bottom:.75rem;font-weight:600}.skill-group-name:before{content:"export ";color:var(--text-muted);text-transform:none;font-weight:400}.skill-items{flex-wrap:wrap;gap:.5rem;display:flex}.skill-item{font-size:var(--text-xs);border:1px solid var(--border);color:var(--text-primary);background:var(--bg-secondary);transition:border-color .2s var(--ease-out-quart), color .2s var(--ease-out-quart), transform .15s var(--ease-out-quart);border-radius:3px;align-items:center;gap:.375rem;padding:.3125rem .75rem;font-weight:500;display:inline-flex}.skill-icon{color:var(--text-muted);transition:color .2s var(--ease-out-quart);flex-shrink:0;font-size:.875rem}.skill-item:hover{border-color:var(--accent);color:var(--accent);transform:translateY(-1px)}.skill-item:hover .skill-icon{color:var(--accent)}.skill-item:active{transition-duration:.1s;transform:translateY(0)}.education-grid{gap:1rem;display:grid}.education-item{border:1px solid var(--border);background:var(--bg-card);transition:border-color .25s var(--ease-out-quart), background .25s var(--ease-out-quart);border-radius:3px;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.5rem;padding:1.25rem;display:flex}.education-item:hover{border-color:var(--border-glow);background:var(--bg-card-hover)}.education-school{font-size:var(--text-md);color:var(--text-primary);font-weight:600;line-height:1.3}.education-degree{font-size:var(--text-sm);color:var(--accent);font-weight:500}.education-meta{text-align:right}.education-date{font-size:var(--text-xs);color:var(--accent-secondary);font-variant-numeric:tabular-nums;font-weight:500}.education-location{font-size:var(--text-xs);color:var(--text-muted)}@media (width<=640px){.education-item{flex-direction:column}.education-meta{text-align:left}}#contact{border-bottom:none}.contact-prompt{font-size:var(--text-base);color:var(--text-secondary);margin-bottom:1.5rem;line-height:1.8}.contact-links{gap:.5rem;display:grid}.contact-link{border:1px solid var(--border);font-size:var(--text-base);background:var(--bg-card);transition:border-color .25s var(--ease-out-quart), color .25s var(--ease-out-quart), transform .25s var(--ease-out-quart), background .25s var(--ease-out-quart);border-radius:3px;align-items:center;gap:.75rem;padding:.875rem 1.25rem;display:flex;color:var(--text-primary)!important}.contact-link:hover{border-color:var(--accent);background:var(--bg-card-hover);transform:translate(4px);color:var(--accent)!important}.contact-link:active{transition-duration:.1s;transform:translate(2px)}.contact-link-icon{color:var(--text-muted);transition:color .25s var(--ease-out-quart);flex-shrink:0}.contact-link:hover .contact-link-icon{color:var(--accent)}.contact-link-label{color:var(--text-muted);min-width:5rem;font-size:var(--text-sm);transition:color .25s var(--ease-out-quart);font-weight:500}.contact-link:hover .contact-link-label{color:var(--text-secondary)}.contact-link-arrow{color:var(--text-muted);opacity:0;transition:opacity .25s var(--ease-out-quart), transform .25s var(--ease-out-quart), color .25s var(--ease-out-quart);margin-left:auto;transform:translate(-8px)}.contact-link:hover .contact-link-arrow{opacity:1;color:var(--accent);transform:translate(0)}@media (width<=640px){.contact-link{font-size:var(--text-sm);gap:.5rem;padding:.75rem 1rem;overflow:hidden}.contact-link span:not(.contact-link-label):not(.contact-link-arrow){text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.contact-link-label{min-width:4rem}.contact-link-arrow{display:none}}.footer{border-top:1px solid var(--border);text-align:center;padding:2rem 0}.footer p{font-size:var(--text-xs);color:var(--text-muted)}.footer-cursor{background:var(--accent);vertical-align:text-bottom;width:.4375rem;height:.875rem;margin-left:.25rem;display:inline-block}*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--font-mono:"JetBrains Mono", "Fira Code", "Cascadia Code", "Consolas", monospace;--transition:.3s ease;--ease-out-quart:cubic-bezier(.25, 1, .5, 1);--ease-out-expo:cubic-bezier(.16, 1, .3, 1);--text-xs:.6875rem;--text-sm:.8125rem;--text-base:.875rem;--text-md:1rem;--text-lg:1.125rem;--text-display:clamp(1.75rem, 5vw, 2.75rem)}[data-theme=dark]{--bg-primary:#101214;--bg-secondary:#161a1d;--bg-card:#1a1e22;--bg-card-hover:#1f2428;--border:#2d3339;--border-glow:#5fba7d22;--text-primary:#d4d8dc;--text-secondary:#8b9299;--text-muted:#565d64;--accent:#5fba7d;--accent-dim:#4a9e68;--accent-glow:#5fba7d11;--accent-secondary:#d4a04a;--accent-tertiary:#6aabcc;--scanline-opacity:.02;--crt-glow:0 0 8px #5fba7d0a, 0 0 24px #5fba7d06;--shadow:0 2px 16px #00000059}[data-theme=light]{--bg-primary:#f5f0e8;--bg-secondary:#ebe6dc;--bg-card:#fff;--bg-card-hover:#faf8f4;--border:#d4cfc5;--border-glow:#2d5a2d33;--text-primary:#1a1a1a;--text-secondary:#555;--text-muted:#999;--accent:#2d5a2d;--accent-dim:#3d7a3d;--accent-glow:#2d5a2d11;--accent-secondary:#b87300;--accent-tertiary:#07a;--scanline-opacity:.015;--crt-glow:0 1px 3px #00000014;--shadow:0 2px 12px #0000000f}html:after{content:"";background:repeating-linear-gradient(0deg, transparent, transparent 2px, rgba(0, 0, 0, var(--scanline-opacity)) 2px, rgba(0, 0, 0, var(--scanline-opacity)) 4px);pointer-events:none;z-index:9999;position:fixed;inset:0}@media (prefers-reduced-motion:reduce){html:after{display:none}}html{scroll-behavior:smooth;scroll-padding-top:80px}body{font-family:var(--font-mono);background:var(--bg-primary);color:var(--text-primary);line-height:1.7;font-size:var(--text-base);font-kerning:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background .3s var(--ease-out-quart), color .3s var(--ease-out-quart)}::selection{background:var(--accent);color:var(--bg-primary)}a{color:var(--accent);transition:color var(--transition);text-decoration:none}a:hover{color:var(--accent-secondary)}a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.container{max-width:860px;margin:0 auto;padding:0 24px}section{border-bottom:1px dashed var(--border);padding:80px 0}section:last-of-type{border-bottom:none}.section-header{margin-bottom:40px}.section-header h2{font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.15em;color:var(--accent);margin-bottom:.5rem;font-weight:600}.section-header h2:before{content:"# ";color:var(--text-muted)}.section-header .divider{background:linear-gradient(to right, var(--accent), transparent);width:100%;height:1px}.reveal{opacity:0;transition:opacity .5s var(--ease-out-quart), transform .5s var(--ease-out-quart);transform:translateY(12px)}.reveal.visible{opacity:1;transform:translateY(0)}.reveal.visible .stagger-1{transition-delay:0s}.reveal.visible .stagger-2{transition-delay:80ms}.reveal.visible .stagger-3{transition-delay:.16s}.reveal.visible .stagger-4{transition-delay:.24s}.section-header .divider{transform-origin:0;transition:transform .6s var(--ease-out-expo);transform:scaleX(0)}.reveal.visible .divider,.section-header.in-view .divider{transform:scaleX(1)}.crt-transition-overlay{z-index:99999;pointer-events:none;background:var(--bg-primary);transform-origin:50%;transition:transform .2s cubic-bezier(.4,0,1,1);position:fixed;inset:0}.crt-transition-overlay.crt-compress{transform:scaleY(.003)}.crt-transition-overlay.crt-flash{background:#fff;box-shadow:0 0 60px 30px #fff9}[data-theme=dark] .crt-transition-overlay.crt-flash{background:var(--accent);box-shadow:0 0 60px 30px #5fba7d66}.crt-transition-overlay.crt-expand{opacity:0;transition:transform .25s cubic-bezier(0,0,.2,1),opacity .25s cubic-bezier(0,0,.2,1);transform:scaleY(1)}@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transition:none;transform:none}.section-header .divider{transition:none;transform:scaleX(1)}.crt-transition-overlay{display:none}}@media (width<=640px){body{font-size:var(--text-sm)}section{padding:3.75rem 0}}
