:root{--bg: #1F1F28;--bg-dim: #16161D;--bg-highlight: #2A2A37;--fg: #DCD7BA;--fg-dim: #727169;--fg-muted: #54546D;--accent: #7E9CD8;--green: #98BB6C;--yellow: #E6C384;--orange: #FF9E3B;--pink: #D27E99;--red: #C34043;--teal: #6A9589;--border: #2A2A37;--terminal-fg: #5A5A7A;--terminal-prompt: #6A6A8F;--font-mono: "JetBrains Mono", "Fira Code", monospace;--font-sans: "Inter", system-ui, sans-serif;--max-w: 780px;--section-gap: 8rem}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--fg);font-family:var(--font-sans);font-size:16px;line-height:1.7;min-height:100vh;overflow-x:hidden}a{color:var(--orange);text-decoration:none;transition:color .15s}a:hover{color:var(--yellow)}ul{list-style:none}.term-panel{position:fixed;z-index:0;pointer-events:none;font-family:var(--font-mono);font-size:13px;line-height:1.6;overflow:hidden}#terminal-bg{inset:0;padding:2rem}#terminal-right{display:none;padding:2rem 1.5rem}.term-line{white-space:pre;overflow:hidden}.term-prompt{color:var(--terminal-prompt)}.term-output{color:var(--terminal-fg)}.term-comment{color:var(--fg-muted);opacity:.6}.term-error{color:var(--red);opacity:.5}.term-blank{height:1lh}.term-cursor{color:var(--terminal-prompt);animation:blink 1.06s step-end infinite}@keyframes blink{50%{opacity:0}}#content{position:relative;z-index:1}section{min-height:100vh;display:flex;flex-direction:column;justify-content:center;padding:6rem 2rem}.section-inner{max-width:var(--max-w);margin:0 auto;width:100%;background:#1f1f28d1;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);border-radius:16px;padding:2.5rem}.section-header{display:flex;align-items:baseline;gap:1.5rem;margin-bottom:2.5rem}.section-title{font-family:var(--font-mono);font-size:.875rem;font-weight:500;color:var(--accent);text-transform:lowercase;letter-spacing:.08em;margin-bottom:2.5rem}.section-header .section-title{margin-bottom:0}.view-toggle,.lang-toggle{display:flex;align-items:center;gap:.35rem;font-family:var(--font-mono);font-size:.75rem}.toggle-btn{background:none;border:none;color:var(--fg-muted);cursor:pointer;padding:.1rem .3rem;font-family:inherit;font-size:inherit;transition:color .15s}.toggle-btn:hover{color:var(--fg)}.toggle-btn.active{color:var(--accent)}.toggle-sep{color:var(--fg-muted)}#hero{min-height:100vh;justify-content:center}.hero-eyebrow{font-family:var(--font-mono);font-size:.875rem;color:var(--fg-dim);margin-bottom:.5rem}.hero-name{font-size:clamp(2.5rem,8vw,5rem);font-weight:600;color:var(--fg);line-height:1.1;letter-spacing:-.02em;margin-bottom:1rem}.hero-tagline{font-family:var(--font-mono);font-size:clamp(.95rem,2.5vw,1.15rem);color:var(--fg-dim);margin-bottom:.75rem;min-height:1.6em}.hero-hero{color:var(--accent)}.hero-subtitle{font-size:1rem;color:var(--fg-muted);margin-bottom:3rem}.hero-nav{display:flex;gap:2rem;flex-wrap:wrap;font-family:var(--font-mono);font-size:.875rem}.hero-nav a{color:var(--fg-dim);position:relative}.hero-nav a:after{content:"";position:absolute;bottom:-2px;left:0;width:0;height:1px;background:var(--orange);transition:width .2s}.hero-nav a:hover{color:var(--orange)}.hero-nav a:hover:after{width:100%}@media(max-width:639px){.hero-nav{flex-direction:column;gap:0;margin-top:.5rem}.hero-nav a{display:flex;align-items:center;gap:.6rem;padding:.7rem 0;border-bottom:1px solid var(--border);color:var(--fg-dim);font-size:1rem}.hero-nav a:first-child{border-top:1px solid var(--border)}.hero-nav a:before{content:"❯";color:var(--accent);font-size:.75rem;transition:color .15s,transform .15s}.hero-nav a:after{display:none}.hero-nav a:hover,.hero-nav a:active{color:var(--orange)}.hero-nav a:hover:before,.hero-nav a:active:before{color:var(--orange);transform:translate(3px)}}.about-text{font-size:1.05rem;line-height:1.8;color:var(--fg);max-width:60ch}.projects-term{font-family:var(--font-mono);font-size:.875rem;line-height:1.8}.projects-term .term-prompt{color:var(--accent);margin-bottom:.25rem}.project-list-item{display:flex;flex-direction:column;gap:.15rem;color:var(--fg);padding:.45rem .75rem .45rem .5rem;margin-bottom:.5rem;text-decoration:none;cursor:pointer;position:relative;clip-path:polygon(0 0,100% 0,100% 100%,0 100%);transition:clip-path .15s ease,background .15s ease}a.project-list-item:hover,a.project-list-item:focus-visible{background:linear-gradient(100deg,color-mix(in srgb,var(--accent) 12%,transparent),color-mix(in srgb,var(--accent) 4%,transparent));clip-path:polygon(10px 0,100% 0,calc(100% - 10px) 100%,0 100%);outline:none}a.project-list-item:hover .ls-name{color:var(--orange)}a.project-list-item:hover .ls-arrow{opacity:1}.project-list-item.no-link{cursor:default}.ls-row1{display:flex;align-items:baseline;gap:.75rem}.ls-row2{display:flex;align-items:baseline;gap:.75rem;flex-wrap:wrap}.ls-indent{display:inline-block;width:110px;flex-shrink:0}.ls-perms{color:var(--fg-muted);font-size:.78rem}.ls-name{color:var(--accent);font-weight:500}.ls-desc{color:var(--fg-dim);font-size:.82rem;flex:1;min-width:0}.ls-stack{display:flex;gap:.35rem;flex-wrap:wrap}.ls-tag{color:var(--green);font-size:.72rem;background:color-mix(in srgb,var(--green) 10%,transparent);padding:.05rem .35rem;border-radius:2px}.ls-arrow{color:var(--orange);font-size:.85rem;opacity:.4;transition:opacity .15s;margin-left:auto}.resume-body{display:grid;grid-template-columns:1fr 220px;gap:3rem}.resume-section-title{font-family:var(--font-mono);font-size:.75rem;font-weight:500;color:var(--accent);text-transform:uppercase;letter-spacing:.1em;border-bottom:1px solid var(--border);padding-bottom:.4rem;margin-bottom:1.25rem}.job{margin-bottom:2rem}.job-header{display:flex;flex-wrap:wrap;align-items:baseline;gap:.5rem 1rem;margin-bottom:.5rem}.job-company{font-weight:600;color:var(--yellow)}.job-role{color:var(--fg);font-size:.9rem}.job-period{font-family:var(--font-mono);font-size:.75rem;color:var(--fg-muted);margin-left:auto}.job-bullets{padding-left:1rem}.job-bullets li{font-size:.875rem;color:var(--fg-dim);margin-bottom:.25rem;list-style:disc;list-style-color:var(--fg-muted)}.resume-education{margin-top:2.5rem}.edu-item{margin-bottom:1.25rem}.edu-header{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;flex-wrap:wrap}.edu-institution{font-weight:600;color:var(--fg);font-size:.9rem}.edu-period{font-family:var(--font-mono);font-size:.75rem;color:var(--fg-muted)}.edu-degree{font-size:.875rem;color:var(--fg-dim);margin-top:.2rem}.edu-note{font-size:.8rem;color:var(--fg-muted);margin-top:.1rem}.skill-group{margin-bottom:1.25rem}.skill-label{font-family:var(--font-mono);font-size:.75rem;color:var(--fg-dim);margin-bottom:.35rem}.skill-items{display:flex;flex-wrap:wrap;gap:.3rem}.skill-items li{font-size:.78rem;color:var(--green);background:#98bb6c12;border:1px solid rgba(152,187,108,.18);border-radius:3px;padding:.1rem .45rem;font-family:var(--font-mono)}.contact-lead{font-size:1.25rem;color:var(--fg-dim);margin-bottom:2rem}.contact-links{display:flex;flex-direction:column;gap:1rem}.contact-link{display:flex;align-items:center;gap:1.5rem;font-family:var(--font-mono);color:var(--fg);padding:1rem 1.25rem;background:var(--bg-highlight);border:1px solid var(--border);border-radius:6px;transition:border-color .2s,transform .15s;max-width:420px}.contact-link:hover{color:var(--fg);border-color:var(--orange);transform:translate(4px)}.contact-link-label{font-size:.75rem;color:var(--fg-muted);min-width:50px}.contact-link-value{font-size:.9rem;color:var(--orange)}.site-footer{padding:2rem;text-align:center;font-family:var(--font-mono);font-size:.75rem;color:var(--fg-muted);border-top:1px solid var(--border)}@media(max-width:639px){#terminal-bg{inset:0;padding:1rem 1.25rem}#content{padding-bottom:0}.section-inner{background:#1f1f28d1;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}#about .section-inner,#projects .section-inner,#resume .section-inner,#contact .section-inner{clip-path:none;border-radius:0}section{padding:4rem 1.25rem}.resume-body{grid-template-columns:1fr;gap:2rem}.job-period{margin-left:0}}@media(min-width:1400px){#terminal-bg{right:auto;width:calc(50vw - var(--max-w) / 2 + 200px);padding:2rem 2rem 2rem 2.5rem}#terminal-right{display:block;inset:0 0 0 auto;width:calc(50vw - var(--max-w) / 2 + 200px);padding:2rem 2.5rem 2rem 2rem}}.term-block{background:var(--bg-dim);border:1px solid var(--border);border-radius:6px;padding:1.25rem 1.5rem}#lang-toggle{position:fixed;top:1.25rem;right:1.5rem;z-index:10;display:flex;align-items:center;gap:.35rem;font-family:var(--font-mono);font-size:.75rem;background:#1f1f28d9;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);border:1px solid var(--border);border-radius:4px;padding:.3rem .6rem}.term-loading-dots{display:inline-block;min-width:1.5ch;color:var(--terminal-fg)}
