@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/space-grotesk-vietnamese-wght-normal-D0rl6rjA.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/space-grotesk-latin-ext-wght-normal-D9tNdqV9.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/space-grotesk-latin-wght-normal-BhU9QXUp.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(data:font/woff2;base64,d09GMgABAAAAAAfsABQAAAAAEAwAAAeCAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhwbHhwoP0hWQVJbBmA/U1RBVIFiJyYAdC9qEQgKhGSEAAsgADCGCAE2AiQDOgQgBYlMB4EUDAcbLQ4onoexrSC/2ZyLAa8p8VHB8/x3Vue+V0hVJalMJg2nx/TCrQXxBeqLjQG7FyM1WEa/X1tEXN7cFz9EJEMmMUz3RihWSSKeQCbcIou0izz/C8v+fq3VfajEa9gDD11CImXS7qL/RJFVzC1qiB6KmKeD6TZdQ6IRGv78dL6uSVVCfgni5mzu7kcgQBgAEAQTQRCoL++STTYybkJxNfQxAAIAGu8OdEB9teW2jh4BpgDqFjAeSEByW3zFP0CBBgNMsMCGEDjgggdhiEAUAeIIED7ABTDUEnkIE9Q9ahFgKttcVhApo4ACB4qobHaccgDfEjFO6aaWUhjMLt2SyIvHKoDqoA4CSUwEIYQCEjhAO9R1G6keDeDZGjNo+AhxOjCEGTr1WeIF3kYBiLAOKvkJSMiKX0VdAyQt3SDJClCkxJCHkCzfqyVTriJZLcolS32JZHUekq2TYNkYtCtjYHMQXSxGjXDz2t/yLWXzDzxz+o3zFwDEaN23F+13pyMdQAEaSKAR9vcGq4A4MTSKCElGW+M7UcY7xqkggITb28ZJhlqc9q2twYKTt0NjixBgYvO9BIihEBLYuOFXQzfIQ7dXGUEEEgFDooBfAzqiQbpJrhiWSuKJCRFKYbHCyJKI2G5GiZbNAvgAu5pc3vwx4G+g3aDkhklABiSz0BICXrYghtYhx/cdJ+44rY2oZ0aMNRFz3VZjb6W33F3gzltqtOCV8tTHSpOeXuItfvr5lCdfzFpqtEitvqdcdGGFd28ZqqC0tPbeChGXgrIlnhSWu/eUso4uKWFLugyDzQJhflY4659+WjQ++6x72WUMv9G8mw6QJl7BVxX5fe/kpUsOvnZwee9uQ0cGXYd0o89XB2748sDSnt8d2VphdOTTgceDVvOds0v9P/s7HPq15aGun/6Vllb56f1dl0t1LejqrNkpdRZsG8TOnM5vkBG5oiVyVGnS8LHps5cfNWJs6qKPfaNSxiQNBUm3cKNWROr0GSur7Za31k1vieq7LH11VF+jXdRIasRKflc7jkobm1Z9te1IyZA0pDkhLR98+H37Zf1c/8at+dB7x+7GfVyTfJMPiYztsnl59Y5l4j+0n1RXlpHnF3Tq7HecmNF/CJodEMAikruxiyJaGLvHOdAfoA+oDvpjBm2b91cHGRZMU9n25xEU0A8fgEEAdKI3Q1iDtc034sug5YVMkE2jsE+BIkwSoQ3gxXMqz9tELp48bd0cFKOKS7xYjEuXBnZP5ia7DyiO/X/YI+PQSbt2uSdqAkWL9nQbV1XB94/+uPfdZz8dnXYFBYrcTl2SIR/ybxJNJPz/Gupb0JaZeens2ekC7EKr8t+Ls/P5VJPYJdHKyqfg2nqU6bhlidzcddQV/7MmecTzJ5VPcKXkNKSEogHjYFx6QZ7rQ+FSe8njaiNuOnXS8H2ScQ619c2mC3VTtauL0rRbXd/CkSOP37FY9Zkjz8+GibYUMOEWF+RdrFS8Ecv1SHOpPUPZGEIpjPvFyU5cXKjd6OXqorTqy9GwRd++HVufPGnVsW+aO3vggKZ18jR9sXaTC1PWTEsVUaK0FkNySbTQDqlm2PfDjZcu4aalnSLKjnOoYQ0nUlqqXcGpPu/4VgV/xU2pAqW4BW3qzhQ8/hFKhV2qE3+BKAtDqBXjfgnVdH4y0wg5tbVNRenNdTWOrenWLcupQdmsbq5b+18piTe/xRdp1xbILxNPJGInm2z6hoB21Lal0i+ePTtd7B45+3XhFJ329evskXm7qurUVREotqSluSo/L29d3qDhI4YOQqWhI4YNvBNfsMHeXKemXrxQfKeuPOGRVayA3JtkJKEgbPp+dXUDluddutRYLFoXGXWX6N3WFaGLbQtRSitVYNacTNSdy7AaG/HSaUEANcBoGXNdcZvZsOqQ1icBDv21/gzAoYPHH/WDW0qNR3QTYKEAEHig6o13NXbND06CQPlRtYjGNnSktRc09k1mAMDvAlDKfQjgy6fssInlfzmNAjKkDxoxHOBLdVRAIVt9j4qo+hA1w9T1aNBNTUOTTNUHLbqokE+UAfJXCIGw/IxCSL5GRUJeR40rL/UxTm4Q08H6MbCs70ObuNyIIXrINHQYInF06UUlevTjbQzTh5upiDMzMMogUtEnjPs/Y7jAHCJeB0GBHh04tC6FiB6ZFB1oArUSIoFoqhzCeAN6lHwm0T4C3VVPWvjpSMXReuWesMEcoqrmgtNBGd2noWeV0hNAz9rFeShNJxHGsPa3HXeKTk8b55hahySYHaYKKFFLpCfN8rsoaJn01CR04Gkc+5k7KVTCmClX8Q10HCrUEkVlSX+XO33oQR9609tJ516H497WSobWs5Up6TLaS10/dessIskgJSLiDlWvHVUywpkQ7hdPZqGyiEF0uVQerVcPamT1A3eKXdyI1vG9OoflrSXihZ1qqGE3nhmAgiIbRCQgPLEPtOM3UQwTLYaYYomNlpA44opnjV6jkD6id80OOrzf6BzmMD6eEa1zKyeYG1fzfEf16V6jw9XYOaar1/b2kP/IYX8oR2mcFvv2GtBV3JXgd437AQAA)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-cyrillic-wght-normal-D73BlboJ.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-greek-wght-normal-Bw9x6K1M.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-vietnamese-wght-normal-Bt-aOZkq.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-latin-ext-wght-normal-DBQx-q_a.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-latin-wght-normal-B9CIFXIH.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}html,body{min-height:100%;margin:0}body{background:var(--bg);color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent;font-size:15px;line-height:1.5}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}a{color:var(--accent-text)}img,svg{max-width:100%;display:block}h1,h2,h3,h4{font-family:var(--font-heading);text-wrap:balance;margin:0;line-height:1.25}p{text-wrap:pretty;margin:0}ul,ol{margin:0;padding:0;list-style:none}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}::selection{background:var(--accent);color:var(--accent-ink)}input::placeholder,textarea::placeholder{color:var(--muted);opacity:1}[dir=rtl] .flip-rtl{transform-origin:50%;transform:scaleX(-1)}[lang=ar]{letter-spacing:0}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.num{font-family:var(--font-mono);font-variant-numeric:tabular-nums;direction:ltr;unicode-bidi:isolate}.muted{color:var(--muted)}.small{font-size:12px}@keyframes gh-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes gh-fade{0%{opacity:0}to{opacity:1}}@keyframes gh-spin{to{transform:rotate(360deg)}}@keyframes gh-pulse{0%,to{opacity:.5;transform:scale(.7)}50%{opacity:1;transform:scale(1.2)}}@keyframes gh-ping{0%{opacity:.55;transform:scale(1)}80%,to{opacity:0;transform:scale(2.6)}}.press{transition:transform .12s,background-color .2s,color .2s,border-color .2s,opacity .2s,box-shadow .2s}.press:active:not(:disabled){transform:scale(.96)}html.theming,html.theming *,html.theming :before,html.theming :after{transition:background-color .35s,border-color .35s,color .35s,fill .35s,stroke .35s!important}.logo{flex:none;overflow:visible}.logo--draw .logo__stroke{stroke-dasharray:1 1;stroke-dashoffset:1px;animation:.62s cubic-bezier(.65,0,.35,1) .1s forwards logo-draw}.logo--draw .logo__stroke--2{animation-delay:.3s}.logo--draw .logo__dot{transform-box:fill-box;transform-origin:50%;animation:.42s cubic-bezier(.3,1.6,.5,1) .76s forwards logo-dot;transform:scale(0)}@keyframes logo-draw{to{stroke-dashoffset:0}}@keyframes logo-dot{to{transform:scale(1)}}.btn{background:var(--accent);height:54px;color:var(--accent-ink);white-space:nowrap;border:0;border-radius:18px;justify-content:center;align-items:center;gap:8px;padding:0 22px;font-size:16px;font-weight:700;line-height:1;text-decoration:none;display:inline-flex}.btn:disabled{opacity:.55}.btn--block{width:100%}.btn--sm{border-radius:999px;height:40px;padding:0 16px;font-size:14px}.btn--xs{border-radius:999px;height:34px;padding:0 14px;font-size:13px}.btn--ghost{color:var(--ink);border:1px solid var(--line);background:0 0}.btn--soft{background:var(--surface-2);color:var(--ink)}@media (hover:hover){.btn:not(.btn--ghost):not(.btn--soft):hover{box-shadow:0 10px 26px color-mix(in srgb, var(--accent) 34%, transparent)}.btn--ghost:hover{border-color:var(--accent);color:var(--accent-text)}.btn--soft:hover{background:var(--tile);color:var(--accent-text)}}.icon-btn{border:1px solid var(--line);background:var(--surface);width:38px;height:38px;color:var(--ink);border-radius:50%;flex:none;justify-content:center;align-items:center;padding:0;text-decoration:none;display:inline-flex}@media (hover:hover){.icon-btn:hover{border-color:var(--accent);color:var(--accent-text)}}.when-light{display:var(--light-only,inline-flex)}.when-dark{display:var(--dark-only,none)}.seg{background:var(--surface-2);border-radius:999px;padding:3px;display:inline-flex}.seg button,.seg a{min-width:34px;height:30px;color:var(--muted);background:0 0;border:0;border-radius:999px;justify-content:center;align-items:center;padding:0 12px;font-size:13px;font-weight:700;text-decoration:none;display:inline-flex}.seg [aria-pressed=true],.seg [aria-current=true]{background:var(--surface);color:var(--ink);box-shadow:0 1px 3px #0000001f}.badge{white-space:nowrap;background:var(--tile);color:var(--accent-text);border-radius:999px;align-items:center;gap:6px;padding:4px 11px;font-size:12px;font-weight:600;display:inline-flex}.badge--good{background:color-mix(in srgb, var(--good) 14%, transparent);color:var(--good)}.badge--soft{background:var(--surface-2);color:var(--muted)}.live-dot{background:var(--good);border-radius:50%;flex:none;width:8px;height:8px;position:relative}.live-dot:after{content:"";border-radius:inherit;background:inherit;animation:2.2s cubic-bezier(0,0,.2,1) infinite gh-ping;position:absolute;inset:0}.chip{border:1px solid var(--line);background:var(--surface);height:32px;color:var(--ink);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:0 12px;font-size:13px;font-weight:500;display:inline-flex}.chips{flex-wrap:wrap;gap:6px;display:flex}.card{background:var(--surface);border:1px solid var(--line);border-radius:22px}.card--pad{padding:20px}.list{background:var(--surface);border:1px solid var(--line);border-radius:22px;overflow:hidden}.list>*+*{border-top:1px solid var(--line)}.list-row{text-align:start;width:100%;color:inherit;background:0 0;border:0;align-items:center;gap:14px;padding:14px 16px;text-decoration:none;display:flex}a.list-row{transition:background-color .2s}@media (hover:hover){a.list-row:hover{background:var(--tile)}a.list-row:hover .list-row__chev{color:var(--accent-text);transform:translate(3px)}[dir=rtl] a.list-row:hover .list-row__chev{transform:translate(-3px)}}.list-row__main{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.list-row__title{text-overflow:ellipsis;font-size:15px;font-weight:600;overflow:hidden}.list-row__meta{color:var(--muted);font-size:13px}.list-row__chev{color:var(--muted);flex:none;transition:transform .2s,color .2s}.round-icon{background:var(--surface-2);width:40px;height:40px;color:var(--ink);border-radius:50%;flex:none;justify-content:center;align-items:center;display:flex}.contact-mark{color:#fff;border-radius:50%;flex:none;justify-content:center;align-items:center;display:inline-flex}.form-grid{gap:14px;display:grid}.field{flex-direction:column;gap:6px;min-width:0;display:flex}.field__label{font-size:13px;font-weight:600}.field__label .muted{font-weight:500}.input,.select,.textarea{border:1px solid var(--line);background:var(--surface-2);width:100%;min-height:50px;color:var(--ink);outline-color:var(--accent);border-radius:14px;padding:0 14px;font-size:16px;transition:border-color .2s,box-shadow .2s,background-color .2s}.input:focus,.select:focus,.textarea:focus{border-color:var(--accent);background:var(--surface);box-shadow:0 0 0 4px color-mix(in srgb, var(--accent) 14%, transparent);outline:none}.select{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%23888' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 16px center;background-repeat:no-repeat;padding-inline-end:40px}[dir=rtl] .select{background-position:16px}.textarea{resize:vertical;min-height:132px;padding:12px 14px;line-height:1.6}.input[aria-invalid=true],.textarea[aria-invalid=true]{border-color:var(--bad)}.hint{color:var(--muted);font-size:12px}.error-text{color:var(--bad);font-size:13px}.copy-box{background:var(--surface-2);min-height:52px;font-family:var(--font-mono);direction:ltr;border-radius:16px;align-items:center;gap:8px;padding-block:6px;padding-inline:16px 6px;font-size:14px;display:flex}.copy-box>span,.copy-box>a{word-break:break-all;min-width:0;color:var(--ink);flex:1;text-decoration:none}.copy-box .btn{font-family:var(--font)}.spinner{border:2px solid color-mix(in srgb, currentColor 30%, transparent);border-top-color:currentColor;border-radius:50%;width:18px;height:18px;animation:.8s linear infinite gh-spin}.empty{border:1px dashed var(--line);text-align:center;color:var(--muted);border-radius:20px;flex-direction:column;align-items:center;gap:10px;padding:32px 16px;font-size:14px;display:flex}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}.press{transition:none}.press:active:not(:disabled){transform:none}.logo--draw .logo__stroke{stroke-dashoffset:0;animation:none}.logo--draw .logo__dot{animation:none;transform:none}.live-dot:after,.spinner{animation:none}html.theming *{transition:none!important}}:root{--side-w:248px;--radius:18px;--radius-sm:12px;--top-h:60px}:root[data-preset=nocturne],:root[data-preset=ember]{--radius:14px;--radius-sm:10px}html{scroll-padding-top:80px}body{overflow-x:clip}code,kbd,pre{font-family:var(--font-mono)}.num{font-family:var(--font-mono);font-variant-numeric:tabular-nums}a{text-underline-offset:3px;text-decoration-thickness:1px}.skip{z-index:200;position:fixed;top:10px;left:10px;transform:translateY(-200%)}.skip:focus{transform:none}.dot{background:var(--muted);opacity:.6;border-radius:50%;flex:none;width:8px;height:8px}.rise{animation:.6s cubic-bezier(.2,.8,.2,1) both gh-in;animation-delay:calc(var(--d,0) * 60ms)}.app{min-height:100vh}.side{z-index:40;width:var(--side-w);background:color-mix(in srgb, var(--surface) 92%, transparent);border-inline-end:1px solid var(--line);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);flex-direction:column;gap:6px;padding:18px 14px;display:flex;position:fixed;inset-block:0;inset-inline-start:0}.side__brand{color:inherit;align-items:baseline;gap:8px;padding:4px 8px 14px;text-decoration:none;display:flex}.side__brand .logo{align-self:center}.side__name{font-family:var(--font-heading);letter-spacing:-.02em;font-size:21px;font-weight:700}.side__tag{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-size:10.5px}.side__nav{flex-direction:column;flex:1;gap:2px;display:flex;overflow-y:auto}.side__group{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em;color:var(--muted);padding:14px 10px 6px;font-size:10.5px}.side__link{height:40px;color:var(--muted);border-radius:12px;align-items:center;gap:11px;padding:0 12px;font-size:14.5px;font-weight:600;text-decoration:none;transition:background-color .15s,color .15s;display:flex}.side__link:hover{color:var(--ink);background:var(--surface-2)}.side__link[aria-current=page]{background:var(--tile);color:var(--accent-text)}.side__link--small{height:36px;font-size:13.5px}.side__foot{border-top:1px solid var(--line);flex-direction:column;gap:6px;padding-top:10px;display:flex}.bridge-chip{border:1px solid var(--line);color:var(--ink);background:var(--surface-2);border-radius:12px;align-items:center;gap:9px;padding:9px 12px;font-size:13px;font-weight:600;text-decoration:none;display:flex}.bridge-chip__text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.bridge-chip--warn .dot{background:var(--warn);opacity:1}.bridge-chip:hover{border-color:var(--accent)}.main-col{flex-direction:column;min-width:0;min-height:100vh;margin-inline-start:var(--side-w);display:flex}.topbar{z-index:30;height:var(--top-h);background:color-mix(in srgb, var(--bg) 82%, transparent);border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(16px)saturate(1.3);backdrop-filter:blur(16px)saturate(1.3);align-items:center;gap:12px;padding:0 22px;display:flex;position:sticky;top:0}.topbar__menu,.topbar__brand{display:none}.topbar__brand{color:inherit;font-family:var(--font-heading);align-items:center;gap:8px;font-size:17px;font-weight:700;text-decoration:none}.search-btn{border:1px solid var(--line);background:var(--surface);max-width:520px;height:40px;color:var(--muted);text-align:start;border-radius:999px;flex:1;align-items:center;gap:10px;padding:0 12px 0 14px;font-size:14px;display:flex}.search-btn span{white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.search-btn:hover{border-color:var(--accent);color:var(--ink)}kbd{border:1px solid var(--line);background:var(--surface-2);color:var(--muted);border-radius:7px;padding:3px 7px;font-size:11px}.topbar__right{align-items:center;gap:8px;margin-inline-start:auto;display:flex}.xp-chip{border:1px solid var(--line);background:var(--surface);height:38px;color:var(--ink);border-radius:999px;align-items:center;gap:7px;padding:0 12px 0 8px;font-size:13px;font-weight:700;text-decoration:none;display:inline-flex}.xp-chip:hover{border-color:var(--accent)}.xp-chip__streak{color:var(--warn);font-family:var(--font-mono);align-items:center;gap:2px;display:inline-flex}.content{isolation:isolate;flex:1;padding:28px 28px 60px;position:relative}.content:before{content:"";z-index:-1;pointer-events:none;background-image:radial-gradient(color-mix(in srgb, var(--ink) 12%, transparent) 1px, transparent 1.5px);background-size:22px 22px;height:520px;position:absolute;inset:0 0 auto;-webkit-mask-image:radial-gradient(70% 70% at 40% 0,#000,#0000 75%);mask-image:radial-gradient(70% 70% at 40% 0,#000,#0000 75%)}:root[data-preset=nocturne] .content:before{background-image:linear-gradient(to right, color-mix(in srgb, var(--ink) 7%, transparent) 1px, transparent 1px), linear-gradient(to bottom, color-mix(in srgb, var(--ink) 7%, transparent) 1px, transparent 1px);background-size:64px 64px}.foot{border-top:1px solid var(--line);color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:8px;padding:18px 28px 26px;font-size:12.5px;display:flex}.foot span{align-items:center;gap:8px;display:inline-flex}.tabbar,.scrim{display:none}@media (max-width:1023px){.side{transition:transform .25s;transform:translate(-105%);box-shadow:0 0 60px #0000004d}.side.is-open{transform:none}.scrim{z-index:35;background:#00000073;border:0;display:block;position:fixed;inset:0}.main-col{margin-inline-start:0}.topbar{padding:0 12px}.topbar__menu,.topbar__brand{display:inline-flex}.search-btn span,.search-btn kbd{display:none}.search-btn{flex:none;justify-content:center;width:40px;margin-inline-start:auto;padding:0}.topbar__right{margin-inline-start:0}.content{padding:20px 16px 110px}.tabbar{z-index:30;bottom:calc(12px + env(safe-area-inset-bottom,0px));background:color-mix(in srgb, var(--surface) 86%, transparent);border:1px solid var(--line);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-radius:31px;grid-template-columns:repeat(5,1fr);gap:2px;height:62px;padding:5px;display:grid;position:fixed;inset-inline:12px;box-shadow:0 10px 30px #0000002e}.tabbar a,.tabbar button{color:var(--muted);background:0 0;border:0;border-radius:26px;flex-direction:column;justify-content:center;align-items:center;gap:2px;font-size:10.5px;font-weight:600;text-decoration:none;display:flex}.tabbar a[aria-current=page]{background:var(--tile);color:var(--accent-text)}.foot{padding-bottom:100px}}.page{max-width:1040px;margin:0 auto}.page--wide{max-width:1320px}.page-head{flex-direction:column;gap:10px;max-width:820px;margin-bottom:26px;display:flex}.eyebrow{color:var(--muted);align-items:center;gap:8px;font-size:13px;font-weight:600;display:inline-flex}.eyebrow a{color:var(--accent-text);text-decoration:none}:root[data-preset=nocturne] .eyebrow,:root[data-preset=nocturne] .badge,:root[data-preset=nocturne] .visual__kicker{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;font-size:11.5px}.page-title{letter-spacing:-.025em;font-size:clamp(28px,4vw,42px);font-weight:700;line-height:1.1}.page-lead{color:var(--muted);max-width:70ch;font-size:16.5px;line-height:1.65}.page-head__actions{flex-wrap:wrap;gap:8px;margin-top:6px;display:flex}.side-section{margin-top:40px}.side-section>h2,.stage__head h2,.home-sec__head h2{letter-spacing:-.01em;margin-bottom:14px;font-size:20px;font-weight:700}.cards{grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:12px;display:grid}.cards--compact{grid-template-columns:repeat(auto-fill,minmax(min(100%,250px),1fr))}.tile{border-radius:var(--radius);border:1px solid var(--line);background:var(--surface);color:inherit;gap:14px;padding:18px;text-decoration:none;transition:border-color .2s,transform .2s;display:flex}.tile:hover{border-color:color-mix(in srgb, var(--accent) 50%, var(--line));transform:translateY(-1px)}.tile__icon,.track__icon{background:var(--tile);width:42px;height:42px;color:var(--accent-text);border-radius:12px;flex:none;place-items:center;display:grid}.tile__body{flex-direction:column;gap:4px;min-width:0;display:flex}.tile__title{font-size:15.5px;font-weight:700}.tile__text{color:var(--muted);font-size:13.5px;line-height:1.5}.tile__meta{color:var(--muted);align-items:center;gap:8px;margin-top:4px;font-size:12px;display:flex}.lvl{text-transform:capitalize;background:var(--surface-2);height:20px;color:var(--muted);border-radius:999px;align-items:center;padding:0 8px;font-size:11px;font-weight:700;display:inline-flex}.lvl--beginner{color:var(--good);background:color-mix(in srgb, var(--good) 13%, transparent)}.lvl--intermediate{color:var(--accent-text);background:var(--tile)}.lvl--advanced{color:var(--warn);background:color-mix(in srgb, var(--warn) 14%, transparent)}.lvl--expert{color:var(--bad);background:color-mix(in srgb, var(--bad) 13%, transparent)}.spot{isolation:isolate;position:relative}.loading{color:var(--muted);align-items:center;gap:10px;padding:30px 0;display:flex}.chip.is-on{background:var(--tile);color:var(--accent-text);border-color:#0000}a.chip{text-decoration:none}.chip:hover{border-color:var(--accent)}.icon-btn--sm{width:30px;height:30px;font-size:13px}.input--sm,.select--sm{border-radius:11px;min-height:38px;padding:0 11px;font-size:14px}.select--sm{background-position:right 10px center;padding-inline-end:30px}.row-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.form-row{grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));align-items:end;gap:12px;display:grid}.check-row{cursor:pointer;align-items:center;gap:9px;margin:12px 0;font-size:14px;font-weight:500;display:inline-flex}.check-row input{width:17px;height:17px;accent-color:var(--accent)}.panel{border:1px solid var(--line);background:var(--surface);border-radius:var(--radius);padding:18px}.panel h3{margin-bottom:12px;font-size:15px;font-weight:700}.panel__head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;display:flex}.panel__head h3{margin:0}.stats{grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr));gap:12px;margin-bottom:16px;display:grid}.stat{border:1px solid var(--line);background:var(--surface);border-radius:var(--radius);flex-direction:column;gap:4px;padding:16px;display:flex}.stat__v{letter-spacing:-.02em;color:var(--accent-text);font-size:26px;font-weight:700}.stat__l{color:var(--muted);font-size:13px}.meter{background:var(--surface-2);border-radius:3px;height:6px;margin-top:6px;overflow:hidden}.meter i{background:var(--accent);border-radius:inherit;height:100%;transition:width .5s;display:block}.toasts{z-index:120;bottom:20px;flex-direction:column;gap:8px;max-width:min(420px,100vw - 32px);display:flex;position:fixed;inset-inline-end:20px}.toast{background:var(--surface);border:1px solid var(--line);border-radius:14px;align-items:center;gap:10px;padding:12px 14px;font-size:14px;animation:.25s both gh-in;display:flex;box-shadow:0 14px 40px #00000040}.toast--good svg{color:var(--good)}.toast--bad{border-color:color-mix(in srgb, var(--bad) 50%, var(--line))}.toast--bad svg{color:var(--bad)}.toast__action{white-space:nowrap;margin-inline-start:auto;font-weight:700}@media (max-width:1023px){.toasts{bottom:90px;inset-inline:16px}}.dialog{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:22px;width:min(620px,100vw - 24px);max-height:calc(100vh - 40px);padding:0}.dialog--wide{width:min(860px,100vw - 24px)}.dialog::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0000008c}.dialog__inner{flex-direction:column;max-height:calc(100vh - 40px);display:flex}.dialog__head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:10px;padding:16px 18px;display:flex}.dialog__head h2{font-size:18px}.dialog__body{padding:16px 18px 18px;overflow:auto}.dialog__actions{justify-content:flex-end;gap:8px;margin-top:14px;display:flex}.run-output{background:var(--surface-2);white-space:pre-wrap;border-radius:12px;max-height:280px;margin-top:12px;padding:12px 14px;font-size:12.5px;overflow:auto}.run-output--error{color:var(--bad)}.run-output--done{border-inline-start:3px solid var(--good)}.code{border:1px solid var(--line);border-radius:var(--radius-sm);background:color-mix(in srgb, var(--surface-2) 70%, var(--bg));margin:14px 0;overflow:hidden}.code__bar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:8px;padding:6px 8px 6px 14px;display:flex}.code__lang{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-size:11px}.code__actions{gap:4px;display:flex}.code__btn{height:26px;color:var(--muted);background:0 0;border:1px solid #0000;border-radius:8px;padding:0 10px;font-size:12px;font-weight:600}.code__btn:hover{color:var(--ink);background:var(--surface);border-color:var(--line)}.code__btn--run{color:var(--accent-text)}.code pre{margin:0;padding:12px 14px;font-size:13px;line-height:1.65;overflow-x:auto}.code--compact pre{padding:10px 12px;font-size:12.5px}.code--compact{margin:8px 0}.tk-path{color:var(--accent-text);font-weight:600}.tk-cmd{color:color-mix(in srgb, var(--accent-text) 55%, var(--ink));font-weight:700}.tk-kw{color:#c084fc;font-weight:600}.tk-param{color:#7dd3fc}.tk-op,.tk-punct{color:var(--muted)}.tk-val{color:var(--ink)}.tk-str{color:#fbbf77}.tk-esc{color:#fb923c}.tk-num{color:#86efac}.tk-var{color:#f9a8d4}.tk-com{color:var(--muted);font-style:italic}:root[data-mode=light] .tk-param,:root:not([data-mode]) [data-default=system] .tk-param{color:#0369a1}@media (prefers-color-scheme:light){:root:not([data-mode=dark]):not([data-default=dark]) .tk-param{color:#0369a1}:root:not([data-mode=dark]):not([data-default=dark]) .tk-str{color:#b45309}:root:not([data-mode=dark]):not([data-default=dark]) .tk-num{color:#15803d}:root:not([data-mode=dark]):not([data-default=dark]) .tk-kw{color:#7c3aed}:root:not([data-mode=dark]):not([data-default=dark]) .tk-var{color:#be185d}}:root[data-mode=light] .tk-param{color:#0369a1}:root[data-mode=light] .tk-str{color:#b45309}:root[data-mode=light] .tk-num{color:#15803d}:root[data-mode=light] .tk-kw{color:#7c3aed}:root[data-mode=light] .tk-var{color:#be185d}.prose{max-width:76ch;font-size:16px;line-height:1.75}.prose>*+*{margin-top:14px}.prose h2{letter-spacing:-.015em;margin-top:38px;font-size:23px;position:relative}.prose h3{margin-top:28px;font-size:18px}.prose .anchor{color:var(--muted);opacity:0;font-weight:400;text-decoration:none;position:absolute;inset-inline-start:-22px}.prose h2:hover .anchor,.prose h3:hover .anchor{opacity:.7}.prose h3{position:relative}.prose ul,.prose ol{padding-inline-start:22px}.prose ul{list-style:outside}.prose ol{list-style:decimal}.prose li+li{margin-top:6px}.prose li::marker{color:var(--accent-text)}.prose :not(pre)>code{background:var(--surface-2);border:1px solid var(--line);word-break:break-word;border-radius:6px;padding:2px 6px;font-size:.86em}.prose strong{font-weight:700}.prose blockquote{border-inline-start:3px solid var(--line);color:var(--muted);margin:0;padding:4px 16px}.prose hr{border:0;border-top:1px solid var(--line);margin:28px 0}.table-wrap{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);margin:14px 0;overflow-x:auto}.prose table,.tbl{border-collapse:collapse;width:100%;font-size:14px;line-height:1.5}.prose th,.prose td,.tbl th,.tbl td{border-bottom:1px solid var(--line);text-align:start;vertical-align:top;padding:10px 12px}.prose th,.tbl th{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);background:var(--surface-2);white-space:nowrap;font-size:12px;font-weight:700}.prose tr:last-child td,.tbl tr:last-child td{border-bottom:0}.tbl--compact td,.tbl--compact th{padding:7px 10px;font-size:13px}.tbl tr.is-hl td{background:var(--tile)}.tbl tr.is-dim td{opacity:.5}.tbl__actions{white-space:nowrap;text-align:end}.callout{border-radius:var(--radius-sm);border:1px solid var(--line);border-inline-start:4px solid var(--accent);background:color-mix(in srgb, var(--accent) 6%, var(--surface));padding:12px 16px;font-size:15px}.callout p,.callout ul{margin:0}.callout ul{padding-inline-start:18px;list-style:outside}.callout__title{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em;color:var(--accent-text);margin-bottom:4px;font-size:11px;font-weight:700}.callout--warning,.callout--caution{border-inline-start-color:var(--warn);background:color-mix(in srgb, var(--warn) 8%, var(--surface))}.callout--warning .callout__title,.callout--caution .callout__title{color:var(--warn)}.callout--caution{border-inline-start-color:var(--bad)}.callout--caution .callout__title{color:var(--bad)}.callout--note .callout__title{color:var(--muted)}.callout--note{border-inline-start-color:var(--muted);background:var(--surface)}.callout--important{border-inline-start-color:#a78bfa}.stage{margin-top:30px}.stage__head{flex-wrap:wrap;align-items:baseline;gap:12px;display:flex}.tracks{grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr));gap:12px;display:grid}.track{border-radius:var(--radius);border:1px solid var(--line);background:var(--surface);color:inherit;flex-direction:column;gap:8px;padding:18px;text-decoration:none;transition:border-color .2s,transform .2s;display:flex}.track:hover{border-color:color-mix(in srgb, var(--accent) 55%, var(--line));transform:translateY(-2px)}.track__top{justify-content:space-between;align-items:center;display:flex}.track__count{color:var(--muted);font-size:13px}.track__title{font-size:17px;font-weight:700}.track__blurb{color:var(--muted);flex:1;font-size:13.5px;line-height:1.55}.track__bar{background:var(--surface-2);border-radius:3px;height:5px;display:block;overflow:hidden}.track__bar span{background:var(--accent);border-radius:inherit;height:100%;display:block}.track__meta{color:var(--muted);font-size:12px;font-family:var(--font-mono)}.lessons{flex-direction:column;gap:8px;display:flex}.lesson-row{border-radius:var(--radius);border:1px solid var(--line);background:var(--surface);color:inherit;align-items:center;gap:14px;padding:14px 16px;text-decoration:none;transition:border-color .2s;display:flex}.lesson-row:hover{border-color:var(--accent)}.lesson-row__n{background:var(--surface-2);width:32px;height:32px;font-weight:700;font-family:var(--font-mono);border-radius:50%;flex:none;place-items:center;font-size:13px;display:grid}.lesson-row.is-done .lesson-row__n{background:var(--accent);color:var(--accent-ink)}.lesson-row__main{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.lesson-row__title{font-size:15.5px;font-weight:700}.lesson-row__sum{color:var(--muted);font-size:13.5px}.lesson-row__meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:12px;font-size:12px;display:flex}.lesson-row__meta span{align-items:center;gap:4px;display:inline-flex}.lesson-row__chev{color:var(--muted);flex:none}.lesson{max-width:900px;margin:0 auto}.lesson__head{flex-direction:column;gap:10px;margin-bottom:18px;display:flex}.lesson__meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:12px;font-size:13px;display:flex}.lesson__meta span{align-items:center;gap:5px;display:inline-flex}.toc{flex-wrap:wrap;gap:6px;margin-top:6px;display:flex}.toc a{border:1px solid var(--line);color:var(--muted);border-radius:999px;padding:4px 10px;font-size:12.5px;text-decoration:none}.toc a:hover{color:var(--accent-text);border-color:var(--accent)}.lesson__visual{margin:22px 0}.lesson__refs{flex-wrap:wrap;align-items:center;gap:8px;margin-top:30px;display:flex}.lesson__done{justify-content:center;margin:36px 0 18px;display:flex}.lesson__nav{grid-template-columns:1fr 1fr;gap:12px;display:grid}.pager{border-radius:var(--radius);border:1px solid var(--line);background:var(--surface);color:var(--ink);flex-direction:column;gap:4px;padding:14px 16px;font-size:14px;font-weight:600;text-decoration:none;display:flex}.pager span:first-child{align-items:center;gap:4px;display:inline-flex}.pager--next{text-align:end;align-items:flex-end}.pager:hover{border-color:var(--accent)}.quiz{flex-direction:column;gap:14px;margin:16px 0;display:flex}.quiz__q{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);padding:16px}.quiz__text{gap:10px;margin-bottom:12px;font-size:15.5px;font-weight:600;line-height:1.55;display:flex}.quiz__n{background:var(--tile);width:24px;height:24px;color:var(--accent-text);font-size:12.5px;font-family:var(--font-mono);border-radius:7px;flex:none;place-items:center;display:grid}.quiz__opts{flex-direction:column;gap:8px;display:flex}.quiz__opt{text-align:start;border:1px solid var(--line);background:var(--surface-2);color:var(--ink);border-radius:12px;align-items:flex-start;gap:10px;padding:11px 13px;font-size:14.5px;line-height:1.5;display:flex}.quiz__opt:not(:disabled):hover{border-color:var(--accent)}.quiz__mark{background:var(--surface);width:22px;height:22px;color:var(--muted);border-radius:50%;flex:none;place-items:center;font-size:11.5px;font-weight:700;display:grid}.quiz__opt--right{border-color:var(--good);background:color-mix(in srgb, var(--good) 12%, var(--surface))}.quiz__opt--right .quiz__mark{background:var(--good);color:#fff}.quiz__opt--wrong{border-color:var(--bad);background:color-mix(in srgb, var(--bad) 10%, var(--surface))}.quiz__opt--wrong .quiz__mark{background:var(--bad);color:#fff}.quiz__opt--dim{opacity:.55}.quiz__opt:disabled{cursor:default}.quiz__why{background:var(--surface-2);border-radius:10px;margin-top:10px;padding:10px 12px;font-size:14px;line-height:1.6}.quiz__why.is-right strong{color:var(--good)}.quiz__why.is-wrong strong{color:var(--bad)}.quiz__foot{align-items:center;gap:12px;font-size:14px;display:flex}.quiz__foot .num{color:var(--accent-text);font-size:20px;font-weight:700}.quiz code,.lab code,.quiz__why code{background:var(--surface);border:1px solid var(--line);border-radius:5px;padding:1px 5px;font-size:.88em}.lab{border:1px solid color-mix(in srgb, var(--accent) 35%, var(--line));border-radius:var(--radius);background:var(--surface);margin:16px 0;padding:16px}.lab__goal{color:var(--accent-text);align-items:flex-start;gap:10px;font-weight:600;display:flex}.lab__goal svg{flex:none;margin-top:2px}.lab__hint{color:var(--muted);margin-top:8px;font-size:13.5px}.lab__steps{flex-direction:column;gap:12px;margin-top:14px;display:flex}.lab__step{border-top:1px dashed var(--line);padding-top:12px}.lab__head{align-items:center;gap:10px;display:flex}.lab__head strong{flex:1;font-size:14.5px}.lab__n{background:var(--surface-2);width:26px;height:26px;font-family:var(--font-mono);border-radius:50%;flex:none;place-items:center;font-size:12px;font-weight:700;display:grid}.lab__step.is-ok .lab__n{background:var(--good);color:#fff}.lab__note{color:var(--muted);font-size:13.5px;line-height:1.6}.lab__result{margin-top:4px;font-size:13px;font-weight:600}.lab__result.is-ok{color:var(--good)}.lab__result.is-bad{color:var(--bad)}.visual{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);padding:18px;overflow:hidden}.visual__head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:8px;display:flex}.visual__kicker{color:var(--accent-text);font-size:12px;font-weight:600}.visual__title{margin-top:2px;font-size:18px;font-weight:700}.visual__intro{color:var(--muted);margin-bottom:10px;font-size:14px;line-height:1.6}.visual__intro code,.visual__caption code{background:var(--surface-2);border-radius:5px;padding:1px 5px;font-size:.88em}.visual__stage{border-radius:var(--radius-sm);background:color-mix(in srgb, var(--bg) 55%, var(--surface));border:1px solid var(--line);padding:8px;overflow-x:auto}.visual__stage svg{width:100%;min-width:520px;height:auto;display:block}.visual__caption{border-radius:var(--radius-sm);background:var(--surface-2);min-height:72px;margin-top:12px;padding:14px 16px;font-size:14.5px;line-height:1.6}.visual__caption.is-idle{align-items:center;display:flex}.visual__caption p+p,.visual__caption p+dl,.visual__caption .hdr+p{margin-top:8px}.visual__caption .muted{align-items:center;gap:6px;display:inline-flex}.visual__step{align-items:center;gap:10px;margin-bottom:4px;display:flex}.visual__note{color:var(--accent-text);font-weight:600}.vctl{align-items:center;gap:6px;display:flex}.vctl__count{color:var(--muted);text-align:end;min-width:38px;font-size:12px}.pill{height:22px;font-size:11px;font-weight:700;font-family:var(--font-mono);text-transform:uppercase;background:var(--tile);color:var(--accent-text);border-radius:999px;align-items:center;padding:0 9px;display:inline-flex}.pill--soft{background:var(--surface-2);color:var(--muted);text-transform:none;font-family:var(--font);font-weight:600}.pill--bcast{background:color-mix(in srgb, var(--warn) 18%, transparent);color:var(--warn)}.pill--media{color:#38bdf8;background:#38bdf82e}.pill--error{background:color-mix(in srgb, var(--bad) 16%, transparent);color:var(--bad)}.fields{grid-template-columns:repeat(auto-fill,minmax(min(100%,220px),1fr));gap:6px 18px;margin-top:8px;display:grid}.fields>div{flex-direction:column;gap:1px;min-width:0;display:flex}.fields dt{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:11.5px;font-weight:600}.fields dd{overflow-wrap:anywhere;margin:0;font-size:13.5px}.fields--grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,170px),1fr));margin-top:14px}.side-table{border:1px dashed var(--line);background:var(--surface);border-radius:10px;margin-top:10px;padding:10px 12px}.side-table__title{font-family:var(--font-mono);color:var(--accent-text);text-transform:uppercase;letter-spacing:.06em;font-size:11px}.ladder{font-family:var(--font)}.ladder__actor{fill:var(--surface);stroke:var(--line);stroke-width:1.5px}.ladder__name{fill:var(--ink);font-size:13px;font-weight:700}.ladder__sub{fill:var(--muted);font-size:10.5px;font-family:var(--font-mono)}.ladder__life{stroke:var(--line);stroke-width:2px;stroke-dasharray:4 5}.ladder__msg{color:var(--accent)}.ladder__line{stroke:currentColor;stroke-width:2px;fill:none}.ladder__msg--bcast{color:var(--warn)}.ladder__msg--media{color:#38bdf8}.ladder__msg--media .ladder__line{stroke-dasharray:.012 .01}.ladder__msg--error{color:var(--bad)}.ladder__msg:not(.is-active){opacity:.55}.ladder__label{fill:var(--ink);font-size:12px;font-weight:600;font-family:var(--font-mono)}.ladder__note{fill:var(--tile);stroke:var(--accent);stroke-width:1px}.ladder__msg--error .ladder__note{fill:color-mix(in srgb, var(--bad) 12%, transparent);stroke:var(--bad)}.ladder__line.is-drawing{stroke-dasharray:1;animation:.7s both lad-draw}.ladder__dot{fill:currentColor;animation:.7s both lad-move}@keyframes lad-draw{0%{stroke-dashoffset:1px}to{stroke-dashoffset:0}}@keyframes lad-move{0%{transform:translate(0)}to{transform:translateX(var(--dx));opacity:.2}}.topo__link line{stroke:var(--line);stroke-width:3px}.topo__link.is-dashed line{stroke-dasharray:7 7}.topo__link.is-bad line{stroke:var(--bad)}.topo__link.is-good line{stroke:var(--good)}.topo__link text{fill:var(--muted);font-size:11px;font-family:var(--font-mono)}.topo__disc{fill:var(--surface);stroke:var(--line);stroke-width:2px;transition:stroke .3s,fill .3s}.topo__node{color:var(--ink)}.topo__node.is-accent .topo__disc{stroke:color-mix(in srgb, var(--accent) 60%, var(--line))}.topo__node.is-active .topo__disc{stroke:var(--accent);fill:var(--tile)}.topo__node.is-active{color:var(--accent-text)}.topo__name{fill:var(--ink);font-size:13px;font-weight:700}.topo__sub{fill:var(--muted);font-size:10.5px;font-family:var(--font-mono)}.topo__packet{animation:.9s cubic-bezier(.45,0,.2,1) both topo-move}.topo__packet rect,.topo__packet circle{fill:var(--accent)}.topo__packet path{fill:none;stroke:var(--accent-ink);stroke-width:2px}.topo__packet.is-error rect{fill:var(--bad)}@keyframes topo-move{0%{transform:translate(var(--fx), var(--fy))}to{transform:translate(var(--tx), var(--ty))}}.topo__process circle{fill:none;stroke:var(--accent);stroke-width:2.5px;stroke-dasharray:8 6;transform-box:fill-box;transform-origin:50%;animation:6s linear infinite gh-spin}.topo__process text{fill:var(--accent-text);font-size:12px;font-weight:700;font-family:var(--font-mono)}.hdr{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;display:flex}.hdr__f{background:var(--surface);border:1px solid var(--line);border-radius:10px;flex-direction:column;min-width:0;padding:6px 10px;display:flex}.hdr__f span,.hdr__inner span{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-size:10px;font-weight:700}.hdr__f b{overflow-wrap:anywhere;font-size:13px}.hdr__f.is-changed,.hdr__inner.is-changed{border-color:var(--accent);animation:1.2s hdr-flash}.hdr__f.is-changed b{color:var(--accent-text)}@keyframes hdr-flash{0%,40%{background:color-mix(in srgb, var(--accent) 30%, var(--surface))}to{background:var(--surface)}}.hdr__arrow{color:var(--muted)}.hdr__proto{font-family:var(--font-mono);background:var(--tile);color:var(--accent-text);border-radius:999px;padding:4px 9px;font-size:12px;font-weight:700}.hdr__inner{border:1px dashed var(--line);background:var(--surface);border-radius:10px;flex-basis:100%;padding:6px 10px;font-size:13px}.hdr.is-error .hdr__f{border-color:color-mix(in srgb, var(--bad) 60%, var(--line))}.seg--wrap{border-radius:16px;flex-wrap:wrap;margin-bottom:10px}.pflow__edge{stroke:var(--line);stroke-width:3px;fill:none}.pflow__edge.is-lit{stroke:var(--accent);stroke-width:3.5px}.pflow__edge.is-fast{stroke-dasharray:9 7;stroke:var(--warn)}.pflow__hook rect{fill:var(--surface);stroke:var(--line);stroke-width:1.5px;transition:fill .2s,stroke .2s,opacity .2s}.pflow__hook.is-on rect{stroke:color-mix(in srgb, var(--accent) 60%, var(--line))}.pflow__hook.is-off{opacity:.4}.pflow__hook.is-active rect{fill:var(--tile);stroke:var(--accent);stroke-width:2.5px}.pflow__title{fill:var(--ink);font-size:12.5px;font-weight:700;font-family:var(--font-mono)}.pflow__chip{fill:var(--surface-2);stroke:none}.pflow__chip--dstnat,.pflow__chip--srcnat{fill:color-mix(in srgb, var(--accent) 22%, var(--surface-2))}.pflow__chip--filter{fill:color-mix(in srgb, var(--bad) 18%, var(--surface-2))}.pflow__chip--mangle{fill:color-mix(in srgb, #38bdf8 18%, var(--surface-2))}.pflow__chipt{fill:var(--ink);font-size:10.5px;font-family:var(--font-mono)}.subnet__input{flex-wrap:wrap;align-items:flex-end;gap:14px;display:flex}.subnet__slider{width:min(100%,320px)}.subnet__slider input,.field input[type=range]{width:100%;accent-color:var(--accent);height:30px}.subnet__split{max-width:360px;margin-top:16px}.bits{font-family:var(--font-mono);flex-wrap:wrap;gap:3px;margin:16px 0 8px;display:flex}.bit{border-radius:6px;place-items:center;width:22px;height:30px;font-size:14px;font-style:normal;font-weight:700;display:inline-grid}.bit--net{background:var(--accent);color:var(--accent-ink)}.bit--host{background:var(--surface-2);color:var(--muted);border:1px solid var(--line)}.bit--gap{margin-inline-end:8px}.bits-legend{color:var(--muted);gap:16px;font-size:12.5px;display:flex}.bits-legend span{align-items:center;gap:6px;display:inline-flex}.bits-legend .bit{width:18px;height:22px;font-size:11px}.fwsim__pkt{flex-wrap:wrap;align-items:center;gap:6px;margin:12px 0;display:flex}.fwsim__rules{flex-direction:column;gap:6px;display:flex}.fwrule{border:1px solid var(--line);background:var(--surface-2);border-radius:12px;align-items:flex-start;gap:10px;padding:10px 12px;transition:border-color .2s,opacity .2s;display:flex}.fwrule__n{width:22px;color:var(--muted);flex:none;padding-top:2px;font-size:12px}.fwrule__main{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.fwrule__text{overflow-wrap:anywhere;font-size:12px}.fwrule__comment{color:var(--muted);font-size:12.5px}.fwrule__why{font-size:12px;font-weight:600}.fwrule__ctl{gap:4px;display:flex}.fwrule--other{opacity:.35}.fwrule--skipped{opacity:.45}.fwrule--miss .fwrule__why{color:var(--muted)}.fwrule--hit-accept{border-color:var(--good);background:color-mix(in srgb, var(--good) 10%, var(--surface))}.fwrule--hit-accept .fwrule__why{color:var(--good)}.fwrule--hit-drop{border-color:var(--bad);background:color-mix(in srgb, var(--bad) 10%, var(--surface))}.fwrule--hit-drop .fwrule__why{color:var(--bad)}.fwrule.is-disabled .fwrule__text{text-decoration:line-through}.fwsim__verdict{font-weight:700;font-family:var(--font-mono);border-radius:12px;align-items:center;gap:10px;margin:12px 0;padding:12px 14px;display:flex}.fwsim__verdict.is-accept{background:color-mix(in srgb, var(--good) 14%, var(--surface));color:var(--good)}.fwsim__verdict.is-drop{background:color-mix(in srgb, var(--bad) 14%, var(--surface));color:var(--bad)}.fwsim__add summary{cursor:pointer;margin:6px 0;font-size:14px;font-weight:600}.fwsim__form{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px;margin:8px 0 4px;display:grid}.fwsim__form .select,.fwsim__form .input{border-radius:10px;min-height:40px;font-size:13.5px}.vlan__send{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-bottom:14px;display:grid}.vlan__ports{grid-template-columns:repeat(auto-fill,minmax(min(100%,210px),1fr));gap:10px;display:grid}.vport{border:1px solid var(--line);background:var(--surface-2);border-radius:14px;flex-direction:column;gap:8px;padding:12px;transition:border-color .3s,background-color .3s;display:flex}.vport__head{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.vport__head .muted{flex-basis:100%}.vport__cfg select{border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:3px 6px}.vport__tags{gap:4px;display:flex}.vport--source{border-color:var(--accent)}.vport--tagged,.vport--untagged{border-color:color-mix(in srgb, var(--good) 60%, var(--line));background:color-mix(in srgb, var(--good) 8%, var(--surface-2))}.vport__out{align-items:center;gap:5px;min-height:22px;font-size:12.5px;font-weight:600;display:flex}.vtag{font-family:var(--font-mono);border:1px solid var(--line);background:var(--surface);color:var(--muted);border-radius:7px;padding:3px 8px;font-size:11.5px;font-weight:700}.vtag.is-on{color:#fff;border-color:#0000}.vtag--v10.is-on{background:#2563eb}.vtag--v20.is-on{background:#9333ea}.vtag--v30.is-on{background:#d97706}.vout-untagged{color:var(--good)}.vlan__verdict{background:var(--surface-2);border-radius:12px;margin:12px 0;padding:12px 14px;font-size:14px;line-height:1.6}.vlan__verdict.is-drop{background:color-mix(in srgb, var(--bad) 12%, var(--surface));color:var(--bad);font-weight:600}.osi{grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:16px;margin-top:10px;display:grid}@media (max-width:760px){.osi{grid-template-columns:1fr}}.osi__stack{flex-direction:column;gap:6px;display:flex}.osi__layer{border:1px solid var(--line);background:var(--surface-2);color:var(--muted);text-align:start;border-radius:12px;align-items:center;gap:10px;padding:10px 12px;display:flex}.osi__layer.is-on{color:var(--ink);border-color:color-mix(in srgb, var(--accent) 40%, var(--line))}.osi__layer.is-active{background:var(--tile);border-color:var(--accent)}.osi__n{color:var(--accent-text);width:26px;font-size:12px}.osi__name{flex:1;font-weight:700}.osi__unit{font-size:12px;font-family:var(--font-mono)}.osi__wrap{align-items:center;display:flex}.osi__box{border:2px solid color-mix(in srgb, var(--accent) 50%, var(--line));background:color-mix(in srgb, var(--accent) 5%, transparent);border-radius:12px;flex-direction:column;flex:1;gap:6px;padding:8px;animation:.4s both gh-in;display:flex}.osi__hdr{color:var(--accent-text);font-size:11.5px}.pcq{flex-direction:column;gap:10px;margin-top:14px;display:flex}.pcq__row{grid-template-columns:minmax(0,1.3fr) minmax(0,2fr) 120px;align-items:center;gap:12px;display:grid}.pcq__row.is-off{opacity:.45}.pcq__who{align-items:center;gap:8px;font-size:13.5px;font-weight:600;display:flex}.pcq__who input{accent-color:var(--accent)}.pcq__bar{background:var(--surface-2);border-radius:7px;height:14px;overflow:hidden}.pcq__fill{border-radius:inherit;height:100%;transition:width .6s cubic-bezier(.2,.8,.2,1);display:block}.pcq__fill.is-ok{background:var(--accent)}.pcq__fill.is-short{background:var(--warn)}.pcq__val{text-align:end;font-size:13px}.pcq__val small{color:var(--muted)}@media (max-width:640px){.pcq__row{grid-template-columns:1fr;gap:4px}.pcq__val{text-align:start}}.wizard{grid-template-columns:minmax(0,420px) minmax(0,1fr);align-items:start;gap:22px;display:grid}@media (max-width:1100px){.wizard{grid-template-columns:1fr}}.wizard__form{flex-direction:column;gap:14px;display:flex}.wizard__out{top:calc(var(--top-h) + 14px);flex-direction:column;gap:12px;min-width:0;display:flex;position:sticky}@media (max-width:1100px){.wizard__out{position:static}}.wsec{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);min-width:0;margin:0;padding:16px}.wsec legend{padding:0 6px;font-size:15px;font-weight:700}.wsec .hint{margin-bottom:10px;display:block}.wsec .input,.wsec .select{min-height:44px;font-size:15px}.rows{flex-direction:column;gap:6px;display:flex}.rows__head{order:-1;display:none}.rows__row{align-items:center;gap:6px;display:flex}.rows__row>*{flex:1;min-width:0}.rows__row>.icon-btn{flex:none}.wizard__bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.wizard__actions{flex-wrap:wrap;gap:6px;display:flex}.explained{border:1px solid var(--line);border-radius:var(--radius-sm);background:color-mix(in srgb, var(--surface-2) 70%, var(--bg));max-height:72vh;padding:10px 0;overflow:auto}.explained__line{flex-direction:column;gap:3px;padding:6px 14px;display:flex}.explained__line code{white-space:pre-wrap;overflow-wrap:anywhere;font-size:12.5px;line-height:1.6}.explained__line:hover{background:var(--surface)}.explained__line.is-comment code{color:var(--muted)}.explained__why{color:var(--muted);border-inline-start:2px solid color-mix(in srgb, var(--accent) 45%, transparent);padding-inline-start:12px;font-size:12.5px;line-height:1.55}.explained__gap{height:8px}.extra{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:12px;display:grid}@media (max-width:640px){.extra{grid-template-columns:1fr}}.qr{background:#fff;border-radius:14px;width:180px;margin-top:14px;padding:10px}.qr svg{width:100%;height:auto}.wizard__after{font-size:14.5px}.installer{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);padding:14px}.installer__head{flex-direction:column;gap:2px;display:flex}.installer__actions{flex-wrap:wrap;gap:8px;display:flex}.filters{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px;display:flex}.filters .input{max-width:240px}.refs{flex-direction:column;gap:12px;display:flex}.ref{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);padding:16px;scroll-margin-top:80px}.ref.is-target{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 20%, transparent)}.ref h3{margin-bottom:6px;font-size:16px}.ref p{color:var(--muted);font-size:14.5px;line-height:1.6}.ref p code{background:var(--surface-2);color:var(--ink);border-radius:5px;padding:1px 5px;font-size:.88em}.glossary{grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr));gap:10px;display:grid}.glossary>div{border:1px solid var(--line);background:var(--surface);border-radius:14px;padding:12px 14px}.glossary dt{color:var(--accent-text);font-weight:700}.glossary dd{color:var(--muted);margin:4px 0 0;font-size:13.5px;line-height:1.55}.fixflow{flex-direction:column;gap:10px;margin-bottom:16px;display:flex}.fixnode{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);padding:14px 16px}.fixnode.is-past{opacity:.75;padding:10px 16px}.fixnode.is-current{border-color:color-mix(in srgb, var(--accent) 50%, var(--line))}.fixnode.is-end.is-current{border-color:var(--good)}.fixnode__head{align-items:center;gap:10px;display:flex}.fixnode__head h3{font-size:16px}.fixnode__n{background:var(--tile);width:26px;height:26px;color:var(--accent-text);font-family:var(--font-mono);border-radius:50%;flex:none;place-items:center;font-size:12px;font-weight:700;display:grid}.fixnode.is-end .fixnode__n{background:var(--good);color:#fff}.fixnode .prose{margin-top:8px;font-size:15px}.fixnode__opts{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}.fixnode__back{color:var(--muted);background:0 0;border:0;padding:4px 0 0 36px;font-size:12.5px;text-decoration:underline}.check{border:1px dashed var(--line);border-radius:12px;margin-top:10px;padding:8px 10px}.check.is-ok{border-color:var(--good)}.check.is-bad{border-color:var(--bad)}.check__row{justify-content:space-between;align-items:center;gap:10px;display:flex}.check__row code{overflow-wrap:anywhere;font-size:12.5px}.check__out{white-space:pre-wrap;max-height:220px;margin:8px 0 0;font-size:12px;overflow:auto}.home{max-width:1240px;margin:0 auto}.hero{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);align-items:center;gap:28px;padding:20px 0 30px;display:grid}@media (max-width:960px){.hero{grid-template-columns:1fr}}.hero__text{flex-direction:column;align-items:flex-start;gap:18px;display:flex}.hero__title{letter-spacing:-.035em;max-width:15ch;font-size:clamp(36px,5.5vw,62px);font-weight:700;line-height:1.02}.hero__title em{color:var(--accent-text);font-style:normal}.hero__lead{color:var(--muted);max-width:58ch;font-size:17px;line-height:1.7}.hero__actions{flex-wrap:wrap;gap:10px;display:flex}.hero__card{border:1px solid var(--line);background:color-mix(in srgb, var(--surface) 85%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 30px 60px -30px color-mix(in srgb, var(--accent) 35%, #0006);border-radius:26px;align-items:center;gap:20px;padding:22px;display:flex}.rank{flex:none;width:132px;position:relative}.rank__ring circle{fill:none;stroke:var(--surface-2);stroke-width:10px}.rank__ring .rank__fill{stroke:var(--accent);stroke-linecap:round;transform-origin:50%;transition:stroke-dasharray 1s;transform:rotate(-90deg)}.rank__center{flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.rank__xp{color:var(--accent-text);font-size:30px;font-weight:700;line-height:1}.rank__label{color:var(--muted);font-size:11px;font-family:var(--font-mono);letter-spacing:.1em}.rank__text{flex-direction:column;gap:4px;min-width:0;display:flex}.rank__name{font-size:22px;font-family:var(--font-heading);letter-spacing:-.01em}.rank__facts{color:var(--muted);flex-wrap:wrap;gap:12px;margin-top:8px;font-size:13px;display:flex}.rank__facts span{align-items:center;gap:4px;display:inline-flex}.quick{grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:10px;margin-bottom:30px;display:grid}.quick__item{border-radius:var(--radius);border:1px solid var(--line);background:var(--surface);color:inherit;align-items:center;gap:12px;padding:14px 16px;text-decoration:none;display:flex}.quick__item:hover{border-color:var(--accent)}.quick__item svg{color:var(--accent-text);flex:none}.quick__item span{flex-direction:column;min-width:0;display:flex}.quick__item small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;overflow:hidden}.quick__item.is-good{border-color:color-mix(in srgb, var(--good) 50%, var(--line))}.home-sec{margin-top:26px}.home-sec__head{justify-content:space-between;align-items:baseline;display:flex}.link-more{align-items:center;gap:4px;font-size:14px;font-weight:600;text-decoration:none;display:inline-flex}.focus{grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:12px;display:grid}.focus__card{border-radius:var(--radius);border:1px solid var(--line);background:var(--surface);flex-direction:column;gap:8px;padding:18px;display:flex}.focus__card h3{margin-top:4px;font-size:17px}.focus__card p{color:var(--muted);flex:1;font-size:13.5px;line-height:1.55}.focus__links{gap:6px;margin-top:4px;display:flex}.kit{grid-template-columns:repeat(auto-fit,minmax(min(100%,170px),1fr));gap:10px;display:grid}.kit__item{border-radius:var(--radius);border:1px solid var(--line);background:var(--surface);color:inherit;flex-direction:column;gap:4px;padding:16px;text-decoration:none;display:flex}.kit__item svg{color:var(--accent-text)}.kit__item b{letter-spacing:-.02em;font-size:26px}.kit__item span{color:var(--muted);font-size:13px}.kit__item:hover{border-color:var(--accent)}.ranks{flex-direction:column;gap:6px;display:flex}.ranks li{border:1px solid var(--line);background:var(--surface);border-radius:12px;grid-template-columns:28px 170px 80px 1fr;align-items:center;gap:10px;padding:10px 12px;font-size:14px;display:grid}@media (max-width:640px){.ranks li{grid-template-columns:28px 1fr auto}.ranks__note{grid-column:2/-1}}.ranks li.is-now{border-color:var(--accent);background:var(--tile)}.ranks li.is-past{opacity:.75}.ranks__dot{border:2px solid var(--line);border-radius:50%;place-items:center;width:22px;height:22px;display:grid}.ranks li.is-past .ranks__dot,.ranks li.is-now .ranks__dot{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.ranks__name{font-weight:700}.ranks__xp{color:var(--muted);font-size:12.5px}.ranks__note{font-size:13px}.trackprog{flex-direction:column;gap:6px;display:flex}.trackprog__row{border:1px solid var(--line);background:var(--surface);color:inherit;border-radius:12px;grid-template-columns:22px 150px 1fr 50px;align-items:center;gap:12px;padding:10px 12px;font-size:14px;text-decoration:none;display:grid}.trackprog__row svg{color:var(--accent-text)}.trackprog__name{font-weight:600}.themes{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;display:grid}.theme-card{border:1px solid var(--line);background:var(--surface);color:var(--ink);text-align:start;border-radius:16px;flex-direction:column;gap:8px;padding:10px;font-size:14px;font-weight:600;display:flex}.theme-card.is-on{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 25%, transparent)}.theme-card__swatch{border-radius:10px;gap:6px;padding:12px;display:flex}.theme-card__swatch i{border:1px solid #8080804d;border-radius:50%;width:18px;height:18px}.connect{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:start;gap:20px;display:grid}@media (max-width:1100px){.connect{grid-template-columns:1fr}}.connect__steps,.connect__side{flex-direction:column;gap:14px;min-width:0;display:flex}.step-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);flex-direction:column;gap:10px;padding:16px 18px;display:flex}.step-card.is-done{border-color:color-mix(in srgb, var(--good) 50%, var(--line))}.step-card.is-muted{opacity:.7}.step-card h3{align-items:center;gap:9px;font-size:16px;display:flex}.step-card__head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.step-n{background:var(--accent);width:24px;height:24px;color:var(--accent-ink);font-size:12px;font-family:var(--font-mono);border-radius:50%;place-items:center;display:inline-grid}.diag{flex-direction:column;gap:6px;display:flex}.diag__item{background:var(--surface-2);border-radius:10px;align-items:flex-start;gap:8px;padding:8px 10px;font-size:14px;line-height:1.5;display:flex}.diag__item svg{flex:none;margin-top:2px}.diag__item--good svg{color:var(--good)}.diag__item--warn svg{color:var(--warn)}.diag__item--bad{background:color-mix(in srgb, var(--bad) 10%, var(--surface))}.diag__item--bad svg{color:var(--bad)}.neighbor{border:1px solid var(--line);background:var(--surface-2);border-radius:12px;align-items:center;gap:12px;padding:10px 12px;display:flex}.neighbor svg{color:var(--accent-text);flex:none}.neighbor__main{flex-direction:column;flex:1;min-width:0;display:flex}.bullets{flex-direction:column;gap:10px;padding-inline-start:18px;font-size:14px;line-height:1.6;list-style:outside;display:flex}.rtabs{border-bottom:1px solid var(--line);gap:4px;margin-bottom:16px;padding-bottom:4px;display:flex;overflow-x:auto}.rtab{height:38px;color:var(--muted);white-space:nowrap;border-bottom:2px solid #0000;border-radius:10px 10px 0 0;align-items:center;gap:7px;padding:0 13px;font-size:14px;font-weight:600;text-decoration:none;display:inline-flex}.rtab:hover{color:var(--ink)}.rtab[aria-current=page]{color:var(--accent-text);border-bottom-color:var(--accent)}.rgrid{grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:12px;display:grid}.rstack{flex-direction:column;gap:12px;display:flex}.actions-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.ifaces{grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr));gap:10px;display:grid}.iface{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);flex-direction:column;gap:8px;padding:12px 14px;display:flex}.iface.is-down{opacity:.7}.iface.is-disabled{opacity:.45}.iface__head{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.iface__toggle{margin-inline-start:auto}.iface__rates{flex-wrap:wrap;align-items:baseline;gap:14px;font-size:13px;display:flex}.iface__rates b{font-size:14px}.iface__spark{grid-template-columns:1fr 1fr;gap:8px;display:grid}.spark{background:var(--surface-2);border-radius:8px;width:100%;height:34px}.spark polyline{fill:none;stroke:var(--accent);stroke-width:1.6px;vector-effect:non-scaling-stroke}.iface__spark .spark:last-child polyline{stroke:#38bdf8}.rules{flex-direction:column;gap:4px;display:flex}.rule__chain{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em;color:var(--accent-text);padding:14px 4px 6px;font-size:11.5px}.rule__row{border:1px solid var(--line);background:var(--surface-2);border-radius:12px;align-items:center;gap:10px;padding:9px 10px;display:flex}.rule.is-disabled .rule__row{opacity:.45}.rule.is-dynamic .rule__row{border-style:dashed}.rule__n{width:22px;color:var(--muted);flex:none;font-size:12px}.rule__action{font-family:var(--font-mono);background:var(--surface);text-transform:uppercase;border-radius:7px;flex:none;padding:3px 8px;font-size:11px;font-weight:700}.rule__action--accept,.rule__action--fasttrack-connection{color:var(--good)}.rule__action--drop,.rule__action--reject,.rule__action--tarpit{color:var(--bad)}.rule__action--masquerade,.rule__action--dst-nat,.rule__action--src-nat{color:var(--accent-text)}.rule__main{flex-direction:column;flex:1;gap:2px;min-width:0;font-size:13.5px;display:flex}.rule__sentence{color:var(--accent-text);font-weight:600}.rule__match{color:var(--muted);overflow-wrap:anywhere;font-size:11.5px}.rule__count{color:var(--muted);white-space:nowrap;font-size:11.5px}@media (max-width:760px){.rule__count{display:none}}.logs{font-family:var(--font-mono);border:1px solid var(--line);border-radius:12px;flex-direction:column;max-height:66vh;font-size:12px;display:flex;overflow:auto}.logs li{border-bottom:1px solid var(--line);grid-template-columns:80px 150px 1fr;gap:10px;padding:5px 10px;display:grid}@media (max-width:760px){.logs li{grid-template-columns:70px 1fr}.logs__topics{display:none}}.logs li.is-bad{color:var(--bad)}.logs li.is-warn{color:var(--warn)}.logs__time,.logs__topics{color:var(--muted)}.term{flex-direction:column;display:flex}.term__screen{color:#d7dde2;border-radius:var(--radius) var(--radius) 0 0;border:1px solid var(--line);height:56vh;font-family:var(--font-mono);background:#050607;border-bottom:0;padding:14px;font-size:12.5px;overflow:auto}.term__hello{color:#8a949c;font-family:var(--font);margin-bottom:10px;font-size:12.5px}.term__hello code{color:#d4ff3f}.term__block{margin-bottom:10px}.term__prompt,.term__cmd .tk-path{color:#d4ff3f}.term__out{white-space:pre-wrap;color:#cfd6db;margin:4px 0 0}.term__out.is-bad{color:#f87171}.term__input{border:1px solid var(--line);border-radius:0 0 var(--radius) var(--radius);background:#0b0d0f;align-items:center;gap:8px;padding:8px 10px;display:flex}.term__input input{color:#eef2f4;background:0 0;border:0;outline:none;flex:1;min-width:0;font-size:14px}.palette{z-index:150;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000080;justify-content:center;align-items:flex-start;padding:10vh 14px 14px;display:flex;position:fixed;inset:0}.palette__box{border:1px solid var(--line);background:var(--surface);border-radius:20px;flex-direction:column;width:min(680px,100%);max-height:72vh;animation:.2s both gh-in;display:flex;overflow:hidden;box-shadow:0 40px 80px #0006}.palette__input{border-bottom:1px solid var(--line);color:var(--muted);align-items:center;gap:10px;padding:14px 16px;display:flex}.palette__input input{color:var(--ink);background:0 0;border:0;outline:none;flex:1;min-width:0;font-size:17px}.palette__list{padding:6px;overflow:auto}.palette__empty{flex-direction:column;gap:10px;padding:12px;display:flex}.palette__hit{width:100%;color:var(--ink);text-align:start;background:0 0;border:0;border-radius:12px;align-items:center;gap:12px;padding:9px 10px;display:flex}.palette__hit.is-sel{background:var(--tile)}.palette__icon{background:var(--surface-2);width:30px;height:30px;color:var(--accent-text);border-radius:9px;flex:none;place-items:center;display:grid}.palette__text{flex-direction:column;flex:1;min-width:0;display:flex}.palette__title{text-overflow:ellipsis;white-space:nowrap;font-size:14.5px;font-weight:600;overflow:hidden}.palette__sub{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;overflow:hidden}.palette__kind{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--muted);flex:none;font-size:10.5px}.palette__none{color:var(--muted);text-align:center;padding:20px}.keys{flex-direction:column;gap:10px;display:flex}.keys dt{color:var(--muted);font-size:12px;font-weight:600}.keys dd{background:var(--surface-2);cursor:copy;overflow-wrap:anywhere;border-radius:10px;margin:4px 0 0;padding:10px 12px;font-size:14px}.keys dd:hover{outline:1px solid var(--accent)}.pwlist{flex-direction:column;gap:6px;margin:14px 0;display:flex}.pwlist li{background:var(--surface-2);border-radius:10px;justify-content:space-between;align-items:center;gap:10px;padding:8px 12px;display:flex}.pwlist code{overflow-wrap:anywhere;font-size:15px}.explain{flex-direction:column;gap:12px;margin-top:16px;display:flex}.explain li{border:1px solid var(--line);background:var(--surface-2);border-radius:14px;flex-direction:column;gap:6px;padding:12px 14px;font-size:14px;display:flex}.explain li>code{overflow-wrap:anywhere;font-size:12.5px}@media (prefers-reduced-motion:reduce){.rise,.topo__packet,.ladder__dot,.ladder__line.is-drawing,.topo__process circle,.hdr__f.is-changed{animation:none!important}.topo__packet{transform:translate(var(--tx), var(--ty))}}
