@import"https://fonts.googleapis.com/css2?family=Source+Serif+4:ital,opsz,wght@0,8..60,400;0,8..60,500;1,8..60,400&family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap";:root{--bg: #0a0a0a;--bg-elev: #141414;--bg-hover: #1a1a1a;--ink: #eaeaea;--ink-2: #999999;--ink-3: #555555;--rule: #262626;--rule-strong: #404040;--accent: #5dd6ff;--accent-hover: #7fdfff;--font-display: "Source Serif 4", "Times New Roman", serif;--font-body: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, "SF Mono", monospace;--s-1: 4px;--s-2: 8px;--s-3: 16px;--s-4: 24px;--s-5: 32px;--s-6: 48px;--s-7: 64px;--s-8: 96px;--s-9: 128px;--content-width: 680px;--wide-width: 1180px;--t-eyebrow: 11px;--t-meta: 13px;--t-body: 17px;--t-large: 19px;--t-h3: 22px;--t-h2: 32px;--t-h1: 56px;--t-display: 72px;--ease: cubic-bezier(.2, .6, .2, 1);--dur-fast: .15s;--dur-mid: .3s;--dur-slow: .5s}*,*:before,*:after{box-sizing:border-box}html{background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:var(--t-body);line-height:1.7;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;scroll-behavior:smooth}body{margin:0;min-height:100vh;display:flex;flex-direction:column}main{flex:1}a{color:inherit;text-decoration:none;transition:color var(--dur-fast) var(--ease)}img,svg{display:block;max-width:100%}::selection{background:var(--accent);color:var(--bg)}.eyebrow{font-family:var(--font-mono);font-size:var(--t-eyebrow);font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}.eyebrow.accent{color:var(--accent)}.eyebrow:before{content:"▎ ";color:var(--accent)}.meta{font-family:var(--font-mono);font-size:var(--t-meta);color:var(--ink-2);letter-spacing:.02em}h1,h2,h3{font-family:var(--font-display);font-weight:400;letter-spacing:-.02em;line-height:1.15;margin:0}h1{font-size:var(--t-h1)}h2{font-size:var(--t-h2);margin-top:var(--s-7);margin-bottom:var(--s-3)}h3{font-size:var(--t-h3);margin-top:var(--s-5);margin-bottom:var(--s-2)}em,i{font-style:italic;font-family:var(--font-display)}p{margin:0 0 var(--s-3)}p+p{margin-top:var(--s-3)}.prose a,.link{color:var(--ink);background-image:linear-gradient(var(--accent),var(--accent));background-size:0 1px;background-position:0 100%;background-repeat:no-repeat;transition:background-size var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease);padding-bottom:1px}.prose a:hover,.link:hover{color:var(--accent);background-size:100% 1px}.prose ul,.prose ol{padding-left:var(--s-4);margin:0 0 var(--s-3)}.prose ul{list-style:none;padding-left:0}.prose ul li{position:relative;padding-left:var(--s-4);margin-bottom:var(--s-2)}.prose ul li:before{content:"—";position:absolute;left:0;color:var(--ink-3)}.prose ol li{margin-bottom:var(--s-2)}.prose code{font-family:var(--font-mono);font-size:.9em;background:var(--bg-elev);padding:2px 6px;border-radius:3px;color:var(--accent)}.prose pre{font-family:var(--font-mono);background:var(--bg-elev);padding:var(--s-3);border-radius:4px;overflow-x:auto;border:1px solid var(--rule);font-size:var(--t-meta);line-height:1.6;margin:var(--s-4) 0}.prose pre code{background:none;padding:0;color:var(--ink)}.prose blockquote{border-left:1px solid var(--accent);padding-left:var(--s-4);margin:var(--s-5) 0;color:var(--ink-2);font-family:var(--font-display);font-style:italic;font-size:var(--t-large)}.rule{border:0;border-top:1px solid var(--rule);margin:var(--s-7) 0}@media(prefers-reduced-motion:no-preference){@supports (animation-timeline: view()){.rule{animation:rule-draw linear forwards;animation-timeline:view();animation-range:entry 0% cover 30%;transform-origin:0 0}@keyframes rule-draw{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}}}.container{max-width:var(--content-width);margin:0 auto;padding:0 var(--s-4)}.wide{max-width:var(--wide-width);margin:0 auto;padding:0 var(--s-4)}.prose{font-size:var(--t-body);line-height:1.75}.prose>*+*{margin-top:var(--s-3)}.scroll-progress{position:fixed;top:0;left:0;right:0;height:1px;background:var(--accent);transform:scaleX(0);transform-origin:0 0;z-index:100;pointer-events:none}@supports (animation-timeline: scroll()){.scroll-progress{animation:progress-grow linear;animation-timeline:scroll(root)}@keyframes progress-grow{0%{transform:scaleX(0)}to{transform:scaleX(1)}}}@media(prefers-reduced-motion:no-preference){@supports (animation-timeline: view()){.reveal{animation:reveal-up linear forwards;animation-timeline:view();animation-range:entry 0% cover 25%}@keyframes reveal-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}}@supports not (animation-timeline: view()){.reveal{animation:reveal-fade var(--dur-slow) var(--ease) forwards}@keyframes reveal-fade{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}}}@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none}.scroll-progress{display:none}}::view-transition-old(root),::view-transition-new(root){animation-duration:.25s}.word-reveal{display:inline-block}.word-reveal>span{display:inline-block;opacity:0;transform:translateY(12px);animation:word-reveal-anim .6s var(--ease) forwards}@keyframes word-reveal-anim{to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.word-reveal>span{opacity:1;transform:none;animation:none}}.glow-card{border:1px solid var(--rule);transition:background var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease),box-shadow var(--dur-mid) var(--ease)}.glow-card:hover{background:var(--bg-elev);border-color:var(--accent);box-shadow:0 0 0 0 var(--accent),0 4px 24px -8px #5dd6ff40}.mono{font-family:var(--font-mono);font-size:var(--t-meta);letter-spacing:.02em}.muted{color:var(--ink-2)}.faint{color:var(--ink-3)}.accent{color:var(--accent)}.row{display:flex;align-items:center;gap:var(--s-3);flex-wrap:wrap}.row.sep>*+*:before{content:"·";color:var(--ink-3);margin-right:var(--s-2)}.page-pad{padding-top:var(--s-7);padding-bottom:var(--s-9)}@media(max-width:720px){:root{--t-h1: 40px;--t-display: 48px}.container,.wide{padding:0 var(--s-3)}.page-pad{padding-top:var(--s-5);padding-bottom:var(--s-7)}}.nav[data-astro-cid-dmqpwcec]{border-bottom:1px solid var(--rule);background:#0a0a0ad9;backdrop-filter:blur(8px);position:sticky;top:0;z-index:50}.nav-inner[data-astro-cid-dmqpwcec]{display:flex;justify-content:space-between;align-items:center;padding-top:var(--s-3);padding-bottom:var(--s-3)}.brand[data-astro-cid-dmqpwcec]{font-family:var(--font-display);font-size:22px;letter-spacing:-.02em;font-weight:500;color:var(--ink)}.brand-text[data-astro-cid-dmqpwcec]{background-image:linear-gradient(var(--accent),var(--accent));background-size:0 1px;background-position:0 100%;background-repeat:no-repeat;transition:background-size var(--dur-fast) var(--ease);padding-bottom:2px}.brand[data-astro-cid-dmqpwcec]:hover .brand-text[data-astro-cid-dmqpwcec]{background-size:100% 1px}nav[data-astro-cid-dmqpwcec] ul[data-astro-cid-dmqpwcec]{display:flex;gap:var(--s-4);list-style:none;margin:0;padding:0}.nav-link[data-astro-cid-dmqpwcec]{font-family:var(--font-mono);font-size:var(--t-eyebrow);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2);transition:color var(--dur-fast) var(--ease)}.nav-link[data-astro-cid-dmqpwcec]:hover,.nav-link[data-astro-cid-dmqpwcec].active{color:var(--accent)}@media(max-width:560px){nav[data-astro-cid-dmqpwcec] ul[data-astro-cid-dmqpwcec]{gap:var(--s-3)}.brand[data-astro-cid-dmqpwcec]{font-size:18px}}footer[data-astro-cid-sz7xmlte]{border-top:1px solid var(--rule);margin-top:var(--s-9);padding:var(--s-7) 0 var(--s-5)}.footer-inner[data-astro-cid-sz7xmlte]{display:grid;gap:var(--s-5)}.thesis[data-astro-cid-sz7xmlte]{font-family:var(--font-display);font-size:22px;line-height:1.4;color:var(--ink-2);max-width:540px}.links[data-astro-cid-sz7xmlte]{display:flex;gap:var(--s-4);flex-wrap:wrap;font-family:var(--font-mono);font-size:var(--t-meta)}.copy[data-astro-cid-sz7xmlte]{color:var(--ink-3);font-size:var(--t-eyebrow);letter-spacing:.05em}.astro-route-announcer{position:absolute;left:0;top:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap;width:1px;height:1px}
