.accent-backdrop{pointer-events:none;z-index:-1;position:fixed;inset:0;overflow:hidden}.blob{pointer-events:none;filter:blur(90px);mix-blend-mode:screen;will-change:transform, border-radius;position:absolute}.blob-1{background:var(--accent-blob-1);width:60vw;height:55vh;animation:22s ease-in-out infinite roam-1;top:-18vh;left:-18vw}.blob-2{background:var(--accent-blob-2);width:55vw;height:52vh;animation:28s ease-in-out infinite roam-2;top:55vh;left:52vw}.blob-3{background:var(--accent-blob-3);width:44vw;height:42vh;animation:18s ease-in-out infinite roam-3;top:22vh;left:22vw}html[data-theme=light] .blob,html[data-theme=medium] .blob{mix-blend-mode:multiply;opacity:.6;filter:blur(110px)}@media (prefers-reduced-motion:reduce){.blob{animation:none}}@keyframes roam-1{0%{border-radius:60% 40% 30% 70%/60% 30% 70% 40%;transform:translate(0)}20%{border-radius:30% 60% 70% 40%/50% 60% 30%;transform:translate(68vw,8vh)}40%{border-radius:55% 45% 60% 35%/40% 55% 45% 65%;transform:translate(48vw,52vh)}60%{border-radius:40% 70% 35% 55%/65% 35% 60% 40%;transform:translate(8vw,60vh)}80%{border-radius:70% 30% 50% 55%/55% 65% 30% 50%;transform:translate(-5vw,30vh)}to{border-radius:60% 40% 30% 70%/60% 30% 70% 40%;transform:translate(0)}}@keyframes roam-2{0%{border-radius:40% 60% 70% 30%/50% 40% 60% 50%;transform:translate(0)}25%{border-radius:65% 35% 45% 60%/30% 65% 40% 55%;transform:translate(-40vw,-45vh)}50%{border-radius:30% 70% 55% 45%/60% 35% 55% 45%;transform:translate(-62vw,-52vh)}75%{border-radius:55% 40% 65% 35%/45% 60% 35% 65%;transform:translate(-58vw,-8vh)}to{border-radius:40% 60% 70% 30%/50% 40% 60% 50%;transform:translate(0)}}@keyframes roam-3{0%{border-radius:50% 60% 40% 55%/45% 55% 60% 40%;transform:translate(0)}20%{border-radius:35% 65% 60% 45%/60% 40% 45% 65%;transform:translate(-28vw,-28vh)}40%{border-radius:65% 35% 45% 60%/35% 65% 55% 40%;transform:translate(38vw,42vh)}60%{border-radius:45% 55% 70% 35%/55% 45% 35% 65%;transform:translate(38vw,-30vh)}80%{border-radius:60% 40% 55% 45%/40% 60% 45% 55%;transform:translate(-30vw,35vh)}to{border-radius:50% 60% 40% 55%/45% 55% 60% 40%;transform:translate(0)}}:root{--bg:#0d0f14;--surface:#13161e;--surface2:#1a1e28;--border:#2a3040;--border2:#3a4458;--text:#e8eaf0;--text2:#8a92a8;--text3:#5a6278;--blue:#4a9eff;--blue-dim:#1a3a5c;--blue-bg:#0d1e33;--teal:#2dd4bf;--teal-dim:#0d3530;--teal-bg:#071c1a;--green:#4ade80;--green-dim:#0d3320;--amber:#fbbf24;--amber-dim:#3a2800;--amber-bg:#1e1500;--coral:#f87171;--coral-dim:#3a1010;--purple:#a78bfa;--purple-dim:#2a1a4a;--purple-bg:#160d2a;--pink:#f472b6;--pink-dim:#3a0f26;--gray:#64748b;--gray-dim:#1e2530;--code-bg:#0a0c12;--orange:#fb923c;--orange-dim:#3a1800;--yellow:#facc15;--yellow-dim:#2a2000;--accent-primary:var(--blue);--accent-primary-dim:var(--blue-dim);--accent-primary-bg:var(--blue-bg);--topbar-height:48px;--progbar-height:44px;--header-height:calc(var(--topbar-height) + var(--progbar-height));--sidebar-width:230px}html[data-theme=light]{--bg:#f8f9fb;--surface:#fff;--surface2:#f0f2f5;--border:#d8dce5;--border2:#c0c8d4;--text:#1a1d24;--text2:#4a5268;--text3:#6b7590;--blue:#2563eb;--blue-dim:#bfdbfe;--blue-bg:#eff6ff;--teal:#0d9488;--teal-dim:#99f6e4;--teal-bg:#f0fdfa;--green:#16a34a;--green-dim:#bbf7d0;--amber:#d97706;--amber-dim:#fde68a;--amber-bg:#fffbeb;--coral:#dc2626;--coral-dim:#fecaca;--purple:#7c3aed;--purple-dim:#ddd6fe;--purple-bg:#f5f3ff;--pink:#db2777;--pink-dim:#fbcfe8;--gray:#475569;--gray-dim:#cbd5e1;--code-bg:#f1f5f9;--orange:#ea580c;--orange-dim:#fed7aa;--yellow:#ca8a04;--yellow-dim:#fef08a}html[data-theme=medium]{--bg:#f3ede3;--surface:#faf6ee;--surface2:#ebe3d4;--border:#d6cab6;--border2:#b8a98e;--text:#2c2a24;--text2:#5e5749;--text3:#746a56;--blue:#1d4ed8;--blue-dim:#c7d7f5;--blue-bg:#eef3fc;--teal:#0f766e;--teal-dim:#a7e6d9;--teal-bg:#e6f5f1;--green:#15803d;--green-dim:#b6ebc8;--amber:#92400e;--amber-dim:#f5dcb0;--amber-bg:#fcf4e0;--coral:#be185d;--coral-dim:#f3c9d9;--purple:#5b21b6;--purple-dim:#d8ccf0;--purple-bg:#f1ebfb;--pink:#be185d;--pink-dim:#f0c8d9;--gray:#57534e;--gray-dim:#dcd4c3;--code-bg:#ebe1d0;--orange:#9a3412;--orange-dim:#f5caa8;--yellow:#a16207;--yellow-dim:#f0dfa0}html[data-theme=midnight]{--bg:#05070d;--surface:#0a0e1a;--surface2:#12182a;--border:#1d2540;--border2:#2e3a5c;--text:#dcdeea;--text2:#9298b8;--text3:#7a82a8;--blue:#60a5fa;--blue-dim:#16264a;--blue-bg:#081024;--teal:#5eead4;--teal-dim:#0c3a33;--teal-bg:#03201c;--green:#86efac;--green-dim:#0a3323;--amber:#fcd34d;--amber-dim:#3a2800;--amber-bg:#1a1200;--coral:#fda4af;--coral-dim:#3c1218;--purple:#c4b5fd;--purple-dim:#2a1a5c;--purple-bg:#110828;--pink:#f9a8d4;--pink-dim:#3a1130;--gray:#94a3b8;--gray-dim:#1a2030;--code-bg:#03050a;--orange:#fdba74;--orange-dim:#3a1800;--yellow:#fde68a;--yellow-dim:#2c2200}html[data-accent=blue]{--accent-primary:var(--blue);--accent-primary-dim:var(--blue-dim);--accent-primary-bg:var(--blue-bg);--accent-glow:#4a9eff59;--accent-ring:#4a9eff80;--accent-selection-bg:#4a9eff52;--accent-blob-1:#4a9eff4d;--accent-blob-2:#2dd4bf3d;--accent-blob-3:#a78bfa38}html[data-accent=teal]{--accent-primary:var(--teal);--accent-primary-dim:var(--teal-dim);--accent-primary-bg:var(--teal-bg);--accent-glow:#2dd4bf59;--accent-ring:#2dd4bf80;--accent-selection-bg:#2dd4bf52;--accent-blob-1:#2dd4bf4d;--accent-blob-2:#4ade803d;--accent-blob-3:#4a9eff38}html[data-accent=coral]{--accent-primary:var(--coral);--accent-primary-dim:var(--coral-dim);--accent-primary-bg:var(--bg);--accent-glow:#f8717159;--accent-ring:#f8717180;--accent-selection-bg:#f8717152;--accent-blob-1:#f871714d;--accent-blob-2:#f472b63d;--accent-blob-3:#fb923c38}html[data-accent=amber]{--accent-primary:var(--amber);--accent-primary-dim:var(--amber-dim);--accent-primary-bg:var(--amber-bg);--accent-glow:#fbbf2466;--accent-ring:#fbbf248c;--accent-selection-bg:#fbbf2452;--accent-blob-1:#fbbf244d;--accent-blob-2:#fb923c3d;--accent-blob-3:#f8717133}html[data-accent=purple]{--accent-primary:var(--purple);--accent-primary-dim:var(--purple-dim);--accent-primary-bg:var(--purple-bg);--accent-glow:#a78bfa61;--accent-ring:#a78bfa8c;--accent-selection-bg:#a78bfa52;--accent-blob-1:#a78bfa4d;--accent-blob-2:#f472b638;--accent-blob-3:#4a9eff38}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text);font-family:Sora,sans-serif;font-size:15px;line-height:1.75}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--accent-primary-dim);border-radius:3px;transition:background .2s}::-webkit-scrollbar-thumb:hover{background:var(--accent-primary)}::selection{background:var(--accent-selection-bg);color:var(--text)}:focus-visible{box-shadow:0 0 0 3px var(--accent-ring);border-radius:4px;outline:none}h1{letter-spacing:-.02em;color:var(--text);font-size:36px;font-weight:700;line-height:1.15}h2{letter-spacing:-.01em;color:var(--text);margin-bottom:3px;font-size:22px;font-weight:700}h3{color:var(--text);letter-spacing:-.01em;margin:24px 0 9px;font-size:15px;font-weight:600}h4{color:var(--text2);margin:18px 0 7px;font-size:13px;font-weight:600}p{color:var(--text2);margin-bottom:13px;line-height:1.75}strong{color:var(--text);font-weight:600}code{background:var(--surface2);border:1px solid var(--border);color:var(--blue);border-radius:3px;padding:1px 6px;font-family:JetBrains Mono,monospace;font-size:12px}a{color:var(--accent-primary);text-decoration:none;transition:color .15s}a:hover{text-decoration:underline}.mono{font-family:JetBrains Mono,monospace}.accent{color:var(--accent-primary)}.page-body{padding-top:var(--header-height)}@media (width>=1200px){:root{--progbar-rail-width:200px;--progbar-right-rail-width:180px;--header-height:var(--topbar-height)}.page-body{padding-left:var(--progbar-rail-width);padding-right:var(--progbar-right-rail-width);transition:padding .2s}body[data-progbar-frontend=collapsed] .page-body{padding-left:48px}body[data-progbar-systems=collapsed] .page-body{padding-right:48px}}.doc-layout{grid-template-columns:var(--sidebar-width) 1fr;max-width:1160px;margin:0 auto;display:grid}.content{max-width:860px;padding:44px 52px}.section{scroll-margin-top:calc(var(--header-height) + 20px);margin-bottom:68px}.section-header{border-bottom:1px solid var(--border);align-items:flex-start;gap:14px;margin-bottom:24px;padding-bottom:18px;display:flex}.level-number{color:var(--blue);background:var(--blue-bg);border:1px solid var(--blue-dim);letter-spacing:.05em;border-radius:4px;flex-shrink:0;margin-top:5px;padding:3px 9px;font-family:JetBrains Mono,monospace;font-size:10px;font-weight:600}.data-table{border-collapse:collapse;border:1px solid var(--border);border-radius:8px;width:100%;margin:14px 0;font-size:13px;overflow:hidden}.data-table th{background:var(--surface2);color:var(--text);text-align:left;letter-spacing:.05em;border-bottom:1px solid var(--border2);padding:9px 13px;font-size:11px;font-weight:600}.data-table td{border-bottom:1px solid var(--border);color:var(--text2);vertical-align:top;padding:9px 13px}.data-table tr:last-child td{border-bottom:none}.data-table tr:hover td{background:var(--surface2)}.pill-list{flex-direction:column;gap:5px;margin:10px 0;display:flex}.pill-row{border:1px solid var(--border);background:var(--surface);border-radius:6px;align-items:center;gap:10px;padding:9px 13px;font-size:12.5px;display:flex}.pill-label{flex-shrink:0;width:130px;font-family:JetBrains Mono,monospace;font-weight:600}.pill-desc{color:var(--text2);flex:1;font-size:12px}.flow-steps{align-items:stretch;gap:0;margin:16px 0;display:flex;overflow-x:auto}.flow-step{border:1px solid;border-radius:7px;flex:1;min-width:120px;padding:12px;position:relative}.flow-step-num{letter-spacing:.1em;text-transform:uppercase;margin-bottom:5px;font-family:JetBrains Mono,monospace;font-size:9px}.flow-step-title{margin-bottom:3px;font-size:11.5px;font-weight:600}.flow-step-desc{color:var(--text2);overflow-wrap:break-word;font-family:JetBrains Mono,monospace;font-size:10.5px;line-height:1.4}.flow-arrow{color:var(--text3);flex-shrink:0;align-self:center;align-items:center;padding:0 5px;font-size:16px;display:flex}.fstep-blue{background:#4a9eff12;border-color:#4a9eff59}.fstep-blue .flow-step-num,.fstep-blue .flow-step-title{color:var(--blue)}.fstep-teal{background:#2dd4bf12;border-color:#2dd4bf59}.fstep-teal .flow-step-num,.fstep-teal .flow-step-title{color:var(--teal)}.fstep-amber{background:#fbbf2412;border-color:#fbbf2459}.fstep-amber .flow-step-num,.fstep-amber .flow-step-title{color:var(--amber)}.fstep-coral{background:#f8717112;border-color:#f8717159}.fstep-coral .flow-step-num,.fstep-coral .flow-step-title{color:var(--coral)}.fstep-green{background:#4ade8012;border-color:#4ade8059}.fstep-green .flow-step-num,.fstep-green .flow-step-title{color:var(--green)}.fstep-purple{background:#a78bfa12;border-color:#a78bfa59}.fstep-purple .flow-step-num,.fstep-purple .flow-step-title{color:var(--purple)}html[data-theme=light] .fstep-blue{background:#2563eb0f;border-color:#2563eb4d}html[data-theme=light] .fstep-teal{background:#0d94880f;border-color:#0d94884d}html[data-theme=light] .fstep-amber{background:#d977060f;border-color:#d977064d}html[data-theme=light] .fstep-coral{background:#dc26260f;border-color:#dc26264d}html[data-theme=light] .fstep-green{background:#16a34a0f;border-color:#16a34a4d}html[data-theme=light] .fstep-purple{background:#7c3aed0f;border-color:#7c3aed4d}.badge{letter-spacing:.06em;vertical-align:middle;border-radius:3px;padding:2px 7px;font-family:JetBrains Mono,monospace;font-size:9px;font-weight:600;display:inline-block}.badge-blue{background:var(--blue-bg);color:var(--blue);border:1px solid var(--blue-dim)}.badge-teal{background:var(--teal-bg);color:var(--teal);border:1px solid #2dd4bf4d}.badge-green{background:var(--green-dim);color:var(--green);border:1px solid #4ade804d}.badge-amber{background:var(--amber-bg);color:var(--amber);border:1px solid #fbbf244d}.badge-coral{background:var(--coral-dim);color:var(--coral);border:1px solid #f871714d}.badge-purple{background:var(--purple-bg);color:var(--purple);border:1px solid var(--purple-dim)}.badge-gray{background:var(--gray-dim);color:var(--gray);border:1px solid #64748b4d}.diagram-wrap{background:var(--surface);border:1px solid var(--border);border-radius:10px;margin:20px 0;padding:22px;position:relative;overflow-x:auto}.diagram-expand-btn{z-index:2;border:1px solid var(--border);background:var(--surface2);width:28px;height:28px;color:var(--text3);cursor:pointer;opacity:.7;border-radius:6px;justify-content:center;align-items:center;transition:opacity .15s,color .15s,border-color .15s;display:inline-flex;position:absolute;top:8px;right:8px}.diagram-wrap:hover .diagram-expand-btn,.diagram-expand-btn:focus-visible{opacity:1;color:var(--blue);border-color:var(--blue)}.diagram-fullscreen-backdrop{z-index:300;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000000c7;justify-content:center;align-items:center;padding:5vh 4vw;display:flex;position:fixed;inset:0}.diagram-fullscreen-body{background:var(--surface);border:1px solid var(--border2);border-radius:12px;flex-direction:column;align-items:center;gap:14px;width:auto;max-width:92vw;max-height:90vh;padding:28px;display:flex;overflow:auto}.diagram-fullscreen-body>svg{width:auto;max-width:100%;height:auto;max-height:78vh}.diagram-fullscreen-close{border:1px solid var(--border2);background:var(--surface2);width:40px;height:40px;color:var(--text);cursor:pointer;border-radius:50%;font-size:22px;line-height:1;transition:background .15s,border-color .15s;position:absolute;top:18px;right:22px}.diagram-fullscreen-close:hover{background:var(--surface);border-color:var(--coral);color:var(--coral)}.diagram-caption{color:var(--text3);text-align:center;letter-spacing:.02em;margin-top:10px;font-family:JetBrains Mono,monospace;font-size:11px}svg .t{fill:var(--text2);font-family:JetBrains Mono,monospace;font-size:13px}svg .th{fill:var(--text);font-family:JetBrains Mono,monospace;font-size:13px;font-weight:600}svg .ts{fill:var(--text3);font-family:JetBrains Mono,monospace;font-size:11px}html[data-theme=light] svg .t{fill:#4a5268}html[data-theme=light] svg .th{fill:#1a1d24}html[data-theme=light] svg .ts{fill:#6b7590}.back-to-top{border:1px solid var(--border);background:var(--surface);width:40px;height:40px;color:var(--text3);cursor:pointer;z-index:50;opacity:0;pointer-events:none;border-radius:8px;justify-content:center;align-items:center;font-size:18px;transition:all .2s;display:flex;position:fixed;bottom:28px;right:28px;box-shadow:0 4px 12px #0000004d}.back-to-top.visible{opacity:1;pointer-events:all}.back-to-top:hover{color:var(--text);border-color:var(--border2);transform:translateY(-2px)}html[data-theme=light] .back-to-top{box-shadow:0 4px 12px #0000001a}.doc-footer{border-top:1px solid var(--border);color:var(--text3);flex-wrap:wrap;justify-content:space-between;align-items:center;margin-top:40px;padding:28px 52px;font-family:JetBrains Mono,monospace;font-size:11px;display:flex}.footer-badge{background:var(--surface2);border:1px solid var(--border);border-radius:4px;padding:3px 9px;font-size:10px}.rolling-grid{flex-direction:column;gap:6px;display:flex}.rolling-row{align-items:center;gap:5px;display:flex}.rolling-label{color:var(--text3);flex-shrink:0;width:54px;font-family:JetBrains Mono,monospace;font-size:10px}.pod-chip{text-align:center;border:1px solid;border-radius:5px;flex:1;padding:5px 8px;font-family:JetBrains Mono,monospace;font-size:10px;font-weight:600}.pod-old{color:var(--coral);background:#f871711a;border-color:#f8717159}.pod-new{color:var(--teal);background:#2dd4bf1a;border-color:#2dd4bf59}.image-layers{border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:0;display:flex;overflow:hidden}.img-layer{border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:10px 16px;font-size:12.5px;display:flex}.img-layer:last-child{border-bottom:none}.img-layer-num{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;font-family:JetBrains Mono,monospace;font-size:10px;font-weight:600;display:flex}.img-layer-name{flex-shrink:0;width:120px;font-weight:600}.img-layer-desc{color:var(--text2);flex:1;font-size:11px}.img-layer-freq{border-radius:3px;flex-shrink:0;padding:2px 7px;font-family:JetBrains Mono,monospace;font-size:10px}.node-grid{grid-template-columns:1fr 1fr;gap:12px;margin:14px 0;display:grid}.node-card{border:1px solid;border-radius:8px;padding:14px}.node-card.cp{background:#f871710d;border-color:#f8717159}.node-card.worker{background:#4a9eff0a;border-color:#4a9eff4d}.node-card-title{margin-bottom:8px;font-size:13px;font-weight:600}.node-card.cp .node-card-title{color:var(--coral)}.node-card.worker .node-card-title{color:var(--blue)}.node-card-count{color:var(--text3);margin-bottom:8px;font-family:JetBrains Mono,monospace;font-size:10px}.process-item{align-items:flex-start;gap:6px;margin-bottom:6px;font-size:11.5px;display:flex}.process-name{flex-shrink:0;font-family:JetBrains Mono,monospace;font-weight:600}.node-card.cp .process-name{color:var(--coral)}.node-card.worker .process-name{color:var(--blue)}.process-desc{color:var(--text3);line-height:1.4}.ds-row{border:1px solid var(--border);background:var(--surface);border-radius:6px;align-items:center;gap:10px;margin-bottom:5px;padding:9px 14px;font-size:12px;display:flex}.ds-pod{flex-shrink:0;width:100px;font-family:JetBrains Mono,monospace;font-weight:600}.ds-data{color:var(--text3);flex:1;font-size:11px}.ds-ok{color:var(--green);font-size:11px}.ds-warn{color:var(--amber);font-size:11px}.timing-row{border:1px solid var(--border);border-radius:7px;gap:0;margin:10px 0;display:flex;overflow:hidden}.timing-label{background:var(--surface2);border-right:1px solid var(--border);flex-direction:column;justify-content:center;min-width:90px;padding:12px 14px;display:flex}.timing-label-title{margin-bottom:2px;font-size:11px;font-weight:600}.timing-label-sub{color:var(--text3);font-family:JetBrains Mono,monospace;font-size:9px}.timing-content{flex:1;padding:12px 14px}.timing-content ul{list-style:none}.timing-content ul li{color:var(--text2);margin-bottom:4px;padding-left:12px;font-size:11.5px;position:relative}.timing-content ul li:before{content:"→";color:var(--text3);position:absolute;left:0}.t1 .timing-label-title{color:var(--coral)}.t2 .timing-label-title{color:var(--blue)}.t3 .timing-label-title{color:var(--teal)}html[data-theme=light] .pod-old{background:#dc262612;border-color:#dc26264d}html[data-theme=light] .pod-new{background:#0d948812;border-color:#0d94884d}html[data-theme=light] .node-card.cp{background:#dc26260a}html[data-theme=light] .node-card.worker{background:#2563eb0a}html[data-theme=light] .ds-row{background:var(--surface)}@media (width<=900px){.doc-layout{grid-template-columns:1fr}.content{min-width:0;padding:28px 20px}.data-table{font-size:11px;display:block;overflow-x:auto}.flow-steps{flex-direction:column}.flow-step{min-width:unset;width:100%}.flow-arrow{align-self:center;padding:2px 0;transform:rotate(90deg)}}@media (width<=600px){html,body{overflow-x:hidden}.content{overflow-wrap:break-word;word-break:break-word;min-width:0;max-width:100%;padding:18px 14px}.section{margin-bottom:40px}h1{font-size:20px}h2{font-size:17px}h3{font-size:13px}p{font-size:13px;line-height:1.65}code{word-break:break-all;padding:1px 4px;font-size:10px}.diagram-wrap{-webkit-overflow-scrolling:touch;padding:10px 10px 14px;overflow-x:auto}.diagram-wrap svg{min-width:440px;height:auto}.diagram-expand-btn{opacity:1}.diagram-caption{font-size:9px}.data-table th,.data-table td{padding:6px 8px;font-size:10px}.pill-row{flex-direction:column;align-items:flex-start;gap:3px;padding:8px 10px}.pill-label{width:auto;font-size:12px}.flow-steps{flex-direction:column}.flow-step{min-width:unset;width:100%}.flow-arrow{align-self:center;padding:2px 0;font-size:14px;transform:rotate(90deg)}.doc-footer{text-align:center;flex-direction:column;gap:6px;padding:16px 12px;font-size:10px}.node-grid{grid-template-columns:1fr;gap:8px}.node-card{padding:10px}.node-card-title{font-size:12px}.process-item{font-size:11px}.process-name{font-size:10px}.timing-row{flex-direction:column}.timing-label{border-right:none;border-bottom:1px solid var(--border);min-width:unset;padding:8px 10px}.timing-label-title{font-size:11px}.timing-content{padding:8px 10px}.timing-content ul li{font-size:11px}.img-layer{flex-wrap:wrap;gap:6px;padding:8px 10px}.img-layer-name{width:auto;font-size:11px}.img-layer-desc{flex-basis:100%;font-size:10px}.img-layer-freq{font-size:9px}.rolling-row{gap:3px}.rolling-label{width:40px;font-size:9px}.pod-chip{padding:3px 4px;font-size:8px}.ds-row{flex-direction:column;align-items:flex-start;gap:3px;padding:7px 10px}.ds-pod{width:auto;font-size:11px}.sp-wrapper{border-radius:0!important;margin-left:-14px!important;margin-right:-14px!important}.sp-layout{flex-direction:column!important}.sp-editor,.sp-code-editor{max-height:240px!important;font-size:13px!important}.sp-preview-container,.sp-preview{max-height:200px!important}.sp-tab-button{padding:4px 8px!important;font-size:11px!important}}[data-tooltip]{position:relative}[data-tooltip]:after{content:attr(data-tooltip);background:var(--surface);color:var(--text);border:1px solid var(--border2);white-space:nowrap;pointer-events:none;opacity:0;z-index:150;border-radius:6px;padding:6px 12px;font-family:JetBrains Mono,monospace;font-size:11px;line-height:1.5;transition:opacity .15s;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);box-shadow:0 4px 16px #00000040}[data-tooltip]:hover:after{opacity:1}[data-tooltip].tooltip-below:after{top:calc(100% + 8px);bottom:auto}html[data-theme=light] [data-tooltip]:after{box-shadow:0 4px 16px #0000001a}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.skip-to-content{z-index:200;background:var(--accent-primary);color:#fff;border-radius:6px;padding:8px 16px;font-size:13px;font-weight:600;text-decoration:none;transition:top .15s;position:fixed;top:-100px;left:16px}.skip-to-content:focus{outline:none;top:8px}@media print{.topbar,.progbar,.sidebar,.back-to-top,.search-overlay{display:none!important}.page-body{padding-top:0!important}.doc-layout{display:block}.content{max-width:100%;padding:0}body{color:#111;background:#fff;font-size:12px}}.topbar{height:var(--topbar-height);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border);z-index:100;background:#0d0f14f2;align-items:center;padding:0 28px;display:flex;position:fixed;top:0;left:0;right:0}.topbar:after{content:"";pointer-events:none;background:linear-gradient(90deg, transparent 0%, var(--accent-primary) 50%, transparent 100%);opacity:.65;height:1px;position:absolute;bottom:-1px;left:0;right:0}html[data-theme=light] .topbar{background:#f8f9fbf2}html[data-theme=medium] .topbar{background:#f3ede3f2}.topbar-logo{color:var(--text);letter-spacing:-.02em;flex-shrink:0;align-items:center;gap:8px;font-family:JetBrains Mono,monospace;font-size:14px;font-weight:600;text-decoration:none;display:flex}.topbar-logo:hover{text-decoration:none}.topbar-logo .logo-accent{color:var(--accent-primary)}.topbar-search{flex:1;justify-content:center;padding:0 32px;display:flex}.search-bar{border:1px solid var(--border);background:var(--surface2);cursor:pointer;border-radius:8px;align-items:center;gap:10px;width:100%;max-width:400px;padding:7px 14px;transition:all .15s;display:flex}.search-bar:hover{border-color:var(--border2)}.search-bar-icon{color:var(--text3);flex-shrink:0;font-size:14px}.search-bar-text{color:var(--text3);flex:1;font-family:Sora,sans-serif;font-size:13px}.search-bar-kbd{background:var(--bg);border:1px solid var(--border);color:var(--text3);border-radius:3px;flex-shrink:0;padding:2px 6px;font-family:JetBrains Mono,monospace;font-size:10px}.topbar-right{flex-shrink:0;align-items:center;gap:10px;display:flex}.topbar-link{color:var(--text2);white-space:nowrap;border:1px solid #0000;border-radius:5px;align-items:center;gap:6px;padding:5px 12px;font-size:13px;text-decoration:none;transition:all .15s;display:flex}.topbar-link:hover{background:var(--surface2);color:var(--text);border-color:var(--border);text-decoration:none}.topbar-link.active{background:var(--accent-primary-bg);color:var(--accent-primary);border-color:var(--accent-primary-dim)}.subscribe-btn{background:var(--accent-primary-bg)!important;border-color:var(--accent-primary-dim)!important;color:var(--accent-primary)!important;font-weight:600!important}.subscribe-btn:hover{box-shadow:0 6px 22px var(--accent-glow);background:var(--accent-primary)!important;color:#fff!important;border-color:var(--accent-primary)!important}.theme-toggle{border:1px solid var(--border);background:var(--surface2);width:32px;height:32px;color:var(--text3);cursor:pointer;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-size:15px;line-height:1;transition:all .15s;display:flex}.theme-toggle:hover{color:var(--text);border-color:var(--border2)}.streak-badge{color:#fbbf24;cursor:default;background:#fbbf241a;border:1px solid #fbbf244d;border-radius:20px;flex-shrink:0;align-items:center;gap:4px;padding:3px 10px;font-family:JetBrains Mono,monospace;font-size:12px;font-weight:600;animation:3s ease-in-out infinite streakGlow;display:inline-flex}.streak-badge:hover{background:#fbbf242e}.streak-flame{filter:drop-shadow(0 0 3px #fbbf2480);align-items:center;animation:2s ease-in-out infinite flameBreathe,.4s ease-in-out infinite flameFlicker;display:inline-flex}@keyframes flameBreathe{0%,to{filter:drop-shadow(0 0 3px #fbbf2466);transform:scale(1)}50%{filter:drop-shadow(0 0 8px #fbbf24b3);transform:scale(1.25)}}@keyframes flameFlicker{0%,to{opacity:1}30%{opacity:.78}60%{opacity:.92}}@keyframes streakGlow{0%,to{box-shadow:0 0 6px #fbbf2426}50%{box-shadow:0 0 16px #fbbf2466}}html[data-theme=light] .streak-badge,html[data-theme=medium] .streak-badge{color:#d97706;background:#d9770614;border-color:#d9770640}html[data-theme=light] .streak-flame,html[data-theme=medium] .streak-flame{filter:drop-shadow(0 0 2px #d977064d)}.progbar{top:var(--topbar-height);height:var(--progbar-height);background:var(--surface);border-bottom:1px solid var(--border);z-index:99;scrollbar-width:none;-ms-overflow-style:none;align-items:center;display:flex;position:fixed;left:0;right:0;overflow:auto hidden}.progbar::-webkit-scrollbar{display:none}.progbar-cap{letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;border:1px solid var(--border);background:var(--surface2);color:var(--text2);border-radius:6px;flex-shrink:0;align-items:center;gap:6px;padding:5px 10px;font-family:JetBrains Mono,monospace;font-size:10px;font-weight:700;display:inline-flex}.progbar-cap-finish.lit{border-color:var(--green);color:var(--green);background:#4ade8014}.progbar-cap-icon{font-size:13px;line-height:1}.progbar-cap-label{font-size:10px}.progbar-links{align-items:center;gap:3px;margin:0 auto;padding:0 20px;display:flex}.progbar-group{align-items:center;gap:3px;padding:0 16px;display:flex}.progbar-group+.progbar-group{border-left:1px solid var(--border)}.progbar-collapse-btn{display:none}.progbar-track-header{letter-spacing:.12em;text-transform:uppercase;color:var(--text2);background:var(--accent-primary-bg);border:1px solid var(--accent-primary-dim);white-space:nowrap;border-radius:6px;flex-shrink:0;align-items:center;gap:8px;padding:6px 10px;font-family:JetBrains Mono,monospace;font-size:12px;font-weight:700;display:inline-flex}.progbar-track-header-label{line-height:1}.progbar-group-systems .progbar-track-header{color:var(--teal);background:#2dd4bf1a;border-color:#2dd4bf59}.progbar-link{color:var(--text2);white-space:nowrap;border:1px solid #0000;border-radius:6px;align-items:center;gap:4px;padding:5px 10px;font-size:12px;font-weight:500;text-decoration:none;transition:all .15s;display:flex}.progbar-link:hover{background:var(--surface2);color:var(--text);border-color:var(--border);text-decoration:none}.progbar-link.active{background:var(--accent-primary-bg);color:var(--accent-primary);border-color:var(--accent-primary-dim)}.progbar-link .prog-icon{font-size:14px}.prog-node{background:var(--border2);border-radius:50%;flex-shrink:0;width:5px;height:5px;transition:all .4s;position:relative}.prog-node.lit{background:var(--accent-primary);box-shadow:0 0 6px 2px var(--accent-primary), 0 0 12px 4px rgba(var(--accent-primary), .2);animation:.8s ease-out nodePing}.prog-node.pulse{animation:2s ease-in-out infinite nodeBreathing}@keyframes nodePing{0%{box-shadow:0 0 0 0 var(--accent-primary);transform:scale(1)}50%{box-shadow:0 0 10px 6px var(--accent-primary);transform:scale(1.6)}to{box-shadow:0 0 6px 2px var(--accent-primary);transform:scale(1)}}@keyframes nodeBreathing{0%,to{opacity:.6;transform:scale(1)}50%{opacity:1;transform:scale(1.3)}}.progbar-connector{flex-shrink:0;align-items:center;width:18px;height:4px;display:flex;position:relative}.progbar-track{background:var(--border);border-radius:2px;position:absolute;inset:0}.progbar-energy{width:var(--energy-pct,0%);background:linear-gradient(90deg, var(--accent-primary-dim), var(--accent-primary));z-index:1;border-radius:2px;transition:width .8s cubic-bezier(.34,1.56,.64,1);position:absolute;top:0;bottom:0;left:0}.progbar-connector.energized .progbar-energy{box-shadow:0 0 6px 1px var(--accent-primary), 0 0 12px 2px #3b82f626}.progbar-connector.full .progbar-energy:after{content:"";opacity:0;background:linear-gradient(90deg,#0000 0%,#ffffff80 50%,#0000 100%);border-radius:4px;animation:1s ease-out .3s forwards completionFlash;position:absolute;inset:-2px -4px}@keyframes completionFlash{0%{opacity:0;transform:translate(-100%)}30%{opacity:1}to{opacity:0;transform:translate(100%)}}.progbar-edge{top:-2px;left:var(--energy-pct,0%);z-index:3;width:4px;height:8px;box-shadow:0 0 8px 3px var(--accent-primary), 0 0 16px 6px #ffffff4d;background:#fff;border-radius:2px;animation:1.5s ease-in-out infinite edgePulse;position:absolute;transform:translate(-50%)}@keyframes edgePulse{0%,to{opacity:.7;box-shadow:0 0 6px 2px var(--accent-primary)}50%{opacity:1;box-shadow:0 0 12px 4px var(--accent-primary), 0 0 20px 8px #fff3}}.progbar-pulse-dot{z-index:4;width:6px;height:6px;box-shadow:0 0 6px 2px var(--accent-primary), 0 0 10px 3px #fff6;opacity:0;background:#fff;border-radius:50%;animation:2.5s linear infinite pulseDotTravel;position:absolute;top:-1px}@keyframes pulseDotTravel{0%{opacity:0;left:-3px}5%{opacity:1}90%{opacity:1}to{opacity:0;left:calc(100% - 3px)}}.spark{z-index:5;opacity:0;pointer-events:none;width:8px;height:2px;box-shadow:0 0 4px 1px var(--accent-primary), 0 0 8px 2px #ffffff4d;background:#fff;border-radius:1px;position:absolute}.spark-1{animation:4s ease-out .8s infinite sparkFlash;top:-4px;left:30%;transform:rotate(-35deg)}.spark-2{animation:5s ease-out 2.2s infinite sparkFlash;bottom:-4px;left:60%;transform:rotate(25deg)}.spark-3{animation:6.5s ease-out 3.8s infinite sparkFlash;top:-3px;left:80%;transform:rotate(-60deg)}@keyframes sparkFlash{0%{opacity:0;transform:rotate(var(--spark-angle,-35deg)) scaleX(.3)}3%{opacity:1;transform:rotate(var(--spark-angle,-35deg)) scaleX(1.4)}5%{opacity:.8}8%{opacity:0;transform:rotate(var(--spark-angle,-35deg)) scaleX(.5)}to{opacity:0}}.progbar-pct{background:var(--accent-primary-bg);color:var(--accent-primary);border-radius:3px;flex-shrink:0;margin-left:2px;padding:1px 5px;font-family:JetBrains Mono,monospace;font-size:9px}.progbar-link.completed{background:var(--accent-primary-bg);border-color:var(--accent-primary-dim);color:var(--accent-primary);box-shadow:0 0 8px 1px var(--accent-primary-dim);animation:.8s ease-out stageComplete}.progbar-link.completed .prog-icon{color:var(--accent-primary);font-weight:700}.progbar-link.completed .prog-node{background:var(--accent-primary);box-shadow:0 0 6px 2px var(--accent-primary)}.progbar-link.in-progress{border-color:var(--accent-primary-dim)}@keyframes stageComplete{0%{box-shadow:0 0 0 0 var(--accent-primary);transform:scale(1)}30%{box-shadow:0 0 16px 4px var(--accent-primary);transform:scale(1.1)}60%{box-shadow:0 0 8px 2px var(--accent-primary);transform:scale(.97)}to{box-shadow:0 0 8px 1px var(--accent-primary-dim);transform:scale(1)}}.celebration-overlay{z-index:9999;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#000000a6;justify-content:center;align-items:center;animation:.4s fadeIn;display:flex;position:fixed;inset:0;overflow:hidden}.celebration-content{background:var(--surface);border:1px solid var(--border);text-align:center;z-index:10000;border-radius:16px;padding:40px 48px;animation:.5s cubic-bezier(.34,1.56,.64,1) popIn;box-shadow:0 20px 60px #0006}.celebration-emoji{font-size:64px;animation:.8s infinite alternate celebBounce}@keyframes celebBounce{0%{transform:translateY(0)}to{transform:translateY(-12px)}}@keyframes popIn{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.confetti-piece{top:-10px;left:var(--x);width:var(--size);height:var(--size);background:var(--color);animation:confettiFall 3.5s ease-in var(--delay) forwards;z-index:9998;pointer-events:none;border-radius:2px;position:fixed}@keyframes confettiFall{0%{opacity:1;transform:translateY(0)rotate(0)translate(0)}to{transform:translateY(100vh) rotate(var(--spin)) translateX(var(--drift));opacity:0}}.mobile-home-btn,.mobile-search-btn{display:none}.hamburger{border:1px solid var(--border);background:var(--surface2);width:32px;height:32px;color:var(--text3);cursor:pointer;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-size:18px;line-height:1;transition:all .15s;display:none}.hamburger:hover{color:var(--text);border-color:var(--border2)}.mobile-menu{top:var(--header-height);background:var(--surface);border-bottom:1px solid var(--border);z-index:98;flex-direction:column;gap:4px;padding:12px;display:none;position:fixed;left:0;right:0;box-shadow:0 8px 24px #0000004d}.mobile-menu.open{display:flex}html[data-theme=light] .mobile-menu{box-shadow:0 8px 24px #0000001a}.mobile-menu-link{color:var(--text2);text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;align-items:center;gap:8px;width:100%;padding:10px 14px;font-family:Sora,sans-serif;font-size:14px;text-decoration:none;transition:all .15s;display:flex}.mobile-menu-link:hover{background:var(--surface2);color:var(--text);text-decoration:none}.mobile-menu-link.active{background:var(--accent-primary-bg);color:var(--accent-primary);border-color:var(--accent-primary-dim)}@media (width<=900px){.topbar,.topbar-search{padding:0 16px}.search-bar{max-width:280px}.progbar-link{padding:6px 10px;font-size:12px}}@media (width<=600px){.hamburger{display:flex}.topbar{height:var(--topbar-height);padding:0 10px}.topbar-logo{margin-right:auto;font-size:12px}.topbar-search,.topbar-link,.topbar-auth,.topbar-feedback-btn,.theme-picker{display:none}.mobile-home-btn,.mobile-search-btn{border:1px solid var(--border);background:var(--surface2);width:34px;height:34px;color:var(--text3);cursor:pointer;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;padding:0;text-decoration:none;transition:all .15s;display:flex}.mobile-home-btn:hover,.mobile-search-btn:hover{color:var(--text);border-color:var(--border2);text-decoration:none}.progbar{justify-content:flex-start;padding:0 12px;overflow-x:auto}.progbar::-webkit-scrollbar{display:none}.progbar-links{gap:4px}.progbar-link{padding:6px 10px;font-size:12px}.progbar-connector,.progbar-pct{display:none}}@media (width>=1200px){.progbar{left:0;top:var(--topbar-height);width:var(--progbar-rail-width,200px);border-bottom:none;border-right:1px solid var(--border);flex-direction:column;align-items:stretch;height:auto;padding:18px 0;position:fixed;bottom:0;right:auto;overflow:hidden auto}.progbar-links{flex-direction:column;align-items:stretch;gap:0;width:100%;margin:0;padding:0 12px}.progbar-link{border-radius:8px;justify-content:flex-start;gap:10px;width:100%;padding:9px 12px;font-size:13px}.progbar-link .prog-icon{font-size:15px}.progbar-pct{margin-left:auto}.progbar-connector{align-self:flex-start;width:4px;height:22px;margin-left:18px;display:block}.progbar-track{border-radius:2px;inset:0}.progbar-energy{width:100%;height:var(--energy-pct,0%);background:linear-gradient(180deg, var(--accent-primary-dim), var(--accent-primary));transition:height .8s cubic-bezier(.34,1.56,.64,1);inset:0 auto auto 0}.progbar-connector.full .progbar-energy:after{background:linear-gradient(#0000 0%,#ffffff80 50%,#0000 100%);animation:1s ease-out .3s forwards completionFlashV;inset:-4px -2px}@keyframes completionFlashV{0%{opacity:0;transform:translateY(-100%)}30%{opacity:1}to{opacity:0;transform:translateY(100%)}}.progbar-edge{left:-2px;top:var(--energy-pct,0%);width:8px;height:4px;transform:translateY(-50%)}.progbar-pulse-dot{animation:2.5s linear infinite pulseDotTravelV;top:0;left:-1px}@keyframes pulseDotTravelV{0%{opacity:0;top:-3px}5%{opacity:1}90%{opacity:1}to{opacity:0;top:calc(100% - 3px)}}.progbar-connector .spark{display:none}.progbar-cap{border-radius:8px;justify-content:flex-start;width:100%;padding:8px 12px;font-size:11px}.progbar-cap .prog-node{margin-right:2px}.progbar-cap-icon{font-size:14px}.progbar-cap-finish{margin-top:2px}.progbar:before,.progbar:after{content:"";pointer-events:none;z-index:2;flex-shrink:0;height:24px;position:sticky;left:0;right:0}.progbar:before{background:linear-gradient(180deg, var(--surface), transparent);margin-bottom:-24px;top:0}.progbar:after{background:linear-gradient(0deg, var(--surface), transparent);margin-top:-24px;bottom:0}.progbar-group{flex-direction:column;align-items:stretch;gap:0;width:100%;padding:0 12px}.progbar-group+.progbar-group{border-left:none;border-top:1px solid var(--border);margin-top:16px;padding-top:16px}.progbar-track-header{box-sizing:border-box;width:100%;color:var(--text);background:var(--accent-primary-bg);border:none;border-bottom:2px solid var(--accent-primary);z-index:3;border-radius:6px 6px 0 0;align-self:stretch;margin:0 0 12px;padding:10px 14px;font-size:13px;font-weight:700;position:sticky;top:0}.progbar-group-systems .progbar-track-header{color:var(--text);border-bottom-color:var(--teal);background:#2dd4bf1a}.progbar-group-systems{top:var(--topbar-height);width:var(--progbar-right-rail-width,180px);background:var(--surface);border-left:1px solid var(--border);z-index:99;border-top:none;margin-top:0;padding:18px 12px;position:fixed;bottom:0;left:auto;right:0;overflow:hidden auto}.progbar,.progbar-group-systems,.progbar-group-frontend{transition:width .2s}.progbar-group .progbar-track-header{justify-content:space-between;align-items:center;gap:8px;display:flex}.progbar-collapse-btn{border:1px solid var(--border);background:var(--bg);width:22px;height:22px;color:var(--text2);cursor:pointer;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-size:11px;line-height:1;transition:background .15s,color .15s,border-color .15s;display:inline-flex}.progbar-collapse-btn:hover{color:var(--text);border-color:var(--accent-primary);background:var(--accent-primary-bg)}.progbar-group-frontend .progbar-track-header{flex-direction:row}.progbar-group-systems .progbar-track-header{flex-direction:row-reverse}body[data-progbar-frontend=collapsed] .progbar{width:48px}body[data-progbar-frontend=collapsed] .progbar-group-frontend .progbar-link,body[data-progbar-frontend=collapsed] .progbar-group-frontend .progbar-cap{overflow:hidden}body[data-progbar-frontend=collapsed] .progbar-group-frontend .progbar-track-header{background:0 0;border:none;justify-content:center;padding:8px}body[data-progbar-frontend=collapsed] .progbar-group-frontend .progbar-track-header-label{display:none}body[data-progbar-frontend=collapsed] .progbar-group-frontend .progbar-link{justify-content:center;gap:0;padding:8px 4px}body[data-progbar-frontend=collapsed] .progbar-group-frontend .progbar-link-text,body[data-progbar-frontend=collapsed] .progbar-group-frontend .progbar-pct{display:none}body[data-progbar-frontend=collapsed] .progbar-group-frontend .progbar-cap{justify-content:center;padding:8px 4px}body[data-progbar-frontend=collapsed] .progbar-group-frontend .progbar-cap-label,body[data-progbar-frontend=collapsed] .progbar-group-frontend .progbar-cap .prog-node{display:none}body[data-progbar-systems=collapsed] .progbar-group-systems{width:48px}body[data-progbar-systems=collapsed] .progbar-group-systems .progbar-track-header{background:0 0;border:none;justify-content:center;padding:8px}body[data-progbar-systems=collapsed] .progbar-group-systems .progbar-track-header-label{display:none}body[data-progbar-systems=collapsed] .progbar-group-systems .progbar-link{justify-content:center;gap:0;padding:8px 4px}body[data-progbar-systems=collapsed] .progbar-group-systems .progbar-link-text,body[data-progbar-systems=collapsed] .progbar-group-systems .progbar-pct{display:none}body[data-progbar-systems=collapsed] .progbar-group-systems .progbar-cap{justify-content:center;padding:8px 4px}body[data-progbar-systems=collapsed] .progbar-group-systems .progbar-cap-label,body[data-progbar-systems=collapsed] .progbar-group-systems .progbar-cap .prog-node{display:none}body[data-progbar-frontend=collapsed] .progbar:hover{width:var(--progbar-rail-width,200px)}body[data-progbar-frontend=collapsed] .progbar:hover .progbar-group-frontend .progbar-track-header{background:var(--accent-primary-bg);border-bottom:2px solid var(--accent-primary);justify-content:space-between;padding:10px 14px}body[data-progbar-frontend=collapsed] .progbar:hover .progbar-group-frontend .progbar-track-header-label{display:inline}body[data-progbar-frontend=collapsed] .progbar:hover .progbar-group-frontend .progbar-link{justify-content:flex-start;gap:10px;padding:9px 12px}body[data-progbar-frontend=collapsed] .progbar:hover .progbar-group-frontend .progbar-link-text{display:inline}body[data-progbar-frontend=collapsed] .progbar:hover .progbar-group-frontend .progbar-pct,body[data-progbar-frontend=collapsed] .progbar:hover .progbar-group-frontend .progbar-cap-label,body[data-progbar-frontend=collapsed] .progbar:hover .progbar-group-frontend .progbar-cap .prog-node{display:inline-flex}body[data-progbar-frontend=collapsed] .progbar:hover .progbar-group-frontend .progbar-cap{justify-content:flex-start;padding:8px 12px}body[data-progbar-systems=collapsed] .progbar-group-systems:hover{width:var(--progbar-right-rail-width,180px)}body[data-progbar-systems=collapsed] .progbar-group-systems:hover .progbar-track-header{border-bottom:2px solid var(--teal);background:#2dd4bf1a;justify-content:space-between;padding:10px 14px}body[data-progbar-systems=collapsed] .progbar-group-systems:hover .progbar-track-header-label{display:inline}body[data-progbar-systems=collapsed] .progbar-group-systems:hover .progbar-link{justify-content:flex-start;gap:10px;padding:9px 12px}body[data-progbar-systems=collapsed] .progbar-group-systems:hover .progbar-link-text{display:inline}body[data-progbar-systems=collapsed] .progbar-group-systems:hover .progbar-pct,body[data-progbar-systems=collapsed] .progbar-group-systems:hover .progbar-cap-label,body[data-progbar-systems=collapsed] .progbar-group-systems:hover .progbar-cap .prog-node{display:inline-flex}body[data-progbar-systems=collapsed] .progbar-group-systems:hover .progbar-cap{justify-content:flex-start;padding:8px 12px}}.sidebar{top:var(--header-height);height:calc(100vh - var(--header-height));border-right:1px solid var(--border);padding:28px 0 28px 28px;position:sticky;overflow-y:auto}.sidebar-label{letter-spacing:.12em;text-transform:uppercase;color:var(--text3);margin-bottom:10px;padding-left:4px;font-family:JetBrains Mono,monospace;font-size:10px}.sidebar-nav{flex-direction:column;gap:2px;display:flex}.sidebar-link{color:var(--text2);border:1px solid #0000;border-radius:5px;flex:1;align-items:center;gap:8px;min-width:0;padding:6px 10px;font-size:12.5px;line-height:1.35;text-decoration:none;transition:all .15s;display:flex;overflow:hidden}.sidebar-link-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.sidebar-link:hover{background:var(--surface2);color:var(--text);border-color:var(--border);text-decoration:none}.sidebar-link.active{background:var(--accent-primary-bg);color:var(--accent-primary);border-color:var(--accent-primary-dim);box-shadow:inset 3px 0 0 var(--accent-primary)}.sidebar-badge{background:var(--surface2);border:1px solid var(--border);color:var(--text3);border-radius:3px;flex-shrink:0;padding:1px 5px;font-family:JetBrains Mono,monospace;font-size:9px}.sidebar-badge.active{background:var(--accent-primary-dim);border-color:var(--accent-primary);color:var(--accent-primary)}.sidebar-diff{text-transform:uppercase;letter-spacing:.04em;border:1px solid;border-radius:3px;flex-shrink:0;margin-left:auto;padding:1px 5px;font-family:JetBrains Mono,monospace;font-size:8.5px}.sidebar-diff-easy{color:var(--teal);background:#2dd4bf1f;border-color:#2dd4bf59}.sidebar-diff-medium{color:var(--amber);background:#fbbf241f;border-color:#fbbf2459}.sidebar-diff-hard{color:var(--coral);background:#fb718524;border-color:#fb718566}.sidebar-link-row{align-items:center;gap:4px;display:flex}.sidebar-expand-btn{width:28px;height:28px;color:var(--text3);cursor:pointer;background:0 0;border:none;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;transition:all .15s;display:flex}.sidebar-expand-btn:hover{background:var(--surface2);color:var(--text)}.sidebar-expand-spacer{flex-shrink:0;width:28px;height:28px}.sidebar-lock{flex-shrink:0;font-size:12px}.sidebar-sub{color:var(--text3)!important;gap:5px!important;padding-left:26px!important;font-size:11.5px!important}.sidebar-sub:hover{color:var(--text2)!important}.sidebar-sub.active{color:var(--accent-primary)!important}.sidebar-sub-group{border-left:1px solid var(--border);flex-direction:column;gap:1px;margin-top:1px;margin-bottom:2px;margin-left:14px;padding-left:2px;display:flex}.sidebar-sep{background:var(--border);height:1px;margin:8px 4px}.sidebar-category-header{margin-top:16px;margin-bottom:4px;padding:0 4px}.sidebar-category-label{letter-spacing:.1em;text-transform:uppercase;color:var(--text3);align-items:center;gap:8px;font-family:JetBrains Mono,monospace;font-size:10px;font-weight:600;display:flex}.sidebar-category-label:after{content:"";background:var(--border);flex:1;height:1px}.sidebar-sub-header{margin-top:10px;margin-bottom:2px;padding:0 10px}.sidebar-sub-header-label{letter-spacing:.06em;text-transform:uppercase;color:var(--accent-primary);opacity:.7;font-family:JetBrains Mono,monospace;font-size:10.5px;font-weight:500}.mobile-sidebar-toggle{display:none}.sidebar-overlay{z-index:90;background:#00000080;display:none;position:fixed;inset:0}.sidebar-overlay.open{display:block}.sidebar-drawer{top:var(--header-height);background:var(--surface);border-right:1px solid var(--border);z-index:91;visibility:hidden;width:280px;transition:transform .25s;position:fixed;bottom:0;left:0;overflow-y:auto;transform:translate(-100%)}.sidebar-drawer.open{visibility:visible;transform:translate(0)}.sidebar-drawer .sidebar{border-right:none;height:auto;padding:20px;position:static;overflow-y:visible;display:block!important}@media (width<=900px){.sidebar{display:none}.mobile-sidebar-toggle{border:1px solid var(--accent-primary-dim);background:var(--accent-primary-bg);color:var(--accent-primary);cursor:pointer;border-radius:10px;align-items:center;gap:10px;width:100%;margin-bottom:24px;padding:13px 18px;font-family:Sora,sans-serif;font-size:15px;font-weight:600;transition:all .15s;display:flex}.mobile-sidebar-toggle svg{stroke:var(--accent-primary);flex-shrink:0}.mobile-sidebar-toggle:hover{background:var(--accent-primary);color:#fff;border-color:var(--accent-primary)}.mobile-sidebar-toggle:hover svg{stroke:#fff}}.callout{border-left:3px solid;border-radius:7px;margin:18px 0;padding:14px 18px;font-size:14px;line-height:1.65}.callout-title{letter-spacing:.08em;text-transform:uppercase;margin-bottom:5px;font-family:JetBrains Mono,monospace;font-size:11px;font-weight:600}.callout.insight{background:var(--blue-bg);border-color:var(--blue);color:#a0c8f8}.callout.insight .callout-title{color:var(--blue)}.callout.warning{background:var(--amber-dim);border-color:var(--amber);color:#f5d68a}.callout.warning .callout-title{color:var(--amber)}.callout.success{background:var(--green-dim);border-color:var(--green);color:#90e8b0}.callout.success .callout-title{color:var(--green)}.callout.danger{background:var(--coral-dim);border-color:var(--coral);color:#f8b8b8}.callout.danger .callout-title{color:var(--coral)}.callout.note{background:var(--purple-bg);border-color:var(--purple);color:#c8b8f8}.callout.note .callout-title{color:var(--purple)}.callout.personal{background:var(--teal-bg);border-color:var(--teal);color:#a0e8d8}.callout.personal .callout-title{color:var(--teal)}html[data-theme=light] .callout.insight{color:#1e40af;background:#eff6ff}html[data-theme=light] .callout.warning{color:#92400e;background:#fffbeb}html[data-theme=light] .callout.success{color:#166534;background:#f0fdf4}html[data-theme=light] .callout.danger{color:#991b1b;background:#fef2f2}html[data-theme=light] .callout.note{color:#5b21b6;background:#f5f3ff}html[data-theme=light] .callout.personal{color:#115e59;background:#f0fdfa}.code-block{background:var(--code-bg);border:1px solid var(--border);border-radius:8px;margin:14px 0;font-family:JetBrains Mono,monospace;font-size:12.5px;overflow:hidden}.code-header{background:var(--surface2);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:7px 13px;display:flex}html[data-theme=light] .code-header{background:#e8ecf1}.code-lang{letter-spacing:.1em;text-transform:uppercase;color:var(--text3);font-size:10px}.code-dots{gap:5px;display:flex}.code-dots span{border-radius:50%;width:9px;height:9px}.code-dots .d1{background:#f87171}.code-dots .d2{background:#fbbf24}.code-dots .d3{background:#4ade80}.code-block pre{margin:0;padding:16px;line-height:1.65;overflow-x:auto}.code-block code{font-size:inherit;color:var(--text);background:0 0;border:none;padding:0}.copy-btn{color:var(--text3);cursor:pointer;background:0 0;border:none;border-radius:4px;flex-shrink:0;align-items:center;gap:4px;padding:3px 8px;font-family:JetBrains Mono,monospace;font-size:14px;transition:all .15s;display:flex}.copy-btn:hover{color:var(--text);background:#ffffff0f}.copy-btn.copied{color:var(--green)}.copy-btn .copy-label{letter-spacing:.04em;font-size:10px}.card-grid{gap:12px;margin:14px 0;display:grid}.card-grid-2{grid-template-columns:1fr 1fr}.card-grid-3{grid-template-columns:1fr 1fr 1fr}.card{border:1px solid;border-radius:8px;padding:15px;text-decoration:none;transition:all .15s}a.card:hover{text-decoration:none;transform:translateY(-2px)}.card-title{margin-bottom:5px;font-size:13px;font-weight:600}.card-desc{color:var(--text2);margin:0;font-size:12px;line-height:1.5}.card-meta{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.card.blue{background:#4a9eff0d;border-color:#4a9eff4d}.card.blue .card-title{color:var(--blue)}.card.teal{background:#2dd4bf0d;border-color:#2dd4bf4d}.card.teal .card-title{color:var(--teal)}.card.amber{background:#fbbf240d;border-color:#fbbf244d}.card.amber .card-title{color:var(--amber)}.card.coral{background:#f871710d;border-color:#f871714d}.card.coral .card-title{color:var(--coral)}.card.purple{background:#a78bfa0d;border-color:#a78bfa4d}.card.purple .card-title{color:var(--purple)}.card.green{background:#4ade800d;border-color:#4ade804d}.card.green .card-title{color:var(--green)}.card.gray{background:#64748b0f;border-color:#64748b4d}.card.gray .card-title{color:var(--gray)}.card.orange{background:#fb923c0d;border-color:#fb923c4d}.card.orange .card-title{color:var(--orange)}html[data-theme=light] .card.blue{background:#2563eb0d;border-color:#2563eb4d}html[data-theme=light] .card.teal{background:#0d94880d;border-color:#0d94884d}html[data-theme=light] .card.amber{background:#d977060d;border-color:#d977064d}html[data-theme=light] .card.coral{background:#dc26260d;border-color:#dc26264d}html[data-theme=light] .card.purple{background:#7c3aed0d;border-color:#7c3aed4d}html[data-theme=light] .card.green{background:#16a34a0d;border-color:#16a34a4d}html[data-theme=light] .card.gray{background:#4755690d;border-color:#4755694d}html[data-theme=light] .card.orange{background:#ea580c0d;border-color:#ea580c4d}.hero{border-bottom:1px solid var(--border);padding:60px 52px 52px;position:relative;overflow:hidden}.hero:before{content:"";pointer-events:none;background:radial-gradient(circle, var(--accent-glow) 0%, transparent 70%);opacity:.5;border-radius:50%;width:500px;height:500px;position:absolute;top:-100px;right:-100px}html[data-theme=light] .hero:before,html[data-theme=medium] .hero:before{opacity:.35}.hero-badge{background:var(--accent-primary-bg);border:1px solid var(--accent-primary-dim);color:var(--accent-primary);letter-spacing:.1em;text-transform:uppercase;border-radius:4px;align-items:center;gap:6px;margin-bottom:18px;padding:4px 12px;font-family:JetBrains Mono,monospace;font-size:10px;display:inline-flex}.hero h1{max-width:700px;margin-bottom:10px}.hero-sub{color:var(--text2);max-width:580px;margin-bottom:28px;font-size:15px;line-height:1.65}.hero-chips{flex-wrap:wrap;gap:8px;display:flex}.hero-chip{background:var(--surface2);border:1px solid var(--border);color:var(--text2);border-radius:20px;padding:3px 10px;font-family:JetBrains Mono,monospace;font-size:11px}.hero-actions{gap:12px;margin-top:28px;display:flex}.btn-primary{background:var(--accent-primary);color:#fff;cursor:pointer;border:none;border-radius:8px;align-items:center;gap:8px;padding:10px 24px;font-family:Sora,sans-serif;font-size:14px;font-weight:600;text-decoration:none;transition:all .15s;display:inline-flex}.btn-primary:hover{opacity:.95;color:#fff;box-shadow:0 8px 28px var(--accent-glow);text-decoration:none;transform:translateY(-1px)}.btn-secondary{background:var(--surface2);color:var(--text);border:1px solid var(--border);cursor:pointer;border-radius:8px;align-items:center;gap:8px;padding:10px 24px;font-family:Sora,sans-serif;font-size:14px;font-weight:600;text-decoration:none;transition:all .15s;display:inline-flex}.btn-secondary:hover{border-color:var(--border2);background:var(--surface);text-decoration:none}.page-nav{border-top:1px solid var(--border);justify-content:space-between;align-items:stretch;gap:12px;margin-top:20px;padding:28px 0;display:flex}.page-nav-link{border:1px solid var(--border);background:var(--surface);border-radius:8px;flex-direction:column;flex:1;gap:4px;min-width:0;max-width:48%;padding:14px 20px;text-decoration:none;transition:all .15s;display:flex}.page-nav-link:hover{border-color:var(--border2);background:var(--surface2);text-decoration:none;transform:translateY(-1px)}.page-nav-link.next{text-align:right;align-items:flex-end;margin-left:auto}.page-nav-label{letter-spacing:.08em;text-transform:uppercase;color:var(--text3);font-family:JetBrains Mono,monospace;font-size:10px}.page-nav-title{color:var(--blue);white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:600;overflow:hidden}html[data-theme=light] .page-nav-link{background:#fff}html[data-theme=light] .page-nav-link:hover{background:var(--surface2)}.prerequisites{background:var(--surface);border:1px solid var(--border);border-radius:8px;margin-bottom:28px;padding:14px 18px}.prerequisites-title{letter-spacing:.1em;text-transform:uppercase;color:var(--text3);margin-bottom:8px;font-family:JetBrains Mono,monospace;font-size:10px}.prerequisites-list{flex-wrap:wrap;gap:8px;display:flex}.prerequisites-link{background:var(--blue-bg);border:1px solid var(--blue-dim);color:var(--blue);border-radius:4px;align-items:center;gap:4px;padding:4px 10px;font-size:12px;text-decoration:none;transition:all .15s;display:inline-flex}.prerequisites-link:hover{border-color:var(--blue);text-decoration:none}.takeaways{background:var(--green-dim);border:1px solid #4ade804d;border-radius:8px;margin-top:32px;padding:18px}html[data-theme=light] .takeaways{background:#f0fdf4;border-color:#16a34a4d}.takeaways-title{letter-spacing:.1em;text-transform:uppercase;color:var(--green);margin-bottom:10px;font-family:JetBrains Mono,monospace;font-size:10px}.takeaways ul{flex-direction:column;gap:6px;list-style:none;display:flex}.takeaways li{color:var(--text2);padding-left:16px;font-size:13px;position:relative}.takeaways li:before{content:"✓";color:var(--green);font-weight:600;position:absolute;left:0}.setup-block{background:var(--surface);border:1px solid var(--border);border-radius:8px;margin:14px 0;overflow:hidden}.setup-header{background:var(--surface2);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:10px 16px;display:flex}.setup-title{letter-spacing:.1em;text-transform:uppercase;color:var(--text3);font-family:JetBrains Mono,monospace;font-size:10px}.setup-body{padding:16px}.setup-body pre{background:var(--code-bg);border:1px solid var(--border);color:var(--text);border-radius:6px;margin:0;padding:12px;font-family:JetBrains Mono,monospace;font-size:12px;line-height:1.65;overflow-x:auto}.setup-note{color:var(--text3);margin-top:10px;font-size:12px}.difficulty-tag{letter-spacing:.05em;text-transform:uppercase;border-radius:4px;align-items:center;gap:4px;padding:3px 9px;font-family:JetBrains Mono,monospace;font-size:10px;font-weight:600;display:inline-flex}.difficulty-tag.easy{background:var(--green-dim);color:var(--green);border:1px solid #4ade804d}.difficulty-tag.medium{background:var(--amber-dim);color:var(--amber);border:1px solid #fbbf244d}.difficulty-tag.hard{background:var(--coral-dim);color:var(--coral);border:1px solid #f871714d}.project-sandbox{all:initial;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:16px;line-height:1.5;display:block}.project-sandbox *{box-sizing:border-box}.progress-check{cursor:pointer;color:var(--text2);-webkit-user-select:none;user-select:none;align-items:center;gap:8px;font-size:12px;display:flex}.progress-check input{display:none}.progress-check .checkmark{border:1px solid var(--border2);color:#0000;border-radius:4px;justify-content:center;align-items:center;width:18px;height:18px;font-size:11px;transition:all .15s;display:flex}.progress-check input:checked+.checkmark{background:var(--green-dim);border-color:var(--green);color:var(--green)}@media (width<=900px){.card-grid-3{grid-template-columns:1fr 1fr}.card-grid-2{grid-template-columns:1fr}.hero{padding:40px 20px 36px}.hero h1{font-size:26px}}@media (width<=600px){.card-grid-3{grid-template-columns:1fr}.hero{padding:24px 14px 20px}.hero h1{max-width:100%;font-size:20px}.hero-sub{max-width:100%;margin-bottom:16px;font-size:13px}.hero-badge{padding:3px 8px;font-size:8px}.hero-chips{gap:4px}.hero-chip{padding:2px 6px;font-size:9px}.hero-actions{flex-direction:column;gap:8px}.btn-primary,.btn-secondary{justify-content:center;width:100%;padding:10px 16px;font-size:13px}.card{padding:12px}.card-title{font-size:12px}.card-desc{font-size:11px}.callout{padding:10px 12px;font-size:12px}.callout-title{font-size:10px}.code-block{margin:10px 0;font-size:11px}.code-block pre{-webkit-overflow-scrolling:touch;padding:10px;font-size:10px;line-height:1.5;overflow-x:auto}.code-header{padding:5px 10px}.code-lang{font-size:9px}.code-dots span{width:7px;height:7px}.page-nav{flex-direction:column;gap:8px;padding:16px 0}.page-nav-link{max-width:100%}.page-nav-link.next{text-align:left;align-items:flex-start}.page-nav-title{font-size:12px}.prerequisites{margin-bottom:18px;padding:10px 12px}.takeaways{padding:12px}.takeaways li{font-size:11px}.setup-body{padding:10px}.setup-body pre{padding:8px;font-size:10px}.difficulty-tag{padding:2px 6px;font-size:9px}.section-header{flex-direction:column;gap:6px;padding-bottom:12px}}.section-hero{margin-top:-44px;margin-left:-52px;margin-right:-52px}@media (width<=900px){.section-hero{margin-top:-28px;margin-left:-20px;margin-right:-20px}}@media (width<=600px){.section-hero{margin-top:-18px;margin-left:-14px;margin-right:-14px}}.landing-stats{border-bottom:1px solid var(--border);justify-content:space-around;gap:16px;margin-bottom:40px;padding:28px 0;display:flex}.landing-stat{text-align:center;flex:1}.landing-stat-num{color:var(--blue);letter-spacing:-.01em;font-family:JetBrains Mono,monospace;font-size:34px;font-weight:800;line-height:1.2}.feedback-backdrop{z-index:250;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000000b8;justify-content:center;align-items:center;padding:6vh 16px;display:flex;position:fixed;inset:0}.feedback-modal{background:var(--surface);border:1px solid var(--border2);border-radius:12px;width:560px;max-width:100%;max-height:88vh;padding:28px 28px 24px;position:relative;overflow:auto;box-shadow:0 20px 60px #00000059}.feedback-close{border:1px solid var(--border);background:var(--surface2);width:32px;height:32px;color:var(--text);cursor:pointer;border-radius:50%;font-size:20px;line-height:1;position:absolute;top:14px;right:16px}.feedback-close:hover{border-color:var(--coral);color:var(--coral)}.feedback-modal h2{margin:0 0 6px}.feedback-intro{color:var(--text2);margin:0 0 18px;font-size:14px;line-height:1.5}.feedback-field{margin-bottom:14px;display:block}.feedback-label{text-transform:uppercase;letter-spacing:.1em;color:var(--text3);margin-bottom:4px;font-family:JetBrains Mono,monospace;font-size:11px;display:block}.feedback-field textarea,.feedback-field input{background:var(--bg);width:100%;color:var(--text);border:1px solid var(--border);box-sizing:border-box;border-radius:6px;padding:9px 12px;font-family:Sora,sans-serif;font-size:14px}.feedback-field textarea{resize:vertical;min-height:100px}.feedback-field textarea:focus,.feedback-field input:focus{border-color:var(--blue);outline:none;box-shadow:0 0 0 3px #4a9eff2e}.feedback-counter{color:var(--text3);text-align:right;margin-top:4px;font-family:JetBrains Mono,monospace;font-size:11px;display:block}.feedback-counter.over{color:var(--coral)}.feedback-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.feedback-row .feedback-field{margin-bottom:14px}.feedback-actions{justify-content:flex-end;gap:10px;margin-top:18px;display:flex}.feedback-actions .btn-primary,.feedback-actions .btn-secondary{cursor:pointer;border:1px solid;border-radius:6px;padding:9px 18px;font-family:Sora,sans-serif;font-size:14px}.feedback-actions button[disabled]{opacity:.5;cursor:not-allowed}.feedback-error{color:var(--coral);background:#f871711f;border:1px solid #f8717166;border-radius:6px;margin-bottom:12px;padding:10px 12px;font-size:13px}.feedback-sent{text-align:center;padding:8px 0 4px}.feedback-sent-icon{color:var(--teal);margin-bottom:12px;font-size:42px;line-height:1}.feedback-sent p{color:var(--text2);margin:4px 0 20px}@media (width<=520px){.feedback-row{grid-template-columns:1fr}}.notes-backdrop{z-index:250;background:#0000008c;justify-content:center;align-items:flex-start;padding:6vh 16px;display:flex;position:fixed;inset:0}.notes-modal{background:var(--bg);border:1px solid var(--border);border-radius:12px;flex-direction:column;width:560px;max-width:100%;max-height:80vh;padding:28px 28px 20px;display:flex;position:relative;box-shadow:0 20px 60px #00000059}.notes-close{color:var(--text2);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;padding:2px 8px;font-size:20px;position:absolute;top:14px;right:14px}.notes-close:hover{border-color:var(--coral);color:var(--coral)}.notes-modal h2{margin:0 0 14px}.notes-textarea{width:100%;min-height:240px;color:var(--text);background:var(--surface);border:1px solid var(--border);resize:vertical;box-sizing:border-box;border-radius:8px;flex:1;padding:12px 14px;font-family:JetBrains Mono,monospace;font-size:13.5px;line-height:1.6}.notes-textarea:focus{border-color:var(--blue);outline:none;box-shadow:0 0 0 3px #4a9eff2e}.notes-textarea::placeholder{color:var(--text2);opacity:.6}.notes-status{color:var(--text2);text-align:right;min-height:16px;margin-top:8px;font-family:JetBrains Mono,monospace;font-size:11px;transition:opacity .3s}.notes-status.error{color:var(--coral)}.xp-pill{color:var(--green);background:#4ade801a;border:1px solid #4ade804d;border-radius:20px;align-items:center;gap:4px;padding:3px 10px;font-family:JetBrains Mono,monospace;font-size:12px;font-weight:600;display:inline-flex}.badge-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;display:grid}.badge-card{border:1px solid var(--border);background:var(--surface);text-align:center;border-radius:8px;flex-direction:column;align-items:center;gap:6px;padding:16px 12px;transition:border-color .15s,transform .15s;display:flex}.badge-card:hover{border-color:var(--accent-primary-dim);transform:translateY(-2px)}.badge-card.locked{opacity:.35;filter:grayscale(.7)}.badge-card-icon{font-size:28px}.badge-card-label{color:var(--text2);letter-spacing:.03em;font-family:JetBrains Mono,monospace;font-size:10px;font-weight:600}.badge-card-desc{color:var(--text3);font-size:10px;line-height:1.3}.leaderboard{border:1px solid var(--border);border-radius:8px;overflow:hidden}.leaderboard-header{cursor:pointer;background:var(--surface);justify-content:space-between;align-items:center;padding:12px 16px;font-family:Sora,sans-serif;font-size:14px;font-weight:600;display:flex}.leaderboard-header:hover{background:var(--bg-hover,var(--surface2))}.leaderboard-body{background:var(--bg)}.leaderboard-row{border-top:1px solid var(--border);align-items:center;gap:12px;padding:10px 16px;display:flex}.leaderboard-row.is-me{border-left:3px solid var(--teal);background:#2dd4bf0f}.leaderboard-rank{text-align:center;width:28px;font-family:JetBrains Mono,monospace;font-size:14px;font-weight:700}.leaderboard-rank.gold{color:#fbbf24}.leaderboard-rank.silver{color:#94a3b8}.leaderboard-rank.bronze{color:#f97316}.leaderboard-avatar{border:1px solid var(--border);border-radius:50%;width:28px;height:28px}.leaderboard-name{color:var(--text);flex:1;font-size:13px}.leaderboard-xp{color:var(--green);font-family:JetBrains Mono,monospace;font-size:12px;font-weight:600}.leaderboard-empty{text-align:center;color:var(--text3);padding:20px 16px;font-size:12px}.milestone-toast{z-index:300;background:var(--surface);border:1px solid var(--teal-dim);border-radius:12px;flex-direction:column;gap:10px;max-width:320px;padding:16px 20px;animation:.3s ease-out toastSlideIn;display:flex;position:fixed;bottom:88px;right:24px;box-shadow:0 8px 32px #0000004d}@keyframes toastSlideIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.milestone-toast-title{color:var(--text);font-family:Sora,sans-serif;font-size:14px;font-weight:600}.milestone-toast-actions{gap:8px;display:flex}.milestone-toast-actions button{border:1px solid var(--border);color:var(--text2);cursor:pointer;background:0 0;border-radius:4px;padding:4px 10px;font-family:JetBrains Mono,monospace;font-size:10px;transition:color .15s,border-color .15s}.milestone-toast-actions button:hover{color:var(--blue);border-color:var(--blue)}@media (width<=600px){.milestone-toast{max-width:none;bottom:72px;left:16px;right:16px}.badge-grid{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px}}.card-action-btns{border-top:1px solid #ffffff0f;gap:8px;margin-top:10px;padding-top:8px;display:flex}.card-action-btn{letter-spacing:.04em;color:var(--text2);cursor:pointer;border:1px solid var(--accent-primary-dim);background:var(--accent-primary-bg);border-radius:4px;padding:4px 10px;font-family:JetBrains Mono,monospace;font-size:11px;transition:color .15s,border-color .15s,background .15s}.card-action-btn:hover{color:var(--accent-primary);border-color:var(--accent-primary)}.revision-toggle{border:1px solid var(--border);background:var(--surface);cursor:pointer;border-radius:8px;align-items:center;gap:10px;padding:14px 18px;font-family:Sora,sans-serif;font-size:14px;font-weight:600;transition:border-color .15s;display:flex}.revision-toggle:hover{border-color:var(--accent-primary-dim)}.revision-game{border:1px solid var(--border);background:var(--surface);border-radius:10px;margin-top:16px;padding:24px}.revision-start,.revision-results{text-align:center;padding:20px 0}.revision-header{align-items:center;gap:10px;margin-bottom:16px;display:flex}.revision-timer-bar{background:var(--surface2);border-radius:2px;flex:1;height:4px;overflow:hidden}.revision-timer-fill{border-radius:2px;height:100%;transition:width 1s linear,background .3s}.revision-q-text{margin:12px 0 16px;font-size:15px;font-weight:500;line-height:1.5}.revision-code{background:var(--bg);border:1px solid var(--border);white-space:pre;border-radius:6px;margin:12px 0;padding:12px 14px;font-family:JetBrains Mono,monospace;font-size:13px;line-height:1.5;overflow-x:auto}.revision-options{grid-template-columns:1fr 1fr;gap:8px;display:grid}.revision-tf{grid-template-columns:1fr 1fr}.revision-option{border:1px solid var(--border);background:var(--bg);color:var(--text);cursor:pointer;text-align:left;border-radius:6px;padding:12px 16px;font-family:Sora,sans-serif;font-size:13px;transition:border-color .15s,background .15s}.revision-option:hover:not(:disabled){border-color:var(--accent-primary-dim);background:var(--surface2)}.revision-option.correct{border-color:var(--green);color:var(--green);background:#4ade801a}.revision-option.wrong{border-color:var(--coral);color:var(--coral);background:#f871711a}.revision-option:disabled{cursor:default}.revision-feedback{border-radius:8px;margin-top:16px;padding:14px 18px;font-size:13px}.revision-feedback.correct{background:#4ade8014;border:1px solid #4ade8040}.revision-feedback.wrong{background:#f8717114;border:1px solid #f8717140}.revision-blanks{flex-wrap:wrap;align-items:center;gap:10px;margin-top:10px;display:flex}.revision-blank-select{border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:6px;padding:8px 12px;font-family:JetBrains Mono,monospace;font-size:13px}.revision-score-circle{border:3px solid;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;width:100px;height:100px;margin-bottom:8px;display:inline-flex}.revision-grade{font-size:32px;font-weight:700;line-height:1}.revision-pct{color:var(--text3);font-family:JetBrains Mono,monospace;font-size:12px}.revision-stat{color:var(--text2);font-family:JetBrains Mono,monospace;font-size:11px}@media (width<=600px){.revision-options{grid-template-columns:1fr}.revision-game{padding:16px}.card-actions{font-size:10px}}.theme-picker{display:inline-block;position:relative}.theme-picker-trigger{border:1px solid var(--border);color:var(--text2);cursor:pointer;background:0 0;border-radius:4px;align-items:center;gap:6px;padding:4px 9px;font-size:14px;transition:border-color .15s,color .15s;display:inline-flex}.theme-picker-trigger:hover{border-color:var(--accent-primary);color:var(--text)}.theme-picker-theme-icon{font-size:14px;line-height:1}.theme-picker-accent-dot{width:10px;height:10px;box-shadow:0 0 10px var(--accent-glow);border:1px solid #fff3;border-radius:50%}.theme-picker-pop{top:calc(var(--topbar-height) + 4px);background:var(--surface);border:1px solid var(--border2);z-index:120;border-radius:8px;width:220px;max-width:calc(100vw - 24px);padding:10px;position:fixed;right:12px;box-shadow:0 8px 24px #0000004d}.theme-picker-section-label{text-transform:uppercase;letter-spacing:.1em;color:var(--text3);margin:6px 4px 4px;font-family:JetBrains Mono,monospace;font-size:10px}.theme-picker-themes{grid-template-columns:1fr 1fr;gap:4px;margin-bottom:4px;display:grid}.theme-opt{border:1px solid var(--border);color:var(--text2);cursor:pointer;background:0 0;border-radius:5px;align-items:center;gap:6px;padding:6px 10px;font-family:Sora,sans-serif;font-size:12px;transition:all .15s;display:flex}.theme-opt:hover{color:var(--text);border-color:var(--border2)}.theme-opt.active{color:var(--accent-primary);border-color:var(--accent-primary);background:var(--accent-primary-bg)}.theme-opt-icon{font-size:13px}.theme-picker-accents{gap:6px;padding:4px;display:flex}.accent-dot{cursor:pointer;border:2px solid #0000;border-radius:50%;width:22px;height:22px;padding:0;transition:transform .12s,border-color .15s}.accent-dot:hover{transform:scale(1.1)}.accent-dot.active{border-color:var(--text);box-shadow:0 0 14px var(--accent-glow);transform:scale(1.08)}.topbar-feedback-btn{border:1px solid var(--border);color:var(--text3);cursor:pointer;background:0 0;border-radius:4px;align-items:center;gap:5px;padding:4px 10px;font-family:JetBrains Mono,monospace;font-size:11px;transition:color .15s,border-color .15s;display:inline-flex}.topbar-feedback-btn:hover{color:var(--blue);border-color:var(--blue)}@media (width<=600px){.topbar-feedback-btn{display:none}}@keyframes notes-fab-breathe{0%,to{box-shadow:0 4px 16px #00000026, 0 0 0 0 var(--accent-primary-bg)}50%{box-shadow:0 4px 20px #0003, 0 0 0 6px var(--accent-primary-bg)}}.notes-fab{z-index:200;border:1.5px solid var(--accent-primary-dim);background:var(--surface);width:52px;height:52px;color:var(--accent-primary);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;transition:transform .2s,border-color .15s,background .15s;animation:3s ease-in-out infinite notes-fab-breathe;display:flex;position:fixed;bottom:24px;right:24px}.notes-fab:hover{border-color:var(--accent-primary);background:var(--accent-primary-bg);box-shadow:0 6px 28px #00000040, 0 0 0 4px var(--accent-primary-bg);animation:none;transform:scale(1.12)}.notes-fab:active{transform:scale(.95)}@media (width<=600px){.notes-fab{width:46px;height:46px;bottom:16px;right:16px}}.git-walkthrough{border:1px solid var(--border2);background:var(--surface);border-radius:12px;margin:32px 0;overflow:hidden}.git-walkthrough-header{border-bottom:1px solid var(--border);background:var(--surface2);justify-content:space-between;align-items:flex-start;gap:12px;padding:16px 20px;display:flex}.git-walkthrough-title{color:var(--accent-primary);margin-bottom:2px;font-family:Sora,sans-serif;font-size:16px;font-weight:700}.git-walkthrough-sub{color:var(--text3);font-family:JetBrains Mono,monospace;font-size:11px}.git-walkthrough-reset{border:1px solid var(--border);color:var(--text3);cursor:pointer;background:0 0;border-radius:5px;padding:6px 12px;font-family:JetBrains Mono,monospace;font-size:11px}.git-walkthrough-reset:hover:not(:disabled){border-color:var(--coral);color:var(--coral)}.git-walkthrough-reset:disabled{opacity:.35;cursor:not-allowed}.git-walkthrough-body{grid-template-columns:1.3fr 1fr;gap:18px;padding:18px;display:grid}.git-walkthrough-steps{flex-direction:column;gap:10px;display:flex}.git-step{border:1px solid var(--border);background:var(--surface2);opacity:.55;border-radius:8px;padding:12px 14px;transition:opacity .15s,border-color .15s}.git-step.ready{opacity:1;border-color:var(--accent-primary);box-shadow:0 0 0 1px var(--accent-primary)}.git-step.done{opacity:1;border-color:var(--teal)}.git-step-command{color:var(--text);align-items:center;gap:8px;font-family:JetBrains Mono,monospace;font-size:13px;display:flex}.git-step-prompt{color:var(--teal);font-weight:700}.git-step-command code{color:var(--text);word-break:break-word;background:0 0;flex:1;padding:0}.git-step-run{border:1px solid var(--accent-primary);background:var(--accent-primary);color:#fff;cursor:pointer;border-radius:4px;flex-shrink:0;padding:4px 12px;font-family:JetBrains Mono,monospace;font-size:11px}.git-step-run:hover{opacity:.88}.git-step-check{color:var(--teal);flex-shrink:0;font-size:14px;font-weight:700}.git-step-desc{color:var(--text2);margin-top:6px;font-family:Sora,sans-serif;font-size:13px;line-height:1.5}.git-step-output{background:var(--code-bg);color:var(--text2);white-space:pre-wrap;border-radius:5px;max-height:180px;margin:10px 0 0;padding:10px 12px;font-family:JetBrains Mono,monospace;font-size:12px;overflow:auto}.git-state{background:var(--code-bg);top:calc(var(--header-height) + 12px);border-radius:8px;flex-direction:column;align-self:start;gap:8px;padding:14px;font-family:JetBrains Mono,monospace;font-size:12px;display:flex;position:sticky}.git-state-row{border-bottom:1px dashed var(--border);gap:8px;padding:6px 0;display:flex}.git-state-row:last-child{border-bottom:none}.git-state-label{width:110px;color:var(--text3);text-transform:uppercase;letter-spacing:.08em;flex-shrink:0;padding-top:2px;font-size:10px}.git-state-files{color:var(--text);word-break:break-word;flex:1}.git-empty{color:var(--text3);font-style:italic}.git-commit-list{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.git-commit-list code{color:var(--accent-primary);background:0 0;padding:0 4px 0 0;font-size:11px}@media (width<=760px){.git-walkthrough-body{grid-template-columns:1fr}.git-state{position:static}}.lesson-rating{border:1px solid var(--border);background:var(--surface);border-radius:10px;max-width:560px;margin:36px auto 0;padding:18px 22px}.lesson-rating-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;display:flex}.lesson-rating-label{text-transform:uppercase;letter-spacing:.1em;color:var(--text3);font-family:JetBrains Mono,monospace;font-size:11px}.lesson-rating-avg{color:var(--text3);font-family:JetBrains Mono,monospace;font-size:11px}.lesson-rating-stars{gap:2px;display:flex}.star-btn{cursor:pointer;color:var(--border2);background:0 0;border:none;padding:2px 4px;font-size:26px;line-height:1;transition:color .12s,transform .12s}.star-btn:hover{transform:translateY(-1px)}.star-btn.filled{color:var(--amber)}.star-btn:disabled{cursor:wait;opacity:.6}.lesson-rating-notice{color:var(--amber);margin-top:8px;font-family:JetBrains Mono,monospace;font-size:11px}.resume-banner{background:linear-gradient(90deg,#2dd4bf14,#4a9eff0f);border:1px solid #2dd4bf59;border-radius:12px;align-items:center;gap:20px;margin:0 0 28px;padding:18px 24px;display:flex}.resume-banner-body{flex:1;min-width:0}.resume-banner-eyebrow{text-transform:uppercase;letter-spacing:.14em;color:var(--teal);margin-bottom:4px;font-family:JetBrains Mono,monospace;font-size:11px}.resume-banner-title{margin-bottom:4px;font-family:Sora,sans-serif;font-size:18px;font-weight:700}.resume-banner-title .accent{color:var(--accent-primary)}.resume-banner-meta{color:var(--text3);font-family:JetBrains Mono,monospace;font-size:12px}.resume-banner-cta{flex-shrink:0;padding:10px 18px;font-size:14px}@media (width<=600px){.resume-banner{text-align:left;flex-direction:column;align-items:stretch}.resume-banner-cta{text-align:center}}html[data-theme=light] .resume-banner{background:linear-gradient(90deg,#0d948812,#2563eb0d);border-color:#0d94884d}.streak-warning{background:linear-gradient(90deg,#fbbf2414,#fb923c0f);border:1px solid #fbbf2459;border-radius:10px;align-items:center;gap:12px;margin:0 0 20px;padding:14px 20px;animation:3s ease-in-out infinite streakGlow;display:flex}.streak-warning-content{color:var(--text);flex:1;align-items:center;gap:10px;font-size:14px;display:flex}.streak-warning-flame{color:#fbbf24;filter:drop-shadow(0 0 3px #fbbf2480);flex-shrink:0;animation:2s ease-in-out infinite flameBreathe,.4s ease-in-out infinite flameFlicker;display:inline-flex}.streak-warning-cta{color:#fbbf24;white-space:nowrap;border:1px solid #fbbf2466;border-radius:6px;flex-shrink:0;padding:5px 14px;font-family:JetBrains Mono,monospace;font-size:12px;font-weight:600;text-decoration:none;transition:all .15s}.streak-warning-cta:hover{color:#fbbf24;background:#fbbf2426;text-decoration:none}.streak-warning-close{color:var(--text3);cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:0 4px;font-size:18px;line-height:1;transition:color .15s}.streak-warning-close:hover{color:var(--text)}html[data-theme=light] .streak-warning,html[data-theme=medium] .streak-warning{background:linear-gradient(90deg,#d977060f,#ea580c0a);border-color:#d977064d}@media (width<=600px){.streak-warning-content{flex-wrap:wrap}.streak-warning-cta{margin-top:4px}}.auth-gate{text-align:center;border:1px solid var(--border2);background:linear-gradient(#4a9eff0a,#0000);border-radius:14px;max-width:640px;margin:40px auto;padding:40px 32px}.auth-gate-icon{color:var(--blue);margin-bottom:12px;font-size:42px;line-height:1}.auth-gate-label{text-transform:uppercase;letter-spacing:.15em;color:var(--text3);margin-bottom:10px;font-family:JetBrains Mono,monospace;font-size:11px}.auth-gate-title{margin:0 0 14px;font-size:26px}.auth-gate-title .accent{color:var(--accent-primary)}.auth-gate-desc{color:var(--text2);max-width:520px;margin:0 auto 18px;font-size:15px;line-height:1.6}.auth-gate-perks{text-align:left;color:var(--text2);margin:0 auto 24px;padding:0;font-size:14px;line-height:1.8;list-style:none;display:inline-block}.auth-gate-perks li:before{content:"✓ ";color:var(--teal);margin-right:4px;font-weight:700}.auth-gate-buttons{flex-direction:column;gap:10px;max-width:280px;margin:0 auto 16px;display:flex}.auth-gate-buttons .btn-primary,.auth-gate-buttons .btn-secondary{cursor:pointer;border:1px solid;border-radius:6px;justify-content:center;align-items:center;gap:10px;padding:10px 16px;font-family:Sora,sans-serif;font-size:14px;font-weight:600;display:inline-flex}.auth-gate-footnote{color:var(--text3);margin:0;font-size:12px}@media (width<=600px){.auth-gate{border-radius:10px;margin:24px 0;padding:28px 18px}.auth-gate-title{font-size:20px}.auth-gate-icon{font-size:32px}.auth-gate-desc{font-size:14px}.auth-gate-buttons{max-width:100%}}.sidebar-lock{color:var(--text3);opacity:.6;flex-shrink:0;margin-left:auto;font-size:11px}.lp-flow{flex-wrap:wrap;justify-content:flex-start;align-items:stretch;gap:14px;margin:18px 0 8px;display:flex}.lp-node{text-align:center;background:var(--surface);border:1px solid;border-radius:10px;flex-direction:column;flex:140px;align-items:center;gap:4px;min-width:140px;max-width:200px;padding:16px 10px;text-decoration:none;transition:transform .15s,box-shadow .15s,border-color .15s;display:flex;position:relative}.lp-node:hover{transform:translateY(-2px);box-shadow:0 8px 24px #00000026}.lp-node-stage{text-transform:uppercase;letter-spacing:.08em;color:var(--text3);opacity:.9;font-family:JetBrains Mono,monospace;font-size:10px}.lp-node-icon{margin:4px 0 2px;font-size:26px;line-height:1}.lp-node-label{font-family:Sora,sans-serif;font-size:15px;font-weight:700}.lp-node-topics{color:var(--text3);font-family:JetBrains Mono,monospace;font-size:11px}.lp-node:not(.lp-node-last):after{content:"→";color:var(--text3);pointer-events:none;z-index:1;font-size:14px;position:absolute;top:50%;right:-11px;transform:translateY(-50%)}.lp-coral{background:#f8717112;border-color:#f8717159}.lp-coral .lp-node-label{color:var(--coral)}.lp-blue{background:#4a9eff12;border-color:#4a9eff59}.lp-blue .lp-node-label{color:var(--blue)}.lp-amber{background:#fbbf2412;border-color:#fbbf2459}.lp-amber .lp-node-label{color:var(--amber)}.lp-teal{background:#2dd4bf12;border-color:#2dd4bf59}.lp-teal .lp-node-label{color:var(--teal)}.lp-purple{background:#a78bfa12;border-color:#a78bfa59}.lp-purple .lp-node-label{color:var(--purple)}.lp-green{background:#4ade8012;border-color:#4ade8059}.lp-green .lp-node-label{color:var(--green)}html[data-theme=light] .lp-coral{background:#dc26260f;border-color:#dc26264d}html[data-theme=light] .lp-blue{background:#2563eb0f;border-color:#2563eb4d}html[data-theme=light] .lp-amber{background:#d977060f;border-color:#d977064d}html[data-theme=light] .lp-teal{background:#0d94880f;border-color:#0d94884d}html[data-theme=light] .lp-purple{background:#7c3aed0f;border-color:#7c3aed4d}html[data-theme=light] .lp-green{background:#16a34a0f;border-color:#16a34a4d}@media (width<=720px){.lp-flow{flex-direction:column;align-items:stretch;gap:10px}.lp-node{text-align:left;flex-direction:row;justify-content:flex-start;gap:14px;min-width:0;max-width:none;padding:12px 16px}.lp-node-icon{margin:0;font-size:22px}.lp-node-topics{margin-left:auto}.lp-node:not(.lp-node-last):after{content:"↓";top:auto;bottom:-14px;right:50%;transform:translate(50%)}}.landing-stat-label{color:var(--text3);letter-spacing:.02em;margin-top:4px;font-family:JetBrains Mono,monospace;font-size:11px}.home-content{max-width:100%;padding:44px 52px}.home-email-wrap{max-width:1160px;margin:0 auto;padding:0 52px 40px}.home-footer{flex-direction:column;gap:8px;max-width:1160px;margin:40px auto 0}@media (width<=900px){.home-content{padding:28px 20px}.home-email-wrap{padding:0 20px 28px}.home-footer{margin:30px auto 0;padding:20px}}@media (width<=600px){.home-content{max-width:100%;padding:18px 14px}.home-email-wrap{padding:0 14px 20px}.home-footer{text-align:center;flex-direction:column;gap:8px;margin:20px auto 0;padding:16px 14px}.landing-stats{flex-wrap:wrap;gap:12px;margin-bottom:24px;padding:20px 0}.landing-stat{flex-basis:45%}.landing-stat-num{font-size:22px}.landing-stat-label{font-size:10px}}.email-capture-form{gap:8px;display:flex}@media (width<=600px){.email-capture-form{flex-direction:column}.email-capture-form button[type=submit]{width:100%}}@keyframes flashcardBob{0%,to{transform:translateY(0);box-shadow:0 4px 16px #0000001f}50%{transform:translateY(-6px);box-shadow:0 8px 28px #0000002e}}@keyframes assessSlideIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.flashcard-deck{max-width:480px;margin-top:8px;margin-left:auto;margin-right:auto}.flashcard-header{align-items:center;gap:8px;margin-bottom:20px;display:flex}.flashcard-nav-btn{border:1px solid var(--border);color:var(--text3);cursor:pointer;background:0 0;border-radius:4px;padding:4px 12px;font-family:JetBrains Mono,monospace;font-size:10px;transition:border-color .15s,color .15s}.flashcard-nav-btn:hover:not(:disabled){border-color:var(--accent-primary);color:var(--accent-primary)}.flashcard-nav-btn:disabled{opacity:.25;cursor:default}.flashcard-progress-bar{background:var(--surface2);border-radius:2px;flex:1;height:3px;overflow:hidden}.flashcard-progress-fill{border-radius:2px;height:100%;transition:width .3s}.flashcard-shuffle-btn{border:1px solid var(--border);color:var(--text3);cursor:pointer;background:0 0;border-radius:4px;padding:3px 10px;font-family:JetBrains Mono,monospace;font-size:10px;transition:color .15s,border-color .15s}.flashcard-shuffle-btn:hover{color:var(--accent-primary);border-color:var(--accent-primary)}.flashcard-card{perspective:900px;cursor:pointer;margin-bottom:20px}.flashcard-inner{width:100%;min-height:240px;transform-style:preserve-3d;border:1.5px solid var(--border);border-radius:16px;transition:transform .5s cubic-bezier(.4,0,.2,1);animation:3s ease-in-out infinite flashcardBob;position:relative}.flashcard-inner:hover{animation:none;transform:translateY(-4px);box-shadow:0 10px 36px #00000038}.flashcard-inner.flipped{animation:none;transform:rotateY(180deg)}.flashcard-inner.flipped:hover{transform:rotateY(180deg)translateY(-2px)}.flashcard-front,.flashcard-back{backface-visibility:hidden;background:var(--surface);text-align:center;border-radius:16px;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:40px 32px;display:flex;position:absolute;inset:0}.flashcard-back{background:var(--bg);transform:rotateY(180deg)}.flashcard-icon{opacity:.7;margin-bottom:4px;font-size:28px}.flashcard-term{color:var(--text);font-family:Sora,sans-serif;font-size:26px;font-weight:700;line-height:1.2}.flashcard-hint{color:var(--text3);letter-spacing:.04em;margin-top:8px;font-family:JetBrains Mono,monospace;font-size:11px}.flashcard-hint span{font-size:13px;animation:2s ease-in-out infinite flashcardBob;display:inline-block}.flashcard-definition{color:var(--text2);max-width:380px;font-size:15px;line-height:1.7}.flashcard-topic-pill{letter-spacing:.05em;border:1px solid;border-radius:20px;margin-top:6px;padding:3px 10px;font-family:JetBrains Mono,monospace;font-size:10px}.flashcard-assess{justify-content:center;gap:10px;margin-bottom:16px;animation:.25s ease-out assessSlideIn;display:flex}.flashcard-assess-btn{cursor:pointer;border:1px solid;border-radius:8px;padding:10px 28px;font-family:JetBrains Mono,monospace;font-size:12px;font-weight:600;transition:background .15s,transform .1s}.flashcard-assess-btn:active{transform:scale(.96)}.flashcard-assess-btn.got-it{border-color:var(--green);color:var(--green);background:#4ade8014}.flashcard-assess-btn.got-it:hover{background:#4ade802e}.flashcard-assess-btn.still-learning{border-color:var(--amber);color:var(--amber);background:#fbbf2414}.flashcard-assess-btn.still-learning:hover{background:#fbbf242e}.flashcard-results{text-align:center;padding:24px 0}.flashcard-stat{flex-direction:column;align-items:center;gap:2px;display:flex}.flashcard-stat-num{font-family:JetBrains Mono,monospace;font-size:28px;font-weight:700}.flashcard-stat-label{color:var(--text3);font-family:JetBrains Mono,monospace;font-size:10px}.flashcard-stat-green .flashcard-stat-num{color:var(--green)}.flashcard-stat-amber .flashcard-stat-num{color:var(--amber)}@media (width<=600px){.flashcard-deck{max-width:100%}.flashcard-inner{min-height:200px}.flashcard-term{font-size:20px}.flashcard-front,.flashcard-back{padding:28px 20px}.flashcard-assess-btn{padding:12px 22px}}.floating-notepad{z-index:200;background:var(--bg);border:1px solid var(--border);resize:both;pointer-events:auto;box-sizing:border-box;border-radius:10px;flex-direction:column;min-width:280px;max-width:90vw;min-height:200px;max-height:85vh;display:flex;position:fixed;overflow:hidden;box-shadow:0 12px 40px #00000059}.floating-notepad-header{background:var(--surface);border-bottom:1px solid var(--border);cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none;box-sizing:border-box;flex-shrink:0;justify-content:space-between;align-items:center;min-height:40px;padding:8px 10px 8px 14px;display:flex}.floating-notepad-header:active{cursor:grabbing}.floating-notepad-header *{pointer-events:none}.floating-notepad-header button{pointer-events:auto}.floating-notepad-title{color:var(--text);font-family:Sora,sans-serif;font-size:13px;font-weight:600}.floating-notepad-header-btns{gap:4px;display:flex}.floating-notepad-iconbtn{width:26px;height:26px;color:var(--text2);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;padding:0;font-size:15px;line-height:1;display:inline-flex}.floating-notepad-iconbtn:hover{border-color:var(--border);color:var(--text);background:var(--bg)}.floating-notepad-textarea{width:100%;color:var(--text);background:var(--bg);resize:none;box-sizing:border-box;border:none;outline:none;flex:1;padding:12px 14px;font-family:JetBrains Mono,monospace;font-size:13.5px;line-height:1.6}.floating-notepad-textarea::placeholder{color:var(--text2);opacity:.6}.floating-notepad-status{color:var(--text2);border-top:1px solid var(--border);background:var(--surface);text-align:right;box-sizing:border-box;flex-shrink:0;min-height:22px;padding:6px 14px;font-family:JetBrains Mono,monospace;font-size:11px}.floating-notepad-status.error{color:var(--coral)}@media (width<=600px){.floating-notepad{resize:none;max-width:95vw}}.prereq-nudge{border:1px solid var(--amber);background:#fbbf2414;border-radius:10px;align-items:flex-start;gap:14px;max-width:760px;margin:24px auto 0;padding:14px 16px;display:flex}.prereq-nudge-icon{flex-shrink:0;font-size:22px;line-height:1}.prereq-nudge-body{flex:1}.prereq-nudge-title{color:var(--text);margin-bottom:4px;font-family:Sora,sans-serif;font-size:14px}.prereq-nudge-sub{color:var(--text2);margin-bottom:10px;font-size:12.5px;line-height:1.5}.prereq-nudge-actions{flex-wrap:wrap;gap:8px;display:flex}.prereq-nudge-btn{padding:6px 14px;font-size:12px}@media (width<=600px){.prereq-nudge{gap:10px;padding:12px}.prereq-nudge-icon{font-size:18px}.prereq-nudge-actions{flex-direction:column;align-items:stretch}.prereq-nudge-btn{text-align:center;justify-content:center;align-items:center;width:100%;min-height:44px;padding:12px 14px;font-size:13px;display:inline-flex}.revision-blank-select{min-height:44px;padding:10px 12px;font-size:14px}.revision-option{min-height:44px}}.section-test{flex-direction:column;gap:8px;display:flex}.revision-option.selected{border-color:var(--blue);background:#4a9eff14}
