:root{--accent: #2337ff;--accent-dark: #000d8a;--black: 15, 18, 25;--gray: 96, 115, 159;--gray-light: 229, 233, 240;--gray-dark: 34, 41, 57;--gray-gradient: rgba(var(--gray-light), 50%), #fff;--box-shadow: 0 2px 6px rgba(var(--gray), 25%), 0 8px 24px rgba(var(--gray), 33%), 0 16px 32px rgba(var(--gray), 33%);--color-success: #10b981;--color-success-light: #d1fae5;--color-error: #ef4444;--color-error-light: #fee2e2;--color-warning: #f59e0b;--color-warning-light: #fef3c7;--color-info: #3b82f6;--color-info-light: #dbeafe;--space-xs: .25rem;--space-sm: .5rem;--space-sm-md: .75rem;--space-md: 1rem;--space-md-lg: 1.125rem;--space-lg: 1.5rem;--space-xl: 1.75rem;--space-2xl: 2rem;--fs-xs: .75rem;--fs-sm: .875rem;--fs-base: 1rem;--fs-lg: 1.125rem;--fs-xl: 1.5rem;--fs-2xl: 1.875rem;--fs-3xl: 2.25rem;--fs-4xl: 2.813rem;--color-border: rgba(127, 127, 127, .25);--color-border-light: rgba(127, 127, 127, .15);--color-border-dark: rgba(127, 127, 127, .35);--text: rgb(var(--black));--bg-hover: rgba(var(--gray-light), .5)}@font-face{font-family:Atkinson;src:url(/fonts/atkinson-regular.woff) format("woff");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Atkinson;src:url(/fonts/atkinson-bold.woff) format("woff");font-weight:700;font-style:normal;font-display:swap}body{font-family:Atkinson,sans-serif;margin:0;padding:0;text-align:left;background:linear-gradient(var(--gray-gradient)) no-repeat;background-size:100% 600px;word-wrap:break-word;overflow-wrap:break-word;color:rgb(var(--gray-dark));font-size:20px;line-height:1.7;min-height:100vh;display:flex;flex-direction:column}h1,h2,h3,h4,h5,h6{margin:0 0 .5rem;color:rgb(var(--black));line-height:1.2}h1{font-size:var(--fs-4xl)}h2{font-size:var(--fs-3xl)}h3{font-size:var(--fs-2xl)}h4{font-size:var(--fs-xl)}h5{font-size:var(--fs-lg)}strong,b{font-weight:700}a,a:hover{color:var(--accent)}a:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}p{margin-bottom:1em}.prose p{margin-bottom:2em}textarea{width:100%;font-size:var(--fs-base)}input{font-size:var(--fs-base)}table{width:100%}img{max-width:100%;height:auto;border-radius:8px}code{padding:2px 5px;background-color:rgb(var(--gray-light));border-radius:2px}pre{padding:1.5em;border-radius:8px}pre>code{all:unset}blockquote{border-left:4px solid var(--accent);padding:0 0 0 20px;margin:0;font-size:var(--fs-xl)}hr{border:none;border-top:1px solid var(--color-border)}@media(max-width:720px){body{font-size:18px}h1{font-size:var(--fs-3xl)}h2{font-size:var(--fs-2xl)}h3{font-size:var(--fs-xl)}}.sr-only{border:0;padding:0;margin:0;position:absolute!important;height:1px;width:1px;overflow:hidden;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);clip-path:inset(50%);white-space:nowrap}.prose a{text-decoration:underline;text-underline-offset:.18em;text-decoration-thickness:.08em}.prose a:hover{text-decoration-thickness:.12em}.prose blockquote{font-size:var(--fs-lg);color:rgba(var(--black),.85)}.prose code{font-size:.95em;border-radius:6px}.prose pre{background:rgb(var(--gray-light));border:1px solid rgba(var(--gray),.25);overflow-x:auto}.prose table{border-collapse:collapse;font-size:.95em}.prose th,.prose td{border:1px solid rgba(var(--gray),.25);padding:.5rem .65rem;vertical-align:top}.prose th{background:rgba(var(--gray-light),.6);text-align:left}.prose hr{margin:2em 0}@media(prefers-color-scheme:dark){:root{--black: 242, 242, 242;--gray: 150, 150, 150;--gray-light: 50, 50, 50;--gray-dark: 229, 233, 240;--gray-gradient: rgba(var(--gray-light), 50%), #1a1a1a}body{background:linear-gradient(var(--gray-gradient)) no-repeat;background-color:#1a1a1a}:root{--accent: #64b5f6;--accent-dark: #90caf9;--black: 240, 240, 245;--gray: 176, 190, 197;--gray-light: 66, 66, 81;--gray-dark: 229, 229, 240;--gray-gradient: rgba(var(--gray-light), 50%), #1a1a2e;--color-border: rgba(200, 200, 200, .15);--color-success: #34d399;--color-success-light: #064e3b;--color-error: #f87171;--color-error-light: #7f1d1d;--color-warning: #fbbf24;--color-warning-light: #78350f;--color-info: #60a5fa;--color-info-light: #1e3a8a;--text: rgb(var(--black));--bg-hover: rgba(var(--gray-dark), .5)}h1,h2,h3,h4,h5,h6{color:rgb(var(--black))}a{color:#64b5f6}a:hover{color:#90caf9}code{background-color:rgb(var(--gray-light))}blockquote{border-left-color:#64b5f6}input,textarea{background-color:rgba(var(--gray-light),.8);color:rgb(var(--black));border:1px solid var(--color-border)}.prose pre{background:rgb(var(--gray-light));border:1px solid rgba(var(--gray),.25)}.prose blockquote{color:rgba(var(--gray-dark),.85)}.prose th{background:rgba(var(--gray-light),.4)}.site-footer{border-top:1px solid rgba(127,127,127,.5)}hr{border-top:1px solid rgb(var(--gray-light))}}:root[data-theme=dark]{--accent: #64b5f6;--accent-dark: #90caf9;--black: 240, 240, 245;--gray: 176, 190, 197;--gray-light: 66, 66, 81;--gray-dark: 229, 229, 240;--gray-gradient: rgba(var(--gray-light), 50%), #1a1a2e;--color-border: rgba(200, 200, 200, .15);--color-success: #34d399;--color-success-light: #064e3b;--color-error: #f87171;--color-error-light: #7f1d1d;--color-warning: #fbbf24;--color-warning-light: #78350f;--color-info: #60a5fa;--color-info-light: #1e3a8a;--text: rgb(var(--black));--bg-hover: rgba(var(--gray-dark), .5)}[data-theme=dark] body{background:linear-gradient(var(--gray-gradient)) no-repeat;background-color:#1a1a1a}[data-theme=dark] h1,[data-theme=dark] h2,[data-theme=dark] h3,[data-theme=dark] h4,[data-theme=dark] h5,[data-theme=dark] h6{color:rgb(var(--black))}[data-theme=dark] a{color:#64b5f6}[data-theme=dark] a:hover{color:#90caf9}[data-theme=dark] code{background-color:rgb(var(--gray-light))}[data-theme=dark] blockquote{border-left-color:#64b5f6}[data-theme=dark] input,[data-theme=dark] textarea{background-color:rgba(var(--gray-light),.8);color:rgb(var(--black));border:1px solid var(--color-border)}[data-theme=dark] .prose pre{background:rgb(var(--gray-light));border:1px solid rgba(var(--gray),.25)}[data-theme=dark] .prose blockquote{color:rgba(var(--gray-dark),.85)}[data-theme=dark] .prose th{background:rgba(var(--gray-light),.4)}[data-theme=dark] .site-footer{border-top:1px solid rgba(127,127,127,.5)}[data-theme=dark] hr{border-top:1px solid rgb(var(--gray-light))}:root[data-theme=light]{--accent: #2337ff;--accent-dark: #000d8a;--black: 15, 18, 25;--gray: 96, 115, 159;--gray-light: 229, 233, 240;--gray-dark: 34, 41, 57;--gray-gradient: rgba(var(--gray-light), 50%), #fff;--color-border: rgba(127, 127, 127, .25);--color-success: #10b981;--color-success-light: #d1fae5;--color-error: #ef4444;--color-error-light: #fee2e2;--color-warning: #f59e0b;--color-warning-light: #fef3c7;--color-info: #3b82f6;--color-info-light: #dbeafe;--text: rgb(var(--black));--bg-hover: rgba(var(--gray-light), .5)}[data-theme=light] body{background:linear-gradient(var(--gray-gradient)) no-repeat;background-size:100% 600px;color:rgb(var(--gray-dark))}[data-theme=light] h1,[data-theme=light] h2,[data-theme=light] h3,[data-theme=light] h4,[data-theme=light] h5,[data-theme=light] h6{color:rgb(var(--black))}[data-theme=light] a,[data-theme=light] a:hover{color:var(--accent)}[data-theme=light] code{background-color:rgb(var(--gray-light))}[data-theme=light] blockquote{border-left-color:var(--accent)}[data-theme=light] input,[data-theme=light] textarea{background-color:#fff;color:rgb(var(--black));border:1px solid var(--color-border)}[data-theme=light] .prose pre{background:rgb(var(--gray-light));border:1px solid rgba(var(--gray),.25)}[data-theme=light] .prose blockquote{color:rgba(var(--black),.85)}[data-theme=light] .prose th{background:rgba(var(--gray-light),.6)}[data-theme=light] .site-footer,[data-theme=light] hr{border-top:1px solid var(--color-border)}.site-header,.site-main,.site-footer{width:100%}.site-container{max-width:980px;margin:0 auto;padding-left:var(--space-md);padding-right:var(--space-md)}.site-header{padding-top:var(--space-lg);padding-bottom:var(--space-lg)}.site-main{padding-bottom:var(--space-2xl);flex:1}.content{width:100%}.content--narrow{max-width:75ch;margin-left:auto;margin-right:auto}.site-footer{padding-top:var(--space-lg);padding-bottom:var(--space-lg);border-top:1px solid var(--color-border)}.site-nav{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-md);flex-wrap:wrap}.site-brand{font-weight:700;text-decoration:none;color:rgb(var(--black))}.site-brand:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}.site-links{display:flex;gap:var(--space-md);flex-wrap:wrap;align-items:center}.prose{max-width:75ch;margin:var(--space-lg) auto var(--space-xl) auto}.prose-content{line-height:1.75}.prose h1,.prose h2,.prose h3,.prose h4,.prose h5,.prose h6{margin-top:1.6em;margin-bottom:.6em}.prose h1{font-size:var(--fs-2xl);margin-top:0}.prose p{margin:0 0 1.25em}.prose ul,.prose ol{margin:0 0 1.25em;padding-left:1.25em}.prose li{margin:.35em 0}.prose li>ul,.prose li>ol{margin-top:.5em;margin-bottom:.5em}.hero-section{margin-top:var(--space-lg);padding-bottom:var(--space-md-lg)}.hero-title{font-size:var(--fs-2xl);margin:0 0 var(--space-xs)}.hero-intro{max-width:70ch;font-size:var(--fs-lg);line-height:1.6}.hero-cta{display:flex;gap:var(--space-sm-md);flex-wrap:wrap;margin-top:var(--space-md)}.featured-section{padding-bottom:var(--space-md-lg)}.section-title{margin:0 0 var(--space-sm-md) 0}.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--space-sm-md)}.card{padding:var(--space-sm-md);border:1px solid var(--color-border);border-radius:12px}.card-title{margin:0 0 var(--space-xs) 0}.card-description{margin:0 0 var(--space-sm);opacity:.85}.project-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--space-sm-md);margin-top:var(--space-md-lg)}.project-card{padding:var(--space-sm-md);border:1px solid var(--color-border);border-radius:12px}.project-header{display:flex;justify-content:space-between;gap:var(--space-sm);align-items:baseline}.project-title{margin:0;font-size:var(--fs-xl)}.project-status{opacity:.7}.project-description{margin:var(--space-sm) 0 var(--space-sm-md);opacity:.85}.project-links{display:flex;gap:var(--space-sm-md);flex-wrap:wrap}.blog-list{list-style:none;padding:0;margin:var(--space-md-lg) 0;display:grid;gap:var(--space-md)}.blog-item{padding:var(--space-sm-md);border:1px solid var(--color-border);border-radius:12px}.blog-item-link{font-weight:700;text-decoration:none}.blog-date{opacity:.7;margin-top:var(--space-xs)}.blog-description{margin:var(--space-sm) 0 0;opacity:.85}.page-title{margin:var(--space-lg) 0 var(--space-sm)}.page-intro{max-width:75ch;line-height:1.6;opacity:.9}.post-meta{opacity:.8;margin:var(--space-sm-md) 0}.post-tags{display:flex;gap:var(--space-sm);flex-wrap:wrap;margin:var(--space-sm-md) 0}.post-tag{padding:var(--space-xs) var(--space-sm);background:rgba(var(--gray-light),.5);border-radius:6px;font-size:var(--fs-sm)}@media(prefers-color-scheme:dark){.site-brand{color:rgb(var(--black))}.site-nav{border-bottom:none}a{color:var(--accent)}a:hover{color:var(--accent-dark)}.post-tag{background:rgba(var(--gray-light),.3);color:rgb(var(--gray-dark))}}[data-theme=dark] .site-brand{color:rgb(var(--black))}[data-theme=dark] .site-nav{border-bottom:none}[data-theme=dark] a{color:var(--accent)}[data-theme=dark] a:hover{color:var(--accent-dark)}[data-theme=dark] .post-tag{background:rgba(var(--gray-light),.3);color:rgb(var(--gray-dark))}@media(max-width:768px){.site-container{padding-left:var(--space-sm-md);padding-right:var(--space-sm-md)}.site-nav{flex-direction:column;align-items:flex-start;gap:var(--space-sm)}.card-grid,.project-grid{grid-template-columns:1fr}.hero-cta{flex-direction:column}.hero-cta a{display:block;text-align:center}}.theme-toggle[data-astro-cid-x3pjskd3]{display:flex;align-items:center;gap:var(--space-xs);padding:var(--space-xs) var(--space-sm-md);background:transparent;border:1px solid var(--color-border);border-radius:6px;color:var(--text);font-size:var(--fs-xs);cursor:pointer;transition:all .2s ease;font-weight:500}.theme-toggle[data-astro-cid-x3pjskd3]:hover{background:var(--bg-hover);border-color:var(--accent)}.theme-toggle[data-astro-cid-x3pjskd3]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.theme-toggle-sun[data-astro-cid-x3pjskd3],.theme-toggle-moon[data-astro-cid-x3pjskd3]{width:16px;height:16px;transition:opacity .2s ease}.theme-toggle-moon[data-astro-cid-x3pjskd3],[data-astro-cid-x3pjskd3][data-theme=dark] .theme-toggle-sun[data-astro-cid-x3pjskd3]{opacity:0;position:absolute;pointer-events:none}[data-astro-cid-x3pjskd3][data-theme=dark] .theme-toggle-moon[data-astro-cid-x3pjskd3]{opacity:1;position:static}@media(max-width:720px){.theme-toggle-label[data-astro-cid-x3pjskd3]{display:none}.theme-toggle[data-astro-cid-x3pjskd3]{gap:0;padding:var(--space-xs)}}
