/*! normalize.css v3.0.2 | MIT License | git.io/normalize */@import url("https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap");html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:0.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace, monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}.highlight table td{padding:5px}.highlight table pre{margin:0}.highlight .cm{color:#999988;font-style:italic}.highlight .cp{color:#999999;font-weight:bold}.highlight .c1{color:#999988;font-style:italic}.highlight .cs{color:#999999;font-weight:bold;font-style:italic}.highlight .c,.highlight .cd{color:#999988;font-style:italic}.highlight .err{color:#a61717;background-color:#e3d2d2}.highlight .gd{color:#000000;background-color:#ffdddd}.highlight .ge{color:#000000;font-style:italic}.highlight .gr{color:#aa0000}.highlight .gh{color:#999999}.highlight .gi{color:#000000;background-color:#ddffdd}.highlight .go{color:#888888}.highlight .gp{color:#555555}.highlight .gs{font-weight:bold}.highlight .gu{color:#aaaaaa}.highlight .gt{color:#aa0000}.highlight .kc{color:#000000;font-weight:bold}.highlight .kd{color:#000000;font-weight:bold}.highlight .kn{color:#000000;font-weight:bold}.highlight .kp{color:#000000;font-weight:bold}.highlight .kr{color:#000000;font-weight:bold}.highlight .kt{color:#445588;font-weight:bold}.highlight .k,.highlight .kv{color:#000000;font-weight:bold}.highlight .mf{color:#009999}.highlight .mh{color:#009999}.highlight .il{color:#009999}.highlight .mi{color:#009999}.highlight .mo{color:#009999}.highlight .m,.highlight .mb,.highlight .mx{color:#009999}.highlight .sb{color:#d14}.highlight .sc{color:#d14}.highlight .sd{color:#d14}.highlight .s2{color:#d14}.highlight .se{color:#d14}.highlight .sh{color:#d14}.highlight .si{color:#d14}.highlight .sx{color:#d14}.highlight .sr{color:#009926}.highlight .s1{color:#d14}.highlight .ss{color:#990073}.highlight .s{color:#d14}.highlight .na{color:#008080}.highlight .bp{color:#999999}.highlight .nb{color:#0086B3}.highlight .nc{color:#445588;font-weight:bold}.highlight .no{color:#008080}.highlight .nd{color:#3c5d5d;font-weight:bold}.highlight .ni{color:#800080}.highlight .ne{color:#990000;font-weight:bold}.highlight .nf{color:#990000;font-weight:bold}.highlight .nl{color:#990000;font-weight:bold}.highlight .nn{color:#555555}.highlight .nt{color:#000080}.highlight .vc{color:#008080}.highlight .vg{color:#008080}.highlight .vi{color:#008080}.highlight .nv{color:#008080}.highlight .ow{color:#000000;font-weight:bold}.highlight .o{color:#000000;font-weight:bold}.highlight .w{color:#bbbbbb}.highlight{background-color:#f8f8f8}:root{--primary-color: #2563eb;--primary-hover: #1d4ed8;--secondary-color: #64748b;--accent-color: #06b6d4;--success-color: #10b981;--warning-color: #f59e0b;--error-color: #ef4444;--text-primary: #232b3a;--text-secondary: #64748b;--text-muted: #94a3b8;--bg-gradient: linear-gradient(135deg, #f8fafc 0%, #e0e7ef 100%);--bg-primary: #fff;--bg-secondary: #f8fafc;--bg-tertiary: #f3f6fa;--border-color: #e0e7ef;--border-hover: #cbd5e1;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);--shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);--radius-sm: 0.375rem;--radius-md: 0.5rem;--radius-lg: 0.75rem;--radius-xl: 1rem;--code-bg: #f3f6fa;--code-inline-bg: #e0e7ef;--code-inline-color: #2563eb;--code-operator: #0ea5e9;--code-keyword: #2563eb;--code-string: #ca8a04;--code-number: #b91c1c;--code-comment: #64748b;--code-bg-light: #f6f8fa;--code-bg-dark: #222436;--code-border-light: #e1e4e8;--code-border-dark: #2d2f40;--code-text-light: #24292e;--code-text-dark: #e6e9ef;--code-operator-light: #d73a49;--code-operator-dark: #ffad42;--code-keyword-light: #6f42c1;--code-keyword-dark: #82aaff;--code-type-light: #005cc5;--code-type-dark: #c792ea;--code-number-light: #005cc5;--code-number-dark: #f78c6c;--code-string-light: #032f62;--code-string-dark: #c3e88d;--code-comment-light: #6a737d;--code-comment-dark: #5c6370;--code-function-light: #6f42c1;--code-function-dark: #82aaff;--code-constant-light: #e36209;--code-constant-dark: #f78c6c;--code-inline-bg-light: #f3f6fa;--code-inline-bg-dark: #23253a;--code-inline-color-light: #005cc5;--code-inline-color-dark: #82aaff}*{box-sizing:border-box}body{padding:0;margin:0;font-family:system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;font-size:16px;font-weight:400;line-height:1.7;color:var(--text-primary);background:var(--bg-gradient);min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#skip-to-content{height:1px;width:1px;position:absolute;overflow:hidden;top:-10px}#skip-to-content:focus{position:fixed;top:10px;left:10px;height:auto;width:auto;background:var(--primary-color);color:white;outline:none;z-index:1000;padding:0.75em 1.5em;border-radius:var(--radius-md);font-weight:500;box-shadow:var(--shadow-lg)}a{color:var(--primary-color);text-decoration:none;transition:all 0.2s ease;border-bottom:1px solid transparent}a:hover{color:var(--primary-hover);border-bottom-color:var(--primary-hover)}.btn{display:inline-flex;align-items:center;justify-content:center;margin-bottom:1rem;color:white;background:rgba(36,58,115,0.7);border:none;border-radius:2em;padding:1.1em 2.5em;font-weight:700;font-size:1.1em;font-family:inherit;box-shadow:0 2px 16px 0 rgba(24,31,42,0.18);backdrop-filter:blur(6px);transition:background 0.2s, box-shadow 0.2s, transform 0.2s;position:relative;overflow:hidden}.btn::before{content:'';position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg, transparent, rgba(255,255,255,0.2), transparent);transition:left 0.5s}.btn:hover,.btn:focus{background:rgba(56,189,248,0.9);color:white;text-decoration:none;transform:translateY(-2px) scale(1.03);box-shadow:0 4px 32px 0 rgba(56,189,248,0.18)}.btn:hover::before,.btn:focus::before{left:100%}.btn:active{transform:translateY(0)}.btn+.btn{margin-left:1rem}@media screen and (min-width: 80rem){.btn{font-size:1.1rem;padding:1rem 2.5rem}}@media screen and (min-width: 48rem) and (max-width: 79.99rem){.btn{font-size:1rem;padding:0.875rem 2rem}}@media screen and (max-width: 47.99rem){.btn{display:block;width:100%;font-size:1rem;padding:1rem 1.5rem}.btn+.btn{margin-top:1rem;margin-left:0}}.page-header{color:white;text-align:center;background:linear-gradient(135deg, #667eea 0%, #764ba2 100%);position:relative;overflow:hidden}.page-header::before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><defs><pattern id="grain" width="100" height="100" patternUnits="userSpaceOnUse"><circle cx="50" cy="50" r="1" fill="white" opacity="0.1"/></pattern></defs><rect width="100" height="100" fill="url(%23grain)"/></svg>');opacity:0.3}@media screen and (min-width: 80rem){.page-header{padding:6rem 0}}@media screen and (min-width: 48rem) and (max-width: 79.99rem){.page-header{padding:4rem 0}}@media screen and (max-width: 47.99rem){.page-header{padding:3rem 1rem}}.project-name{margin-top:0;margin-bottom:0.5rem;font-weight:700;letter-spacing:-0.025em;position:relative;z-index:1}@media screen and (min-width: 80rem){.project-name{font-size:4rem}}@media screen and (min-width: 48rem) and (max-width: 79.99rem){.project-name{font-size:3rem}}@media screen and (max-width: 47.99rem){.project-name{font-size:2.25rem}}.project-tagline{margin-bottom:3rem;font-weight:400;opacity:0.9;font-size:1.25rem;position:relative;z-index:1}@media screen and (min-width: 80rem){.project-tagline{font-size:1.5rem}}@media screen and (min-width: 48rem) and (max-width: 79.99rem){.project-tagline{font-size:1.25rem}}@media screen and (max-width: 47.99rem){.project-tagline{font-size:1.125rem}}.main-content{word-wrap:break-word;background:var(--bg-primary);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,0.1)}.main-content :first-child{margin-top:0}@media screen and (min-width: 80rem){.main-content{max-width:80rem;padding:4rem 6rem;margin:3rem auto;font-size:1.125rem}}@media screen and (min-width: 48rem) and (max-width: 79.99rem){.main-content{max-width:100%;padding:3rem 3rem;margin:2rem auto;font-size:1.05rem}}@media screen and (max-width: 47.99rem){.main-content{max-width:100%;padding:2rem 1.5rem;margin:1.5rem 1rem;font-size:1rem;border-radius:var(--radius-lg)}}.main-content kbd{background:var(--bg-tertiary);border:1px solid var(--border-color);border-bottom:2px solid var(--border-hover);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);color:var(--text-primary);display:inline-block;font-size:0.875rem;font-family:'JetBrains Mono', monospace;line-height:1;padding:0.25rem 0.5rem;vertical-align:middle}.main-content img,.main-content video{max-width:100%;width:60%;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);margin:2.5rem auto;display:block;transition:transform 0.3s ease, box-shadow 0.3s ease}.main-content img:hover,.main-content video:hover{transform:scale(1.02);box-shadow:var(--shadow-xl)}.main-content h1,.main-content h2,.main-content h3,.main-content h4,.main-content h5,.main-content h6{margin-top:3rem;margin-bottom:1.5rem;font-weight:600;color:var(--text-primary);line-height:1.3;letter-spacing:-0.025em;position:relative;background:linear-gradient(90deg, #2563eb 0%, #38bdf8 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;text-shadow:0 2px 8px rgba(30,41,59,0.1);transition:background 0.3s, text-shadow 0.3s}.main-content h1::after,.main-content h2::after,.main-content h3::after,.main-content h4::after,.main-content h5::after,.main-content h6::after{content:'';position:absolute;bottom:-0.5rem;left:0;width:3rem;height:3px;background:linear-gradient(90deg, var(--primary-color), var(--accent-color));border-radius:2px}.main-content h1{font-size:2.5rem;font-weight:700}.main-content h2{font-size:2rem}.main-content h3{font-size:1.5rem}.main-content p,.main-content li,.main-content ul,.main-content ol,.main-content dl,.main-content dd,.main-content dt{font-size:1em;font-weight:400;letter-spacing:0.01em;line-height:1.7;color:var(--text-primary)}.main-content code{padding:0.25rem 0.5rem;font-family:'JetBrains Mono', Consolas, "Liberation Mono", Menlo, Courier, monospace;font-size:0.875em;color:var(--text-primary);background:var(--bg-tertiary);border-radius:var(--radius-sm);word-break:break-word;font-weight:500;border:1px solid var(--border-color)}.main-content pre,.main-content .highlight{background:var(--code-bg);color:var(--code-text);border:1px solid var(--code-border);border-radius:0.5rem;padding:1rem 1.2rem;font-size:1rem;font-family:'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;overflow-x:auto;margin:1.2rem 0;line-height:1.4}.main-content pre code,.main-content .highlight code{background:transparent;color:var(--code-text);font-size:1em;padding:0;line-height:1.4}.main-content .highlight .k,.main-content .highlight .kd,.main-content .highlight .kn,.main-content .highlight .kp,.main-content .highlight .kr,.main-content .highlight .kt{color:var(--code-keyword) !important;font-weight:bold}.main-content .highlight .s,.main-content .highlight .sb,.main-content .highlight .sc,.main-content .highlight .sd,.main-content .highlight .s2,.main-content .highlight .se,.main-content .highlight .sh,.main-content .highlight .si,.main-content .highlight .sx,.main-content .highlight .sr,.main-content .highlight .s1,.main-content .highlight .ss{color:var(--code-string) !important}.main-content .highlight .c,.main-content .highlight .cm,.main-content .highlight .c1,.main-content .highlight .cs{color:var(--code-comment) !important;font-style:italic}.main-content .highlight .m,.main-content .highlight .mf,.main-content .highlight .mh,.main-content .highlight .mi,.main-content .highlight .mo,.main-content .highlight .il{color:var(--code-number) !important}.main-content .highlight .na,.main-content .highlight .nb,.main-content .highlight .nc,.main-content .highlight .no,.main-content .highlight .nd,.main-content .highlight .ni,.main-content .highlight .ne,.main-content .highlight .nf,.main-content .highlight .nl,.main-content .highlight .nn,.main-content .highlight .nt,.main-content .highlight .nv,.main-content .highlight .vc,.main-content .highlight .vg,.main-content .highlight .vi{color:var(--code-function) !important}.main-content .highlight .err{color:#ef4444 !important;background:#2d1a1a !important}.main-content .highlight .w{color:#64748b !important}.main-content iframe{border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);margin:2rem auto;display:block;max-width:100%}.main-content .MathJax{font-size:1.1em}.main-content .highlight .lineno{color:var(--text-muted);background:var(--bg-secondary);border-right:1px solid var(--border-color);padding-right:1rem}.main-content code:not(pre code){background:var(--code-inline-bg);color:var(--code-inline-color);border:1px solid var(--code-border);border-radius:0.3em;padding:0.08em 0.35em;font-size:0.97em;font-family:'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;vertical-align:baseline;margin:0;box-shadow:none;white-space:pre}.main-content .copy-btn{position:fixed !important;top:1rem !important;right:1.5rem !important;background:rgba(36,58,115,0.7) !important;color:#fff !important;border:none !important;border-radius:2em !important;padding:0.4em 1.2em !important;font-size:0.95em !important;font-weight:600 !important;box-shadow:0 2px 8px 0 rgba(24,31,42,0.18);backdrop-filter:blur(6px);cursor:pointer;opacity:0.85;transition:background 0.2s, box-shadow 0.2s, opacity 0.2s;z-index:9999}.main-content .copy-btn:hover{background:rgba(56,189,248,0.9) !important;color:#fff !important;box-shadow:0 4px 16px 0 rgba(56,189,248,0.18);opacity:1}.main-content .highlight tr,.main-content .highlight td,.main-content .highlight pre,.main-content .highlight span{background:none !important;border:none !important;box-shadow:none !important;margin:0 !important;padding:0 !important}.main-content .highlight table{border-collapse:collapse !important;border-spacing:0 !important;background:none !important;width:100% !important}.main-content .highlight td{padding:0 !important}.site-footer{padding-top:3rem;margin-top:3rem;border-top:2px solid var(--border-color);background:var(--bg-secondary);color:var(--text-secondary)}@media screen and (min-width: 80rem){.site-footer{font-size:1.05rem;max-width:80rem;margin-left:auto;margin-right:auto;padding-left:6rem;padding-right:6rem}}@media screen and (min-width: 48rem) and (max-width: 79.99rem){.site-footer{font-size:1rem;max-width:100%;padding-left:3rem;padding-right:3rem}}@media screen and (max-width: 47.99rem){.site-footer{font-size:0.95rem;max-width:100%;padding-left:1.5rem;padding-right:1.5rem}}.site-footer-owner{display:block;font-weight:600;color:var(--text-primary)}.site-footer-credits{color:var(--text-muted);opacity:0.8}*,*:before,*:after{transition:none !important}@media (prefers-color-scheme: dark){body{background:linear-gradient(135deg, #181f2a 0%, #232b3a 100%) !important}.main-content pre,.main-content .highlight pre,.main-content pre code,.main-content .highlight{background:var(--code-bg-dark) !important;color:var(--code-text-dark) !important;border:1.5px solid var(--code-border-dark) !important}.main-content code:not(pre code){background:var(--code-inline-bg-dark) !important;color:var(--code-inline-color-dark) !important}.main-content table{background:var(--code-bg-dark) !important;color:var(--code-text-dark) !important;border:1px solid var(--code-border-dark) !important;padding:1rem !important;border-spacing:0.5rem !important;border-collapse:separate !important}.main-content td{background:var(--code-bg-dark) !important;color:var(--code-text-dark) !important}}@media (prefers-color-scheme: light){body{background:linear-gradient(135deg, #f8fafc 0%, #e0e7ef 100%) !important}.main-content pre,.main-content .highlight pre,.main-content pre code,.main-content .highlight{background:var(--code-bg-light) !important;color:var(--code-text-light) !important;border:1.5px solid var(--code-border-light) !important}.main-content code:not(pre code){background:var(--code-inline-bg-light) !important;color:var(--code-inline-color-light) !important}.main-content table{background:var(--code-bg-light) !important;color:var(--code-text-light) !important;border:1px solid var(--code-border-light) !important}.main-content td{background:var(--code-bg-light) !important;color:var(--code-text-light) !important}}.main-content,.site-footer,.page-header,.btn,.main-content pre,.main-content table{border-radius:1rem !important}*:focus{outline:2px solid var(--code-inline-color) !important;outline-offset:2px !important}.main-content .highlight .o,.main-content .highlight .ow{color:var(--code-operator) !important;font-weight:bold}.main-content .highlight .k,.main-content .highlight .kd,.main-content .highlight .kn,.main-content .highlight .kp,.main-content .highlight .kr,.main-content .highlight .kt{color:var(--code-keyword) !important;font-weight:bold}.main-content .highlight .nc,.main-content .highlight .nt{color:var(--code-type) !important}.main-content .highlight .m,.main-content .highlight .mf,.main-content .highlight .mh,.main-content .highlight .mi,.main-content .highlight .mo,.main-content .highlight .il{color:var(--code-number) !important}.main-content .highlight .s,.main-content .highlight .sb,.main-content .highlight .sc,.main-content .highlight .sd,.main-content .highlight .s2,.main-content .highlight .se,.main-content .highlight .sh,.main-content .highlight .si,.main-content .highlight .sx,.main-content .highlight .sr,.main-content .highlight .s1,.main-content .highlight .ss{color:var(--code-string) !important}.main-content .highlight .c,.main-content .highlight .cm,.main-content .highlight .c1,.main-content .highlight .cs{color:var(--code-comment) !important;font-style:italic}.main-content .highlight .nf{color:var(--code-function) !important}.main-content .highlight .no,.main-content .highlight .na{color:var(--code-constant) !important}
