@import "https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&family=Inter:wght@400;500&display=swap";*{box-sizing:border-box;margin:0;padding:0}:root{--bg:#111113;--surface:#1a1a1f;--surface-2:#222228;--surface-3:#2a2a32;--border:#2e2e38;--border-subtle:#252530;--text:#ededef;--text-secondary:#a0a0ab;--text-muted:#6e6e7a;--accent:#f0a030;--accent-dim:#f0a03026;--accent-hover:#fbb040;--green:#34d399;--green-dim:#34d3991f;--orange:#fb923c;--orange-dim:#fb923c1f;--red:#f87171;--red-dim:#f871711f;--purple:#a78bfa;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--shadow-sm:0 1px 3px #0000004d;--shadow-md:0 4px 16px #0006;--shadow-lg:0 12px 40px #00000080}[data-theme=light]{--bg:#f8f8fa;--surface:#fff;--surface-2:#f0f0f4;--surface-3:#e8e8ed;--border:#d4d4dc;--border-subtle:#e2e2ea;--text:#1a1a2e;--text-secondary:#4a4a5e;--text-muted:#7a7a8e;--accent:#d48820;--accent-dim:#d488201a;--accent-hover:#c07818;--green:#16a34a;--green-dim:#16a34a14;--orange:#ea580c;--orange-dim:#ea580c14;--red:#dc2626;--red-dim:#dc262614;--purple:#7c3aed;--shadow-sm:0 1px 3px #00000014;--shadow-md:0 4px 16px #0000001a;--shadow-lg:0 12px 40px #0000001f}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font-family:Inter,-apple-system,sans-serif;line-height:1.6}.app{flex-direction:column;min-height:100vh;display:flex}.top-bar{background:var(--surface);border-bottom:1px solid var(--border-subtle);z-index:100;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#1a1a1feb;align-items:center;gap:16px;padding:14px 24px;display:flex;position:sticky;top:0}.menu-btn{border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-sm);background:0 0;padding:6px 10px;font-size:16px;transition:all .15s}.menu-btn:hover{background:var(--surface-2);color:var(--text);border-color:var(--text-muted)}.logo{color:var(--text);letter-spacing:-.3px;align-items:center;gap:10px;font-family:Space Grotesk,sans-serif;font-size:22px;font-weight:700;text-decoration:none;display:flex}.logo-cat{flex-shrink:0;width:36px;height:32px}.main-layout{flex:1;display:flex}.sidebar{background:var(--surface);border-right:1px solid var(--border-subtle);scroll-behavior:smooth;-webkit-overflow-scrolling:touch;width:280px;min-width:280px;height:calc(100vh - 56px);position:sticky;top:56px;overflow:hidden auto}.sidebar::-webkit-scrollbar{width:5px}.sidebar::-webkit-scrollbar-track{background:0 0}.sidebar::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.sidebar::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.sidebar-progress{border-bottom:1px solid var(--border-subtle);background:var(--surface);z-index:2;padding:12px 16px;position:sticky;top:0}.sidebar-progress-bar{background:var(--surface-3);border-radius:2px;height:4px;overflow:hidden}.sidebar-progress-fill{background:var(--green);border-radius:2px;height:100%;transition:width .4s}.sidebar-progress-text{color:var(--text-muted);margin-top:4px;font-size:10px;display:block}.sidebar-home-btn{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);width:calc(100% - 24px);color:var(--text);cursor:pointer;text-align:left;margin:8px 12px;padding:8px 12px;font-size:13px;font-weight:500;transition:background .15s;display:block}.sidebar-home-btn:hover{background:var(--surface-3)}.sidebar-category{margin-top:4px}.sidebar-category-header{justify-content:space-between;align-items:center;padding:10px 14px 4px;display:flex}.sidebar-category-label{text-transform:uppercase;letter-spacing:.8px;color:var(--text-muted);font-size:10px;font-weight:600}.sidebar-category-count{color:var(--text-muted);font-size:10px}.sidebar-module{border-bottom:1px solid var(--border-subtle)}.sidebar-module.is-active{background:#f0a03005}.module-icon{color:var(--accent);vertical-align:middle;flex-shrink:0}.sidebar-module-header{cursor:pointer;text-transform:uppercase;letter-spacing:.6px;color:var(--text-muted);-webkit-user-select:none;user-select:none;align-items:center;gap:8px;padding:12px 14px;font-family:Space Grotesk,sans-serif;font-size:11.5px;font-weight:600;transition:all .15s;display:flex}.sidebar-module-header:hover{color:var(--text-secondary);background:var(--surface-2)}.sidebar-module-header.is-expanded{color:var(--text-secondary)}.sidebar-chevron{text-align:center;width:12px;color:var(--text-muted);flex-shrink:0;font-size:14px;font-weight:700;transition:transform .2s}.sidebar-chevron.rotated{transform:rotate(90deg)}.sidebar-module-title{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.sidebar-module-header .badge{background:var(--surface-3);color:var(--text-muted);border-radius:10px;flex-shrink:0;margin-left:auto;padding:2px 8px;font-size:10px;font-weight:500}.sidebar-module-header .badge-done{color:var(--green);background:#34d39926}.sidebar-topics-wrapper{max-height:0;transition:max-height .25s;overflow:hidden}.sidebar-topics-wrapper.is-open{max-height:2000px;transition:max-height .4s}.sidebar-topics{padding-bottom:6px;list-style:none}.sidebar-topics li a{color:var(--text-secondary);border-left:2px solid #0000;align-items:flex-start;padding:8px 14px 8px 38px;font-size:12.5px;font-weight:400;line-height:1.4;text-decoration:none;transition:all .12s;display:flex}.sidebar-topics li a:hover{background:var(--surface-2);color:var(--text)}.sidebar-topics li a.active{color:var(--accent);border-left-color:var(--accent);background:var(--accent-dim);font-weight:500}.sidebar-topics li a .topic-check{opacity:.5;flex-shrink:0;margin-top:1px;margin-right:8px;font-size:11px}.sidebar-topics li a .topic-title{flex:1}.sidebar-topics li a.completed{color:var(--green);opacity:.85}.sidebar-topics li a.completed:hover{opacity:1}.sidebar-topics li a.completed .topic-check{color:var(--green);opacity:1}.content{flex:1;max-width:100%;padding:48px 56px;overflow-y:auto}.home h1{letter-spacing:-.5px;background:linear-gradient(135deg, var(--text) 0%, var(--text-secondary) 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;margin-bottom:10px;font-family:Space Grotesk,sans-serif;font-size:36px;font-weight:700}.home-hero{margin-bottom:28px}.home .lead{color:var(--text-muted);max-width:600px;margin-bottom:20px;font-size:15px;line-height:1.7}.home-stats{border-top:1px solid var(--border-subtle);border-bottom:1px solid var(--border-subtle);gap:24px;margin-bottom:8px;padding:16px 0;display:flex}.home-stat{flex-direction:column;gap:2px;display:flex}.home-stat-value{color:var(--accent);font-family:Space Grotesk,sans-serif;font-size:20px;font-weight:700}.home-stat-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;font-size:11px;font-weight:500}.roadmap{flex-direction:column;gap:12px;display:flex}.roadmap-card{background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);cursor:pointer;align-items:center;gap:16px;padding:20px 24px;transition:all .2s;display:flex}.roadmap-card:hover{border-color:var(--border);background:var(--surface-2);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.roadmap-card .num{background:var(--accent-dim);color:var(--accent);border-radius:var(--radius-sm);flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-family:Space Grotesk,sans-serif;font-size:14px;font-weight:700;display:flex}.roadmap-card h3{letter-spacing:-.2px;margin-bottom:3px;font-family:Space Grotesk,sans-serif;font-size:15px;font-weight:600}.roadmap-card p{color:var(--text-muted);font-size:13px;line-height:1.5}.roadmap-card .topics-count{color:var(--text-muted);margin-top:4px;font-size:12px;font-weight:500}.module-done{color:var(--green)!important}.module-progress-ring{flex-shrink:0;margin-left:auto}.topic-page h1{letter-spacing:-.4px;margin-bottom:12px;font-family:Space Grotesk,sans-serif;font-size:30px;font-weight:700}.topic-header{border-bottom:1px solid var(--border-subtle);margin-bottom:36px;padding-bottom:24px}.topic-breadcrumb{align-items:center;gap:8px;margin-bottom:12px;font-size:13px;display:flex}.topic-breadcrumb a{color:var(--text-muted);text-decoration:none;transition:color .15s}.topic-breadcrumb a:hover{color:var(--accent)}.breadcrumb-sep{color:var(--border)}.topic-breadcrumb span:last-child{color:var(--text-secondary)}.topic-toc{background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);margin-bottom:28px;padding:14px 18px}.toc-toggle{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:0;font-family:Space Grotesk,sans-serif;font-size:13px;font-weight:500;transition:color .15s}.toc-toggle:hover{color:var(--text-secondary)}.toc-list{grid-template-columns:1fr 1fr;gap:4px 24px;margin-top:10px;padding-left:18px;display:grid}.toc-list li{font-size:13px;line-height:1.8}.toc-list a{color:var(--text-secondary);text-decoration:none;transition:color .15s}.toc-list a:hover{color:var(--accent)}.topic-body{flex-direction:column;gap:8px;display:flex}.coming-soon-card{text-align:center;background:var(--surface);border:1px dashed var(--border);border-radius:var(--radius-lg);padding:60px 30px}.coming-soon-icon{margin-bottom:16px;font-size:48px}.coming-soon-card h3{margin-bottom:8px;font-family:Space Grotesk,sans-serif;font-size:20px}.coming-soon-card p{color:var(--text-muted);font-size:14px}.topic-meta{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:0;display:flex}.topic-tag{background:var(--surface-2);color:var(--text-muted);border:1px solid var(--border-subtle);border-radius:20px;padding:4px 12px;font-size:12px;font-weight:500}.topic-tag.difficulty-beginner{color:var(--green);border-color:var(--green);background:var(--green-dim)}.topic-tag.difficulty-intermediate{color:var(--orange);border-color:var(--orange);background:var(--orange-dim)}.topic-tag.difficulty-advanced{color:var(--red);border-color:var(--red);background:var(--red-dim)}.topic-section{background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);margin-bottom:32px;padding:24px 28px;transition:border-color .2s}.topic-section:hover{border-color:var(--border)}.section-header{border-bottom:1px solid var(--border-subtle);align-items:center;gap:10px;margin-bottom:16px;padding-bottom:12px;display:flex}.section-icon{flex-shrink:0;font-size:18px}.topic-section h2{letter-spacing:-.2px;border:none;margin:0;padding:0;font-family:Space Grotesk,sans-serif;font-size:18px;font-weight:600}.section-body{padding:0}.topic-section h3{color:var(--accent);margin:20px 0 8px;font-family:Space Grotesk,sans-serif;font-size:15px;font-weight:600}.topic-section p,.topic-section li{color:var(--text-secondary);margin-bottom:6px;font-size:14.5px;line-height:1.75}.topic-section ul,.topic-section ol{padding-left:20px}.topic-section pre{background:var(--surface-2);border:1px solid var(--border-subtle);border-radius:var(--radius-md);margin:14px 0;padding:18px 20px;font-family:JetBrains Mono,monospace;font-size:13px;line-height:1.6;overflow-x:auto}.topic-section code{background:var(--surface-3);color:var(--accent);border-radius:4px;padding:2px 7px;font-family:JetBrains Mono,monospace;font-size:12.5px}.text-content{line-height:1.75}.content-paragraph{color:var(--text-secondary);margin-bottom:10px;font-size:14.5px}.cross-link{color:#60a5fa;border-bottom:1px dotted #60a5fa66;text-decoration:none;transition:color .15s,border-color .15s}.cross-link:hover{color:#93c5fd;border-bottom-style:solid;border-bottom-color:#93c5fd}[data-theme=light] .cross-link{color:#2563eb;border-bottom-color:#2563eb66}[data-theme=light] .cross-link:hover{color:#1d4ed8;border-bottom-color:#1d4ed8}.content-spacer{height:8px}.content-list{margin:10px 0;padding:0;list-style:none}.content-list li{color:var(--text-secondary);margin-bottom:6px;padding-left:20px;font-size:14px;line-height:1.7;position:relative}.content-list li:before{content:"▸";color:var(--accent);font-size:12px;position:absolute;top:2px;left:2px}.content-list li.nested{padding-left:36px}.content-list li.nested:before{content:"·";color:var(--text-muted);font-size:18px;left:18px}.content-question{background:var(--surface-2);border-left:3px solid var(--purple);border-radius:0 var(--radius-sm) var(--radius-sm) 0;color:var(--text);margin:14px 0;padding:12px 16px;font-size:14px;font-weight:500}.content-code{border:1px solid var(--border);border-radius:var(--radius-md);-webkit-overflow-scrolling:touch;white-space:pre;tab-size:2;background:#0d0d11;margin:14px 0;padding:18px 20px;overflow-x:auto}.content-code code{color:var(--text-secondary);white-space:pre;letter-spacing:0;word-spacing:0;background:0 0;padding:0;font-family:JetBrains Mono,Courier New,monospace;font-size:13px;line-height:1.55}.content-table-wrapper{border-radius:var(--radius-md);border:1px solid var(--border-subtle);margin:14px 0;overflow-x:auto}.content-table{border-collapse:collapse;width:100%;font-size:13px}.content-table th{background:var(--surface-2);text-align:left;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);border-bottom:1px solid var(--border);padding:10px 14px;font-family:Space Grotesk,sans-serif;font-size:12px;font-weight:600}.content-table td{border-bottom:1px solid var(--border-subtle);color:var(--text-secondary);padding:10px 14px}.content-table tr:last-child td{border-bottom:none}.content-table tr:hover td{background:var(--surface-2)}.diagram-container{max-width:100%;margin:8px 0;overflow-x:auto}.diagram-box{background:linear-gradient(145deg, #0d0d11, var(--surface-2));border:1px solid var(--border);border-radius:var(--radius-md);white-space:pre;color:var(--text-secondary);tab-size:2;-webkit-overflow-scrolling:touch;text-align:left;letter-spacing:0;word-spacing:0;padding:24px 28px;font-family:JetBrains Mono,Courier New,monospace;font-size:12.5px;line-height:1.45;position:relative;overflow-x:auto}.diagram-box:before{content:"ARCHITECTURE";letter-spacing:1.5px;color:var(--accent);opacity:.5;font-family:Space Grotesk,sans-serif;font-size:9px;font-weight:600;position:absolute;top:10px;right:14px}.key-points{background:linear-gradient(135deg, var(--accent-dim), #f0a0300d);border-radius:var(--radius-lg);border:1px solid #f0a03040;margin:12px 0;padding:22px 26px}.key-points-header{align-items:center;gap:8px;margin-bottom:14px;display:flex}.key-points h4{color:var(--accent);text-transform:uppercase;letter-spacing:.5px;margin-bottom:0;font-family:Space Grotesk,sans-serif;font-size:13px;font-weight:600}.key-points ul{padding:0;list-style:none}.key-points li{color:var(--text-secondary);padding:6px 0 6px 20px;font-size:14px;line-height:1.7;position:relative}.key-points li:before{content:"→";color:var(--accent);font-weight:700;position:absolute;left:0}.tradeoffs{grid-template-columns:1fr 1fr;gap:14px;margin:16px 0;display:grid}.tradeoff-col{background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:18px}.tradeoff-col h4{text-transform:uppercase;letter-spacing:.8px;margin-bottom:10px;font-family:Space Grotesk,sans-serif;font-size:11px;font-weight:600}.tradeoff-col.pros h4{color:var(--green)}.tradeoff-col.cons h4{color:var(--red)}.tradeoff-col ul{padding:0;list-style:none}.tradeoff-col li{color:var(--text-secondary);padding:3px 0;font-size:13px}.interview-tip{background:linear-gradient(135deg, var(--orange-dim), #fb923c0d);border-radius:var(--radius-lg);border:1px solid #fb923c40;margin:12px 0;padding:22px 26px}.interview-tip-header{align-items:center;gap:8px;margin-bottom:14px;display:flex}.interview-tip h4{color:var(--orange);text-transform:uppercase;letter-spacing:.5px;margin-bottom:0;font-family:Space Grotesk,sans-serif;font-size:13px;font-weight:600}.example-services{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;margin:14px 0;display:grid}.service-card{background:var(--surface-2);border:1px solid var(--border-subtle);border-radius:var(--radius-md);align-items:flex-start;gap:12px;padding:14px 16px;transition:all .2s;display:flex}.service-card:hover{border-color:var(--accent);background:var(--surface-3);transform:translateY(-1px);box-shadow:0 4px 12px #0003}.service-card-icon{color:var(--accent);margin-top:4px;font-size:10px}.service-card h5{color:var(--text);margin-bottom:4px;font-family:Space Grotesk,sans-serif;font-size:13px;font-weight:600}.service-card p{color:var(--text-muted);font-size:12px;line-height:1.5}.topic-complete-bottom{text-align:center;margin-top:40px}.topic-nav{border-top:1px solid var(--border-subtle);justify-content:space-between;margin-top:48px;padding-top:24px;display:flex}.topic-nav a{color:var(--text-secondary);border-radius:var(--radius-sm);border:1px solid var(--border-subtle);padding:10px 18px;font-size:13px;font-weight:500;text-decoration:none;transition:all .15s}.topic-nav a:hover{background:var(--surface-2);border-color:var(--accent);color:var(--accent)}.search-btn{background:var(--surface-2);border:1px solid var(--border);color:var(--text-muted);border-radius:var(--radius-sm);cursor:pointer;align-items:center;gap:10px;min-width:160px;padding:9px 18px;font-family:Inter,sans-serif;font-size:14px;transition:all .15s;display:flex}.search-btn kbd{background:var(--surface-3);border:1px solid var(--border);border-radius:3px;padding:2px 6px;font-family:JetBrains Mono,monospace;font-size:11px}.search-btn:hover{border-color:var(--text-muted);color:var(--text-secondary)}.theme-toggle{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;padding:6px 10px;font-size:14px;line-height:1;transition:all .15s}.theme-toggle:hover{background:var(--surface-3);border-color:var(--text-muted)}.search-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;background:#000000bf;justify-content:center;align-items:flex-start;padding-top:100px;display:flex;position:fixed;inset:0}.search-modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);width:560px;max-height:480px;box-shadow:var(--shadow-lg);overflow:hidden}.search-input-wrapper{border-bottom:1px solid var(--border-subtle);align-items:center;gap:12px;padding:18px 20px;display:flex}.search-icon{color:var(--text-muted);font-size:14px}.search-input{color:var(--text);background:0 0;border:none;outline:none;flex:1;font-family:Inter,sans-serif;font-size:16px}.search-input::placeholder{color:var(--text-muted)}.search-results{max-height:380px;padding:8px;list-style:none;overflow-y:auto}.search-results li{border-radius:var(--radius-sm);cursor:pointer;align-items:center;gap:12px;padding:12px 14px;transition:background .1s;display:flex}.search-results li:hover{background:var(--surface-2)}.search-result-icon{opacity:.7;font-size:16px}.search-result-title{color:var(--text);font-size:14px;font-weight:500}.search-result-module{color:var(--text-muted);font-size:12px}.search-empty{text-align:center;color:var(--text-muted);padding:32px;font-size:14px}.progress-bar-container{background:var(--surface-2);border:1px solid var(--border-subtle);border-radius:11px;width:120px;height:22px;margin-left:auto;position:relative;overflow:hidden}.progress-bar{background:linear-gradient(90deg, var(--green), #5eead4);border-radius:11px;height:100%;transition:width .4s cubic-bezier(.4,0,.2,1)}.progress-text{color:var(--text);justify-content:center;align-items:center;font-family:JetBrains Mono,monospace;font-size:11px;font-weight:600;display:flex;position:absolute;inset:0}.home-progress{align-items:center;gap:14px;margin-bottom:28px;display:flex}.home-progress span{color:var(--text-muted);white-space:nowrap;font-size:13px}.home-progress-bar{background:var(--surface-2);border-radius:3px;flex:1;height:5px;overflow:hidden}.home-progress-fill{background:linear-gradient(90deg, var(--green), #5eead4);border-radius:3px;height:100%;transition:width .4s cubic-bezier(.4,0,.2,1)}.complete-btn{background:var(--surface-2);border:1px solid var(--border);color:var(--text-muted);cursor:pointer;border-radius:20px;margin-left:auto;padding:5px 14px;font-size:12px;font-weight:500;transition:all .2s}.complete-btn:hover{border-color:var(--green);color:var(--green);background:var(--green-dim)}.complete-btn.is-complete{background:var(--green-dim);border-color:var(--green);color:var(--green)}.login-btn{background:var(--accent-dim);color:var(--accent);border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;border:1px solid #f0a0304d;padding:7px 16px;font-size:13px;font-weight:500;transition:all .15s}.login-btn:hover{border-color:var(--accent);background:#f0a03040}.user-menu{align-items:center;gap:10px;display:flex;position:relative}.time-badge{color:var(--text-muted);background:var(--surface-2);white-space:nowrap;border:1px solid var(--border-subtle);border-radius:20px;padding:5px 12px;font-family:JetBrains Mono,monospace;font-size:12px;font-weight:500}.avatar-btn{border:2px solid var(--border);cursor:pointer;background:0 0;border-radius:50%;width:32px;height:32px;padding:0;transition:border-color .15s;overflow:hidden}.avatar-btn:hover{border-color:var(--accent)}.avatar{object-fit:cover;width:100%;height:100%}.user-dropdown{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);min-width:230px;box-shadow:var(--shadow-lg);z-index:200;margin-top:10px;padding:14px;position:absolute;top:100%;right:0}.user-info{border-bottom:1px solid var(--border-subtle);flex-direction:column;gap:2px;margin-bottom:10px;padding-bottom:10px;display:flex}.user-info strong{font-family:Space Grotesk,sans-serif;font-size:14px}.user-info span{color:var(--text-muted);font-size:12px}.user-stats{color:var(--text-muted);border-bottom:1px solid var(--border-subtle);margin-bottom:10px;padding-bottom:10px;font-size:12px}.logout-btn{color:var(--red);cursor:pointer;background:0 0;border:none;padding:4px 0;font-size:13px;font-weight:500;transition:opacity .15s}.logout-btn:hover{opacity:.8}.heatmap-container{background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);margin-bottom:20px;padding:22px 24px}.heatmap-header{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.heatmap-header h3{letter-spacing:-.2px;font-family:Space Grotesk,sans-serif;font-size:15px;font-weight:600}.heatmap-stats{gap:18px;display:flex}.heatmap-stat{color:var(--text-muted);font-family:JetBrains Mono,monospace;font-size:12px}.heatmap-stat strong{color:var(--green)}.heatmap-scroll{overflow-x:auto}.heatmap-months{color:var(--text-muted);grid-template-columns:repeat(53,14px);gap:2px;margin-bottom:4px;font-size:10px;display:grid}.heatmap-grid{gap:3px;display:flex}.heatmap-week{flex-direction:column;gap:3px;display:flex}.heatmap-cell{border:1px solid #ffffff08;border-radius:2px;width:11px;height:11px;transition:transform .1s}.heatmap-cell:hover{transform:scale(1.4)}.heatmap-cell.today{border-color:var(--accent);box-shadow:0 0 4px var(--accent-dim)}.heatmap-legend{color:var(--text-muted);justify-content:flex-end;align-items:center;gap:4px;margin-top:10px;font-size:11px;display:flex}.revision-tracker{background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);margin-bottom:20px;padding:22px 24px}.revision-tracker h3{letter-spacing:-.2px;margin-bottom:4px;font-family:Space Grotesk,sans-serif;font-size:15px;font-weight:600}.revision-desc{color:var(--text-muted);margin-bottom:14px;font-size:13px}.revision-list{flex-direction:column;gap:6px;display:flex}.revision-item{border-radius:var(--radius-sm);color:var(--text);border:1px solid var(--border-subtle);align-items:center;gap:12px;padding:10px 14px;text-decoration:none;transition:all .15s;display:flex}.revision-item:hover{background:var(--surface-2);border-color:var(--border)}.revision-icon{opacity:.7;font-size:14px}.revision-info{flex-direction:column;flex:1;display:flex}.revision-title{font-size:13px;font-weight:500}.revision-meta{color:var(--text-muted);font-size:11px}.revision-badge{border-radius:10px;padding:3px 10px;font-size:11px;font-weight:500}.revision-badge-overdue{background:var(--red-dim);color:var(--red)}.revision-badge-high{background:var(--orange-dim);color:var(--orange)}.revision-badge-medium{background:var(--accent-dim);color:var(--accent)}[data-theme=light] .top-bar{background:#ffffffeb}[data-theme=light] .diagram-box{color:var(--text-secondary);background:linear-gradient(145deg,#f0f0f4,#fff)}[data-theme=light] .content-code{border-color:var(--border);background:#f5f5f8}[data-theme=light] .content-code code{color:var(--text)}[data-theme=light] .animated-diagram-wrapper{border-color:var(--border)!important;background:#f5f5f8!important}[data-theme=light] .heatmap-cell{border-color:#0000000d}.coffee-btn{color:#fff;border-radius:var(--radius-sm);white-space:nowrap;background:linear-gradient(135deg,#ff424d,#f96854);border:none;margin-left:auto;padding:6px 14px;font-size:12px;font-weight:600;text-decoration:none;transition:all .15s}.coffee-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px #ff424d4d}.pomodoro-float{z-index:200;position:fixed;bottom:24px;right:24px}.pomodoro-fab{background:var(--surface);border:2px solid var(--border);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;padding:6px;transition:transform .2s,box-shadow .2s;display:flex;position:relative;box-shadow:0 4px 20px #0000004d}.pomodoro-fab:hover{transform:scale(1.08);box-shadow:0 6px 28px #e74c3c40}.pomodoro-fab-pulse{pointer-events:none;border:2px solid #e74c3c;border-radius:50%;animation:2s ease-in-out infinite fab-pulse;position:absolute;inset:-6px}@keyframes fab-pulse{0%,to{opacity:.5;transform:scale(1)}50%{opacity:0;transform:scale(1.3)}}.pomodoro-panel{background:var(--surface);border:1px solid var(--border);border-radius:20px;flex-direction:column;align-items:center;gap:8px;min-width:240px;padding:20px 24px;display:flex;box-shadow:0 16px 48px #0006}.pomodoro-panel-top{justify-content:space-between;align-items:center;width:100%;display:flex}.pomodoro-label{letter-spacing:.3px;font-size:14px;font-weight:700}.pomodoro-close{background:var(--surface-2);border:1px solid var(--border);cursor:pointer;width:28px;height:28px;color:var(--text-muted);border-radius:50%;justify-content:center;align-items:center;font-size:16px;transition:background .15s;display:flex}.pomodoro-close:hover{background:var(--surface-3);color:var(--text)}.pomodoro-tomato-visual{justify-content:center;margin:-4px 0;display:flex}.pomodoro-actions{gap:8px;width:100%;display:flex}.pomo-btn{cursor:pointer;border:none;border-radius:10px;padding:8px 14px;font-size:13px;font-weight:600;transition:transform .12s,opacity .12s}.pomo-btn:hover{opacity:.9;transform:translateY(-1px)}.pomo-btn:active{transform:scale(.97)}.pomo-btn-main{color:#fff;flex:1;font-size:14px}.pomo-btn-sec{background:var(--surface-2);border:1px solid var(--border);color:var(--text-muted)}.pomo-btn-sec:hover{color:var(--text);border-color:var(--text-muted)}.pomodoro-progress{border-top:1px solid var(--border);align-items:center;gap:10px;width:100%;padding-top:4px;display:flex}.pomodoro-session-dots{gap:6px;font-size:16px;display:flex}.pomo-dot{color:var(--text-muted);font-size:14px}.pomo-dot.done{animation:.3s pomo-pop}@keyframes pomo-pop{0%{transform:scale(0)}50%{transform:scale(1.4)}to{transform:scale(1)}}.pomodoro-count{color:var(--text-muted);margin-left:auto;font-size:11px}@media (width<=600px){.pomodoro-float{bottom:16px;right:16px}.pomodoro-panel{min-width:unset;border-radius:16px;position:fixed;bottom:16px;left:16px;right:16px}}.accolades{background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);margin-bottom:20px;padding:18px 22px}.accolades-header{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.accolades-header h3{font-family:Space Grotesk,sans-serif;font-size:15px;font-weight:600}.stars-count{color:var(--accent);font-family:JetBrains Mono,monospace;font-size:13px;font-weight:600}.accolades-grid{flex-wrap:wrap;gap:8px;display:flex}.accolade{border-radius:20px;align-items:center;gap:6px;padding:6px 12px;font-size:12px;font-weight:500;display:flex}.accolade.earned{background:var(--accent-dim);color:var(--accent);border:1px solid #f0a0304d}.accolade.locked{background:var(--surface-2);border:1px solid var(--border-subtle);color:var(--text-muted)}.accolade-icon{font-size:14px}.accolade-title{font-size:11px}.quiz-container{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);margin-top:32px;padding:24px}.quiz-start{text-align:center;padding:20px}.quiz-start-icon{margin-bottom:12px;font-size:40px}.quiz-start h3{color:var(--text);margin-bottom:6px;font-size:18px}.quiz-start p{color:var(--text-muted);margin-bottom:16px;font-size:14px}.quiz-start-btn{background:var(--accent);color:var(--bg);cursor:pointer;border:none;border-radius:8px;padding:10px 24px;font-size:14px;font-weight:600;transition:transform .15s,opacity .15s}.quiz-start-btn:hover{opacity:.9;transform:translateY(-1px)}.quiz-header{margin-bottom:16px}.quiz-progress{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;font-size:12px;font-weight:600}.quiz-progress-bar{background:var(--surface-2);border-radius:2px;height:4px;margin-top:8px;overflow:hidden}.quiz-progress-fill{background:var(--accent);border-radius:2px;height:100%;transition:width .3s}.quiz-question{margin-bottom:16px}.quiz-question p{color:var(--text);font-size:16px;font-weight:600;line-height:1.5}.quiz-options{flex-direction:column;gap:8px;display:flex}.quiz-option{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-2);cursor:pointer;text-align:left;color:var(--text);align-items:center;gap:12px;padding:12px 16px;font-size:14px;transition:border-color .15s,background .15s;display:flex}.quiz-option:hover{border-color:var(--accent);background:var(--surface-3)}.quiz-option.correct{border-color:var(--green);background:#34d3991a}.quiz-option.wrong{background:#e74c3c1a;border-color:#e74c3c}.quiz-option-letter{background:var(--surface-3);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;font-size:12px;font-weight:700;display:flex}.quiz-option.correct .quiz-option-letter{background:var(--green);color:#fff}.quiz-option.wrong .quiz-option-letter{color:#fff;background:#e74c3c}.quiz-explanation{background:var(--surface-2);border-radius:var(--radius-md);border-left:3px solid var(--accent);margin-top:16px;padding:12px 16px}.quiz-explanation p{color:var(--text-muted);margin-bottom:12px;font-size:13px;line-height:1.5}.quiz-next-btn{background:var(--accent);color:var(--bg);cursor:pointer;border:none;border-radius:6px;padding:8px 18px;font-size:13px;font-weight:600;transition:transform .15s}.quiz-next-btn:hover{transform:translateY(-1px)}.quiz-result{text-align:center;padding:16px}.quiz-result-icon{margin-bottom:8px;font-size:48px}.quiz-result h3{color:var(--text);margin-bottom:4px;font-size:20px}.quiz-score{color:var(--text-muted);margin-bottom:16px;font-size:14px}.quiz-answers-review{text-align:left;flex-direction:column;gap:6px;margin-bottom:16px;display:flex}.quiz-review-item{border-radius:6px;align-items:center;gap:8px;padding:6px 10px;font-size:13px;display:flex}.quiz-review-item.correct{background:#34d39914}.quiz-review-item.wrong{background:#e74c3c14}.quiz-review-marker{width:18px;font-weight:700}.quiz-review-item.correct .quiz-review-marker{color:var(--green)}.quiz-review-item.wrong .quiz-review-marker{color:#e74c3c}.quiz-review-q{color:var(--text-muted)}.quiz-retry-btn{background:var(--surface-2);border:1px solid var(--border);cursor:pointer;color:var(--text);border-radius:8px;padding:10px 20px;font-size:13px;font-weight:600;transition:border-color .15s}.quiz-retry-btn:hover{border-color:var(--accent)}.stress-cat-trigger{z-index:190;background:var(--surface);border:1px solid var(--border);cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none;border-radius:24px;align-items:center;gap:8px;padding:8px 14px 8px 10px;transition:box-shadow .2s,border-color .2s;display:flex;position:fixed;box-shadow:0 4px 12px #0000001f}.trigger-cat-svg{flex-shrink:0}.stress-cat-trigger:hover{border-color:var(--accent);box-shadow:0 6px 20px #0003}.stress-cat-trigger:active{cursor:grabbing}.trigger-cat-label{color:var(--text-muted);white-space:nowrap;font-size:12px;font-weight:500}.stress-cat-trigger:hover .trigger-cat-label{color:var(--text)}.stress-cat-overlay{z-index:500;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0009;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.stress-cat-modal{background:var(--surface);border:1px solid var(--border);border-radius:20px;width:100%;max-width:380px;padding:32px;position:relative;box-shadow:0 24px 64px #0006}.stress-cat-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;font-size:24px;position:absolute;top:12px;right:16px}.stress-cat-scene{text-align:center;margin-bottom:20px}.stress-cat{cursor:pointer;transition:transform .2s;display:inline-block}.stress-cat:active{transform:scale(.95)}.stress-cat.is-purring{animation:.3s cat-purr}@keyframes cat-purr{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}.stress-cat-hint{color:var(--text-muted);margin-top:8px;font-size:14px}.stress-cat-counter{color:var(--accent);margin-top:6px;font-size:12px}.stress-cat-tips{border-top:1px solid var(--border);padding-top:16px}.stress-cat-tips p{color:var(--text);margin-bottom:8px;font-size:13px}.stress-cat-tips ul{margin:0;padding:0;list-style:none}.stress-cat-tips li{color:var(--text-muted);padding:4px 0 4px 16px;font-size:12px;position:relative}.stress-cat-tips li:before{content:"•";color:var(--accent);position:absolute;left:4px}@media (width<=1024px){.content{max-width:100%;padding:36px 32px}}@media (width<=900px){.sidebar{z-index:50;box-shadow:var(--shadow-lg);transition:transform .2s;position:fixed;top:56px;left:0;transform:translate(0)}.content{width:100%;max-width:100%;padding:28px 20px}.tradeoffs{grid-template-columns:1fr}.diagram-box{padding:16px;font-size:11px}.animated-diagram-wrapper{overflow-x:auto;padding:12px 8px!important}.topic-section{border-radius:var(--radius-md);padding:18px 20px}}@media (width<=600px){.top-bar{flex-wrap:wrap;gap:6px;padding:10px 12px}.logo{flex:1;font-size:20px}.logo-cat{width:34px;height:30px}.search-btn{min-width:unset;padding:6px 10px;font-size:12px}.search-btn kbd,.progress-bar-container{display:none}.theme-toggle{padding:4px 8px;font-size:12px}.coffee-btn{padding:4px 8px;font-size:10px}.content{width:100%;max-width:100%;padding:16px 12px}.topic-page h1{font-size:20px;line-height:1.3}.home h1{font-size:24px}.home-hero{margin-bottom:20px}.home .lead{font-size:13px}.home-stats{flex-wrap:wrap;gap:12px}.home-stat-value{font-size:16px}.home-stat-label{font-size:10px}.topic-header{margin-bottom:20px;padding-bottom:16px}.topic-section{border-radius:var(--radius-sm);margin-bottom:16px;padding:14px 16px}.section-header{margin-bottom:12px;padding-bottom:8px}.topic-section h2{font-size:16px}.topic-section p,.topic-section li,.content-paragraph,.content-list li{font-size:13.5px;line-height:1.7}.topic-toc{padding:12px 14px}.topic-toc .toc-list{grid-template-columns:1fr;gap:2px}.example-services{grid-template-columns:1fr;gap:8px}.service-card{padding:12px 14px}.diagram-box{border-radius:var(--radius-sm);padding:12px;font-size:10px;line-height:1.4}.diagram-box:before{font-size:8px;top:6px;right:8px}.animated-diagram-wrapper{overflow-x:auto;border-radius:8px!important;padding:12px 4px!important}.key-points{border-radius:var(--radius-md);padding:16px 18px}.key-points li{padding-left:16px;font-size:13px}.interview-tip{border-radius:var(--radius-md);padding:16px 18px}.content-code{padding:12px 14px;font-size:11.5px}.content-table th,.content-table td{padding:8px 10px;font-size:12px}.roadmap-card{gap:12px;padding:14px 16px}.roadmap-card h3{font-size:14px}.roadmap-card p{font-size:12px}.topic-nav{flex-direction:column;gap:8px;margin-top:32px}.topic-nav a{text-align:center;width:100%}.topic-breadcrumb{flex-wrap:wrap;font-size:11px}.topic-meta{flex-wrap:wrap;gap:6px}.topic-tag{padding:3px 8px;font-size:10px}.complete-btn{text-align:center;width:100%;margin-top:6px;margin-left:0;padding:4px 10px;font-size:11px}.accolades{padding:14px 16px}.accolades-grid{gap:6px}.accolade{padding:4px 8px;font-size:11px}.heatmap-container{padding:14px 16px}.heatmap-scroll{max-width:100%;overflow-x:auto}.revision-tracker{padding:14px 16px}.sidebar{width:80vw;min-width:unset;max-width:300px}.search-modal{width:calc(100vw - 24px);max-height:calc(100vh - 120px);margin:0 12px}.search-overlay{padding-top:60px}.coffee-btn{display:none}.stress-cat-trigger{border-radius:20px;padding:6px 10px}.trigger-cat-svg{width:28px;height:24px}.trigger-cat-label{display:none}.user-menu{gap:6px}.architecture-diagram{height:300px!important}.architecture-diagram-header{padding:6px 10px}.architecture-fullscreen-btn{padding:4px 8px;font-size:11px}.sidebar-category-header{padding:8px 12px 3px}.sidebar-module-header{padding:10px 12px;font-size:12px}}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.roadmap-card{opacity:0;animation:.3s forwards fadeIn}.roadmap-card:first-child{animation-delay:30ms}.roadmap-card:nth-child(2){animation-delay:60ms}.roadmap-card:nth-child(3){animation-delay:90ms}.roadmap-card:nth-child(4){animation-delay:.12s}.roadmap-card:nth-child(5){animation-delay:.15s}.roadmap-card:nth-child(6){animation-delay:.18s}.roadmap-card:nth-child(7){animation-delay:.21s}.roadmap-card:nth-child(8){animation-delay:.24s}.roadmap-card:nth-child(9){animation-delay:.27s}.roadmap-card:nth-child(10){animation-delay:.3s}.roadmap-card:nth-child(11){animation-delay:.33s}.topic-section{animation:.3s forwards fadeIn}.search-modal{animation:.15s fadeIn}.celebration-overlay{z-index:9999;cursor:pointer;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0009;justify-content:center;align-items:center;animation:.3s celebrationFadeIn;display:flex;position:fixed;inset:0}@keyframes celebrationFadeIn{0%{opacity:0}to{opacity:1}}.celebration-confetti{pointer-events:none;position:absolute;inset:0;overflow:hidden}.confetti-particle{border-radius:2px;animation:linear forwards confettiFall;position:absolute;top:-10px}@keyframes confettiFall{0%{opacity:1;transform:translateY(0)rotate(0)}to{opacity:0;transform:translateY(100vh)rotate(720deg)}}.celebration-content{z-index:1;flex-direction:column;align-items:center;gap:16px;animation:.5s cubic-bezier(.34,1.56,.64,1) forwards celebrationBounceIn;display:flex}.celebration-content.is-milestone{gap:20px}@keyframes celebrationBounceIn{0%{opacity:0;transform:scale(.5)translateY(30px)}to{opacity:1;transform:scale(1)translateY(0)}}.celebration-cat{width:140px;height:120px;animation:.8s forwards catWalkIn}.celebration-cat.cat-milestone{width:180px;height:150px}.celebration-cat-svg{width:100%;height:100%}@keyframes catWalkIn{0%{opacity:0;transform:translate(-120px)}60%{opacity:1;transform:translate(10px)}80%{transform:translate(-5px)}to{opacity:1;transform:translate(0)}}.cat-leg-front-left{transform-origin:top;animation:.3s ease-in-out 4 alternate legWalk}.cat-leg-front-right,.cat-leg-back-left{transform-origin:top;animation:.3s ease-in-out 4 alternate-reverse legWalk}.cat-leg-back-right{transform-origin:top;animation:.3s ease-in-out 4 alternate legWalk}@keyframes legWalk{0%{transform:rotate(-8deg)}to{transform:rotate(8deg)}}.cat-salute-arm{transform-origin:76px 104px;animation:.8s .6s both saluteArm}@keyframes saluteArm{0%{opacity:0;transform:rotate(0)}30%{opacity:1}50%{transform:rotate(-15deg)}70%{transform:rotate(-10deg)}to{opacity:1;transform:rotate(-12deg)}}.cat-sparkle{animation:1.5s ease-in-out infinite sparkleFloat}.sparkle-1{animation-delay:0s}.sparkle-2{animation-delay:.3s}.sparkle-3{animation-delay:.6s}.sparkle-4{animation-delay:.9s}.sparkle-5{animation-delay:.2s}.sparkle-6{animation-delay:.5s}@keyframes sparkleFloat{0%,to{opacity:.3;transform:scale(1)}50%{opacity:1;transform:scale(1.4)}}.cat-milestone .cat-body{animation:.6s ease-in-out .8s 2 catBounce}@keyframes catBounce{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}.celebration-message{color:#fff;text-align:center;text-shadow:0 2px 8px #0006;max-width:320px;font-family:Space Grotesk,sans-serif;font-size:1.4rem;font-weight:600;line-height:1.4;animation:.5s .4s both messageSlideUp}.celebration-message.message-milestone{background:linear-gradient(135deg, var(--accent), var(--green));-webkit-text-fill-color:transparent;max-width:400px;text-shadow:none;filter:drop-shadow(0 2px 4px #0000004d);-webkit-background-clip:text;background-clip:text;font-size:1.7rem}@keyframes messageSlideUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.celebration-dismiss{color:#ffffff80;font-size:.75rem;animation:.5s .8s both messageSlideUp}@media (width<=600px){.celebration-cat{width:110px;height:95px}.celebration-cat.cat-milestone{width:140px;height:120px}.celebration-message{max-width:260px;padding:0 16px;font-size:1.1rem}.celebration-message.message-milestone{max-width:300px;font-size:1.3rem}.celebration-content{gap:12px}}.topic-architecture{border-radius:12px;margin:24px 0;overflow:hidden}.architecture-diagram{border:1px solid var(--border);border-radius:12px;width:100%;position:relative;overflow:hidden}.architecture-diagram.is-fullscreen{z-index:1000;border-radius:16px;width:auto;position:fixed;inset:16px;box-shadow:0 24px 80px #00000080;height:auto!important}.architecture-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:999;background:#0009;position:fixed;inset:0}.architecture-diagram-header{border-bottom:1px solid var(--border-subtle);background:var(--surface);justify-content:space-between;align-items:center;padding:8px 14px;display:flex}.architecture-diagram-title{color:var(--text-muted);font-size:12px;font-weight:600}.architecture-fullscreen-btn{background:var(--surface-2);border:1px solid var(--border);color:var(--text-muted);cursor:pointer;border-radius:6px;padding:4px 10px;font-size:11px;transition:all .15s}.architecture-fullscreen-btn:hover{background:var(--surface-3);color:var(--text)}.is-fullscreen .architecture-fullscreen-btn{padding:6px 14px;font-size:13px}.architecture-controls{overflow:hidden;background:var(--surface)!important;border:1px solid var(--border)!important;border-radius:8px!important}.architecture-controls button{background:var(--surface)!important;color:var(--text-muted)!important;border-color:var(--border)!important;width:30px!important;height:30px!important}.architecture-controls button:hover{background:var(--surface-2)!important;color:var(--text)!important}.architecture-flow,.architecture-flow .react-flow__renderer,.architecture-flow .react-flow__viewport,.architecture-flow .react-flow__container,.architecture-diagram .react-flow,.react-flow.architecture-flow{background-color:var(--bg)!important;background:var(--bg)!important}.architecture-bg line,.architecture-bg .react-flow__background pattern line{stroke:var(--border-subtle)!important}.react-flow__background pattern circle{fill:var(--border-subtle)!important}.architecture-diagram .react-flow__edge path{stroke:var(--text-muted);stroke-width:1.5px}.architecture-diagram .react-flow__edge marker{fill:var(--text-muted)}.architecture-diagram .react-flow__edge-text{fill:var(--text-muted);font-size:10px}.architecture-diagram .react-flow__edge-textbg{fill:var(--bg)}.arch-node{min-width:100px;max-width:160px;color:var(--text);white-space:nowrap;border:1.5px solid;border-radius:10px;align-items:center;gap:7px;padding:8px 12px;font-family:system-ui,-apple-system,sans-serif;font-size:12px;display:flex;box-shadow:0 2px 8px #0000001a}.arch-handle{background:var(--text-muted)!important;border:none!important;width:6px!important;height:6px!important}.arch-node-icon{flex-shrink:0;font-size:18px}.arch-node-text{flex-direction:column;gap:2px;display:flex}.arch-node-label{color:var(--text);font-size:11px;font-weight:600}.arch-node-sublabel{opacity:.7;color:var(--text-secondary);font-size:9px}.arch-node-client{background:#60a5fa14;border-color:#60a5fa66}.arch-node-web{background:#34d39914;border-color:#34d39966}.arch-node-gateway{background:#a78bfa14;border-color:#a78bfa66}.arch-node-lb{background:#fbbf2414;border-color:#fbbf2466}.arch-node-service{background:#34d39914;border-color:#34d39966}.arch-node-database{background:#f0a03014;border-color:#f0a03066;border-radius:4px 4px 16px 16px}.arch-node-cache{background:#f472b614;border-color:#f472b666}.arch-node-queue{background:#fb923c14;border-color:#fb923c66;border-radius:20px}.arch-node-storage{background:#94a3b814;border-color:#94a3b866}.arch-node-cdn{background:#2dd4bf14;border-color:#2dd4bf66}.arch-node-search{background:#c084fc14;border-color:#c084fc66}.arch-node-ml{background:#e879f914;border-color:#e879f966}.arch-node-notif{background:#fb718514;border-color:#fb718566}.arch-node-group{border:1px dashed var(--border);background:#80808008;border-radius:12px;padding:8px 12px}.arch-group-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:1px;font-size:10px;font-weight:600}[data-theme=light] .arch-node{box-shadow:0 2px 8px #0000000f}[data-theme=light] .arch-node-client{background:#60a5fa1f;border-color:#60a5fa80}[data-theme=light] .arch-node-web,[data-theme=light] .arch-node-service{background:#10b9811a;border-color:#10b98180}[data-theme=light] .arch-node-gateway{background:#8b5cf61a;border-color:#8b5cf680}[data-theme=light] .arch-node-lb{background:#f59e0b1a;border-color:#f59e0b80}[data-theme=light] .arch-node-database{background:#d977061a;border-color:#d9770680}[data-theme=light] .arch-node-cache{background:#ec48991a;border-color:#ec489980}[data-theme=light] .arch-node-queue{background:#ea580c1a;border-color:#ea580c80}[data-theme=light] .arch-node-storage{background:#64748b1a;border-color:#64748b80}[data-theme=light] .arch-node-cdn{background:#0d94881a;border-color:#0d948880}[data-theme=light] .arch-node-search{background:#9333ea1a;border-color:#9333ea80}[data-theme=light] .arch-node-ml{background:#c026d31a;border-color:#c026d380}[data-theme=light] .arch-node-notif{background:#e11d481a;border-color:#e11d4880}[data-theme=light] .arch-node-group{background:#00000005}@media (width<=600px){.topic-architecture{border-radius:0;margin:16px -16px}.architecture-diagram{border-radius:0}.coffee-btn,.trigger-cat-label{display:none}.stress-cat-trigger{border-radius:50%;min-width:auto;padding:8px}.mock-interview{padding:16px}.mock-timer-bar{flex-direction:column;gap:4px}.mock-nav{flex-direction:column}.mock-nav-btn{width:100%}}.sidebar-mock-link{border-radius:var(--radius-md);background:var(--accent-dim);border:1px solid var(--accent);color:var(--accent);align-items:center;gap:8px;margin:8px 12px;padding:10px 16px;font-size:.85rem;font-weight:600;text-decoration:none;transition:all .2s;display:flex}.sidebar-mock-link:hover,.sidebar-mock-link.active{background:var(--accent);color:var(--bg)}.mock-beta-badge-sm{background:var(--accent);color:var(--bg);letter-spacing:.5px;border-radius:4px;padding:2px 5px;font-size:.6rem;font-weight:700}.sidebar-mock-link:hover .mock-beta-badge-sm,.sidebar-mock-link.active .mock-beta-badge-sm{background:var(--bg);color:var(--accent)}.mock-interview{max-width:720px;margin:0 auto;padding:32px 24px}.mock-header{align-items:center;gap:12px;margin-bottom:8px;display:flex}.mock-header h1{font-size:1.8rem;font-weight:700}.mock-beta-badge{background:var(--accent);color:var(--bg);letter-spacing:1px;border-radius:6px;padding:4px 10px;font-size:.7rem;font-weight:700}.mock-subtitle{color:var(--text-secondary);margin-bottom:32px;font-size:.95rem}.mock-list{flex-direction:column;gap:16px;display:flex}.mock-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:20px}.mock-card-locked{opacity:.5}.mock-card-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.mock-card-header h3{font-size:1.1rem;font-weight:600}.mock-card-meta{color:var(--text-muted);margin-bottom:12px;font-size:.85rem}.mock-start-btn{background:var(--accent);color:var(--bg);border-radius:var(--radius-sm);cursor:pointer;border:none;padding:10px 20px;font-size:.9rem;font-weight:600;transition:all .2s}.mock-start-btn:hover:not(:disabled){background:var(--accent-hover);transform:translateY(-1px)}.mock-start-btn:disabled{cursor:not-allowed;opacity:.4}.mock-btn-secondary{background:var(--surface-2);color:var(--text);border:1px solid var(--border)}.mock-btn-secondary:hover:not(:disabled){background:var(--surface-3)}.mock-top{margin-bottom:24px}.mock-timer-bar{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);justify-content:space-between;align-items:center;margin-bottom:8px;padding:12px 16px;font-family:JetBrains Mono,monospace;font-size:.9rem;display:flex}.mock-timer-total{color:var(--text);font-weight:600}.mock-timer-phase{color:var(--green)}.mock-timer-phase.overtime{color:var(--red);animation:1s infinite pulse-red}@keyframes pulse-red{0%,to{opacity:1}50%{opacity:.6}}.mock-phase-dots{justify-content:center;gap:8px;display:flex}.mock-dot{background:var(--border);border-radius:50%;width:10px;height:10px;transition:all .3s}.mock-dot.active{background:var(--accent);box-shadow:0 0 8px var(--accent)}.mock-dot.done{background:var(--green)}.mock-body{margin-bottom:24px}.mock-phase-name{color:var(--accent);margin-bottom:8px;font-size:1.3rem;font-weight:700}.mock-phase-prompt{color:var(--text-secondary);margin-bottom:20px;font-size:1rem}.mock-section{margin-bottom:12px}.mock-toggle{color:var(--text);cursor:pointer;background:0 0;border:none;padding:8px 0;font-size:.9rem;font-weight:500}.mock-toggle:hover{color:var(--accent)}.mock-hints,.mock-followups{padding:8px 0 8px 20px;list-style:none}.mock-hints li,.mock-followups li{color:var(--text-secondary);padding:6px 0;font-size:.9rem;position:relative}.mock-hints li:before{content:"→";color:var(--green);position:absolute;left:-16px}.mock-followups li:before{content:"Q:";color:var(--accent);font-size:.8rem;font-weight:600;position:absolute;left:-20px}.mock-nav{justify-content:space-between;gap:12px;display:flex}.mock-nav-btn{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;padding:12px 24px;font-weight:500;transition:all .2s}.mock-nav-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.mock-nav-btn:disabled{opacity:.3;cursor:not-allowed}.mock-nav-next{background:var(--accent);color:var(--bg);border-color:var(--accent);font-weight:600}.mock-nav-next:hover:not(:disabled){background:var(--accent-hover);color:var(--bg)}.mock-finished{text-align:center;padding:40px 0}.mock-finished h2{color:var(--green);margin-bottom:8px;font-size:1.6rem}.mock-finished-time{color:var(--text-muted);margin-bottom:24px;font-family:JetBrains Mono,monospace}.mock-finished-review{text-align:left;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);margin-bottom:24px;padding:20px}.mock-finished-review h3{margin-bottom:12px;font-size:1rem}.mock-finished-review ul{padding:0;list-style:none}.mock-finished-review li{color:var(--text-secondary);padding:6px 0;font-size:.9rem}.mock-finished-review li:before{content:"☐ ";color:var(--text-muted)}.mock-finished-actions{justify-content:center;gap:12px;display:flex}
