:root{--ground:oklch(9% .014 248);--surface:oklch(14% .016 248);--raised:oklch(19% .016 248);--float:oklch(24% .017 248);--line:oklch(27% .016 248);--line-soft:oklch(21% .016 248);--ink:oklch(95% .006 248);--ink-2:oklch(77% .012 248);--ink-3:oklch(60% .016 248);--ink-on-go:oklch(17% .03 170);--go:oklch(72% .14 170);--go-press:oklch(66% .14 170);--go-text:oklch(76% .14 170);--go-quiet:oklch(72% .14 170/.14);--go-line:oklch(72% .14 170/.3);--go-glow:oklch(72% .14 170/.22);--hold:oklch(80% .15 85);--ink-on-hold:oklch(22% .05 85);--hold-text:oklch(84% .14 85);--hold-quiet:oklch(80% .15 85/.13);--hold-line:oklch(80% .15 85/.28);--ok:oklch(74% .15 155);--warn:oklch(78% .15 70);--bad:oklch(66% .2 25);--bad-quiet:oklch(66% .2 25/.14);--chip-build:oklch(72% .14 170);--chip-mail:oklch(70% .14 245);--chip-social:oklch(70% .16 350);--chip-flow:oklch(74% .15 55);--chip-data:oklch(68% .14 265);--chip-studio:oklch(68% .18 300);--chip-tint:.16;--f-ui:"Quicksand","Trebuchet MS",system-ui,sans-serif;--f-read:"Source Serif 4",Georgia,"Times New Roman",serif;--f-display:"Fraunces","Source Serif 4",Georgia,serif;--f-mono:"JetBrains Mono",Consolas,ui-monospace,monospace;--t-caption:.75rem;--t-small:.8125rem;--t-body:1rem;--t-lead:clamp(1.0625rem,.98rem + .35vw,1.1875rem);--t-h3:clamp(1.125rem,1.05rem + .4vw,1.3125rem);--t-h2:clamp(1.375rem,1.2rem + .85vw,1.875rem);--t-h1:clamp(1.75rem,1.4rem + 1.7vw,2.625rem);--t-display:clamp(2.25rem,1.6rem + 3.2vw,4rem);--lh-tight:1.15;--lh-snug:1.35;--lh-normal:1.5;--lh-read:1.65;--tr-tight:-.025em;--tr-normal:0em;--tr-label:.11em;--w-normal:400;--w-mid:500;--w-semi:600;--w-bold:700;--s1:.25rem;--s2:.5rem;--s3:.75rem;--s4:1rem;--s5:1.25rem;--s6:1.5rem;--s7:2rem;--s8:2.5rem;--s9:3.5rem;--s10:4.5rem;--s11:6rem;--s12:8rem;--gap-rhythm:var(--s3);--pad-rhythm:var(--s3) var(--s4);--gap-room:var(--s6);--pad-room:var(--s6) var(--s5);--gap-composition:var(--s7);--pad-composition:var(--s8) var(--s6);--measure-read:62ch;--measure-ui:72ch;--r-xs:.5rem;--r-sm:.625rem;--r-md:1rem;--r-lg:1.375rem;--r-full:999px;--bw-hair:1px;--bw-rail:3px;--tap:44px;--edge:inset 0 1px 0 oklch(100% 0 0/.055);--e-flat:none;--e-raised:var(--edge);--e-float:var(--edge),0 10px 30px -8px oklch(0% 0 0/.55);--e-overlay:var(--edge),0 28px 70px -14px oklch(0% 0 0/.75);--e-glow:0 0 0 1px var(--go-line),0 6px 28px -6px var(--go-glow);--grid:oklch(95% .006 248/.028);--grid-step:120px;--glow-1:oklch(72% .14 170/.16);--glow-2:oklch(80% .15 85/.07);--glow-3:oklch(70% .14 245/.06);--cat-shadow:oklch(0% 0 0/.55);--dur-instant:90ms;--dur-quick:.16s;--dur-move:.24s;--ease-out:cubic-bezier(.22,1,.36,1);--ease-in-out:cubic-bezier(.65,0,.35,1);--focus-ring:0 0 0 2px var(--ground),0 0 0 4px var(--go);--focus-offset:2px}@media(prefers-color-scheme:light){:root:not([data-theme=dark]){--ground:oklch(94.5% .008 210);--surface:oklch(98% .005 210);--raised:oklch(100% 0 0);--float:oklch(100% 0 0);--line:oklch(85% .014 210);--line-soft:oklch(91% .01 210);--glow-1:oklch(74% .17 168/.2);--glow-2:oklch(82% .16 78/.16);--glow-3:oklch(70% .14 245/.1);--cat-shadow:oklch(45% .03 210/.22);--ink:oklch(22% .022 240);--ink-2:oklch(43% .02 240);--ink-3:oklch(51% .02 240);--ink-on-go:oklch(24% .05 168);--go:oklch(74% .17 168);--go-press:oklch(68% .17 168);--go-text:oklch(46% .15 168);--go-quiet:oklch(74% .17 168/.2);--go-line:oklch(60% .16 168/.4);--go-glow:oklch(74% .17 168/.3);--hold:oklch(82% .16 78);--ink-on-hold:oklch(26% .06 70);--hold-text:oklch(48% .13 62);--hold-quiet:oklch(82% .16 78/.24);--hold-line:oklch(60% .14 70/.38);--ok:oklch(49% .15 155);--warn:oklch(51% .14 65);--bad:oklch(53% .2 25);--bad-quiet:oklch(53% .2 25/.1);--chip-build:oklch(52% .14 168);--chip-mail:oklch(52% .15 250);--chip-social:oklch(54% .17 350);--chip-flow:oklch(56% .15 50);--chip-data:oklch(50% .15 268);--chip-studio:oklch(50% .19 300);--edge:inset 0 0 0 1px oklch(30% .02 248/.05);--e-raised:0 1px 2px oklch(30% .02 248/.1),var(--edge);--e-float:0 10px 28px -8px oklch(30% .02 248/.16),0 2px 6px oklch(30% .02 248/.08);--e-overlay:0 28px 70px -14px oklch(30% .02 248/.24);--grid:oklch(24% .02 248/.04)}}:root[data-theme=light]{--ground:oklch(94.5% .008 210);--surface:oklch(98% .005 210);--raised:oklch(100% 0 0);--float:oklch(100% 0 0);--line:oklch(85% .014 210);--line-soft:oklch(91% .01 210);--glow-1:oklch(74% .17 168/.2);--glow-2:oklch(82% .16 78/.16);--glow-3:oklch(70% .14 245/.1);--cat-shadow:oklch(45% .03 210/.22);--ink:oklch(22% .022 240);--ink-2:oklch(43% .02 240);--ink-3:oklch(51% .02 240);--ink-on-go:oklch(24% .05 168);--go:oklch(74% .17 168);--go-press:oklch(68% .17 168);--go-text:oklch(46% .15 168);--go-quiet:oklch(74% .17 168/.2);--go-line:oklch(60% .16 168/.4);--go-glow:oklch(74% .17 168/.3);--hold:oklch(82% .16 78);--ink-on-hold:oklch(26% .06 70);--hold-text:oklch(48% .13 62);--hold-quiet:oklch(82% .16 78/.24);--hold-line:oklch(60% .14 70/.38);--ok:oklch(49% .15 155);--warn:oklch(51% .14 65);--bad:oklch(53% .2 25);--bad-quiet:oklch(53% .2 25/.1);--chip-build:oklch(52% .14 168);--chip-mail:oklch(52% .15 250);--chip-social:oklch(54% .17 350);--chip-flow:oklch(56% .15 50);--chip-data:oklch(50% .15 268);--chip-studio:oklch(50% .19 300);--edge:inset 0 0 0 1px oklch(30% .02 248/.05);--e-raised:0 1px 2px oklch(30% .02 248/.1),var(--edge);--e-float:0 10px 28px -8px oklch(30% .02 248/.16),0 2px 6px oklch(30% .02 248/.08);--e-overlay:0 28px 70px -14px oklch(30% .02 248/.24);--grid:oklch(24% .02 248/.04)}@media(prefers-reduced-motion:reduce){:root{--dur-instant:0ms;--dur-quick:0ms;--dur-move:0ms}}*,:after,:before{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--ground);color:var(--ink);font-family:var(--f-ui);font-size:var(--t-body);line-height:var(--lh-normal);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;padding-bottom:var(--kb,0)}.app-shell{min-height:100dvh;display:grid;grid-template-rows:auto 1fr auto}.safe-top{padding-top:env(safe-area-inset-top)}.safe-bottom{padding-bottom:env(safe-area-inset-bottom)}.scroll-y{overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin}.scroll-x{overflow-x:auto;overscroll-behavior-x:contain}img,svg,video{max-width:100%;height:auto;display:block}[role=button],button,input,select,textarea{font:inherit}[role=button],button{min-height:var(--tap);cursor:pointer}button{background:none;border:0;color:inherit;padding:0}a{color:var(--go-text);text-underline-offset:3px}:focus{outline:none}:focus-visible{outline:none;box-shadow:var(--focus-ring);border-radius:var(--r-xs)}input,select,textarea{background:var(--surface);color:var(--ink);border:var(--bw-hair) solid var(--line);border-radius:var(--r-sm);padding:var(--s3) var(--s4);min-height:var(--tap);width:100%}input::-moz-placeholder,textarea::-moz-placeholder{color:var(--ink-3)}input::placeholder,textarea::placeholder{color:var(--ink-3)}textarea{line-height:var(--lh-normal);resize:vertical}::-moz-selection{background:var(--go-quiet);color:var(--ink)}::selection{background:var(--go-quiet);color:var(--ink)}h1,h2,h3,h4,li,p,td,th{overflow-wrap:anywhere}h1,h2,h3,h4{text-wrap:balance;margin:0}p{margin:0}[hidden]{display:none!important}@media(prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.prose{font-family:var(--f-read);font-size:var(--t-lead);line-height:var(--lh-read);color:var(--ink-2);display:grid;gap:var(--gap-composition);padding:var(--pad-composition);max-width:calc(var(--measure-read) + var(--s7)*2);margin-inline:auto}.prose>.kicker{font-family:var(--f-mono);font-size:var(--t-caption);letter-spacing:var(--tr-label);text-transform:uppercase;color:var(--go-text);margin-bottom:calc(var(--gap-composition)*-.55)}.prose h1,.prose h2{font-family:var(--f-display);font-weight:var(--w-semi);letter-spacing:var(--tr-tight);line-height:var(--lh-tight);color:var(--ink);max-width:20ch}.prose h1{font-size:var(--t-h1)}.prose h2{font-size:var(--t-h2)}.prose h3{font-family:var(--f-ui);font-weight:var(--w-semi);font-size:var(--t-small);letter-spacing:var(--tr-label);text-transform:uppercase;color:var(--ink-3)}.prose p{max-width:var(--measure-read)}.prose strong{color:var(--ink);font-weight:var(--w-semi)}.prose em{font-style:italic}.prose a{color:var(--go-text)}.prose .pull,.prose blockquote{border-left:var(--bw-rail) solid var(--go);padding-left:var(--s5);margin:0;color:var(--ink);font-style:italic;font-size:var(--t-lead)}.prose .todo{display:grid;gap:var(--s3);margin:0;padding:0}.prose .todo li{list-style:none;display:flex;gap:var(--s3);align-items:baseline;font-family:var(--f-ui);font-size:var(--t-body);color:var(--ink)}.prose .todo li:before{content:"[ ]";font-family:var(--f-mono);font-size:var(--t-small);color:var(--ink-3);flex:none}.prose .todo li.done{color:var(--ink-3)}.prose .todo li.done:before{content:"[x]";color:var(--go-text)}.prose .stat{display:flex;flex-wrap:wrap;gap:var(--s7)}.prose .stat>div>b{display:block;font-family:var(--f-mono);font-size:var(--t-h1);color:var(--go-text);letter-spacing:var(--tr-tight);line-height:1;font-weight:var(--w-normal)}.prose .stat>div>span{font-family:var(--f-ui);font-size:var(--t-caption);color:var(--ink-3)}.prose .table-wrap{overflow-x:auto;overscroll-behavior-x:contain}.prose table{border-collapse:collapse;width:100%;min-width:26rem;font-family:var(--f-ui);font-size:var(--t-small);line-height:var(--lh-snug);font-variant-numeric:tabular-nums}.prose th{text-align:left;font-weight:var(--w-semi);color:var(--ink-3);white-space:nowrap;font-size:var(--t-caption);letter-spacing:var(--tr-label);text-transform:uppercase;padding:0 var(--s4) var(--s3) 0;border-bottom:var(--bw-hair) solid var(--line)}.prose td{padding:var(--s3) var(--s4) var(--s3) 0;color:var(--ink-2);border-bottom:var(--bw-hair) solid var(--line-soft);vertical-align:top}.prose tr:last-child td{border-bottom:0}.prose .flow,.prose .flow>div{display:grid;gap:var(--s4)}.prose .flow>div{grid-template-columns:1.75rem 1fr;align-items:start}.prose .flow b{font-family:var(--f-mono);font-size:var(--t-caption);color:var(--go-text);padding-top:.35em}.prose .flow p{font-family:var(--f-ui);font-size:var(--t-body);color:var(--ink)}.prose .flow span{display:block;font-size:var(--t-small);color:var(--ink-3)}.prose .fields{display:grid;gap:0}.prose .fields>div{display:flex;gap:var(--s5);padding:var(--s3) 0;border-bottom:var(--bw-hair) solid var(--line-soft);font-family:var(--f-ui);font-size:var(--t-body)}.prose .fields dt,.prose .fields>div>b{color:var(--ink-3);font-size:var(--t-small);font-weight:var(--w-mid);min-width:9rem;flex:none}.prose .fields dd{margin:0;color:var(--ink)}.prose .chips{display:flex;flex-wrap:wrap;gap:var(--s2);margin:0;padding:0;list-style:none}.prose .chips span{font-family:var(--f-ui);font-size:var(--t-caption);font-weight:var(--w-semi);padding:var(--s1) var(--s3);border-radius:var(--r-full);background:var(--go-quiet);color:var(--go-text)}.prose pre{background:var(--ground);border:var(--bw-hair) solid var(--line-soft);border-radius:var(--r-md);padding:var(--s5);overflow-x:auto;margin:0;font-size:var(--t-small);line-height:var(--lh-normal);color:var(--ink-2)}.prose code,.prose pre{font-family:var(--f-mono)}.prose code{font-size:.86em;background:var(--raised);border:var(--bw-hair) solid var(--line-soft);border-radius:var(--r-xs);padding:.08em .34em;color:var(--ink)}.prose pre code{background:none;border:0;padding:0;font-size:1em}.prose figure{margin:0;display:grid;gap:var(--s3)}.prose figure img{border-radius:var(--r-md);border:var(--bw-hair) solid var(--line-soft)}.prose figcaption{font-family:var(--f-ui);font-size:var(--t-caption);color:var(--ink-3)}.prose ol,.prose ul:not(.todo):not(.chips){margin:0;padding-left:var(--s5);display:grid;gap:var(--s2)}.prose li::marker{color:var(--ink-3)}.prose hr{border:0;border-top:var(--bw-hair) solid var(--line-soft);margin:0}.prose-pager{display:grid;gap:var(--s5)}.prose-dots{display:flex;gap:var(--s2);justify-content:center;padding:var(--s4) 0}.prose-dots i{width:var(--s2);height:var(--s2);border-radius:var(--r-full);background:var(--line);transition:background var(--dur-quick) var(--ease-out)}.prose-dots i.on{background:var(--go)}.prose[data-overrun=true]:after{content:"this section is longer than a page — it should be two";font-family:var(--f-mono);font-size:var(--t-caption);color:var(--hold-text);background:var(--hold-quiet);border-radius:var(--r-xs);padding:var(--s2) var(--s3);justify-self:start}
