@charset "UTF-8";@font-face{font-family:Instrument Sans Variable;font-style:normal;font-display:optional;font-weight:400 700;font-stretch:75% 100%;src:url("./media/instrument-sans-latin-ext-wdth-normal-U4MPYY6T.woff2") format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Instrument Sans Variable;font-style:normal;font-display:optional;font-weight:400 700;font-stretch:75% 100%;src:url("./media/instrument-sans-latin-wdth-normal-NDB4KJ7D.woff2") format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root,:root[data-theme=light]{color-scheme:light;--bg: #e5e5e5;--surface: #f2f2f2;--fg: #1d1d1c;--fg-muted: #555555;--accent: #0066d4;--on-accent: #ffffff;--link: #005fc5;--focus: #0066d4;--rule: rgb(29 29 28 / .14);--px-1: #0066d4;--px-2: #7fb2ec;--px-3: #b9d5f5;--px-4: #c9b8f5;--px-5: #dccff8;--px-6: #ffc9a8;--stone: #a3a39d;--stone-dark: #85857f;--stone-light: #bdbdb6;--moai-eye-white: #f2f2f2;--intro-bg: #1d1d1c;--intro-fg: #e5e5e5;--ambient-alpha: .12;--gum: #f59ac1;--band-pastel-bg: #b9d5f5;--band-pastel-fg: #1d1d1c;--band-pastel-muted: #2f4560;--band-pastel-link: #0b4f96;--band-lavender-bg: #dccff8;--band-lavender-fg: #1d1d1c;--band-lavender-muted: #4a3d6b;--band-lavender-link: #0b4f96;--band-ink-bg: #1d1d1c;--band-ink-fg: #f2f2f2;--band-ink-muted: #b8b8b2;--band-ink-link: #9ccaff}:root[data-theme=dark]{color-scheme:dark;--bg: #121212;--surface: #1c1c1c;--fg: rgb(255 255 255 / .87);--fg-muted: #aaaaaa;--accent: #0066d4;--on-accent: #ffffff;--link: #4d9bf0;--focus: #4d9bf0;--rule: rgb(255 255 255 / .12);--px-1: #0066d4;--px-2: #2f86ea;--px-3: #6aa9f2;--px-4: #9d8cf0;--px-5: #c2b4f5;--px-6: #f0a982;--stone: #7d7d78;--stone-dark: #62625e;--stone-light: #9a9a94;--moai-eye-white: #d9d9d4;--intro-bg: #e0e0e0;--intro-fg: #121212;--ambient-alpha: .18;--gum: #ef86b6;--band-pastel-bg: #14243b;--band-pastel-fg: #e8f0fa;--band-pastel-muted: #a9bdd6;--band-pastel-link: #9ccaff;--band-lavender-bg: #211a38;--band-lavender-fg: #efeafc;--band-lavender-muted: #bdb2dc;--band-lavender-link: #9ccaff;--band-ink-bg: #0b1f3d;--band-ink-fg: #eef4fc;--band-ink-muted: #a9bdd6;--band-ink-link: #9ccaff}:root{--space-1: 8px;--space-2: 16px;--space-3: 24px;--space-4: 32px;--space-6: 48px;--space-8: 64px;--space-12: 96px;--space-16: 128px;--step--1: .9rem;--step-0: 1.125rem;--step-1: 1.406rem;--step-2: 1.758rem;--step-3: 2.197rem;--step-4: 2.747rem;--step-5: 3.433rem;--step-hero: clamp(2.747rem, 1.6rem + 5.2vw, 6rem);--font-sans: "Instrument Sans Variable", ui-sans-serif, system-ui, sans-serif;--measure: 58ch;--container: 1200px;--gutter: 16px;--header-h: 64px}@media(min-width:768px){:root{--gutter: 32px;--header-h: 96px}}*,*:before,*:after{box-sizing:border-box}html{overflow-x:clip;-webkit-text-size-adjust:100%;text-size-adjust:100%}main *,app-site-footer *{scroll-margin-top:var(--header-h)}@media(width<768px){main *,app-site-footer *{scroll-margin-bottom:calc(48px + 2 * var(--space-2))}}body{margin:0;min-height:100svh;background:var(--bg);color:var(--fg);font-family:var(--font-sans);font-size:var(--step-0);line-height:1.55;font-variation-settings:"wdth" 100;overflow-x:clip}h1,h2,h3{margin:0;font-weight:600;line-height:1.1;font-variation-settings:"wdth" 85;text-wrap:balance}h1{font-size:var(--step-hero);line-height:1.02;font-variation-settings:"wdth" 75;letter-spacing:-.01em}h2{font-size:clamp(2rem,1.4rem + 2.5vw,var(--step-4))}h3{font-size:clamp(var(--step-1),1.1rem + 1.2vw,var(--step-2))}p{margin:0;max-width:var(--measure);text-wrap:pretty}a{color:var(--link);text-underline-offset:.2em}a,button,summary,label{touch-action:manipulation}:focus-visible{outline:3px solid var(--focus);outline-offset:3px}img,svg,canvas{display:block;max-width:100%}.container{width:100%;max-width:calc(var(--container) + 2 * var(--gutter));margin-inline:auto;padding-inline:var(--gutter)}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}#main:focus{outline:none}.skip-link{position:absolute;left:var(--space-2);top:-100px;z-index:60;padding:var(--space-1) var(--space-2);background:var(--fg);color:var(--bg)}.skip-link:focus{top:var(--space-2)}.button{display:inline-flex;align-items:center;gap:var(--space-1);min-height:48px;padding:0 var(--space-3);border:2px solid var(--fg);color:var(--fg);font:inherit;font-weight:600;text-decoration:none;background:transparent;cursor:pointer}.repo-link{display:inline-flex;align-items:center;gap:var(--space-1);min-height:40px;padding:0 var(--space-2);border:2px solid var(--fg);color:var(--fg);font-size:var(--step--1);font-weight:600;text-decoration:none}@media(pointer:coarse){.repo-link{min-height:44px}.touch-line{padding-block:max(0px,(44px - 1lh) / 2)}}.repo-link:hover{background:var(--fg);color:var(--bg)}@media(hover:hover)and (prefers-reduced-motion:no-preference){.repo-link{transition:background-color .12s steps(2),color .12s steps(2)}}.button--primary{border-color:var(--accent);background:var(--accent);color:var(--on-accent)}@media(hover:hover)and (prefers-reduced-motion:no-preference){.button{transition:transform .12s steps(2),box-shadow .12s steps(2)}.button--primary:hover{transform:translate(-4px,-4px);box-shadow:4px 4px 0 var(--fg)}}.button:active,.repo-link:active{transform:translate(2px,2px);box-shadow:none}@media(prefers-reduced-motion:reduce){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}}html.theme-switching *{view-transition-name:none!important}html.theme-switching::view-transition-old(root){animation:none}html.theme-switching::view-transition-new(root){animation:theme-reveal .7s cubic-bezier(.65,0,.35,1)}@keyframes theme-reveal{0%{clip-path:circle(0 at var(--reveal-x) var(--reveal-y))}to{clip-path:circle(var(--reveal-r) at var(--reveal-x) var(--reveal-y))}}html.theme-switching.theme-to-dark::view-transition-old(root){z-index:1;animation:theme-reveal .7s cubic-bezier(.65,0,.35,1) reverse both}html.theme-switching.theme-to-dark::view-transition-new(root){animation:none}.band{position:relative;isolation:isolate;color:var(--fg)}.band:before{content:"";position:absolute;inset:0 calc(50% - 50vw);z-index:-1;background:var(--band-bg);clip-path:inset(0 var(--band-inset, 0%))}.band--pastel{--band-bg: var(--band-pastel-bg);--fg: var(--band-pastel-fg);--fg-muted: var(--band-pastel-muted);--link: var(--band-pastel-link);--focus: var(--band-pastel-link);--rule: color-mix(in srgb, var(--band-pastel-fg) 20%, transparent)}.band--lavender{--band-bg: var(--band-lavender-bg);--fg: var(--band-lavender-fg);--fg-muted: var(--band-lavender-muted);--link: var(--band-lavender-link);--focus: var(--band-lavender-link);--rule: color-mix(in srgb, var(--band-lavender-fg) 20%, transparent)}.band--ink{--band-bg: var(--band-ink-bg);--fg: var(--band-ink-fg);--fg-muted: var(--band-ink-muted);--link: var(--band-ink-link);--focus: var(--band-ink-link);--rule: color-mix(in srgb, var(--band-ink-fg) 20%, transparent)}:where([data-magnetic]){display:inline-block;translate:var(--mx, 0px) var(--my, 0px)}html[data-lang-swap]:after{--fringe: var(--space-6);content:attr(data-lang-swap);position:fixed;inset:calc(-1 * var(--fringe)) 0;z-index:1000;display:grid;place-items:center;background:var(--accent);color:#fff;font-family:var(--font-sans);font-size:clamp(2.5rem,10vw,7rem);font-weight:600;letter-spacing:-.03em;pointer-events:none;will-change:transform;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 3' shape-rendering='crispEdges'%3E%3Cpath d='M5 0h1v1h-1zM0 1h1v1h-1zM5 1h1v1h-1zM6 1h1v1h-1zM8 1h1v1h-1zM10 1h1v1h-1zM0 2h1v1h-1zM1 2h1v1h-1zM2 2h1v1h-1zM3 2h1v1h-1zM4 2h1v1h-1zM5 2h1v1h-1zM6 2h1v1h-1zM7 2h1v1h-1zM8 2h1v1h-1zM9 2h1v1h-1zM10 2h1v1h-1zM11 2h1v1h-1z'/%3E%3C/svg%3E") top left/192px var(--fringe) repeat-x,linear-gradient(#000 0 0) center/100% calc(100% - 2 * var(--fringe)) no-repeat,url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 3' shape-rendering='crispEdges'%3E%3Cpath d='M0 0h1v1h-1zM1 0h1v1h-1zM2 0h1v1h-1zM3 0h1v1h-1zM4 0h1v1h-1zM5 0h1v1h-1zM6 0h1v1h-1zM7 0h1v1h-1zM8 0h1v1h-1zM9 0h1v1h-1zM10 0h1v1h-1zM11 0h1v1h-1zM0 1h1v1h-1zM5 1h1v1h-1zM6 1h1v1h-1zM8 1h1v1h-1zM10 1h1v1h-1zM0 2h1v1h-1zM6 2h1v1h-1zM9 2h1v1h-1zM10 2h1v1h-1z'/%3E%3C/svg%3E") bottom left/192px var(--fringe) repeat-x;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 3' shape-rendering='crispEdges'%3E%3Cpath d='M5 0h1v1h-1zM0 1h1v1h-1zM5 1h1v1h-1zM6 1h1v1h-1zM8 1h1v1h-1zM10 1h1v1h-1zM0 2h1v1h-1zM1 2h1v1h-1zM2 2h1v1h-1zM3 2h1v1h-1zM4 2h1v1h-1zM5 2h1v1h-1zM6 2h1v1h-1zM7 2h1v1h-1zM8 2h1v1h-1zM9 2h1v1h-1zM10 2h1v1h-1zM11 2h1v1h-1z'/%3E%3C/svg%3E") top left/192px var(--fringe) repeat-x,linear-gradient(#000 0 0) center/100% calc(100% - 2 * var(--fringe)) no-repeat,url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 3' shape-rendering='crispEdges'%3E%3Cpath d='M0 0h1v1h-1zM1 0h1v1h-1zM2 0h1v1h-1zM3 0h1v1h-1zM4 0h1v1h-1zM5 0h1v1h-1zM6 0h1v1h-1zM7 0h1v1h-1zM8 0h1v1h-1zM9 0h1v1h-1zM10 0h1v1h-1zM11 0h1v1h-1zM0 1h1v1h-1zM5 1h1v1h-1zM6 1h1v1h-1zM8 1h1v1h-1zM10 1h1v1h-1zM0 2h1v1h-1zM6 2h1v1h-1zM9 2h1v1h-1zM10 2h1v1h-1z'/%3E%3C/svg%3E") bottom left/192px var(--fringe) repeat-x}html[data-lang-phase=out]:after{animation:lang-cover .5s cubic-bezier(.7,0,.3,1) both}html[data-lang-phase=in]:after{animation:lang-lift .55s cubic-bezier(.7,0,.3,1) .1s both}@keyframes lang-cover{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes lang-lift{0%{transform:translateY(0)}to{transform:translateY(-100%)}}@media(prefers-reduced-motion:reduce){html[data-lang-swap]:after{display:none}}#about .statement .word{--faded: color-mix(in srgb, var(--fg) 55%, var(--band-bg, var(--bg)));color:color-mix(in srgb,var(--fg) calc(var(--lit, 1) * 100%),var(--faded))}html.smooth app-site-header{position:fixed;inset:0 0 auto}html.smooth #smooth-content{padding-top:var(--header-h)}
