:root{--paper:#edf2e8;--ink:#253b32;--muted:#486256;--line:#9cb0a2;--accent:#d65a46;--accent-soft:#f6dfc8;--signal:#c5df7b;color:var(--ink);background:var(--paper);font-family:Georgia,Times New Roman,serif}*{box-sizing:border-box}.visually-hidden{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}body{background-color:var(--paper);background-image:linear-gradient(#48625614 1px,#0000 1px),linear-gradient(90deg,#48625614 1px,#0000 1px);background-size:28px 28px;min-width:320px;min-height:100vh;margin:0}main{background:0 0;border-inline:1px solid #253b3229;width:min(100% - 3rem,67.5rem);min-height:calc(100vh - 4rem);margin:0 auto;padding:2rem 0 5rem}.masthead{border-bottom:1px solid var(--ink);justify-content:space-between;align-items:baseline;gap:1rem;padding:1rem 1.5rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;display:flex}.masthead nav,.article-meta,.eyebrow{letter-spacing:.07em;text-transform:uppercase;color:var(--muted);margin:0;font-size:.69rem}.mark{color:var(--ink);letter-spacing:.05em;text-transform:uppercase;font-size:.72rem;font-weight:700;text-decoration:none}.masthead-cursor{color:var(--accent);margin-left:.2em;animation:1.1s step-end infinite blink}.masthead nav{align-items:center;gap:.55rem;display:flex}.masthead nav :is(a,span){color:var(--muted);text-decoration:none}.masthead nav a:hover{color:var(--accent)}.back-link{font-size:inherit}.eyebrow{color:var(--accent)}h1,h2{font-weight:400;line-height:1.08}.library{border-top:1px solid var(--ink)}.not-found{max-width:44rem;padding:clamp(5rem,18vh,10rem) 1.5rem 5rem}.not-found .eyebrow{letter-spacing:.12em;margin:0 0 1.2rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-weight:700}.not-found h1{margin:0;font-size:clamp(2.7rem,7vw,5.6rem)}.not-found>p:last-of-type{max-width:34rem;color:var(--muted);margin:1.5rem 0 0;font-size:1.08rem;line-height:1.65}.not-found-actions{flex-wrap:wrap;gap:.55rem;margin-top:2rem;display:flex}.not-found-actions a{border:1px solid var(--line);color:var(--ink);letter-spacing:.025em;text-transform:uppercase;border-radius:999px;padding:.55rem .8rem;font:.72rem/1 ui-monospace,SFMono-Regular,Menlo,monospace;text-decoration:none}.not-found-actions a:hover,.not-found-actions a:focus-visible{border-color:var(--accent);color:var(--accent)}.catalogue{flex-direction:column;gap:1.25rem;padding:2rem 1.5rem;display:flex}.filters{flex-wrap:wrap;gap:.45rem;display:flex}.subfilters{opacity:1;grid-template-rows:1fr;margin-top:0;transition:grid-template-rows .32s,opacity .24s,margin-top .32s;display:grid}.subfilters.is-hidden{opacity:0;pointer-events:none;grid-template-rows:0fr;margin-top:-1.25rem}.subfilters-track{border-top:1px dashed var(--line);flex-wrap:wrap;gap:.45rem;min-height:0;padding-top:.9rem;display:flex;overflow:hidden}@media (prefers-reduced-motion:reduce){.subfilters{transition:none}}.filters>p{color:var(--accent);letter-spacing:.08em;text-transform:uppercase;margin:0 0 .8rem;font:700 .7rem/1.2 ui-monospace,SFMono-Regular,Menlo,monospace}.filters>p span,.filter-button span{float:right;color:inherit;opacity:.7}.filter-button{border:1px solid var(--line);color:var(--muted);letter-spacing:.025em;text-align:left;text-transform:uppercase;cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:.5rem;padding:.48rem .75rem;font:.72rem/1.2 ui-monospace,SFMono-Regular,Menlo,monospace;display:inline-flex}.filter-button span{float:none;min-width:1.5em;color:var(--ink);opacity:1;background:#253b3214;border-radius:999px;justify-content:center;align-items:center;padding:.1rem .4rem;font-weight:700;transition:background-color .16s,color .16s;display:inline-flex}.filter-button:hover span,.filter-button.is-active span{background:var(--accent);color:var(--paper)}.filter-button:hover,.filter-button.is-active{border-color:var(--accent);color:var(--accent)}.filter-button:focus-visible,.article-list article h2 a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.article-list{border-top:1px solid var(--line)}.article-list article{border-bottom:1px solid var(--line);grid-template-columns:6rem minmax(0,1fr);gap:1.2rem;padding:1rem 0;transition:transform .18s,background-color .18s;display:grid}.article-list article.is-filtered-out{display:none}.article-list article:hover{background:#f6dfc88c;transform:translate(.5rem)}.article-list article>time{color:var(--muted);padding-top:.3rem;font:.68rem/1.35 ui-monospace,SFMono-Regular,Menlo,monospace}.article-list article .article-meta{color:var(--muted);margin-bottom:.35rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.article-list article h2{margin:0;font-size:clamp(1.35rem,3vw,1.9rem)}.article-list article h2 a{color:var(--ink);text-decoration:none}.article-list article:hover h2 a{color:var(--accent)}.article-list article>div>p:last-child{color:var(--muted);margin:.45rem 0 0;font:.78rem/1.5 ui-monospace,SFMono-Regular,Menlo,monospace}.prose{border:0;max-width:46rem;padding:4rem 1.5rem 0}.prose h1{margin:.8rem 0 2.4rem;font-size:clamp(2.8rem,7vw,5.5rem)}.prose :is(h2,h3,h4){margin:2.5rem 0 .9rem;font-weight:600}.prose h2{font-size:1.75rem}.prose p,.prose li{font-size:1.08rem;line-height:1.75}.prose a{color:var(--accent);text-underline-offset:.16em;text-decoration-thickness:1px}.prose blockquote{border-left:3px solid var(--accent);color:var(--muted);margin:1.75rem 0;padding:.1rem 1.5rem}.prose pre{border:1px solid var(--line);background:#dfe8dc;padding:1.25rem;font-size:.9rem;overflow-x:auto}.prose :not(pre)>code{background:var(--accent-soft);padding:.1em .3em;font-size:.9em}@keyframes blink{50%{opacity:0}}@media (width<=38rem){main{border:0;width:100%;padding-top:0}.masthead{flex-direction:column;align-items:flex-start;gap:.5rem}.catalogue{grid-template-columns:1fr;gap:1.25rem;padding:1.25rem}.filters{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:1rem}.filters>p{grid-column:1/-1}.article-list article{grid-template-columns:5.4rem minmax(0,1fr)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.run-block{margin:1.75rem 0}.run-block>pre{margin:0}.run-toolbar{justify-content:space-between;align-items:center;margin:0 0 .45rem;display:flex}.run-button{border:1px solid var(--ink);color:var(--ink);letter-spacing:.06em;text-transform:uppercase;cursor:pointer;background:0 0;padding:.3rem .85rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.72rem}.run-button:hover:not(:disabled){background:var(--ink);color:var(--paper)}.run-button:disabled{opacity:.45;cursor:not-allowed}.run-note{letter-spacing:.06em;color:var(--muted);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.69rem}.run-output{background:var(--ink);color:#e9f1e4;white-space:pre-wrap;margin:.75rem 0 0;padding:.9rem 1.25rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85rem;line-height:1.55;overflow-x:auto}.run-output.is-error{color:#ffd9d0}.mermaid-host{text-align:center;margin:1.75rem 0;padding:1rem;overflow-x:auto}.mermaid-error{color:var(--accent);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.8rem}.stepplayer{border:1px solid var(--line);background:#edf2e88c;margin:1.75rem 0}.stepplayer-controls{border-bottom:1px solid var(--line);align-items:center;gap:.5rem;padding:.6rem .9rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;display:flex}.stepplayer-label{letter-spacing:.05em;color:var(--muted);flex:1;font-size:.72rem}.stepplayer-btn{border:1px solid var(--ink);color:var(--ink);cursor:pointer;background:0 0;padding:.15rem .6rem;font-size:.8rem;line-height:1.35}.stepplayer-btn:hover{background:var(--ink);color:var(--paper)}.stepplayer-dots{gap:.35rem;display:inline-flex}.stepplayer-dot{border:1px solid var(--muted);cursor:pointer;background:0 0;border-radius:50%;width:.55rem;height:.55rem;padding:0}.stepplayer-dot.is-active{background:var(--accent);border-color:var(--accent)}.stepplayer-panels{position:relative}.stepplayer-panel{padding:1.1rem 1.25rem;animation:.45s both step-in;display:none}.stepplayer-panel.is-active{display:block}.stepplayer-panel p{margin:.5rem 0;font-size:.92rem}@keyframes step-in{0%{opacity:0;transform:translateY(.35rem)}to{opacity:1;transform:none}}.tree-diagram{flex-direction:column;align-items:center;gap:0;padding:.5rem 0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85rem;display:flex}.tree-node{border:1px solid var(--muted);background:var(--accent-soft);color:var(--ink);white-space:nowrap;padding:.45rem 1rem}.tree-node.is-root{border-color:var(--ink);background:var(--signal)}.tree-node.is-hit{outline:2px solid var(--accent);outline-offset:2px}.tree-connector{background:var(--muted);width:1px;height:1.1rem}.state-chip{border:1px solid var(--ink);background:var(--signal);margin-left:.4rem;padding:.1rem .55rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.8rem;display:inline-block}.mermaid-host p{color:#253b32;margin:0;font-size:16px;line-height:1.5}pre.run-output,.prose pre.run-output{background:var(--ink);color:#e9f1e4;border:none}pre.run-output.is-error,.prose pre.run-output.is-error{color:#ffd9d0}
