@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(./ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2)format("woff2"),url(./ibm-plex-mono-latin-400-normal-CvHOgSBP.woff)format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(./ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2)format("woff2"),url(./ibm-plex-mono-latin-500-normal-CB9ihrfo.woff)format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(./ibm-plex-mono-latin-600-normal-BgSNZQsw.woff2)format("woff2"),url(./ibm-plex-mono-latin-600-normal-DWFSQ4vo.woff)format("woff")}:root{--mono:"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--track:.06em;--label:11px;--gutter:clamp(16px, 4vw, 34px);--pill-h:40px;--foot:38px;--head:72px;--ease:cubic-bezier(.22, 1, .36, 1);--ease-io:cubic-bezier(.65, 0, .35, 1);--spring:cubic-bezier(.34, 1.56, .64, 1);--paper:#000;--ink:#fff;--dim:#9a9a9a;--faint:#5c5c5c;--soft:#262626;--hover:#121212;--raise:#0b0b0b;--ok:#3ecf7a;--alarm:#ff6b62;--caution:#f0b429;--rule:1.5px solid var(--ink);--hair:1px solid var(--soft);--screen:#050505;--bezel:#121212;--shadow:var(--soft);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@media (prefers-color-scheme:light){:root:not([data-theme=dark]){--paper:#fff;--ink:#000;--dim:#555;--faint:#9a9a9a;--soft:#e4e4e4;--hover:#f3f3f3;--raise:#fafafa;--ok:#1f9d55;--alarm:#b3261e;--caution:#a15c00;--shadow:#d6d6d6;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}}:root[data-theme=light]{--paper:#fff;--ink:#000;--dim:#555;--faint:#9a9a9a;--soft:#e4e4e4;--hover:#f3f3f3;--raise:#fafafa;--ok:#1f9d55;--alarm:#b3261e;--caution:#a15c00;--shadow:#d6d6d6;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--head) + 16px)}html,body{background:var(--paper);color:var(--ink);margin:0}body{font:14px/1.6 var(--mono);-webkit-font-smoothing:antialiased;padding-bottom:var(--foot);-webkit-tap-highlight-color:transparent;overflow-x:hidden}a{color:inherit;text-underline-offset:3px;text-decoration-thickness:1px}button,input,select,textarea{font:inherit;color:inherit}button{touch-action:manipulation}::selection{background:var(--ink);color:var(--paper)}:focus-visible{outline:1.5px solid var(--ink);outline-offset:3px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.sr-only:focus{clip:auto;z-index:99;background:var(--ink);width:auto;height:auto;color:var(--paper);padding:8px 12px;position:fixed;top:8px;left:8px}.wrap{max-width:1212px;padding:0 var(--gutter);margin:0 auto}.muted{color:var(--dim)}.faint{color:var(--faint)}.addr{color:var(--dim);font-size:.92em;transition:color .2s}.addr:hover{color:var(--ink)}.tnum{font-variant-numeric:tabular-nums}code{font-family:var(--mono)}header.top{z-index:20;background:color-mix(in srgb, var(--paper) 88%, transparent);-webkit-backdrop-filter:saturate(1.4)blur(12px);view-transition-name:header;border-bottom:1px solid #0000;position:sticky;top:0}header.top .wrap{height:var(--head);align-items:center;gap:22px;display:flex}.logo{height:var(--pill-h);border:var(--rule);flex:none;text-decoration:none;display:flex}.logo .mark{border-right:var(--rule);place-items:center;width:40px;transition:background-color .3s,color .3s;display:grid}.logo:hover .mark{background:var(--ink);color:var(--paper)}.logo .mark .ic path{stroke-dasharray:20;stroke-dashoffset:0}.logo:hover .mark .ic path{animation:draw .6s var(--ease) both}@keyframes draw{0%{stroke-dashoffset:20px}}.logo .word{letter-spacing:.32em;place-items:center;padding:0 16px;font-size:13px;font-weight:500;display:grid}nav.links{flex:1;gap:2px;display:flex;position:relative}nav.links a{z-index:1;height:var(--pill-h);text-transform:uppercase;letter-spacing:var(--track);white-space:nowrap;transition:color .35s var(--ease);place-items:center;padding:0 14px;font-size:12.5px;font-weight:500;text-decoration:none;display:grid;position:relative}nav.links a:not(.active):hover{color:var(--dim)}nav.links a.active{color:var(--paper)}.nav-ind{width:100px;height:var(--pill-h);background:var(--ink);transform-origin:0 0;opacity:0;position:absolute;top:0;left:0}.nav-ind.ready{transition:transform .55s var(--ease), opacity .3s}.iconbtn{cursor:pointer;width:40px;height:40px;color:var(--dim);background:0 0;border:0;flex:none;place-items:center;transition:color .2s;display:grid}.iconbtn:hover{color:var(--ink)}.theme-btn .ic{transition:transform .6s var(--ease), opacity .3s}.theme-btn:hover .ic{transform:rotate(-24deg)}.theme-btn .ic-sun,:root[data-theme=light] .theme-btn .ic-moon{display:none}:root[data-theme=light] .theme-btn .ic-sun{display:block}@media (prefers-color-scheme:light){:root:not([data-theme=dark]) .theme-btn .ic-moon{display:none}:root:not([data-theme=dark]) .theme-btn .ic-sun{display:block}}.kbd-btn{border:var(--hair);height:32px;color:var(--dim);cursor:pointer;background:0 0;flex:none;align-items:center;gap:8px;padding:0 10px;transition:color .2s,border-color .2s;display:inline-flex}.kbd-btn:hover{color:var(--ink);border-color:var(--ink)}kbd{font:11px var(--mono);letter-spacing:.04em}.acct{min-width:120px}.acct.on{border-color:var(--ok)}.spacer{flex:1}.btn{isolation:isolate;height:var(--pill-h);border:var(--rule);background:var(--paper);text-transform:uppercase;letter-spacing:var(--track);cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;transition:color .35s var(--ease), border-color .3s, scale .18s var(--ease), translate .45s var(--ease);justify-content:center;align-items:center;gap:10px;padding:0 18px;font-size:12.5px;font-weight:500;text-decoration:none;display:inline-flex;position:relative;overflow:hidden}.btn:before{content:"";z-index:-1;background:var(--hover);transform-origin:100%;transition:transform .45s var(--ease);position:absolute;inset:0;transform:scaleX(0)}.btn:hover:before{transform-origin:0;transform:scaleX(1)}.btn:active{scale:.97}.btn.primary{background:var(--ink);color:var(--paper)}.btn.primary:before{background:var(--ok)}.btn.primary:hover{color:#000;border-color:var(--ok)}.btn .ic{transition:transform .45s var(--ease);flex:none}.btn:hover .ic-arrow{transform:translate(4px)}.btn.danger{border-color:var(--alarm);color:var(--alarm)}.btn.danger:before{background:color-mix(in srgb, var(--alarm) 14%, transparent)}.btn.small{gap:8px;height:34px;padding:0 13px;font-size:11.5px}.btn.ghost{border-color:var(--soft);color:var(--dim)}.btn.ghost:hover{color:var(--alarm);border-color:var(--alarm)}.btn.wide{width:100%;height:48px}.btn[disabled]{opacity:.55;cursor:progress}.btn.busy:after{content:"";background:var(--caution);width:40%;height:2px;animation:busy 1.1s var(--ease-io) infinite;position:absolute;bottom:0;left:0}@keyframes busy{0%{transform:translate(-100%)}to{transform:translate(260%)}}.magnet{will-change:translate}.label{font-size:var(--label);letter-spacing:var(--track);text-transform:uppercase;color:var(--dim)}.lamp{background:var(--faint);border-radius:50%;flex:none;width:8px;height:8px;transition:background-color .3s;display:inline-block}.lamp.ok,.lamp.kept{background:var(--ok);box-shadow:0 0 10px color-mix(in srgb, var(--ok) 60%, transparent)}.lamp.alarm,.lamp.broken{background:var(--alarm);box-shadow:0 0 10px color-mix(in srgb, var(--alarm) 60%, transparent)}.lamp.caution,.lamp.open{background:var(--caution)}.lamp.checking{background:var(--caution);box-shadow:0 0 10px color-mix(in srgb, var(--caution) 60%, transparent);animation:1.1s steps(2,jump-none) infinite blink}.lamp.blink{animation:2.4s ease-in-out infinite blink}.lamp.blink,.lamp.checking{will-change:opacity}@keyframes blink{50%{opacity:.25}}.chips{flex-wrap:wrap;align-items:center;gap:8px 10px;display:flex}.chip{letter-spacing:var(--track);align-items:center;gap:8px;font-size:12px;display:inline-flex}.chip.kept{color:var(--ok)}.chip.broken{color:var(--alarm)}.chip.open,.chip.checking{color:var(--caution)}.chip.kind{color:var(--dim);border:var(--hair);gap:6px;padding:2px 8px}.sec{align-items:center;gap:12px;margin:64px 0 22px;display:flex}.sec .n{color:var(--faint);font-size:12px}.sec h2{margin:0;font-size:15px;font-weight:600}.sec:after{content:"";border-top:var(--hair);transform-origin:0;flex:1}html.js .sec.rv:after{transition:transform 1.1s var(--ease) .15s;transform:scaleX(0)}html.js .sec.rv.in:after{transform:none}.sec .aside{color:var(--dim);order:3;font-size:12px}.hero{grid-template-columns:minmax(0,1fr) minmax(0,1.02fr);align-items:center;gap:56px;padding:48px 0 16px;display:grid}.eyebrow{border:var(--hair);font-size:var(--label);letter-spacing:.18em;text-transform:uppercase;color:var(--dim);align-items:center;gap:10px;padding:6px 12px;display:inline-flex}.hero h1{letter-spacing:-.04em;margin:26px 0 22px;font-size:clamp(36px,5.4vw,70px);font-weight:500;line-height:1.02}.hero h1 .accent{color:var(--ok)}.hero .lede{color:var(--dim);max-width:34rem;margin:0 0 30px;font-size:15px}.k-ok{color:var(--ok)}.k-bad{color:var(--alarm)}.ctas{flex-wrap:wrap;gap:10px;display:flex}.hero-meta{border-top:var(--hair);color:var(--dim);flex-wrap:wrap;gap:8px 22px;margin-top:30px;padding-top:18px;font-size:12.5px;display:flex}.hero-meta b{color:var(--ink);font-weight:600}.wmask{vertical-align:bottom;margin-bottom:-.08em;padding-bottom:.08em;display:inline-block;overflow:hidden}.w{display:inline-block}html.js .w{animation:rise-word 1s var(--ease) both}@keyframes rise-word{0%{transform:translateY(108%)rotate(4deg)}to{transform:none}}html.js .rise{animation:rise .9s var(--ease) both}@keyframes rise{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}main.quiet .w,main.quiet .rise{animation:none}.vu{border:var(--rule);background:var(--bezel);color:#e8e8e8;box-shadow:12px 12px 0 var(--shadow)}.vu-head,.vu-foot{letter-spacing:.16em;color:#8f8f8f;align-items:center;gap:10px;padding:9px 14px;font-size:10.5px;display:flex}.vu-head{border-bottom:1px solid #262626}.vu-foot{border-top:1px solid #262626;justify-content:space-between}.vu-mode{color:#f0b429;margin-left:auto}.vu-stage{background:var(--screen);contain:strict;border:1px solid #222;height:clamp(300px,34vw,400px);margin:12px 12px 0;position:relative;overflow:hidden}.vu-glow{pointer-events:none;background:radial-gradient(circle at 50% 52%,#3ecf7a12,#0000 58%);position:absolute;inset:0}.swarm-canvas{opacity:0;width:100%;height:100%;transition:opacity 1.4s var(--ease), transform 1.6s var(--ease);position:absolute;inset:0;transform:scale(.94)}.swarm-canvas.on{opacity:1;transform:none}.vu-stage:after{content:"";pointer-events:none;z-index:3;background:repeating-linear-gradient(#ffffff06 0 1px,#0000 1px 3px);position:absolute;inset:0}.vu-hud{z-index:2;pointer-events:none;letter-spacing:.16em;color:#8a8a8a;font-size:10.5px;position:absolute;inset:0}.vu-read{flex-direction:column;gap:6px;display:flex;position:absolute;top:14px}.vu-read.at-l{left:16px}.vu-read.at-r{align-items:flex-end;right:16px}.vu-k{letter-spacing:.2em;color:#7a7a7a;font-size:10px}.vu-corner{border:0 solid #444;width:14px;height:14px;position:absolute}.vu-corner.a{border-top-width:1px;border-left-width:1px;top:50%;left:50%;translate:-70px -70px}.vu-corner.b{border-top-width:1px;border-right-width:1px;top:50%;left:50%;translate:56px -70px}.vu-corner.c{border-bottom-width:1px;border-left-width:1px;top:50%;left:50%;translate:-70px 56px}.vu-corner.d{border-bottom-width:1px;border-right-width:1px;top:50%;left:50%;translate:56px 56px}.vu-bl{position:absolute;bottom:14px;left:16px}.vu-br{text-align:right;line-height:1.7;position:absolute;bottom:12px;right:16px}.vu-br .tnum{color:#cfcfcf}.segwrap{display:inline-flex}.seg{width:auto;height:34px}.seg .s{fill:#ffffff0b;transition:fill .12s}.seg-ok .s.on{fill:#3ecf7a;filter:drop-shadow(0 0 4px #3ecf7a99)}.seg-alarm .s.on{fill:#ff6b62;filter:drop-shadow(0 0 4px #ff6b6299)}.vu-lamps{flex-wrap:wrap;gap:8px;max-width:180px;display:flex}.vu-lamps .lamp{width:9px;height:9px}html.js .vu-lamps .lamp{animation:lamp-on .6s var(--ease) both}html.js .vu-lamps .lamp.checking{animation:lamp-on .6s var(--ease) both, blink 1.1s steps(2, jump-none) .6s infinite}@keyframes lamp-on{0%{opacity:0;transform:scale(.3)}to{opacity:1;transform:none}}.vu-log{background:var(--screen);border:1px solid #222;border-top:0;flex-direction:column;justify-content:flex-end;height:108px;margin:0 12px;padding:10px 14px;font-size:12px;display:flex;overflow:hidden}.vu-line{color:#cfcfcf;white-space:nowrap;grid-template-columns:46px 86px 1fr;gap:8px;line-height:22px;display:grid}html.js .vu-line:last-child{animation:line-in .5s var(--ease) both}@keyframes line-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.vu-t{color:#5f5f5f}.vu-who{color:#8a8a8a;text-overflow:ellipsis;overflow:hidden}.vu-what{text-overflow:ellipsis;overflow:hidden}.vu-line.ok .vu-what{color:#3ecf7a}.vu-line.alarm .vu-what{color:#ff6b62}.vu-line.caution .vu-what{color:#f0b429}.vu+*{margin-top:0}.vu-dots{gap:6px;display:flex}.vu-dots i{border:1px solid #555;border-radius:50%;width:8px;height:8px}.vu-dots i:first-child{background:#3ecf7a;border-color:#3ecf7a}.vu .vu-foot{margin-top:12px}.figures{border:var(--rule);grid-template-columns:repeat(4,minmax(0,1fr));margin:48px 0 0;display:grid}.figure{border-right:var(--hair);min-width:0;padding:20px 22px;position:relative}.figure:last-child{border-right:0}.figure .v{letter-spacing:-.03em;white-space:nowrap;text-overflow:ellipsis;font-size:clamp(24px,2.8vw,36px);font-weight:500;line-height:1.2;overflow:hidden}.figure .v.kept{color:var(--ok)}.figure .v.broken{color:var(--alarm)}.figure .l{margin-top:6px}.rows{border-top:var(--hair)}.row{border-bottom:var(--hair);grid-template-columns:46px minmax(0,1fr) auto;align-items:center;gap:18px;padding:20px 14px;text-decoration:none;transition:background-color .25s;display:grid;position:relative}a.row:hover{background:var(--hover)}.row .glyph{border:var(--hair);width:46px;height:46px;color:var(--dim);transition:border-color .3s, color .3s, transform .5s var(--ease);place-items:center;display:grid}.row .glyph.kept{color:var(--ok)}.row .glyph.broken{color:var(--alarm)}.row .glyph.checking,.row .glyph.open{color:var(--caution)}a.row:hover .glyph{border-color:currentColor;transform:rotate(-6deg)scale(1.04)}.row .title{text-overflow:ellipsis;white-space:nowrap;width:-moz-fit-content;width:fit-content;max-width:100%;font-size:15.5px;font-weight:600;overflow:hidden}.row .meta{color:var(--dim);flex-wrap:wrap;gap:6px 16px;margin-top:6px;font-size:12.5px;display:flex}.row .meta .next{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.row .right{color:var(--dim);flex-direction:column;align-items:flex-end;gap:2px;font-size:12.5px;display:flex}.row .pid{color:var(--ink);font-weight:600}.row .go{opacity:0;transition:opacity .3s, transform .45s var(--ease);color:var(--ink);margin-top:6px;transform:translate(-8px)}a.row:hover .go,a.row:focus-visible .go{opacity:1;transform:none}.track{gap:3px;max-width:380px;margin-top:12px;display:flex}.track i{background:var(--soft);transform-origin:0;flex:1;height:6px}.track i.kept{background:var(--ok)}.track i.broken{background:var(--alarm)}.track i.checking{background:var(--caution)}.track i.open{background:color-mix(in srgb, var(--caution) 40%, var(--soft))}html.js .rv .track i{transition:transform .7s var(--ease) calc(.25s + var(--i,0) * 70ms);transform:scaleX(0)}html.js .rv.in .track i{transform:none}.spot:before{content:"";pointer-events:none;opacity:0;transition:opacity .4s var(--ease);background:radial-gradient(380px circle at var(--mx,50%) var(--my,50%), color-mix(in srgb, var(--ink) 7%, transparent), transparent 60%);position:absolute;inset:0}.spot:hover:before{opacity:1}.tilt{transition:transform .6s var(--ease)}.tilt:hover{will-change:transform}.sk{background:var(--hover);height:12px;margin:6px 0;display:block;position:relative;overflow:hidden}.sk:after{content:"";background:linear-gradient(90deg, transparent, color-mix(in srgb, var(--ink) 7%, transparent), transparent);animation:shimmer 1.4s var(--ease-io) infinite;position:absolute;inset:0;transform:translate(-100%)}@keyframes shimmer{to{transform:translate(100%)}}.sk-glyph{width:46px;height:46px;margin:0}.sk-row{pointer-events:none}.sk-row .sk{animation-delay:calc(var(--i,0) * .12s)}.sk-title{width:min(520px,80%);height:40px;margin:16px 0 14px}.sk-kv>div{padding:16px}.w30{width:30%}.w40{width:40%}.w60{width:60%}.steps{border:var(--rule);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.step{border-right:var(--hair);padding:24px;position:relative}.step:last-child{border-right:0}.step .n{color:var(--faint);font-size:12px}.step-ic{border:var(--hair);place-items:center;width:44px;height:44px;margin:16px 0 14px;transition:background-color .3s,color .3s;display:grid}.step:hover .step-ic{background:var(--ink);color:var(--paper)}.step h3{margin:0 0 6px;font-size:15px}.step p{color:var(--dim);margin:0;font-size:13px}.facts{border:var(--hair);grid-template-columns:repeat(2,minmax(0,1fr));gap:0;display:grid}.fact{border-right:var(--hair);border-bottom:var(--hair);padding:20px 22px;position:relative}.fact:nth-child(2n){border-right:0}.fact:nth-last-child(-n+2){border-bottom:0}.fact b{align-items:center;gap:10px;margin-bottom:6px;font-weight:600;display:flex}.fact span{color:var(--dim);font-size:13px}.lifecycle{border:var(--rule);grid-template-columns:1fr 40px 1fr 40px 1.3fr;align-items:center;gap:0;padding:22px;display:grid}.lc-st{border:var(--hair);background:var(--paper);grid-template-columns:auto 1fr;align-items:center;gap:2px 10px;padding:14px 16px;display:grid}.lc-st .lamp{grid-row:span 2}.lc-st span:last-child{color:var(--dim);grid-column:2;font-size:12px}.lc-st.kept{border-color:color-mix(in srgb, var(--ok) 50%, var(--soft))}.lc-st.broken{border-color:color-mix(in srgb, var(--alarm) 50%, var(--soft))}.lc-arrow{background:var(--ink);transform-origin:0;height:1px;margin:0 6px;position:relative}.lc-arrow:after{content:"";border:4.5px solid #0000;border-left:6px solid var(--ink);border-right:0;position:absolute;top:-4px;right:-1px}.lc-fork{flex-direction:column;gap:10px;display:flex}html.js .rv .lc-st{opacity:0;transition:opacity .6s var(--ease), transform .6s var(--ease);transform:translateY(10px)}html.js .rv .lc-arrow{transition:transform .6s var(--ease);transform:scaleX(0)}html.js .rv.in .lc-st,html.js .rv.in .lc-arrow{opacity:1;transform:none}html.js .rv.in .lifecycle>:nth-child(2){transition-delay:.2s}html.js .rv.in .lifecycle>:nth-child(3){transition-delay:.35s}html.js .rv.in .lifecycle>:nth-child(4){transition-delay:.5s}html.js .rv.in .lifecycle>:nth-child(5) .lc-st:first-child{transition-delay:.65s}html.js .rv.in .lifecycle>:nth-child(5) .lc-st:last-child{transition-delay:.8s}.flow{border:var(--hair);scrollbar-width:none;align-items:stretch;margin-top:22px;display:flex;overflow-x:auto}.flow::-webkit-scrollbar{display:none}.fd-node{border-right:var(--hair);flex-direction:column;flex:1 0 150px;gap:4px;padding:16px 18px;display:flex}.fd-node:last-child{border-right:0}.fd-node b{margin-top:8px;font-size:13px}.fd-node span{color:var(--dim);font-size:12px}.fd-wire{border-right:var(--hair);flex-direction:column;flex:0 0 128px;justify-content:center;gap:10px;padding:0 12px;display:flex}.fd-wire span{letter-spacing:.04em;color:var(--dim);text-align:center;font-size:10.5px;line-height:1.4}.fd-wire i{height:2px;position:relative;overflow:hidden}.fd-wire i:before{content:"";background:repeating-linear-gradient(90deg, var(--ok) 0 8px, transparent 8px 12px);position:absolute;inset:0 0 0 -24px}.fd-wire i:after{content:"";border:4px solid #0000;border-left:6px solid var(--ok);border-right:0;position:absolute;top:-3px;right:0}html.js .rv.in .fd-wire i:before{animation:.9s linear infinite flow}@keyframes flow{to{transform:translate(12px)}}@keyframes flow-down{to{transform:translateY(12px)}}.back{color:var(--dim);transition:color .2s, translate .3s var(--ease);gap:6px;margin-top:30px;font-size:12.5px;text-decoration:none;display:inline-flex}.back:hover{color:var(--ink);translate:-3px}.page-title{letter-spacing:-.035em;margin:12px 0;font-size:clamp(30px,4.4vw,52px);font-weight:500;line-height:1.06}.lead{max-width:720px}.meta-line{font-size:12.5px}.fine{margin-top:12px;font-size:12.5px}.kv{border:var(--rule);grid-template-columns:repeat(4,minmax(0,1fr));margin-top:26px;display:grid}.kv>div{border-right:var(--hair);min-width:0;padding:16px 18px}.kv>div:last-child{border-right:0}.kv .k{font-size:var(--label);letter-spacing:var(--track);text-transform:uppercase;color:var(--dim)}.kv .v{text-overflow:ellipsis;white-space:nowrap;margin-top:4px;font-size:17px;font-weight:600;overflow:hidden}.kv .v.kept{color:var(--ok)}.kv .v.broken{color:var(--alarm)}.kv .sub{color:var(--faint);font-size:12px}.tl{border:var(--hair);--pad:32px;height:92px;margin-top:26px;position:relative}.tl.compact{--pad:18px;height:66px;margin-top:16px}.tl-in{top:0;bottom:0;left:var(--pad);right:var(--pad);position:absolute}.tl-axis{background:var(--soft);height:2px;position:absolute;top:46px;left:0;right:0}.tl.compact .tl-axis{top:34px}.tl-fill{background:var(--ink);transform-origin:0;transform:scaleX(var(--x,0));position:absolute;inset:0}html.js .rv .tl-fill{transition:transform 1.4s var(--ease) .2s;transform:scaleX(0)}html.js .rv.in .tl-fill{transform:scaleX(var(--x,0))}.tl-grace{opacity:.55;height:10px;color:var(--caution);background:repeating-linear-gradient(135deg,currentColor 0 2px,#0000 2px 5px);position:absolute;top:42px}.tl.compact .tl-grace{top:30px}.tl-grace.kept{color:var(--ok);opacity:.35}.tl-grace.broken{color:var(--alarm)}.tl-node{width:30px;height:28px;font:600 11px var(--mono);background:var(--paper);border:1.5px solid var(--caution);color:var(--caution);cursor:pointer;transition:scale .25s var(--spring), background-color .2s, color .2s;z-index:2;place-items:center;padding:0;display:grid;position:absolute;top:33px;translate:-50%}.tl-node.lift{top:4px}.tl.compact .tl-node.lift{top:0}.tl.compact .tl-node{width:26px;height:24px;font-size:10px;top:22px}.tl-node.kept{border-color:var(--ok);color:var(--ok)}.tl-node.broken{border-color:var(--alarm);color:var(--alarm)}.tl-node.checking:before{content:"";border:1.5px solid var(--caution);animation:ring 1.8s var(--ease) infinite;will-change:transform, opacity;pointer-events:none;position:absolute;inset:-2px}@keyframes ring{0%{opacity:.8;transform:scale(1)}to{opacity:0;transform:scale(1.7)}}.tl-node:hover,.tl-node:focus-visible{color:var(--paper);background:var(--caution);scale:1.15}.tl-node.kept:hover,.tl-node.kept:focus-visible{background:var(--ok)}.tl-node.broken:hover,.tl-node.broken:focus-visible{background:var(--alarm)}.tl-node:after{content:attr(data-tip);white-space:nowrap;background:var(--ink);color:var(--paper);font:500 11.5px var(--mono);pointer-events:none;opacity:0;transition:opacity .2s, translate .3s var(--ease);text-overflow:ellipsis;max-width:280px;padding:5px 9px;position:absolute;bottom:calc(100% + 8px);left:50%;overflow:hidden;translate:-50% 4px}.tl-node:hover:after,.tl-node:focus-visible:after{opacity:1;translate:-50%}html.js .rv .tl-node{opacity:0;transition:opacity .4s var(--ease) calc(.5s + var(--i,0) * 80ms), scale .5s var(--spring) calc(.5s + var(--i,0) * 80ms);scale:.4}html.js .rv.in .tl-node{opacity:1;scale:1}.tl-now{border-left:1.5px dashed var(--ink);z-index:1;width:0;position:absolute;top:10px;bottom:10px}.tl.compact .tl-now{top:6px;bottom:6px}.tl-now span{letter-spacing:.18em;color:var(--dim);font-size:9.5px;position:absolute;top:-2px;left:6px}.tl-now:after{content:"";background:var(--ink);border-radius:50%;width:8px;height:8px;position:absolute;top:31px;left:-5px}.tl-now:before{content:"";border:1px solid var(--ink);width:8px;height:8px;animation:ping 2s var(--ease) infinite;will-change:transform, opacity;border-radius:50%;position:absolute;top:31px;left:-5px}@keyframes ping{0%{opacity:.7;transform:scale(1)}to{opacity:0;transform:scale(3)}}.tl.compact .tl-now:after,.tl.compact .tl-now:before{top:23px}.tl-ends{left:var(--pad);right:var(--pad);color:var(--faint);justify-content:space-between;font-size:11px;display:flex;position:absolute;bottom:8px}.empty-tl{place-items:center;font-size:12.5px;display:grid}.ms{border-bottom:var(--hair);grid-template-columns:56px minmax(0,1fr) auto;gap:18px;padding:26px 14px;transition:background-color .6s;display:grid;position:relative;overflow:hidden}.ms .num{color:var(--faint);padding-top:3px;font-size:12px}.ms h3{letter-spacing:-.01em;margin:12px 0 6px;font-size:18px;font-weight:600}.ms .when{color:var(--dim);overflow-wrap:anywhere;font-size:12.5px}.ms .when code,.ms .when a{color:var(--ink)}.ms .amount{text-align:right;white-space:nowrap;font-size:16px;font-weight:600}.ms .amount small{color:var(--dim);margin-top:2px;font-size:12px;font-weight:400;display:block}.ms .actions{flex-wrap:wrap;align-items:center;gap:10px;margin-top:18px;display:flex}.ms .note{color:var(--dim);font-size:12.5px}.ms.flash{animation:flash 1.4s var(--ease)}@keyframes flash{0%,30%{background:var(--hover)}}.ms.kept:after,.ms.broken:after{content:"";pointer-events:none;opacity:0;background:linear-gradient(90deg, transparent, color-mix(in srgb, var(--ok) 9%, transparent), transparent);position:absolute;inset:0;transform:translate(-100%)}.ms.broken:after{background:linear-gradient(90deg, transparent, color-mix(in srgb, var(--alarm) 9%, transparent), transparent)}html.js .ms.rv.in.kept:after,html.js .ms.rv.in.broken:after{animation:sweep 1.3s var(--ease) .15s}@keyframes sweep{0%{opacity:1;transform:translate(-100%)}to{opacity:1;transform:translate(100%)}}details.q{margin-top:14px}details.q summary{cursor:pointer;color:var(--dim);width:-moz-fit-content;width:fit-content;font-size:12.5px;list-style:none;transition:color .2s}details.q summary::-webkit-details-marker{display:none}details.q summary:hover{color:var(--ink)}details.q summary:before{content:"+";width:1.2em;transition:transform .3s var(--ease);display:inline-block}details.q[open] summary:before{transform:rotate(45deg)}details.q pre{white-space:pre-wrap;word-break:break-word;border-left:var(--rule);font:12.5px/1.6 var(--mono);margin:10px 0 0;padding:4px 0 4px 14px}details.q[open] pre{animation:rise .45s var(--ease)}.verdicts{flex-direction:column;margin-top:14px;display:flex}.verdict{border-top:1px dashed var(--soft);color:var(--dim);flex-wrap:wrap;align-items:center;gap:10px 12px;padding:8px 0;font-size:12.5px;display:flex}.verdict a{color:var(--ink)}.verdict.v-in{animation:rise .6s var(--ease) both;animation-delay:calc(var(--i,0) * 70ms)}.agree{gap:3px;display:inline-flex}.agree i{background:var(--soft);width:6px;height:10px}.agree i.kept{background:var(--ok)}.agree i.broken{background:var(--alarm)}.stamp{pointer-events:none;letter-spacing:.2em;opacity:.22;border:3px solid;padding:6px 14px;font-size:20px;font-weight:600;position:absolute;top:112px;right:26px;transform:rotate(-8deg)}.stamp.kept{color:var(--ok)}.stamp.broken{color:var(--alarm)}html.js .ms.rv .stamp{opacity:0;transform:rotate(-8deg)scale(1.9)}html.js .ms.rv.in .stamp{animation:stamp .6s var(--ease) .3s both}html.js main.quiet .ms.rv.in .stamp{opacity:.24;animation:none;transform:rotate(-8deg)}@keyframes stamp{0%{opacity:0;transform:rotate(-16deg)scale(2.1)}65%{opacity:.36;transform:rotate(-7deg)scale(.94)}to{opacity:.24;transform:rotate(-8deg)scale(1)}}.form{flex-direction:column;gap:18px;display:flex}.field{flex-direction:column;gap:7px;min-width:0;display:flex}.field label,.field .field-title{align-items:center;gap:8px;font-size:12.5px;font-weight:600;display:flex}.field .hint,.hint{color:var(--dim);font-size:12px;transition:color .3s}.hint.good{color:var(--ok)}.hint.bad{color:var(--alarm)}.field input,.field select,.field textarea,.unit-input input{height:var(--pill-h);border:var(--rule);background:var(--paper);width:100%;transition:background-color .2s, box-shadow .3s var(--ease);border-radius:0;outline:none;padding:0 12px}.field input:hover,.field select:hover{background:var(--raise)}.field input:focus,.field select:focus,.unit-input input:focus{background:var(--hover);box-shadow:4px 4px 0 var(--shadow)}.unit-input{align-items:stretch;max-width:220px;display:flex}.unit-input input{flex:1;min-width:0}.unit-input span{border:var(--rule);color:var(--dim);border-left:0;place-items:center;padding:0 12px;font-size:12px;display:grid}.inline-form{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.row2{grid-template-columns:1fr 1fr;gap:14px;display:grid}.tiles{border:var(--hair);grid-template-columns:repeat(4,minmax(0,1fr));gap:0;display:grid}.tile{border:0;border-right:var(--hair);cursor:pointer;color:var(--dim);background:0 0;flex-direction:column;align-items:center;gap:8px;padding:16px 8px;font-size:12px;transition:color .25s,background-color .25s;display:flex;position:relative}.tile:last-child{border-right:0}.tile .ic{transition:transform .5s var(--spring)}.tile:hover{color:var(--ink);background:var(--raise)}.tile:hover .ic{transform:translateY(-2px)scale(1.06)}.tile:after{content:"";background:var(--ink);height:2px;transition:transform .45s var(--ease);position:absolute;bottom:0;left:0;right:0;transform:scaleX(0)}.tile[aria-pressed=true]{background:var(--hover);color:var(--ink)}.tile[aria-pressed=true]:after{transform:none}.ms-list{flex-direction:column;gap:16px;display:flex}.mscard{border:var(--rule);background:var(--paper);flex-direction:column;gap:16px;padding:20px;display:flex}html.js .mscard{animation:card-in .6s var(--ease) both}@keyframes card-in{0%{opacity:0;transform:translateY(16px)scale(.985)}}.mscard.leaving,html.js .mscard.leaving{animation:card-out .35s var(--ease-io) both;pointer-events:none}@keyframes card-out{to{opacity:0;transform:translate(-24px)scale(.98)}}.mscard .bar{justify-content:space-between;align-items:center;display:flex}.params{flex-direction:column;gap:14px;display:flex}.params.swap>*{animation:rise .45s var(--ease) both}.preview{font:12.5px/1.65 var(--mono);border-left:var(--rule);white-space:pre-wrap;word-break:break-word;color:var(--dim);padding:8px 0 8px 14px;transition:color .3s,border-color .3s}.preview.good{color:var(--ink);border-left-color:var(--ok)}.preview.bad{color:var(--alarm);border-left-color:var(--alarm)}.summary{border:var(--rule);padding:18px 20px}.summary.inline{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.add-ms{border-style:dashed}.compose{grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:48px;display:grid}.compose-aside{top:calc(var(--head) + 24px);margin-top:64px;position:sticky}.pcard{border:var(--rule);box-shadow:10px 10px 0 var(--shadow);background:var(--paper);flex-direction:column;gap:14px;padding:20px;display:flex}.pc-head{align-items:center;gap:10px;display:flex}.pc-name{letter-spacing:-.02em;overflow-wrap:anywhere;font-size:20px;font-weight:600;line-height:1.25}.pc-grid{grid-template-columns:auto 1fr;align-items:baseline;gap:6px 14px;font-size:13px;display:grid}.pc-tl .tl{margin-top:0}.pc-fine{color:var(--faint);margin:0;font-size:11.5px}.warn-text{color:var(--caution)}.banner{border:var(--rule);align-items:flex-start;gap:12px;margin:22px 0 0;padding:14px 16px;display:flex}.banner .lamp{margin-top:7px}.banner.warn{border-color:var(--alarm)}.empty{color:var(--dim);border-bottom:var(--hair);padding:38px 14px}.end-ctas{margin-top:40px}#toasts{z-index:60;left:20px;bottom:calc(var(--foot) + 20px);pointer-events:none;flex-direction:column;align-items:flex-start;gap:8px;width:min(460px,100vw - 32px);display:flex;position:fixed}.toast{pointer-events:auto;background:var(--paper);border:var(--rule);width:100%;box-shadow:6px 6px 0 var(--shadow);animation:toast-in .5s var(--spring) both;align-items:flex-start;gap:12px;padding:12px 14px;font-size:13px;display:flex;position:relative;overflow:hidden}.toast .lamp{margin-top:6px}.toast-msg{overflow-wrap:anywhere;flex:1;min-width:0}.toast.alarm{border-color:var(--alarm)}.toast.ok{border-color:var(--ok)}.toast-x{color:var(--dim);cursor:pointer;background:0 0;border:0;padding:0 2px;font-size:18px;line-height:1}.toast-x:hover{color:var(--ink)}.toast-bar{opacity:.25;transform-origin:0;background:currentColor;width:100%;height:2px;animation:linear both drain;position:absolute;bottom:0;left:0}.toast.out{animation:toast-out .3s var(--ease-io) both}@keyframes toast-in{0%{opacity:0;transform:translateY(16px)scale(.96)}}@keyframes toast-out{to{opacity:0;transform:translateY(10px)scale(.97)}}@keyframes drain{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.tx-sheet{z-index:55;right:20px;bottom:calc(var(--foot) + 20px);background:var(--paper);border:var(--rule);width:min(400px,100vw - 32px);box-shadow:10px 10px 0 var(--shadow);animation:sheet-in .55s var(--ease) both;position:fixed}.tx-sheet.out{animation:sheet-out .35s var(--ease-io) both}@keyframes sheet-in{0%{opacity:0;transform:translateY(24px)}}@keyframes sheet-out{to{opacity:0;transform:translateY(16px)}}.tx-sheet.ok{border-color:var(--ok)}.tx-sheet.failed{border-color:var(--alarm)}.tx-head{border-bottom:var(--hair);align-items:center;gap:10px;padding:12px 14px;display:flex}.tx-head b{flex:1;font-size:13px}.tx-steps{margin:0;padding:6px 0;list-style:none}.tx-step{color:var(--faint);grid-template-columns:22px 1fr;gap:10px;padding:9px 14px;font-size:12.5px;transition:color .3s;display:grid}.tx-step.active,.tx-step.done,.tx-step.failed{color:var(--ink)}.tx-step.skipped{color:var(--dim)}.tx-dot{border:var(--hair);place-items:center;width:20px;height:20px;display:grid}.tx-step.active .tx-dot{border-color:var(--caution)}.tx-step.active .tx-dot .lamp{background:var(--caution);animation:1.1s steps(2,jump-none) infinite blink}.tx-step.done .tx-dot{border-color:var(--ok);color:var(--ok)}.tx-step.failed .tx-dot{border-color:var(--alarm);color:var(--alarm)}.tx-step .tx-dot .ic{animation:pop .4s var(--spring) both}@keyframes pop{0%{opacity:0;transform:scale(.2)}}.tx-label{font-weight:500}.tx-detail{color:var(--dim);overflow-wrap:anywhere;font-size:12px}.tx-step.failed .tx-detail{color:var(--alarm)}.tx-detail a{color:var(--ink)}.tx-progress{background:var(--soft);height:3px;overflow:hidden}.tx-progress i{background:var(--caution);transform-origin:0;height:100%;transition:transform .8s var(--ease);display:block;transform:scaleX(0)}.tx-sheet.ok .tx-progress i{background:var(--ok)}.tx-sheet.failed .tx-progress i{background:var(--alarm)}.cp{z-index:70;place-items:start center;padding-top:min(18vh,160px);display:grid;position:fixed;inset:0}.cp-scrim{background:color-mix(in srgb, var(--paper) 70%, transparent);-webkit-backdrop-filter:blur(6px);animation:fade .25s var(--ease) both;position:absolute;inset:0}.cp-box{background:var(--paper);border:var(--rule);width:min(600px,100vw - 32px);box-shadow:12px 12px 0 var(--shadow);animation:cp-in .4s var(--ease) both;position:relative}.cp.out .cp-scrim{animation:.2s reverse both fade}.cp.out .cp-box{animation:.2s reverse both cp-in}@keyframes fade{0%{opacity:0}}@keyframes cp-in{0%{opacity:0;transform:translateY(-10px)scale(.98)}}.cp-bar{border-bottom:var(--hair);color:var(--dim);align-items:center;gap:10px;padding:0 14px;display:flex}.cp-input{height:52px;color:var(--ink);background:0 0;border:0;outline:none;flex:1;font-size:15px}.cp-bar kbd{border:var(--hair);padding:2px 6px}.cp-list{max-height:50vh;margin:0;padding:6px;list-style:none;overflow:auto}.cp-list li{cursor:pointer;align-items:center;gap:12px;padding:10px 12px;display:flex}.cp-list li.on{background:var(--ink);color:var(--paper)}.cp-label{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.cp-hint{opacity:.6;font-size:12px}.cp-empty{color:var(--dim);cursor:default}footer.site{border-top:var(--hair);color:var(--dim);margin-top:96px;padding:26px 0 30px;font-size:12.5px}footer.site .wrap{flex-wrap:wrap;justify-content:space-between;gap:12px 28px;display:flex}footer.site b{color:var(--ink);letter-spacing:.2em}.foot-links{flex-wrap:wrap;gap:8px 22px;display:flex}footer.site a{color:var(--dim);transition:color .2s}footer.site a:hover{color:var(--ink)}.statusbar{height:var(--foot);z-index:30;background:var(--paper);border-top:var(--hair);scrollbar-width:none;view-transition-name:statusbar;padding-bottom:env(safe-area-inset-bottom);align-items:stretch;font-size:12.5px;display:flex;position:fixed;bottom:0;left:0;right:0;overflow-x:auto}.statusbar::-webkit-scrollbar{display:none}.statusbar .cell{padding:0 var(--gutter);border-right:var(--hair);white-space:nowrap;align-items:center;gap:8px;display:flex}.statusbar .cell b{font-weight:600;display:inline-block}.statusbar .cell b.tick{animation:tick .5s var(--ease)}@keyframes tick{0%{opacity:0;transform:translateY(-60%)}}.statusbar .cell.end{border-right:0;border-left:var(--hair);color:var(--caution);margin-left:auto}.statusbar .cell.end.ok{color:var(--ok)}html.js .rv{opacity:0;transition:opacity .9s var(--ease) var(--d,0s), transform .9s var(--ease) var(--d,0s);transform:translateY(20px)}html.js .rv.in{opacity:1;transform:none}html.js .rv.tilt.in{transition:opacity .9s var(--ease) var(--d,0s), transform .6s var(--ease)}main.enter{animation:rise .6s var(--ease) both}::view-transition-old(root){animation:vt-out .26s var(--ease-io) both}::view-transition-new(root){animation:vt-in .55s var(--ease) both}@keyframes vt-out{to{opacity:0;transform:translateY(-10px)}}@keyframes vt-in{0%{opacity:0;transform:translateY(18px)}}::view-transition-old(header){display:none}::view-transition-old(statusbar){display:none}::view-transition-new(header){animation:none}::view-transition-new(statusbar){animation:none}::view-transition-group(header){animation:none}::view-transition-group(statusbar){animation:none}::view-transition-group(ptitle){animation-duration:.6s;animation-timing-function:var(--ease)}::view-transition-old(ptitle){object-fit:none;object-position:left center;width:auto;height:100%}::view-transition-new(ptitle){object-fit:none;object-position:left center;width:auto;height:100%}html.vt-theme::view-transition-old(root){mix-blend-mode:normal;animation:none}html.vt-theme::view-transition-new(root){mix-blend-mode:normal;animation:none}html.vt-theme header.top,html.vt-theme .statusbar,html.vt-theme [style*=view-transition-name]{view-transition-name:none!important}@media (max-width:1080px){.compose{grid-template-columns:minmax(0,1fr);gap:0}.compose-aside{margin-top:40px;position:static}}@media (max-width:960px){.hero{grid-template-columns:minmax(0,1fr);gap:36px;padding-top:32px}.vu{box-shadow:6px 6px 0 var(--shadow)}.kbd-btn{display:none}.lifecycle{grid-template-columns:1fr;gap:0}.lc-arrow{transform-origin:50% 0;width:1px;height:22px;margin:4px 0 4px 20px}.lc-arrow:after{border:4.5px solid #0000;border-top:6px solid var(--ink);border-bottom:0;inset:auto auto -1px -4px}html.js .rv .lc-arrow{transform:scaleY(0)}}@media (max-width:760px){:root{--head:60px}header.top .wrap{gap:8px}.logo .word{letter-spacing:.26em;padding:0 12px}nav.links{left:0;right:0;top:var(--head);background:var(--paper);border-bottom:var(--hair);padding:0 var(--gutter);scrollbar-width:none;order:3;gap:0;position:fixed;overflow-x:auto}nav.links::-webkit-scrollbar{display:none}nav.links a{flex:none;height:40px;padding:0 12px;font-size:11.5px}.nav-ind{height:40px}.acct{min-width:0;padding:0 12px}main{padding-top:40px}.hero h1{margin-top:20px}.vu-stage{height:300px;margin:8px 8px 0}.vu-log{margin:0 8px}.vu .vu-foot{margin-top:8px}.vu-br{display:none}.figures,.kv{grid-template-columns:repeat(2,minmax(0,1fr))}.figure:nth-child(2),.kv>div:nth-child(2){border-right:0}.figure:nth-child(-n+2),.kv>div:nth-child(-n+2){border-bottom:var(--hair)}.steps,.facts,.row2{grid-template-columns:1fr}.step{border-right:0;border-bottom:var(--hair)}.step:last-child{border-bottom:0}.fact{border-right:0;border-bottom:var(--hair)!important}.fact:last-child{border-bottom:0!important}.tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.tile:nth-child(2){border-right:0}.tile:nth-child(-n+2){border-bottom:var(--hair)}.row{grid-template-columns:38px minmax(0,1fr);gap:14px;padding:18px 8px}.row .glyph{width:38px;height:38px}.row .right{flex-direction:row;grid-column:2;align-items:center;gap:10px}.row .go{display:none}.ms{grid-template-columns:minmax(0,1fr);gap:6px;padding:22px 8px}.ms .amount{text-align:left}.stamp{padding:4px 10px;font-size:13px;top:20px;right:10px}.vu-line{grid-template-columns:40px 70px 1fr;font-size:11px}.seg{height:26px}.tl{--pad:20px}.tl-node{width:26px;height:24px;font-size:10px;top:35px}.tx-sheet{width:auto;left:16px;right:16px}#toasts{width:auto;bottom:auto;left:16px;right:16px;top:calc(var(--head) + 52px)}@keyframes toast-in{0%{opacity:0;transform:translateY(-12px)scale(.96)}}.flow{flex-direction:column}.fd-node{border-right:0;border-bottom:var(--hair)}.fd-wire{border-right:0;border-bottom:var(--hair);flex-direction:row;flex-basis:auto;align-items:center;padding:10px 18px}.fd-wire i{flex:none;width:2px;height:22px}.fd-wire i:before{background:repeating-linear-gradient(180deg, var(--ok) 0 8px, transparent 8px 12px);inset:-24px 0 0}.fd-wire i:after{display:none}html.js .rv.in .fd-wire i:before{animation:.9s linear infinite flow-down}.kv .v{white-space:normal;overflow-wrap:anywhere;font-size:15px}.tl-node:after{display:none}footer.site{margin-top:64px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;transition-delay:0s!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}
