@import"https://api.fontshare.com/v2/css?f[]=onest@400,500,600,700&f[]=sora@400,600,700&display=swap";:root{--color-primary-50: 255 241 242;--color-primary-100: 255 228 230;--color-primary-200: 254 205 211;--color-primary-300: 253 164 175;--color-primary-400: 251 113 133;--color-primary-500: 244 63 94;--color-primary-600: 225 29 72;--color-primary-700: 190 18 60;--color-primary-800: 159 18 57;--color-primary-900: 136 19 55;--color-primary-950: 76 5 25;--color-accent-50: 240 249 255;--color-accent-100: 224 242 254;--color-accent-200: 186 230 253;--color-accent-300: 125 211 252;--color-accent-400: 56 189 248;--color-accent-500: 14 165 233;--color-accent-600: 2 132 199;--color-accent-700: 3 105 161;--color-accent-800: 7 89 133;--color-accent-900: 12 74 110;--color-accent-950: 8 47 73;--bg-base-50: 255 253 250;--bg-base-100: 255 251 245;--bg-base-200: 254 247 237;--bg-base-300: 253 242 226;--bg-base-400: 251 236 215;--bg-base-500: 249 229 201;--bg-base-600: 245 215 175;--bg-base-700: 100 110 125;--bg-base-800: 90 100 115;--bg-base-900: 80 90 105;--bg-base-950: 70 80 95;--bg-primary: var(--bg-base-100);--bg-secondary: var(--bg-base-200);--text-primary: var(--bg-base-800);--text-secondary: var(--bg-base-700);--border-color: var(--bg-base-300);--accent-color: var(--color-primary-600);--accent-color-hover: var(--color-primary-700);--pill-bg: var(--color-primary-50);--pill-text: var(--color-primary-700);--transition-bounce: cubic-bezier(.68, -.6, .32, 1.6);--transition-smooth: cubic-bezier(.4, 0, .2, 1);--transition-bouncy: cubic-bezier(.68, -.3, .265, 1.3);--accent: #e11d48;--accent-dark: #be123c;--black: 28, 25, 23;--gray: 41, 37, 36;--gray-light: 255, 251, 245;--gray-dark: 28, 25, 23;--gray-gradient: rgba(255, 251, 245, .9), rgba(254, 247, 237, .95);--box-shadow: 0 2px 6px rgba(var(--gray), 10%), 0 8px 24px rgba(var(--gray), 15%), 0 16px 32px rgba(var(--gray), 15%);--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;--table-header-bg: var(--color-primary-500);--table-header-text: 255, 255, 255;--table-row-border: 229, 231, 235;--table-row-highlight-bg: 249, 250, 251}.gradient-text{background:linear-gradient(135deg,rgb(var(--color-primary-500)),rgb(var(--color-accent-500)));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}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.7;-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.75;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:.875em}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:.5rem 0;line-height:1.7}@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.75}.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:.5em 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 hr{border-color:rgba(var(--gray),.2)}.prose table{width:100%;margin:2.5em 0;border-collapse:separate;border-spacing:0;border-radius:12px;overflow:hidden;box-shadow:0 4px 12px rgba(var(--black),.08);font-size:1rem}.prose th{background-color:rgb(var(--table-header-bg));color:rgb(var(--table-header-text));font-weight:600;text-align:left;padding:1rem 1.25rem;font-size:.85em;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid rgba(var(--table-header-text),.2);border-right:1px solid rgba(var(--table-header-text),.2)}.prose th:last-child{border-right:none}.prose td{padding:1rem 1.25rem;border-bottom:1px solid rgb(var(--table-row-border));border-right:1px solid rgb(var(--table-row-border));background-color:rgb(var(--table-header-text));color:rgb(var(--gray-dark));transition:background-color .2s ease-in-out}.prose td:last-child{border-right:none}.prose tr:first-child th:first-child{border-top-left-radius:12px}.prose tr:first-child th:last-child{border-top-right-radius:12px}.prose tr:last-child td{border-bottom:none}.prose tr:last-child td:first-child{border-bottom-left-radius:12px}.prose tr:last-child td:last-child{border-bottom-right-radius:12px}.prose tr:has(strong) td{background-color:rgb(var(--table-row-highlight-bg))}.prose td strong{color:rgb(var(--table-header-bg));font-weight:600}.prose blockquote{position:relative;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);border-color: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)}.posts-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(400px,1fr));gap:2rem;margin-bottom:2rem}@media (max-width: 768px){.posts-grid{grid-template-columns:1fr;gap:1.5rem;padding:0 1rem}}html{scroll-behavior:smooth}.secondary-button svg{transition:transform .2s ease}.secondary-button:hover svg{transform:translateY(4px)}@font-face{font-family:Atkinson;src:url({fonts.regular}) format("woff");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Atkinson;src:url({fonts.bold}) format("woff");font-weight:700;font-style:normal;font-display:swap}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:3.5rem;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:1.5rem}.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:2rem;height:2rem;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.05rem;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:1.75rem;height:1.75rem;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: 480px){nav[data-astro-cid-3ef6ksr2]{height:3.25rem;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:1.75rem;height:1.75rem;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.65rem;height:1.65rem}}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:920px;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))}@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}}
