@font-face{font-family:Bolivia No Problem;src:url(/fonts/BoliviaNoProblem.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}:root{--bg: #0c1015;--surface: #151b23;--ink: #e9eef3;--hint: #8494a6;--amber: #ffb020;--link: #6cb6ff;--ok: #3fb950;--bad: #f85149;--radius: 14px;--radius-lg: 18px;--maxw: 1120px;--maxw-narrow: 760px;--nav-h: 62px;--shadow-card: 0 1px 0 color-mix(in srgb, #e9eef3 4%, transparent);--shadow-float: 0 24px 60px -20px #000000a6;--font: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--mono: ui-monospace, "SF Mono", "Cascadia Code", "JetBrains Mono", Menlo, Consolas, monospace}*{box-sizing:border-box}html{scroll-behavior:smooth;overflow-x:clip}body{margin:0;display:flex;flex-direction:column;min-height:100svh;background:var(--bg);color:var(--ink);font-family:var(--font);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:clip}a{color:var(--link);text-decoration:none}a:hover{text-decoration:underline}.wrap{max-width:var(--maxw);margin:0 auto;padding:0 20px}.narrow{max-width:var(--maxw-narrow)}.topbar{position:sticky;top:0;z-index:50;box-sizing:border-box;height:var(--nav-h);backdrop-filter:blur(10px);background:color-mix(in srgb,var(--bg) 82%,transparent);border-bottom:1px solid color-mix(in srgb,var(--ink) 8%,transparent)}.topbar-inner{display:flex;align-items:center;gap:18px;height:100%;max-width:var(--maxw);margin:0 auto;padding:0 20px}.brand-cluster{display:inline-flex;align-items:center;gap:10px;flex:0 0 auto}.brand{display:inline-flex;align-items:baseline;font-weight:800;font-size:20px;color:var(--ink);letter-spacing:-.01em;font-family:var(--mono)}.brand .cursor{color:var(--amber)}.brand-qr{appearance:none;display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;padding:0;border-radius:8px;border:1px solid color-mix(in srgb,var(--ink) 16%,transparent);background:color-mix(in srgb,var(--ink) 5%,transparent);color:var(--hint);cursor:pointer;transition:color .15s ease,border-color .15s ease,background .15s ease}.brand-qr:hover,.brand-qr:focus-visible{color:var(--amber);border-color:color-mix(in srgb,var(--amber) 45%,transparent);background:color-mix(in srgb,var(--amber) 12%,transparent)}.brand-qr:focus-visible{outline:2px solid color-mix(in srgb,var(--amber) 70%,transparent);outline-offset:2px}.brand-qr__icon{display:block}.drawer .brand-cluster{margin-bottom:2px}.top-nav{display:flex;gap:6px;margin-left:8px;align-items:center;flex:1 1 auto;min-width:0;flex-wrap:nowrap}.top-link{padding:9px 14px;border-radius:10px;color:var(--hint);font-size:15px;font-weight:600;transition:background .15s ease,color .15s ease;white-space:nowrap;flex:0 0 auto}.top-link:hover{color:var(--ink);text-decoration:none;background:color-mix(in srgb,var(--ink) 6%,transparent)}.top-link.active{color:#0c1015;background:var(--amber);font-weight:700}.top-link.active:hover{color:#0c1015;background:color-mix(in srgb,var(--amber) 88%,#fff)}.top-nav__sep{display:inline-block;width:1px;height:18px;margin:0 4px;background:color-mix(in srgb,var(--ink) 14%,transparent);flex:0 0 auto}.top-nav__sep[hidden]{display:none}.top-sections{display:none;position:relative;align-items:center;gap:2px;flex:1 1 auto;min-width:0;max-width:100%}.top-sections.is-active{display:inline-flex}.top-sections[hidden]{display:none!important}.top-section{padding:7px 12px;border-radius:8px;color:var(--hint);font-size:13px;font-weight:600;transition:background .15s ease,color .15s ease;white-space:nowrap;flex:0 0 auto;max-width:min(220px,42vw);overflow:hidden;text-overflow:ellipsis}.top-section.is-overflow{display:none!important}.top-section:hover{color:var(--ink);text-decoration:none;background:color-mix(in srgb,var(--ink) 6%,transparent)}.top-section.active{color:#0c1015;background:var(--amber);font-weight:700}.top-sections__more{appearance:none;flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:30px;padding:0 10px;border-radius:8px;border:1px dashed color-mix(in srgb,var(--ink) 28%,transparent);background:color-mix(in srgb,var(--ink) 5%,transparent);color:var(--hint);font:inherit;font-size:16px;font-weight:800;letter-spacing:.08em;line-height:1;cursor:pointer;transition:color .15s ease,border-color .15s ease,background .15s ease,box-shadow .15s ease}.top-sections__more[hidden]{display:none!important}.top-sections__more:hover,.top-sections__more:focus-visible{color:var(--amber);border-color:color-mix(in srgb,var(--amber) 55%,transparent);background:color-mix(in srgb,var(--amber) 12%,transparent);text-decoration:none;outline:none}.top-sections__more:focus-visible{box-shadow:0 0 0 2px color-mix(in srgb,var(--amber) 45%,transparent)}.top-sections__more[aria-expanded=true]{color:#0c1015;border-style:solid;border-color:transparent;background:var(--amber)}.top-sections__menu{position:absolute;top:calc(100% + 8px);z-index:70;display:flex;flex-direction:column;gap:2px;min-width:min(240px,70vw);max-width:min(320px,86vw);padding:6px;border-radius:12px;border:1px solid color-mix(in srgb,var(--ink) 14%,transparent);background:color-mix(in srgb,var(--bg) 94%,transparent);box-shadow:var(--shadow-float);backdrop-filter:blur(12px)}.top-sections__menu[hidden]{display:none!important}.top-sections__menu[data-side=start]{left:0}.top-sections__menu[data-side=end]{right:0;left:auto}.top-sections__menu-item{display:block;padding:9px 12px;border-radius:8px;color:var(--hint);font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-decoration:none}.top-sections__menu-item:hover,.top-sections__menu-item:focus-visible{color:var(--ink);background:color-mix(in srgb,var(--ink) 7%,transparent);outline:none;text-decoration:none}.top-sections__menu-item.active{color:#0c1015;background:var(--amber);font-weight:700}.top-right{margin-left:auto;display:flex;align-items:center;gap:12px;flex:0 1 auto;min-width:0}.top-right .language-switcher{flex:0 1 auto;min-width:0}.language-switcher--compact .lang-btn{padding:7px 10px}.language-switcher--compact .lang-more__btn{padding:0 10px}html.i18n-pending .content,html.i18n-pending .site-foot{visibility:hidden}.language-switcher{position:relative;display:inline-flex;align-items:stretch;border:1px solid color-mix(in srgb,var(--ink) 16%,transparent);border-radius:10px;overflow:visible;background:color-mix(in srgb,var(--bg) 40%,transparent)}.lang-btn{appearance:none;border:0;cursor:pointer;background:transparent;color:var(--hint);font:inherit;font-size:13px;font-weight:700;padding:7px 12px;transition:background .15s ease,color .15s ease;border-radius:0}.lang-btn:first-child{border-radius:9px 0 0 9px}.lang-btn:hover{color:var(--ink)}.lang-btn.active{background:var(--amber);color:#0c1015}.lang-btn:disabled,.lang-more__btn:disabled,.lang-more__item:disabled{cursor:wait;opacity:.7}.lang-more{position:relative;display:flex}.lang-more__btn{appearance:none;border:0;border-left:1px solid color-mix(in srgb,var(--ink) 12%,transparent);cursor:pointer;background:transparent;color:var(--hint);font:inherit;font-size:14px;font-weight:800;letter-spacing:.06em;padding:0 12px;border-radius:0 9px 9px 0;transition:background .15s ease,color .15s ease}.lang-more__btn:hover,.lang-more__btn:focus-visible{color:var(--amber);outline:none}.lang-more__btn[aria-expanded=true]{background:var(--amber);color:#0c1015}.lang-more__menu{position:absolute;top:calc(100% + 8px);right:0;z-index:80;display:flex;flex-direction:column;gap:2px;min-width:200px;max-height:min(70vh,420px);overflow:auto;padding:6px;border-radius:12px;border:1px solid color-mix(in srgb,var(--ink) 14%,transparent);background:color-mix(in srgb,var(--bg) 96%,transparent);box-shadow:var(--shadow-float);backdrop-filter:blur(12px)}.lang-more__menu[hidden]{display:none!important}.lang-more__item{appearance:none;border:0;display:flex;align-items:center;gap:10px;width:100%;padding:9px 12px;border-radius:8px;background:transparent;color:var(--hint);font:inherit;font-size:13px;font-weight:600;cursor:pointer;text-align:left}.lang-more__item:hover,.lang-more__item:focus-visible{color:var(--ink);background:color-mix(in srgb,var(--ink) 7%,transparent);outline:none}.lang-more__item.active{color:#0c1015;background:var(--amber);font-weight:700}.lang-more__code{font-family:var(--mono);font-size:12px;font-weight:800;min-width:1.8em}.lang-more__native{flex:1}.drawer-foot .lang-more__menu{top:auto;bottom:calc(100% + 8px)}.content,.site-foot{transition:opacity .18s ease,transform .18s ease}html.is-lang-switching .content,html.is-lang-switching .site-foot{opacity:.42;transform:translateY(3px);pointer-events:none}html.is-lang-switching .language-switcher{position:relative}html.is-lang-switching .language-switcher:after{content:"";position:absolute;inset:0;border-radius:inherit;background:color-mix(in srgb,var(--amber) 22%,transparent);animation:lang-pulse .7s ease-in-out infinite alternate;pointer-events:none}@keyframes lang-pulse{0%{opacity:.35}to{opacity:.9}}@media (prefers-reduced-motion: reduce){.content,.site-foot{transition:none}html.is-lang-switching .content,html.is-lang-switching .site-foot{opacity:1;transform:none}html.is-lang-switching .language-switcher:after{display:none}}.top-toggle{display:none;width:42px;height:42px;border:1px solid color-mix(in srgb,var(--ink) 16%,transparent);border-radius:10px;background:transparent;cursor:pointer;flex-direction:column;gap:5px;align-items:center;justify-content:center}.top-toggle span{width:20px;height:2px;background:var(--ink);border-radius:2px}.drawer{position:fixed;top:0;left:0;bottom:0;width:260px;display:flex;flex-direction:column;gap:22px;padding:24px 20px;background:var(--surface);border-right:1px solid color-mix(in srgb,var(--ink) 10%,transparent);transform:translate(-100%);transition:transform .22s ease;z-index:70;box-shadow:var(--shadow-float)}.drawer-nav{display:flex;flex-direction:column;gap:10px}.drawer-group{display:flex;flex-direction:column;gap:2px}.drawer-link{display:flex;align-items:center;gap:10px;padding:11px 14px;border-radius:10px;color:var(--hint);font-size:16px;font-weight:600}.drawer-link:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.5}.drawer-link:hover{color:var(--ink);text-decoration:none;background:color-mix(in srgb,var(--ink) 6%,transparent)}.drawer-link.active{color:#0c1015;background:var(--amber);font-weight:700}.drawer-link.active:before{background:#0c1015;opacity:.55}.drawer-sections{display:none;flex-direction:column;gap:2px;margin:2px 0 4px 12px;padding-left:12px;border-left:1px solid color-mix(in srgb,var(--ink) 12%,transparent)}.drawer-group.is-current .drawer-sections{display:flex}.drawer-section{display:block;padding:9px 12px;border-radius:8px;color:var(--hint);font-size:14px;font-weight:600;transition:background .15s ease,color .15s ease}.drawer-section:hover{color:var(--ink);text-decoration:none;background:color-mix(in srgb,var(--ink) 6%,transparent)}.drawer-section.active{color:#0c1015;background:var(--amber);font-weight:700}.drawer-foot{margin-top:auto}.drawer-backdrop{position:fixed;inset:0;background:#0008;opacity:0;visibility:hidden;transition:opacity .2s ease,visibility .2s ease;z-index:65}body.nav-open .drawer{transform:translate(0)}body.nav-open .drawer-backdrop{opacity:1;visibility:visible}.content{flex:1 0 auto}.tab-page{display:none}.tab-page.active{display:block}.btn{display:inline-flex;align-items:center;justify-content:center;height:42px;padding:0 18px;font:inherit;font-size:15px;font-weight:600;line-height:1;cursor:pointer;border:0;border-radius:10px;background:transparent;color:var(--ink);transition:transform .08s ease,filter .15s ease,background .15s ease;white-space:nowrap}.btn[hidden]{display:none!important}.btn:hover{text-decoration:none}.btn:active{transform:translateY(1px)}.btn--amber{background:var(--amber);color:#0c1015}.btn--amber:hover{filter:brightness(1.06)}.btn--ghost{border:1px solid color-mix(in srgb,var(--ink) 16%,transparent);color:var(--ink)}.btn--ghost:hover{background:color-mix(in srgb,var(--ink) 6%,transparent)}.btn--lg{height:50px;padding:0 24px;font-size:17px;border-radius:12px}.hero{position:relative;min-height:calc(var(--app-height, 100svh) - var(--nav-h));display:flex;align-items:flex-start;justify-content:center;overflow:hidden;padding-top:clamp(8px,2svh,28px);padding-bottom:calc(12px + env(safe-area-inset-bottom,0px));border-bottom:none;--hero-demo-slot: 120px}.hero:after{content:"";position:absolute;left:6%;right:6%;bottom:0;height:1px;z-index:3;pointer-events:none;background:linear-gradient(90deg,transparent 0%,color-mix(in srgb,var(--ink) 11%,transparent) 22%,color-mix(in srgb,var(--ink) 11%,transparent) 78%,transparent 100%)}.hero-demo-slot{flex:0 0 auto;width:100%;height:var(--hero-demo-slot);pointer-events:none}.hero hero-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;z-index:1;overflow:hidden;pointer-events:none}hero-canvas{position:absolute;inset:0;display:block;overflow:hidden;pointer-events:none}.hero-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;z-index:0;opacity:0;pointer-events:none}.hero-canvas.is-active{opacity:1}.hero.is-demo-focus{min-height:calc(var(--app-height, 100svh) - var(--nav-h));height:calc(var(--app-height, 100svh) - var(--nav-h));border-bottom:none}.hero.is-demo-focus .hero-center{opacity:0;visibility:hidden;pointer-events:none}.hero.is-demo-focus .hero-canvas.is-active{opacity:1}.hero-focus-btn{position:absolute;top:12px;right:12px;z-index:6;box-sizing:border-box;width:44px;height:44px;min-width:44px;min-height:44px;margin:0;padding:0;border-radius:10px;border:1px solid color-mix(in srgb,var(--ink) 22%,transparent);background:color-mix(in srgb,var(--bg) 70%,transparent);color:var(--ink);backdrop-filter:blur(8px);cursor:pointer;display:grid;place-items:center;line-height:0;appearance:none;-webkit-appearance:none;pointer-events:auto;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:background .2s,border-color .2s,color .2s}.hero>.hero-focus-btn{z-index:6}.hero-focus-btn:before{content:"";position:absolute;inset:-14px}.hero-focus-btn svg{pointer-events:none;display:block}.hero-focus-btn:hover{border-color:var(--amber);color:var(--amber)}.hero-focus-btn .hero-focus-btn__exit,.hero-focus-btn.is-active .hero-focus-btn__enter{display:none}.hero-focus-btn.is-active .hero-focus-btn__exit{display:block}.hero-focus-btn.is-active{border-color:color-mix(in srgb,var(--amber) 55%,transparent);color:var(--amber)}.hero-scene-controls{display:flex;align-items:center;gap:14px;contain:layout}.hero-loop-btn,.hero-settings-btn{box-sizing:border-box;width:40px;height:40px;min-width:40px;min-height:40px;margin:0;padding:0;border-radius:10px;border:1px solid color-mix(in srgb,var(--ink) 22%,transparent);background:color-mix(in srgb,var(--bg) 60%,transparent);color:var(--hint);backdrop-filter:blur(8px);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;line-height:0;appearance:none;-webkit-appearance:none;flex-shrink:0;opacity:.88;pointer-events:auto;touch-action:manipulation;transition:background .2s,border-color .2s,color .2s,opacity .2s}.hero-loop-btn svg,.hero-settings-btn svg{width:15px;height:15px;pointer-events:none;display:block;flex-shrink:0}.hero-loop-btn:hover,.hero-settings-btn:hover{border-color:var(--amber);color:var(--amber);opacity:1}.hero-loop-btn.is-active,.hero-settings-btn.is-active{border-color:color-mix(in srgb,var(--amber) 55%,transparent);color:var(--amber);opacity:1}.hero-settings-panel{position:absolute;left:16px;top:16px;z-index:6;width:min(260px,calc(100% - 32px));padding:12px 14px 14px;border-radius:12px;border:1px solid color-mix(in srgb,var(--ink) 14%,transparent);background:color-mix(in srgb,var(--bg) 82%,transparent);backdrop-filter:blur(12px);color:var(--ink);pointer-events:auto;box-shadow:0 10px 28px color-mix(in srgb,#000 35%,transparent)}.hero-settings-panel[hidden]{display:none}.hero-settings-panel__head{display:flex;align-items:center;gap:4px;margin-bottom:12px}.hero-settings-tab{flex:1;min-height:28px;padding:0 10px;border-radius:8px;border:1px solid transparent;background:transparent;color:var(--hint);font-size:11px;font-family:inherit;letter-spacing:.04em;text-transform:uppercase;cursor:pointer;transition:color .15s,border-color .15s,background .15s}.hero-settings-tab:hover{color:var(--ink)}.hero-settings-tab.is-active{color:var(--amber);border-color:color-mix(in srgb,var(--amber) 40%,transparent);background:color-mix(in srgb,var(--amber) 10%,transparent)}.hero-settings-panel__body{display:flex;flex-direction:column;gap:10px}.hero-settings-panel__body[hidden]{display:none}.hero-perf-row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;font-size:12px;line-height:1.35}.hero-perf-row span:first-child{color:var(--hint);flex-shrink:0}.hero-perf-row span:last-child{color:color-mix(in srgb,var(--ink) 88%,transparent);text-align:right;font-variant-numeric:tabular-nums}.hero-set-row{display:grid;grid-template-columns:64px 1fr;align-items:center;gap:10px;font-size:12px;color:color-mix(in srgb,var(--ink) 78%,transparent)}.hero-set-row--toggle{grid-template-columns:1fr auto}.hero-set-row input[type=range]{width:100%;accent-color:var(--amber);cursor:pointer}.hero-set-row input[type=text]{width:100%;font:inherit;font-size:12px;color:var(--ink, #e9eef3);background:#0c10158c;border:1px solid rgba(132,148,166,.35);border-radius:4px;padding:4px 8px}.hero-set-hint{margin:0;font-size:11px;line-height:1.35;color:var(--hint, #8494a6)}.hero-set-io{display:grid;gap:4px;padding:8px 10px;border-radius:8px;border:1px solid color-mix(in srgb,var(--amber) 28%,transparent);background:color-mix(in srgb,var(--bg) 70%,transparent);font-size:11px;line-height:1.4}.hero-set-io__title{font-weight:700;color:var(--amber);font-size:12px}.hero-set-io__blurb{margin:0 0 4px;color:var(--hint);font-size:11px;line-height:1.45}.hero-set-io__row{color:var(--ink);word-break:break-word}.hero-set-io__row span{display:inline-block;min-width:2.2em;color:var(--hint);font-family:var(--mono);font-size:10px;text-transform:lowercase}.hero-bpmn-card{position:absolute;top:max(56px,10%);right:max(12px,env(safe-area-inset-right,0px));z-index:1;width:min(272px,38vw);max-height:min(42vh,360px);overflow:auto;padding:14px 16px;border-radius:12px;border:1px solid color-mix(in srgb,var(--ink) 14%,transparent);background:color-mix(in srgb,var(--bg) 88%,transparent);box-shadow:var(--shadow-float);color:var(--ink);pointer-events:none;scrollbar-width:thin;opacity:0;transform:translateY(6px);transition:transform .35s ease;will-change:opacity,transform}.hero-bpmn-card.is-on{transform:translateY(0)}.hero-bpmn-card.is-on.is-interactive{pointer-events:auto}.hero-bpmn-card[hidden]{display:block!important;pointer-events:none!important}.hero-jack-credit{position:absolute;z-index:6;left:50%;bottom:calc(148px + env(safe-area-inset-bottom,0px));transform:translate(-50%);font-family:Space Mono,ui-monospace,monospace;font-weight:700;font-size:12px;letter-spacing:.04em;color:color-mix(in srgb,#fff 55%,transparent);text-decoration:none;pointer-events:auto;transition:color .18s ease,opacity .25s ease;opacity:0}.hero.is-jack-scene .hero-jack-credit:not([hidden]){opacity:1}.hero-jack-credit:hover{color:#fff;text-decoration:underline;text-underline-offset:3px}.hero-jack-credit[hidden]{display:none!important}.hero.is-demo-focus .hero-jack-credit{bottom:calc(120px + env(safe-area-inset-bottom,0px))}.hero-set-hint{margin:0 0 12px;font-size:13px;line-height:1.45;color:var(--hint)}.hero-set-link{font-family:var(--mono);font-size:13px;font-weight:600;color:var(--link)}.hero.is-demo-focus .hero-bpmn-card{top:max(64px,env(safe-area-inset-top,0px) + 56px);right:max(64px,env(safe-area-inset-right,0px) + 12px);z-index:5;width:min(300px,34vw);max-height:min(56vh,420px)}.hero-bpmn-card__empty{margin:0;font-size:13px;line-height:1.4;color:var(--hint)}.hero-bpmn-card__body{transition:opacity .22s ease,transform .22s ease}.hero-bpmn-card__body.is-swap{opacity:0;transform:translateY(4px)}.hero-bpmn-card__title{margin:0 0 8px;font-size:13px;font-weight:600;letter-spacing:.01em;color:var(--amber);line-height:1.3}.hero-bpmn-card__blurb{margin:0 0 12px;font-size:13px;line-height:1.5;color:color-mix(in srgb,var(--ink) 88%,var(--hint))}.hero-bpmn-card__io{display:grid;gap:8px;padding-top:10px;border-top:1px solid color-mix(in srgb,var(--ink) 10%,transparent)}.hero-bpmn-card__io-row{display:grid;grid-template-columns:2.4em 1fr;gap:8px;align-items:start}.hero-bpmn-card__k{font-family:var(--mono);font-size:10px;letter-spacing:.04em;text-transform:uppercase;color:var(--hint);padding-top:2px}.hero-bpmn-card__v{margin:0;font-family:var(--mono);font-size:11px;line-height:1.45;color:var(--ink);word-break:break-word;white-space:pre-wrap}.hero-set-actions{display:flex;flex-wrap:wrap;gap:8px}.hero-set-actions--jack{max-height:160px;overflow-y:auto;padding-right:2px}.hero-set-actions--jack .hero-set-chip{font-size:11px;min-height:28px;padding:0 9px}.hero-set-chip,.hero-set-bit{min-height:30px;padding:0 11px;border-radius:8px;border:1px solid color-mix(in srgb,var(--ink) 20%,transparent);background:color-mix(in srgb,var(--surface) 70%,transparent);color:var(--hint);font-size:12px;font-family:inherit;cursor:pointer;transition:border-color .15s,color .15s,background .15s}.hero-set-chip:hover,.hero-set-bit:hover{border-color:var(--amber);color:var(--amber)}.hero-set-chip.is-on,.hero-set-bit.is-on{border-color:color-mix(in srgb,var(--amber) 55%,transparent);color:var(--amber);background:color-mix(in srgb,var(--amber) 12%,transparent)}.hero-set-switch{width:36px;height:20px;border-radius:999px;border:1px solid color-mix(in srgb,var(--ink) 22%,transparent);background:color-mix(in srgb,var(--ink) 10%,transparent);position:relative;cursor:pointer;padding:0;transition:background .15s,border-color .15s}.hero-set-switch:after{content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:var(--hint);transition:transform .15s,background .15s}.hero-set-switch.is-on{border-color:color-mix(in srgb,var(--amber) 55%,transparent);background:color-mix(in srgb,var(--amber) 22%,transparent)}.hero-set-switch.is-on:after{transform:translate(16px);background:var(--amber)}body.demo-focus .topbar{opacity:0;pointer-events:none;transition:opacity .2s}.hero-scenes{position:absolute;left:0;right:0;top:auto;bottom:calc(10px + env(safe-area-inset-bottom,0px));margin-inline:auto;width:max-content;max-width:calc(100% - 24px);z-index:5;display:flex;flex-direction:column;align-items:center;padding-top:44px;gap:0;pointer-events:auto;visibility:visible;opacity:1}.hero-scene-dots{display:flex;gap:10px;align-items:center}.hero-scene-dot{box-sizing:border-box;width:10px;height:10px;border-radius:50%;border:1px solid color-mix(in srgb,var(--ink) 35%,transparent);background:transparent;padding:0;cursor:pointer;flex-shrink:0;transition:background .2s,border-color .2s,transform .2s}.hero-scene-dot:hover{border-color:var(--amber);transform:scale(1.15)}.hero-scene-dot.active{background:var(--amber);border-color:var(--amber)}.hero-center{position:relative;z-index:2;text-align:center;padding:4px 20px 0;max-width:min(1120px,100%);width:100%;margin-left:auto;margin-right:auto;display:flex;flex-direction:column;align-items:center;pointer-events:none}.hero-center>*:not(.hero-demo-slot){pointer-events:auto}.hero-center:before{content:"";position:absolute;z-index:-1;inset:-28px -48px;pointer-events:none;background:radial-gradient(ellipse 68% 62% at 50% 42%,#0c1015d1,#0c101585 42%,#0c10152e 68%,#0c101500 82%)}.hero-center .eyebrow{text-shadow:0 1px 16px rgba(12,16,21,.95);text-transform:none;letter-spacing:.02em;font-size:clamp(20px,2.8vw,26px);margin:0 0 8px;line-height:1.3;width:100%;display:flex;justify-content:center}.hero-center .display{color:#f4f7fb;text-shadow:0 1px 1px rgba(12,16,21,.95),0 2px 18px rgba(12,16,21,.9),0 8px 40px rgba(12,16,21,.75);width:100%;max-width:780px;text-align:center}.hero-center .lead{color:color-mix(in srgb,var(--ink) 86%,var(--hint));text-shadow:0 1px 2px rgba(12,16,21,.95),0 4px 22px rgba(12,16,21,.85);margin:0 auto;max-width:36rem;text-align:center;width:100%}.skill-tree{list-style:none;margin:16px auto 0;padding:12px 14px 10px;width:100%;max-width:min(1080px,100%);display:grid;gap:8px;text-align:left;position:relative;z-index:4;border-radius:16px;border:1px solid color-mix(in srgb,var(--ink) 10%,transparent);background:transparent}.skill-tree:before{content:"";position:absolute;inset:0;z-index:0;border-radius:inherit;background:#0c10156b;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);pointer-events:none}.skill-tree>*{position:relative;z-index:1}.hero-center .tech-tag{backdrop-filter:none;-webkit-backdrop-filter:none;text-shadow:0 1px 12px rgba(12,16,21,.9)}.hero-actions{justify-content:center;width:100%;max-width:780px}.skill-tree__group{display:grid;grid-template-columns:minmax(6.5rem,9rem) 1fr;gap:8px 14px;align-items:start;position:relative;padding-left:14px}.skill-tree__group:before{content:"";position:absolute;left:0;top:.55em;bottom:.35em;width:2px;border-radius:2px;background:color-mix(in srgb,var(--amber) 55%,transparent)}.skill-tree__group:after{content:"";position:absolute;left:-2px;top:.45em;width:6px;height:6px;border-radius:50%;background:var(--amber);box-shadow:0 0 10px color-mix(in srgb,var(--amber) 55%,transparent)}.skill-tree__cat{font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--hint);line-height:1.35;padding-top:6px;text-shadow:0 1px 12px rgba(12,16,21,.9);white-space:normal}.skill-tree__tags{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px;align-items:flex-start}.skill-tree__tags>li{margin:0;padding:0;list-style:none;position:relative}.tech-tag-nest{position:relative;display:inline-block;vertical-align:top;z-index:1}.tech-tag-nest.is-open{z-index:40}.tech-tag--branch{cursor:pointer;margin:0;appearance:none;-webkit-appearance:none}.tech-tag--branch:focus-visible{outline:2px solid color-mix(in srgb,var(--amber) 70%,transparent);outline-offset:2px}.tech-tag-pop{position:fixed;z-index:60;display:none;min-width:220px;max-width:min(420px,calc(100vw - 24px));width:max-content;padding:10px;border-radius:12px;border:1px solid color-mix(in srgb,var(--ink) 16%,transparent);background:#121820;box-shadow:0 0 0 1px #0c101580,0 18px 40px -10px #000000bf;max-height:calc(100vh - 24px);overflow:auto;pointer-events:none}.tech-tag-nest.is-open>.tech-tag-pop,.tech-tag-pop.is-open{display:block;pointer-events:auto}.tech-tag-pop__list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}.tech-tag-pop__list>li{margin:0;padding:0;list-style:none}@media (max-width: 560px){.skill-tree__group{grid-template-columns:1fr;gap:6px}.skill-tree__cat{padding-top:0}}@media (hover: hover) and (pointer: fine){.tech-tag--branch:hover{filter:brightness(1.06)}}.hero-badge{position:absolute;left:50%;top:0;transform:translate(-50%);margin:0;font-family:var(--mono);font-size:12px;color:color-mix(in srgb,var(--ink) 72%,var(--hint));letter-spacing:.06em;white-space:nowrap;text-shadow:0 1px 14px rgba(12,16,21,.95);padding:6px 12px;border-radius:8px;background:color-mix(in srgb,var(--bg) 72%,transparent);backdrop-filter:blur(8px);pointer-events:none}.hero-badge .mono{color:var(--amber)}.hero-badge .scene-tech{color:color-mix(in srgb,var(--ink) 68%,var(--hint))}.hero-badge .scene-name{display:inline-block;transition:opacity .28s ease,transform .28s ease}.hero-badge .scene-name.is-swap{opacity:.35;transform:translateY(2px)}.hero-scene-dot.is-from,.hero-scene-dot.is-to{border-color:color-mix(in srgb,var(--amber) 55%,transparent)}.hero-scene-dot.is-to{background:color-mix(in srgb,var(--amber) 45%,transparent)}.mono{font-family:var(--mono)}.eyebrow{color:var(--amber);font-weight:600;letter-spacing:.04em;text-transform:uppercase;font-size:14px}hero-roles{display:inline-block;position:relative;font-family:var(--mono);font-weight:600;letter-spacing:.03em;text-transform:none;color:var(--amber);font-size:inherit;line-height:inherit;transition:color .2s ease}.hero-roles__text{display:inline-block;white-space:pre;color:inherit;position:relative}hero-roles:after{content:"|";position:absolute;left:100%;top:0;margin-left:.04em;letter-spacing:0;color:inherit;font-weight:700;animation:hero-roles-blink 1s step-end infinite}@keyframes hero-roles-blink{0%,49%{opacity:1}50%,to{opacity:0}}hero-roles.is-devops{color:#3ecf8e}hero-roles.is-backend{color:var(--link)}hero-roles.is-swe{color:#c5d4e3}hero-roles.is-solver{color:var(--amber)}hero-roles.is-glitch{color:#7dffb3}hero-roles.is-glitch .hero-roles__text{color:#7dffb3;animation:hero-roles-enthusiast .28s infinite linear}hero-roles.is-glitch .hero-roles__text:before,hero-roles.is-glitch .hero-roles__text:after{content:attr(data-text);position:absolute;inset:0;overflow:hidden;pointer-events:none;white-space:pre}hero-roles.is-glitch .hero-roles__text:before{color:#ff4d6d;z-index:-1;animation:hero-roles-rgb-a .45s infinite linear alternate-reverse}hero-roles.is-glitch .hero-roles__text:after{color:#4de1ff;z-index:-1;animation:hero-roles-rgb-b .35s infinite linear alternate-reverse}hero-roles.is-onec{color:#f0c14a}hero-roles.is-onec .hero-roles__text{text-shadow:0 0 6px rgba(240,193,74,.55),0 0 14px rgba(240,193,74,.35);animation:hero-roles-shake .12s infinite}hero-roles.is-scrambling .hero-roles__text{color:color-mix(in srgb,currentColor 70%,var(--ink));text-shadow:-2px 0 rgba(255,77,109,.55),2px 0 rgba(77,225,255,.55);animation:hero-roles-scramble .08s steps(2) infinite}hero-roles.is-scrambling .hero-roles__text:before,hero-roles.is-scrambling .hero-roles__text:after{content:none}@keyframes hero-roles-enthusiast{0%,to{transform:translate(0);filter:hue-rotate(0deg)}20%{transform:translate(-2px);filter:hue-rotate(90deg)}40%{transform:translate(2px);filter:hue-rotate(180deg)}60%{transform:translate(-1px);filter:hue-rotate(270deg)}80%{transform:translate(1px);filter:hue-rotate(360deg)}}@keyframes hero-roles-rgb-a{0%{transform:translate(0);clip-path:inset(0 0 60% 0)}50%{transform:translate(-3px,1px);clip-path:inset(20% 0 30% 0)}to{transform:translate(2px,-1px);clip-path:inset(55% 0 5% 0)}}@keyframes hero-roles-rgb-b{0%{transform:translate(0);clip-path:inset(40% 0 10% 0)}50%{transform:translate(3px,-1px);clip-path:inset(10% 0 45% 0)}to{transform:translate(-2px,1px);clip-path:inset(0 0 70% 0)}}@keyframes hero-roles-shake{0%,to{transform:translate(0)}25%{transform:translate(-1.5px)}75%{transform:translate(1.5px)}}@keyframes hero-roles-scramble{0%{transform:translate(0)}50%{transform:translate(1px,-1px)}to{transform:translate(-1px)}}@media (prefers-reduced-motion: reduce){hero-roles:after,hero-roles.is-glitch .hero-roles__text,hero-roles.is-glitch .hero-roles__text:before,hero-roles.is-glitch .hero-roles__text:after,hero-roles.is-onec .hero-roles__text,hero-roles.is-scrambling .hero-roles__text{animation:none}hero-roles.is-glitch .hero-roles__text:before,hero-roles.is-glitch .hero-roles__text:after{content:none}}@media (max-width: 760px),(pointer: coarse){.skill-tree:before{backdrop-filter:none;-webkit-backdrop-filter:none;background:#0c1015d6;box-shadow:inset 0 1px #ffffff0a}.hero-center:before{inset:-16px -24px;background:radial-gradient(ellipse 68% 58% at 50% 38%,#0c1015b8,#0c10157a 42%,#0c10152e 68%,#0c101500 88%)}.hero-canvas.is-active{opacity:1}.hero-badge,.hero-focus-btn,.hero-loop-btn,.hero-settings-btn,.hero-settings-panel{backdrop-filter:none;-webkit-backdrop-filter:none}.hero-focus-btn{top:max(10px,env(safe-area-inset-top,0px));right:max(10px,env(safe-area-inset-right,0px));width:48px;height:48px;min-width:48px;min-height:48px}.hero-focus-btn:before{inset:-18px}.hero-center .display{text-shadow:0 1px 1px rgba(12,16,21,.9),0 3px 14px rgba(12,16,21,.65)}.hero-center .lead{text-shadow:0 1px 2px rgba(12,16,21,.85)}hero-roles.is-glitch .hero-roles__text{animation:none;filter:none}hero-roles.is-glitch .hero-roles__text:before,hero-roles.is-glitch .hero-roles__text:after{content:none;animation:none}}.display{font-size:clamp(36px,6vw,64px);line-height:1.05;margin:12px 0 16px;font-weight:800;letter-spacing:-.02em}.lead{color:var(--hint);font-size:19px;max-width:56ch}.row{display:flex;flex-wrap:wrap;gap:14px;margin-top:28px}.chip{display:inline-block;padding:4px 10px;border-radius:999px;background:var(--surface);color:var(--hint);font-size:13px;border:1px solid color-mix(in srgb,var(--ink) 8%,transparent)}.tech-tag{display:inline-flex;align-items:center;box-sizing:border-box;height:28px;padding:0 12px;border-radius:10px;font-size:12px;font-family:var(--mono);font-weight:600;letter-spacing:.02em;line-height:1;border:1px solid color-mix(in srgb,var(--ink) 14%,transparent);background:color-mix(in srgb,var(--bg) 55%,transparent);color:var(--hint);transition:background .15s ease,border-color .15s ease;vertical-align:top}.tech-tag.tech-tag--branch{padding:0;overflow:hidden}.tech-tag--branch .tech-tag__label{display:inline-flex;align-items:center;height:100%;padding:0 10px 0 12px;line-height:1}.tech-tag--branch .tech-tag__rail{display:inline-flex;align-items:center;justify-content:center;align-self:stretch;width:22px;flex-shrink:0;border-left:1px solid color-mix(in srgb,currentColor 28%,transparent);background:color-mix(in srgb,currentColor 8%,transparent)}.tech-tag--branch .tech-tag__rail:before{content:"";width:5px;height:5px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-1px) rotate(45deg);opacity:.85;transition:transform .15s ease,opacity .15s ease}.tech-tag-nest.is-open>.tech-tag--branch .tech-tag__rail:before{transform:translateY(1px) rotate(225deg);opacity:1}.tech-tag:hover{background:color-mix(in srgb,var(--ink) 6%,transparent)}.tech-tag.rust{color:#e67a30;background:#b7410e24;border-color:#b7410e47}.tech-tag.rust:hover{background:#b7410e38;border-color:#b7410e66}.tech-tag.systems{color:#a8b8c8;background:#a8b8c81a;border-color:#a8b8c842}.tech-tag.systems:hover{background:#a8b8c829;border-color:#a8b8c861}.tech-tag.highlevel{color:#8fcfe8;background:#35a0c81f;border-color:#35a0c847}.tech-tag.highlevel:hover{background:#35a0c833;border-color:#35a0c866}.tech-tag.scripting{color:#aed581;background:#8bc34a1f;border-color:#8bc34a47}.tech-tag.scripting:hover{background:#8bc34a33;border-color:#8bc34a66}.tech-tag.shell{color:#e0e0e0;background:#bdbdbd1a;border-color:#bdbdbd42}.tech-tag.shell:hover{background:#bdbdbd29;border-color:#bdbdbd61}.tech-tag.go{color:#79d0e8;background:#00add824;border-color:#00add84d}.tech-tag.go:hover{background:#00add838;border-color:#00add86b}.tech-tag.lua{color:#90caf9;background:#00008029;border-color:#6495ed52}.tech-tag.lua:hover{background:#0000803d;border-color:#6495ed73}.tech-tag.typescript{color:#7ba7d1;background:#3178c624;border-color:#3178c647}.tech-tag.typescript:hover{background:#3178c638;border-color:#3178c666}.tech-tag.python{color:#6ba8d8;background:#3572a524;border-color:#3572a547}.tech-tag.python:hover{background:#3572a538;border-color:#3572a566}.tech-tag.numpy{color:#64b5f6;background:#4d77cf24;border-color:#4d77cf4d}.tech-tag.numpy:hover{background:#4d77cf38;border-color:#4d77cf6b}.tech-tag.pip{color:#ffd54f;background:#ffc10724;border-color:#ffc1074d}.tech-tag.pip:hover{background:#ffc10738;border-color:#ffc1076b}.tech-tag.venv{color:#81c784;background:#43a0471f;border-color:#43a04747}.tech-tag.venv:hover{background:#43a04733;border-color:#43a04766}.tech-tag.cpp{color:#6b9fe5;background:#00599c24;border-color:#00599c47}.tech-tag.cpp:hover{background:#00599c38;border-color:#00599c66}.tech-tag.nodejs{color:#7bc879;background:#3c873a24;border-color:#3c873a47}.tech-tag.nodejs:hover{background:#3c873a38;border-color:#3c873a66}.tech-tag.rest-api{color:#6cb6ff;background:#3498db24;border-color:#3498db47}.tech-tag.rest-api:hover{background:#3498db38;border-color:#3498db66}.tech-tag.graphql{color:#ff5833;background:#ff583324;border-color:#ff583347}.tech-tag.graphql:hover{background:#ff583338;border-color:#ff583366}.tech-tag.postgresql{color:#7ba7d1;background:#33679124;border-color:#33679147}.tech-tag.postgresql:hover{background:#33679138;border-color:#33679166}.tech-tag.sql{color:#8bb4d9;background:#4682b41f;border-color:#4682b447}.tech-tag.sql:hover{background:#4682b433;border-color:#4682b466}.tech-tag.mysql{color:#5ba0b8;background:#00758f24;border-color:#00758f47}.tech-tag.mysql:hover{background:#00758f38;border-color:#00758f66}.tech-tag.mongodb{color:#7dd06b;background:#4db33d24;border-color:#4db33d47}.tech-tag.mongodb:hover{background:#4db33d38;border-color:#4db33d66}.tech-tag.sqlite{color:#81d4fa;background:#039be51f;border-color:#039be547}.tech-tag.sqlite:hover{background:#039be533;border-color:#039be566}.tech-tag.linux{color:#c8d0d8;background:#c8d0d81a;border-color:#c8d0d83d}.tech-tag.linux:hover{background:#c8d0d829;border-color:#c8d0d85c}.tech-tag.docker{color:#0db7ed;background:#0db7ed24;border-color:#0db7ed47}.tech-tag.docker:hover{background:#0db7ed38;border-color:#0db7ed66}.tech-tag.docker-compose{color:#4dd0e1;background:#00bcd424;border-color:#00bcd44d}.tech-tag.docker-compose:hover{background:#00bcd438;border-color:#00bcd46b}.tech-tag.containerd{color:#80deea;background:#0097a724;border-color:#0097a74d}.tech-tag.containerd:hover{background:#0097a738;border-color:#0097a76b}.tech-tag.ansible{color:#e0605e;background:#c0302e24;border-color:#c0302e47}.tech-tag.ansible:hover{background:#c0302e38;border-color:#c0302e66}.tech-tag.terraform{color:#a77bde;background:#7b42bc24;border-color:#7b42bc47}.tech-tag.terraform:hover{background:#7b42bc38;border-color:#7b42bc66}.tech-tag.github-actions{color:#3cb371;background:#18783824;border-color:#18783847}.tech-tag.github-actions:hover{background:#18783838;border-color:#18783866}.tech-tag.nginx{color:#2db84b;background:#00963924;border-color:#00963947}.tech-tag.nginx:hover{background:#00963938;border-color:#00963966}.tech-tag.prometheus{color:#e53935;background:#e5393524;border-color:#e5393547}.tech-tag.prometheus:hover{background:#e5393538;border-color:#e5393566}.tech-tag.grafana{color:#f6b93b;background:#f6b93b24;border-color:#f6b93b47}.tech-tag.grafana:hover{background:#f6b93b38;border-color:#f6b93b66}.tech-tag.loki{color:#f48fb1;background:#f48fb124;border-color:#e91e6347}.tech-tag.loki:hover{background:#f48fb138;border-color:#e91e6366}.tech-tag.zabbix{color:#ef5350;background:#d32f2f24;border-color:#d32f2f4d}.tech-tag.zabbix:hover{background:#d32f2f38;border-color:#d32f2f6b}.tech-tag.netdata{color:#00e676;background:#00c8531f;border-color:#00c8534d}.tech-tag.netdata:hover{background:#00c85333;border-color:#00c8536b}.tech-tag.logging{color:#b0bec5;background:#607d8b24;border-color:#607d8b4d}.tech-tag.logging:hover{background:#607d8b38;border-color:#607d8b6b}.tech-tag.journald{color:#90a4ae;background:#546e7a24;border-color:#546e7a4d}.tech-tag.journald:hover{background:#546e7a38;border-color:#546e7a6b}.tech-tag.rsyslog{color:#78909c;background:#455a6424;border-color:#455a644d}.tech-tag.rsyslog:hover{background:#455a6438;border-color:#455a646b}.tech-tag.git{color:#ff8c00;background:#ff8c0024;border-color:#ff8c0047}.tech-tag.git:hover{background:#ff8c0038;border-color:#ff8c0066}.tech-tag.gitlab{color:#fc6d26;background:#fc6d2624;border-color:#fc6d2647}.tech-tag.gitlab:hover{background:#fc6d2638;border-color:#fc6d2666}.tech-tag.onec{color:#ffc107;background:#ffc10724;border-color:#ffc1074d}.tech-tag.onec:hover{background:#ffc10738;border-color:#ffc1076b}.tech-tag.c1-buh,.tech-tag.c1-zup,.tech-tag.c1-ut,.tech-tag.c1-erp{color:#ffc107;background:#ffc10724;border-color:#ffc10747}.tech-tag.c1-buh:hover,.tech-tag.c1-zup:hover,.tech-tag.c1-ut:hover,.tech-tag.c1-erp:hover{background:#ffc10738;border-color:#ffc10766}.tech-tag.postgres-pro{color:#7ba7d1;background:#33679124;border-color:#33679147}.tech-tag.postgres-pro:hover{background:#33679138;border-color:#33679166}.tech-tag.ms-sql{color:#5ba8e0;background:#0078d724;border-color:#0078d747}.tech-tag.ms-sql:hover{background:#0078d738;border-color:#0078d766}.tech-tag.ansible-molecule{color:#5bb8e0;background:#1793d124;border-color:#1793d147}.tech-tag.ansible-molecule:hover{background:#1793d138;border-color:#1793d166}.tech-tag.gitlab-ci{color:#fc6d26;background:#fc6d2624;border-color:#fc6d2647}.tech-tag.gitlab-ci:hover{background:#fc6d2638;border-color:#fc6d2666}.tech-tag.proxmox{color:#5b9fd4;background:#3174ad24;border-color:#3174ad47}.tech-tag.proxmox:hover{background:#3174ad38;border-color:#3174ad66}.tech-tag.yandex-cloud{color:#87ceeb;background:#87cefa24;border-color:#87cefa47}.tech-tag.yandex-cloud:hover{background:#87cefa38;border-color:#87cefa66}.tech-tag.vk-cloud{color:#82b1ff;background:#0077ff24;border-color:#0077ff4d}.tech-tag.vk-cloud:hover{background:#0077ff38;border-color:#0077ff6b}.tech-tag.selectel{color:#80cbc4;background:#00968824;border-color:#0096884d}.tech-tag.selectel:hover{background:#00968838;border-color:#0096886b}.tech-tag.timeweb{color:#ff8a65;background:#ff572224;border-color:#ff57224d}.tech-tag.timeweb:hover{background:#ff572238;border-color:#ff57226b}.tech-tag.hetzner{color:#ef5350;background:#d32f2f24;border-color:#d32f2f4d}.tech-tag.hetzner:hover{background:#d32f2f38;border-color:#d32f2f6b}.tech-tag.cloud{color:#8bb8e8;background:#508cd224;border-color:#508cd247}.tech-tag.cloud:hover{background:#508cd238;border-color:#508cd266}.tech-tag.aws{color:#f90;background:#ff990024;border-color:#ff990047}.tech-tag.aws:hover{background:#ff990038;border-color:#f906}.tech-tag.oracle-cloud{color:#f80000;background:#f800001f;border-color:#f8000047}.tech-tag.oracle-cloud:hover{background:#f8000033;border-color:#f8000066}.tech-tag.toml{color:#9c4121;background:#9c412124;border-color:#9c412147}.tech-tag.toml:hover{background:#9c412138;border-color:#9c412166}.tech-tag.javascript{color:#f4d03f;background:#f7df1e1f;border-color:#f7df1e47}.tech-tag.javascript:hover{background:#f7df1e33;border-color:#f7df1e66}.tech-tag.php{color:#b8bce3;background:#787cb524;border-color:#787cb547}.tech-tag.php:hover{background:#787cb538;border-color:#787cb566}.tech-tag.c{color:#6b9fe5;background:#00599c24;border-color:#00599c47}.tech-tag.c:hover{background:#00599c38;border-color:#00599c66}.tech-tag.gcc,.tech-tag.clang,.tech-tag.make,.tech-tag.cmake,.tech-tag.meson,.tech-tag.ninja{color:#7ba7d1;background:#007bff1f;border-color:#007bff42}.tech-tag.gcc:hover,.tech-tag.clang:hover,.tech-tag.make:hover,.tech-tag.cmake:hover,.tech-tag.meson:hover,.tech-tag.ninja:hover{background:#007bff33;border-color:#007bff61}.tech-tag.valgrind{color:#ef9a9a;background:#c628281f;border-color:#c6282847}.tech-tag.valgrind:hover{background:#c6282833;border-color:#c6282866}.tech-tag.cppcheck{color:#f48fb1;background:#e91e631f;border-color:#e91e6347}.tech-tag.cppcheck:hover{background:#e91e6333;border-color:#e91e6366}.tech-tag.express{color:#e8eef3;background:#e8eef31a;border-color:#e8eef33d}.tech-tag.express:hover{background:#e8eef329;border-color:#e8eef35c}.tech-tag.npm{color:#e57373;background:#cc00001f;border-color:#cc000047}.tech-tag.npm:hover{background:#c003;border-color:#c006}.tech-tag.pnpm{color:#f9a825;background:#f2b03524;border-color:#f2b03547}.tech-tag.pnpm:hover{background:#f2b03538;border-color:#f2b03566}.tech-tag.jwt{color:#9b7bf5;background:#7549f224;border-color:#7549f247}.tech-tag.jwt:hover{background:#7549f238;border-color:#7549f266}.tech-tag.curl{color:#90a4ae;background:#607d8b24;border-color:#607d8b4d}.tech-tag.curl:hover{background:#607d8b38;border-color:#607d8b6b}.tech-tag.wget{color:#a5d6a7;background:#4caf501f;border-color:#4caf5047}.tech-tag.wget:hover{background:#4caf5033;border-color:#4caf5066}.tech-tag.websocket{color:#4db6ac;background:#00897b24;border-color:#00897b4d}.tech-tag.websocket:hover{background:#00897b38;border-color:#00897b6b}.tech-tag.json{color:#bbb;background:#5e5e5e24;border-color:#5e5e5e47}.tech-tag.json:hover{background:#5e5e5e38;border-color:#5e5e5e66}.tech-tag.parquet{color:#80cbc4;background:#00968824;border-color:#0096884d}.tech-tag.parquet:hover{background:#00968838;border-color:#0096886b}.tech-tag.yaml{color:#e57a79;background:#cb171e1f;border-color:#cb171e47}.tech-tag.yaml:hover{background:#cb171e33;border-color:#cb171e66}.tech-tag.markdown{color:#6b9fe5;background:#083fa124;border-color:#083fa147}.tech-tag.markdown:hover{background:#083fa138;border-color:#083fa166}.tech-tag.pgadmin{color:#7ba7d1;background:#33679124;border-color:#33679147}.tech-tag.pgadmin:hover{background:#33679138;border-color:#33679166}.tech-tag.mariadb{color:#5ba0e2;background:#006db324;border-color:#006db347}.tech-tag.mariadb:hover{background:#006db338;border-color:#006db366}.tech-tag.redis{color:#e85a52;background:#d82c2024;border-color:#d82c2047}.tech-tag.redis:hover{background:#d82c2038;border-color:#d82c2066}.tech-tag.iac{color:#a77bde;background:#7b42bc24;border-color:#7b42bc47}.tech-tag.iac:hover{background:#7b42bc38;border-color:#7b42bc66}.tech-tag.devops,.tech-tag.cicd,.tech-tag.devsecops{color:#6cb6ff;background:#007bff1f;border-color:#007bff42}.tech-tag.devops:hover,.tech-tag.cicd:hover,.tech-tag.devsecops:hover{background:#007bff33;border-color:#007bff61}.tech-tag.webservers{color:#2db84b;background:#00963924;border-color:#00963947}.tech-tag.webservers:hover{background:#00963938;border-color:#00963966}.tech-tag.tls{color:#6cb6ff;background:#007bff1f;border-color:#007bff47}.tech-tag.tls:hover{background:#007bff33;border-color:#007bff66}.tech-tag.compute{color:#7ba7d1;background:#3178c61f;border-color:#3178c642}.tech-tag.compute:hover{background:#3178c633;border-color:#3178c661}.tech-tag.container{color:#0db7ed;background:#0db7ed1f;border-color:#0db7ed42}.tech-tag.container:hover{background:#0db7ed33;border-color:#0db7ed61}.tech-tag.virt{color:#5b9fd4;background:#3174ad24;border-color:#3174ad47}.tech-tag.virt:hover{background:#3174ad38;border-color:#3174ad66}.tech-tag.remote{color:#5ba8e0;background:#0078d724;border-color:#0078d747}.tech-tag.remote:hover{background:#0078d738;border-color:#0078d766}.tech-tag.vault{color:#a77bde;background:#7b42bc24;border-color:#7b42bc47}.tech-tag.vault:hover{background:#7b42bc38;border-color:#7b42bc66}.tech-tag.apache{color:#ff8c00;background:#ff8c001f;border-color:#ff8c0047}.tech-tag.apache:hover{background:#ff8c0033;border-color:#ff8c0066}.tech-tag.iis{color:#5ba8e0;background:#0078d724;border-color:#0078d747}.tech-tag.iis:hover{background:#0078d738;border-color:#0078d766}.tech-tag.letsencrypt,.tech-tag.certbot{color:#6cb6ff;background:#007bff1f;border-color:#007bff47}.tech-tag.letsencrypt:hover,.tech-tag.certbot:hover{background:#007bff33;border-color:#007bff66}.tech-tag.ubuntu{color:#e95420;background:#e954201f;border-color:#e9542047}.tech-tag.ubuntu:hover{background:#e9542033;border-color:#e9542066}.tech-tag.debian{color:#e57373;background:#dc143c1f;border-color:#dc143c47}.tech-tag.debian:hover{background:#dc143c33;border-color:#dc143c66}.tech-tag.arch{color:#1793d1;background:#1793d124;border-color:#1793d147}.tech-tag.arch:hover{background:#1793d138;border-color:#1793d166}.tech-tag.rhel{color:#e57373;background:#cc00001f;border-color:#cc000047}.tech-tag.rhel:hover{background:#c003;border-color:#c006}.tech-tag.centos{color:#7ba7d1;background:#4682b424;border-color:#4682b447}.tech-tag.centos:hover{background:#4682b438;border-color:#4682b466}.tech-tag.alt-linux{color:#5b9fd4;background:#0066cc24;border-color:#0066cc47}.tech-tag.alt-linux:hover{background:#0066cc38;border-color:#06c6}.tech-tag.astra{color:#5ba8e0;background:#0079c124;border-color:#0079c147}.tech-tag.astra:hover{background:#0079c138;border-color:#0079c166}.tech-tag.redos{color:#e57373;background:#dc143c1f;border-color:#dc143c47}.tech-tag.redos:hover{background:#dc143c33;border-color:#dc143c66}.tech-tag.nix{color:#7ba7d1;background:#5277c324;border-color:#5277c347}.tech-tag.nix:hover{background:#5277c338;border-color:#5277c366}.tech-tag.bash{color:#e8eef3;background:#e8eef31a;border-color:#e8eef33d}.tech-tag.bash:hover{background:#e8eef329;border-color:#e8eef35c}.tech-tag.zsh{color:#6cb6ff;background:#007bff1f;border-color:#007bff47}.tech-tag.zsh:hover{background:#007bff33;border-color:#007bff66}.tech-tag.ssh{color:#3cb371;background:#00c8531f;border-color:#00c85347}.tech-tag.ssh:hover{background:#00c85333;border-color:#00c85366}.tech-tag.kvm,.tech-tag.lxc{color:#6cb6ff;background:#007bff1f;border-color:#007bff47}.tech-tag.kvm:hover,.tech-tag.lxc:hover{background:#007bff33;border-color:#007bff66}.tech-tag.ceph{color:#e57373;background:#e539351f;border-color:#e5393547}.tech-tag.ceph:hover{background:#e5393533;border-color:#e5393566}.tech-tag.storage{color:#80cbc4;background:#00968824;border-color:#0096884d}.tech-tag.storage:hover{background:#00968838;border-color:#0096886b}.tech-tag.rsync{color:#81c784;background:#4caf5024;border-color:#4caf504d}.tech-tag.rsync:hover{background:#4caf5038;border-color:#4caf506b}.tech-tag.rclone{color:#64b5f6;background:#2196f324;border-color:#2196f34d}.tech-tag.rclone:hover{background:#2196f338;border-color:#2196f36b}.tech-tag.geesefs{color:#ffb74d;background:#ff980024;border-color:#ff98004d}.tech-tag.geesefs:hover{background:#ff980038;border-color:#ff98006b}.tech-tag.idp{color:#ce93d8;background:#9c27b024;border-color:#9c27b04d}.tech-tag.idp:hover{background:#9c27b038;border-color:#9c27b06b}.tech-tag.freeipa{color:#81d4fa;background:#0288d124;border-color:#0288d14d}.tech-tag.freeipa:hover{background:#0288d138;border-color:#0288d16b}.tech-tag.oidc{color:#a5d6a7;background:#43a04724;border-color:#43a0474d}.tech-tag.oidc:hover{background:#43a04738;border-color:#43a0476b}.tech-tag.scheduling{color:#b0bec5;background:#546e7a24;border-color:#546e7a4d}.tech-tag.scheduling:hover{background:#546e7a38;border-color:#546e7a6b}.tech-tag.cron{color:#ffcc80;background:#ff980024;border-color:#ff98004d}.tech-tag.cron:hover{background:#ff980038;border-color:#ff98006b}.tech-tag.systemd-timers{color:#90a4ae;background:#455a6424;border-color:#455a644d}.tech-tag.systemd-timers:hover{background:#455a6438;border-color:#455a646b}.tech-tag.storage{color:#80cbc4;background:#0096881f;border-color:#00968847}.tech-tag.storage:hover{background:#00968833;border-color:#00968866}.tech-tag.rsync{color:#a5d6a7;background:#4caf501f;border-color:#4caf5047}.tech-tag.rsync:hover{background:#4caf5033;border-color:#4caf5066}.tech-tag.rclone{color:#81c784;background:#388e3c24;border-color:#388e3c4d}.tech-tag.rclone:hover{background:#388e3c38;border-color:#388e3c6b}.tech-tag.geesefs{color:#ffab91;background:#ff572224;border-color:#ff57224d}.tech-tag.geesefs:hover{background:#ff572238;border-color:#ff57226b}.tech-tag.idp{color:#ce93d8;background:#8e24aa24;border-color:#8e24aa4d}.tech-tag.idp:hover{background:#8e24aa38;border-color:#8e24aa6b}.tech-tag.freeipa{color:#81d4fa;background:#0277bd24;border-color:#0277bd4d}.tech-tag.freeipa:hover{background:#0277bd38;border-color:#0277bd6b}.tech-tag.ldap{color:#90caf9;background:#1976d224;border-color:#1976d24d}.tech-tag.ldap:hover{background:#1976d238;border-color:#1976d26b}.tech-tag.oidc{color:#b39ddb;background:#5e35b124;border-color:#5e35b14d}.tech-tag.oidc:hover{background:#5e35b138;border-color:#5e35b16b}.tech-tag.vmware-esxi{color:#4db6ac;background:#00968824;border-color:#00968847}.tech-tag.vmware-esxi:hover{background:#00968838;border-color:#00968866}.tech-tag.virtualbox,.tech-tag.hyper-v{color:#5ba8e0;background:#0078d724;border-color:#0078d747}.tech-tag.virtualbox:hover,.tech-tag.hyper-v:hover{background:#0078d738;border-color:#0078d766}.tech-tag.network{color:#6cb6ff;background:#3498db24;border-color:#3498db47}.tech-tag.network:hover{background:#3498db38;border-color:#3498db66}.tech-tag.tcpip,.tech-tag.dns,.tech-tag.dhcp{color:#6cb6ff;background:#3498db1f;border-color:#3498db42}.tech-tag.tcpip:hover,.tech-tag.dns:hover,.tech-tag.dhcp:hover{background:#3498db33;border-color:#3498db61}.tech-tag.openvpn{color:#ffb74d;background:#fb8c0024;border-color:#fb8c0047}.tech-tag.openvpn:hover{background:#fb8c0038;border-color:#fb8c0066}.tech-tag.dnsmasq{color:#80deea;background:#00acc124;border-color:#00acc14d}.tech-tag.dnsmasq:hover{background:#00acc138;border-color:#00acc16b}.tech-tag.dnsmasq{color:#80deea;background:#0097a724;border-color:#0097a74d}.tech-tag.dnsmasq:hover{background:#0097a738;border-color:#0097a76b}.tech-tag.iptables{color:#ff8c00;background:#ff8c001f;border-color:#ff8c0047}.tech-tag.iptables:hover{background:#ff8c0033;border-color:#ff8c0066}.tech-tag.ufw{color:#e57373;background:#dc35451f;border-color:#dc354547}.tech-tag.ufw:hover{background:#dc354533;border-color:#dc354566}.tech-tag.firewall{color:#ef9a9a;background:#e539351f;border-color:#e5393547}.tech-tag.firewall:hover{background:#e5393533;border-color:#e5393566}.tech-tag.alertmanager{color:#e53935;background:#e5393524;border-color:#e5393547}.tech-tag.alertmanager:hover{background:#e5393538;border-color:#e5393566}.tech-tag.uptime-kuma{color:#6cb6ff;background:#3498db24;border-color:#3498db47}.tech-tag.uptime-kuma:hover{background:#3498db38;border-color:#3498db66}.tech-tag.github{color:#e8eef3;background:#e8eef31a;border-color:#e8eef33d}.tech-tag.github:hover{background:#e8eef329;border-color:#e8eef35c}.tech-tag.gitflic{color:#6cb6ff;background:#007bff1f;border-color:#007bff47}.tech-tag.gitflic:hover{background:#007bff33;border-color:#007bff66}.tech-tag.rustdesk,.tech-tag.rustdesk-api{color:#5ba8e0;background:#0078d724;border-color:#0078d747}.tech-tag.rustdesk:hover,.tech-tag.rustdesk-api:hover{background:#0078d738;border-color:#0078d766}.tech-tag.rdp,.tech-tag.xrdp{color:#3cb371;background:#0f9d5824;border-color:#0f9d5847}.tech-tag.rdp:hover,.tech-tag.xrdp:hover{background:#0f9d5838;border-color:#0f9d5866}.tech-tag.remmina{color:#6cb6ff;background:#2196f324;border-color:#2196f347}.tech-tag.remmina:hover{background:#2196f338;border-color:#2196f366}.tech-tag.formats{color:var(--hint);background:color-mix(in srgb,var(--ink) 8%,transparent);border-color:color-mix(in srgb,var(--ink) 16%,transparent)}.tech-tag.formats:hover{background:color-mix(in srgb,var(--ink) 12%,transparent);border-color:color-mix(in srgb,var(--ink) 24%,transparent)}.tech-tag.html{color:#e67a5c;background:#e34c2624;border-color:#e34c2647}.tech-tag.html:hover{background:#e34c2638;border-color:#e34c2666}.tech-tag.css{color:#6b9fe5;background:#1572b624;border-color:#1572b647}.tech-tag.css:hover{background:#1572b638;border-color:#1572b666}.tech-tag.strace{color:#e57373;background:#dc322f1f;border-color:#dc322f47}.tech-tag.strace:hover{background:#dc322f33;border-color:#dc322f66}.tech-tag.webstack,.tech-tag.astro{color:#e8a0c8;background:#e878b41f;border-color:#e878b447}.tech-tag.webstack:hover,.tech-tag.astro:hover{background:#e878b433;border-color:#e878b466}.tech-tag.axum{color:#e67a30;background:#b7410e24;border-color:#b7410e47}.tech-tag.axum:hover{background:#b7410e38;border-color:#b7410e66}.tech-tag.wasm{color:#6b9fe5;background:#654ff024;border-color:#654ff047}.tech-tag.wasm:hover{background:#654ff038;border-color:#654ff066}.tech-tag.os,.tech-tag.windows{color:#5ba8e0;background:#0078d724;border-color:#0078d747}.tech-tag.os:hover,.tech-tag.windows:hover{background:#0078d738;border-color:#0078d766}.tech-tag.macos{color:#c8d0d8;background:#c8d0d81a;border-color:#c8d0d83d}.tech-tag.macos:hover{background:#c8d0d829;border-color:#c8d0d85c}.tech-tag.fedora{color:#6cb6ff;background:#3c6eb424;border-color:#3c6eb447}.tech-tag.fedora:hover{background:#3c6eb438;border-color:#3c6eb466}.tech-tag.manjaro{color:#23af56;background:#23af561f;border-color:#23af5647}.tech-tag.manjaro:hover{background:#23af5633;border-color:#23af5666}.tech-tag.linux-mint{color:#57c792;background:#57c7921f;border-color:#57c79247}.tech-tag.linux-mint:hover{background:#57c79233;border-color:#57c79266}.tech-tag.xubuntu{color:#5ba8e0;background:#006fb824;border-color:#006fb847}.tech-tag.xubuntu:hover{background:#006fb838;border-color:#006fb866}.tech-tag.lubuntu{color:#5ba8e0;background:#0063a624;border-color:#0063a647}.tech-tag.lubuntu:hover{background:#0063a638;border-color:#0063a666}.tech-tag.black-arch{color:#9aa6b2;background:#80808024;border-color:#80808047}.tech-tag.black-arch:hover{background:#80808038;border-color:#80808066}.tech-tag.lfs{color:#c8d0d8;background:#c8d0d81a;border-color:#c8d0d83d}.tech-tag.lfs:hover{background:#c8d0d829;border-color:#c8d0d85c}.tech-tag.chroot{color:#7ba7d1;background:#007bff1f;border-color:#007bff42}.tech-tag.chroot:hover{background:#007bff33;border-color:#007bff61}.tech-tag.distro{color:#8bb8e8;background:#5b9fd41f;border-color:#5b9fd447}.tech-tag.distro:hover{background:#5b9fd433;border-color:#5b9fd466}.tech-tag.packages,.tech-tag.apt{color:#e57373;background:#cc00001f;border-color:#cc000047}.tech-tag.packages:hover,.tech-tag.apt:hover{background:#c003;border-color:#c006}.tech-tag.yum{color:#ff8c00;background:#ff8c001f;border-color:#ff8c0047}.tech-tag.yum:hover{background:#ff8c0033;border-color:#ff8c0066}.tech-tag.dnf{color:#6cb6ff;background:#3366cc24;border-color:#3366cc47}.tech-tag.dnf:hover{background:#3366cc38;border-color:#36c6}.tech-tag.pacman{color:#4db6ac;background:#00968824;border-color:#00968847}.tech-tag.pacman:hover{background:#00968838;border-color:#00968866}.tech-tag.rpm,.tech-tag.rpmbuild,.tech-tag.spec{color:#e57373;background:#cc00001f;border-color:#cc000047}.tech-tag.rpm:hover,.tech-tag.rpmbuild:hover,.tech-tag.spec:hover{background:#c003;border-color:#c006}.tech-tag.desktop,.tech-tag.kde{color:#6cb6ff;background:#2196f324;border-color:#2196f347}.tech-tag.desktop:hover,.tech-tag.kde:hover{background:#2196f338;border-color:#2196f366}.tech-tag.gnome{color:#c8d0d8;background:#c8d0d81a;border-color:#c8d0d83d}.tech-tag.gnome:hover{background:#c8d0d829;border-color:#c8d0d85c}.tech-tag.xfce{color:#7ba7d1;background:#007bff1f;border-color:#007bff42}.tech-tag.xfce:hover{background:#007bff33;border-color:#007bff61}.tech-tag.filesystems,.tech-tag.ext4{color:#c8d0d8;background:#c8d0d81a;border-color:#c8d0d83d}.tech-tag.filesystems:hover,.tech-tag.ext4:hover{background:#c8d0d829;border-color:#c8d0d85c}.tech-tag.btrfs{color:#e57373;background:#ff00001a;border-color:#ff000047}.tech-tag.btrfs:hover{background:#ff000029;border-color:#f006}.tech-tag.zfs{color:#f6b93b;background:#febe101f;border-color:#febe1047}.tech-tag.zfs:hover{background:#febe1033;border-color:#febe1066}.tech-tag.ntfs{color:#5ba8e0;background:#0078d724;border-color:#0078d747}.tech-tag.ntfs:hover{background:#0078d738;border-color:#0078d766}.tech-tag.security,.tech-tag.selinux{color:#e57373;background:#cc00001f;border-color:#cc000047}.tech-tag.security:hover,.tech-tag.selinux:hover{background:#c003;border-color:#c006}.tech-tag.luks{color:#8b9fe8;background:#3f51b524;border-color:#3f51b547}.tech-tag.luks:hover{background:#3f51b538;border-color:#3f51b566}.tech-tag.gpg{color:#f48fb1;background:#e91e631f;border-color:#e91e6347}.tech-tag.gpg:hover{background:#e91e6333;border-color:#e91e6366}.tech-tag.openvz{color:#6cb6ff;background:#007bff1f;border-color:#007bff42}.tech-tag.openvz:hover{background:#007bff33;border-color:#007bff61}.tech-tag.vpn{color:#6cb6ff;background:#3498db1f;border-color:#3498db42}.tech-tag.vpn:hover{background:#3498db33;border-color:#3498db61}.tech-tag.xfreerdp{color:#3cb371;background:#34a85324;border-color:#34a85347}.tech-tag.xfreerdp:hover{background:#34a85338;border-color:#34a85366}.tech-tag.mobile,.tech-tag.cordova{color:#c8d0d8;background:#e8e8e81a;border-color:#e8e8e83d}.tech-tag.mobile:hover,.tech-tag.cordova:hover{background:#e8e8e829;border-color:#e8e8e85c}.tech-tag.expo{color:#e8eef3;background:#e8eef31a;border-color:#e8eef33d}.tech-tag.expo:hover{background:#e8eef329;border-color:#e8eef35c}.tech-tag.collab,.tech-tag.nextcloud{color:#5ba8e0;background:#0082c924;border-color:#0082c947}.tech-tag.collab:hover,.tech-tag.nextcloud:hover{background:#0082c938;border-color:#0082c966}.tech-tag.tracker{color:#9fa8da;background:#5c6bc024;border-color:#5c6bc04d}.tech-tag.tracker:hover{background:#5c6bc038;border-color:#5c6bc06b}.tech-tag.jira{color:#90caf9;background:#0052cc29;border-color:#0052cc52}.tech-tag.jira:hover{background:#0052cc3d;border-color:#0052cc73}.tech-tag.redmine{color:#e57373;background:#cc00001f;border-color:#cc000047}.tech-tag.redmine:hover{background:#c003;border-color:#c006}.tech-tag.planka{color:#64b5f6;background:#1976d224;border-color:#1976d24d}.tech-tag.planka:hover{background:#1976d238;border-color:#1976d26b}.tech-tag.yandex-tracker{color:#ffcc80;background:#ff980024;border-color:#ff98004d}.tech-tag.yandex-tracker:hover{background:#ff980038;border-color:#ff98006b}.tech-tag.wiki{color:#80cbc4;background:#00897b24;border-color:#00897b4d}.tech-tag.wiki:hover{background:#00897b38;border-color:#00897b6b}.tech-tag.confluence{color:#81d4fa;background:#0052cc24;border-color:#0052cc4d}.tech-tag.confluence:hover{background:#0052cc38;border-color:#0052cc6b}.tech-tag.yandex-wiki{color:#ffe082;background:#ffc10724;border-color:#ffc1074d}.tech-tag.yandex-wiki:hover{background:#ffc10738;border-color:#ffc1076b}.tech-tag.obsidian{color:#b39ddb;background:#7c3aed24;border-color:#7c3aed4d}.tech-tag.obsidian:hover{background:#7c3aed38;border-color:#7c3aed6b}.tech-tag.artifacts{color:#a5d6a7;background:#4caf501f;border-color:#4caf5047}.tech-tag.artifacts:hover{background:#4caf5033;border-color:#4caf5066}.tech-tag.pulp{color:#ef9a9a;background:#e539351f;border-color:#e5393547}.tech-tag.pulp:hover{background:#e5393533;border-color:#e5393566}.tech-tag.artifactory{color:#81c784;background:#40af3f24;border-color:#40af3f4d}.tech-tag.artifactory:hover{background:#40af3f38;border-color:#40af3f6b}.tech-tag.docker-hub{color:#4fc3f7;background:#0db7ed24;border-color:#0db7ed4d}.tech-tag.docker-hub:hover{background:#0db7ed38;border-color:#0db7ed6b}.tech-tag.secrets{color:#ce93d8;background:#9c27b024;border-color:#9c27b04d}.tech-tag.secrets:hover{background:#9c27b038;border-color:#9c27b06b}.tech-tag.sops{color:#f48fb1;background:#e91e631f;border-color:#e91e6347}.tech-tag.sops:hover{background:#e91e6333;border-color:#e91e6366}.tech-tag.age{color:#b39ddb;background:#673ab724;border-color:#673ab74d}.tech-tag.age:hover{background:#673ab738;border-color:#673ab76b}.tech-tag.passbolt{color:#ef9a9a;background:#c6282824;border-color:#c628284d}.tech-tag.passbolt:hover{background:#c6282838;border-color:#c628286b}.tech-tag.editors{color:#90a4ae;background:#607d8b24;border-color:#607d8b4d}.tech-tag.editors:hover{background:#607d8b38;border-color:#607d8b6b}.tech-tag.vscode{color:#64b5f6;background:#007acc24;border-color:#007acc4d}.tech-tag.vscode:hover{background:#007acc38;border-color:#007acc6b}.tech-tag.nano{color:#a5d6a7;background:#4caf501f;border-color:#4caf5047}.tech-tag.nano:hover{background:#4caf5033;border-color:#4caf5066}.tech-tag.cli{color:#b0bec5;background:#607d8b24;border-color:#607d8b4d}.tech-tag.cli:hover{background:#607d8b38;border-color:#607d8b6b}.tech-tag.debug{color:#ef9a9a;background:#c628281f;border-color:#c6282847}.tech-tag.debug:hover{background:#c6282833;border-color:#c6282866}.tech-tag.htop{color:#81c784;background:#4caf5024;border-color:#4caf504d}.tech-tag.htop:hover{background:#4caf5038;border-color:#4caf506b}.tech-tag.btop{color:#4db6ac;background:#00968824;border-color:#0096884d}.tech-tag.btop:hover{background:#00968838;border-color:#0096886b}.tech-tag.chat{color:#81d4fa;background:#039be524;border-color:#039be54d}.tech-tag.chat:hover{background:#039be538;border-color:#039be56b}.tech-tag.mattermost{color:#4fc3f7;background:#0288d129;border-color:#0288d152}.tech-tag.mattermost:hover{background:#0288d13d;border-color:#0288d173}.tech-tag.telegram-bot-api{color:#64b5f6;background:#29b6f624;border-color:#29b6f64d}.tech-tag.telegram-bot-api:hover{background:#29b6f638;border-color:#29b6f66b}.tech-tag.eda,.tech-tag.yosys,.tech-tag.slang,.tech-tag.gtkwave,.tech-tag.opensta,.tech-tag.qt{color:#6cb6ff;background:#0064c824;border-color:#0064c847}.tech-tag.eda:hover,.tech-tag.yosys:hover,.tech-tag.slang:hover,.tech-tag.gtkwave:hover,.tech-tag.opensta:hover,.tech-tag.qt:hover{background:#0064c838;border-color:#0064c866}.tech-tag.svace,.tech-tag.svacer{color:#e57373;background:#cc00001f;border-color:#cc000047}.tech-tag.svace:hover,.tech-tag.svacer:hover{background:#c003;border-color:#c006}.tech-tag.egui,.tech-tag.eframe,.tech-tag.egui-plot,.tech-tag.egui-dock{color:#7ba7d1;background:#3178c624;border-color:#3178c647}.tech-tag.egui:hover,.tech-tag.eframe:hover,.tech-tag.egui-plot:hover,.tech-tag.egui-dock:hover{background:#3178c638;border-color:#3178c666}.tech-tag.wgpu{color:#6cb6ff;background:#007bff24;border-color:#007bff47}.tech-tag.wgpu:hover{background:#007bff38;border-color:#007bff66}.tech-tag.graphics{color:#7ec8e8;background:#008cc81f;border-color:#008cc842}.tech-tag.graphics:hover{background:#008cc82e;border-color:#008cc861}.tech-tag.vulkan{color:#e0605e;background:#c0302e24;border-color:#c0302e47}.tech-tag.vulkan:hover{background:#c0302e38;border-color:#c0302e66}.tech-tag.opengl,.tech-tag.webgl,.tech-tag.glow{color:#5ba8e0;background:#0078d724;border-color:#0078d747}.tech-tag.opengl:hover,.tech-tag.webgl:hover,.tech-tag.glow:hover{background:#0078d738;border-color:#0078d766}.tech-tag.rayon{color:#e67a30;background:#b7410e24;border-color:#b7410e47}.tech-tag.rayon:hover{background:#b7410e38;border-color:#b7410e66}.tech-tag.tokio{color:#81c784;background:#43a04724;border-color:#43a0474d}.tech-tag.tokio:hover{background:#43a04738;border-color:#43a0476b}.tech-tag.serde{color:#ffb74d;background:#ff980024;border-color:#ff98004d}.tech-tag.serde:hover{background:#ff980038;border-color:#ff98006b}.tech-tag.mmap{color:#c8d0d8;background:#c8d0d81a;border-color:#c8d0d83d}.tech-tag.mmap:hover{background:#c8d0d829;border-color:#c8d0d85c}.tech-tag.simd,.tech-tag.avx2,.tech-tag.sse,.tech-tag.neon{color:#f6b93b;background:#f6b93b1f;border-color:#f6b93b47}.tech-tag.simd:hover,.tech-tag.avx2:hover,.tech-tag.sse:hover,.tech-tag.neon:hover{background:#f6b93b33;border-color:#f6b93b66}.tech-tag.codecs,.tech-tag.zstd{color:#3cb371;background:#18783824;border-color:#18783847}.tech-tag.codecs:hover,.tech-tag.zstd:hover{background:#18783838;border-color:#18783866}.tech-tag.lz4{color:#7bc879;background:#3c873a24;border-color:#3c873a47}.tech-tag.lz4:hover{background:#3c873a38;border-color:#3c873a66}.tech-tag.spice,.tech-tag.tcad{color:#a77bde;background:#7b42bc24;border-color:#7b42bc47}.tech-tag.spice:hover,.tech-tag.tcad:hover{background:#7b42bc38;border-color:#7b42bc66}.tech-tag.musl{color:#c8d0d8;background:#c8d0d81a;border-color:#c8d0d83d}.tech-tag.musl:hover{background:#c8d0d829;border-color:#c8d0d85c}.section{position:relative;overflow:visible;padding:56px 0;border-top:none;scroll-margin-top:calc(var(--nav-h) + 12px)}.section h2{font-size:clamp(26px,4vw,36px);margin:0 0 8px}.section .sub{color:var(--hint);max-width:60ch}.section>.wrap,.section>.narrow{position:relative;z-index:1}.section:not(:first-child):before{content:"";position:absolute;left:6%;right:6%;top:0;height:1px;z-index:2;pointer-events:none;background:linear-gradient(90deg,transparent 0%,color-mix(in srgb,var(--ink) 11%,transparent) 22%,color-mix(in srgb,var(--ink) 11%,transparent) 78%,transparent 100%)}.ambient{pointer-events:none;position:absolute;inset:0;z-index:0;opacity:.55;overflow:hidden;border-radius:inherit}.ambient__glow{position:absolute;inset:0;background:radial-gradient(ellipse 55% 60% at 62% 42%,color-mix(in srgb,var(--amber) 14%,transparent),transparent 68%),radial-gradient(ellipse 50% 55% at 28% 68%,color-mix(in srgb,var(--link) 10%,transparent),transparent 70%);animation:ambient-breathe-a 12s ease-in-out infinite alternate}.hero>.hero-scenes{z-index:5}.hero>.hero-settings-panel{z-index:6}.ambient--hero{opacity:1;z-index:1;overflow:hidden}.hero.is-demo-focus .ambient--hero{opacity:0;visibility:hidden}.ambient--hero .ambient__glow{animation:none;background:radial-gradient(ellipse 90% 70% at 50% 0%,transparent 40%,color-mix(in srgb,var(--bg) 55%,transparent) 100%),radial-gradient(ellipse 80% 55% at 50% 100%,color-mix(in srgb,var(--bg) 40%,transparent) 0%,transparent 70%),radial-gradient(ellipse 45% 80% at 0% 50%,color-mix(in srgb,var(--bg) 35%,transparent),transparent 70%),radial-gradient(ellipse 45% 80% at 100% 50%,color-mix(in srgb,var(--bg) 35%,transparent),transparent 70%)}.ambient--contact .ambient__glow{animation-duration:11s;background:radial-gradient(ellipse 58% 62% at 32% 48%,color-mix(in srgb,var(--amber) 16%,transparent),transparent 68%),radial-gradient(ellipse 48% 52% at 78% 62%,color-mix(in srgb,var(--amber) 8%,transparent),transparent 70%)}.ambient--work .ambient__glow{animation-name:ambient-breathe-b;animation-duration:13s;animation-delay:-3s;background:radial-gradient(ellipse 52% 70% at 22% 45%,color-mix(in srgb,var(--link) 12%,transparent),transparent 68%),radial-gradient(ellipse 48% 55% at 78% 55%,color-mix(in srgb,var(--link) 7%,transparent),transparent 70%)}.ambient--projects{opacity:.22}.ambient--projects .ambient__glow{animation-duration:16s;animation-delay:-5s;background:radial-gradient(ellipse 60% 50% at 50% 30%,color-mix(in srgb,var(--ink) 4%,transparent),transparent 65%)}.ambient--project{opacity:.7;inset:0 auto;left:calc(50% - 50vw);width:100vw;max-width:100vw;-webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 8%,#000 92%,transparent 100%);mask-image:linear-gradient(90deg,transparent 0%,#000 8%,#000 92%,transparent 100%)}.ambient--project .ambient__glow{animation-duration:13s}.ambient--project-tranview .ambient__glow{animation-delay:-1s;background:radial-gradient(ellipse 52% 58% at 72% 44%,color-mix(in srgb,var(--ok) 15%,transparent),transparent 66%),radial-gradient(ellipse 42% 48% at 28% 62%,color-mix(in srgb,var(--link) 8%,transparent),transparent 68%)}.ambient--project-tcad .ambient__glow{animation-name:ambient-breathe-a;animation-delay:-4s;background:radial-gradient(ellipse 50% 56% at 70% 48%,color-mix(in srgb,var(--amber) 13%,transparent),transparent 66%),radial-gradient(ellipse 44% 50% at 26% 58%,color-mix(in srgb,var(--link) 8%,transparent),transparent 68%)}.ambient--project-vcb .ambient__glow{animation-delay:-7s;background:radial-gradient(ellipse 52% 58% at 74% 42%,color-mix(in srgb,var(--link) 14%,transparent),transparent 66%),radial-gradient(ellipse 40% 48% at 24% 64%,color-mix(in srgb,var(--ink) 6%,transparent),transparent 68%)}.ambient--lab .ambient__glow{animation-name:ambient-breathe-b;animation-duration:14s;animation-delay:-2s;background:repeating-linear-gradient(0deg,transparent 0 22px,color-mix(in srgb,var(--ink) 2.5%,transparent) 22px 23px),repeating-linear-gradient(90deg,transparent 0 22px,color-mix(in srgb,var(--ink) 2.5%,transparent) 22px 23px),radial-gradient(ellipse 50% 55% at 30% 48%,color-mix(in srgb,var(--ok) 12%,transparent),transparent 66%),radial-gradient(ellipse 46% 50% at 76% 56%,color-mix(in srgb,var(--link) 10%,transparent),transparent 68%)}.ambient--article{opacity:.4}.ambient--article .ambient__glow{animation-duration:16s;background:radial-gradient(ellipse 48% 52% at 78% 28%,color-mix(in srgb,var(--amber) 10%,transparent),transparent 66%),radial-gradient(ellipse 52% 55% at 18% 72%,color-mix(in srgb,var(--link) 8%,transparent),transparent 68%)}@keyframes ambient-breathe-a{0%{opacity:.72}to{opacity:1}}@keyframes ambient-breathe-b{0%{opacity:.78}to{opacity:.95}}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;margin-top:28px}.card{background:var(--surface);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow-card);border:1px solid color-mix(in srgb,var(--ink) 6%,transparent)}.card h3{margin:0 0 6px;font-size:20px}.card p{margin:0;color:var(--hint);font-size:15px}.card .meta{margin-top:12px;font-family:var(--mono);font-size:12px;color:var(--ok)}#demo-out{font-family:var(--mono);font-size:15px;min-height:24px;color:var(--ink)}#demo-out b{color:var(--amber)}.keet-contact{display:grid;grid-template-columns:auto 1fr;gap:28px 36px;align-items:center;margin-top:28px;max-width:560px}.keet-contact__qr{position:relative;display:block;padding:12px;border-radius:14px;background:#fff;box-shadow:var(--shadow-card);line-height:0;min-width:180px;min-height:180px}.keet-contact__qr img{display:block;width:180px;height:180px;border-radius:4px;opacity:0;transition:opacity .28s ease}.keet-contact__qr.is-ready img{opacity:1}.keet-contact__channel{display:flex;flex-direction:column;align-items:flex-start;gap:10px}.keet-contact__brand{display:flex;align-items:center;gap:10px}.keet-contact__logo{flex:0 0 auto;width:40px;height:40px;border-radius:10px;opacity:0;transition:opacity .25s ease}.lazy-media--logo.is-ready .keet-contact__logo{opacity:1}.keet-contact__logo--mail{display:inline-flex;align-items:center;justify-content:center;opacity:1;color:#0c1015;background:linear-gradient(145deg,#6cb6ff,#3d8fd9);box-shadow:inset 0 1px color-mix(in srgb,#fff 35%,transparent)}.keet-contact__name{font-family:var(--mono);font-weight:700;font-size:18px;letter-spacing:.02em;line-height:1;color:var(--ink)}.keet-contact__lead{margin:0;color:var(--hint);font-size:15px;max-width:32ch}.keet-contact__handle{display:block;font-family:var(--mono);font-weight:700;font-size:20px;line-height:1.2;color:var(--amber);text-decoration:none}.keet-contact__handle:hover{text-decoration:underline;color:color-mix(in srgb,var(--amber) 88%,#fff)}.keet-contact__channel+.keet-contact__channel{margin-top:22px;padding-top:20px;border-top:1px solid color-mix(in srgb,var(--ink) 8%,transparent)}.keet-contact__mail{display:block;font-family:var(--mono);font-size:18px;font-weight:700;line-height:1.2;color:var(--link);text-decoration:none;letter-spacing:.01em}.keet-contact__mail:hover{text-decoration:underline}@media (max-width: 560px){.keet-contact{grid-template-columns:1fr;justify-items:center;text-align:center;gap:20px}.keet-contact__copy{display:flex;flex-direction:column;align-items:center}.keet-contact__channel{align-items:center}.keet-contact__lead{max-width:36ch}}.contact{display:grid;gap:12px;max-width:480px}.contact label{font-size:14px;color:var(--hint)}.contact input,.contact textarea{width:100%;font:inherit;color:var(--ink);background:var(--bg);border:1px solid color-mix(in srgb,var(--ink) 14%,transparent);border-radius:10px;padding:10px 12px}.contact input:focus,.contact textarea:focus{outline:2px solid color-mix(in srgb,var(--link) 50%,transparent);border-color:var(--link)}.form-status{font-size:14px;min-height:20px}.form-status.ok{color:var(--ok)}.form-status.err{color:var(--bad)}.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.tl{--tl-gap: 28px;--tl-pad: 44px;--tl-line-x: 10px;--tl-line-w: 2px;--tl-marker: 14px;--tl-marker-top: 20px;--tl-stem: 2px;--tl-axis-x: calc(-1 * var(--tl-pad) + var(--tl-line-x));--tl-rail-left: calc(var(--tl-axis-x) - 1px);--tl-end-h: 148px;--tl-end-hub-y: 46px;--tl-end-hub-r: 8px;--tl-end-hub-svg-x: 10px;list-style:none;margin:36px 0 0;padding:0 0 0 var(--tl-pad);position:relative;max-width:720px}.tl-item{--tl-accent: var(--amber);--tl-next: var(--tl-accent);position:relative;margin:0 0 var(--tl-gap)}.tl-item--tail{margin-bottom:0}.tl-item:not(.tl-item--tail):before{content:"";position:absolute;left:var(--tl-rail-left);top:var(--tl-marker-top);bottom:calc(-1 * (var(--tl-gap) + var(--tl-marker-top)) - 1px);width:var(--tl-line-w);background:linear-gradient(180deg,var(--tl-accent),var(--tl-next));z-index:0}.tl-item--tail:before{content:none}.tl-item:after{content:"";position:absolute;left:var(--tl-axis-x);top:calc(var(--tl-marker-top) - var(--tl-stem) / 2);width:calc(var(--tl-pad) - var(--tl-line-x));height:var(--tl-stem);background:linear-gradient(90deg,var(--tl-accent),color-mix(in srgb,var(--tl-accent) 55%,transparent));z-index:0;pointer-events:none}.tl-end{position:relative;height:var(--tl-end-h);margin:0;pointer-events:none;overflow:visible}.tl-spine{position:absolute;left:var(--tl-rail-left);top:calc(var(--tl-marker-top) + var(--tl-marker) / 2 - 1px);bottom:calc(var(--tl-end-h) - var(--tl-end-hub-y) - var(--tl-end-hub-r));width:var(--tl-line-w);z-index:2;pointer-events:none;overflow:visible}.tl-spine__rail{position:absolute;left:0;top:0;width:100%;bottom:var(--tl-end-hub-r);background:var(--tl-accent);opacity:1}.tl-spine__hub{position:absolute;left:calc((var(--tl-line-w) - var(--tl-end-hub-r) * 2) / 2);bottom:0;width:calc(var(--tl-end-hub-r) * 2);height:calc(var(--tl-end-hub-r) * 2);box-sizing:border-box;border-radius:50%;border:0;background:var(--tl-accent);opacity:1;z-index:1}.tl-spine__hub:before{content:"";position:absolute;inset:2px;border-radius:50%;background:var(--bg)}.tl-spine__hub:after{content:"";position:absolute;left:5px;top:5px;width:6px;height:6px;border-radius:50%;background:var(--tl-accent);z-index:1}.tl-item--head{--tl-start-h: 132px;--tl-start-marker-y: calc(var(--tl-start-h) + var(--tl-marker-top));padding-top:var(--tl-start-h)}.tl-item--head .tl-marker{top:var(--tl-start-marker-y);z-index:3}.tl-item--head:after{top:calc(var(--tl-start-marker-y) - var(--tl-stem) / 2)}.tl-item--head:not(.tl-item--tail):before{top:var(--tl-start-marker-y)}.tl-start{--tl-accent: #5b9dff;position:absolute;left:0;right:0;top:0;height:var(--tl-start-h);margin:0;pointer-events:none;overflow:visible;z-index:1}.tl-start .tl-flourish__svg{position:absolute;left:calc(var(--tl-axis-x) - var(--tl-end-hub-svg-x));top:calc(var(--tl-start-marker-y) - 148px);width:120px;height:156px;overflow:visible;z-index:1}.tl-flourish__svg{position:absolute;left:calc(var(--tl-axis-x) - var(--tl-end-hub-svg-x));top:0;width:140px;height:156px;overflow:visible;z-index:1}.tl-flourish__stroke{stroke-dasharray:1;stroke-dashoffset:1}.tl-flourish__node{opacity:0;transform-box:fill-box;transform-origin:center}.tl-flourish.is-drawn .tl-flourish__stroke{animation:tl-end-draw 1.05s cubic-bezier(.22,.7,.2,1) forwards}.tl-flourish.is-drawn .tl-flourish__stroke--c{animation-delay:.32s}.tl-flourish.is-drawn .tl-flourish__stroke--d{animation-delay:.44s}.tl-flourish.is-drawn .tl-flourish__stroke--e{animation-delay:.56s}.tl-flourish.is-drawn .tl-flourish__stroke--f{animation-delay:.68s}.tl-flourish.is-drawn .tl-flourish__stroke--g{animation-delay:.8s}.tl-flourish.is-drawn .tl-flourish__node{animation:tl-end-node .38s ease-out forwards}.tl-flourish.is-drawn .tl-flourish__node--1{animation-delay:.88s}.tl-flourish.is-drawn .tl-flourish__node--2{animation-delay:.94s}.tl-flourish.is-drawn .tl-flourish__node--3{animation-delay:.98s}.tl-flourish.is-drawn .tl-flourish__node--4{animation-delay:1.02s}.tl-flourish.is-drawn .tl-flourish__node--5{animation-delay:1.06s}.tl-flourish.is-drawn .tl-flourish__node--6{animation-delay:1.1s}.tl-flourish.is-drawn .tl-flourish__node--7{animation-delay:1.12s}.tl-flourish.is-drawn .tl-flourish__node--8{animation-delay:1.14s}.tl-flourish.is-drawn .tl-flourish__node--lead{animation:tl-end-node .42s ease-out 1s forwards,tl-end-lead 2.8s ease-in-out 1.5s infinite}@keyframes tl-end-draw{to{stroke-dashoffset:0}}@keyframes tl-end-node{0%{opacity:0;transform:scale(.4)}to{opacity:1;transform:scale(1)}}@keyframes tl-end-lead{0%,to{opacity:.78}50%{opacity:1}}.tl-flourish.is-idle-pulse .tl-flourish__node--lead{animation:tl-idle-pulse-lead 1.5s ease-in-out both}.tl-flourish.is-idle-pulse .tl-spine__hub{animation:tl-idle-pulse-hub 1.5s ease-in-out both}@keyframes tl-idle-pulse-lead{0%,to{opacity:.85;transform:scale(1)}35%{opacity:1;transform:scale(1.55)}55%{opacity:1;transform:scale(1.15)}75%{transform:scale(1.35)}}@keyframes tl-idle-pulse-hub{0%,to{opacity:1;transform:scale(1);filter:brightness(1)}40%{opacity:1;transform:scale(1.12);filter:brightness(1.25)}}.tl-flourish.is-idle-cascade .tl-flourish__node{animation:tl-idle-node-flash .55s ease-out both}.tl-flourish.is-idle-cascade .tl-flourish__node--1{animation-delay:0s}.tl-flourish.is-idle-cascade .tl-flourish__node--7{animation-delay:.08s}.tl-flourish.is-idle-cascade .tl-flourish__node--8{animation-delay:.14s}.tl-flourish.is-idle-cascade .tl-flourish__node--3{animation-delay:.22s}.tl-flourish.is-idle-cascade .tl-flourish__node--5{animation-delay:.28s}.tl-flourish.is-idle-cascade .tl-flourish__node--2{animation-delay:.36s}.tl-flourish.is-idle-cascade .tl-flourish__node--4{animation-delay:.48s}.tl-flourish.is-idle-cascade .tl-flourish__node--6{animation-delay:.58s}.tl-flourish.is-idle-cascade .tl-flourish__node--lead{animation-delay:.72s;animation-duration:.7s}@keyframes tl-idle-node-flash{0%,to{opacity:.55;transform:scale(1)}40%{opacity:1;transform:scale(1.45)}70%{opacity:.9;transform:scale(1.1)}}.tl-flourish.is-idle-breathe .tl-flourish__svg{transform-origin:18px 46px;animation:tl-idle-breathe 2.3s ease-in-out both}.tl-start.is-idle-breathe .tl-flourish__svg--start{transform-origin:10px 148px;animation:tl-idle-breathe 2.3s ease-in-out both}.tl-item--head:has(.tl-start.is-idle-pulse) .tl-marker{animation:tl-idle-pulse-hub 1.5s ease-in-out both}.tl-flourish.is-idle-breathe .tl-flourish__stroke{animation:tl-idle-stroke-soft 2.3s ease-in-out both}@keyframes tl-idle-breathe{0%,to{transform:scale(1);opacity:1}45%{transform:scale(1.035);opacity:.92}70%{transform:scale(1.015);opacity:1}}@keyframes tl-idle-stroke-soft{0%,to{opacity:1}50%{opacity:.72}}.tl-flourish.is-idle-redraw .tl-flourish__stroke{stroke-dasharray:1;animation:tl-idle-redraw 1.35s cubic-bezier(.22,.7,.2,1) both}.tl-flourish.is-idle-redraw .tl-flourish__stroke--c{animation-delay:0s}.tl-flourish.is-idle-redraw .tl-flourish__stroke--d{animation-delay:.08s}.tl-flourish.is-idle-redraw .tl-flourish__stroke--e{animation-delay:.16s}.tl-flourish.is-idle-redraw .tl-flourish__stroke--f{animation-delay:.24s}.tl-flourish.is-idle-redraw .tl-flourish__stroke--g{animation-delay:.32s}@keyframes tl-idle-redraw{0%{stroke-dashoffset:1}to{stroke-dashoffset:0}}.tl-flourish.is-idle-ripple .tl-flourish__stroke--g[cx]{transform-box:fill-box;transform-origin:center;animation:tl-idle-ripple-ring 1.9s ease-out both}.tl-flourish.is-idle-ripple .tl-flourish__node--lead{animation:tl-idle-ripple-core 1.9s ease-out both}.tl-flourish.is-idle-ripple .tl-spine__hub:after{animation:tl-idle-ripple-dot 1.9s ease-out both}@keyframes tl-idle-ripple-ring{0%{opacity:.9;transform:scale(1)}55%{opacity:.35;transform:scale(1.85)}to{opacity:.55;transform:scale(1)}}@keyframes tl-idle-ripple-core{0%,to{opacity:.85;transform:scale(1)}30%{opacity:1;transform:scale(1.4)}60%{transform:scale(.95)}}@keyframes tl-idle-ripple-dot{0%,to{transform:scale(1);opacity:1}40%{transform:scale(1.35);opacity:1}}@media (prefers-reduced-motion: reduce){.tl-flourish__stroke{stroke-dasharray:none;stroke-dashoffset:0;animation:none;opacity:1}.tl-flourish__node,.tl-spine__rail,.tl-spine__hub{opacity:1;animation:none}.tl-flourish[class*=is-idle-] .tl-flourish__svg,.tl-flourish[class*=is-idle-] .tl-flourish__stroke,.tl-flourish[class*=is-idle-] .tl-flourish__node,.tl-flourish[class*=is-idle-] .tl-spine__hub{animation:none!important}}.tl-marker{position:absolute;left:calc(var(--tl-axis-x) - var(--tl-marker) / 2);top:var(--tl-marker-top);width:var(--tl-marker);height:var(--tl-marker);box-sizing:border-box;border-radius:50%;background:var(--bg);border:2.5px solid var(--tl-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--tl-accent) 22%,transparent);margin-top:calc(var(--tl-marker) / -2);transform:none;z-index:3}.tl-item--event .tl-marker{border:0;border-radius:0;box-shadow:none;background:transparent;overflow:visible}.tl-item--event .tl-marker:before,.tl-item--event .tl-marker:after{content:"";position:absolute;inset:0;clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%)}.tl-item--event .tl-marker:before{background:var(--tl-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--tl-accent) 22%,transparent)}.tl-item--event .tl-marker:after{inset:3px;background:var(--bg)}.tl-card{position:relative;z-index:1;padding:16px 18px 16px 20px;border-radius:0 14px 14px 0;background:color-mix(in srgb,var(--surface) 88%,transparent);border:1px solid color-mix(in srgb,var(--ink) 8%,transparent);border-left:3px solid color-mix(in srgb,var(--tl-accent) 55%,transparent);box-shadow:var(--shadow-card);transition:border-left-color .18s ease}.tl-item--milestone .tl-card{background:transparent;border:0;border-left:3px solid color-mix(in srgb,var(--tl-accent) 55%,transparent);border-radius:0;padding:4px 0 4px 18px;box-shadow:none}.tl-card:hover{border-left-color:var(--tl-accent)}.tl-item--milestone .tl-card:hover{background:transparent}.tl-org{margin:0 0 4px;font-family:var(--mono);font-size:18px;font-weight:700;letter-spacing:-.01em;color:var(--ink)}.tl-title{margin:0;font-size:16px;font-weight:650;line-height:1.35;color:color-mix(in srgb,var(--ink) 92%,var(--hint))}.tl-item--milestone .tl-title{font-size:20px;font-weight:750;color:var(--ink)}h3.tl-title{font-size:inherit;font-weight:inherit}.tl-period{margin:6px 0 0;font-family:var(--mono);font-size:13px;font-weight:600;letter-spacing:.02em;color:var(--tl-accent)}.tl-summary,.tl-detail{margin:10px 0 0;color:var(--hint);font-size:15px;line-height:1.55}.tl-detail+.tl-detail{margin-top:8px}.tl-tags{list-style:none;margin:14px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px}.tl-tags .tech-tag{pointer-events:none;cursor:default}.tl-item--school{--tl-accent: #5b9dff}.tl-item--web{--tl-accent: #3fb950}.tl-item--linux{--tl-accent: #4db8ff}.tl-item--edu{--tl-accent: #6cb6ff}.tl-item--rarus{--tl-accent: #ffb020}.tl-item--ivk{--tl-accent: #3ecf8e}.tl-item--mipt{--tl-accent: #6cb6ff}.tl-item--miet{--tl-accent: #4c8dff}@media (max-width: 640px){.tl{--tl-pad: 36px;--tl-gap: 22px;--tl-line-x: 9px;--tl-marker: 13px}.tl-card{padding:14px 14px 14px 16px}.tl-item--milestone .tl-card{padding-left:14px}}.project{position:relative;overflow:visible;margin-top:36px;max-width:none;width:100%;padding:12px 0 16px}.project>.ambient{z-index:0;border-radius:0}.project>:not(.ambient){position:relative;z-index:1;max-width:820px}.project+.project{margin-top:56px;padding-top:40px;border-top:none}.project+.project:before{content:"";position:absolute;left:0;right:12%;top:0;height:1px;z-index:2;pointer-events:none;background:linear-gradient(90deg,color-mix(in srgb,var(--ink) 12%,transparent) 0%,color-mix(in srgb,var(--ink) 8%,transparent) 55%,transparent 100%)}.project__head{margin:0 0 14px}.project__title{margin:0;font-size:clamp(22px,3vw,28px);font-weight:750;letter-spacing:-.02em;line-height:1.2}.project__role{margin:6px 0 0;color:var(--hint);font-size:15px}.project__desc{margin:0;color:color-mix(in srgb,var(--ink) 88%,var(--hint));font-size:16px;line-height:1.65;max-width:62ch}.project__meta{margin:12px 0 0;display:flex;flex-wrap:wrap;gap:10px 18px;align-items:baseline}.project__link{font-family:var(--mono);font-size:13px;font-weight:600;letter-spacing:.01em;color:var(--link);text-decoration:none}.project__link:hover{text-decoration:underline}.project__tags{list-style:none;margin:16px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px}.project__tags .tech-tag{height:26px;font-size:11px}.project__shot{margin:28px 0 0;position:relative}.project__shot-open{appearance:none;display:block;width:100%;margin:0;padding:0;border:0;background:transparent;cursor:zoom-in;position:relative;text-align:left}.project__shot-open:focus-visible{outline:2px solid color-mix(in srgb,var(--link) 70%,transparent);outline-offset:3px}.project__shot img{display:block;width:100%;height:auto;border:1px solid color-mix(in srgb,var(--ink) 10%,transparent);background:#0a0e12;opacity:0;transition:opacity .28s ease}.project__shot.is-ready img{opacity:1}.project__shot .lazy-media__wait:before{border-color:color-mix(in srgb,var(--ink) 18%,transparent);border-top-color:color-mix(in srgb,var(--ink) 55%,transparent)}.project__shot figcaption{margin-top:10px;font-size:13px;color:var(--hint);font-family:var(--mono);letter-spacing:.01em}.project__shot-zoom{position:absolute;right:10px;bottom:10px;width:34px;height:34px;border-radius:9px;border:1px solid color-mix(in srgb,#fff 18%,transparent);background:radial-gradient(circle at 50% 50%,color-mix(in srgb,#4c8dff 35%,transparent),transparent 70%),color-mix(in srgb,#05080c 72%,transparent);opacity:0;transform:translateY(4px);transition:opacity .2s ease,transform .2s ease;pointer-events:none;backdrop-filter:blur(6px)}.project__shot-zoom:before,.project__shot-zoom:after{content:"";position:absolute;left:50%;top:50%;background:#d7e6ff}.project__shot-zoom:before{width:12px;height:2px;transform:translate(-50%,-50%)}.project__shot-zoom:after{width:2px;height:12px;transform:translate(-50%,-50%)}.project__shot-open:hover .project__shot-zoom,.project__shot-open:focus-visible .project__shot-zoom{opacity:1;transform:translateY(0)}.project__shot-open--demo{cursor:pointer;text-decoration:none;color:inherit;overflow:hidden}.project__shot-open--demo:after{content:"";position:absolute;inset:auto 0 0;height:46%;background:linear-gradient(to top,color-mix(in srgb,#05080c 82%,transparent) 0%,color-mix(in srgb,#05080c 38%,transparent) 45%,transparent 100%);pointer-events:none;transition:height .25s ease,opacity .25s ease}.project__shot-demo{position:absolute;left:14px;bottom:14px;z-index:1;display:inline-flex;align-items:center;gap:12px;max-width:calc(100% - 28px);padding:8px 16px 8px 8px;border-radius:12px;border:1px solid color-mix(in srgb,var(--ok) 42%,transparent);background:linear-gradient(135deg,color-mix(in srgb,var(--ok) 22%,#0a1210),color-mix(in srgb,#0a1014 92%,transparent) 58%);box-shadow:0 0 0 1px color-mix(in srgb,#fff 6%,transparent) inset,0 10px 28px -12px #000000b8;opacity:1;transform:translateY(0);pointer-events:none;transition:transform .22s ease,border-color .22s ease,background .22s ease}.project__shot-demo-play{flex:0 0 auto;position:relative;width:42px;height:42px;border-radius:10px;background:linear-gradient(160deg,color-mix(in srgb,var(--ok) 88%,#fff),var(--ok));box-shadow:0 6px 16px -6px color-mix(in srgb,var(--ok) 70%,transparent);animation:project-demo-play-pulse 2.6s ease-in-out infinite}.project__shot-demo-play:before{content:"";position:absolute;left:53%;top:50%;width:0;height:0;border-style:solid;border-width:7px 0 7px 12px;border-color:transparent transparent transparent #06140c;transform:translate(-40%,-50%)}.project__shot-demo-copy{display:flex;flex-direction:column;gap:2px;min-width:0}.project__shot-demo-kicker{font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:color-mix(in srgb,var(--ok) 78%,#e8fff2)}.project__shot-demo-label{font-family:"Bolivia No Problem",var(--font);font-size:clamp(1.05rem,2.4vw,1.28rem);font-weight:400;letter-spacing:.01em;line-height:1.15;color:#f3fff8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.project__shot-open--demo:hover:after,.project__shot-open--demo:focus-visible:after{height:54%}.project__shot-open--demo:hover .project__shot-demo,.project__shot-open--demo:focus-visible .project__shot-demo{transform:translateY(-2px);border-color:color-mix(in srgb,var(--ok) 70%,transparent);background:linear-gradient(135deg,color-mix(in srgb,var(--ok) 30%,#0a1210),color-mix(in srgb,#0a1014 88%,transparent) 58%)}.project__shot-open--demo:hover .project__shot-demo-play,.project__shot-open--demo:focus-visible .project__shot-demo-play{animation:none;transform:scale(1.05)}@keyframes project-demo-play-pulse{0%,to{box-shadow:0 6px 16px -6px color-mix(in srgb,var(--ok) 55%,transparent);filter:brightness(1)}50%{box-shadow:0 8px 22px -4px color-mix(in srgb,var(--ok) 80%,transparent);filter:brightness(1.08)}}@media (prefers-reduced-motion: reduce){.project__shot-demo-play{animation:none}}.project__shots{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:28px;align-items:start}.project__shots .project__shot{margin:0}.project--vcb .project__shot img{width:100%;height:auto;background:#070a0e}.project__asm{margin-top:22px;max-width:42rem;border-radius:12px;border:1px solid color-mix(in srgb,var(--ink) 12%,transparent);background:linear-gradient(180deg,color-mix(in srgb,#4c8dff 8%,transparent),transparent 48%),#0a1018;overflow:hidden}.project__asm-label{margin:0;padding:10px 14px 0;font-family:var(--mono);font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:color-mix(in srgb,#7eb0ff 85%,var(--hint))}.project__asm-code{margin:0;padding:12px 14px 16px;overflow-x:auto;font-family:var(--mono);font-size:12.5px;line-height:1.55;color:#c8d6e5;tab-size:2}.project__asm-code code{font:inherit;color:inherit;white-space:pre}.tech-tag.vcb{color:#7eb0ff;background:#4c8dff24;border-color:#4c8dff4d}.tech-tag.vcb:hover{background:#4c8dff38;border-color:#4c8dff6b}.tech-tag.isa{color:#b39ddb;background:#7e57c224;border-color:#7e57c24d}.tech-tag.isa:hover{background:#7e57c238;border-color:#7e57c26b}.tech-tag.asm{color:#80cbc4;background:#00968824;border-color:#0096884d}.tech-tag.asm:hover{background:#00968838;border-color:#0096886b}.tech-tag.alu{color:#ffb74d;background:#ff980024;border-color:#ff98004d}.tech-tag.alu:hover{background:#ff980038;border-color:#ff98006b}.tech-tag.fib{color:#f48fb1;background:#e91e631f;border-color:#e91e6347}.tech-tag.fib:hover{background:#e91e6333;border-color:#e91e6366}.tech-tag.digital{color:#aed581;background:#7cb34224;border-color:#7cb3424d}.tech-tag.digital:hover{background:#7cb34238;border-color:#7cb3426b}@media (max-width: 640px){.project__shots{grid-template-columns:1fr}}.section--lab{padding-top:40px}.tab-page[data-tab=lab] .section--lab:first-child{border-top:none}.tab-page[data-tab=lab] .section--lab:first-child:before{display:none}.lab{max-width:920px}.lab__lead{margin:0 0 10px}.lab__net{margin:0 0 12px;max-width:52rem}.lab__about{margin:0 0 24px;max-width:52rem}.lab__about>summary{cursor:pointer;list-style:none;font-family:var(--mono);font-size:13px;color:var(--amber);user-select:none}.lab__about>summary::-webkit-details-marker{display:none}.lab__about>summary:before{content:"▸ ";display:inline-block;transition:transform .15s ease}.lab__about[open]>summary:before{transform:rotate(90deg)}.lab__about-body{margin-top:12px;padding-top:4px;border-top:1px solid color-mix(in srgb,var(--ink) 12%,transparent)}.lab__about-h{margin:14px 0 6px;font-size:.95rem;font-weight:700;letter-spacing:.01em}.lab__about-h:first-child{margin-top:0}.lab__about-p{margin:0 0 8px;color:color-mix(in srgb,var(--ink) 78%,transparent);line-height:1.55;font-size:.95rem}.lab__about-code{margin:0 0 8px;padding:10px 12px;overflow-x:auto;font-family:var(--mono);font-size:12.5px;line-height:1.45;color:var(--amber);background:color-mix(in srgb,var(--ink) 6%,transparent);border-left:2px solid color-mix(in srgb,var(--amber) 55%,transparent)}.lab__about-list{margin:0 0 8px;padding-left:1.15rem;color:color-mix(in srgb,var(--ink) 78%,transparent);line-height:1.55;font-size:.95rem}.lab__about-list li+li{margin-top:4px}.lab__tip{margin:0 0 24px;max-width:52rem}.lab__credit{color:var(--amber);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}.lab__credit:hover{color:color-mix(in srgb,var(--amber) 80%,var(--ink))}.lab__actions{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:12px}.lab__status{margin:0;font-family:var(--mono);font-size:13px;color:var(--amber)}.lab__stage{position:relative;margin-top:24px;display:flex;justify-content:center;width:100%}.lab__phone-kb{position:fixed;z-index:40;width:2px;height:2px;margin:0;padding:0;border:0;opacity:.02;resize:none;overflow:hidden;font-size:16px;color:transparent;caret-color:transparent;background:transparent;outline:none;pointer-events:none;-webkit-user-select:text;user-select:text}.lab__screen{position:relative;width:fit-content;max-width:100%;background:#000;border:1px solid color-mix(in srgb,var(--ink) 12%,transparent);overflow:hidden;font-family:var(--mono);font-size:14px;line-height:1.25;color:#c8d0d8;outline:none;cursor:text;user-select:text;-webkit-user-select:text;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.lab__screen:focus-visible{outline:2px solid color-mix(in srgb,var(--amber) 70%,transparent);outline-offset:2px}.lab__screen>div{display:block;width:max-content;max-width:100%;margin:0;white-space:pre;font:14px/14px var(--mono);user-select:text;-webkit-user-select:text;cursor:text}.lab__screen span{user-select:text;-webkit-user-select:text}.lab__screen .cursor{background:var(--amber)!important}.lab__screen canvas{image-rendering:pixelated;max-width:100%;height:auto;display:block}html.is-lightbox-open{overflow:hidden}.media-lightbox{position:fixed;inset:0;z-index:140;display:grid;grid-template-rows:auto 1fr auto;padding:0}.media-lightbox[hidden]{display:none}.media-lightbox__backdrop{appearance:none;position:absolute;inset:0;border:0;margin:0;padding:0;background:color-mix(in srgb,#02050a 88%,transparent);backdrop-filter:blur(10px);cursor:pointer}.media-lightbox__panel{position:relative;z-index:1;display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;width:100%;height:100%;min-height:0;pointer-events:none}.media-lightbox__toolbar{display:flex;justify-content:flex-end;gap:8px;padding:14px 16px 8px;pointer-events:auto}.media-lightbox__tool{appearance:none;width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;border:1px solid color-mix(in srgb,#fff 16%,transparent);border-radius:11px;background:color-mix(in srgb,#0a121c 78%,transparent);color:#d7e6ff;font-family:var(--mono);font-size:16px;font-weight:700;cursor:pointer;backdrop-filter:blur(8px)}.media-lightbox__tool:hover{border-color:color-mix(in srgb,#7eb0ff 45%,transparent);color:#fff}.media-lightbox__tool--close{margin-left:4px}.media-lightbox__stage{position:relative;min-height:0;display:grid;place-items:center;overflow:hidden;touch-action:none;cursor:zoom-in;pointer-events:auto;margin:0 12px}.media-lightbox__img{max-width:min(100%,1600px);max-height:calc(100vh - 150px);width:auto;height:auto;object-fit:contain;transform-origin:center center;user-select:none;-webkit-user-drag:none;border:1px solid color-mix(in srgb,#fff 10%,transparent);background:#070a0e;will-change:transform}.media-lightbox__cap,.media-lightbox__hint{margin:0;padding:8px 18px;text-align:center;font-family:var(--mono);pointer-events:none}.media-lightbox__cap{font-size:13px;color:#c8d6e5}.media-lightbox__cap[hidden]{display:none}.media-lightbox__hint{padding-bottom:16px;font-size:11px;letter-spacing:.02em;color:color-mix(in srgb,#9bb0c7 75%,transparent)}@media (max-width: 640px){.media-lightbox__hint{display:none}.media-lightbox__img{max-height:calc(100vh - 120px)}}.qr-modal{position:fixed;inset:0;z-index:120;display:grid;place-items:center;padding:20px}.qr-modal[hidden]{display:none}.qr-modal__backdrop{appearance:none;position:absolute;inset:0;border:0;margin:0;padding:0;background:color-mix(in srgb,#000 62%,transparent);backdrop-filter:blur(6px);cursor:pointer}.qr-modal__panel{position:relative;z-index:1;width:min(360px,calc(100vw - 40px));padding:28px 24px 22px;border-radius:18px;border:1px solid color-mix(in srgb,var(--ink) 12%,transparent);background:radial-gradient(ellipse 80% 60% at 50% 0%,color-mix(in srgb,var(--amber) 12%,transparent),transparent 60%),var(--surface);box-shadow:var(--shadow-float);text-align:center}.qr-modal__close{appearance:none;position:absolute;top:12px;right:12px;width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;border:1px solid color-mix(in srgb,var(--ink) 14%,transparent);border-radius:10px;background:transparent;color:var(--hint);cursor:pointer}.qr-modal__close:hover{color:var(--ink);border-color:color-mix(in srgb,var(--ink) 28%,transparent)}.qr-modal__title{margin:0 0 18px;font-family:var(--mono);font-size:18px;font-weight:700;letter-spacing:-.01em;color:var(--ink)}.qr-modal__frame{position:relative;display:inline-flex;align-items:center;justify-content:center;padding:14px;border-radius:14px;background:#fff;box-shadow:var(--shadow-card);line-height:0;min-width:min(220px,calc(100vw - 120px));min-height:min(220px,calc(100vw - 120px))}.qr-modal__frame img{display:block;width:min(220px,calc(100vw - 120px));height:auto;aspect-ratio:1;opacity:0;transition:opacity .28s ease}.qr-modal__frame.is-ready img{opacity:1}.lazy-media{position:relative}.lazy-media__wait{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none;opacity:0;transition:opacity .2s ease}.lazy-media.is-loading>.lazy-media__wait,.lazy-media[aria-busy=true]:not(.is-ready)>.lazy-media__wait{opacity:1}.lazy-media__wait:before{content:"";width:22px;height:22px;border-radius:50%;border:2px solid color-mix(in srgb,#0c1015 14%,transparent);border-top-color:color-mix(in srgb,#0c1015 55%,transparent);animation:lazy-spin .7s linear infinite}.lazy-media--logo{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;flex:0 0 auto;border-radius:10px;background:color-mix(in srgb,var(--ink) 6%,transparent)}.lazy-media--logo .lazy-media__wait:before{width:14px;height:14px;border-width:1.5px;border-color:color-mix(in srgb,var(--amber) 25%,transparent);border-top-color:var(--amber)}.lazy-media.is-error{outline:1px dashed color-mix(in srgb,#e85d5d 55%,transparent)}.lazy-media.is-error>.lazy-media__wait{opacity:0}@keyframes lazy-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.lazy-media__wait:before{animation:none;opacity:.65}.keet-contact__qr img,.keet-contact__logo,.qr-modal__frame img{transition:none}}.qr-modal__link{display:inline-block;margin-top:16px;font-family:var(--mono);font-size:14px;font-weight:600;color:var(--link);text-decoration:none}.qr-modal__link:hover{text-decoration:underline}body.qr-open{overflow:hidden}.site-foot{position:relative;margin-top:auto;overflow:hidden;border-top:none;background:linear-gradient(180deg,color-mix(in srgb,var(--surface) 58%,transparent) 0%,transparent 48%),radial-gradient(ellipse 75% 90% at 6% 110%,color-mix(in srgb,var(--amber) 12%,transparent),transparent 58%),radial-gradient(ellipse 55% 70% at 96% -10%,color-mix(in srgb,var(--link) 10%,transparent),transparent 52%),var(--bg)}.site-foot:before{content:"";position:absolute;left:6%;right:6%;top:0;height:1px;z-index:2;pointer-events:none;background:linear-gradient(90deg,transparent 0%,color-mix(in srgb,var(--ink) 11%,transparent) 22%,color-mix(in srgb,var(--ink) 11%,transparent) 78%,transparent 100%)}.site-foot__glow{pointer-events:none;position:absolute;inset:0;background:radial-gradient(ellipse 55% 70% at 72% 70%,color-mix(in srgb,var(--amber) 16%,transparent),transparent 68%),radial-gradient(ellipse 50% 55% at 28% 40%,color-mix(in srgb,var(--link) 11%,transparent),transparent 70%);opacity:.62;animation:foot-glow 9s ease-in-out infinite alternate}@keyframes foot-glow{0%{opacity:.48}to{opacity:.78}}.site-foot__inner{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"brand links" "meta meta";align-items:end;gap:22px 48px;padding-top:28px;padding-bottom:22px}.site-foot__brand{grid-area:brand}.site-foot__logo{display:inline-flex;align-items:baseline;font-family:var(--mono);font-weight:800;font-size:clamp(22px,3.2vw,28px);letter-spacing:-.02em;color:var(--ink);text-decoration:none;line-height:1.1}.site-foot__logo:hover{text-decoration:none;color:var(--ink)}.site-foot__logo .cursor{color:var(--amber);animation:foot-blink 1.2s steps(1) infinite}@keyframes foot-blink{0%,55%{opacity:1}56%,to{opacity:.15}}.site-foot__tag{margin:8px 0 0;max-width:42ch;color:var(--hint);font-size:14px;line-height:1.45}.site-foot__links{grid-area:links;display:flex;flex-direction:column;gap:6px;font-size:14px;justify-self:end;text-align:right}.site-foot__links a{color:color-mix(in srgb,var(--ink) 78%,var(--hint));text-decoration:none;width:fit-content;margin-left:auto;transition:color .15s ease}.site-foot__links a:hover{color:var(--amber);text-decoration:none}.site-foot__meta{grid-area:meta;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;padding-top:4px;font-size:13px;color:var(--hint)}.site-foot__copy{justify-self:start}.site-foot__stack{justify-self:end;display:inline-flex;align-items:center;flex-wrap:wrap;gap:8px;font-family:var(--mono);font-size:12px;letter-spacing:.02em}.site-foot__stack a{color:color-mix(in srgb,var(--ink) 72%,var(--hint));text-decoration:none}.site-foot__stack a:hover{color:var(--link);text-decoration:none}.site-foot__dot{width:4px;height:4px;border-radius:50%;background:color-mix(in srgb,var(--amber) 70%,transparent);flex:0 0 auto}site-status.site-status{display:flex;flex-direction:column;align-items:flex-start;gap:5px;justify-self:center;width:max-content;max-width:min(100%,34rem);font-family:var(--mono);font-size:11px;letter-spacing:.02em;color:color-mix(in srgb,var(--ink) 68%,var(--hint))}.site-status__head{display:flex;align-items:center;gap:6px;min-width:0;flex-wrap:nowrap}.site-status__pulse{width:6px;height:6px;border-radius:50%;flex:0 0 auto;background:color-mix(in srgb,var(--hint) 55%,transparent)}.site-status[data-state=up] .site-status__pulse.is-live{background:#3ecf8e;animation:status-pulse 2.4s ease-out infinite}.site-status[data-state=down] .site-status__pulse{background:color-mix(in srgb,#e85d5d 80%,var(--hint))}@keyframes status-pulse{0%{box-shadow:0 0 color-mix(in srgb,#3ecf8e 40%,transparent)}70%{box-shadow:0 0 0 5px transparent}to{box-shadow:0 0 0 0 transparent}}.site-status__label{color:color-mix(in srgb,var(--ink) 88%,var(--hint));font-weight:700;flex:0 0 auto}.site-status[data-state=down] .site-status__label{color:color-mix(in srgb,#e85d5d 70%,var(--hint))}.site-status__uptime{color:var(--hint);flex:0 0 auto;white-space:nowrap}.site-status__uptime:before{content:"·";margin-right:6px;color:color-mix(in srgb,var(--amber) 55%,transparent)}.site-status__scopes{display:inline-flex;margin-left:4px;border:1px solid color-mix(in srgb,var(--ink) 12%,transparent);border-radius:6px;overflow:hidden}.site-status__scopes[hidden]{display:none}.site-status__scope{appearance:none;border:0;margin:0;padding:2px 7px;cursor:pointer;background:transparent;color:var(--hint);font:inherit;font-size:10px;letter-spacing:.04em;text-transform:lowercase;transition:color .15s ease,background .15s ease}.site-status__scope:hover{color:var(--ink)}.site-status__scope.is-active{background:color-mix(in srgb,var(--amber) 18%,transparent);color:var(--amber)}.site-status__windows{display:flex;align-items:baseline;gap:0;width:max-content;max-width:100%}.site-status__slot{display:inline-flex;align-items:baseline;gap:5px;padding:0 9px;white-space:nowrap;font-variant-numeric:tabular-nums}.site-status__slot:first-child{padding-left:0}.site-status__slot:last-child{padding-right:0}.site-status__slot+.site-status__slot{border-left:1px solid color-mix(in srgb,var(--ink) 12%,transparent)}.site-status__slot-k{font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:color-mix(in srgb,var(--amber) 78%,var(--hint))}.site-status__slot-req{font-size:12px;font-weight:700;color:var(--ink)}.site-status__slot-bytes{font-size:11px;color:var(--hint)}.site-status__windows.is-swap .site-status__slot{animation:status-slot-in .24s ease}@keyframes status-slot-in{0%{opacity:.4}to{opacity:1}}.site-status[data-scope=mail] .site-status__slot-k{color:color-mix(in srgb,#6cb6ff 75%,var(--hint))}.site-status[data-scope=cpu] .site-status__slot-k{color:color-mix(in srgb,#f0c14a 82%,var(--hint))}.site-status[data-scope=ram] .site-status__slot-k{color:color-mix(in srgb,#3ecf8e 80%,var(--hint))}.site-status[data-scope=disk] .site-status__slot-k{color:color-mix(in srgb,#6cb6ff 70%,var(--hint))}@media (prefers-reduced-motion: reduce){.site-foot__glow,.site-foot__logo .cursor,.site-status__pulse.is-live,.site-status__windows.is-swap .site-status__slot,.ambient,.ambient__glow{animation:none}}@media (max-width: 760px){.site-foot__inner{grid-template-columns:1fr;grid-template-areas:"brand" "links" "meta";align-items:start;gap:18px;padding-top:24px;padding-bottom:18px}.site-foot__links{justify-self:start;text-align:left}.site-foot__links a{margin-left:0}.site-foot__meta{display:flex;flex-direction:column;align-items:flex-start;gap:8px}.site-foot__copy,.site-foot__stack{justify-self:unset}site-status.site-status{order:1;width:100%;max-width:100%}.site-status__windows{width:100%;justify-content:flex-start;overflow-x:auto;scrollbar-width:none}.site-status__windows::-webkit-scrollbar{display:none}.site-foot__stack{order:2}}@media (max-width: 860px){.top-nav{display:none}.top-toggle{display:flex;flex-shrink:0}.top-right{gap:8px}.content{margin-left:0}.hero-center{padding:4px 16px 0}}@media (max-width: 420px){.top-right{gap:6px}.lang-btn{padding:7px 9px;font-size:12px}.lang-more__btn{padding:0 9px}.topbar-inner{gap:8px}}@media (max-width: 640px){:root{--nav-h: 56px}.topbar-inner{padding:0 16px}.hero{padding-top:clamp(6px,1.5svh,16px);padding-bottom:calc(10px + env(safe-area-inset-bottom,0px));--hero-demo-slot: 124px}.hero-bpmn-card{top:auto;bottom:calc(72px + env(safe-area-inset-bottom,0px));right:10px;left:auto;width:min(240px,58vw);max-height:28vh;padding:12px 13px}.hero.is-demo-focus .hero-bpmn-card{top:max(58px,env(safe-area-inset-top,0px) + 52px);bottom:auto;width:min(260px,72vw);max-height:40vh}.hero-center{padding:0 16px}.section{padding:40px 0}}body.page-article .content--article{position:relative;overflow:visible;padding-top:calc(var(--nav-h, 64px) + 28px);padding-bottom:64px;min-height:calc(var(--app-height, 100vh) - var(--nav-h, 64px))}body.page-article .content--article>.ambient{z-index:0}body.page-article .content--article>:not(.ambient){position:relative;z-index:1}.top-nav--article{flex:1;justify-content:flex-start;margin-left:12px}.writeup{max-width:720px;padding-bottom:40px}.writeup__head{margin-bottom:28px}.writeup__kicker{margin:0 0 10px;font-family:var(--mono);font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--hint)}.writeup__title{margin:0 0 12px;font-size:clamp(1.75rem,3.2vw,2.35rem);font-weight:800;letter-spacing:-.03em;line-height:1.15;color:var(--ink)}.writeup__tagline{margin:0;font-size:1.05rem;line-height:1.55;color:color-mix(in srgb,var(--ink) 78%,var(--hint));max-width:42rem}.writeup__shot{margin:0 0 36px}.writeup__demo{margin:0 0 28px}.writeup__demo-frame,.project__demo-frame{display:block;width:100%;border:1px solid color-mix(in srgb,var(--ink) 12%,transparent);border-radius:2px;background:#1b1b1b}.writeup__demo-frame{min-height:420px;height:min(70vh,640px)}.project__demo{margin:18px 0 22px}.project__demo-frame{height:min(62vh,560px);min-height:380px}.writeup__demo figcaption,.project__demo figcaption{margin:10px 0 0;font-size:.92rem;line-height:1.45;color:var(--hint)}.writeup__demo-open{margin:10px 0 0}.writeup__section{margin:0 0 32px}.writeup__h2{margin:0 0 12px;font-size:1.2rem;font-weight:750;letter-spacing:-.02em;color:var(--ink)}.writeup__p{margin:0 0 12px;font-size:15.5px;line-height:1.7;color:color-mix(in srgb,var(--ink) 88%,var(--hint))}.writeup__list{margin:10px 0 0;padding:0 0 0 1.15rem;display:grid;gap:8px}.writeup__list li{font-size:15px;line-height:1.6;color:color-mix(in srgb,var(--ink) 86%,var(--hint))}.writeup__links{margin:16px 0 0;display:flex;flex-wrap:wrap;gap:10px 18px}.writeup__foot{margin:40px 0 0;padding-top:20px;border-top:1px solid color-mix(in srgb,var(--ink) 10%,transparent);display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px}.writeup__foot .writeup__links{margin:0}.writeup__asm{margin:16px 0 8px}.writeup__figs{margin:18px 0 0;display:grid;gap:16px}.writeup__figs--grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));align-items:start}.writeup__fig{margin:0}.writeup__fig img,.writeup__shot img{width:100%;height:auto;display:block}.writeup__fig figcaption,.writeup__shot figcaption{margin:8px 0 0;font-size:13px;line-height:1.45;color:var(--hint)}.nf{position:relative;isolation:isolate;min-height:calc(var(--app-height, 100svh) - var(--nav-h) - 120px);display:flex;flex-direction:column;justify-content:center;padding:48px 0 72px;max-width:640px}.nf__atmosphere{position:absolute;inset:-8% -12% auto -18%;height:min(420px,58vh);z-index:-1;pointer-events:none;color:#5b9dff;opacity:.55;mask-image:linear-gradient(180deg,#000 35%,transparent 95%)}.nf__schematic{width:100%;height:100%;display:block}.nf__wire{stroke-dasharray:1;stroke-dashoffset:1;animation:nf-draw 1.15s cubic-bezier(.22,.7,.2,1) forwards}.nf__wire--a{animation-delay:.08s;opacity:.85}.nf__wire--b{animation-delay:.2s;opacity:.7}.nf__wire--c{animation-delay:.32s;opacity:.55}.nf__wire--d{animation-delay:.44s;opacity:.45}.nf__wire--e{animation-delay:.16s;opacity:.4}.nf__node,.nf__cross{opacity:0;animation:nf-node .4s ease-out forwards}.nf__node--1{animation-delay:.7s}.nf__node--2{animation-delay:.82s}.nf__node--3{animation-delay:.9s}.nf__node--4{animation-delay:.78s}.nf__node--5{animation-delay:.96s}.nf__cross{animation-delay:.74s;opacity:0;color:var(--amber)}.nf__status{margin:0 0 10px;font-family:var(--mono);font-size:13px;font-weight:600;letter-spacing:.04em;text-transform:lowercase;color:var(--amber)}.nf__code{margin:0;font-family:var(--mono);font-size:clamp(72px,18vw,132px);font-weight:800;line-height:.9;letter-spacing:-.06em;color:color-mix(in srgb,var(--ink) 18%,transparent);user-select:none}.nf__title{margin:8px 0 0;font-size:clamp(28px,5vw,40px);font-weight:750;letter-spacing:-.03em;line-height:1.15;color:var(--ink)}.nf__lead{margin:14px 0 0;max-width:36ch;font-size:17px;line-height:1.55;color:var(--hint)}.nf__actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}@keyframes nf-draw{to{stroke-dashoffset:0}}@keyframes nf-node{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion: reduce){.nf__wire,.nf__node,.nf__cross{animation:none;opacity:1;stroke-dasharray:none;stroke-dashoffset:0}}
