@font-face{font-family:Nimbu Demo;src:url(/fonts/NimbuDemo-Medium.woff2)format("woff2"),url(/fonts/NimbuDemo-Medium.otf)format("opentype");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:PP Neue Corp Compact;src:url(/fonts/PPNeueCorp-CompactMedium.woff2)format("woff2"),url(/fonts/PPNeueCorp-CompactMedium.otf)format("opentype");font-weight:500;font-style:normal;font-display:swap}:root{--font-heading:"Nimbu Demo", sans-serif;--font-body:"PP Neue Corp Compact", sans-serif;--ease-out:cubic-bezier(.23, 1, .32, 1)}:root,:root[data-theme=dark]{--bg:#080808;--text:#f2f2f2;--text-strong:#fefefe;--text-muted:#f2f2f28c;--link-underline:#f2f2f273;--link-underline-hover:#f2f2f2;--toggle-bg:#ffffff0f;--toggle-border:#ffffff29;--toggle-bg-hover:#ffffff1f}:root[data-theme=light]{--bg:#f3f3f3;--text:#1f1f1f;--text-strong:#0d0d0d;--text-muted:#1f1f1fb3;--link-underline:#1f1f1f66;--link-underline-hover:#1f1f1f;--toggle-bg:#0000000d;--toggle-border:#00000024;--toggle-bg-hover:#0000001a}*,:before,:after{box-sizing:border-box}body{background:var(--bg);color:var(--text);font-family:var(--font-body);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;transition:background-color .3s,color .3s}.page{flex-direction:column;max-width:688px;min-height:100dvh;margin:0 auto;padding:64px 24px 40px;display:flex;position:relative}.page>article{flex:1}.bar{width:72px;height:32px;position:absolute;top:60px;right:24px}.bar .sound-toggle{top:0;right:40px}.theme-toggle{cursor:pointer;width:32px;height:32px;color:var(--text);background:var(--toggle-bg);border:1px solid var(--toggle-border);border-radius:999px;place-items:center;padding:0;transition:background-color .2s,transform .15s;display:grid;position:absolute;top:0;right:0}.theme-toggle:hover{background:var(--toggle-bg-hover)}.theme-toggle:active{transform:scale(.92)}.theme-toggle:focus-visible{outline:2px solid var(--text);outline-offset:2px}.who{color:inherit;flex-direction:column;align-self:flex-start;gap:6px;margin-bottom:48px;text-decoration:none;display:flex}.who-name{color:var(--text-strong);font-size:1.0625rem;line-height:1.2}.who-role{color:var(--text-muted);font-size:1.0625rem;line-height:1.2;transition:color .22s}.who:hover .who-role{color:var(--text)}.who:focus-visible{outline:2px solid var(--text);outline-offset:4px;border-radius:4px}.head{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:36px;display:flex}.actions{align-items:center;gap:2px;margin:-4px -8px 0 0;display:flex}.act{width:32px;height:32px;color:var(--text-muted);cursor:pointer;background:0 0;border:0;border-radius:8px;place-items:center;padding:0;transition:color .22s,background-color .22s,scale .1s cubic-bezier(.215,.61,.355,1);display:inline-grid}.act:hover{color:var(--text-strong);background:color-mix(in srgb, var(--text) 8%, transparent)}.act:active{scale:.95}.act:focus-visible{outline:2px solid var(--text);outline-offset:2px}.act svg{grid-area:1/1;transition:opacity .22s,scale .22s cubic-bezier(.175,.885,.32,1.1)}.act .done,.act[data-copied=true] .idle{opacity:0;scale:.5}.act[data-copied=true] .done{opacity:1;scale:1}.title{font-family:var(--font-body);letter-spacing:0;color:var(--text-strong);margin:0;font-size:clamp(1.55rem,4.8vw,1.95rem);font-weight:500;line-height:1.15}.meta{color:var(--text-muted);margin:12px 0 0;font-size:1.0625rem}.prose{color:var(--text);font-size:1.0625rem;line-height:1.65}.prose>:first-child{margin-top:0}.prose p{color:color-mix(in srgb, var(--text) 82%, transparent);margin:0 0 1.25em}.prose h2,.prose h3{color:var(--text-strong);margin:2.2em 0 .55em;font-weight:500;line-height:1.3}.prose h2{font-size:1.0625rem}.prose h3{font-size:1rem}.prose a{color:var(--text-strong);text-underline-offset:3px;text-decoration:underline 1px;text-decoration-color:var(--link-underline);transition:text-decoration-color .2s}.prose a:hover{text-decoration-color:var(--link-underline-hover)}.prose ul,.prose ol{margin:0 0 1.25em;padding-left:1.4em}.prose li{margin:.35em 0}.prose blockquote{border-left:2px solid var(--link-underline);color:var(--text-muted);margin:1.5em 0;padding:0 0 0 18px}.prose img,.prose video{border-radius:12px;max-width:100%;height:auto;margin:1.75em 0;display:block}.prose hr{border:0;border-top:1px dashed var(--link-underline);margin:2.5em 0}.prose code{background:color-mix(in srgb, var(--text) 9%, transparent);border-radius:6px;padding:.12em .4em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.88em}.prose pre{background:color-mix(in srgb, var(--text) 7%, transparent);border-radius:12px;margin:1.5em 0;padding:16px 18px;font-size:.9rem;line-height:1.55;overflow-x:auto}.prose pre code{font-size:inherit;background:0 0;padding:0}.prose sub{color:var(--text-muted);margin:-.6em 0 1.6em;font-size:.9rem;line-height:1.5;display:block}.prose figure{margin:1.75em 0}.prose figcaption{color:var(--text-muted);margin-top:10px;font-size:.9rem}.prose .fig{margin:2.25em 0}.fig-head{border-bottom:1px solid color-mix(in srgb, var(--text) 12%, transparent);align-items:baseline;gap:8px;padding-bottom:12px;font-size:.95rem;line-height:1.3;display:flex}.fig-n{color:var(--text-muted)}.fig-t{color:var(--text-strong);font-weight:600}.fig-stage{padding:clamp(18px,4vw,32px) clamp(0px,2vw,16px)}.fig-stage svg{width:100%;height:auto;color:var(--text);display:block;overflow:visible}.prose .fig figcaption{border-top:1px solid color-mix(in srgb, var(--text) 12%, transparent);text-align:center;color:var(--text-muted);text-wrap:balance;margin:0;padding-top:14px;font-size:.9rem;line-height:1.5}.fig-line{fill:none;stroke:var(--text);stroke-width:1.4px;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1px}.fig-line.is-faint{stroke:color-mix(in srgb, var(--text) 25%, transparent);stroke-dasharray:3 5;stroke-dashoffset:0;opacity:0}.fig-node{fill:var(--bg);stroke:var(--text);stroke-width:1.4px}.fig-node.is-core{fill:var(--text)}.fig-text{fill:var(--text);font-family:inherit;font-size:14px}.fig-text.is-muted{fill:var(--text-muted);font-size:13px}.fig-box{fill:color-mix(in srgb, var(--text) 10%, transparent);stroke:var(--text);stroke-width:1.4px}.fig-fill{fill:var(--text)}.fig-track{fill:none;stroke:color-mix(in srgb, var(--text) 35%, transparent);stroke-width:1.2px}.fig-pop,.fig-grow,.fig-fade{opacity:0}.fig-pop{transform-box:fill-box;transform-origin:50%;transform:scale(0)}.fig-grow{transform-box:fill-box;transform-origin:0 100%;transform:scale(var(--sx,1), 0)}.fig-grow.is-wide{transform-origin:0;transform:scaleX(0)}.fig-fade{transform:translateY(4px)}.fig.is-in .fig-line{stroke-dashoffset:0;transition:stroke-dashoffset 1.2s cubic-bezier(.65,0,.35,1);transition-delay:calc(var(--i,0) * .11s)}.fig.is-in .fig-line.is-faint{opacity:1;transition:opacity .8s 1.4s}.fig.is-in .fig-pop{opacity:1;transition:transform .45s var(--ease-out), opacity .3s ease;transition-delay:calc(.5s + var(--i,0) * .11s);transform:none}.fig.is-in .fig-grow{opacity:1;transition:transform .9s var(--ease-out), opacity .3s ease;transition-delay:calc(var(--i,0) * .12s);transform:none}.fig.is-in .fig-fade{opacity:1;transition:opacity .6s ease, transform .6s var(--ease-out);transition-delay:calc(.3s + var(--i,0) * 90ms);transform:none}.fig-box.is-win{fill:color-mix(in srgb, var(--text) 18%, transparent)}.fig.is-in .fig-box.is-win{animation:1.1s ease-out 1.6s both fig-win}@keyframes fig-win{0%{stroke-width:1.4px}40%{stroke-width:3.2px}to{stroke-width:1.4px}}.hub-node{cursor:default}.hub-node .fig-node{transition:fill .2s}.hub-node:hover .fig-node{fill:color-mix(in srgb, var(--text) 25%, var(--bg))}.prose sup{font-size:.7em;line-height:0}.prose sup a{padding:0 1px;text-decoration:none}.prose .footnotes{border-top:1px solid color-mix(in srgb, var(--text) 12%, transparent);color:var(--text-muted);margin-top:3em;padding-top:1.2em;font-size:.9rem}.prose .footnotes h2{margin:0 0 .6em;font-size:.95rem}.prose .footnotes ol{margin:0;padding-left:1.2em}@media (prefers-reduced-motion:reduce){.fig-line,.fig-pop,.fig-grow,.fig-fade{transition:none!important}.fig-box.is-win{animation:none!important}.fig-line{stroke-dashoffset:0}.fig-line.is-faint,.fig-pop,.fig-grow,.fig-fade{opacity:1;transform:none}}.foot{color:var(--text-muted);margin:40px 0 0;font-size:.85rem}@media (width<=480px){.page{padding-top:24px}.bar{top:24px}.who{margin-top:44px}.head{flex-direction:column;gap:12px}.actions{margin:0 0 0 -8px}}
