: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;--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}html.booting,html.booting body{height:100%;overflow:hidden}html.booting #nav{pointer-events:none;opacity:.35}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;transform:scale(.85) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}#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;display:grid;grid-template-columns:1fr 1fr;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}.hero-content--visible>.hero-text{animation:fade-up var(--dur-slow) var(--ease-out-expo) both;backface-visibility:hidden;will-change:transform,opacity}.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}h1#hero-name{font-family:var(--font-display);font-size:var(--size-4xl);font-weight:700;line-height:1.1;letter-spacing:-.02em;margin-bottom:var(--space-3);background:linear-gradient(135deg,var(--clr-text) 40%,var(--clr-accent));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.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:var(--size-lg);color:var(--clr-text-muted);margin-bottom:var(--space-6)}.hero-badges{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-8)}.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{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{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;height:360px;max-height:360px;min-height:0;box-shadow:0 32px 64px #0009,0 0 0 1px var(--clr-border),0 0 40px var(--clr-accent-dim)}.terminal-titlebar{background:#161b26;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}#about{background:var(--clr-bg)}.about-grid{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--space-16);align-items:start}.about-text p{font-size:var(--size-lg);color:var(--clr-text-muted);line-height:1.8}.about-stats{display:flex;justify-content:flex-end}.stat-card--highlight{border-color:#00d4aa4d;background:linear-gradient(135deg,var(--clr-bg-surface) 0%,rgba(0,212,170,.05) 100%)}.stat-card--highlight:hover{border-color:var(--clr-accent)}.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}.stat-card:hover{border-color:var(--clr-accent);box-shadow:0 0 20px var(--clr-accent-dim)}.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)}.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)}#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:var(--size-sm);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);transition:border-color var(--dur-fast) ease,color var(--dur-fast) ease,box-shadow var(--dur-base) ease;cursor:default}.skill-tag:hover{border-color:var(--clr-accent);color:var(--clr-text)}.skill-tag--primary{border-color:#00d4aa66;color:var(--clr-accent);background:var(--clr-accent-dim)}.skill-tag--primary:hover{box-shadow:0 0 12px var(--clr-accent-dim)}.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:var(--clr-accent);box-shadow:0 20px 40px #0006,0 0 30px var(--clr-accent-dim)}.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}.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{font-size:var(--size-sm);color:var(--clr-text-muted);transition:color var(--dur-fast) ease}.contact-link:hover .cl-value{color:var(--clr-text)}footer{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)}}@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{height:260px;max-height:260px;font-size:.72rem}.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)}.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-content--visible>.hero-text{will-change:auto}[data-observe]{opacity:1;transform:none;transition:none}.skill-category.is-visible .skill-tag{animation:none;opacity:1}}
