:root{--color-bg:#fcfcfc;--color-bg-secondary:#f2f0ed;--color-bg-tertiary:#e8e5e0;--color-text:#1a1917;--color-text-muted:#857f74;--color-text-faint:#b0a99f;--accent:#003b6f;--accent-mid:#6d98ba;--accent-light:#c8dcf0;--color-border:#e0ddd8;--color-border-strong:#c5c0ba;--font-display:"Fraunces", Georgia, serif;--font-body:"Outfit", system-ui, sans-serif;--font-mono:"Courier New", "Consolas", monospace;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:80px;--max-width:1250px;--nav-height:60px;--transition-fast:.15s ease;--transition-base:.25s ease}[data-theme=dark]{--color-bg:#0f1117;--color-bg-secondary:#1a1d24;--color-bg-tertiary:#232731;--color-text:#fcfcfc;--color-text-muted:#9aadbf;--color-text-faint:#5c6b7a;--accent:#6d98ba;--accent-mid:#9aadbf;--accent-light:#1e3448;--color-border:#2a2f3a;--color-border-strong:#3d4556}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;font-size:16px}body{font-family:var(--font-body);background-color:var(--color-bg);color:var(--color-text);transition:background-color var(--transition-base), color var(--transition-base);scrollbar-gutter:stable;line-height:1.7}.container,.hero,.skills,.projects,.contact,.footer-container{width:100%;max-width:var(--max-width);padding-left:var(--space-6);padding-right:var(--space-6);box-sizing:border-box;margin:0 auto}.section-eyebrow{font-family:var(--font-display);color:var(--color-text);margin-top:0;margin-bottom:var(--space-6);border-bottom:1px solid var(--color-border);padding-bottom:var(--space-2);min-width:150px;font-size:1.5rem;font-style:italic;font-weight:300;display:inline-block}.hero{padding-top:calc(var(--nav-height) + var(--space-8));padding-bottom:var(--space-8)}.skills{padding-top:var(--space-8);padding-bottom:var(--space-8)}.projects{padding-top:var(--space-8);padding-bottom:var(--space-8);flex-direction:column;display:flex}@media (width<=768px){.container,.hero,.skills,.projects,.contact,.footer-container{padding-left:var(--space-4);padding-right:var(--space-4)}.hero{padding-top:calc(var(--nav-height) + var(--space-5))}}.logo{font-family:Fraunces}.logo-first{font-weight:300}.logo-last{font-weight:500}nav{width:100%;height:var(--nav-height);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:color-mix(in srgb, var(--color-bg) 80%, transparent);border-bottom:1px solid var(--color-border);z-index:100;padding:0 var(--space-5);justify-content:space-between;align-items:center;display:flex;position:fixed;top:0}.nav-links{letter-spacing:.1em;text-transform:uppercase;align-items:center;gap:var(--space-5);justify-content:center;font-family:Outfit,sans-serif;font-size:13px;list-style:none;display:flex}.nav-links a{color:var(--color-text-muted);transition:color var(--transition-fast);text-decoration:none}.nav-links a:hover{color:var(--color-text)}.nav-links a.active{color:var(--accent)}.theme-toggle{cursor:pointer;color:var(--color-text-muted);padding:var(--space-1);border-radius:var(--radius-sm);transition:color var(--transition-fast);background:0 0;border:none;align-items:center;display:flex}.theme-toggle:hover{color:var(--color-text)}.hero{min-height:auto;padding-top:calc(var(--nav-height) + var(--space-8));padding-bottom:var(--space-8);box-sizing:border-box;align-items:center;width:100%;display:flex}.hero-content-wrapper{gap:var(--space-8);grid-template-columns:1.4fr 1fr;align-items:center;width:100%;display:grid}.hero-eyebrow{letter-spacing:.15em;text-transform:uppercase;color:var(--color-text-muted);margin-bottom:var(--space-4);font-size:12px}.hero-name{font-family:var(--font-display);margin-bottom:var(--space-3);font-size:clamp(36px,6vw,72px);font-weight:300;line-height:1.1}.hero-subtitle{color:var(--color-text-muted);margin-bottom:var(--space-5);font-size:clamp(16px,2.5vw,24px);font-weight:300}.hero-bio{color:var(--color-text-muted);margin-bottom:var(--space-6);max-width:750px;font-size:17px;line-height:1.8}.hero-links{gap:var(--space-4);margin-bottom:var(--space-4);flex-wrap:wrap;align-items:center;display:flex}.hero-link{align-items:center;gap:var(--space-2);font-size:13px;font-family:var(--font-body);letter-spacing:.05em;color:var(--color-text-muted);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:var(--space-2) var(--space-4);transition:all var(--transition-fast);display:inline-flex}.hero-link:hover{color:var(--color-text);border-color:var(--color-border-strong);background-color:var(--color-bg-secondary)}.terminal{border-radius:var(--radius-lg);border:1px solid var(--color-border);background:var(--color-bg-secondary);font-family:var(--font-mono);width:100%;font-size:12px;overflow:hidden}.terminal-bar{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);background:var(--color-bg-tertiary);border-bottom:1px solid var(--color-border);display:flex}.terminal-dot{border-radius:50%;width:10px;height:10px}.dot-red{background:#ff5f57}.dot-yellow{background:#ffbd2e}.dot-green{background:#28ca41}.terminal-filename{font-family:var(--font-body);color:var(--color-text-muted);margin-left:var(--space-2);font-size:11px}.terminal-body{padding:var(--space-4);color:var(--color-text-muted);white-space:pre;line-height:1.8;overflow-x:auto}.terminal-cursor{color:var(--accent-mid);animation:1s step-end infinite blink;display:inline-block}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.hero-cta{align-items:center;gap:var(--space-2);margin-top:var(--space-5);color:var(--accent);letter-spacing:.05em;transition:color var(--transition-fast);font-size:13px;display:inline-flex}.hero-cta:hover{color:var(--accent-mid)}@media (width<=960px){.hero-content-wrapper{gap:var(--space-6);grid-template-columns:1fr}}.skills{max-width:var(--max-width);padding:var(--space-8) var(--space-6);border-top:1px solid var(--color-border);margin:0 auto}.skills-grid{gap:var(--space-5);grid-template-columns:repeat(auto-fit,minmax(300px,1fr));align-items:stretch;display:grid}.skill-card{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-5);transition:all var(--transition-fast);border-top:3px solid var(--color-accent-mid);padding-top:var(--space-4)}.skill-card:hover{border-color:var(--color-accent-mid);transform:translateY(-2px)}.skill-label{font-family:var(--font-display);color:var(--color-text);font-weight:600}.skill-list{gap:var(--space-2);margin-top:var(--space-3);flex-wrap:wrap;list-style:none;display:flex}.skill-list li{font-size:12px;font-family:var(--font-body);color:var(--color-text);background:var(--color-bg-tertiary);border:1px solid var(--color-border);white-space:nowrap;border-radius:4px;padding:4px 10px}@media (width<=768px){.skills-grid{gap:var(--space-4);grid-template-columns:1fr}.skills{padding:var(--space-8) var(--space-4)}}.projects{max-width:var(--max-width);padding:var(--space-8) var(--space-5);flex-direction:column;width:100%;margin:0 auto;display:flex}.projects .section-eyebrow{font-family:var(--font-display);color:var(--color-text);border-bottom:1px solid var(--color-border);padding-bottom:var(--space-2);align-self:flex-start;min-width:150px;margin:0;font-size:1.5rem;font-style:italic;font-weight:300;display:inline-block}.projects-header-group{margin-top:var(--space-5);margin-bottom:var(--space-6);flex-direction:column;display:flex}.filter-bar{justify-content:flex-start;gap:var(--space-2);flex-wrap:wrap;padding:0;display:flex}.filter-pill{font-family:var(--font-body);color:var(--color-text-muted);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-xl);cursor:pointer;transition:all var(--transition-fast);padding:6px 14px;font-size:12px}.filter-pill:hover,.filter-pill.active{color:var(--color-text);border-color:var(--color-border-strong)}.filter-pill.active{background:var(--color-bg-tertiary)}.project-grid{gap:var(--space-5);grid-template-columns:repeat(3,1fr);align-items:stretch;display:grid}.project-card{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-6);transition:all var(--transition-fast);flex-direction:column;display:flex}.project-card.featured{border-left:4px solid var(--accent);background:var(--color-bg-tertiary)}.project-card:hover{border-color:var(--color-border-strong);transform:translateY(-2px)}.card-header{gap:var(--space-1);flex-direction:column;display:flex}.project-title{font-family:var(--font-display);color:var(--color-text);font-size:1.3rem;font-weight:500;line-height:1.2}.project-year{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.1em;font-size:11px}.project-description{font-family:var(--font-body);color:var(--color-text-muted);margin:var(--space-4) 0;flex-grow:1;font-size:14px;line-height:1.6}.project-stats{gap:var(--space-2);margin-bottom:var(--space-4);padding:var(--space-3) var(--space-4);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);grid-template-columns:1fr 1fr;display:grid}[data-theme=dark] .project-stats{background:#00000026}.stat-value{font-family:var(--font-body);color:var(--color-text);font-size:14px;font-weight:500;display:block}.stat-label{color:var(--color-text-muted);font-size:11px}.tech-stack{gap:var(--space-2);margin-bottom:var(--space-5);flex-wrap:wrap;display:flex}.tech-pill{background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-muted);padding:2px 8px;font-size:11px}.project-links{align-items:center;gap:var(--space-4);border-top:1px solid var(--color-border);padding-top:var(--space-4);margin-top:auto;display:flex}.project-link{color:var(--color-text-muted);transition:color var(--transition-fast);align-items:center;gap:6px;font-size:12px;text-decoration:none;display:flex}.project-link:hover{color:var(--color-text)}.internal-lock{color:var(--color-text-faint);font-size:11px;font-style:italic}@media (width<=1100px){.project-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=768px){.project-grid{grid-template-columns:1fr}.projects{padding:var(--space-6) var(--space-4)}}.contact{max-width:var(--max-width);padding:var(--space-8) var(--space-6);flex-direction:column;width:100%;margin:0 auto;display:flex}.contact-container{gap:var(--space-8);margin-top:var(--space-4);grid-template-columns:1fr 1.2fr;align-items:flex-start;display:grid}.contact-title{font-family:var(--font-display);color:var(--color-text);margin-bottom:var(--space-4);font-size:2.2rem;font-weight:400;line-height:1.2}.contact-text{font-family:var(--font-body);color:var(--color-text-muted);margin-bottom:var(--space-5);max-width:480px;font-size:16px;line-height:1.7}.contact-method{align-items:center;gap:var(--space-3);display:flex}.contact-email{font-family:var(--font-mono);color:var(--color-text);transition:border-color var(--transition-fast);border-bottom:1px solid #0000;font-size:13px;text-decoration:none}.contact-email:hover{border-color:var(--accent)}.contact-form{gap:var(--space-4);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-7);flex-direction:column;max-width:650px;display:flex}.form-group{gap:var(--space-2);flex-direction:column;display:flex}.form-group label{font-family:var(--font-body);text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);font-size:12px;font-weight:500}.form-group input,.form-group textarea{font-family:var(--font-body);background:var(--color-bg);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3);transition:all var(--transition-fast);width:100%;font-size:14px}.form-group input:focus,.form-group textarea:focus{border-color:var(--accent-mid);outline:none}.form-group input:disabled,.form-group textarea:disabled{opacity:.6;cursor:not-allowed}.submit-btn{justify-content:center;align-items:center;gap:var(--space-2);font-family:var(--font-body);color:var(--color-bg);background:var(--accent);border:1px solid var(--accent);border-radius:var(--radius-md);padding:var(--space-3) var(--space-5);cursor:pointer;transition:all var(--transition-fast);margin-top:var(--space-2);font-size:13px;font-weight:500;display:inline-flex}.submit-btn:hover{background:var(--accent-mid);border-color:var(--accent-mid)}.submit-btn:disabled{opacity:.5;cursor:wait}.form-status{gap:var(--space-4);padding:var(--space-5);border-radius:var(--radius-lg);font-family:var(--font-body);font-size:14px;display:flex}.form-status.success{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-top:4px solid #2d6a4f;flex-direction:column;align-items:flex-start}.reset-status-btn{color:var(--accent);cursor:pointer;margin-top:var(--space-2);background:0 0;border:none;padding:0;font-size:13px;text-decoration:underline}@media (width<=900px){.contact-container{gap:var(--space-6);grid-template-columns:1fr}.contact-text,.contact-form{max-width:100%}}.footer{border-top:1px solid var(--color-border);background:var(--color-bg);width:100%;margin-top:var(--space-8)}.footer-container{max-width:var(--max-width);padding:var(--space-6) var(--space-5);box-sizing:border-box;justify-content:space-between;align-items:center;margin:0 auto;display:flex}.footer-copyright{font-family:var(--font-body);color:var(--color-text-muted);font-size:13px}.footer-links{gap:var(--space-4);align-items:center;display:flex}.footer-link{color:var(--color-text-muted);transition:color var(--transition-fast);align-items:center;display:inline-flex}.footer-link:hover{color:var(--color-text)}@media (width<=768px){.footer-container{gap:var(--space-4);text-align:center;padding:var(--space-5) var(--space-4);flex-direction:column}}
