@font-face{font-family:Recursive;src:url(/fonts/recursive.woff2)format("woff2-variations"),url(/fonts/recursive.woff2)format("woff2");font-weight:300 1000;font-display:swap}:root{--paper:#f2f5f9;--paper-2:#e6ecf4;--surface:#fff;--ink:#13233f;--ink-2:#4d5d78;--rule:#c9d4e3;--grid:#2f5d9e14;--marker:#ffd84d;--marker-ink:#13233f;--link:#2f5d9e;--ok:#1e8a5a;--buyer-bg:#13233f;--buyer-ink:#eef3fa;--buyer-2:#a9b9d3;--radius-s:6px;--radius-l:18px;--measure:66ch;color-scheme:light}@media (prefers-color-scheme:dark){:root{--paper:#0f1b30;--paper-2:#16253f;--surface:#182943;--ink:#e6ecf5;--ink-2:#a3b3cc;--rule:#2a3d5e;--grid:#a0beeb0f;--marker:#ffd84d;--marker-ink:#13233f;--link:#8fb4ec;--ok:#4cc28a;--buyer-bg:#e6ecf5;--buyer-ink:#13233f;--buyer-2:#4d5d78;color-scheme:dark}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--paper);color:var(--ink);font-variation-settings:"CASL" 0, "MONO" 0;margin:0;font-family:Recursive,system-ui,sans-serif;font-size:1.0625rem;font-weight:400;line-height:1.6;overflow-x:hidden}.casual{font-variation-settings:"CASL" 1, "MONO" 0}.precise{font-variation-settings:"CASL" 0, "MONO" 0}code,.mono,kbd{font-variation-settings:"CASL" 0, "MONO" 1;font-family:inherit;font-size:.92em}:not(pre)>code{background:var(--paper-2);border-radius:var(--radius-s);padding:.05em .3em}img,svg{max-width:100%;height:auto}a{color:var(--link);text-underline-offset:.2em;text-decoration-thickness:1px}a:hover{text-decoration-thickness:2px}:focus-visible{outline:3px solid var(--marker);outline-offset:3px;border-radius:3px}h1,h2,h3{letter-spacing:-.015em;margin:0;font-weight:800;line-height:1.12}h1{font-variation-settings:"CASL" 1, "MONO" 0;font-size:clamp(2.2rem,7vw,3.6rem)}h2{margin:2.6rem 0 .8rem;font-size:clamp(1.5rem,4vw,1.95rem)}h3{margin:1.6rem 0 .4rem;font-size:1.25rem}p{margin:0 0 1rem}mark,.marker{background:linear-gradient(transparent 12%, var(--marker) 12%, var(--marker) 88%, transparent 88%);color:var(--marker-ink);-webkit-box-decoration-break:clone;box-decoration-break:clone;padding:0 .15em}.wrap{max-width:1120px;margin:0 auto;padding:0 20px}.measure{max-width:var(--measure)}.muted{color:var(--ink-2)}.small{font-size:.875rem}.skip{position:absolute;left:-999px}.skip:focus{background:var(--surface);z-index:10;padding:8px 12px;top:8px;left:16px}.site-header{border-bottom:1px solid var(--rule)}.header-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;min-height:68px;display:flex}.wordmark{color:var(--ink);align-items:baseline;font-size:1.35rem;line-height:1;text-decoration:none;display:inline-flex}.wordmark .w-kid{font-variation-settings:"CASL" 1, "MONO" 0;font-weight:850}.wordmark .w-tech{font-variation-settings:"CASL" 0, "MONO" 1;color:var(--ink-2);font-weight:500}.site-header nav ul{gap:2px;margin:0;padding:0;list-style:none;display:flex}.site-header nav a{color:var(--ink-2);border-radius:var(--radius-s);padding:8px 10px;font-weight:600;text-decoration:none}.site-header nav a:hover{color:var(--ink)}.site-header nav a[aria-current]{color:var(--ink);box-shadow:inset 0 -3px 0 var(--marker);border-radius:0}main{padding:40px 0 72px}.btn{font:inherit;cursor:pointer;border:2px solid var(--ink);color:var(--ink);background:0 0;border-radius:999px;padding:12px 20px;font-weight:700;text-decoration:none;display:inline-block}.btn:hover{background:var(--paper-2)}.btn-primary{background:var(--ink);color:var(--paper)}.btn-primary:hover{background:var(--ink);box-shadow:0 0 0 4px var(--marker)}.layer{margin:2rem 0}.layer-name{color:var(--ink-2);align-items:center;gap:8px;margin:0 0 .6rem;font-size:.95rem;font-weight:700;display:flex}.layer-name:before{content:"";background:currentColor;border-radius:2px;width:22px;height:3px}.layer>:last-child{margin-bottom:0}.layer-kid{font-variation-settings:"CASL" 1, "MONO" 0;border-radius:var(--radius-l);background:var(--surface);background-image:linear-gradient(var(--grid) 1px, transparent 1px), linear-gradient(90deg, var(--grid) 1px, transparent 1px);border:1px solid var(--rule);background-size:22px 22px;padding:22px 24px;font-size:1.12rem;line-height:1.65}.layer-kid .layer-name{font-variation-settings:"CASL" 1, "MONO" 0}.layer-kid strong{background:linear-gradient(transparent 55%, var(--marker) 55%);color:inherit}.layer-grown{border-left:3px solid var(--ink);padding:4px 0 4px 22px}.layer-buyer{background:var(--buyer-bg);color:var(--buyer-ink);border-radius:var(--radius-s);padding:24px 26px}.layer-buyer .layer-name{color:var(--buyer-2)}.layer-buyer a{color:var(--marker)}.layer-buyer code{background:#7f7f7f33}.prose ul,.prose ol{margin:0 0 1rem;padding-left:1.25rem}.prose li{margin-bottom:.4rem}.prose table{border-collapse:collapse;width:100%;margin:1rem 0 1.25rem;font-size:.95rem;display:block;overflow-x:auto}.prose th,.prose td{border-bottom:1px solid var(--rule);text-align:left;vertical-align:top;padding:9px 12px 9px 0}.prose th{color:var(--ink-2);border-bottom:2px solid var(--ink);font-weight:700}.prose img{border-radius:var(--radius-l);border:1px solid var(--rule);margin:1.5rem 0;display:block}.site-footer{border-top:1px solid var(--rule);padding:36px 0 28px}.footer-inner{flex-wrap:wrap;justify-content:space-between;gap:28px;display:flex}.footer-inner p{max-width:46ch}.footer-links{flex-direction:column;gap:6px;display:flex}@media (width<=560px){body{font-size:1rem}.header-inner{padding-top:10px;padding-bottom:10px}.site-header nav a{padding:6px 8px}.layer-kid,.layer-buyer{padding:18px}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.prose p:has(>img),.prose p:has(>a>img),.prose .figure{width:min(1040px,100vw - 40px);margin:2rem 0 .5rem}.prose p:has(>img) img,.prose p:has(>a>img) img{border-radius:var(--radius-l);border:1px solid var(--rule);cursor:zoom-in;background:var(--surface);width:auto;max-width:100%;height:auto;max-height:82vh;margin:0;display:block}.prose .caption{color:var(--ink-2);max-width:var(--measure);margin:0 0 2rem;font-size:.9rem}.prose .caption:before{content:"";background:var(--marker);vertical-align:middle;border-radius:2px;width:18px;height:3px;margin-right:8px;display:inline-block}.prose .panels{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;width:min(1040px,100vw - 40px);margin:2rem 0 .5rem;display:grid}.prose .panels p{width:auto;margin:0}.prose .panels img{width:100%;max-height:none}@media (width>=1000px){.prose .panels{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (width<=640px){.prose .panels{grid-template-columns:1fr}}
