.network{z-index:-1;pointer-events:none;width:100%;height:100%;position:fixed;inset:0}.center{z-index:1000;pointer-events:none;flex-direction:column;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.dock{pointer-events:auto;flex-direction:column;align-items:center;gap:4px;display:flex;position:absolute;top:50%;translate:0 -50%}.footdock{justify-content:center;align-items:center;gap:8px;display:flex}.foot-sep{display:none}.ghost{min-height:var(--touch);border-radius:var(--radius-inner);font:inherit;color:var(--nav-text);background:0 0;border:0;align-items:center;margin:0;padding:0 16px;font-weight:500;display:none}.win{width:var(--w);border:1px solid var(--outline-variant);border-radius:var(--radius-card);background:var(--surface-bright);color:var(--on-surface);flex-direction:column;display:flex;position:absolute;overflow:hidden}.win a{color:inherit}.win.snap{transition:left var(--dur-in) var(--ease-std), top var(--dur-in) var(--ease-std)}.bar{background:var(--surface-container);border-bottom:1px solid var(--outline-variant);justify-content:space-between;align-items:center;gap:8px;padding:4px 6px 4px 16px;display:flex}.title{white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:500;overflow:hidden}.btns{align-items:center;display:flex}.btn{border-radius:var(--radius-inner);width:36px;height:36px;font:inherit;color:var(--on-surface);background:0 0;border:0;justify-content:center;align-items:center;margin:0;padding:0;text-decoration:none;display:inline-flex}.btn svg{transition:transform var(--dur-out) var(--ease-std)}.guts{transition:grid-template-rows var(--dur-in) var(--ease-in);grid-template-rows:1fr;display:grid}.guts-in{flex-direction:column;min-height:0;display:flex;overflow:hidden}.body{flex-direction:column;gap:8px;padding:12px;display:flex}.body p{margin:0}.win.closing .guts{grid-template-rows:0fr}.win.notrans,.win.notrans .guts{transition:none!important}@media (width>=721px){.win{z-index:1;scale:var(--s,1);transform-origin:0 0;transition:opacity var(--dur-in) var(--ease-in), translate var(--dur-in) var(--ease-in)}.win.closing{opacity:0;transition-duration:var(--dur-out);transition-timing-function:var(--ease-out)}.win.closing .guts{transition-duration:var(--dur-out);transition-timing-function:var(--ease-out)}.win.boot{opacity:0;pointer-events:none;translate:0 -14px}.win.boot .guts{grid-template-rows:0fr}.win.measuring{visibility:hidden}.win.measuring .guts{grid-template-rows:1fr;transition:none}.win.min{display:none}.bar{cursor:move;-webkit-user-select:none;user-select:none;touch-action:none}.ghost{animation:ghost-in var(--dur-in) var(--ease-in) backwards;display:inline-flex}.footdock{position:fixed;bottom:12px;left:0;right:0}}@keyframes ghost-in{0%{opacity:0;translate:0 8px}}@media (width<=720px){.center,.dock{display:none}.windows{padding:max(2rem, env(safe-area-inset-top,0px)) 16px calc(2rem + env(safe-area-inset-bottom,0px));flex-direction:column;gap:16px;display:flex}.win{width:100%;position:static}.win.min .guts{grid-template-rows:0fr}.win.min .bar{border-bottom-color:#0000}.win.min .close svg{transform:rotate(45deg)}.desktop-only{display:none}.ff .ff-logo{font-size:min(11px,2.5vw)}.foot-sep{background:var(--outline);width:82%;height:1px;margin:4px auto;display:block}}.hint{color:var(--on-surface-muted);font-size:12px}.mono{font-family:var(--font-mono)}.accent{color:var(--primary)}.rows{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.row{--row-bg:var(--surface-container);min-height:var(--touch);border-radius:var(--radius-inner);background:var(--row-bg);color:var(--on-surface);padding:10px 14px;text-decoration:none;display:flex}.row-title{font-weight:500}.row-meta{color:var(--on-surface-muted);font-size:12px}.project{flex-direction:column;gap:2px}.project-desc{font-size:13px}.row-meta{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.contact{align-items:center;gap:10px}.contact svg{width:20px;height:20px;color:var(--primary);flex:none}.contact .row-meta{text-align:right;flex:1;min-width:0}.choice{--row-bg:var(--surface-container);min-height:var(--touch);border-radius:var(--radius-inner);background:var(--row-bg);justify-content:space-between;align-items:center;gap:12px;padding:8px 14px;display:flex}.choice-text{flex-direction:column;display:flex}.switch{flex:none;width:40px;height:24px;position:relative}.switch input{z-index:1;opacity:0;cursor:pointer;width:100%;height:100%;margin:0;position:absolute;inset:0}.switch-track{border:1px solid var(--outline);border-radius:var(--radius-pill);background:var(--surface-bright);transition:background .2s var(--ease-std), border-color .2s var(--ease-std);position:absolute;inset:0}.switch-track:after{content:"";background:var(--outline);width:16px;height:16px;transition:transform .2s var(--ease-std), background .2s var(--ease-std);border-radius:50%;position:absolute;top:3px;left:3px}.switch input:checked+.switch-track{border-color:var(--primary);background:var(--primary)}.switch input:checked+.switch-track:after{background:var(--on-primary);transform:translate(18px)}.switch input:focus-visible+.switch-track{outline:2px solid var(--primary);outline-offset:2px}.tree,.tree-children{white-space:pre;margin:0;padding:0;font-size:13px;list-style:none}.tree{overflow-x:auto}.tree-root{border-radius:var(--radius-inner);width:100%;min-height:28px;font:inherit;color:var(--on-surface);text-align:left;background:0 0;border:0;align-items:center;gap:1ch;margin:0;padding:0 6px;font-weight:500;display:flex}.tree-mark{width:1ch;color:var(--primary)}.tree-leaf{color:var(--on-surface-muted);font-weight:400}.tree-children{padding-left:calc(6px + 1ch)}.tree-prefix{color:var(--outline)}.ff{align-items:center;gap:20px;font-size:13px;display:flex}.ff-logo{letter-spacing:0;white-space:pre;-webkit-user-select:none;user-select:none;flex:none;margin:0;font-size:11px;line-height:1.2}.ff-info{min-width:0}@media (width<=720px){.ff{flex-direction:column;align-items:flex-start}}.ff-host{font-weight:500}.ff-rule{color:var(--outline)}.ff-list{margin:4px 0 0}.ff-row{gap:1ch;display:flex}.ff-row dt{color:var(--primary);flex:none;font-weight:500}.ff-row dd{margin:0}.prompt{align-items:center;gap:1ch;font-size:13px;display:flex}.cursor{background:var(--on-surface);width:1ch;height:1.2em;animation:1.1s step-end infinite blink}@keyframes blink{50%{opacity:0}}.ff-palette{gap:6px;margin-top:12px;display:flex}.ff-palette span{border:1px solid var(--outline);border-radius:50%;width:16px;height:16px}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){:root{--dur-in:1ms;--dur-out:1ms}.cursor{animation:none}.sl:before,.switch-track,.switch-track:after,.btn svg{transition-duration:1ms}}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(./jetbrains-mono-cyrillic-400-normal-BEIGL1Tu.woff2)format("woff2"),url(./jetbrains-mono-cyrillic-400-normal-ugxPyKxw.woff)format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(./jetbrains-mono-cyrillic-500-normal-DmUKJPL_.woff2)format("woff2"),url(./jetbrains-mono-cyrillic-500-normal-DJqRU3vO.woff)format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(./jetbrains-mono-latin-400-normal-V6pRDFza.woff2)format("woff2"),url(./jetbrains-mono-latin-400-normal-6-qcROiO.woff)format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(./jetbrains-mono-latin-500-normal-BWZEU5yA.woff2)format("woff2"),url(./jetbrains-mono-latin-500-normal-CJOVTJB7.woff)format("woff")}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--surface:#faf6f0;--on-surface:#3a2e22;--surface-container:#f0e8dd;--surface-container-high:#ece2d3;--surface-bright:#fdfaf6;--on-surface-muted:#6c5c48;--nav-text:#5a4a3a;--primary:#6a45b8;--on-primary:#fff;--primary-container:#ebddff;--on-primary-container:#5a2da8;--secondary-container:#ebddff;--on-secondary-container:#5a2da8;--tertiary-container:#ffdcad;--on-tertiary-container:#7a4a14;--outline:#d8cdbe;--outline-variant:#ece2d3;--sky-top:#e6d6ff;--sky-bottom:#faf6f0;--sky-glow:#a96bff38;--radius-pill:100px;--radius-card:6px;--radius-inner:4px;--touch:44px;--ease-in:cubic-bezier(.05, .7, .1, 1);--ease-out:cubic-bezier(.3, 0, .8, .15);--ease-std:cubic-bezier(.2, 0, 0, 1);--dur-in:.32s;--dur-out:.2s;--font-mono:"JetBrains Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--font-sans:var(--font-mono);font-family:var(--font-sans);font-size:14px;font-weight:400;line-height:1.5}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--surface:#1a1611;--on-surface:#ede2d4;--surface-container:#251f18;--surface-container-high:#302820;--surface-bright:#2b251d;--on-surface-muted:#b6a994;--nav-text:#ede2d4;--primary:#cbb3ff;--on-primary:#381b6c;--primary-container:#52389e;--on-primary-container:#ebddff;--secondary-container:#483a55;--on-secondary-container:#ebddff;--tertiary-container:#5a3d12;--on-tertiary-container:#ffdcad;--outline:#4d4334;--outline-variant:#342c20;--sky-top:#33283f;--sky-bottom:#1a1611;--sky-glow:#cbb3ff24}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{min-height:100dvh;margin:0}body{background:radial-gradient(90vmax 70vmax at 10% -10%, var(--sky-glow), transparent 70%), linear-gradient(160deg, var(--sky-top), var(--sky-bottom) 75%) fixed;min-width:320px;color:var(--on-surface);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility}@media (width>=721px){body{overflow:hidden}}h1,h2,h3,b,strong{font-weight:500}h1{margin:0}.sl{isolation:isolate;cursor:pointer;position:relative}.sl:before{content:"";z-index:-1;border-radius:inherit;opacity:0;pointer-events:none;transition:opacity .2s var(--ease-std);background:currentColor;position:absolute;inset:0}.sl:focus-visible:before,.sl:active:before{opacity:.12}.sl:focus-visible{outline:2px solid var(--primary);outline-offset:2px}@media (hover:hover){.sl:hover:before{opacity:.08}.sl:hover:active:before{opacity:.12}}
