@import"https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap";:root{--accent: #0088cc;--accent-hover: #0077b5;--accent-subtle: rgba(0, 136, 204, .08);--accent-glow: rgba(0, 136, 204, .15);--surface: #fafaf9;--surface-elevated: #ffffff;--black: 23, 23, 22;--gray: 115, 115, 110;--gray-light: 245, 245, 244;--gray-dark: 41, 41, 40;--border: 229, 229, 224;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .04);--shadow-md: 0 4px 12px rgba(0, 0, 0, .06), 0 1px 3px rgba(0, 0, 0, .04);--shadow-lg: 0 8px 30px rgba(0, 0, 0, .08), 0 2px 8px rgba(0, 0, 0, .04);--shadow-accent: 0 8px 30px var(--accent-glow), 0 2px 8px rgba(0, 0, 0, .04);--gray-gradient: rgba(var(--gray-light), 50%), var(--surface);--box-shadow: var(--shadow-lg);--ease-out: cubic-bezier(.16, 1, .3, 1);--duration-base: .3s}@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:Plus Jakarta Sans,Atkinson,system-ui,sans-serif;margin:0;padding:0;text-align:left;background:var(--surface);word-wrap:break-word;overflow-wrap:break-word;color:rgb(var(--gray-dark));font-size:18px;line-height:1.7;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body:after{content:"";position:fixed;inset:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");opacity:.015;pointer-events:none;z-index:9999}main{width:760px;max-width:calc(100% - 2em);margin:auto;padding:3em 1em}main>*{opacity:0;transform:translateY(12px);animation:fadeUp .5s var(--ease-out) forwards}main>*:nth-child(1){animation-delay:0ms}main>*:nth-child(2){animation-delay:40ms}main>*:nth-child(3){animation-delay:80ms}main>*:nth-child(4){animation-delay:.12s}main>*:nth-child(5){animation-delay:.16s}main>*:nth-child(6){animation-delay:.2s}main>*:nth-child(7){animation-delay:.24s}main>*:nth-child(8){animation-delay:.28s}@keyframes fadeUp{to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion: reduce){main>*{animation:none;opacity:1;transform:none}}h1,h2,h3,h4,h5,h6{margin:0 0 .5rem;color:rgb(var(--black));line-height:1.15;font-weight:600;letter-spacing:-.02em;text-wrap:balance}h1{font-size:2.75em;font-weight:700;letter-spacing:-.03em}h2{font-size:1.875em;margin-top:2em}h3{font-size:1.375em;margin-top:1.5em}h4{font-size:1.125em}h5{font-size:1em}strong,b{font-weight:700}a{color:var(--accent);text-decoration:none;transition:color var(--duration-base) ease}a:hover{color:var(--accent-hover)}p a,li a{text-decoration:underline;text-decoration-color:var(--accent-subtle);text-underline-offset:2px;transition:text-decoration-color var(--duration-base) ease,color var(--duration-base) ease}p a:hover,li a:hover{text-decoration-color:var(--accent)}p{margin-bottom:1em}textarea{width:100%;font-size:16px}input{font-size:16px}table{width:100%}img{max-width:100%;height:auto;border-radius:12px}code{font-family:JetBrains Mono,ui-monospace,monospace;font-size:.9em;padding:.2em .4em;background-color:rgb(var(--gray-light));border-radius:4px}pre{padding:1.5em;border-radius:12px;overflow-x:auto}pre>code{all:unset;font-family:JetBrains Mono,ui-monospace,monospace}blockquote{border-left:3px solid var(--accent);padding:.5em 0 .5em 1.25em;margin:1.5em 0;font-size:1.1em;color:rgb(var(--gray));font-style:italic}hr{border:none;border-top:1px solid rgb(var(--border));margin:2em 0}@media (max-width: 720px){body{font-size:18px}main{padding:1em}}.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}header{margin:0;padding:0 1.5em;background:var(--surface-elevated);border-bottom:1px solid rgb(var(--border));position:sticky;top:0;z-index:100;backdrop-filter:blur(12px);background:#ffffffe6}header h2{margin:0;font-size:1em}header h2 a,header h2 a.active{text-decoration:none;font-weight:600;color:rgb(var(--black));letter-spacing:-.01em}header a{display:inline-block;text-decoration:none}header a.active{font-weight:600;text-decoration:none}nav{display:flex;align-items:center;justify-content:space-between;max-width:760px;margin:0 auto}nav a{padding:1.125em .75em;color:rgb(var(--gray));border-bottom:2px solid transparent;text-decoration:none;font-size:.9375em;font-weight:500;transition:color var(--duration-base) ease,border-color var(--duration-base) ease}nav a:hover{color:rgb(var(--black))}nav a.active{color:rgb(var(--black));border-bottom-color:var(--accent)}.nav-content{display:flex;align-items:center;gap:.25em}.internal-links{display:flex;align-items:center}.mobile-menu-toggle{display:none;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:44px;height:44px;padding:10px;background:transparent;border:none;cursor:pointer;z-index:100;border-radius:8px;transition:background var(--duration-base) ease}.mobile-menu-toggle:hover{background:rgb(var(--gray-light))}.hamburger-line{display:block;width:20px;height:2px;background-color:rgb(var(--gray-dark));border-radius:2px;transition:transform .3s var(--ease-out),opacity .2s ease}.mobile-menu-toggle.open .hamburger-line:nth-child(1){transform:translateY(7px) rotate(45deg)}.mobile-menu-toggle.open .hamburger-line:nth-child(2){opacity:0}.mobile-menu-toggle.open .hamburger-line:nth-child(3){transform:translateY(-7px) rotate(-45deg)}@media (max-width: 600px){header{padding:0 1em}.mobile-menu-toggle{display:flex}.nav-content{position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:stretch;background:var(--surface-elevated);border-bottom:1px solid rgb(var(--border));padding:0;max-height:0;overflow:hidden;transition:max-height .3s var(--ease-out),padding .3s var(--ease-out)}.nav-content.open{max-height:320px;padding:.5em 1em 1em}.nav-content .internal-links{display:flex;flex-direction:column;width:100%}.nav-content .internal-links a{padding:.875em 0;border-bottom:1px solid rgb(var(--border))}.nav-content .internal-links a:last-child{border-bottom:none}.language-picker-wrapper{padding-top:.75em}header nav{position:relative}}.language-picker{appearance:none;-webkit-appearance:none;font-family:inherit;font-size:.8125em;font-weight:500;text-transform:uppercase;letter-spacing:.04em;padding:.5em 2em .5em .75em;border:1px solid rgb(var(--border));border-radius:6px;background-color:var(--surface);color:rgb(var(--gray));cursor:pointer;transition:border-color var(--duration-base) ease,color var(--duration-base) ease;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2373736e' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .5em center}.language-picker:hover{border-color:rgb(var(--gray));color:rgb(var(--black))}.language-picker:focus{outline:none;border-color:var(--accent)}.language-picker option{text-transform:none;letter-spacing:normal}.blogroll ul{display:grid;grid-template-columns:repeat(2,1fr);gap:2rem;list-style-type:none;margin:0;padding:0}.blogroll ul li{text-align:left}.blogroll ul li>a{display:block;text-decoration:none;transition:transform var(--duration-base) var(--ease-out)}.blogroll ul li>a:hover{transform:translateY(-2px)}.blogroll .title{font-size:1.25rem;padding:0;margin:.75rem 0 .25rem;line-height:1.3}.blogroll ul li:first-child{grid-column:1 / -1}.blogroll ul li:first-child .title{font-size:1.75rem}.blogroll ul li img{margin-bottom:0;border-radius:12px;aspect-ratio:16 / 9;object-fit:cover;width:100%;transition:box-shadow var(--duration-base) var(--ease-out)}.blogroll .date{margin-top:0;color:rgb(var(--gray));font-size:.875em}.blogroll ul li a:hover h2{color:var(--accent)}.blogroll ul li a:hover .date{color:rgb(var(--gray-dark))}.blogroll ul a:hover img{box-shadow:var(--shadow-lg)}.tagcloud{display:flex;flex-wrap:wrap;gap:.5rem;list-style-type:none;margin:0 0 1.5rem;padding:0}.tagcloud li{margin:0;padding:0}.tagcloud a{display:block;padding:.5em 1em;font-size:.875em;font-weight:500;color:rgb(var(--gray-dark));background:rgb(var(--gray-light));border-radius:6px;text-transform:capitalize;transition:background var(--duration-base) ease,color var(--duration-base) ease}.tagcloud a:hover{background:var(--accent);color:#fff}.blogpost .hero-image{width:100%;margin-bottom:2rem}.blogpost .hero-image img{display:block;margin:0 auto;border-radius:16px;box-shadow:var(--shadow-lg);aspect-ratio:2 / 1;object-fit:cover;width:100%}.prose{width:680px;max-width:calc(100% - 2em);margin:auto;padding:1em;color:rgb(var(--gray-dark))}.prose p{margin-bottom:1.5em}.prose ul,.prose ol{margin-bottom:1.5em;padding-left:1.5em}.prose li{margin-bottom:.5em}.title{margin-bottom:1.5em;padding:1em 0;text-align:center;line-height:1}.blogpost .title h1{margin-bottom:.5rem;padding-bottom:0}.blogpost .date{color:rgb(var(--gray));font-size:.9375em}.blogpost .last-updated-on{font-style:italic;font-size:.875em}footer{padding:3em 1.5em 4em;margin-top:4em;border-top:1px solid rgb(var(--border));background:var(--surface);color:rgb(var(--gray));text-align:center;font-size:.875em}.social-links{display:flex;justify-content:center;gap:1.5em;margin-top:1em}.social-links a{text-decoration:none;color:rgb(var(--gray));transition:color var(--duration-base) ease}.social-links a:hover{color:var(--accent)}.pagination{width:100%;margin-top:3rem}.pagination ul{display:flex;justify-content:center;gap:.5rem;margin:0;padding:0;list-style-type:none}.pagination ul li{padding:0}.pagination ul li a,.pagination ul li span{display:block;padding:.625em 1em;text-align:center;text-transform:uppercase;font-size:.8125em;font-weight:500;letter-spacing:.04em;border-radius:6px;background:rgb(var(--gray-light));color:rgb(var(--gray-dark));transition:background var(--duration-base) ease,color var(--duration-base) ease}.pagination ul li a:hover{background:var(--accent);color:#fff}.welcome{margin-top:40vh;text-align:center;font-weight:600}.welcome .language-picker{margin:0;padding:0}strong,b{font-weight:600;color:rgb(var(--black))}ul,ol{padding-left:1.25em}li{margin-bottom:.375em}li::marker{color:var(--accent)}@media (max-width: 720px){body{font-size:17px}main{padding:2em 1em}h1{font-size:2em}h2{font-size:1.5em}.blogroll ul{grid-template-columns:1fr;gap:1.5rem}.blogroll ul li:first-child .title{font-size:1.375em}.blogroll .title{font-size:1.125em}}::selection{background:var(--accent-subtle);color:rgb(var(--black))}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
