@import "https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@300;400;500;600;700;800&family=JetBrains+Mono:wght@400;500;600;700&display=swap";
:root{--bg-primary:#07090e;--bg-secondary:#0d121f;--bg-card:#121826b3;--bg-card-hover:#1a2336d9;--bg-glass:#0f172aa6;--border-subtle:#ffffff14;--border-focus:#00f0ff66;--text-primary:#f8fafc;--text-secondary:#94a3b8;--text-muted:#64748b;--accent-cyan:#00f0ff;--accent-cyan-dim:#00f0ff26;--accent-blue:#3b82f6;--accent-blue-dim:#3b82f626;--accent-indigo:#6366f1;--accent-emerald:#10b981;--accent-amber:#f59e0b;--accent-rose:#f43f5e;--gradient-brand:linear-gradient(135deg, #00f0ff 0%, #3b82f6 50%, #6366f1 100%);--gradient-glow:radial-gradient(circle at 50% -20%, #00f0ff26, transparent 70%);--gradient-card:linear-gradient(180deg, #ffffff0a 0%, #ffffff03 100%);--radius-sm:8px;--radius-md:12px;--radius-lg:18px;--radius-xl:24px;--font-sans:"Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono:"JetBrains Mono", monospace;--shadow-sm:0 2px 8px #0006;--shadow-md:0 8px 30px #00000080;--shadow-glow:0 0 40px #00f0ff33;--card-user-bg:linear-gradient(180deg, #00f0ff0d 0%, #0d121fcc 100%);--card-user-border:#00f0ff40;--card-dev-bg:linear-gradient(180deg, #3b82f60d 0%, #0d121fcc 100%);--card-dev-border:#3b82f640;--preview-card-bg:linear-gradient(180deg, #ffffff08 0%, #0d121fe6 100%);--disclaimer-bg:#f59e0b14;--disclaimer-border:#f59e0b59;--disclaimer-text:#fef3c7;--disclaimer-title:#fbbf24;--top-banner-bg:#f59e0b1f;--top-banner-border:#f59e0b40;--top-banner-text:#fbbf24;--cta-banner-bg:linear-gradient(135deg, #00f0ff1f 0%, #3b82f61f 50%, #6366f126 100%);--cta-banner-border:#00f0ff4d}[data-theme=light]{--bg-primary:#f8fafc;--bg-secondary:#fff;--bg-card:#fff;--bg-card-hover:#f1f5f9;--bg-glass:#fffffff5;--border-subtle:#0f172a1f;--border-focus:#0284c780;--text-primary:#0f172a;--text-secondary:#334155;--text-muted:#64748b;--accent-cyan:#0284c7;--accent-cyan-dim:#0284c714;--accent-blue:#2563eb;--accent-blue-dim:#2563eb14;--accent-indigo:#4f46e5;--accent-emerald:#059669;--accent-amber:#d97706;--accent-rose:#e11d48;--gradient-brand:linear-gradient(135deg, #0284c7 0%, #2563eb 50%, #4f46e5 100%);--gradient-glow:radial-gradient(circle at 50% -20%, #0284c714, transparent 70%);--gradient-card:linear-gradient(180deg, #fff 0%, #f8fafc 100%);--shadow-sm:0 1px 3px #0f172a14;--shadow-md:0 8px 24px #0f172a14;--shadow-glow:0 0 25px #0284c71f;--card-user-bg:linear-gradient(180deg, #f0f9ff 0%, #fff 100%);--card-user-border:#0284c740;--card-dev-bg:linear-gradient(180deg, #eef2ff 0%, #fff 100%);--card-dev-border:#2563eb40;--preview-card-bg:#fff;--disclaimer-bg:#fffbeb;--disclaimer-border:#fcd34d;--disclaimer-text:#78350f;--disclaimer-title:#92400e;--top-banner-bg:#fef3c7;--top-banner-border:#fde68a;--top-banner-text:#92400e;--cta-banner-bg:linear-gradient(135deg, #e0f2fe 0%, #eff6ff 50%, #e0e7ff 100%);--cta-banner-border:#0284c740}*{box-sizing:border-box;margin:0;padding:0}html,body{background-color:var(--bg-primary);color:var(--text-primary);font-family:var(--font-sans);scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;font-size:16px;line-height:1.6}body{background-image:radial-gradient(at 100% 0,#00f0ff12 0,#0000 50%),radial-gradient(at 0%,#6366f10f 0,#0000 50%),radial-gradient(at 80% 100%,#3b82f612 0,#0000 50%);background-attachment:fixed;position:relative;overflow-x:hidden}a{color:inherit;text-decoration:none;transition:color .2s}button{cursor:pointer;background:0 0;border:none;outline:none;font-family:inherit}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--accent-cyan)}.glass-panel{background:var(--bg-glass);-webkit-backdrop-filter:blur(16px);border:1px solid var(--border-subtle)}.glass-card{background:var(--gradient-card);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border-subtle);border-radius:var(--radius-md);transition:all .3s cubic-bezier(.16,1,.3,1)}.glass-card:hover{border-color:var(--border-focus);box-shadow:var(--shadow-glow);transform:translateY(-2px)}.btn-primary{background:var(--gradient-brand);color:#07090e;border-radius:var(--radius-sm);justify-content:center;align-items:center;gap:8px;padding:12px 24px;font-size:.95rem;font-weight:700;transition:all .25s;display:inline-flex;box-shadow:0 4px 20px #00f0ff4d}.btn-primary:hover{color:#000;transform:translateY(-2px);box-shadow:0 6px 28px #00f0ff80}.btn-secondary{color:var(--text-primary);border-radius:var(--radius-sm);border:1px solid var(--border-subtle);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffff0d;justify-content:center;align-items:center;gap:8px;padding:12px 24px;font-size:.95rem;font-weight:600;transition:all .25s;display:inline-flex}.btn-secondary:hover{border-color:var(--accent-cyan);color:var(--accent-cyan);background:#ffffff1a;transform:translateY(-2px)}[data-theme=light] body{background-image:radial-gradient(at 100% 0,#0284c70a 0,#0000 50%),radial-gradient(at 0%,#4f46e508 0,#0000 50%),radial-gradient(at 80% 100%,#2563eb0a 0,#0000 50%)}[data-theme=light] .btn-secondary{color:var(--text-primary);background:#fff;border-color:#0f172a26;box-shadow:0 1px 3px #0f172a0f}[data-theme=light] .btn-secondary:hover{border-color:var(--accent-cyan);color:var(--accent-cyan);background:#f8fafc}[data-theme=light] .glass-card{background:var(--bg-card);border:1px solid #0f172a17;box-shadow:0 2px 14px #0f172a0d}[data-theme=light] .glass-panel{background:#fffffff2;border-color:#0f172a14}[data-theme=light] .badge{color:#0369a1;background:#0284c714;border-color:#0284c740}[data-theme=light] .badge-dev{color:#1d4ed8;background:#2563eb14;border-color:#2563eb40}[data-theme=light] .badge-green{color:#047857;background:#10b98114;border-color:#10b98140}[data-theme=light] .code-inline{color:#0284c7;background:#f1f5f9;border-color:#cbd5e1}[data-theme=light] .markdown-body blockquote{color:#78350f;background:#fffbeb;border-left-color:#d97706}[data-theme=light] .markdown-body blockquote strong{color:#92400e}[data-theme=light] .markdown-body em{color:#1e293b}[data-theme=light] .markdown-body code{color:#0284c7;background:#f1f5f9;border-color:#cbd5e1}[data-theme=light] .markdown-body th{color:#0f172a;background:#f1f5f9;border-color:#e2e8f0}[data-theme=light] .markdown-body td{color:#334155;border-color:#e2e8f0}[data-theme=light] .markdown-body tr:nth-child(2n) td{background:#f8fafc}[data-theme=light] .callout-info{color:#1e40af;background:#eff6ff;border-color:#3b82f6}[data-theme=light] .callout-tip{color:#065f46;background:#ecfdf5;border-color:#10b981}[data-theme=light] .callout-warning{color:#92400e;background:#fffbeb;border-color:#f59e0b}.badge{text-transform:uppercase;letter-spacing:.05em;background:var(--accent-cyan-dim);color:var(--accent-cyan);border:1px solid #00f0ff4d;border-radius:20px;align-items:center;gap:6px;padding:4px 10px;font-size:.75rem;font-weight:700;display:inline-flex}.badge-dev{background:var(--accent-blue-dim);color:#60a5fa;border-color:#60a5fa4d}.badge-green{color:#34d399;background:#10b98126;border-color:#34d3994d}.gradient-text{background:var(--gradient-brand);-webkit-text-fill-color:transparent;-webkit-background-clip:text;display:inline-block}.code-inline{font-family:var(--font-mono);color:var(--accent-cyan);border:1px solid var(--border-subtle);background:#ffffff12;border-radius:4px;padding:2px 6px;font-size:.88em}.container{max-width:1680px;margin:0 auto;padding:0 40px}.container-narrow{max-width:1360px;margin:0 auto;padding:0 40px}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px;display:grid}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;display:grid}@media (max-width:1200px){.container{padding:0 24px}}@media (max-width:900px){.grid-cols-2,.grid-cols-3{grid-template-columns:1fr}}.code-block{border:1px solid var(--border-subtle);border-radius:var(--radius-md);font-family:var(--font-mono);background:#060911;margin:16px 0;font-size:.88rem;overflow:hidden}.code-header{border-bottom:1px solid var(--border-subtle);color:var(--text-muted);background:#ffffff08;justify-content:space-between;align-items:center;padding:8px 16px;font-size:.78rem;display:flex}.code-content{color:#e2e8f0;padding:16px;line-height:1.6;overflow-x:auto}.callout{border-radius:var(--radius-md);border-left:4px solid;align-items:flex-start;gap:14px;margin:16px 0;padding:16px 20px;display:flex}.callout-info{border-color:var(--accent-blue);color:#bfdbfe;background:#3b82f614}.callout-tip{border-color:var(--accent-emerald);color:#a7f3d0;background:#10b98114}.callout-warning{border-color:var(--accent-amber);color:#fde68a;background:#f59e0b14}.markdown-body{color:var(--text-secondary);font-size:1rem;line-height:1.8}.markdown-body h1{letter-spacing:-.03em;color:var(--text-primary);margin-top:0;margin-bottom:20px;font-size:2.3rem;font-weight:800;line-height:1.2}.markdown-body h2{color:var(--text-primary);border-bottom:1px solid var(--border-subtle);margin-top:40px;margin-bottom:16px;padding-bottom:8px;font-size:1.6rem;font-weight:700}.markdown-body h3{color:var(--accent-cyan);margin-top:30px;margin-bottom:12px;font-size:1.25rem;font-weight:700}.markdown-body p{color:var(--text-secondary);margin-bottom:18px;font-size:1.02rem;line-height:1.8}.markdown-body strong{color:var(--text-primary);font-weight:700}.markdown-body em{color:#e2e8f0;font-style:italic}.markdown-body ul,.markdown-body ol{margin-bottom:22px;padding-left:28px}.markdown-body li{color:var(--text-secondary);margin-bottom:10px;line-height:1.7}.markdown-body code{font-family:var(--font-mono);color:var(--accent-cyan);border:1px solid var(--border-subtle);background:#ffffff14;border-radius:4px;padding:3px 7px;font-size:.88em}.markdown-body pre{border:1px solid var(--border-subtle);border-radius:var(--radius-md);font-family:var(--font-mono);background:#060911;margin:22px 0;padding:18px 20px;font-size:.9rem;line-height:1.6;overflow-x:auto}.markdown-body pre code{color:#e2e8f0;background:0 0;border:none;padding:0}.markdown-body blockquote{border-left:4px solid var(--accent-amber);border-radius:var(--radius-sm);color:#fef3c7;background:#f59e0b14;margin:22px 0;padding:16px 20px;font-size:.95rem;line-height:1.65}.markdown-body blockquote strong{color:#fbbf24}.markdown-body hr{border:none;border-top:1px solid var(--border-subtle);margin:36px 0}.markdown-body table{border-collapse:collapse;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);width:100%;margin:24px 0;font-size:.92rem;overflow:hidden}.markdown-body th{color:var(--accent-cyan);text-align:left;border-bottom:1px solid var(--border-subtle);background:#ffffff0f;padding:12px 16px;font-weight:700}.markdown-body td{border-bottom:1px solid var(--border-subtle);color:var(--text-secondary);padding:12px 16px}.markdown-body tr:nth-child(2n) td{background:#ffffff05}.markdown-body a{color:var(--accent-cyan);text-underline-offset:3px;text-decoration:underline}.markdown-body a:hover{color:#38bdf8}.markdown-body img{border-radius:var(--radius-md);border:1px solid var(--border-subtle);max-width:100%;height:auto;margin:24px 0;display:block;box-shadow:0 10px 30px #00000080}.markdown-body .video{aspect-ratio:16/9;border-radius:var(--radius-md);border:1px solid var(--border-subtle);background:#000;width:100%;max-width:800px;margin:24px 0;position:relative;overflow:hidden}.markdown-body .video iframe{border:0;width:100%;height:100%;position:absolute;inset:0}.markdown-body .math-block{margin:18px 0;padding:4px 0;overflow-x:auto}.markdown-body .katex{font-size:1.05em}.markdown-body table td,.markdown-body table th{white-space:nowrap}[data-theme=light] .markdown-body pre code{color:#e2e8f0;background:0 0;border:none;padding:0}.video-layout{grid-template-columns:minmax(0,1fr) 320px;align-items:start;gap:24px;display:grid}.video-frame{border-radius:var(--radius-md);background:var(--bg-secondary);border:1px solid var(--border-subtle);box-shadow:var(--shadow-md);overflow:hidden}.video-frame video{aspect-ratio:16/9;width:100%;height:auto;display:block}.chapters{border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-card);overflow:hidden}.chapters-head{border-bottom:1px solid var(--border-subtle);color:var(--accent-cyan);letter-spacing:.08em;text-transform:uppercase;padding:12px 16px;font-size:.72rem;font-weight:700}.chapters ol{max-height:520px;list-style:none;overflow-y:auto}.chapters li button{text-align:left;border-bottom:1px solid var(--border-subtle);width:100%;color:var(--text-secondary);grid-template-columns:44px minmax(0,1fr);gap:10px;padding:9px 16px;font-size:.84rem;line-height:1.4;transition:background .15s,color .15s;display:grid}.chapters li:last-child button{border-bottom:none}.chapters li button:hover{background:var(--bg-card-hover);color:var(--text-primary)}.chapters li button:focus-visible{outline:2px solid var(--accent-cyan);outline-offset:-2px}.chapters li button.active{background:var(--accent-cyan-dim);color:var(--text-primary);box-shadow:inset 3px 0 0 var(--accent-cyan);font-weight:600}.chapters li .t{font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--accent-cyan);padding-top:1px;font-size:.74rem;font-weight:600}.chapters li .sub{color:var(--text-muted);margin-top:2px;font-size:.76rem;font-weight:400;display:block}.video-note{color:var(--text-muted);margin-top:12px;font-size:.82rem}@media (max-width:1100px){.video-layout{grid-template-columns:minmax(0,1fr)}.chapters ol{max-height:320px}}.tutorial-chips{flex-wrap:wrap;gap:10px;margin-bottom:8px;display:flex}.tutorial-chip{border:1px solid var(--border-subtle);background:var(--bg-card);color:var(--text-primary);border-radius:999px;align-items:center;gap:10px;padding:6px 8px 6px 14px;font-size:.85rem;font-weight:600;transition:border-color .2s,color .2s;display:inline-flex}.tutorial-chip:hover{border-color:var(--accent-cyan);color:var(--accent-cyan)}.tutorial-chip span{background:var(--accent-cyan-dim);min-width:26px;color:var(--accent-cyan);letter-spacing:.04em;text-align:center;text-transform:uppercase;border-radius:999px;padding:1px 8px;font-size:.7rem;font-weight:700}.tutorial-chip.muted{color:var(--text-secondary);background:0 0;border-style:dashed}.tutorial-chip.muted span{background:var(--bg-card-hover);color:var(--text-muted)}.tutorial-group{padding-top:36px;scroll-margin-top:120px}.tutorial-group-head{border-top:1px solid var(--border-subtle);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:6px 24px;margin-bottom:20px;padding-top:24px;display:flex}.tutorial-group-head h2{letter-spacing:-.02em;color:var(--text-primary);font-size:1.45rem;font-weight:700}.tutorial-group-head p{color:var(--text-secondary);font-size:.95rem}.tutorial-grid{grid-template-columns:repeat(auto-fill,minmax(min(300px,100%),1fr));gap:24px;display:grid}.video-card{border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-card);box-shadow:var(--shadow-sm);flex-direction:column;transition:transform .3s cubic-bezier(.16,1,.3,1),border-color .3s,box-shadow .3s;display:flex;overflow:hidden}a.video-card:hover{border-color:var(--border-focus);box-shadow:var(--shadow-glow);transform:translateY(-2px)}.video-card .poster{aspect-ratio:16/9;background:var(--bg-card-hover);border-bottom:1px solid var(--border-subtle);position:relative;overflow:hidden}.video-card .poster img{object-fit:cover;width:100%;height:100%;transition:transform .5s cubic-bezier(.22,1,.36,1);display:block}a.video-card:hover .poster img{transform:scale(1.025)}.video-card .play{background:var(--gradient-brand);width:42px;height:42px;color:var(--bg-primary);box-shadow:var(--shadow-md);border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;bottom:14px;left:14px}.video-card .duration{background:var(--bg-glass);color:var(--text-primary);border:1px solid var(--border-subtle);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font-family:var(--font-mono);font-variant-numeric:tabular-nums;border-radius:999px;padding:3px 10px;font-size:.72rem;font-weight:600;position:absolute;top:12px;right:12px}.video-card .body{flex-direction:column;flex:1;gap:8px;padding:18px 20px 20px;display:flex}.video-card .category{color:var(--accent-cyan);letter-spacing:.08em;text-transform:uppercase;font-size:.7rem;font-weight:700}.video-card h3{color:var(--text-primary);letter-spacing:-.01em;font-size:1.08rem;font-weight:700;line-height:1.35}.video-card p{color:var(--text-secondary);font-size:.88rem;line-height:1.6}.video-card .foot{color:var(--text-muted);justify-content:space-between;align-items:center;gap:12px;margin-top:auto;padding-top:8px;font-size:.82rem;display:flex}.video-card .watch{color:var(--accent-cyan);align-items:center;gap:6px;font-weight:600;display:inline-flex}.video-card.placeholder{box-shadow:none;background:0 0;border-style:dashed}.video-card.placeholder .poster{background:var(--accent-cyan-dim);color:var(--accent-cyan);letter-spacing:.08em;text-transform:uppercase;border-bottom-style:dashed;flex-direction:column;justify-content:center;align-items:center;gap:8px;font-size:.75rem;font-weight:700;display:flex}.video-card.placeholder .foot{justify-content:flex-start}.video-card.placeholder a.watch:hover{text-underline-offset:3px;text-decoration:underline}.tutorial-docs{border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-card);margin-top:28px;padding:18px 22px}.tutorial-docs-head{color:var(--accent-cyan);letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:8px;margin-bottom:10px;font-size:.72rem;font-weight:700;display:flex}.tutorial-docs ul{flex-direction:column;gap:8px;list-style:none;display:flex}.tutorial-docs li{flex-wrap:wrap;align-items:baseline;gap:4px 12px;font-size:.92rem;display:flex}.tutorial-docs li a{color:var(--accent-cyan);font-weight:600}.tutorial-docs li a:hover{text-underline-offset:3px;text-decoration:underline}.tutorial-docs li span{color:var(--text-muted);font-size:.86rem}.tutorial-pager{border-top:1px solid var(--border-subtle);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-top:40px;padding-top:24px;display:flex}.tutorial-pager .btn-secondary{padding:10px 18px;font-size:.88rem}.tutorial-pager .btn-secondary>span{flex-direction:column;display:flex}.tutorial-pager .pager-label{color:var(--text-muted);font-size:.7rem;font-weight:500}.watch-cards{grid-template-columns:repeat(auto-fill,minmax(min(420px,100%),1fr));gap:12px;margin:-12px 0 32px;display:grid}.watch-card{border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-card);align-items:center;gap:14px;padding:10px 14px 10px 10px;transition:border-color .2s,box-shadow .2s,transform .2s;display:flex}.watch-card:hover{border-color:var(--border-focus);box-shadow:var(--shadow-glow);transform:translateY(-1px)}.watch-card .thumb{aspect-ratio:16/9;border-radius:var(--radius-sm);background:var(--bg-card-hover);border:1px solid var(--border-subtle);flex:0 0 120px;position:relative;overflow:hidden}.watch-card .thumb img{object-fit:cover;width:100%;height:100%;display:block}.watch-card .thumb .play{background:var(--gradient-brand);width:30px;height:30px;color:var(--bg-primary);border-radius:50%;justify-content:center;align-items:center;margin:auto;display:flex;position:absolute;inset:0}.watch-card .text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.watch-card .label{color:var(--accent-cyan);letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:6px;font-size:.7rem;font-weight:700;display:inline-flex}.watch-card .title{color:var(--text-primary);font-size:.95rem;font-weight:600;line-height:1.35}.watch-card .meta{color:var(--text-muted);font-size:.8rem}.watch-card .arrow{color:var(--accent-cyan);flex-shrink:0}
