html,body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.npm__react-simple-code-editor__textarea{overflow:auto!important;-webkit-overflow-scrolling:touch}a:focus-visible,select:focus-visible{outline:2px solid #22d3ee;outline-offset:2px;box-shadow:0 0 0 4px #22d3ee33;border-radius:2px}:root{--paper: #f4ede0;--paper-deep: #ebe2cf;--paper-light: #faf4e6;--ink: #1a1a1a;--ink-soft: #4a4a46;--ink-mute: #86807a;--line: #d8cfb9;--line-soft: #e4dcc6;--blueprint: #2a4a7a;--blueprint-deep: #1a2e4f;--blueprint-ink: #cfe0ff;--rust: #c6542a;--rust-soft: #e8a078;--rust-bg: #fbece2;--mint: #86a880;--mustard: #d4a04c;--kraft: #c4a373;--data-blue: #a8c6d8;--mono: "IBM Plex Mono", monospace;--sans: "Inter", system-ui, sans-serif;--serif: "Instrument Serif", Georgia, serif}*{box-sizing:border-box}.paper{background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.55;min-height:100vh}a{color:inherit}.paper:before{content:"";position:fixed;inset:0;pointer-events:none;background-image:linear-gradient(var(--line-soft) 1px,transparent 1px),linear-gradient(90deg,var(--line-soft) 1px,transparent 1px);background-size:32px 32px;opacity:.35;z-index:0}.paper>*{position:relative;z-index:1}.nav{position:sticky;top:0;z-index:10;background:#f4ede0eb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);padding:14px 40px;display:flex;align-items:center;gap:28px}.nav .brand-row{display:flex;align-items:center;gap:10px;text-decoration:none;color:inherit}.nav .logo{width:26px;height:26px;background:var(--ink);border-radius:3px;display:flex;align-items:center;justify-content:center;color:var(--paper);font-family:var(--serif);font-size:14px}.nav .brand{font-weight:700;font-size:16px;letter-spacing:-.3px}.nav .stamp{border:1.5px solid var(--ink);padding:2px 7px;font-family:var(--mono);font-size:9px;letter-spacing:1.5px;text-transform:uppercase;font-weight:600;border-radius:2px;transform:rotate(-2deg);display:inline-block}.nav .links{display:flex;gap:22px;margin-left:20px}.nav .links a{text-decoration:none;font-size:14px;font-weight:500;color:var(--ink);padding-bottom:2px;border-bottom:1.5px solid transparent}.nav .links a.active{border-bottom-color:var(--rust)}.nav .spacer{flex:1}.nav .login{text-decoration:none;font-size:14px;font-weight:500}.nav .avatar{width:32px;height:32px;border-radius:3px;background:var(--rust);color:var(--paper);font-family:var(--serif);font-size:15px;display:inline-flex;align-items:center;justify-content:center;text-decoration:none}.btn{display:inline-flex;align-items:center;gap:8px;font-family:var(--sans);font-weight:600;font-size:14px;padding:9px 16px;border-radius:4px;border:none;text-decoration:none;cursor:pointer;transition:all .12s;white-space:nowrap}.btn-primary{background:var(--ink);color:var(--paper)}.btn-primary:hover{background:#000}.btn-secondary{background:transparent;color:var(--ink);border:1px solid var(--line)}.btn-secondary:hover{border-color:var(--ink)}.btn-underline{background:transparent;color:var(--ink);padding:9px 4px;border-radius:0;border-bottom:1.5px solid var(--ink)}.btn-lg{padding:14px 22px;font-size:15px}.btn-sm{padding:6px 12px;font-size:12px}.btn-rust{background:var(--rust);color:var(--paper)}.btn-rust:hover{background:#a8461f}section.slab{padding:0 40px;margin-bottom:80px}.slab-head{display:grid;grid-template-columns:280px 1fr;gap:40px;padding:28px 0;border-bottom:1px solid var(--line);margin-bottom:32px;align-items:end}.slab-head .meta{font-family:var(--mono);font-size:11px;color:var(--rust);letter-spacing:1.5px;text-transform:uppercase}.slab-head h2{margin:0;font-family:var(--serif);font-weight:400;font-size:clamp(40px,5vw,68px);letter-spacing:-1.2px;line-height:1}.slab-head h2 em{color:var(--rust);font-style:italic}.slab-head .sub{color:var(--ink-soft);max-width:540px;font-size:17px;margin-top:18px}.section-mark{font-family:var(--mono);font-size:11px;color:var(--ink-mute);letter-spacing:1.5px;text-transform:uppercase}.section-mark.rust{color:var(--rust)}.chip{font-family:var(--mono);font-size:10px;letter-spacing:1px;padding:2px 7px;border:1px solid var(--line);border-radius:2px;color:var(--ink-soft);text-transform:uppercase;display:inline-block}.chip.rust{border-color:var(--rust);color:var(--rust);background:var(--rust-bg)}.chip.mint{border-color:var(--mint);color:#3f5a3f;background:#86a88026}.chip.blueprint{border-color:var(--blueprint);color:var(--blueprint)}footer.kit-footer{padding:36px 40px 60px;border-top:1px solid var(--line);display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:48px}footer.kit-footer .brand-col{max-width:300px}footer.kit-footer .brand-col .name{font-family:var(--serif);font-size:28px;letter-spacing:-.5px;margin-bottom:4px}footer.kit-footer .brand-col p{font-size:13px;color:var(--ink-soft);line-height:1.6;margin:8px 0 14px}footer.kit-footer .brand-col .rev{font-family:var(--mono);font-size:10px;color:var(--ink-mute);letter-spacing:1.5px;text-transform:uppercase;border:1px solid var(--line);padding:3px 7px;display:inline-block;border-radius:2px}footer.kit-footer h5{font-family:var(--mono);font-size:10px;color:var(--rust);letter-spacing:1.5px;text-transform:uppercase;margin:0 0 14px;font-weight:600}footer.kit-footer ul{list-style:none;padding:0;margin:0}footer.kit-footer ul li{margin-bottom:8px;font-size:13px;color:var(--ink-soft)}footer.kit-footer ul li a{text-decoration:none}footer.kit-footer ul li a:hover{color:var(--ink)}@media(max-width:900px){.nav{padding:12px 20px;gap:14px;flex-wrap:wrap}.nav .links{display:none}section.slab{padding-left:20px;padding-right:20px}.slab-head{grid-template-columns:1fr;gap:12px}footer.kit-footer{grid-template-columns:1fr 1fr;padding:32px 20px 48px;gap:32px}footer.kit-footer .brand-col{grid-column:1 / -1}}.mascot-container{position:fixed;z-index:1300;pointer-events:none;transition:transform .6s ease-out,opacity .3s}.mascot-pos-header.mascot-settling,.mascot-pos-header.mascot-idle,.mascot-pos-header.mascot-belly-up,.mascot-pos-header.mascot-play-fight,.mascot-pos-header.mascot-flipped{z-index:0}.mascot-container.interactive>svg,.mascot-container.interactive>.mascot-gif-overlay{pointer-events:auto;cursor:pointer}.mascot-pos-bottom-right{bottom:24px;right:24px;width:80px;height:100px}.mascot-pos-header{position:absolute!important;top:0;height:56px;width:70px;overflow:visible}.mascot-pos-header svg{position:absolute;bottom:-2px;left:0;width:70px;height:auto}.mascot-peeking{opacity:0;transform:translate(-100%);animation:mascot-peek-in 1.5s ease-out .5s forwards}.mascot-peeking.mascot-pos-header{left:-45px;width:80px}@keyframes mascot-peek-in{0%{opacity:0;transform:translate(-100%)}40%{opacity:1;transform:translate(-8%)}to{opacity:1;transform:translate(0)}}.mascot-peeking.mascot-pos-bottom-right{overflow:hidden;animation-name:mascot-peek-in-right}@keyframes mascot-peek-in-right{0%{opacity:0;transform:translate(100%)}30%{opacity:1;transform:translate(20%)}to{opacity:1;transform:translate(0)}}.mascot-peeking svg{transform:rotate(8deg);transform-origin:84px 32px}@keyframes mascot-walk-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-2px)}}.mascot-walking svg{animation:mascot-walk-bob .75s ease-in-out infinite}@keyframes mascot-paw-step-front{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes mascot-paw-step-back{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.mascot-walking [data-part=paws-back] ellipse:nth-child(odd),.mascot-walking [data-part=paws] ellipse:nth-child(odd){animation:mascot-paw-step-front .75s ease-in-out infinite}.mascot-walking [data-part=paws-back] ellipse:nth-child(2n),.mascot-walking [data-part=paws] ellipse:nth-child(2n){animation:mascot-paw-step-back .75s ease-in-out .375s infinite}@keyframes mascot-walk-across{0%{transform:translate(var(--walk-from, -100px))}to{transform:translate(var(--walk-to, 0px))}}.mascot-walking:not(.mascot-header-walk){animation:mascot-walk-across var(--walk-duration, 3s) linear forwards}@keyframes mascot-header-walk{0%{transform:translate(var(--walk-start, -80px))}45%{transform:translate(var(--walk-far, 900px))}50%{transform:translate(var(--walk-far, 900px))}to{transform:translate(var(--walk-settle, 60px))}}.mascot-header-walk{animation:mascot-header-walk 4.5s ease-in-out forwards}.mascot-flipped svg{animation:mascot-turn-around .35s ease-in-out forwards}@keyframes mascot-turn-around{0%{transform:scaleX(1) scaleY(1)}30%{transform:scaleX(.5) scaleY(1.1)}50%{transform:scaleX(-.5) scaleY(1.1)}80%{transform:scaleX(-.85) scaleY(1.03)}to{transform:scaleX(-1) scaleY(1)}}@keyframes mascot-settle{0%{transform:scale(1.05)}to{transform:scale(1)}}.mascot-settling svg{animation:mascot-settle .4s ease-out}@keyframes mascot-tail-sway{0%,to{transform:rotate(0)}50%{transform:rotate(5deg)}}@keyframes mascot-tail-flick{0%,85%,to{transform:rotate(0)}90%{transform:rotate(-12deg)}95%{transform:rotate(8deg)}}.mascot-idle [data-part=tail]{animation:mascot-tail-sway 3s ease-in-out infinite,mascot-tail-flick 8s ease-in-out infinite;transform-origin:100px 48px}.mascot-pos-header.mascot-idle [data-part=tail],.mascot-pos-header.mascot-settling [data-part=tail]{animation:mascot-tail-sway 2.5s ease-in-out infinite,mascot-tail-flick 7s ease-in-out infinite;transform-origin:100px 48px}.mascot-idle [data-part^=eyelid]{transition:opacity .25s ease-in-out}.mascot-hover [data-part=ear-left]{transform:rotate(-5deg)!important;transition:transform .1s}.mascot-hover [data-part=ear-right]{transform:rotate(5deg)!important;transition:transform .1s}@keyframes mascot-roll-over{0%{transform:rotate(0) scale(1)}50%{transform:rotate(90deg) scale(.9)}to{transform:rotate(0) scale(1)}}.mascot-belly-up svg{animation:mascot-roll-over .5s ease-in-out}@keyframes mascot-ball-drop{0%{transform:translateY(-60px);opacity:0}60%{transform:translateY(5px);opacity:1}80%{transform:translateY(-8px)}to{transform:translateY(0)}}.mascot-ball{width:14px;height:14px;border-radius:50%;background:#a5f3fc;position:absolute;bottom:-4px;left:50%;margin-left:-7px;animation:mascot-ball-drop .4s ease-out forwards}@keyframes mascot-play-fight{0%,to{transform:translate(0)}25%{transform:translate(-8px) rotate(-5deg)}50%{transform:translate(8px) rotate(5deg)}75%{transform:translate(-4px) rotate(-2deg)}}.mascot-play-fight svg{animation:mascot-play-fight .6s ease-in-out 3}@keyframes mascot-ball-bounce{0%,to{transform:translate(0)}25%{transform:translate(-12px,-8px)}50%{transform:translate(12px,-4px)}75%{transform:translate(-6px,-10px)}}.mascot-play-fight .mascot-ball{animation:mascot-ball-bounce .6s ease-in-out 3}@keyframes mascot-ball-exit{to{transform:translate(120px);opacity:0}}.mascot-ball-exit{animation:mascot-ball-exit .3s ease-in forwards}.mascot-departing{transition:transform 1.5s ease-in}.mascot-depart-right{transform:translate(calc(100vw + 100px))}.mascot-depart-left{transform:translate(-200px)}.mascot-away{display:none}.mascot-pos-header.mascot-emoting{z-index:0}.mascot-gif-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;transition:opacity 33ms ease-out}.mascot-gif-overlay img{object-fit:contain}.mascot-container>svg{transition:opacity 33ms ease-out}.mascot-container.mascot-gif-active>svg{opacity:0}@media(max-width:767px){.mascot-container{display:none}}.xterm{font-feature-settings:"liga" 0;position:relative;user-select:none;-ms-user-select:none;-webkit-user-select:none}.xterm.focus,.xterm:focus{outline:none}.xterm .xterm-helpers{position:absolute;top:0;z-index:5}.xterm .xterm-helper-textarea{padding:0;border:0;margin:0;position:absolute;opacity:0;left:-9999em;top:0;width:0;height:0;z-index:-5;white-space:nowrap;overflow:hidden;resize:none}.xterm .composition-view{background:#000;color:#fff;display:none;position:absolute;white-space:nowrap;z-index:1}.xterm .composition-view.active{display:block}.xterm .xterm-viewport{background-color:#000;overflow-y:scroll;cursor:default;position:absolute;inset:0}.xterm .xterm-screen{position:relative}.xterm .xterm-screen canvas{position:absolute;left:0;top:0}.xterm .xterm-scroll-area{visibility:hidden}.xterm-char-measure-element{display:inline-block;visibility:hidden;position:absolute;top:0;left:-9999em;line-height:normal}.xterm{cursor:text}.xterm.enable-mouse-events{cursor:default}.xterm.xterm-cursor-pointer{cursor:pointer}.xterm.column-select.focus{cursor:crosshair}.xterm .xterm-accessibility,.xterm .xterm-message{position:absolute;inset:0;z-index:10;color:transparent}.xterm .live-region{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.xterm-dim{opacity:.5}.xterm-underline{text-decoration:underline}.form-item{margin-top:24px}a{text-decoration:none}.auth-form-floater{display:table;margin:120px auto;width:250px}.auth-form-floater button{width:100%}.auth-form-floater .form-item{margin-top:24px}.form-item input{height:32px;width:100%;box-sizing:border-box}.form-item button{height:32px}.form-item a{display:table;margin:0 auto;color:initial;text-decoration:none}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-cyrillic-ext-400-normal-BQZuk6qB.woff2) format("woff2"),url(/assets/inter-cyrillic-ext-400-normal-DQukG94-.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-cyrillic-400-normal-obahsSVq.woff2) format("woff2"),url(/assets/inter-cyrillic-400-normal-HOLc17fK.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-greek-ext-400-normal-DGGRlc-M.woff2) format("woff2"),url(/assets/inter-greek-ext-400-normal-KugGGMne.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-greek-400-normal-B4URO6DV.woff2) format("woff2"),url(/assets/inter-greek-400-normal-q2sYcFCs.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-vietnamese-400-normal-DMkecbls.woff2) format("woff2"),url(/assets/inter-vietnamese-400-normal-Bbgyi5SW.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-ext-400-normal-C1nco2VV.woff2) format("woff2"),url(/assets/inter-latin-ext-400-normal-77YHD8bZ.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-400-normal-C38fXH4l.woff2) format("woff2"),url(/assets/inter-latin-400-normal-CyCys3Eg.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}code[class*=language-],pre[class*=language-]{color:#ccc;background:none;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#2d2d2d}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.comment,.token.block-comment,.token.prolog,.token.doctype,.token.cdata{color:#999}.token.punctuation{color:#ccc}.token.tag,.token.attr-name,.token.namespace,.token.deleted{color:#e2777a}.token.function-name{color:#6196cc}.token.boolean,.token.number,.token.function{color:#f08d49}.token.property,.token.class-name,.token.constant,.token.symbol{color:#f8c555}.token.selector,.token.important,.token.atrule,.token.keyword,.token.builtin{color:#cc99cd}.token.string,.token.char,.token.attr-value,.token.regex,.token.variable{color:#7ec699}.token.operator,.token.entity,.token.url{color:#67cdcc}.token.important,.token.bold{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.token.inserted{color:green}
