:root{--clr-bg: #070810;--clr-bg-surface: #0d1117;--clr-bg-elevated: #111827;--clr-accent: #00d4aa;--clr-accent-dim: rgba(0, 212, 170, .15);--clr-accent-glow: rgba(0, 212, 170, .35);--clr-purple: #7c3aed;--clr-purple-dim: rgba(124, 58, 237, .15);--clr-text: #e2e8f0;--clr-text-muted: #64748b;--clr-border: #1e293b;--clr-error: #f87171;--clr-terminal-titlebar: #161b26;--font-mono: "JetBrains Mono", "Fira Code", "Cascadia Code", monospace;--font-body: "Inter", system-ui, -apple-system, sans-serif;--font-display: "Space Grotesk", var(--font-body);--size-base: clamp(14px, 1.5vw, 16px);--size-sm: .875rem;--size-lg: 1.125rem;--size-xl: 1.5rem;--size-2xl: 2rem;--size-3xl: clamp(2rem, 5vw, 3.5rem);--size-4xl: clamp(2.5rem, 7vw, 5rem);--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-6: 1.5rem;--space-8: 2rem;--space-12: 3rem;--space-16: 4rem;--space-24: 6rem;--radius-sm: 4px;--radius: 8px;--radius-lg: 12px;--ease-out-expo: cubic-bezier(.16, 1, .3, 1);--ease-out-quart: cubic-bezier(.25, 1, .5, 1);--dur-fast: .15s;--dur-base: .3s;--dur-slow: .6s;--content-max: 1100px;--section-pad: clamp(4rem, 8vw, 7rem);--nav-h: 64px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:var(--size-base);scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{background:var(--clr-bg);color:var(--clr-text);font-family:var(--font-body);line-height:1.7;overflow-x:hidden}.site-bg{position:fixed;inset:0;z-index:0;pointer-events:none}.site-bg canvas{display:block;width:100%;height:100%}.blog-body{position:relative;min-height:100vh}.blog-main{position:relative;z-index:1;max-width:var(--content-max);margin:0 auto;padding:0 var(--space-8) var(--space-24);padding-top:calc(var(--nav-h) + clamp(1.5rem,4vw,2.5rem))}html.booting,html.booting body{height:100%;overflow:hidden}html.booting #nav{pointer-events:none;opacity:.35}html.portfolio-boot-skip #boot-terminal{display:none!important}html.portfolio-boot-skip #hero-content[hidden]{display:grid!important}img,svg,video{display:block;max-width:100%}ul,ol{list-style:none}a{color:inherit;text-decoration:none}button{cursor:pointer;border:none;background:none;font:inherit}::selection{background:var(--clr-accent);color:var(--clr-bg)}:focus-visible{outline:2px solid var(--clr-accent);outline-offset:3px;border-radius:var(--radius-sm)}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--clr-border);border-radius:3px}@keyframes cursor-blink{0%,49%{opacity:1}50%,to{opacity:0}}@keyframes fade-up{0%{opacity:0;transform:translate3d(0,18px,0)}to{opacity:1;transform:translateZ(0)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes slide-in-left{0%{opacity:0;transform:translate(-24px)}to{opacity:1;transform:translate(0)}}@keyframes metric-land{0%{color:var(--clr-text)}50%{color:var(--clr-accent);text-shadow:0 0 24px var(--clr-accent-glow)}to{color:var(--clr-accent)}}@keyframes glow-pulse{0%,to{box-shadow:0 0 0 0 var(--clr-accent-dim)}50%{box-shadow:0 0 20px 4px var(--clr-accent-glow)}}@keyframes tag-pop{0%{opacity:0}to{opacity:1}}#nav{position:fixed;top:0;left:0;right:0;z-index:100;height:var(--nav-h);transition:background var(--dur-base) ease,backdrop-filter var(--dur-base) ease,border-color var(--dur-base) ease;border-bottom:1px solid transparent}#nav.nav--scrolled{background:#070810d9;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-color:var(--clr-border)}.nav-inner{max-width:var(--content-max);margin:0 auto;padding:0 var(--space-8);height:100%;display:flex;align-items:center;gap:var(--space-8)}.nav-logo{font-family:var(--font-mono);font-size:var(--size-sm);color:var(--clr-accent);letter-spacing:.05em;flex-shrink:0}.nav-logo:hover{opacity:.8}.nav-links{display:flex;gap:var(--space-6);margin-left:auto}.nav-links a{font-family:var(--font-mono);font-size:var(--size-sm);color:var(--clr-text-muted);transition:color var(--dur-fast) ease;position:relative}.nav-links a:after{content:"";position:absolute;bottom:-3px;left:0;width:0;height:1px;background:var(--clr-accent);transition:width var(--dur-base) var(--ease-out-expo)}.nav-links a:hover,.nav-links a.nav-link--active{color:var(--clr-text)}.nav-links a:hover:after,.nav-links a.nav-link--active:after{width:100%}.nav-hamburger{display:none;flex-direction:column;gap:5px;margin-left:auto;padding:var(--space-2)}.nav-hamburger span{display:block;width:22px;height:2px;background:var(--clr-text);transition:transform var(--dur-base) ease,opacity var(--dur-fast) ease;border-radius:1px}.nav-hamburger[aria-expanded=true] span:nth-child(1){transform:translateY(7px) rotate(45deg)}.nav-hamburger[aria-expanded=true] span:nth-child(2){opacity:0}.nav-hamburger[aria-expanded=true] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}#hero{position:relative;min-height:100dvh;display:flex;align-items:center;justify-content:center;overflow:hidden}#particle-canvas{position:absolute;inset:0;z-index:0;pointer-events:none}#boot-terminal{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-8)}#hero-content[hidden]{display:none!important}#boot-terminal[hidden]{display:none!important;pointer-events:none}#boot-output{font-family:var(--font-mono);font-size:clamp(.65rem,1.2vw,.82rem);color:var(--clr-accent);white-space:pre;width:fit-content;max-width:min(700px,calc(100vw - 2 * var(--space-8)));margin-inline:auto;line-height:1.6;max-height:80vh;overflow-y:auto}.boot-cursor{font-family:var(--font-mono);color:var(--clr-accent);font-size:1rem;animation:cursor-blink 1s step-end infinite;margin-top:var(--space-2);align-self:center}.hero-content{position:relative;z-index:1;isolation:isolate;display:grid;grid-template-columns:minmax(0,1.22fr) minmax(0,.78fr);gap:var(--space-16);align-items:center;max-width:var(--content-max);width:100%;padding:var(--space-24) var(--space-8) var(--space-16)}.hero-content>*{min-height:0;min-width:0}.hero-content--visible>.hero-text{animation:fade-up var(--dur-slow) var(--ease-out-expo) both;backface-visibility:hidden}.hero-content--visible>.terminal-window{animation:none;opacity:1;transform:none}.hero-prompt{font-family:var(--font-mono);font-size:var(--size-sm);margin-bottom:var(--space-4);line-height:1}.prompt-user{color:var(--clr-accent)}.prompt-sep{color:var(--clr-text-muted)}.prompt-host{color:var(--clr-purple)}.prompt-colon{color:var(--clr-text-muted)}.prompt-path{color:var(--clr-accent)}.prompt-dollar{color:var(--clr-text-muted);margin-left:4px}.hero-text{position:relative;--hero-cube-size: 76px}.hero-text-parallax{transform-style:preserve-3d;backface-visibility:hidden}@keyframes hero-name-breathe{0%,to{filter:brightness(.62)}50%{filter:brightness(1.1)}}#hero-name{margin:0 0 var(--space-3);font-family:var(--font-display);font-weight:700;line-height:1.1;letter-spacing:-.02em;color:var(--clr-text);transform-origin:left center;backface-visibility:hidden;white-space:nowrap;min-width:0;font-size:clamp(1.25rem,4.2vw + 1rem,5rem);animation:hero-name-breathe 3.8s ease-in-out infinite;isolation:isolate}.hero-name-inner{display:inline-block}.hero-cube-scene{--cube-s: var(--hero-cube-size, 52px);--cube-z: calc(var(--cube-s) / 2);width:var(--cube-s);height:var(--cube-s);flex-shrink:0;perspective:240px;perspective-origin:center center;cursor:grab;touch-action:none;user-select:none}.hero-prompt-row{display:flex;align-items:center;justify-content:space-between}.hero-cube-scene--corner{box-sizing:content-box;padding:20px;margin:-20px}.hero-cube-scene--dragging{cursor:grabbing}.hero-cube-spinner{width:var(--cube-s);height:var(--cube-s);position:relative;transform-style:preserve-3d}.hero-cube-face{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:.68rem;font-weight:600;color:#00ffd2f2;border:1px solid rgba(0,212,170,.62);background:linear-gradient(152deg,#161a28f5,#080a12f0);box-sizing:border-box;line-height:1;padding:1px;text-align:center;box-shadow:inset 0 1px #ffffff0d}.hero-cube-face--wide{font-size:.52rem;letter-spacing:-.02em}.hero-cube-face--front{transform:translateZ(var(--cube-z))}.hero-cube-face--back{transform:rotateY(180deg) translateZ(var(--cube-z))}.hero-cube-face--left{transform:rotateY(-90deg) translateZ(var(--cube-z))}.hero-cube-face--right{transform:rotateY(90deg) translateZ(var(--cube-z))}.hero-cube-face--top{transform:rotateX(90deg) translateZ(var(--cube-z))}.hero-cube-face--bottom{transform:rotateX(-90deg) translateZ(var(--cube-z))}.hero-tagline{font-family:var(--font-display);font-size:var(--size-xl);font-weight:600;color:var(--clr-text);margin-bottom:var(--space-2)}.hero-sub{font-family:var(--font-display);font-size:clamp(.625rem,.28rem + 2.1vw,var(--size-lg));letter-spacing:-.02em;color:var(--clr-text-muted);margin-bottom:var(--space-4);white-space:nowrap;max-width:100%;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin}.hero-latest{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-2) var(--space-4);margin-bottom:var(--space-8);max-width:min(100%,36rem)}.hero-latest-label{font-family:var(--font-mono);font-size:.65rem;font-weight:500;text-transform:uppercase;letter-spacing:.12em;color:var(--clr-accent);opacity:.9}.hero-latest-title{font-family:var(--font-display);font-size:clamp(.75rem,.35rem + 1.8vw,var(--size-sm));font-weight:600;color:var(--clr-text);text-decoration:underline;text-decoration-color:#00d4aa59;text-underline-offset:3px;transition:color var(--dur-fast) ease}.hero-latest-title:hover{color:var(--clr-accent)}.hero-latest-date{font-family:var(--font-mono);font-size:.7rem;color:var(--clr-text-muted)}.hero-badges{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-8)}.hero-text .badge{transition:border-color var(--dur-fast) ease,background var(--dur-fast) ease,color var(--dur-fast) ease}.hero-text .cta-btn{transition:background var(--dur-fast) ease,color var(--dur-fast) ease,box-shadow var(--dur-base) ease}.badge{font-family:var(--font-mono);font-size:.75rem;padding:var(--space-1) var(--space-3);border:1px solid var(--clr-border);border-radius:var(--radius-sm);color:var(--clr-text-muted);background:var(--clr-bg-surface)}.badge--primary{border-color:#00d4aa80;color:var(--clr-accent);background:var(--clr-accent-dim);font-weight:700}.cta-btn{display:inline-flex;align-items:center;gap:0;font-family:var(--font-mono);font-size:var(--size-sm);padding:var(--space-3) var(--space-6);border:1px solid var(--clr-accent);border-radius:var(--radius);color:var(--clr-accent);background:transparent;transition:background var(--dur-fast) ease,color var(--dur-fast) ease,box-shadow var(--dur-base) ease}.cta-btn:hover{background:var(--clr-accent);color:var(--clr-bg);box-shadow:0 0 24px var(--clr-accent-glow)}.cta-flag{margin-left:.35em;color:var(--clr-text-muted);transition:color var(--dur-fast) ease}.cta-btn:hover .cta-flag{color:var(--clr-bg)}.cta-cursor{animation:cursor-blink 1s step-end infinite;margin-left:1px}.terminal-window{--terminal-help-lines: 15;--terminal-line-px: 1.287rem ;--terminal-body-pad-y: calc(var(--space-4) * 2);--terminal-chrome-y: 76px;--terminal-fit-h: calc( var(--terminal-chrome-y) + var(--terminal-body-pad-y) + var(--terminal-help-lines) * var(--terminal-line-px) );background:var(--clr-bg-surface);border:1px solid var(--clr-border);border-radius:var(--radius-lg);overflow:hidden;font-family:var(--font-mono);font-size:.78rem;display:flex;flex-direction:column;width:100%;max-width:100%;box-shadow:0 32px 64px #0009,0 0 0 1px var(--clr-border),0 0 40px var(--clr-accent-dim)}.hero-content>.terminal-window{height:min(var(--terminal-fit-h),min(420px,90vh));max-height:min(420px,90vh);min-height:0}.terminal-titlebar{background:var(--clr-terminal-titlebar);padding:10px 16px;display:flex;align-items:center;gap:6px;border-bottom:1px solid var(--clr-border);user-select:none;flex-shrink:0}.tb-dot{width:12px;height:12px;border-radius:50%;flex-shrink:0}.tb-close{background:#ff5f56}.tb-min{background:#ffbd2e}.tb-max{background:#27c93f}.tb-title{font-size:.72rem;color:var(--clr-text-muted);margin-left:var(--space-3);flex:1;text-align:center}.terminal-body{flex:1 1 0;min-height:0;overflow-y:scroll;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:var(--space-4);line-height:1.65;scrollbar-width:thin;scrollbar-color:var(--clr-border) transparent;cursor:text}.terminal-body::-webkit-scrollbar{width:4px}.terminal-body::-webkit-scrollbar-thumb{background:var(--clr-border)}.term-line{white-space:pre-wrap;word-break:break-word}.term-echo{color:var(--clr-text-muted)}.term-output{color:var(--clr-text)}.term-error{color:var(--clr-error)}.terminal-input-row{display:flex;align-items:center;padding:var(--space-2) var(--space-4);border-top:1px solid var(--clr-border);flex-shrink:0;gap:0}.term-prompt{color:var(--clr-accent);white-space:nowrap;flex-shrink:0}.term-input{background:transparent;border:none;outline:none;color:var(--clr-text);font-family:var(--font-mono);font-size:inherit;flex:1;caret-color:var(--clr-accent);min-width:0}.term-input::placeholder{color:var(--clr-border)}section{padding:var(--section-pad) 0}.section-container{max-width:var(--content-max);margin:0 auto;padding:0 var(--space-8)}.section-title{font-family:var(--font-mono);font-size:var(--size-xl);font-weight:700;color:var(--clr-text);margin-bottom:var(--space-12);position:relative;display:inline-block}.section-title:before{content:"// ";color:var(--clr-accent)}.section-title:after{content:"";display:block;width:2.5rem;height:2px;background:var(--clr-accent);margin-top:var(--space-3);transition:width var(--dur-slow) var(--ease-out-expo)}.section-title.is-visible:after{width:100%}[data-observe]{opacity:0;transform:translateY(20px);transition:opacity var(--dur-slow) var(--ease-out-expo),transform var(--dur-slow) var(--ease-out-expo);transition-delay:calc(var(--item-index, 0) * 80ms)}[data-observe].is-visible{opacity:1;transform:translateY(0)}.section-title[data-observe],.section-title[data-observe].is-visible{transform:none}.section-title[data-observe][data-parallax]{transition:opacity var(--dur-slow) var(--ease-out-expo)}[data-parallax]{will-change:transform}#about{background:var(--clr-bg)}.about-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,22rem);gap:var(--space-16);align-items:start}.about-text p{font-family:var(--font-display);font-size:var(--size-lg);color:var(--clr-text-muted);line-height:1.8}.about-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3);width:100%;justify-self:end}.about-stats>.stat-card:not(.stat-card--tagline){min-width:0;align-items:center;text-align:center}.stat-card--tagline{grid-column:1 / -1;padding:var(--space-4) var(--space-6);text-align:center;background:linear-gradient(165deg,rgba(0,212,170,.07) 0%,var(--clr-bg-surface) 45%,var(--clr-bg-surface) 100%);border-color:#00d4aa38}.stat-tagline{font-family:var(--font-display);font-size:clamp(.8rem,1.35vw,.95rem);line-height:1.65;letter-spacing:.01em;margin:0;text-wrap:balance;max-width:26rem;margin-inline:auto}.stat-tagline__lead{display:inline;font-weight:600;color:var(--clr-text)}.stat-tagline__rest{color:var(--clr-text-muted);font-weight:400}.stat-card--highlight{border-color:#00d4aa4d;background:linear-gradient(135deg,var(--clr-bg-surface) 0%,rgba(0,212,170,.05) 100%)}.stat-value--text{font-family:"Space Grotesk",var(--font-body);font-size:var(--size-3xl);font-weight:700;color:var(--clr-accent);line-height:1}.stat-card{background:var(--clr-bg-surface);border:1px solid var(--clr-border);border-radius:var(--radius-lg);padding:var(--space-6);display:flex;flex-direction:column;gap:var(--space-1);transition:border-color var(--dur-base) ease,box-shadow var(--dur-base) ease,transform .14s ease-out}.stat-card:hover{border-color:var(--clr-accent);box-shadow:0 0 20px var(--clr-accent-dim)}.stat-card.stat-card--highlight:hover{border-color:#00d4aa4d;box-shadow:none}.stat-card.stat-card--tagline:hover{border-color:#00d4aa38;box-shadow:none}.stat-head{display:flex;flex-direction:row;align-items:baseline;flex-wrap:nowrap}.stat-value{font-family:var(--font-mono);font-size:var(--size-3xl);font-weight:700;color:var(--clr-text);line-height:1}.stat-suffix{font-family:var(--font-mono);font-size:var(--size-2xl);font-weight:700;color:var(--clr-text);line-height:1}.stat-value--done,.stat-suffix--done{animation:metric-land .6s var(--ease-out-expo) forwards}.stat-label{font-size:var(--size-sm);color:var(--clr-text-muted);margin-top:var(--space-2)}#experience{background:var(--clr-bg-surface)}.timeline{display:flex;flex-direction:column;gap:0}.timeline-item{display:grid;grid-template-columns:28px 1fr;gap:var(--space-6);position:relative}.timeline-item+.timeline-item{margin-top:var(--space-12)}.timeline-marker{display:flex;flex-direction:column;align-items:center;padding-top:6px}.tm-dot{width:12px;height:12px;border-radius:50%;background:var(--clr-border);border:2px solid var(--clr-bg-surface);flex-shrink:0;transition:background var(--dur-base) ease,box-shadow var(--dur-base) ease;z-index:1}.timeline-item:hover .tm-dot{background:var(--clr-accent);box-shadow:0 0 12px var(--clr-accent-glow)}.tm-line{flex:1;width:1px;background:var(--clr-border);margin-top:4px}.timeline-item:last-child .tm-line{display:none}.timeline-content{padding-bottom:var(--space-12)}.timeline-item:last-child .timeline-content{padding-bottom:0}.tc-header{margin-bottom:var(--space-4)}.tc-company{font-size:var(--size-lg);font-weight:700;color:var(--clr-text);margin-bottom:var(--space-1)}.tc-meta{display:flex;align-items:baseline;gap:var(--space-4);flex-wrap:wrap}.tc-title{font-size:var(--size-sm);color:var(--clr-accent);font-family:var(--font-mono)}.tc-period{font-size:var(--size-sm);color:var(--clr-text-muted);font-family:var(--font-mono);margin-left:auto}.tc-bullets{margin-bottom:var(--space-4);display:flex;flex-direction:column;gap:var(--space-2)}.tc-bullets li{font-size:var(--size-sm);color:var(--clr-text-muted);padding-left:var(--space-4);position:relative;line-height:1.6}.tc-bullets li:before{content:"▸";position:absolute;left:0;color:var(--clr-accent);font-size:.6rem;top:.2em}.tc-metrics{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-3)}.metric-pill{font-family:var(--font-mono);font-size:.7rem;padding:2px 10px;border-radius:99px;background:var(--clr-accent-dim);border:1px solid rgba(0,212,170,.3);color:var(--clr-accent);transition:transform .14s ease-out}.tc-tech{display:flex;flex-wrap:wrap;gap:var(--space-2)}.tech-tag{font-family:var(--font-mono);font-size:.7rem;padding:2px 8px;border-radius:var(--radius-sm);background:var(--clr-bg-elevated);border:1px solid var(--clr-border);color:var(--clr-text-muted);transition:transform .14s ease-out}#skills{background:var(--clr-bg)}.skills-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--space-8)}.skill-category{display:flex;flex-direction:column;gap:var(--space-4)}.sc-name{font-family:var(--font-mono);font-size:var(--size-sm);color:var(--clr-accent);text-transform:uppercase;letter-spacing:.1em;padding-bottom:var(--space-2);border-bottom:1px solid var(--clr-border)}.sc-tags{display:flex;flex-wrap:wrap;gap:var(--space-2)}.skill-tag{font-family:var(--font-mono);font-size:.75rem;padding:var(--space-1) var(--space-3);border-radius:var(--radius-sm);background:var(--clr-bg-surface);border:1px solid var(--clr-border);color:var(--clr-text-muted);cursor:default;transition:border-color var(--dur-fast) ease,background var(--dur-fast) ease,color var(--dur-fast) ease}.skill-tag--primary{border-color:#00d4aa80;color:var(--clr-accent);background:var(--clr-accent-dim);font-weight:700}.skill-category.is-visible .skill-tag{animation:tag-pop var(--dur-base) var(--ease-out-expo) both;animation-delay:var(--tag-delay, 0ms)}#projects{background:var(--clr-bg-surface)}.projects-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--space-6)}.project-card{background:var(--clr-bg);border:1px solid var(--clr-border);border-radius:var(--radius-lg);padding:var(--space-8);display:flex;flex-direction:column;gap:var(--space-4);transition:border-color var(--dur-base) ease,box-shadow var(--dur-base) ease,transform var(--dur-base) var(--ease-out-quart)}.project-card:hover{border-color:var(--clr-border);transform:translateY(-4px);box-shadow:0 20px 40px #0006}.project-card--featured{border-color:#00d4aa4d;background:linear-gradient(135deg,var(--clr-bg) 0%,rgba(0,212,170,.04) 100%)}.project-card--featured:hover{border-color:#00d4aa4d;transform:translateY(-4px);box-shadow:0 20px 40px #0006}.pc-header{display:flex;flex-direction:column;gap:var(--space-2)}.pc-badge{font-family:var(--font-mono);font-size:.7rem;color:var(--clr-accent);background:var(--clr-accent-dim);border:1px solid rgba(0,212,170,.3);padding:2px 10px;border-radius:99px;display:inline-block;width:fit-content;transition:transform .14s ease-out}.pc-name{font-size:var(--size-lg);font-weight:700;color:var(--clr-text)}.pc-desc{font-size:var(--size-sm);color:var(--clr-text-muted);line-height:1.7;flex:1}.pc-achievement{font-family:var(--font-mono);font-size:var(--size-sm);color:var(--clr-accent);padding:var(--space-2) var(--space-4);background:var(--clr-accent-dim);border-radius:var(--radius-sm);border-left:2px solid var(--clr-accent)}.pc-tech{display:flex;flex-wrap:wrap;gap:var(--space-2)}#contact{background:var(--clr-bg)}.contact-inner{max-width:640px}.contact-sub{font-size:var(--size-lg);color:var(--clr-text-muted);margin-bottom:var(--space-8)}.contact-links{display:flex;flex-direction:column;gap:var(--space-3)}.contact-link{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-6);background:var(--clr-bg-surface);border:1px solid var(--clr-border);border-radius:var(--radius);transition:border-color var(--dur-fast) ease,box-shadow var(--dur-base) ease,transform var(--dur-fast) var(--ease-out-quart)}.contact-link:hover{border-color:var(--clr-accent);box-shadow:0 0 20px var(--clr-accent-dim);transform:translate(4px)}.cl-label{font-family:var(--font-mono);font-size:var(--size-sm);color:var(--clr-accent);width:72px;flex-shrink:0}.cl-value{flex:1;min-width:0;font-size:var(--size-sm);color:var(--clr-text-muted);transition:color var(--dur-fast) ease;overflow:hidden;text-overflow:ellipsis}.contact-link:hover .cl-value{color:var(--clr-text)}.contact-link__ext{flex-shrink:0;margin-left:auto;font-family:var(--font-mono);font-size:.9rem;line-height:1;color:var(--clr-accent);opacity:.5;transition:opacity var(--dur-fast) ease}.contact-link:hover .contact-link__ext{opacity:1}footer{position:relative;z-index:1;border-top:1px solid var(--clr-border);padding:var(--space-8) 0}.footer-inner{max-width:var(--content-max);margin:0 auto;padding:0 var(--space-8);display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap}.footer-mono{font-family:var(--font-mono);font-size:var(--size-sm);color:var(--clr-text-muted)}.footer-copy{font-size:var(--size-sm);color:var(--clr-text-muted)}@media(max-width:900px){.hero-content{grid-template-columns:1fr;gap:var(--space-12);padding-top:calc(var(--nav-h) + var(--space-16));padding-bottom:var(--space-16)}.about-grid{grid-template-columns:1fr;gap:var(--space-8)}.about-stats{justify-self:center;max-width:22rem}}@media(max-width:768px){.nav-links{position:fixed;top:var(--nav-h);left:0;right:0;background:#070810f7;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);flex-direction:column;align-items:center;gap:var(--space-6);padding:var(--space-8) 0;border-bottom:1px solid var(--clr-border);transform:translateY(-100%);opacity:0;pointer-events:none;transition:transform var(--dur-base) var(--ease-out-expo),opacity var(--dur-base) ease}.nav-links.nav-links--open{transform:translateY(0);opacity:1;pointer-events:all}.nav-hamburger{display:flex}.terminal-window{font-size:.72rem;--terminal-line-px: 1.188rem }.hero-content>.terminal-window{height:min(var(--terminal-fit-h),min(400px,85vh));max-height:min(400px,85vh)}.timeline-item{grid-template-columns:20px 1fr;gap:var(--space-4)}}@media(max-width:480px){.hero-content{padding-left:var(--space-4);padding-right:var(--space-4)}.hero-text{--hero-cube-size: 62px}.hero-cube-scene--corner{padding:14px;margin:-14px}.section-container{padding:0 var(--space-4)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.hero-text-parallax{transform:none!important;will-change:auto}#hero-name{animation:none!important;transform:none!important;opacity:1!important;filter:none!important}.hero-content--visible>.hero-text{will-change:auto}[data-parallax]{will-change:auto}[data-observe]{opacity:1;transform:none;transition:none}.skill-category.is-visible .skill-tag{animation:none;opacity:1}}.terminal-window--snake .terminal-input-row{display:none}.terminal-body--snake{padding:0;overflow:hidden;display:flex;flex-direction:column;cursor:default;min-height:0}.term-snake-stack{display:flex;flex-direction:column;flex:1 1 0;min-height:0;width:100%}.term-snake-canvas{flex:1 1 0;width:100%;min-height:0;display:block;touch-action:none}@media(pointer:coarse){.term-snake-canvas{min-height:64px}}.term-snake-touch-pad{display:flex;flex-direction:column;align-items:stretch;padding:4px 6px 6px;border-top:1px solid var(--clr-border);background:#161b26;flex-shrink:0;max-height:min(120px,30vh);box-sizing:border-box}.term-snake-touch-pad-inner{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;width:100%;min-width:0}.term-snake-dpad{user-select:none;-webkit-tap-highlight-color:transparent}.term-snake-dpad-grid{grid-column:2;justify-self:center;display:grid;grid-template-columns:repeat(3,36px);grid-template-rows:repeat(2,36px);gap:4px 6px;place-items:center}.term-snake-dpad--left{grid-column:1;grid-row:1}.term-snake-dpad--up{grid-column:2;grid-row:1}.term-snake-dpad--right{grid-column:3;grid-row:1}.term-snake-dpad--down{grid-column:2;grid-row:2}.term-snake-btn{box-sizing:border-box;min-width:36px;width:36px;min-height:36px;height:36px;padding:0;font-family:var(--font-mono);font-size:.8rem;line-height:1;color:var(--clr-text);background:var(--clr-bg-surface);border:1px solid var(--clr-border);border-radius:var(--radius);cursor:pointer;transition:background var(--dur-fast) ease,border-color var(--dur-fast) ease}.term-snake-btn:active{background:var(--clr-border)}.term-snake-exit{box-sizing:border-box;grid-column:1;justify-self:start;min-height:32px;padding:4px 10px;font-family:var(--font-mono);font-size:.72rem;color:var(--clr-text-muted);background:transparent;border:1px solid var(--clr-border);border-radius:var(--radius);cursor:pointer;transition:color var(--dur-fast) ease,border-color var(--dur-fast) ease}.term-snake-exit:active{color:var(--clr-accent);border-color:var(--clr-accent)}
