:root{--font-sans:-apple-system,BlinkMacSystemFont,"SF Pro SC","PingFang SC","Hiragino Sans GB","Noto Sans SC","Microsoft YaHei","Segoe UI",sans-serif;--font-mono:ui-monospace,"SF Mono","JetBrains Mono","Cascadia Code",Menlo,Consolas,"Liberation Mono",monospace;--r-sm:6px;--r-lg:14px;--ease-out:cubic-bezier(0.16,1,0.3,1);--dur-fast:160ms;--dur-med:320ms;--header-h:64px}:root[data-theme=dark]{color-scheme:dark;--bg:#0a0e13;--bg-sunk:#070a0e;--surface:#111821;--surface-2:#182230;--border:rgba(146,168,196,0.14);--border-strong:rgba(146,168,196,0.3);--text:#e6edf5;--text-2:#9aa9bd;--text-3:#7d8da1;--accent:#3fd2a0;--accent-strong:#5fe0b4;--on-accent:#04231a;--accent-soft:rgba(63,210,160,0.1);--accent-border:rgba(63,210,160,0.38);--warn:#e0a83f;--warn-soft:rgba(224,168,63,0.12);--warn-border:rgba(224,168,63,0.4);--danger:#e07070;--danger-soft:rgba(224,112,112,0.12);--danger-border:rgba(224,112,112,0.4);--shadow-1:0 1px 2px rgba(2,6,10,0.4),0 12px 32px rgba(2,6,10,0.45);--shadow-pop:0 24px 64px rgba(2,6,10,0.6);--header-bg:rgba(10,14,19,0.78)}:root[data-theme=light]{color-scheme:light;--bg:#f4f6f7;--bg-sunk:#e9edef;--surface:#ffffff;--surface-2:#eef2f3;--border:rgba(15,42,60,0.12);--border-strong:rgba(15,42,60,0.24);--text:#10181f;--text-2:#4c5b6a;--text-3:#637383;--accent:#0a7a5a;--accent-strong:#096a4f;--on-accent:#ffffff;--accent-soft:rgba(10,122,90,0.08);--accent-border:rgba(10,122,90,0.35);--warn:#9a6a12;--warn-soft:rgba(154,106,18,0.1);--warn-border:rgba(154,106,18,0.35);--danger:#b03030;--danger-soft:rgba(176,48,48,0.08);--danger-border:rgba(176,48,48,0.32);--shadow-1:0 1px 2px rgba(16,24,31,0.05),0 12px 32px rgba(16,24,31,0.07);--shadow-pop:0 24px 64px rgba(16,24,31,0.18);--header-bg:rgba(244,246,247,0.82)}*,:after,:before{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{margin:0;min-height:100dvh;display:flex;flex-direction:column;background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:15px;line-height:1.65;-webkit-font-smoothing:antialiased;transition:background-color var(--dur-med) ease,color var(--dur-med) ease}body>main{flex:1 1;display:flex;flex-direction:column}h1,h2,h3,h4{margin:0;line-height:1.18;letter-spacing:-.015em;font-weight:700}p{margin:0}a{text-decoration:none}a,button{color:inherit}button{font:inherit}canvas,img,svg{display:block;max-width:100%}::selection{background:var(--accent);color:var(--on-accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--r-sm)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:999px;border:2px solid var(--bg)}::-webkit-scrollbar-track{background:transparent}.container{width:min(1180px,100% - 2.5rem);margin-inline:auto}.section{padding-block:clamp(64px,9vw,112px)}.mono{font-family:var(--font-mono)}.num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.skip-link{position:fixed;top:8px;left:8px;z-index:80;padding:8px 14px;background:var(--accent);color:var(--on-accent);border-radius:var(--r-sm);font-weight:600;transform:translateY(-200%);transition:transform var(--dur-fast) var(--ease-out)}.skip-link:focus-visible{transform:none}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:40px;padding:0 16px;border:1px solid transparent;border-radius:var(--r-sm);font-weight:600;font-size:14px;letter-spacing:.01em;white-space:nowrap;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;background:transparent;transition:transform var(--dur-fast) var(--ease-out),background-color var(--dur-fast) ease,border-color var(--dur-fast) ease,color var(--dur-fast) ease}.btn:active:not(:disabled){transform:translateY(1px) scale(.98)}.btn:disabled{opacity:.48;cursor:not-allowed}.btn-primary{background:var(--accent);color:var(--on-accent)}.btn-primary:hover:not(:disabled){background:var(--accent-strong)}.btn-outline{border-color:var(--border-strong);color:var(--text);background:transparent}.btn-outline:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.btn-ghost:hover:not(:disabled){background:var(--surface-2)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover:not(:disabled){filter:brightness(1.08)}.btn-sm{height:32px;padding:0 12px;font-size:13px}.btn-lg{height:46px;padding:0 22px;font-size:15px}.btn-block{width:100%}.btn-icon{width:40px;padding:0;flex:none}.tag{padding:3px 8px;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface-2);font-family:var(--font-mono)}.badge,.tag{display:inline-flex;align-items:center;color:var(--text-2);font-size:12px;line-height:1.5;white-space:nowrap}.badge{gap:6px;padding:3px 10px;border:1px solid var(--border);font-weight:600;background:var(--surface)}.badge,.badge-dot{border-radius:999px}.badge-dot{width:6px;height:6px;background:currentColor;flex:none}.badge-ok{color:var(--accent);background:var(--accent-soft);border-color:var(--accent-border)}.badge-warn{color:var(--warn);background:var(--warn-soft);border-color:var(--warn-border)}.badge-danger{color:var(--danger);background:var(--danger-soft);border-color:var(--danger-border)}.chip{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 14px;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--text-2);font-size:13px;font-weight:500;cursor:pointer;transition:color var(--dur-fast) ease,border-color var(--dur-fast) ease,background-color var(--dur-fast) ease}.chip:hover{border-color:var(--border-strong);color:var(--text)}.chip.is-active{color:var(--accent);border-color:var(--accent-border);background:var(--accent-soft);font-weight:600}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg)}.field{display:grid;grid-gap:6px;gap:6px}.label{font-size:13px;font-weight:600;color:var(--text-2)}.input,.select{height:40px;width:100%;padding:0 12px;border:1px solid var(--border-strong);border-radius:var(--r-sm);background:var(--surface);color:var(--text);font:inherit;transition:border-color var(--dur-fast) ease,box-shadow var(--dur-fast) ease}.input::placeholder{color:var(--text-3)}.input:focus,.select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.skeleton{position:relative;overflow:hidden;border-radius:var(--r-sm);background:var(--surface-2);min-height:1em}.spinner{width:18px;height:18px;border-radius:999px;border:2px solid var(--accent-soft);border-top-color:var(--accent);animation:spin .7s linear infinite;flex:none}@media (prefers-reduced-motion:no-preference){.reveal{opacity:0;transform:translateY(18px);transition:opacity .64s var(--ease-out),transform .64s var(--ease-out);transition-delay:var(--reveal-delay,0s);will-change:opacity,transform}.reveal.is-in{opacity:1;transform:none}.skeleton:after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 20%,rgba(146,168,196,.14) 50%,transparent 80%);animation:shimmer 1.5s infinite}}@keyframes spin{to{transform:rotate(1turn)}}@keyframes shimmer{0%{transform:translateX(-100%)}to{transform:translateX(100%)}}@keyframes fade-up{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes pulse-dot{0%,to{box-shadow:0 0 0 0 var(--accent-border)}55%{box-shadow:0 0 0 6px transparent}}@keyframes marquee-x{0%{transform:translateX(0)}to{transform:translateX(-50%)}}@keyframes draw-check{to{stroke-dashoffset:0}}@keyframes pop-in{0%{opacity:0;transform:scale(.92) translateY(8px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.reveal{opacity:1;transform:none}}