@font-face{font-family:DotGothic16;src:url(/fonts/DotGothic16-latin.woff2) format("woff2");font-display:swap}:root{color-scheme:light;--background: #fff;--foreground: #191b20;--muted: #555b65;--interactive: #30353e;--surface: #f7f8fa;--surface-border: #e6e8ec;--focus: #2457a6;--rain-color: rgba(25, 27, 32, .27);--theme-icon: url(/icons/theme-moon.svg);font-family:DotGothic16,ui-monospace,SFMono-Regular,Consolas,Liberation Mono,monospace;font-synthesis:none}@media(prefers-color-scheme:dark){:root:not([data-theme]){color-scheme:dark;--background: #000000;--foreground: #f1f2f4;--muted: #b6bac2;--interactive: #d4d7dc;--surface: #181a1c;--surface-border: #2b3038;--focus: #9dc0ff;--rain-color: rgba(241, 242, 244, .23);--theme-icon: url(/icons/theme-sun.svg)}}:root[data-theme=dark]{color-scheme:dark;--background: #000000;--foreground: #f1f2f4;--muted: #b6bac2;--interactive: #d4d7dc;--surface: #181a1c;--surface-border: #2b3038;--focus: #9dc0ff;--rain-color: rgba(241, 242, 244, .23);--theme-icon: url(/icons/theme-sun.svg)}*,*:before,*:after{box-sizing:border-box}html{background:var(--background);transition:background-color .32s ease}body{min-height:100svh;margin:0;background:var(--background);color:var(--foreground);transition:background-color .32s ease,color .32s ease}button{font:inherit;border:0;background:transparent;color:inherit;cursor:pointer}:focus-visible{outline:2px solid var(--focus);outline-offset:5px}main[tabindex="-1"]:focus{outline:none}h1,h2,h3,h4{margin:0;font-weight:400}h1{font-size:clamp(.875rem,4vw,2.8rem);line-height:1.4}h2{font-size:clamp(1.4rem,3vw,2rem)}h3,h4{font-size:1rem}main p{max-width:65ch;color:var(--muted);line-height:1.7}main{max-width:74.5rem;margin:0 auto;padding:1.5rem 1.25rem 7rem}main>header>p{max-width:45rem;margin:1.5rem 0 0}main>header+section{margin-top:clamp(1rem,2vw,4rem)}main>section+section{margin-top:clamp(4rem,8vw,7rem)}main a{color:var(--foreground);text-underline-offset:.3em}main a:hover{color:var(--interactive)}main ul{margin:1.75rem 0 0;padding:0;list-style:none}@media(prefers-reduced-motion:reduce){html,body{transition:none}}body>header{position:sticky;top:0;z-index:2;display:flex;align-items:flex-start;gap:1rem;width:min(100%,78rem);margin:0 auto;padding:clamp(1.25rem,3vw,2rem);background:var(--background);transition:background-color .32s ease}body>header.is-unpinned{position:relative}body>header>button{flex-shrink:0;margin-left:auto;display:grid;place-items:center;width:2.75rem;height:2.75rem;padding:0;border-radius:50%;color:var(--muted);transition:color .2s ease,background-color .2s ease}body>header>button:hover{background:color-mix(in srgb,var(--foreground) 7%,transparent);color:var(--foreground)}body>header>button:before{content:"";width:1.35rem;height:1.35rem;background:currentColor;-webkit-mask:var(--theme-icon) center / contain no-repeat;mask:var(--theme-icon) center / contain no-repeat}header nav ul{display:flex;flex-wrap:wrap;justify-content:center;gap:.7rem clamp(.9rem,2vw,1.6rem);margin:0;padding:0;list-style:none}body>header nav{min-width:0;padding-top:.32rem}body>header nav ul{justify-content:flex-start}header nav a,header nav button{display:inline-block;padding:.3rem .1rem;color:var(--muted);font-size:clamp(.82rem,1.5vw,.95rem);line-height:1.5;text-decoration:none;text-underline-offset:.35em;transition:color .2s ease}header nav [hidden]{display:none}header nav a:hover,header nav a:focus-visible,header nav a[aria-current=page],header nav button:hover,header nav button:focus-visible{color:var(--interactive);text-decoration:underline}@media(prefers-reduced-motion:reduce){body>header,body>header>button,header nav a,header nav button{transition:none}}.typewriter{display:inline-block;max-width:100%;vertical-align:bottom;white-space:nowrap;font-variant-ligatures:none}.typewriter[data-typing]{box-sizing:content-box;width:0;overflow:hidden;border-right:.075em solid currentColor;animation:typing 1.9s steps(var(--character-count),end) .2s forwards,cursor-blink .8s step-end .2s infinite}@keyframes typing{to{width:calc(var(--character-count) * 1ch)}}@keyframes cursor-blink{50%{border-color:transparent}}@media(prefers-reduced-motion:no-preference){.reveal-enabled [data-reveal]:not(.is-visible){opacity:0;transform:translateY(1rem)}}@media(prefers-reduced-motion:reduce){.typewriter[data-typing]{width:auto;border-right:0;animation:none}}
