.astro-route-announcer{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;top:0;left:0;overflow:hidden}.footer-inner[data-astro-cid-lv5damgc]{justify-content:flex-start;align-items:center;gap:var(--space-5);max-width:var(--content-width-wide);padding:var(--space-5);font-size:var(--text-sm);color:var(--color-text-faint);margin-inline:auto;display:flex}.footer-inner[data-astro-cid-lv5damgc] a[data-astro-cid-lv5damgc]{color:var(--color-text-muted)}.footer-inner[data-astro-cid-lv5damgc] a[data-astro-cid-lv5damgc]:hover{color:var(--color-accent)}.theme-toggle[data-astro-cid-nb24rpvp]{--margin:var(--space-5);top:calc(var(--margin) + mod(50svh - var(--margin), var(--field-cell)));right:calc(var(--margin) + mod(50% - var(--margin), var(--field-cell)));z-index:20;width:var(--field-cell);height:var(--field-cell);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-text-muted);-webkit-tap-highlight-color:transparent;transition:color var(--duration-fast) var(--ease-out);padding:0;display:block;position:fixed}.theme-toggle[data-astro-cid-nb24rpvp]:before{content:"";inset:calc(var(--space-2) * -1);position:absolute}.theme-toggle[data-astro-cid-nb24rpvp]:focus-visible,.theme-toggle[data-astro-cid-nb24rpvp].is-hot{color:var(--color-accent)}@media (hover:hover){.theme-toggle[data-astro-cid-nb24rpvp]:hover{color:var(--color-accent)}}.theme-toggle[data-astro-cid-nb24rpvp].is-cooling{transition-duration:.9s}svg[data-astro-cid-nb24rpvp]{fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;width:100%;height:100%;overflow:visible}.icon-sun[data-astro-cid-nb24rpvp],.icon-morph[data-astro-cid-nb24rpvp],:root[data-theme=light] .icon-moon[data-astro-cid-nb24rpvp]{display:none}:root[data-theme=light] .icon-sun[data-astro-cid-nb24rpvp],.theme-toggle[data-astro-cid-nb24rpvp].is-morphing .icon-morph[data-astro-cid-nb24rpvp]{display:inline}.theme-toggle[data-astro-cid-nb24rpvp].is-morphing path[data-astro-cid-nb24rpvp]:not(.icon-morph){display:none}@media (width<=30rem){.theme-toggle[data-astro-cid-nb24rpvp]{--margin:var(--space-4)}}@media (scripting:none){.theme-toggle[data-astro-cid-nb24rpvp]{display:none}}@media print{.theme-toggle[data-astro-cid-nb24rpvp]{display:none}}.brand-corner[data-astro-cid-bsspqklq],.nav-corner[data-astro-cid-bsspqklq]{--margin:var(--space-5);--inset-x:calc(var(--margin) + mod(50% - var(--margin), var(--field-cell)));--inset-y:calc(var(--margin) + mod(50svh - var(--margin), var(--field-cell)));z-index:20}.brand-corner[data-astro-cid-bsspqklq]{top:var(--inset-y);left:var(--inset-x);position:absolute}.nav-corner[data-astro-cid-bsspqklq]{bottom:var(--inset-y);right:var(--inset-x);position:fixed}.brand[data-astro-cid-bsspqklq]{width:round(up, calc(var(--brand-chars) * 1ch + 2 * var(--space-3)), var(--field-cell));line-height:var(--field-cell);text-align:center;border-radius:var(--radius-md);background:var(--color-bg);font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-text);font-weight:600;display:block}.brand[data-astro-cid-bsspqklq] span[data-astro-cid-bsspqklq]{color:var(--color-accent)}.nav-links[data-astro-cid-bsspqklq]{min-width:calc(var(--field-cell) * 3);padding:0 var(--field-cell) 0 var(--space-3);border-radius:var(--radius-md);background:var(--color-bg);flex-direction:column;align-items:flex-end;margin:0;list-style:none;display:flex}.nav-links[data-astro-cid-bsspqklq] a[data-astro-cid-bsspqklq]{line-height:var(--field-cell);font-size:var(--text-sm);color:var(--color-text-muted);transition:color var(--duration-fast) var(--ease-out);display:block;position:relative}.nav-links[data-astro-cid-bsspqklq] a[data-astro-cid-bsspqklq]:hover{color:var(--color-text)}.nav-links[data-astro-cid-bsspqklq] a[data-astro-cid-bsspqklq][aria-current=page]{color:var(--color-accent)}.nav-spark[data-astro-cid-bsspqklq]{color:var(--color-accent);position:absolute;top:0;left:100%}.nav-links[data-astro-cid-bsspqklq] a[data-astro-cid-bsspqklq]:is(:focus-visible,[aria-current=page]){--heat:1}@media (hover:hover){.nav-links[data-astro-cid-bsspqklq] a[data-astro-cid-bsspqklq]:hover{--heat:1}}@media (width<=64rem){.nav-corner[data-astro-cid-bsspqklq]{height:calc(var(--field-cell) * 2 + mod(50svh, var(--field-cell)));background:var(--color-bg);bottom:0;left:0;right:0}.nav-links[data-astro-cid-bsspqklq]{justify-content:flex-end;align-items:center;gap:var(--space-6);height:calc(var(--field-cell) * 2);padding:0 var(--space-5);border-top:1px solid var(--color-border);border-radius:0;flex-direction:row}.nav-spark[data-astro-cid-bsspqklq]{width:var(--space-4)}}@media (width<=30rem){.brand-corner[data-astro-cid-bsspqklq]{--margin:var(--space-4)}}:root{color-scheme:dark;--color-bg:#0a0a0d;--color-bg-raised:#131316;--color-bg-overlay:#1c1c20;--color-border:#232327;--color-border-strong:#333338;--color-text:#e8e8ea;--color-text-muted:#9a9aa2;--color-text-faint:#5c5c63;--color-accent:#f2b134;--color-accent-dim:#c98f1f;--color-accent-text:#0a0a0d;--color-accent-fill:#f2b134;--color-field:#92929c;--font-sans:ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono:ui-monospace, "SF Mono", "Cascadia Code", "Consolas", "Liberation Mono", monospace;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-lg:1.25rem;--text-xl:1.563rem;--text-2xl:1.953rem;--text-3xl:2.441rem;--text-4xl:3.052rem;--text-5xl:3.815rem;--text-fluid:clamp(var(--text-sm), 4.2vw, var(--text-xl));--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;--space-8:4rem;--space-9:6rem;--space-10:8rem;--radius-sm:.25rem;--radius-md:.5rem;--radius-lg:.75rem;--field-cell:28px;--grid-cell:calc(var(--field-cell) * 2);--page-padding:calc(var(--grid-cell) * 2) var(--grid-cell);--content-width:42rem;--content-width-wide:64rem;--ease-out:cubic-bezier(.16, 1, .3, 1);--duration-fast:.15s;--duration-base:.3s}:root[data-theme=light]{color-scheme:light;--color-bg:#f6f4ef;--color-bg-raised:#fdfcf9;--color-bg-overlay:#ebe8e1;--color-border:#e2ded5;--color-border-strong:#d0cbc0;--color-text:#18171b;--color-text-muted:#57565e;--color-text-faint:#8b8a90;--color-accent:#935f00;--color-accent-dim:#7a4f00;--color-accent-text:#18171b;--color-accent-fill:#eba52a;--color-field:#77746e}*,:before,:after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%}body{-webkit-font-smoothing:antialiased;line-height:1.5}img,picture,video,canvas,svg{max-width:100%;display:block}input,button,textarea,select{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:none}a{color:inherit;text-decoration:none}p,h1,h2,h3,h4{overflow-wrap:break-word}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:0s!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}body{background:var(--color-bg);min-height:100dvh;color:var(--color-text);font-family:var(--font-sans);font-size:var(--text-base);flex-direction:column;display:flex}main{flex:1}.cursor-reveal{z-index:-1;pointer-events:none;width:100%;height:100%;position:fixed;inset:0}body.fixed-viewport{height:100dvh;overflow:hidden}h1,h2,h3,h4{letter-spacing:-.02em;font-weight:600;line-height:1.15}code,pre,kbd{font-family:var(--font-mono)}::selection{background:var(--color-accent-fill);color:var(--color-accent-text)}@media (width<=64rem){body:not(.fixed-viewport){padding-bottom:calc(var(--field-cell) * 3)}}@media (width<=45rem){:root{--grid-cell:var(--field-cell);--page-padding:calc(var(--grid-cell) * 3) var(--grid-cell) calc(var(--grid-cell) * 2)}}@media print{.cursor-reveal,.brand-corner,.nav-corner,.site-footer{display:none}body{color:#000;background:#fff;padding-bottom:0}a{color:#000}}.typewriter{display:flow-root;position:relative}.typewriter.is-typing{mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);mask-position:0 0, 0 var(--typed-top);mask-size:100% var(--typed-top), var(--typed-width) var(--typed-band);overflow:hidden;mask-repeat:no-repeat}.typewriter.is-typing:after{content:"";width:var(--caret-width);height:var(--caret-height);background:var(--color-accent-fill);translate:var(--caret-x) var(--caret-y);position:absolute;top:0;left:0}:root[data-theme-sweep]::view-transition-old(root),:root[data-theme-sweep]::view-transition-new(root){mix-blend-mode:normal;animation:none}:root[data-theme-sweep]::view-transition-new(root){animation:theme-sweep var(--sweep-ms) var(--sweep-ease) both}@keyframes theme-sweep{0%{clip-path:circle(var(--sweep-from) at var(--sweep-x) var(--sweep-y))}to{clip-path:circle(var(--sweep-to) at var(--sweep-x) var(--sweep-y))}}:root[data-theme-flip] *,:root[data-theme-flip] :before,:root[data-theme-flip] :after{transition:none!important}.astro-code,.astro-code span{color:var(--shiki-dark);background-color:var(--shiki-dark-bg)}:root[data-theme=light] :is(.astro-code,.astro-code span){color:var(--shiki-light);background-color:var(--shiki-light-bg)}.spark{--arm:9px;--stroke:1.5px;width:var(--field-cell);height:var(--field-cell);display:block;position:relative}.spark>span{top:calc(50% - var(--stroke) / 2);left:calc(50% - var(--arm) / 2);width:var(--arm);height:var(--stroke);border-radius:var(--stroke);scale:var(--heat,0);rotate:calc(var(--turn) * var(--heat,0));transition:scale var(--duration-base) var(--ease-out), rotate var(--duration-base) var(--ease-out);background:currentColor;position:absolute}.spark>span:first-child{--turn:90deg}.spark>span:nth-child(2){--turn:30deg}.spark>span:nth-child(3){--turn:-30deg}.keycap{place-items:center;gap:var(--space-2);min-width:2.5rem;height:1.625rem;padding:0 var(--space-2);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-bg-raised);box-shadow:inset 0 1px 0 color-mix(in oklab, var(--color-text) 7%, transparent);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.04em;color:var(--color-text-muted);transition:color var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out);border-bottom-width:3px;grid-auto-flow:column;line-height:1;display:inline-grid}.keycap:hover,.keycap:focus-visible{color:var(--color-accent);border-color:color-mix(in oklab, var(--color-accent) 45%, var(--color-border-strong))}.keycap kbd{color:var(--color-text-faint)}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.is-over-pikachu{cursor:pointer}
