:root{--ink:#1d1a24;--ink-2:#4b4656;--ink-3:#7a7484;--paper:#fbf5ea;--paper-2:#f5ecdc;--card:#fffcf6;--sun:#ffd84d;--sun-soft:#fff1b8;--sky:#7cc0e6;--sky-soft:#dcf0fb;--lilac:#b6a4f4;--lilac-soft:#ece6ff;--coral:#f4978a;--coral-soft:#ffe1db;--mint:#86d5b0;--mint-soft:#dbf5e8;--rain:#a7b6cb;--rain-soft:#e5ebf3;--gold:#f5b04f;--gold-soft:#ffe9c6;--teal:#6fcfcb;--teal-soft:#d7f4f2;--pink:#f5a3cb;--pink-soft:#ffe2ef;--lime:#c3dc63;--lime-soft:#eff6d0;--blue:#9db7f5;--blue-soft:#e4ebfd;--red:#e0614f;--line:2.5px solid var(--ink);--r:22px;--r-sm:14px;--shadow:5px 5px 0 var(--ink);--shadow-sm:3px 3px 0 var(--ink);--shadow-lg:8px 8px 0 var(--ink);--spring:cubic-bezier(.34, 1.56, .64, 1);--out:cubic-bezier(.22, 1, .36, 1);--wrap:1180px;--gutter:clamp(20px, 4.5vw, 44px);color-scheme:light}@supports (transition-timing-function:linear(0, 1)){:root{--spring:linear(0, .009, .035 2.1%, .141 4.4%, .723 12.9%, .938 16.7%, 1.017 19.4%, 1.067, 1.099 24.3%, 1.108 26%, 1.105, 1.088 31.2%, 1.035 37.5%, 1.012 41.7%, .996 48.1%, .999 61.9%, 1)}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:96px}@media (width<=860px){html{scroll-padding-top:16px}}body{background:var(--paper);color:var(--ink);font-family:var(--font-display);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-size:1.125rem;line-height:1.55}body>main,body>footer{overflow-x:clip}img,svg{max-width:100%;display:block}img{height:auto}a{color:inherit}button{font:inherit;color:inherit}h1,h2,h3,h4{letter-spacing:-.035em;text-wrap:balance;margin:0;font-weight:780;line-height:1}p{text-wrap:pretty;margin:0}code,kbd,pre{font-family:var(--font-mono)}:not(pre)>code{background:color-mix(in srgb, var(--ink) 8%, transparent);white-space:nowrap;border-radius:6px;padding:.08em .38em;font-size:.86em}::selection{background:var(--sun);color:var(--ink)}:focus-visible{outline:3px solid var(--ink);outline-offset:3px;border-radius:6px}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.skip{z-index:100;border:var(--line);background:var(--sun);border-radius:999px;padding:10px 16px;font-weight:700;text-decoration:none;position:absolute;top:-60px;left:12px}.skip:focus{top:12px}.wrap{width:min(100% - 2 * var(--gutter), var(--wrap));margin-inline:auto}.section{padding-block:clamp(72px,10vw,136px)}.stack>*+*{margin-top:var(--gap,1rem)}.display{letter-spacing:-.045em;font-size:clamp(3.1rem,min(8.4vw,13svh),7.2rem);font-weight:800;line-height:.9}.h2{letter-spacing:-.04em;font-size:clamp(2.3rem,5.4vw,4.4rem);line-height:.95}.h3{letter-spacing:-.025em;font-size:clamp(1.35rem,2.2vw,1.6rem);line-height:1.1}.serif{font-family:var(--font-serif);letter-spacing:-.01em;font-style:italic;font-weight:400}.display .serif,.h2 .serif{letter-spacing:-.02em;font-size:1.08em}.lead{color:var(--ink-2);max-width:38em;font-size:clamp(1.15rem,1.6vw,1.32rem);line-height:1.5}.muted{color:var(--ink-2)}.eyebrow{border:var(--line);background:var(--card);box-shadow:var(--shadow-sm);letter-spacing:-.01em;border-radius:999px;align-items:center;gap:.5em;padding:.38em .9em .38em .7em;font-size:.92rem;font-weight:650;line-height:1.2;display:inline-flex}.eyebrow .dot{border:2px solid var(--ink);background:var(--c,var(--sun));border-radius:50%;width:.7em;height:.7em}.squiggle{text-decoration:underline wavy var(--c,var(--coral));text-underline-offset:.16em;text-decoration-skip-ink:none;text-decoration-thickness:.09em}.btn{--bg:var(--sun);border:var(--line);background:var(--bg);min-height:54px;color:var(--ink);box-shadow:4px 4px 0 var(--ink);letter-spacing:-.015em;white-space:nowrap;cursor:pointer;transition:transform .25s var(--spring), box-shadow .25s var(--spring), background-color .2s;border-radius:999px;justify-content:center;align-items:center;gap:.55em;padding:.7em 1.3em;font-size:1.05rem;font-weight:720;line-height:1.1;text-decoration:none;display:inline-flex}.btn:hover{box-shadow:6px 6px 0 var(--ink);transform:translate(-2px,-2px)}.btn:active{box-shadow:1px 1px 0 var(--ink);transition-duration:60ms;transform:translate(3px,3px)}.btn svg{flex:none;width:1.2em;height:1.2em}.btn-ink{--bg:var(--ink);color:var(--paper);box-shadow:4px 4px 0 var(--coral)}.btn-ink:hover{box-shadow:6px 6px 0 var(--coral)}.btn-ink:active{box-shadow:1px 1px 0 var(--coral)}.btn-paper{--bg:var(--card)}.btn-sm{min-height:42px;box-shadow:3px 3px 0 var(--ink);padding:.5em 1em;font-size:.95rem}.btn-sub{opacity:.75;letter-spacing:0;margin-top:.15em;font-size:.72em;font-weight:560;display:block}.card{border:var(--line);border-radius:var(--r);background:var(--card);box-shadow:var(--shadow);position:relative}.kbd{border:2px solid var(--ink);background:var(--card);min-width:1.9em;height:1.9em;font-family:var(--font-mono);border-bottom-width:4px;border-radius:8px;place-items:center;padding:0 .45em;font-size:.82rem;font-weight:600;line-height:1;display:inline-grid}.keys{gap:4px;display:inline-flex}.tag{border:2px solid var(--ink);background:var(--c,var(--sun-soft));border-radius:999px;padding:.22em .65em;font-size:.8rem;font-weight:700;line-height:1.2;display:inline-block}[data-color=sun]{--c:var(--sun);--c-soft:var(--sun-soft)}[data-color=sky]{--c:var(--sky);--c-soft:var(--sky-soft)}[data-color=lilac]{--c:var(--lilac);--c-soft:var(--lilac-soft)}[data-color=coral]{--c:var(--coral);--c-soft:var(--coral-soft)}[data-color=mint]{--c:var(--mint);--c-soft:var(--mint-soft)}[data-color=rain]{--c:var(--rain);--c-soft:var(--rain-soft)}[data-color=gold]{--c:var(--gold);--c-soft:var(--gold-soft)}[data-color=teal]{--c:var(--teal);--c-soft:var(--teal-soft)}[data-color=pink]{--c:var(--pink);--c-soft:var(--pink-soft)}[data-color=lime]{--c:var(--lime);--c-soft:var(--lime-soft)}[data-color=blue]{--c:var(--blue);--c-soft:var(--blue-soft)}.prose a{text-underline-offset:3px;text-decoration-thickness:2px;text-decoration-color:var(--coral)}.prose a:hover{text-decoration-color:var(--ink)}.js [data-reveal]{opacity:0;transform:translateY(28px) rotate(var(--tilt,0deg)) scale(.98);transition:opacity .6s var(--out), transform .8s var(--spring);transition-delay:calc(var(--i,0) * 70ms)}.js [data-reveal].is-in{opacity:1;transform:none}@keyframes float{0%,to{transform:translateY(0) rotate(var(--r0,0deg))}50%{transform:translateY(var(--float,-10px)) rotate(var(--r1,4deg))}}@keyframes hop{0%,to{transform:translateY(0)scale(1)}25%{transform:translateY(2%)scale(1.04,.95)}55%{transform:translateY(-9%)scale(.97,1.04)}80%{transform:translateY(.5%)scale(1.02,.98)}}@keyframes wiggle{0%,to{transform:rotate(0)}25%{transform:rotate(-5deg)}75%{transform:rotate(5deg)}}@media (prefers-reduced-motion:no-preference){@view-transition{navigation:auto}::view-transition-old(root){animation:.22s var(--out) both vt-out}::view-transition-new(root){animation:.42s var(--out) both vt-in}::view-transition-group(*){animation-duration:.5s;animation-timing-function:var(--out)}}@keyframes vt-out{to{opacity:0;transform:translateY(-8px)}}@keyframes vt-in{0%{opacity:0;transform:translateY(14px)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.js [data-reveal]{opacity:1;transform:none}}
