@font-face{font-family:remixicon;src:url(/fonts/remixicon.woff2)format("woff2");font-display:swap;font-weight:400;font-style:normal}[class^=ri-],[class*=\ ri-]{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-style:normal;font-family:remixicon!important}.ri-add-line:before{content:""}.ri-ancient-gate-line:before{content:""}.ri-armchair-line:before{content:""}.ri-arrow-down-s-line:before{content:""}.ri-arrow-left-line:before{content:""}.ri-arrow-left-right-line:before{content:""}.ri-arrow-right-line:before{content:""}.ri-arrow-right-s-line:before{content:""}.ri-arrow-up-s-line:before{content:""}.ri-article-line:before{content:""}.ri-bar-chart-2-line:before{content:""}.ri-bookmark-line:before{content:""}.ri-braces-line:before{content:""}.ri-brush-line:before{content:""}.ri-chat-smile-2-line:before{content:""}.ri-check-line:before{content:""}.ri-clipboard-line:before{content:""}.ri-close-circle-fill:before{content:""}.ri-close-line:before{content:""}.ri-code-line:before{content:""}.ri-code-s-slash-line:before{content:""}.ri-compass-3-line:before{content:""}.ri-contrast-2-line:before{content:""}.ri-contrast-drop-2-line:before{content:""}.ri-contrast-line:before{content:""}.ri-dashboard-3-line:before{content:""}.ri-database-2-line:before{content:""}.ri-delete-bin-line:before{content:""}.ri-download-2-line:before{content:""}.ri-drop-line:before{content:""}.ri-edit-line:before{content:""}.ri-emotion-line:before{content:""}.ri-equalizer-line:before{content:""}.ri-error-warning-line:before{content:""}.ri-exchange-line:before{content:""}.ri-eye-close-line:before{content:""}.ri-eye-line:before{content:""}.ri-file-code-line:before{content:""}.ri-file-copy-line:before{content:""}.ri-file-image-line:before{content:""}.ri-file-list-3-line:before{content:""}.ri-flag-line:before{content:""}.ri-flask-line:before{content:""}.ri-focus-3-line:before{content:""}.ri-folder-line:before{content:""}.ri-folder-open-line:before{content:""}.ri-font-size-2:before{content:""}.ri-global-line:before{content:""}.ri-group-line:before{content:""}.ri-heart-3-line:before{content:""}.ri-heart-fill:before{content:""}.ri-heart-line:before{content:""}.ri-history-line:before{content:""}.ri-home-smile-2-line:before{content:""}.ri-image-2-line:before{content:""}.ri-image-add-line:before{content:""}.ri-image-line:before{content:""}.ri-information-line:before{content:""}.ri-key-2-line:before{content:""}.ri-landscape-line:before{content:""}.ri-layout-3-line:before{content:""}.ri-layout-masonry-line:before{content:""}.ri-leaf-line:before{content:""}.ri-lightbulb-flash-line:before{content:""}.ri-line-chart-line:before{content:""}.ri-link:before{content:""}.ri-loader-4-line:before{content:""}.ri-lock-fill:before{content:""}.ri-lock-line:before{content:""}.ri-lock-unlock-line:before{content:""}.ri-logout-box-r-line:before{content:""}.ri-magic-line:before{content:""}.ri-mail-fill:before{content:""}.ri-markdown-fill:before{content:""}.ri-message-3-line:before{content:""}.ri-mind-map:before{content:""}.ri-moon-line:before{content:""}.ri-more-fill:before{content:""}.ri-node-tree:before{content:""}.ri-paint-brush-line:before{content:""}.ri-paint-fill:before{content:""}.ri-palette-line:before{content:""}.ri-pantone-line:before{content:""}.ri-pencil-ruler-2-line:before{content:""}.ri-pie-chart-2-line:before{content:""}.ri-printer-line:before{content:""}.ri-quill-pen-line:before{content:""}.ri-refresh-line:before{content:""}.ri-robot-2-line:before{content:""}.ri-route-line:before{content:""}.ri-ruler-line:before{content:""}.ri-scales-3-line:before{content:""}.ri-scissors-2-line:before{content:""}.ri-search-eye-line:before{content:""}.ri-settings-4-line:before{content:""}.ri-shadow-line:before{content:""}.ri-shape-line:before{content:""}.ri-shuffle-line:before{content:""}.ri-sparkling-2-fill:before{content:""}.ri-sparkling-2-line:before{content:""}.ri-sparkling-line:before{content:""}.ri-sun-line:before{content:""}.ri-tools-line:before{content:""}.ri-translate-2:before{content:""}.ri-upload-cloud-line:before{content:""}.ri-vip-crown-fill:before{content:""}.ri-wechat-fill:before{content:""}.ri-fw{text-align:center;width:1.25em}.ri-xxs{font-size:.5em}.ri-xs{font-size:.75em}.ri-sm{font-size:.875em}.ri-1x{font-size:1em}.ri-lg{vertical-align:-.0667em;font-size:1.3333em;line-height:.75em}.ri-xl{vertical-align:-.075em;font-size:1.5em;line-height:.6666em}.ri-2x{font-size:2em}.ri-3x{font-size:3em}
*,:before,:after{box-sizing:border-box}html,body{width:100%;max-width:100vw;margin:0;padding:0}:root{--color-brand:#6366f1;--color-brand-light:#8b5cf6;--color-brand-soft:#a78bfa;--color-brand-bg:#eef2ff;--color-bg:#fff;--color-bg-page:#f9fafb;--color-bg-card:#fff;--color-bg-muted:#f3f4f6;--color-bg-code:#0f0f1a;--color-text:#111827;--color-text-secondary:#4b5563;--color-text-muted:#9ca3af;--color-text-faint:#d1d5db;--color-border:#e5e7eb;--color-border-light:#f3f4f6;--color-success:#059669;--color-info:#2563eb;--color-warning:#d97706;--color-danger:#ef4444;--font-heading:"Inter",system-ui,sans-serif;--font-body:"Noto Sans SC",system-ui,sans-serif;--font-serif:"Noto Serif SC","Songti SC",serif;--font-mono:"JetBrains Mono","Fira Code",monospace;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:20px;--shadow-card:0 4px 24px #0000000d;--shadow-float:0 16px 48px #0000001f;--shadow-brand:0 6px 20px #6366f140;--color-background:var(--color-bg);--color-foreground:var(--color-text);--font-sans:var(--font-body)}html{scroll-behavior:smooth}body{font-family:var(--font-body);background:var(--color-bg-page);color:var(--color-text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.7}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--color-text-faint);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--color-text-muted)}::selection{background:var(--color-brand);color:#fff}.full-height{height:100dvh}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes gradient-shift{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}.animate-float{animation:4s ease-in-out infinite float}.animate-fade-in{animation:.4s ease-out both fadeIn}.gradient-brand{background:linear-gradient(135deg,var(--color-brand),var(--color-brand-light))}.gradient-hero{background:linear-gradient(135deg,#6366f1 0%,#8b5cf6 50%,#a78bfa 100%) 0 0/200% 200%;animation:8s infinite gradient-shift}
