:root{--bg-primary: #0d0f14;--bg-surface: rgba(255, 255, 255, .01);--bg-surface-hover: rgba(106, 159, 199, .04);--text-primary: #e2e4e9;--text-secondary: rgba(212, 216, 224, .82);--text-tertiary: rgba(212, 216, 224, .58);--text-muted: rgba(212, 216, 224, .42);--text-ghost: rgba(212, 216, 224, .24);--accent-blue: #6a9fc7;--accent-blue-dim: rgba(106, 159, 199, .15);--accent-blue-glow: rgba(106, 159, 199, .3);--accent-purple: #8b7ec7;--accent-amber: #c77a6a;--accent-gold: #d4a857;--accent-warm: #c7a86a;--border-subtle: rgba(150, 160, 176, .13);--border-faint: rgba(150, 160, 176, .09);--border-hover: rgba(150, 160, 176, .24);--font-display: "Playfair Display", Georgia, serif;--font-body: "Source Serif 4", Georgia, serif;--font-mono: "JetBrains Mono", "Fira Code", monospace;--page-max-width: 1120px;--page-padding: 40px;--page-top: 120px;--page-bottom: 80px}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{background-color:var(--bg-primary);color:var(--text-primary);font-family:var(--font-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::selection{background:var(--accent-blue-glow);color:var(--text-primary)}a{color:inherit;text-decoration:none}.site-nav{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px var(--page-padding);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background-color:#0d0f14b3;border-bottom:1px solid var(--border-subtle)}.site-nav-brand{font-family:var(--font-display);font-size:18px;color:var(--text-primary);font-weight:600;letter-spacing:0;white-space:nowrap}.site-nav-links{display:flex;gap:32px;align-items:center}.site-nav-link{font-family:var(--font-mono);font-size:12px;text-transform:uppercase;letter-spacing:.1em;padding-bottom:2px;transition:color .2s;white-space:nowrap}.home-title{font-size:64px;letter-spacing:0}.home-metrics{display:flex;gap:48px;flex-wrap:wrap}.pill-button{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:10px 18px;border:1px solid var(--accent-blue-glow);border-radius:4px;background-color:var(--accent-blue);color:var(--bg-primary);font-family:var(--font-mono);font-size:12px;line-height:1;transition:background-color .2s,border-color .2s,color .2s}.pill-button:hover{background-color:#7fb0d3;border-color:#7fb0d3}.pill-outline{background-color:transparent;color:var(--accent-blue)}.pill-outline:hover{background-color:var(--bg-surface-hover);color:var(--text-primary)}.compact-project-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.project-card-content{display:grid;gap:16px}.project-card-content.has-thumbnail{align-items:start;grid-template-columns:132px minmax(0,1fr)}.project-card-thumbnail{aspect-ratio:4 / 3;background:#ffffff05;border:1px solid var(--border-faint);border-radius:4px;display:block;object-fit:cover;width:100%}.project-filter-bar{display:flex;flex-wrap:wrap;gap:8px;margin-top:24px}.project-filter-chip{border:1px solid var(--border-faint);border-radius:4px;background:#ffffff03;color:var(--text-muted);cursor:pointer;font-family:var(--font-mono);font-size:10px;letter-spacing:.04em;padding:6px 10px;transition:background-color .2s,border-color .2s,color .2s}.project-filter-chip:hover,.project-filter-chip.is-active{background:var(--accent-blue-dim);border-color:var(--accent-blue-glow);color:var(--text-primary)}.recent-work-sidebar{position:fixed;left:16px;top:92px;z-index:80;border:1px solid var(--border-subtle);border-radius:4px;background:#0d0f14c2;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transition:width .2s ease,background-color .2s ease}.recent-work-sidebar.is-collapsed{width:42px}.recent-work-sidebar.is-open{width:270px;max-height:calc(100vh - 124px);overflow:hidden}.recent-work-toggle{width:100%;min-height:42px;border:0;border-bottom:1px solid var(--border-faint);background:transparent;color:var(--text-tertiary);cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:12px;font-family:var(--font-mono);font-size:10px;letter-spacing:.1em;padding:0 12px;text-transform:uppercase}.recent-work-sidebar.is-collapsed .recent-work-toggle{border-bottom:0;height:150px;justify-content:center;padding:8px 0;writing-mode:vertical-rl}.recent-work-list{display:grid;gap:1px;max-height:calc(100vh - 176px);overflow-y:auto;padding:8px}.recent-work-link{display:block;border-radius:4px;color:var(--text-tertiary);font-family:var(--font-body);font-size:13px;line-height:1.35;padding:9px 10px;transition:background-color .2s,color .2s}.recent-work-link:hover{background:var(--bg-surface-hover);color:var(--text-secondary)}.recent-work-link span{display:block;color:var(--accent-blue);font-family:var(--font-mono);font-size:9px;letter-spacing:.08em;margin-bottom:3px;text-transform:uppercase}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:64px;margin-top:40px}.about-intro{margin-bottom:36px}.resume-skill-row{display:grid;grid-template-columns:180px 1fr;gap:24px;padding:18px 0;border-bottom:1px solid var(--border-faint)}.resume-skill-list{display:flex;flex-wrap:wrap;gap:8px}pre{background:#0000004d;border:1px solid var(--border-subtle);border-radius:4px;padding:20px 24px;overflow-x:auto;font-family:var(--font-mono);font-size:13px;line-height:1.6;margin:24px 0}code{font-family:var(--font-mono);font-size:.9em}:not(pre)>code{background:#6a9fc714;padding:2px 6px;border-radius:3px;color:var(--accent-blue)}.prose{font-family:var(--font-body);font-size:17px;line-height:1.8;color:var(--text-secondary);max-width:780px}.prose h1{font-family:var(--font-display);font-size:36px;font-weight:700;color:var(--text-primary);letter-spacing:-.02em;margin:48px 0 16px}.prose h2{font-family:var(--font-display);font-size:26px;font-weight:600;color:var(--text-primary);letter-spacing:-.01em;margin:40px 0 12px}.prose h3{font-family:var(--font-mono);font-size:14px;text-transform:uppercase;letter-spacing:.08em;color:var(--accent-blue);margin:32px 0 12px}.prose p{margin:16px 0}.prose a{color:var(--accent-blue);text-decoration:underline;text-underline-offset:3px}.prose a:hover{opacity:.8}.prose blockquote{border-left:2px solid var(--accent-blue-dim);padding-left:20px;margin:24px 0;color:var(--text-tertiary);font-style:italic}.prose img{max-width:100%;border-radius:4px;margin:24px 0}.prose ul,.prose ol{padding-left:24px;margin:16px 0}.prose li{margin:8px 0}.prose hr{border:none;border-top:1px solid var(--border-subtle);margin:40px 0}.prose table{width:100%;border-collapse:collapse;margin:24px 0;font-size:14px}.prose th{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);text-align:left;padding:8px 12px;border-bottom:1px solid var(--border-subtle)}.prose td{padding:8px 12px;border-bottom:1px solid var(--border-faint);color:var(--text-tertiary)}@media (max-width: 768px){:root{--page-padding: 20px;--page-top: 80px}.site-nav{align-items:flex-start;flex-direction:column;gap:12px;padding-top:12px;padding-bottom:12px}.site-nav-links{width:100%;gap:14px;justify-content:space-between;overflow-x:auto;padding-bottom:2px}.site-nav-link{font-size:10px}.home-title{font-size:44px}.home-metrics{gap:12px;flex-direction:column}.compact-project-grid,.about-grid,.resume-skill-row{grid-template-columns:1fr}.project-card-content.has-thumbnail{grid-template-columns:96px minmax(0,1fr)}.recent-work-sidebar{left:10px;top:auto;bottom:14px}.recent-work-sidebar.is-open{width:min(300px,calc(100vw - 20px));max-height:50vh}.about-grid{gap:40px}.prose{font-size:16px}pre{padding:16px;font-size:12px}}
