*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg-primary: #0a0a0b;--bg-secondary: #111113;--bg-card: #16161a;--bg-card-hover: #1c1c21;--border: #2a2a30;--border-hover: #3a3a42;--text-primary: #e8e6e3;--text-secondary: #a09e9b;--text-muted: #8a8884;--accent: #c9a84c;--accent-hover: #dab85c;--accent-muted: rgba(201, 168, 76, .15);--code-bg: #1a1a1f;--font-body: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-heading: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", "Fira Code", "SF Mono", monospace;--space-xs: .25rem;--space-sm: .5rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--space-2xl: 3rem;--space-3xl: 4rem;--space-4xl: 6rem;--max-width: 1100px;--max-width-narrow: 740px;--transition-fast: .15s ease;--transition-base: .25s ease}html{font-size:16px;scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-body);background-color:var(--bg-primary);color:var(--text-primary);line-height:1.7;min-height:100vh}h1,h2,h3,h4{font-family:var(--font-heading);font-weight:600;line-height:1.3;color:var(--text-primary)}h1{font-size:clamp(2rem,5vw,3rem);letter-spacing:-.02em}h2{font-size:clamp(1.5rem,3vw,2rem);letter-spacing:-.01em}h3{font-size:1.25rem}h4{font-size:1.1rem;color:var(--text-secondary)}p{color:var(--text-secondary);max-width:65ch}a{color:var(--accent);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--accent-hover)}strong{color:var(--text-primary);font-weight:600}code{font-family:var(--font-mono);font-size:.875em;background:var(--code-bg);padding:.15em .4em;border-radius:4px;color:var(--accent)}pre{background:var(--code-bg);border:1px solid var(--border);border-radius:8px;padding:var(--space-lg);overflow-x:auto;font-size:.875rem;line-height:1.6}pre code{background:none;padding:0;color:var(--text-primary)}.container{width:100%;max-width:var(--max-width);margin:0 auto;padding:0 var(--space-lg)}.container--narrow{max-width:var(--max-width-narrow)}.section{padding:var(--space-4xl) 0}.tag{display:inline-block;font-family:var(--font-mono);font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:var(--accent);background:var(--accent-muted);padding:.2em .6em;border-radius:4px}table{width:100%;border-collapse:collapse;font-size:.9rem}th,td{text-align:left;padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--border)}th{font-weight:600;color:var(--text-primary);font-size:.8rem;text-transform:uppercase;letter-spacing:.05em}td{color:var(--text-secondary)}blockquote{border-left:3px solid var(--accent);padding-left:var(--space-lg);margin:var(--space-xl) 0;color:var(--text-secondary);font-style:italic}hr{border:none;border-top:1px solid var(--border);margin:var(--space-2xl) 0}img{max-width:100%;height:auto;border-radius:8px}.project-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:var(--space-xl)}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:var(--space-md)}.stat{text-align:center;padding:var(--space-lg)}.stat-value{font-size:2rem;font-weight:700;color:var(--accent);line-height:1}.stat-label{font-size:.8rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-top:var(--space-xs)}@media(max-width:768px){.project-grid{grid-template-columns:1fr}.container{padding:0 var(--space-md)}}::selection{background:var(--accent-muted);color:var(--text-primary)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.prose ul,.prose ol{padding-left:var(--space-xl);color:var(--text-secondary)}.prose li{margin-bottom:var(--space-sm)}.prose li::marker{color:var(--accent)}.prose p+p{margin-top:var(--space-md)}.prose h2{margin-top:var(--space-3xl);margin-bottom:var(--space-md)}.prose h3{margin-top:var(--space-2xl);margin-bottom:var(--space-sm)}.prose .sketch-container{margin:var(--space-2xl) 0}.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:var(--space-md) 0}@media(prefers-reduced-motion:reduce){.sketch-container canvas{animation:none!important}}.cite{font-size:.75em;vertical-align:super;line-height:0}.cite a{color:var(--accent);text-decoration:none;font-family:var(--font-mono);font-weight:500}.cite a:hover{text-decoration:underline}.references{margin-top:var(--space-3xl);padding-top:var(--space-xl);border-top:1px solid var(--border)}.references h2{font-size:1.25rem;margin-bottom:var(--space-lg)}.references ol{list-style:none;counter-reset:ref-counter;padding-left:0}.references li{counter-increment:ref-counter;padding-left:2.5em;text-indent:-2.5em;margin-bottom:var(--space-sm);font-size:.875rem;color:var(--text-secondary);line-height:1.6}.references li:before{content:"[" counter(ref-counter) "] ";font-family:var(--font-mono);font-weight:600;color:var(--accent)}.references li em{color:var(--text-primary)}.references li a{word-break:break-all;font-size:.8em}.academic-figure{margin:var(--space-2xl) 0;border:1px solid var(--border);border-radius:8px;overflow:hidden;background:var(--bg-secondary)}.academic-figure img{width:100%;display:block;border-radius:0}.academic-figure .figure-content{padding:var(--space-lg);display:flex;justify-content:center;align-items:center;min-height:120px}.academic-figure figcaption{padding:var(--space-sm) var(--space-lg);font-size:.85rem;font-style:italic;color:var(--text-muted);text-align:center;border-top:1px solid var(--border);background:var(--bg-primary)}.code-structure{margin:var(--space-2xl) 0;border:1px solid var(--border);border-radius:8px;overflow:hidden}.code-structure__filename{font-family:var(--font-mono);font-size:.75rem;color:var(--text-muted);background:var(--bg-card);padding:var(--space-xs) var(--space-md);border-bottom:1px solid var(--border);letter-spacing:.02em}.code-structure pre{margin:0;border:none;border-radius:0}.code-structure__caption{font-size:.85rem;font-style:italic;color:var(--text-muted);text-align:center;padding:var(--space-sm) var(--space-md);border-top:1px solid var(--border);background:var(--bg-primary)}.mermaid-container{margin:var(--space-2xl) 0;border:1px solid var(--border);border-radius:8px;overflow:hidden;background:var(--bg-secondary)}.mermaid-container .mermaid{padding:var(--space-lg);display:flex;justify-content:center;align-items:center;min-height:120px}.mermaid-container .mermaid svg{max-width:100%;height:auto}.mermaid-caption{font-size:.85rem;font-style:italic;color:var(--text-muted);text-align:center;padding:var(--space-sm) var(--space-lg);border-top:1px solid var(--border);background:var(--bg-primary)}.mermaid-fallback{font-size:.8rem;padding:var(--space-md)}.prose .academic-figure,.prose .mermaid-container,.prose .code-structure{margin:var(--space-2xl) 0}@media(max-width:768px){table{font-size:.8rem}th,td{padding:var(--space-xs) var(--space-sm)}.stat-grid{grid-template-columns:repeat(3,1fr);gap:var(--space-sm)}.stat-value{font-size:1.5rem}.stat-label{font-size:.7rem}}.header[data-astro-cid-3ef6ksr2]{position:sticky;top:0;z-index:100;background:#0a0a0bd9;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--border)}.header__inner[data-astro-cid-3ef6ksr2]{display:flex;align-items:center;justify-content:space-between;height:64px}.header__logo[data-astro-cid-3ef6ksr2]{text-decoration:none;padding:.5rem 0;min-height:44px;display:flex;align-items:center}.header__name[data-astro-cid-3ef6ksr2]{font-weight:700;font-size:1.1rem;color:var(--text-primary);letter-spacing:-.01em}.header__nav[data-astro-cid-3ef6ksr2]{display:flex;gap:var(--space-xl)}.header__link[data-astro-cid-3ef6ksr2]{font-size:.9rem;color:var(--text-secondary);text-decoration:none;transition:color var(--transition-fast);padding:.5rem .25rem;min-height:44px;display:flex;align-items:center}.header__link[data-astro-cid-3ef6ksr2]:hover,.header__link--active[data-astro-cid-3ef6ksr2]{color:var(--text-primary)}.footer[data-astro-cid-sz7xmlte]{border-top:1px solid var(--border);padding:var(--space-2xl) 0;margin-top:var(--space-4xl)}.footer__inner[data-astro-cid-sz7xmlte]{display:flex;align-items:center;justify-content:space-between}.footer__links[data-astro-cid-sz7xmlte]{display:flex;align-items:center;gap:var(--space-sm)}.footer__links[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]{font-size:.85rem;color:var(--text-muted);transition:color var(--transition-fast)}.footer__links[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]:hover{color:var(--text-primary)}.footer__sep[data-astro-cid-sz7xmlte]{color:var(--border);font-size:.8rem}.footer__copy[data-astro-cid-sz7xmlte]{font-size:.8rem;color:var(--text-muted)}
