@import"https://api.fontshare.com/v2/css?f[]=onest@400,500,600,700&f[]=sora@400,600,700&display=swap";:root{--accent: #2337ff;--accent-dark: #000d8a;--black: 15, 18, 25;--gray: 96, 115, 159;--gray-light: 246, 248, 250;--gray-dark: 34, 41, 57;--gray-gradient: rgba(246, 248, 250, .8), #f8fafc;--box-shadow: 0 2px 6px rgba(var(--gray), 25%), 0 8px 24px rgba(var(--gray), 33%), 0 16px 32px rgba(var(--gray), 33%);--theme-transition: background-color .3s ease, color .3s ease;--font-heading: "Sora", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-body: "Onest", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "Fira Code", "SF Mono", Monaco, Consolas, monospace;--card-bg: 245, 250, 243}[data-theme=dark]{--accent: #818cf8;--accent-dark: #4f46e5;--black: 240, 242, 245;--gray: 180, 190, 210;--gray-light: 30, 41, 59;--gray-dark: 226, 232, 240;--gray-gradient: rgba(30, 41, 59, .8), #0f172a;--box-shadow: 0 2px 6px rgba(0, 0, 0, .4), 0 8px 24px rgba(0, 0, 0, .2), 0 16px 32px rgba(0, 0, 0, .2);--card-bg: 30, 41, 59}body,a,button,input{transition:var(--theme-transition)}body{font-family:var(--font-body);margin:0;padding:0;text-align:left;background:linear-gradient(to bottom,rgba(var(--gray-light),.5),rgba(var(--gray-light),.1)),linear-gradient(180deg,var(--gray-gradient)) no-repeat;background-size:100% 100%;word-wrap:break-word;overflow-wrap:break-word;color:rgb(var(--gray-dark));font-size:1.0625rem;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400}main{width:920px;max-width:calc(100% - 2em);margin:auto;padding:3em 1em}h1,h2,h3,h4,h5,h6{margin:0 0 .5rem;color:rgb(var(--black));line-height:1.2;font-family:var(--font-heading);font-weight:600;letter-spacing:-.015em}h1{font-size:2.5rem;font-weight:700;margin-bottom:1rem;letter-spacing:-.02em}h2{font-size:2rem;margin-top:2.5rem}h3{font-size:1.5rem;margin-top:2rem}h4{font-size:1.25rem;margin-top:1.5rem}h5{font-size:1.125rem;margin-top:1.25rem}strong,b{font-weight:600}a{color:var(--accent);text-decoration:none;font-weight:500}a:hover{color:var(--accent);text-decoration:underline}p{margin-bottom:1.25em;font-size:1.0625rem;line-height:1.6;font-weight:400}.prose p{margin-bottom:1.5em}textarea{width:100%;font-size:16px;font-family:var(--font-mono);padding:.5rem;border-radius:4px;border:1px solid rgba(var(--gray),.2)}input{font-size:16px;font-family:var(--font-body);padding:.5rem;border-radius:4px;border:1px solid rgba(var(--gray),.2)}table{width:100%;margin:2rem 0;border-collapse:collapse}table td,table th{padding:.75rem;border:1px solid rgba(var(--gray),.2)}img{max-width:100%;height:auto;border-radius:8px;margin:2rem 0}code{padding:.2em .4em;background-color:rgba(var(--gray-light),.5);border-radius:4px;font-family:var(--font-mono);font-size:.875em;font-weight:500}pre{padding:1.5em;border-radius:8px;background-color:rgb(var(--gray-light));overflow-x:auto}pre>code{all:unset;font-family:var(--font-mono);font-size:.9em}blockquote{border-left:4px solid var(--accent);padding:0 0 0 1.5rem;margin:2rem 0;font-size:1.125em;font-style:italic;color:rgb(var(--gray-dark));background-color:rgba(var(--gray-light),.3);padding:1.5rem;border-radius:0 8px 8px 0}hr{border:none;border-top:1px solid rgba(var(--gray),.2);margin:3rem 0}ul,ol{padding-left:1.5rem;margin:1.5rem 0}li{margin:.2rem 0;line-height:1.5}@media (max-width: 720px){body{font-size:1rem}h1{font-size:2rem}h2{font-size:1.5rem}h3{font-size:1.25rem}main{padding:1em}.prose p{margin-bottom:1.25em}}.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{max-width:65ch;margin:0 auto}.prose h1,.prose h2,.prose h3,.prose h4,.prose h5,.prose h6{margin-top:2em;margin-bottom:1em;color:rgb(var(--black));font-weight:600}.prose h1{font-size:2.5rem;margin-top:0}.prose h2{font-size:1.75rem}.prose h3{font-size:1.5rem}.prose p{margin-bottom:1.5em;line-height:1.6}.prose ul,.prose ol{margin:1.5em 0;padding-left:1.5em}.prose ul{list-style-type:disc}.prose ol{list-style-type:decimal}.prose li{margin:.2em 0;padding-left:.5em}.prose ul ul,.prose ol ul{list-style-type:circle;margin:.5em 0}.prose ul ul ul,.prose ol ul ul{list-style-type:square}.prose pre{padding:1.25em 1.5em;margin:1.5em 0;background-color:rgb(var(--gray-light));border-radius:8px;overflow-x:auto;font-family:var(--font-mono);font-size:.9em;line-height:1.7}.prose code{font-family:var(--font-mono);font-size:.875em;font-weight:500;background-color:rgba(var(--gray-light),.5);padding:.2em .4em;border-radius:4px}.prose pre code{background-color:transparent;padding:0;border-radius:0;color:inherit;font-size:.9em;white-space:pre}.prose table{width:100%;margin:2em 0;border-collapse:collapse;font-size:.9em;line-height:1.5}.prose th{font-weight:600;text-align:left;padding:.75em;border-bottom:2px solid rgba(var(--gray),.2)}.prose td{padding:.75em;border-bottom:1px solid rgba(var(--gray),.1);vertical-align:top}.prose tr:last-child td{border-bottom:none}.prose blockquote{margin:2em 0;padding:1em 1.5em;border-left:4px solid var(--accent);background-color:rgba(var(--gray-light),.3);border-radius:0 8px 8px 0;font-style:italic;color:rgb(var(--gray-dark))}.prose blockquote p{margin:.5em 0}.prose blockquote cite{display:block;margin-top:1em;font-size:.875em;font-style:normal;opacity:.8}.prose hr{margin:3em 0;border:0;border-top:1px solid rgba(var(--gray),.2)}.prose a{color:var(--accent);text-decoration:none;font-weight:500;border-bottom:1px solid transparent;transition:border-color .2s ease}.prose a:hover{border-bottom-color:var(--accent);text-decoration:none}.prose img{max-width:100%;height:auto;border-radius:8px;margin:2em 0}.prose figure{margin:2em 0}.prose figcaption{text-align:center;font-size:.875em;color:rgb(var(--gray));margin-top:.5em}.prose ul[data-type=taskList]{list-style:none;padding-left:0}.prose ul[data-type=taskList] li{display:flex;align-items:center;gap:.5em}.prose ul[data-type=taskList] li input[type=checkbox]{margin:0;width:1em;height:1em}.prose .footnotes{margin-top:3em;font-size:.875em;color:rgb(var(--gray))}.prose .footnotes:before{content:"";display:block;width:100%;max-width:10rem;margin-bottom:1em;border-top:1px solid rgba(var(--gray),.2)}.container{max-width:1200px;margin:0 auto;padding:0 1rem}.container-wide{max-width:1400px;margin:0 auto;padding:0 2rem}.container-narrow{max-width:720px;margin:0 auto;padding:0 1rem}.posts-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:2rem}.contact-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:2rem}.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.875rem 1.5rem;border-radius:.75rem;text-decoration:none;font-weight:600;transition:all .2s ease;border:none;cursor:pointer;font-family:inherit}.btn-primary{background-color:var(--accent);color:#fff}.btn-primary:hover{background-color:var(--accent-dark);transform:translateY(-2px);text-decoration:none}.btn-secondary{border:2px solid rgba(var(--gray),.2);color:rgb(var(--gray-dark));background:rgba(var(--gray-light),.3)}.btn-secondary:hover{border-color:rgba(var(--gray),.3);background:rgba(var(--gray-light),.5);transform:translateY(-2px);text-decoration:none}.btn svg{transition:transform .2s ease}.btn:hover svg{transform:translate(4px)}.card{background:linear-gradient(180deg,rgba(var(--gray-light),.5),rgba(var(--gray-light),.2));border-radius:1rem;padding:2rem;border:1px solid rgba(var(--gray),.1);transition:all .3s ease}.card:hover{transform:translateY(-4px);box-shadow:var(--box-shadow)}.card-centered{text-align:center}.page-container{min-height:calc(100vh - 16rem);padding:4rem 2rem}.page-header{text-align:center;margin-bottom:4rem;padding:4rem 1rem;background:linear-gradient(180deg,rgba(var(--accent),.08),rgba(var(--accent),.02));border-radius:1.5rem}.page-title{font-size:2.5rem;font-weight:800;color:rgb(var(--black));margin-bottom:1rem;line-height:1.2;font-family:var(--font-heading)}.page-description{font-size:1.125rem;color:rgb(var(--gray));max-width:600px;line-height:1.6;margin:0 auto}@media (max-width: 768px){.container-wide{padding:0 1rem}.posts-grid,.contact-grid{grid-template-columns:1fr;gap:1.5rem}.page-container{padding:2rem 1rem}.page-header{padding:3rem 1rem;margin-bottom:3rem}.page-title{font-size:2rem}.page-description{font-size:1rem}.card{padding:1.5rem}}.no-posts{text-align:center;padding:4rem 1rem;color:rgb(var(--gray));font-size:1.25rem;flex:1}.prose img{max-width:100%;height:auto}@media (min-width: 1024px){.prose{max-width:80ch}}a[data-astro-cid-eimmu3lg]{display:inline-block;text-decoration:none}a[data-astro-cid-eimmu3lg].active{font-weight:bolder;text-decoration:underline}.theme-toggle[data-astro-cid-x3pjskd3]{border:0;background:none;padding:.5rem;border-radius:9999px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;color:rgb(var(--gray-dark))}.theme-toggle[data-astro-cid-x3pjskd3]:hover{color:var(--accent);transform:scale(1.1)}.theme-toggle[data-astro-cid-x3pjskd3]:active{transform:scale(.9)}.theme-toggle[data-astro-cid-x3pjskd3] svg[data-astro-cid-x3pjskd3]{width:20px;height:20px;transition:transform .2s ease}.sun-icon[data-astro-cid-x3pjskd3]{display:none}.moon-icon[data-astro-cid-x3pjskd3],[data-astro-cid-x3pjskd3][data-theme=dark] .sun-icon[data-astro-cid-x3pjskd3]{display:block}[data-astro-cid-x3pjskd3][data-theme=dark] .moon-icon[data-astro-cid-x3pjskd3]{display:none}header[data-astro-cid-3ef6ksr2]{position:sticky;top:0;z-index:100;background:rgba(var(--gray-light),.85);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid rgba(var(--gray),.1);transition:var(--theme-transition)}nav[data-astro-cid-3ef6ksr2]{height:4rem;padding:0 1.5rem}.nav-wrapper[data-astro-cid-3ef6ksr2]{max-width:1200px;height:100%;margin:0 auto;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:2rem}.nav-brand[data-astro-cid-3ef6ksr2]{display:flex;align-items:center;min-width:0}.brand-link[data-astro-cid-3ef6ksr2]{display:flex;align-items:center;gap:.75rem;text-decoration:none;color:rgb(var(--black));font-weight:600;padding:.5rem;margin:-.5rem;border-radius:.75rem;transition:all .2s ease;min-width:0}.brand-link[data-astro-cid-3ef6ksr2]:hover{background:rgba(var(--gray),.1)}.brand-icon[data-astro-cid-3ef6ksr2]{display:flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;background:rgba(var(--gray-light),.5);border-radius:.85rem;padding:.25rem;flex-shrink:0;box-shadow:0 2px 4px rgba(var(--gray),.1),0 0 0 1px rgba(var(--gray),.05)}.brand-icon[data-astro-cid-3ef6ksr2] img[data-astro-cid-3ef6ksr2]{width:100%;height:100%;border-radius:.6rem;-o-object-fit:cover;object-fit:cover;transition:transform .2s ease}.brand-link[data-astro-cid-3ef6ksr2]:hover .brand-icon[data-astro-cid-3ef6ksr2] img[data-astro-cid-3ef6ksr2]{transform:scale(1.05)}.brand-text[data-astro-cid-3ef6ksr2]{font-size:1.125rem;font-weight:600;letter-spacing:-.01em;color:rgb(var(--black));white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.nav-links[data-astro-cid-3ef6ksr2]{display:flex;gap:1rem;align-items:center;justify-content:center;height:100%}.nav-links[data-astro-cid-3ef6ksr2] a[data-astro-cid-3ef6ksr2]{position:relative;padding:.5rem .75rem;color:rgb(var(--gray-dark));text-decoration:none;font-size:.95rem;font-weight:500;border-radius:.5rem;transition:all .2s ease;white-space:nowrap}.nav-links[data-astro-cid-3ef6ksr2] a[data-astro-cid-3ef6ksr2]:hover{color:rgb(var(--black));background:rgba(var(--gray),.1)}.nav-links[data-astro-cid-3ef6ksr2] a[data-astro-cid-3ef6ksr2].active{color:var(--accent);font-weight:600}.nav-actions[data-astro-cid-3ef6ksr2]{display:flex;align-items:center;gap:1rem}.social-link[data-astro-cid-3ef6ksr2]{display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;color:rgb(var(--gray-dark));border-radius:.5rem;transition:all .2s ease}.social-link[data-astro-cid-3ef6ksr2]:hover{color:rgb(var(--black));background:rgba(var(--gray),.1);transform:translateY(-1px)}.social-link[data-astro-cid-3ef6ksr2] svg[data-astro-cid-3ef6ksr2]{width:1.25rem;height:1.25rem}@media (max-width: 768px){nav[data-astro-cid-3ef6ksr2]{padding:0 1rem;height:3.75rem}.nav-wrapper[data-astro-cid-3ef6ksr2]{gap:1.5rem}.brand-text[data-astro-cid-3ef6ksr2]{font-size:1.05rem}.brand-icon[data-astro-cid-3ef6ksr2]{width:2.1rem;height:2.1rem}.nav-links[data-astro-cid-3ef6ksr2]{gap:.75rem}.nav-links[data-astro-cid-3ef6ksr2] a[data-astro-cid-3ef6ksr2]{padding:.45rem .65rem;font-size:.925rem}}@media (max-width: 480px){nav[data-astro-cid-3ef6ksr2]{height:3.5rem;padding:0 .75rem}.nav-wrapper[data-astro-cid-3ef6ksr2]{gap:.75rem}.brand-text[data-astro-cid-3ef6ksr2]{font-size:1rem;max-width:120px}.brand-icon[data-astro-cid-3ef6ksr2]{width:2rem;height:2rem;padding:.2rem}.nav-links[data-astro-cid-3ef6ksr2]{gap:.35rem}.nav-links[data-astro-cid-3ef6ksr2] a[data-astro-cid-3ef6ksr2]{padding:.4rem .5rem;font-size:.875rem}.nav-actions[data-astro-cid-3ef6ksr2]{gap:.5rem}.social-link[data-astro-cid-3ef6ksr2]{width:1.75rem;height:1.75rem}.social-link[data-astro-cid-3ef6ksr2] svg[data-astro-cid-3ef6ksr2]{width:1.1rem;height:1.1rem}}footer[data-astro-cid-sz7xmlte]{padding:3rem 1rem;background:rgba(var(--gray-light),.5);color:rgb(var(--gray));border-top:1px solid rgba(var(--gray),.1)}.footer-content[data-astro-cid-sz7xmlte]{max-width:1020px;margin:0 auto;text-align:center}.social-links[data-astro-cid-sz7xmlte]{display:flex;justify-content:center;gap:1.5rem;margin-bottom:1.5rem}.social-link[data-astro-cid-sz7xmlte]{display:flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;color:rgb(var(--gray-dark));border-radius:.75rem;transition:all .2s ease;background:rgba(var(--gray-light),.5)}.social-link[data-astro-cid-sz7xmlte]:hover{color:rgb(var(--black));background:rgba(var(--gray),.1);transform:translateY(-2px)}.social-link[data-astro-cid-sz7xmlte] svg[data-astro-cid-sz7xmlte]{width:1.5rem;height:1.5rem}.copyright[data-astro-cid-sz7xmlte]{font-size:.9rem;color:rgb(var(--gray));margin-bottom:.5rem}.fork-attribution[data-astro-cid-sz7xmlte]{font-size:.8rem;color:rgb(var(--gray-dark));margin-top:.5rem}.fork-attribution[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]{color:rgb(var(--gray-dark));text-decoration:underline}.fork-attribution[data-astro-cid-sz7xmlte] a[data-astro-cid-sz7xmlte]:hover{color:var(--accent)}@media (max-width: 720px){footer[data-astro-cid-sz7xmlte]{padding:2rem 1rem}.social-link[data-astro-cid-sz7xmlte]{width:2.25rem;height:2.25rem}.social-link[data-astro-cid-sz7xmlte] svg[data-astro-cid-sz7xmlte]{width:1.25rem;height:1.25rem}}
