@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/jetbrains-mono-400.woff2)format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/jetbrains-mono-700.woff2)format("woff2")}:root,[data-theme=terminal]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0b0e14;--bg-elevated:#11151f;--bg-float:#171c29;--bg-deeper:#0b0e14;--bg-code:#0d1018;--text:#c9d2e2;--text-bright:#eff3fa;--text-dim:#6e7684;--text-muted:#4a5160;--text-faint:#333944;--text-secondary:#9aa5ba;--text-hint:#5a6172;--accent:#82b7ff;--accent-hover:#9fccff;--on-accent:#0b0e14;--accent-a2:#82b7ff05;--accent-a3:#60c8ff09;--accent-a4:#82b7ff0a;--accent-a5:#82b7ff0d;--accent-a6:#82b7ff0f;--accent-a8:#82b7ff14;--accent-a10:#82b7ff1a;--accent-a12:#82b7ff1f;--accent-a15:#82b7ff26;--accent-a20:#82b7ff33;--accent-a25:#82b7ff40;--accent-a30:#82b7ff4d;--accent-a50:#82b7ff80;--ok:#5fd39a;--ok-hover:#7cdeb0;--ok-a6:#5fd39a0f;--ok-a8:#5fd39a14;--ok-a10:#5fd39a1a;--ok-a12:#5fd39a1f;--ok-a20:#5fd39a33;--ok-a30:#5fd39a4d;--ok-a40:#5fd39a66;--warn:#ffc77d;--warn-a8:#ffc77d14;--warn-a20:#ffc77d33;--err:#ff8f8f;--err-hover:#ffb0b0;--err-a6:#ff8f8f0f;--err-a8:#ff8f8f14;--err-a12:#ff8f8f1f;--err-a15:#ff8f8f26;--err-a20:#ff8f8f33;--err-a25:#ff8f8f40;--err-a30:#ff8f8f4d;--purple:#b8a8ff;--border:#1d2330;--border-strong:#2a3140;--border-a30:#1d23304d;--border-a50:#1d233080;--divider:#141924;--overlay-a1:#ffffff03;--overlay-a15:#ffffff04;--overlay-a2:#ffffff05;--overlay-a3:#ffffff08;--overlay-a4:#ffffff0a;--overlay-a5:#ffffff0d;--overlay-a8:#ffffff14;--overlay-a10:#ffffff1a;--overlay-a20:#fff3;--text-secondary-a8:#9aa5ba14;--text-secondary-a20:#9aa5ba33;--navbar-bg:#0b0e14db;--aurora-1:#60c8ff33;--aurora-2:#50dcbe1f;--aurora-3:#3ca0e61f;--scanline:#60c8ff09;--shadow:#0000008c;--shadow-deep:#000000bf;--modal-overlay:#0009;--white:#fff}[data-theme=paper]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f7f6f2;--bg-elevated:#fff;--bg-float:#fff;--bg-deeper:#efede6;--bg-code:#f0ede6;--text:#2b2d34;--text-bright:#16171d;--text-dim:#5c5f68;--text-muted:#8c909a;--text-faint:#b6bac3;--text-secondary:#848a96;--text-hint:#9aa0ac;--accent:#2e7d8f;--accent-hover:#276a79;--on-accent:#fff;--accent-a2:#2e7d8f05;--accent-a3:#2e7d8f08;--accent-a4:#2e7d8f0a;--accent-a5:#2e7d8f0d;--accent-a6:#2e7d8f0f;--accent-a8:#2e7d8f14;--accent-a10:#2e7d8f1a;--accent-a12:#2e7d8f29;--accent-a15:#2e7d8f26;--accent-a20:#2e7d8f33;--accent-a25:#2e7d8f40;--accent-a30:#2e7d8f4d;--accent-a50:#2e7d8f80;--ok:#389e6d;--ok-hover:#2f8a5d;--ok-a6:#389e6d0f;--ok-a8:#389e6d14;--ok-a10:#389e6d1a;--ok-a12:#389e6d1f;--ok-a20:#389e6d33;--ok-a30:#389e6d4d;--ok-a40:#389e6d66;--warn:#c08a2e;--warn-a8:#c08a2e14;--warn-a20:#c08a2e33;--err:#c65656;--err-hover:#b24747;--err-a6:#c656560f;--err-a8:#c6565614;--err-a12:#c656561f;--err-a15:#c6565626;--err-a20:#c6565633;--err-a25:#c6565640;--err-a30:#c656564d;--purple:#7c6bd8;--border:#e6e4dd;--border-strong:#d6d3ca;--border-a30:#00000014;--border-a50:#0000001f;--divider:#ecebe4;--overlay-a1:#00000003;--overlay-a15:#00000004;--overlay-a2:#00000005;--overlay-a3:#00000008;--overlay-a4:#0000000a;--overlay-a5:#0000000d;--overlay-a8:#00000014;--overlay-a10:#0000001a;--overlay-a20:#0003;--text-secondary-a8:#848a9614;--text-secondary-a20:#848a9633;--navbar-bg:#f7f6f2e0;--aurora-1:#2e7d8f29;--aurora-2:#d6a04626;--aurora-3:#e0968c21;--scanline:#7870600a;--shadow:#0000001a;--shadow-deep:#00000029;--modal-overlay:#0006;--white:#fff}[data-theme=midnight]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0a0e1a;--bg-elevated:#121826;--bg-float:#182133;--bg-deeper:#0a0e1a;--bg-code:#0e1320;--text:#cdd6e6;--text-bright:#f0f4fb;--text-dim:#7d89a1;--text-muted:#525d76;--text-faint:#39435a;--text-secondary:#9ba8c0;--text-hint:#6a778f;--accent:#93c5fd;--accent-hover:#b4d6fe;--on-accent:#0a0e1a;--accent-a2:#93c5fd05;--accent-a3:#93c5fd08;--accent-a4:#93c5fd0a;--accent-a5:#93c5fd0d;--accent-a6:#93c5fd0f;--accent-a8:#93c5fd14;--accent-a10:#93c5fd1a;--accent-a12:#93c5fd1f;--accent-a15:#93c5fd26;--accent-a20:#93c5fd33;--accent-a25:#93c5fd40;--accent-a30:#93c5fd4d;--accent-a50:#93c5fd80;--ok:#6fd39b;--ok-hover:#8bdeae;--ok-a6:#6fd39b0f;--ok-a8:#dc6ec821;--ok-a10:#6fd39b1a;--ok-a12:#6fd39b1f;--ok-a20:#6fd39b33;--ok-a30:#6fd39b4d;--ok-a40:#6fd39b66;--warn:#e8c07a;--warn-a8:#e8c07a14;--warn-a20:#e8c07a33;--err:#f58b8b;--err-hover:#f8a8a8;--err-a6:#f58b8b0f;--err-a8:#f58b8b14;--err-a12:#f58b8b1f;--err-a15:#f58b8b26;--err-a20:#f58b8b33;--err-a25:#f58b8b40;--err-a30:#f58b8b4d;--purple:#c4b5fd;--border:#1c2432;--border-strong:#293449;--border-a30:#1c24324d;--border-a50:#1c243280;--divider:#131a28;--overlay-a1:#ffffff03;--overlay-a15:#ffffff04;--overlay-a2:#ffffff05;--overlay-a3:#ffffff08;--overlay-a4:#ffffff0a;--overlay-a5:#ffffff0d;--overlay-a8:#ffffff14;--overlay-a10:#ffffff1a;--overlay-a20:#fff3;--text-secondary-a8:#9ba8c014;--text-secondary-a20:#9ba8c033;--navbar-bg:#0a0e1adb;--aurora-1:#4682f03d;--aurora-2:#a078ff2e;--aurora-3:#dc6ec821;--scanline:#8278fa0a;--shadow:#0000008c;--shadow-deep:#000000bf;--modal-overlay:#0009;--white:#fff}[data-theme=solar]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#14110d;--bg-elevated:#1c1812;--bg-float:#252019;--bg-deeper:#16130e;--bg-code:#1a1611;--text:#e0d6c8;--text-bright:#f5efe6;--text-dim:#9c8f7d;--text-muted:#6a5f50;--text-faint:#474032;--text-secondary:#a89a86;--text-hint:#7d7362;--accent:#e8b57c;--accent-hover:#f0c692;--on-accent:#241a0c;--accent-a2:#e8b57c05;--accent-a3:#e8b57c08;--accent-a4:#e8b57c0a;--accent-a5:#e8b57c0d;--accent-a6:#e8b57c0f;--accent-a8:#e8b57c14;--accent-a10:#e8b57c1a;--accent-a12:#e8b57c1f;--accent-a15:#e8b57c26;--accent-a20:#e8b57c33;--accent-a25:#e8b57c40;--accent-a30:#e8b57c4d;--accent-a50:#e8b57c80;--ok:#a8cf8e;--ok-hover:#bcdaa2;--ok-a6:#a8cf8e0f;--ok-a8:#a8cf8e14;--ok-a10:#a8cf8e1a;--ok-a12:#a8cf8e1f;--ok-a20:#a8cf8e33;--ok-a30:#a8cf8e4d;--ok-a40:#a8cf8e66;--warn:#e2c079;--warn-a8:#e2c07914;--warn-a20:#e2c07933;--err:#e08a86;--err-hover:#eab0ac;--err-a6:#e08a860f;--err-a8:#e08a8614;--err-a12:#e08a861f;--err-a15:#e08a8626;--err-a20:#e08a8633;--err-a25:#e08a8640;--err-a30:#e08a864d;--purple:#c9a6d9;--border:#2c2620;--border-strong:#3c342a;--border-a30:#2c26204d;--border-a50:#2c262080;--divider:#201a14;--overlay-a1:#ffffff03;--overlay-a15:#ffffff04;--overlay-a2:#ffffff05;--overlay-a3:#ffffff08;--overlay-a4:#ffffff0a;--overlay-a5:#ffffff0d;--overlay-a8:#ffffff14;--overlay-a10:#ffffff1a;--overlay-a20:#fff3;--text-secondary-a8:#a89a8814;--text-secondary-a20:#a89a8833;--navbar-bg:#14110de0;--aurora-1:#f0af5a33;--aurora-2:#eb785026;--aurora-3:#b4c8781f;--scanline:#e8b57c0a;--shadow:#0000008c;--shadow-deep:#000000bf;--modal-overlay:#0009;--white:#fff}:root{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", Arial, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, "Liberation Mono", "Courier New", monospace;--fs-2xs:10px;--fs-xs:12px;--fs-sm:13px;--fs-base:14px;--fs-md:15px;--fs-lg:17px;--fs-xl:20px;--fs-2xl:26px;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;--sp-10:40px;--sp-12:48px;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-full:9999px;--surface-2:#7f7f7f14}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{color:var(--text);font-family:var(--font-mono);font-size:var(--fs-base);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:0 0;margin:0;line-height:1.6}body:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(1150px 700px at 82% -14%, var(--aurora-1), transparent 58%), radial-gradient(900px 600px at -8% 30%, var(--aurora-2), transparent 55%), radial-gradient(820px 820px at 28% 118%, var(--aurora-3), transparent 62%), radial-gradient(620px 430px at 74% 46%, var(--aurora-1), transparent 56%), repeating-linear-gradient(0deg, transparent 0 2px, var(--scanline) 2px 3px);animation:26s ease-in-out infinite alternate auroraDrift;position:fixed;inset:0}#app{min-height:100vh}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}button{font-family:inherit}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--border-strong)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:none}}@keyframes slideInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:none}}@keyframes floatY{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes pulseGlow{0%,to{opacity:.6}50%{opacity:1}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes auroraDrift{0%,to{background-position:0 0,100% 0,50% 100%,50%,0 0}50%{background-position:42% 0,58% 28%,38% 100%,68% 66%,0 0}}@keyframes gridFade{0%,to{opacity:.4}50%{opacity:.85}}@keyframes glowPulse{0%,to{opacity:.55;transform:scale(1)}50%{opacity:1;transform:scale(1.05)}}@keyframes tiltCard{0%,to{transform:perspective(900px)rotateX(0)rotateY(0)}50%{transform:perspective(900px)rotateX(1.2deg)rotateY(-1.2deg)}}@keyframes staggerIn{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes borderFlow{0%{background-position:0%}to{background-position:200%}}@keyframes scrollHint{0%,to{opacity:.6;transform:translateY(0)}50%{opacity:1;transform:translateY(6px)}}.router-fade-enter-active{transition:opacity .25s}.router-fade-leave-active{transition:opacity .15s}.router-fade-enter-from,.router-fade-leave-to{opacity:0}.anim-fade-up{animation:.5s backwards fadeInUp}.anim-fade{animation:.4s backwards fadeIn}.anim-scale{animation:.3s backwards scaleIn}.anim-slide-right{animation:.4s backwards slideInRight}.anim-float{animation:3s ease-in-out infinite floatY}.anim-pulse{animation:2s ease-in-out infinite pulseGlow}.anim-stagger{animation:.5s backwards staggerIn}.anim-stagger:nth-child(2){animation-delay:60ms}.anim-stagger:nth-child(3){animation-delay:.12s}.anim-stagger:nth-child(4){animation-delay:.18s}.anim-stagger:nth-child(5){animation-delay:.24s}.anim-stagger:nth-child(6){animation-delay:.3s}.anim-glow{animation:4s ease-in-out infinite glowPulse}.anim-grid-fade{animation:6s ease-in-out infinite gridFade}.anim-tilt{animation:7s ease-in-out infinite tiltCard}.anim-scroll-hint{animation:1.6s ease-in-out infinite scrollHint}.card-lift{will-change:transform;transition:transform .35s cubic-bezier(.22,1,.36,1),box-shadow .35s,border-color .35s}.card-lift:hover{box-shadow:0 16px 44px var(--shadow), 0 0 0 1px var(--accent-a15);border-color:var(--accent-a30);transform:translateY(-6px)}.card-border-flow{border-radius:inherit;position:relative;overflow:hidden}.card-border-flow:before{content:"";border-radius:inherit;background:linear-gradient(120deg,transparent 20%,var(--accent-a50),var(--purple),var(--accent-a50),transparent 80%);-webkit-mask-composite:xor;pointer-events:none;background-size:300% 300%;padding:1px;animation:6s linear infinite borderFlow;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);-webkit-mask-position:0 0,0 0;mask-position:0 0,0 0;-webkit-mask-size:auto,auto;mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.card-hover{will-change:transform;transition:transform .35s cubic-bezier(.22,1,.36,1),border-color .35s,box-shadow .35s}.card-hover:hover{border-color:var(--accent-a30);box-shadow:0 12px 36px var(--shadow), 0 1px 0 var(--accent-a8) inset;transform:translateY(-5px)}.btn-press{transition:transform .15s cubic-bezier(.34,1.56,.64,1),opacity .2s,box-shadow .2s}.btn-press:active{transform:scale(.96)}.text-gradient{background:linear-gradient(90deg, var(--accent), var(--purple));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.skeleton{background:linear-gradient(90deg, var(--bg-elevated) 25%, var(--bg-float) 50%, var(--bg-elevated) 75%);background-size:200% 100%;border-radius:4px;animation:1.5s infinite shimmer}html{background-color:var(--bg);scroll-behavior:smooth;scroll-padding-top:84px}::selection{background:var(--accent-a25);color:var(--text-bright)}.hljs{color:#d4d4d4;background:0 0}.hljs-comment,.hljs-quote{color:#8b949e;font-style:italic}.hljs-keyword,.hljs-selector-tag,.hljs-literal{color:#ff7b72}.hljs-string,.hljs-doctag,.hljs-regexp{color:#a5d6ff}.hljs-number,.hljs-symbol,.hljs-bullet{color:#79c0ff}.hljs-title,.hljs-section,.hljs-function .hljs-title{color:#d2a8ff}.hljs-name,.hljs-tag{color:#7ee787}.hljs-attr,.hljs-attribute{color:#79c0ff}.hljs-built_in,.hljs-type,.hljs-class .hljs-title,.hljs-meta,.hljs-selector-id,.hljs-selector-class,.hljs-variable,.hljs-template-variable{color:#ffa657}.hljs-addition{color:#7ee787}.hljs-deletion{color:#ff7b72}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}.hljs-link{color:#58a6ff}[data-theme=paper] .hljs{color:#24292e}[data-theme=paper] .hljs-comment,[data-theme=paper] .hljs-quote{color:#6a737d}[data-theme=paper] .hljs-keyword,[data-theme=paper] .hljs-selector-tag,[data-theme=paper] .hljs-literal{color:#d73a49}[data-theme=paper] .hljs-string,[data-theme=paper] .hljs-doctag,[data-theme=paper] .hljs-regexp{color:#032f62}[data-theme=paper] .hljs-number,[data-theme=paper] .hljs-symbol,[data-theme=paper] .hljs-bullet{color:#005cc5}[data-theme=paper] .hljs-title,[data-theme=paper] .hljs-section{color:#6f42c1}[data-theme=paper] .hljs-name,[data-theme=paper] .hljs-tag{color:#22863a}[data-theme=paper] .hljs-built_in,[data-theme=paper] .hljs-type,[data-theme=paper] .hljs-attr{color:#e36209}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}:root{--shadow-soft:#00000040;--dot-red:#ff5f56;--dot-yellow:#ffbd2e;--dot-green:#27c93f}.btn{font:inherit;font-size:var(--fs-base);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:var(--radius-md);padding:var(--sp-2) var(--sp-4);white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:6px;line-height:1;text-decoration:none;transition:background .2s,border-color .2s,color .2s,opacity .2s;display:inline-flex}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent);font-weight:600}.btn-primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.btn-secondary{background:var(--overlay-a4);border-color:var(--border-strong);color:var(--text-secondary)}.btn-secondary:hover:not(:disabled){color:var(--text);border-color:var(--accent)}.btn-danger{background:var(--err-a12);border-color:var(--err-a30);color:var(--err)}.btn-danger:hover:not(:disabled){background:var(--err-a20);border-color:var(--err)}.btn-ghost{color:var(--text-dim);background:0 0;border-color:#0000}.btn-ghost:hover:not(:disabled){color:var(--text);background:var(--overlay-a5)}.btn-sm{padding:var(--sp-1) var(--sp-3);font-size:var(--fs-sm);border-radius:var(--radius-sm);gap:var(--sp-1)}.btn-icon{border-radius:var(--radius-md);width:34px;height:34px;padding:0}.btn-block{width:100%}.tag{padding:var(--sp-1) var(--sp-2);font-size:var(--fs-xs);color:var(--text-dim);background:var(--overlay-a4);border:1px solid var(--border-strong);border-radius:4px;line-height:1.6;display:inline-block}.tag-accent{color:var(--accent);border-color:var(--accent-a30);background:var(--accent-a8)}.tag-ok{color:var(--ok);border-color:var(--ok-a20);background:var(--ok-a8)}.tag-warn{color:var(--warn);border-color:var(--warn-a20);background:var(--warn-a8)}.tag-err{color:var(--err);border-color:var(--err-a20);background:var(--err-a8)}.field-label{color:var(--text-secondary);font-size:var(--fs-sm);margin:14px 0 6px;display:block}.field-input,.field-select,.field-textarea{box-sizing:border-box;width:100%;color:var(--text);font:inherit;font-size:var(--fs-base);background:var(--bg-code);border:1px solid var(--border-strong);border-radius:var(--radius-md);outline:none;padding:10px 12px}.field-input:focus,.field-select:focus,.field-textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-a8)}.field-textarea{resize:vertical;min-height:120px}.markdown-body{font-family:var(--font-sans);color:var(--text);word-break:break-word;overflow-wrap:break-word;font-size:16px;line-height:1.9}.markdown-body>:first-child{margin-top:0}.markdown-body>:last-child{margin-bottom:0}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6{font-family:var(--font-sans);color:var(--text-bright);margin:32px 0 12px;scroll-margin-top:96px;font-weight:700;line-height:1.35}.markdown-body h1{font-size:26px}.markdown-body h2{border-bottom:1px solid var(--border);padding-bottom:8px;font-size:21px}.markdown-body h3{font-size:17px}.markdown-body h4{font-size:15px}.markdown-body p{margin:0 0 16px}.markdown-body a{color:var(--accent);text-underline-offset:3px;border-radius:2px;text-decoration:underline;transition:color .2s,background-color .2s}.markdown-body a:hover{color:var(--accent-hover);background:var(--accent-a10)}.markdown-body code{font-family:var(--font-mono);background:var(--overlay-a5);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--accent);padding:2px 6px;font-size:.875em}.markdown-body pre{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);margin:20px 0;padding:16px 20px;line-height:1.6;overflow-x:auto}.markdown-body pre code{color:var(--text);background:0 0;border:none;padding:0;font-size:.9em}.markdown-body blockquote{border-left:2px solid var(--accent);color:var(--text-dim);background:var(--overlay-a3);margin:16px 0;padding:8px 16px;font-style:italic}.markdown-body img{border-radius:var(--radius-md);border:1px solid var(--border);max-width:100%;margin:16px 0}.markdown-body ul,.markdown-body ol{margin:12px 0;padding-left:24px}.markdown-body li{margin:6px 0}.markdown-body hr{border:none;border-top:1px solid var(--border);margin:32px 0}.markdown-body table{border-collapse:collapse;width:100%;margin:16px 0;font-size:14px;display:block;overflow-x:auto}.markdown-body th,.markdown-body td{border:1px solid var(--border);text-align:left;padding:8px 12px}.markdown-body th{background:var(--bg-elevated);color:var(--text-secondary);font-weight:600}.markdown-body strong{color:var(--text-bright)}@keyframes caretBlink{0%,45%{opacity:1}50%,to{opacity:0}}@keyframes shine{0%{transform:translate(-120%)skew(-20deg)}60%,to{transform:translate(260%)skew(-20deg)}}@keyframes gradientShift{0%{background-position:0%}to{background-position:200%}}@keyframes marquee{0%{transform:translate(0)}to{transform:translate(-50%)}}@keyframes bounceIn{0%{opacity:0;transform:scale(.82)}60%{opacity:1;transform:scale(1.05)}to{opacity:1;transform:none}}@keyframes spinSlow{to{transform:rotate(360deg)}}@keyframes pulseRing{0%{box-shadow:0 0 0 0 var(--accent-a50)}70%{box-shadow:0 0 0 9px #0000}to{box-shadow:0 0 #0000}}@keyframes lineGrow{0%{opacity:0;transform:scaleX(0)}to{opacity:1;transform:none}}@keyframes fillBar{0%{transform:translate(-100%)}to{transform:translate(0)}}.anim-caret{animation:1s step-end infinite caretBlink}.anim-shine{position:relative;overflow:hidden}.anim-shine:after{content:"";pointer-events:none;background:linear-gradient(90deg,#0000,#ffffff38,#0000);width:45%;height:100%;position:absolute;top:0;left:0;transform:translate(-120%)skew(-20deg)}.anim-shine:hover:after{animation:.9s shine}.anim-gradient-move{background:linear-gradient(90deg, var(--accent), var(--purple), var(--accent));-webkit-text-fill-color:transparent;background-size:200%;-webkit-background-clip:text;background-clip:text;animation:4s linear infinite gradientShift}.anim-bounce-in{animation:.5s cubic-bezier(.34,1.56,.64,1) backwards bounceIn}.anim-spin-slow{animation:14s linear infinite spinSlow}.anim-pulse-ring{animation:2s ease-out infinite pulseRing}.anim-line-grow{transform-origin:0;animation:.45s backwards lineGrow}.anim-marquee{white-space:nowrap;overflow:hidden}.anim-marquee .marquee-track{white-space:nowrap;gap:28px;animation:22s linear infinite marquee;display:inline-flex}.scroll-progress{background:linear-gradient(90deg, var(--accent), var(--purple));z-index:999;width:0%;height:3px;box-shadow:0 0 10px var(--accent-a50);transition:width 60ms linear;position:fixed;top:0;left:0}.back-to-top{width:44px;height:44px;color:var(--text-secondary);background:var(--bg-float);border:1px solid var(--border-strong);cursor:pointer;z-index:900;box-shadow:0 6px 26px var(--shadow);opacity:0;pointer-events:none;border-radius:10px;justify-content:center;align-items:center;font-size:17px;transition:opacity .3s,transform .3s,border-color .2s,color .2s;display:flex;position:fixed;bottom:24px;right:24px;transform:translateY(16px)}.back-to-top.visible{opacity:1;pointer-events:auto;transform:translateY(0)}.back-to-top:hover{border-color:var(--accent);color:var(--accent)}.btt-arrow{transition:transform .2s;display:inline-block}.back-to-top:hover .btt-arrow{transform:translateY(-3px)}.status-dot{background:var(--ok);border-radius:50%;width:7px;height:7px;animation:2s ease-out infinite pulseRing;display:inline-block}@keyframes blinkStep{0%,49%{opacity:1}50%,to{opacity:0}}@keyframes modalPop{0%{opacity:0;transform:scale(.94)translateY(10px)}to{opacity:1;transform:none}}@keyframes toastIn{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes ripple{0%{opacity:.5;transform:scale(0)}to{opacity:0;transform:scale(4)}}@keyframes floatCaret{0%,to{transform:translateY(0)}50%{transform:translateY(4px)}}@keyframes ledBlink{0%,to{opacity:1}50%{opacity:.25}}.reveal{opacity:0;will-change:opacity, transform;transition:opacity .6s cubic-bezier(.22,1,.36,1),transform .6s cubic-bezier(.22,1,.36,1);transform:translateY(26px)}.reveal[data-reveal-dir=left]{transform:translate(-26px)}.reveal[data-reveal-dir=right]{transform:translate(26px)}.reveal[data-reveal-dir=none]{transform:none}.reveal.reveal-in{opacity:1;transform:none}.blink{animation:1s step-end infinite blinkStep}.led{animation:1.6s ease-in-out infinite ledBlink}.modal-pop{animation:.32s cubic-bezier(.22,1,.36,1) backwards modalPop}.toast-in{animation:.36s cubic-bezier(.22,1,.36,1) both toastIn}.anim-float-caret{animation:2.4s ease-in-out infinite floatCaret}.btn-shine{position:relative;overflow:hidden}.btn-shine:after{content:"";pointer-events:none;background:linear-gradient(90deg,#0000,#ffffff47,#0000);width:40%;height:100%;position:absolute;top:0;left:0;transform:translate(-130%)skew(-20deg)}.btn-shine:hover:after{animation:.85s shine}.hover-glow{transition:box-shadow .35s,border-color .35s,transform .35s cubic-bezier(.22,1,.36,1)}.hover-glow:hover{border-color:var(--accent-a40);box-shadow:0 0 0 1px var(--accent-a12), 0 12px 34px var(--shadow), 0 0 24px var(--accent-a8)}.skeleton-card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:10px;margin-bottom:22px;padding:22px}.skel-line{background:linear-gradient(90deg, var(--bg-float) 25%, var(--bg-elevated) 50%, var(--bg-float) 75%);background-size:200% 100%;border-radius:4px;height:12px;animation:1.5s infinite shimmer}.led-green{background:var(--ok);box-shadow:0 0 8px var(--ok-a40)}.led-red{background:var(--err);box-shadow:0 0 8px var(--err-a30)}@keyframes ping{0%{opacity:.7;transform:scale(1)}to{opacity:0;transform:scale(2.6)}}@keyframes shimText{0%,to{background-position:-200% 0}50%{background-position:200% 0}}@keyframes popIn{0%{opacity:0;transform:scale(.86)}70%{opacity:1;transform:scale(1.04)}to{opacity:1;transform:none}}html.theme-switching *,html.theme-switching :before,html.theme-switching :after{transition:background-color .45s,color .45s,border-color .45s,fill .45s,stroke .45s,box-shadow .45s!important}.ripple-ink{background:radial-gradient(circle, var(--accent-a25) 0%, transparent 70%);opacity:.5;pointer-events:none;z-index:1;border-radius:50%;animation:.65s ease-out forwards ripple;position:absolute;transform:scale(0)}button,.btn-write,.btn-login,.post-link,.tag,.post-tag,.theme-btn{position:relative;overflow:hidden}button:active,.btn:active,.btn-write:active,.btn-login:active,.post-link:active,.tag:active,.post-tag:active{transform:scale(.97)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.anim-count{font-variant-numeric:tabular-nums}.status-dot.ping{position:relative}.status-dot.ping:after{content:"";border:2px solid var(--ok-a40);border-radius:50%;animation:1.6s ease-out infinite ping;position:absolute;inset:-4px}@supports ((-webkit-background-clip:text)){.hero-title a{background-image:linear-gradient(90deg, var(--text-bright), var(--accent), var(--text-bright));-webkit-text-fill-color:transparent;background-size:200%;-webkit-background-clip:text;background-clip:text;animation:7s linear infinite shimText}}.pop-in{animation:.4s cubic-bezier(.22,1,.36,1) both popIn}.skel-w30{width:30%}.skel-w40{width:40%}.skel-w50{width:50%}.skel-w60{width:60%}.skel-w65{width:65%}.skel-w70{width:70%}.skel-w80{width:80%}.skel-w85{width:85%}.skel-w90{width:90%}.skel-w100{width:100%}.markdown-body img{transition:transform .4s cubic-bezier(.22,1,.36,1),box-shadow .4s,border-color .4s}.markdown-body img:hover{box-shadow:0 10px 32px var(--shadow), 0 0 0 1px var(--accent-a15);border-color:var(--accent-a30);transform:scale(1.02)translateY(-2px)}.markdown-body blockquote{transition:background .3s;position:relative;overflow:hidden}.markdown-body blockquote:before{content:"";background:linear-gradient(180deg,var(--accent),var(--purple));transform-origin:top;width:2px;transition:transform .4s;position:absolute;top:0;bottom:0;left:0;transform:scaleY(0)}.markdown-body blockquote:hover:before{transform:scaleY(1)}.markdown-body table tbody tr{transition:background .25s}.markdown-body table tbody tr:hover{background:var(--overlay-a5)}.markdown-body pre{transition:box-shadow .35s,border-color .35s;position:relative}.markdown-body h2:before,.markdown-body h3:before{content:"#";color:var(--accent);opacity:0;margin-left:-18px;padding-right:6px;transition:opacity .25s,transform .25s;transform:translate(-6px)}.markdown-body h2:hover:before,.markdown-body h3:hover:before{opacity:.75;transform:translate(0)}.sort-btn.active{position:relative;overflow:hidden}.sort-btn.active:after{content:"";background:linear-gradient(90deg,#0000,#ffffff38,#0000);width:40%;height:100%;animation:.9s shine;position:absolute;top:0;left:0;transform:translate(-130%)skew(-20deg)}.kb-article.anim-fade{animation:.5s both fadeIn}.kb-empty,.kb-error,.kb-login-hint{animation:.4s both fadeInUp}.kb-project.active{animation:.35s cubic-bezier(.22,1,.36,1) both popIn}.code-actions{z-index:2;position:absolute;top:8px;right:8px}.code-copy-btn{font:inherit;cursor:pointer;color:var(--text-dim);background:var(--bg-float);border:1px solid var(--border-strong);opacity:0;border-radius:6px;padding:4px 9px;font-size:11px;transition:opacity .25s,transform .25s,border-color .2s,color .2s,background .2s;transform:translateY(-4px)}.markdown-body pre:hover .code-copy-btn,.code-copy-btn:focus-visible{opacity:1;transform:translateY(0)}.code-copy-btn:hover{color:var(--accent);border-color:var(--accent-a30);background:var(--accent-a8)}.code-copy-btn.copied{color:var(--ok);border-color:var(--ok-a30);background:var(--ok-a8)}.img-zoomable{cursor:zoom-in}.img-lightbox{z-index:9999;opacity:0;visibility:hidden;justify-content:center;align-items:center;transition:opacity .3s,visibility .3s;display:flex;position:fixed;inset:0}.img-lightbox.open{opacity:1;visibility:visible}.img-lightbox-backdrop{background:var(--modal-overlay,#000000b8);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);position:absolute;inset:0}.img-lightbox-figure{background:var(--bg-elevated);border:1px solid var(--border);max-width:90vw;max-height:90vh;box-shadow:0 24px 64px var(--shadow);border-radius:12px;padding:14px;transition:transform .3s cubic-bezier(.22,1,.36,1);position:relative;transform:scale(.92)}.img-lightbox.open .img-lightbox-figure{transform:scale(1)}.img-lightbox-img{border-radius:8px;max-width:82vw;max-height:74vh;display:block}.img-lightbox-cap{color:var(--text-dim);text-align:center;margin-top:10px;font-size:12px}.img-lightbox-close{width:32px;height:32px;color:var(--text);background:var(--bg-float);border:1px solid var(--border-strong);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;font-size:14px;display:flex;position:absolute;top:-12px;right:-12px}.img-lightbox-close:hover{color:var(--accent);border-color:var(--accent)}.markdown-body h2,.markdown-body h3,.markdown-body h4{scroll-margin-top:84px;transition:color .2s}.markdown-body h2:hover,.markdown-body h3:hover,.markdown-body h4:hover{color:var(--accent)}.markdown-body img.img-zoomable{will-change:transform;transition:transform .3s,filter .3s}.markdown-body img.img-zoomable:hover{filter:brightness(1.05);transform:scale(1.02)}.markdown-body pre{border:1px solid var(--border);transition:border-color .3s,box-shadow .3s}.markdown-body pre:hover{border-color:var(--accent-a30);box-shadow:0 0 0 1px var(--accent-a12), 0 8px 24px var(--shadow)}
