:root{color-scheme:light;--color-paper: #f5f7fa;--color-surface: #ffffff;--color-ink: #11161d;--color-ink-muted: #51606f;--color-border: #e2e7ee;--color-accent: #0e7490;--color-accent-strong: #0b5e74;--color-accent-wash: #e3f0f5;--color-selection: #cdeaf2;--shadow-sm: 0 1px 2px rgba(17, 22, 29, .05);--shadow-md: 0 6px 24px rgba(17, 22, 29, .08);--font-sans: var(--font-atkinson), system-ui, -apple-system, sans-serif;--font-serif: var(--font-fraunces), Georgia, "Times New Roman", serif;--font-mono: var(--font-jetbrains-mono), ui-monospace, "SFMono-Regular", monospace;--text-xs: .79rem;--text-sm: .889rem;--text-base: 1rem;--text-md: 1.125rem;--text-lg: 1.25rem;--text-xl: 1.45rem;--text-2xl: 1.85rem;--text-3xl: clamp(2rem, 1.5rem + 2vw, 2.6rem);--leading-tight: 1.12;--leading-normal: 1.65;--tracking-label: .12em;--space-3xs: .25rem;--space-2xs: .5rem;--space-xs: .75rem;--space-sm: 1rem;--space-md: 1.5rem;--space-lg: 2.5rem;--space-xl: 4rem;--space-2xl: 6rem;--sidebar-width: 17rem;--width-prose: 44rem;--width-wide: 56rem;--radius: 8px;--radius-sm: 4px;--border: 1px solid var(--color-border)}:root[data-theme=dark]{color-scheme:dark;--color-paper: #0a0e16;--color-surface: #111722;--color-ink: #e6edf3;--color-ink-muted: #8b97a7;--color-border: #1d2632;--color-accent: #38bdf8;--color-accent-strong: #7dd3fc;--color-accent-wash: rgba(56, 189, 248, .1);--color-selection: rgba(56, 189, 248, .3);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow-md: 0 8px 30px rgba(0, 0, 0, .5)}@media(prefers-color-scheme:dark){:root:not([data-theme]){color-scheme:dark;--color-paper: #0a0e16;--color-surface: #111722;--color-ink: #e6edf3;--color-ink-muted: #8b97a7;--color-border: #1d2632;--color-accent: #38bdf8;--color-accent-strong: #7dd3fc;--color-accent-wash: rgba(56, 189, 248, .1);--color-selection: rgba(56, 189, 248, .3);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow-md: 0 8px 30px rgba(0, 0, 0, .5)}}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{margin:0;background:var(--color-paper);color:var(--color-ink);font-family:var(--font-sans);font-size:var(--text-md);line-height:var(--leading-normal);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;word-wrap:break-word;overflow-wrap:break-word}::selection{background:var(--color-selection)}.container{width:100%;max-width:var(--width-wide);margin-inline:auto;padding-inline:var(--space-sm)}.layout{display:flex;align-items:flex-start;min-height:100vh}.layout>.content-col{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;min-height:100vh}.content-col>main{flex:1 0 auto;width:100%;max-width:var(--width-wide);margin-inline:auto;padding:var(--space-xl) var(--space-xl) var(--space-2xl)}@media(max-width:60rem){.layout{flex-direction:column;align-items:stretch}.content-col>main{padding:var(--space-lg) var(--space-md)}}h1,h2,h3,h4,h5,h6{margin:0 0 var(--space-xs);color:var(--color-ink);line-height:var(--leading-tight);font-weight:600;letter-spacing:-.01em;scroll-margin-top:var(--space-md)}h1,h2,h3{font-family:var(--font-serif);font-weight:600}h1{font-size:var(--text-3xl);letter-spacing:-.02em}h2{font-size:var(--text-2xl)}h3{font-size:var(--text-xl)}h4{font-size:var(--text-lg)}h5{font-size:var(--text-md)}h6{font-size:var(--text-base)}p{margin:0 0 var(--space-sm)}a{color:var(--color-accent);text-underline-offset:.15em;text-decoration-thickness:1px}a:hover{color:var(--color-accent-strong)}strong,b{font-weight:700}hr{border:none;border-top:var(--border);margin:var(--space-lg) 0}img{max-width:100%;height:auto}ul,ol{padding-left:1.4em}li{margin-bottom:var(--space-3xs)}blockquote{margin:var(--space-md) 0;padding:var(--space-2xs) 0 var(--space-2xs) var(--space-sm);border-left:3px solid var(--color-accent);color:var(--color-ink-muted)}table{width:100%;border-collapse:collapse}th,td{border:var(--border);padding:var(--space-2xs) var(--space-xs);text-align:left}th{font-family:var(--font-mono);font-size:var(--text-sm)}code,kbd,samp,pre{font-family:var(--font-mono);font-size:.9em}:not(pre)>code{background:var(--color-accent-wash);color:var(--color-accent-strong);padding:.15em .4em;border-radius:var(--radius-sm)}pre{padding:var(--space-sm);border-radius:var(--radius);border:var(--border);overflow-x:auto;line-height:1.5}pre>code{all:unset;font-family:var(--font-mono)}.label{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--color-ink-muted)}.eyebrow{font-family:var(--font-mono);font-size:var(--text-sm);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--color-accent);margin:0 0 var(--space-sm)}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:var(--radius-sm)}.skip-link{position:absolute;left:var(--space-2xs);top:-100%;z-index:100;background:var(--color-ink);color:var(--color-paper);padding:var(--space-2xs) var(--space-sm);border-radius:var(--radius-sm);text-decoration:none}.skip-link:focus{top:var(--space-2xs);color:var(--color-paper)}.sr-only{border:0;padding:0;margin:0;position:absolute!important;height:1px;width:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);white-space:nowrap}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}.prose{font-size:var(--text-md)}.prose>*+*{margin-top:var(--space-sm)}.prose h2{margin-top:var(--space-lg)}.prose h3{margin-top:var(--space-md)}.prose img{border-radius:var(--radius)}.prose svg[id^=mermaid],.prose p>svg{display:block;max-width:100%;height:auto;margin-inline:auto}.prose svg[id^=mermaid] .node rect,.prose svg[id^=mermaid] .node circle,.prose svg[id^=mermaid] .node ellipse,.prose svg[id^=mermaid] .node polygon,.prose svg[id^=mermaid] .node path{fill:var(--color-surface)!important;stroke:var(--color-accent)!important}.prose svg[id^=mermaid] .cluster rect{fill:var(--color-accent-wash)!important;stroke:var(--color-border)!important}.prose svg[id^=mermaid] .label,.prose svg[id^=mermaid] .nodeLabel,.prose svg[id^=mermaid] .edgeLabel,.prose svg[id^=mermaid] text,.prose svg[id^=mermaid] span{fill:var(--color-ink)!important;color:var(--color-ink)!important;background-color:transparent!important}.prose svg[id^=mermaid] .cluster-label text,.prose svg[id^=mermaid] .cluster span{fill:var(--color-ink-muted)!important;color:var(--color-ink-muted)!important}.prose svg[id^=mermaid] .edgePath .path,.prose svg[id^=mermaid] .flowchart-link{stroke:var(--color-ink-muted)!important}.prose svg[id^=mermaid] marker{fill:var(--color-ink-muted)!important;stroke:var(--color-ink-muted)!important}.btn{display:inline-flex;align-items:center;gap:var(--space-2xs);font-family:var(--font-mono);font-size:var(--text-sm);letter-spacing:var(--tracking-label);text-transform:uppercase;line-height:1.2;padding:var(--space-xs) var(--space-sm);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-ink);text-decoration:none;background:transparent;cursor:pointer;transition:color .15s,border-color .15s,background-color .15s}.btn:hover{border-color:var(--color-accent);color:var(--color-accent)}.btn-primary{background:var(--color-ink);border-color:var(--color-ink);color:var(--color-paper)}.btn-primary:hover{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-paper)}.tags{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:var(--space-2xs)}.tags li{font-family:var(--font-mono);font-size:var(--text-xs);padding:.2em .6em;border:var(--border);border-radius:var(--radius-sm);color:var(--color-ink-muted)}a[data-astro-cid-eimmu3lg]{display:block;text-decoration:none}.sidebar[data-astro-cid-ssfzsv2f]{flex:0 0 var(--sidebar-width);width:var(--sidebar-width);align-self:stretch;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;border-right:var(--border);background:var(--color-surface)}.drawer[data-astro-cid-ssfzsv2f]{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:var(--space-lg);padding:var(--space-lg) var(--space-md)}.topbar[data-astro-cid-ssfzsv2f]{display:none}.brand[data-astro-cid-ssfzsv2f]{text-decoration:none;color:var(--color-ink);display:block}.brand--compact[data-astro-cid-ssfzsv2f]{font-family:var(--font-mono);font-weight:700;font-size:var(--text-base)}.brand-name[data-astro-cid-ssfzsv2f]{display:block;font-family:var(--font-mono);font-weight:700;font-size:var(--text-base);letter-spacing:-.01em}.prompt[data-astro-cid-ssfzsv2f]{color:var(--color-accent)}.brand-role[data-astro-cid-ssfzsv2f]{display:block;margin-top:var(--space-3xs);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--color-accent)}.brand[data-astro-cid-ssfzsv2f]:hover .brand-name[data-astro-cid-ssfzsv2f],.brand--compact[data-astro-cid-ssfzsv2f]:hover{color:var(--color-accent)}.nav-label[data-astro-cid-ssfzsv2f]{margin:0 0 var(--space-xs)}.sections[data-astro-cid-ssfzsv2f]{font-family:var(--font-mono);font-size:var(--text-sm)}.sections[data-astro-cid-ssfzsv2f] .nav-link{padding:var(--space-2xs) var(--space-xs);margin-bottom:var(--space-3xs);border:1px solid transparent;border-radius:var(--radius-sm);color:var(--color-ink-muted);text-transform:uppercase;letter-spacing:.06em;transition:color .15s,border-color .15s}.sections[data-astro-cid-ssfzsv2f] .nav-link:before{content:"/ ";color:var(--color-ink-muted);opacity:.6}.sections[data-astro-cid-ssfzsv2f] .nav-link:hover{color:var(--color-accent)}.sections[data-astro-cid-ssfzsv2f] .nav-link.active{color:var(--color-accent);border-color:var(--color-accent)}.sections[data-astro-cid-ssfzsv2f] .nav-link.active:before{color:var(--color-accent);opacity:1}.sidebar-foot[data-astro-cid-ssfzsv2f]{margin-top:auto;display:flex;flex-direction:column;gap:var(--space-md);padding-top:var(--space-md);border-top:var(--border)}.contact[data-astro-cid-ssfzsv2f]{display:flex;flex-direction:column;gap:var(--space-2xs);font-family:var(--font-mono);font-size:var(--text-sm)}.contact[data-astro-cid-ssfzsv2f] a[data-astro-cid-ssfzsv2f]{color:var(--color-ink-muted);text-decoration:none}.contact[data-astro-cid-ssfzsv2f] a[data-astro-cid-ssfzsv2f]:hover{color:var(--color-accent)}.resume[data-astro-cid-ssfzsv2f],.theme-toggle[data-astro-cid-ssfzsv2f]{justify-content:center;width:100%}.theme-toggle[data-astro-cid-ssfzsv2f]{text-transform:none;letter-spacing:var(--tracking-label)}.theme-icon[data-astro-cid-ssfzsv2f]{font-size:1em}.burger[data-astro-cid-ssfzsv2f]{display:inline-flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;padding:0;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:transparent;color:var(--color-ink);cursor:pointer}.burger[data-astro-cid-ssfzsv2f]:hover{border-color:var(--color-accent);color:var(--color-accent)}.burger-icon[data-astro-cid-ssfzsv2f]:before{content:"☰";font-size:1.25rem;line-height:1}.burger[data-astro-cid-ssfzsv2f][aria-expanded=true] .burger-icon[data-astro-cid-ssfzsv2f]:before{content:"✕"}@media(max-width:60rem){.sidebar[data-astro-cid-ssfzsv2f]{flex-basis:auto;width:100%;position:sticky;top:0;z-index:20;height:auto;border-right:none;border-bottom:var(--border)}.topbar[data-astro-cid-ssfzsv2f]{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);padding:var(--space-sm) var(--space-md)}.brand--full[data-astro-cid-ssfzsv2f]{display:none}.drawer[data-astro-cid-ssfzsv2f]{display:none;flex:none;overflow:visible;gap:var(--space-md);padding:0 var(--space-md) var(--space-md);border-top:var(--border)}.sidebar[data-astro-cid-ssfzsv2f][data-open] .drawer[data-astro-cid-ssfzsv2f]{display:flex}.sidebar-foot[data-astro-cid-ssfzsv2f]{margin-top:var(--space-md)}}footer[data-astro-cid-sz7xmlte]{flex-shrink:0;display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:var(--space-2xs) var(--space-md);width:100%;max-width:var(--width-wide);margin-top:var(--space-2xl);margin-inline:auto;padding:var(--space-md) var(--space-xl);border-top:var(--border);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--color-ink-muted)}.copy[data-astro-cid-sz7xmlte],.note[data-astro-cid-sz7xmlte]{margin:0}@media(max-width:60rem){footer[data-astro-cid-sz7xmlte]{padding:var(--space-md)}}
