:root{--bg-primary:#0d0d1f;--bg-card:#13132a;--bg-card-hover:#1a1a35;--color-sine:#40d080;--color-cosine:#4aabf7;--color-hyp:#ff5e5e;--color-wave:#f0c040;--color-accent:#6b6bff;--color-vec-b:#c77dff;--color-teal:#40e0a0;--color-subtract:#ee5a6f;--color-tangent:#ffb432;--color-cyan:#00d4ff;--text-primary:#e8e8ff;--text-muted:#9098a8;--border:#22224a;--font:-apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--color-warning:#f59e0b;--color-warning-dim:#d97706;--color-success:#22c55e;--color-error:#ef4444;--color-cat-math:var(--color-accent);--color-cat-physics:var(--color-cosine);--color-cat-cs:#22c55e;--color-cat-chem:var(--color-wave);--color-cat-bio:var(--color-hyp);--color-cat-econ:#a78bfa;--color-cat-earth:#2dd4bf;--color-cat-astro:#f472b6;--color-cat-calc:#fb923c;--color-cat-stats:#f59e0b;--color-focus:#60a5fa;--radius-xs:2px;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-pill:999px;--radius-full:50%}@media (prefers-color-scheme:light){:root:not([data-theme=dark]){--bg-primary:#f8f9ff;--bg-card:#fff;--bg-card-hover:#eef0fa;--text-primary:#0d0d1f;--text-muted:#4e4e78;--border:#d0d0e8;--color-accent:#4a4acc;--color-sine:#1a8048;--color-cosine:#1464b4;--color-hyp:#c22;--color-wave:#906000;--color-tangent:#a06000;--color-subtract:#cc1a2e;--color-vec-b:#7c3aed;--color-teal:#1a9060;--color-cyan:#007aa0;--color-warning:#d97706;--color-warning-dim:#b45309;--color-success:#16a34a;--color-error:#dc2626;--color-cat-cs:#16a34a;--color-cat-econ:#7c3aed;--color-cat-earth:#0d9488;--color-cat-astro:#db2777;--color-cat-calc:#ea580c;--color-cat-stats:#d97706;--color-focus:#2563eb}:root:not([data-theme=dark]) .card-badge--done{color:#1a6640;background:#d4f4e2}:root:not([data-theme=dark]) .card-badge--progress{color:#1a4480;background:#dce8ff}:root:not([data-theme=dark]) .card-badge--updated{color:#7a6b00;background:#fef9c3}:root:not([data-theme=dark]) .value-card--vectorb .value-card-value,:root:not([data-theme=dark]) #val-mag-b,:root:not([data-theme=dark]) #val-angle-b{color:#7c3aed}:root:not([data-theme=dark]) .value-card--resultant .value-card-value,:root:not([data-theme=dark]) #val-resultant-mag,:root:not([data-theme=dark]) #val-resultant-angle{color:#906000}:root:not([data-theme=dark]) .value-card--dotproduct .value-card-value,:root:not([data-theme=dark]) #val-dot-product,:root:not([data-theme=dark]) #val-angle-between,:root:not([data-theme=dark]) #val-projection{color:#007aa0}:root:not([data-theme=dark]) .value-card--crossproduct .value-card-value,:root:not([data-theme=dark]) #val-cross-product,:root:not([data-theme=dark]) #val-cross-angle,:root:not([data-theme=dark]) #val-cross-area{color:#1a9060}:root:not([data-theme=dark]) .value-card--dot .value-card-value,:root:not([data-theme=dark]) #dp-val-dot,:root:not([data-theme=dark]) #dp-val-angle,:root:not([data-theme=dark]) #dp-val-cos,:root:not([data-theme=dark]) #dp-val-proj{color:#1a8048}:root:not([data-theme=dark]) .btn-op-mode.active{color:#007aa0;background:#007aa026;border-color:#007aa0}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--bg-primary);height:100%;color:var(--text-primary);font-family:var(--font);-webkit-font-smoothing:antialiased;line-height:1.6}a{color:inherit;text-decoration:none}button{cursor:pointer;font-family:var(--font)}canvas{display:block}.page-wrapper{flex-direction:column;min-height:100vh;display:flex}.container{width:100%;max-width:1100px;margin:0 auto;padding:0 24px}.nav{background:var(--bg-primary);border-bottom:1px solid var(--border);z-index:100;padding:0 24px;position:sticky;top:0}.nav-inner{justify-content:space-between;align-items:center;max-width:1100px;height:60px;margin:0 auto;display:flex}.nav-logo{color:var(--text-primary);letter-spacing:-.5px;font-size:1.2rem;font-weight:700}.nav-logo span{color:var(--color-accent)}.nav-links{align-items:center;gap:24px;display:flex}.nav-link{color:var(--text-muted);font-size:.9rem;transition:color .2s}.nav-link:hover{color:var(--text-primary)}.nav-link-cta{background:var(--color-accent);color:#fff;border-radius:var(--radius-md);padding:6px 16px;font-size:.875rem;font-weight:600;transition:opacity .2s}.nav-link-cta:hover{opacity:.85;color:#fff}.nav-toggle{cursor:pointer;background:0 0;border:none;flex-direction:column;gap:5px;padding:8px;display:none}.nav-toggle-bar{background:var(--text-primary);border-radius:var(--radius-xs);width:22px;height:2px;transition:opacity .2s;display:block}@media (width<=520px){.nav-toggle{display:flex}.nav{position:relative}.nav-links{background:var(--bg-primary);border-bottom:1px solid var(--border);z-index:99;flex-direction:column;gap:16px;padding:16px 24px;display:none;position:absolute;top:60px;left:0;right:0}.nav-links--open{display:flex}}.learning-bar{background:var(--bg-card);border-bottom:1px solid var(--border);padding:0 24px;font-size:.85rem}.learning-bar-inner{align-items:center;gap:20px;max-width:1100px;height:40px;margin:0 auto;display:flex}.learning-bar-continue,.learning-bar-review{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:6px;transition:color .2s;display:flex;overflow:hidden}.learning-bar-continue:hover,.learning-bar-review:hover{color:var(--text-primary)}.learning-bar-continue svg{color:var(--color-accent);flex-shrink:0}.learning-bar-review svg{color:var(--color-warning);flex-shrink:0}.learning-bar-label{color:var(--text-primary);font-weight:600}.learning-bar-title{color:var(--color-accent);font-weight:500}.learning-bar-step{color:var(--text-muted);font-size:.8rem}.learning-bar-badge{background:var(--color-warning);color:#fff;border-radius:var(--radius-pill);flex-shrink:0;justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 5px;font-size:.7rem;font-weight:700;display:inline-flex}.learning-bar-dismiss{color:var(--text-muted);border-radius:var(--radius-sm);background:0 0;border:none;flex-shrink:0;margin-left:auto;padding:4px;transition:color .2s,background .2s}.learning-bar-dismiss:hover,.learning-bar-dismiss:focus-visible{color:var(--text-primary);background:var(--bg-card-hover)}.nav-review-badge{background:var(--color-warning);color:#fff;border-radius:var(--radius-pill);justify-content:center;align-items:center;min-width:16px;height:16px;padding:0 4px;font-size:.6rem;font-weight:700;line-height:1;display:inline-flex;position:absolute;top:-6px;right:-10px}@media (width<=520px){.learning-bar-inner{gap:12px}.learning-bar-step,.learning-bar-label,.learning-bar-review span:not(.learning-bar-badge){display:none}}.hero{text-align:center;padding:80px 24px 64px}.hero h1{color:var(--text-primary);margin-bottom:20px;font-size:clamp(2rem,5vw,3.2rem);font-weight:700;line-height:1.15}.hero-sub{color:var(--text-muted);max-width:560px;margin:0 auto 36px;font-size:1.1rem}.hero-search{max-width:400px;margin:1.5rem auto 0}.hero-search-input{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);width:100%;color:var(--text-primary);font-size:.95rem;font-family:var(--font);padding:10px 16px}.hero-search-input::placeholder{color:var(--text-muted)}.hero-search-input:focus{outline:2px solid var(--color-accent)}.hero-search-field{align-items:center;display:flex;position:relative}.hero-search-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:4px 8px;font-size:1.2rem;transition:color .2s;position:absolute;right:8px}.hero-search-btn:hover{color:var(--text-primary)}.hero-search-hint{color:var(--text-muted);margin-top:8px;font-size:.8rem;display:block}.hero--welcome-back{text-align:left;padding:48px 24px 32px}.wb-grid{grid-template-columns:1fr 280px;align-items:start;gap:40px;display:grid}.wb-heading{color:var(--text-primary);margin-bottom:20px;font-size:clamp(1.6rem,4vw,2.4rem);font-weight:700;line-height:1.2}.wb-stats-row{align-items:center;gap:20px;margin-bottom:24px;display:flex}.wb-progress-ring-wrap{flex-shrink:0;width:80px;height:80px;position:relative}.wb-progress-ring{width:80px;height:80px;transform:rotate(-90deg)}.wb-ring-bg{fill:none;stroke:var(--border);stroke-width:6px}.wb-ring-fill{fill:none;stroke:var(--color-accent);stroke-width:6px;stroke-linecap:round;transition:stroke-dashoffset .6s}.wb-ring-label{color:var(--text-primary);justify-content:center;align-items:center;font-size:1.1rem;font-weight:700;display:flex;position:absolute;inset:0}.wb-stat-details{flex-direction:column;gap:4px;display:flex}.wb-stat-big{color:var(--text-primary);font-size:1.3rem;font-weight:700;line-height:1.2}.wb-stat-dim{color:var(--text-muted);font-size:1rem;font-weight:400}.wb-streak{color:var(--color-warning);font-size:.85rem;font-weight:600}.wb-quiz-avg{color:var(--text-muted);font-size:.85rem}.wb-actions{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.wb-link-secondary{color:var(--color-accent);font-size:.9rem;font-weight:600;text-decoration:none;transition:opacity .2s}.wb-link-secondary:hover{opacity:.75}.wb-categories{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px}.wb-cat-heading{letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);margin:0 0 14px;font-size:.7rem;font-weight:700}.wb-cat-row{align-items:center;gap:10px;margin-bottom:10px;display:flex}.wb-cat-row:last-child{margin-bottom:0}.wb-cat-label{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;flex-shrink:0;width:110px;font-size:.8rem;overflow:hidden}.wb-cat-bar{background:var(--border);border-radius:var(--radius-sm);flex:1;height:6px;overflow:hidden}.wb-cat-fill{background:var(--color-accent);border-radius:var(--radius-sm);height:100%;transition:width .4s}.wb-cat-stat{color:var(--text-muted);text-align:right;flex-shrink:0;width:36px;font-size:.75rem}.stats-bar{border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:28px 24px}.stats-bar-inner{flex-wrap:wrap;justify-content:center;gap:48px;display:flex}.stat-item{flex-direction:column;align-items:center;gap:4px;min-width:100px;display:flex}.stat-number{color:var(--color-accent);font-size:1.6rem;font-weight:700;line-height:1}.stat-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;font-size:.78rem;font-weight:500}.hiw-grid{grid-template-columns:repeat(3,1fr);gap:32px;display:grid}.hiw-step{text-align:center;border-radius:var(--radius-lg);background:var(--bg-card);border:1px solid var(--border);padding:24px 16px;transition:border-color .2s,transform .2s}.hiw-step:hover{border-color:var(--color-accent);transform:translateY(-2px)}.hiw-icon{border-radius:var(--radius-full);background:color-mix(in srgb, var(--color-accent) 12%, transparent);width:56px;height:56px;color:var(--color-accent);justify-content:center;align-items:center;margin-bottom:16px;display:inline-flex}.hiw-title{color:var(--text-primary);margin-bottom:8px;font-size:1.1rem;font-weight:700}.hiw-desc{color:var(--text-muted);font-size:.9rem;line-height:1.5}.btn-primary{background:var(--color-accent);color:#fff;border-radius:var(--radius-md);border:none;align-items:center;gap:8px;padding:14px 28px;font-size:1rem;font-weight:600;transition:opacity .2s,transform .15s;display:inline-flex}.btn-primary:hover{opacity:.88;transform:translateY(-1px)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.section{padding:48px 24px}.section-heading{letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);margin-top:0;margin-bottom:24px;font-size:.75rem;font-weight:700}.concept-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);cursor:pointer;color:inherit;flex-direction:column;gap:12px;padding:24px;text-decoration:none;transition:border-color .2s,transform .2s;display:flex}.concept-card:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.concept-card:hover{border-color:var(--color-accent);transform:translateY(-2px)}.concept-card--hidden{display:none}.concept-card--done{border-color:#40d08066;position:relative;box-shadow:0 0 0 1px #40d08026}.concept-card--progress{border-color:#60a5fa66;position:relative;box-shadow:0 0 0 1px #60a5fa26}.card-badge{border-radius:var(--radius-sm);padding:.15rem .4rem;font-size:.7rem;font-weight:600;position:absolute;top:.5rem;right:.5rem}.card-badge--done{color:#4ade80;background:#1a4a2e}.card-badge--progress{color:#60a5fa;background:#1a2f4a}.card-badge--updated{color:#facc15;background:#2a2a1a}.concept-card-thumb{aspect-ratio:1200/630;background:var(--bg-primary);border-radius:6px 6px 0 0;width:100%;margin-bottom:12px;overflow:hidden}.concept-card-thumb img,.concept-card-thumb canvas{width:100%;height:100%;display:block}.concept-card-thumb img,.concept-card-thumb .concept-card-og{object-fit:cover}.concept-card-title{color:var(--text-primary);font-size:1.05rem;font-weight:600}.concept-card-subtitle{color:var(--text-muted);font-size:.85rem;line-height:1.5}.concept-card__tags{flex-wrap:wrap;gap:5px;margin-top:6px;display:flex}.tag{border-radius:var(--radius-pill);background:var(--bg-secondary,#6b6bff14);color:var(--text-muted);border:1px solid var(--border);cursor:default;padding:2px 8px;font-size:.7rem;font-weight:500;text-decoration:none;transition:background .15s,color .15s,border-color .15s;display:inline-block}a.tag{cursor:pointer}a.tag:hover{background:var(--color-accent);color:#fff;border-color:var(--color-accent)}.tag-filters{-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-wrap:wrap;gap:6px;margin-top:12px;display:flex;overflow-x:auto}.tag-filters::-webkit-scrollbar{display:none}.tag-filter{border-radius:var(--radius-pill);border:1px solid var(--border);color:var(--text-muted);cursor:pointer;white-space:nowrap;background:0 0;padding:4px 12px;font-size:.75rem;font-weight:500;transition:all .15s}.tag-filter:hover{color:var(--text-primary);border-color:var(--text-muted)}.tag-filter.active{background:var(--color-accent);border-color:var(--color-accent);color:#fff}.tag-filters-overflow{display:contents}.tag-more-btn{border-radius:var(--radius-pill);border:1px dashed var(--border);color:var(--color-accent);cursor:pointer;white-space:nowrap;background:0 0;padding:4px 12px;font-size:.75rem;transition:border-color .15s,color .15s}.tag-more-btn:hover{border-color:var(--color-accent);color:var(--color-accent)}.concept-tags{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.concept-card-meta{flex-wrap:wrap;align-items:center;gap:8px;margin-top:auto;display:flex}.badge{border-radius:var(--radius-sm);letter-spacing:.04em;padding:3px 8px;font-size:.72rem;font-weight:600;display:inline-block}.badge-math{color:var(--color-cat-math);background:#6b6bff26}.badge-physics{color:var(--color-cat-physics);background:#4aabf726}.badge-cs{color:var(--color-cat-cs);background:#22c55e26}.badge-chem{color:var(--color-cat-chem);background:#f0c04026}.badge-bio{color:var(--color-cat-bio);background:#ff5e5e26}.badge-econ{color:var(--color-cat-econ);background:#a78bfa26}.badge-earth{color:var(--color-cat-earth);background:#2dd4bf26}.badge-astro{color:var(--color-cat-astro);background:#f472b626}.badge-default{color:var(--text-muted);background:#ffffff14}.badge-calc{color:var(--color-cat-calc);background:#fb923c26}.difficulty-dot{border-radius:var(--radius-full);flex-shrink:0;width:8px;height:8px}.difficulty-beginner{background:var(--color-sine)}.difficulty-intermediate{background:var(--color-wave)}.difficulty-advanced{background:var(--color-hyp)}.meta-time{color:var(--text-muted);font-size:.78rem}.btn-explore{color:var(--color-accent);border:1px solid var(--color-accent);border-radius:var(--radius-md);background:0 0;align-self:flex-start;align-items:center;gap:6px;margin-top:4px;padding:6px 14px;font-size:.85rem;font-weight:600;transition:background .2s,color .2s;display:inline-flex}.btn-explore:hover{background:var(--color-accent);color:#fff}.card-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:20px;display:grid}.preview-btn{border-radius:var(--radius-full);width:32px;height:32px;color:var(--text-muted);cursor:pointer;opacity:0;z-index:2;-webkit-backdrop-filter:blur(4px);background:#0d0d1fbf;border:1px solid #ffffff26;justify-content:center;align-items:center;transition:opacity .2s,background .2s,color .2s;display:flex;position:absolute;bottom:8px;right:8px}.concept-card:hover .preview-btn,.concept-card:focus-within .preview-btn,.preview-btn:focus-visible{opacity:1}.preview-btn:hover{background:var(--color-accent);color:#fff;border-color:var(--color-accent)}.preview-btn:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px;opacity:1}@media (pointer:coarse){.preview-btn{opacity:1}}.preview-panel{z-index:1100;pointer-events:none;width:380px;max-width:100vw;height:100dvh;transition:transform .25s cubic-bezier(.4,0,.2,1);position:fixed;top:0;right:0;transform:translate(100%)}.preview-panel--open{pointer-events:auto;transform:translate(0)}.preview-panel-inner{background:var(--bg-card);border-left:1px solid var(--border);flex-direction:column;height:100%;display:flex;overflow-y:auto}.preview-panel-backdrop{z-index:1099;opacity:0;pointer-events:none;background:#00000080;transition:opacity .25s;position:fixed;inset:0}.preview-panel-backdrop--visible{opacity:1;pointer-events:auto}.preview-panel-body-lock{overflow:hidden}.preview-panel-header{border-bottom:1px solid var(--border);padding:20px 24px 16px;position:relative}.preview-panel-close{width:32px;height:32px;color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;justify-content:center;align-items:center;transition:color .15s,background .15s;display:flex;position:absolute;top:16px;right:16px}.preview-panel-close:hover{color:var(--text-primary);background:#ffffff0f}.preview-panel-close:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.preview-panel-title{color:var(--text-primary);padding-right:36px;font-size:1.2rem;font-weight:700;line-height:1.3}.preview-panel-meta{flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px;display:flex}.preview-meta-time{color:var(--text-muted);font-size:.8rem}.preview-done-badge{color:var(--color-success);border-radius:var(--radius-pill);background:#22c55e1a;padding:2px 8px;font-size:.75rem;font-weight:600}.preview-panel-body{flex:1;padding:20px 24px;overflow-y:auto}.preview-panel-subtitle{color:var(--text-muted);margin-bottom:20px;font-size:.9rem;line-height:1.5}.preview-section{margin-bottom:20px}.preview-section-title{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:10px;font-size:.8rem;font-weight:600}.preview-prereqs{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.preview-prereq{color:var(--text-muted);align-items:center;gap:8px;font-size:.85rem;display:flex}.preview-prereq--done{color:var(--color-success)}.preview-steps{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.preview-step{color:var(--text-primary);align-items:baseline;gap:10px;font-size:.85rem;line-height:1.4;display:flex}.preview-step-num{border-radius:var(--radius-full);width:22px;height:22px;color:var(--color-accent);background:#6b6bff1f;flex-shrink:0;justify-content:center;align-items:center;font-size:.75rem;font-weight:600;display:flex}.preview-quiz-info{color:var(--text-muted);font-size:.85rem}.preview-connections{flex-wrap:wrap;gap:6px;display:flex}.preview-conn-chip{border-radius:var(--radius-pill);color:var(--text-primary);border:1px solid var(--border);cursor:pointer;background:#ffffff0f;padding:4px 12px;font-size:.78rem;font-weight:500;transition:background .15s,border-color .15s}.preview-conn-chip:hover{border-color:var(--color-accent);color:var(--color-accent);background:#6b6bff1f}.preview-conn-chip:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.preview-panel-footer{border-top:1px solid var(--border);padding:16px 24px}.preview-cta{text-align:center;background:var(--color-accent);color:#fff;border-radius:var(--radius-md);padding:12px 24px;font-size:.95rem;font-weight:600;text-decoration:none;transition:opacity .15s;display:block}.preview-cta:hover{opacity:.9}.preview-cta:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}@media (width<=768px){.preview-panel{border-radius:var(--radius-xl) var(--radius-xl) 0 0;width:100%;height:auto;max-height:85dvh;top:auto;bottom:0;overflow:hidden;transform:translateY(100%)}.preview-panel--open{transform:translateY(0)}.preview-panel-inner{border-radius:var(--radius-xl) var(--radius-xl) 0 0;border-left:none;max-height:85dvh}}:root:not([data-theme=dark]) .preview-btn{color:var(--text-muted);background:#f8f9ffd9;border-color:#0000001f}:root:not([data-theme=dark]) .preview-btn:hover{background:var(--color-accent);color:#fff;border-color:var(--color-accent)}:root:not([data-theme=dark]) .preview-done-badge{background:#22c55e14}@media (prefers-color-scheme:light){:root:not([data-theme=dark]) .preview-btn{background:#f8f9ffd9;border-color:#0000001f}}.featured-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-xl);max-width:700px;overflow:hidden}.featured-canvas-wrap{background:var(--bg-primary);width:100%}.featured-canvas-wrap canvas{width:100%;height:160px}.featured-card-body{flex-direction:column;gap:12px;padding:24px;display:flex}.featured-card-body h3{font-size:1.3rem;font-weight:700}.featured-card-body p{color:var(--text-muted);font-size:.9rem}.category-pills{flex-wrap:wrap;gap:10px;display:flex}.pill{border-radius:var(--radius-pill);border:1px solid var(--border);background:var(--bg-card);color:var(--text-muted);cursor:pointer;padding:8px 18px;font-size:.875rem;font-weight:600;transition:border-color .2s,color .2s,background .2s}.pill:hover,.pill.active{border-color:var(--color-accent);color:var(--color-accent);background:#6b6bff14}.pill-count{opacity:.6;margin-left:5px;font-size:.7rem;font-weight:500}.cat-showcase{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;display:grid}.cat-card{border-radius:var(--radius-lg);background:var(--bg-card);border:1px solid var(--border);border-top:3px solid var(--cat-color,var(--color-accent));color:inherit;flex-direction:column;gap:10px;padding:20px;text-decoration:none;transition:transform .2s,border-color .2s,box-shadow .2s;display:flex}.cat-card:hover{border-color:var(--cat-color,var(--color-accent));transform:translateY(-2px);box-shadow:0 4px 20px #00000026}.cat-card-header{align-items:center;gap:10px;display:flex}.cat-card-icon{color:var(--cat-color,var(--color-accent));flex-shrink:0;align-items:center;display:flex}.cat-card-name{color:var(--text-primary);font-size:1.1rem;font-weight:700}.cat-card-count{color:var(--text-muted);font-size:.8rem;font-weight:500}.cat-card-difficulty{flex-wrap:wrap;gap:6px;display:flex}.cat-diff{border-radius:var(--radius-pill);padding:2px 8px;font-size:.7rem;font-weight:500}.cat-diff--beginner{color:var(--color-success);background:#22c55e1f}.cat-diff--intermediate{color:var(--color-warning);background:#f59e0b1f}.cat-diff--advanced{color:var(--color-error);background:#ef44441f}.cat-card-sample{flex-direction:column;gap:3px;display:flex}.cat-sample-item{color:var(--text-muted);padding-left:12px;font-size:.78rem;position:relative}.cat-sample-item:before{content:"›";color:var(--cat-color,var(--color-accent));font-weight:700;position:absolute;left:0}.cat-card-progress{background:var(--border);border-radius:var(--radius-pill);height:3px;margin-top:2px;overflow:hidden}.cat-card-progress-fill{background:var(--cat-color,var(--color-accent));border-radius:var(--radius-pill);height:100%;transition:width .3s}.cat-card-cta{color:var(--cat-color,var(--color-accent));margin-top:auto;font-size:.8rem;font-weight:600}.start-here-section .section-sub{color:var(--text-muted);margin-top:-8px;margin-bottom:16px;font-size:.95rem}.start-here-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;display:grid}.start-here-card{border-radius:var(--radius-lg);background:var(--bg-card);border:1px solid var(--border);border-left:4px solid var(--cat-color,var(--color-accent));color:inherit;flex-direction:column;gap:10px;padding:24px;text-decoration:none;transition:transform .2s,box-shadow .2s;display:flex}.start-here-card:hover{transform:translateY(-2px);box-shadow:0 4px 20px #00000026}.start-here-meta{align-items:center;gap:8px;display:flex}.start-here-title{color:var(--text-primary);margin:0;font-size:1.05rem;font-weight:700}.start-here-sub{color:var(--text-muted);margin:0;font-size:.85rem;line-height:1.5}.start-here-cta{color:var(--cat-color,var(--color-accent));margin-top:auto;font-size:.85rem;font-weight:600}.paths-list{flex-direction:column;gap:8px;max-width:480px;display:flex}.path-item{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;align-items:center;gap:16px;padding:14px 18px;transition:border-color .2s,transform .2s;display:flex}.path-item:hover{border-color:var(--color-accent);transform:translate(4px)}.path-arrow{color:var(--color-accent);font-size:1.1rem;font-weight:700}.path-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.path-title{color:var(--text-primary);font-size:.95rem;font-weight:600}.path-count{color:var(--text-muted);font-size:.8rem}.path-mini-bar{border-radius:var(--radius-xs);background:var(--border);height:4px;margin-top:4px;overflow:hidden}.path-mini-fill{border-radius:var(--radius-xs);background:var(--color-accent);height:100%;transition:width .3s}.path-item--done{border-left:3px solid var(--color-sine)}.path-item--done .path-arrow{color:var(--color-sine)}.continue-section{flex-direction:column;gap:16px;padding:32px 0 0;display:flex}.continue-path-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);flex-direction:column;gap:12px;padding:20px 24px;display:flex}.continue-path-info{flex-wrap:wrap;align-items:baseline;gap:12px;display:flex}.continue-path-title{color:var(--text-primary);font-size:1rem;font-weight:600}.continue-path-stat{color:var(--text-muted);font-size:.8rem}.continue-progress-bar{background:var(--border);border-radius:var(--radius-sm);height:6px;overflow:hidden}.continue-progress-fill{background:var(--color-accent);border-radius:var(--radius-sm);height:100%;transition:width .4s}.continue-concept-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);align-items:center;gap:16px;padding:16px 24px;display:flex}.continue-concept-label{letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);white-space:nowrap;font-size:.75rem;font-weight:700}.continue-concept-link{color:inherit;flex-direction:column;gap:2px;text-decoration:none;display:flex}.continue-concept-link:hover .continue-concept-title{color:var(--color-accent)}.continue-concept-title{color:var(--text-primary);font-size:.95rem;font-weight:600;transition:color .2s}.continue-concept-sub{color:var(--text-muted);font-size:.8rem}.explore-header{padding:48px 24px 24px}.explore-header h1{margin-bottom:24px;font-size:1.8rem;font-weight:700}.category-tabs{flex-wrap:wrap;gap:8px;margin-bottom:0;display:flex}.cat-tab{border-radius:var(--radius-md);border:1px solid var(--border);color:var(--text-muted);cursor:pointer;background:0 0;padding:7px 16px;font-size:.875rem;font-weight:600;transition:all .2s}.cat-tab:hover{color:var(--text-primary);border-color:var(--text-muted)}.cat-tab.active{background:var(--color-accent);border-color:var(--color-accent);color:#fff}.cat-tab-count{opacity:.65;margin-left:5px;font-size:.7rem;font-weight:500}.cat-tab.active .cat-tab-count{opacity:.85}.difficulty-tabs{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.diff-tab{border-radius:var(--radius-md);border:1.5px solid var(--border);color:var(--text-muted);cursor:pointer;background:0 0;padding:5px 14px;font-size:.8rem;font-weight:600;transition:all .2s}.diff-tab:hover{color:var(--text-primary);border-color:var(--text-muted)}.diff-tab.active{background:var(--color-accent);border-color:var(--color-accent);color:#fff}.duration-tabs{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.dur-tab{border-radius:var(--radius-md);border:1.5px solid var(--border);color:var(--text-muted);cursor:pointer;background:0 0;padding:5px 14px;font-size:.8rem;font-weight:600;transition:all .2s}.dur-tab:hover{color:var(--text-primary);border-color:var(--text-muted)}.dur-tab.active{background:var(--color-accent);border-color:var(--color-accent);color:#fff}.sort-wrap{flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px;display:flex}.sort-label{color:var(--text-muted);margin-right:2px;font-size:.8rem}.sort-btn{border-radius:var(--radius-md);border:1px solid var(--border);color:var(--text-muted);cursor:pointer;background:0 0;padding:5px 14px;font-size:.8rem;transition:all .2s}.sort-btn:hover{color:var(--text-primary);border-color:var(--text-muted)}.sort-btn.active{background:var(--color-accent);border-color:var(--color-accent);color:#fff}.search-wrap{flex-wrap:wrap;align-items:center;gap:8px;margin-top:16px;display:flex}.search-wrap .concept-search{flex:1;min-width:180px}.search-wrap .kbd-hint{flex-basis:100%}.kbd-hint{color:var(--text-muted);margin:6px 0 0;font-size:.78rem}.kbd-hint kbd{background:var(--bg-card-hover);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);box-shadow:0 1px 0 var(--border);padding:1px 6px;font-family:monospace;font-size:.78rem;display:inline-block}.concept-search{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);width:100%;max-width:400px;color:var(--text-primary);padding:8px 14px;font-size:.9rem}.concept-search:focus{outline:2px solid var(--color-accent)}.explore-grid-section{padding:24px}.concept-page{flex:1;padding-bottom:64px}.concept-breadcrumb,.explore-breadcrumb{max-width:1100px;margin:0 auto;padding:16px 24px 0}.explore-breadcrumb{max-width:none;padding:0 0 8px}.breadcrumb-nav{font-size:.875rem}.breadcrumb-list{flex-wrap:wrap;align-items:center;gap:0;margin:0;padding:0;list-style:none;display:flex}.breadcrumb-item{color:var(--text-muted);align-items:center;display:flex}.breadcrumb-item:not(:last-child):after{content:"›";color:var(--text-muted);opacity:.6;margin:0 8px}.breadcrumb-item[aria-current=page]{color:var(--text-primary);font-weight:500}.breadcrumb-link{color:var(--text-muted);font-size:.875rem;transition:color .2s}.breadcrumb-link:hover{color:var(--text-primary)}.concept-header{max-width:1100px;margin:0 auto;padding:0 24px 24px}.concept-header h1{margin-bottom:10px;font-size:clamp(1.5rem,3vw,2.2rem);font-weight:700;line-height:1.2}.concept-header-sub{color:var(--text-muted);margin-bottom:16px;font-size:1rem}.concept-meta-row{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:10px;font-size:.85rem;display:flex}.concept-prerequisites{flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px;display:flex}.prereq-label{color:var(--text-muted);flex-shrink:0;font-size:.8rem}.prereq-tag{border-radius:var(--radius-pill);color:var(--text-muted);border:1px solid var(--border);background:#ffffff12;padding:2px 10px;font-size:.78rem}.prereq-tag--link{color:var(--color-accent);border-color:#6b6bff4d;text-decoration:none}.prereq-tag--link:hover{background:#6b6bff1a}.prereq-tag--completed{color:var(--color-accent);border-color:#22c55e66}.prereq-tag--incomplete{color:var(--color-accent);border-color:#eab30866}.prereq-icon{font-size:.75rem}.prereq-notice{border-radius:var(--radius-md);color:var(--text-muted);background:#eab30814;border:1px solid #eab30840;align-items:flex-start;gap:12px;margin-top:12px;padding:12px 16px;font-size:.88rem;line-height:1.5;display:flex}.prereq-notice p{flex:1;margin:0}.prereq-notice a{color:var(--color-accent);text-underline-offset:2px;text-decoration:underline}.prereq-notice a:hover{text-decoration:none}.prereq-notice__dismiss{color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;flex-shrink:0;padding:2px 6px;font-size:1.2rem;line-height:1}.prereq-notice__dismiss:hover{color:var(--text-primary);background:#ffffff1a}.canvas-container{width:100%;max-width:1100px;margin:0 auto;padding:0 24px}.canvas-wrap{background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;position:relative;overflow:hidden}.canvas-wrap canvas{touch-action:none;width:100%;height:min(60vh,480px);display:block}.canvas-loading{background:var(--bg-card);border-radius:var(--radius-lg);z-index:1;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.canvas-loading-spinner{border:3px solid #ffffff1a;border-top-color:var(--color-accent);border-radius:var(--radius-full);width:32px;height:32px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.canvas-loading-spinner{opacity:.5;animation:none}}.viz-skeleton{background:var(--bg-card);border-radius:var(--radius-md);z-index:1;position:absolute;inset:0;overflow:hidden}.viz-skeleton__shimmer{background:linear-gradient(90deg,#0000 0%,#8080c814 50%,#0000 100%) 0 0/200% 100%;height:100%;animation:1.5s infinite shimmer}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){.viz-skeleton__shimmer,.trending-skeleton{animation:none}}.trending-skeleton{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);background-image:linear-gradient(90deg,#0000 0%,#8080c814 50%,#0000 100%);background-size:200% 100%;height:180px;animation:1.5s infinite shimmer}.canvas-placeholder{background:var(--bg-card);border-radius:var(--radius-lg);width:100%;height:min(60vh,480px);color:var(--text-muted);border:1px solid var(--border);justify-content:center;align-items:center;font-size:1rem;display:flex}.controls-row{flex-wrap:wrap;align-items:center;gap:16px;max-width:1100px;margin:16px auto;padding:0 24px;display:flex}.btn-control{background:var(--bg-card);color:var(--text-primary);border:1px solid var(--border);border-radius:var(--radius-md);align-items:center;gap:8px;min-width:44px;min-height:44px;padding:10px 18px;font-size:.9rem;font-weight:600;transition:border-color .2s,background .2s;display:inline-flex}.btn-control:hover{border-color:var(--color-accent);background:var(--bg-card-hover)}.btn-control.active{border-color:var(--color-accent);color:var(--color-accent)}.speed-wrap{color:var(--text-muted);align-items:center;gap:10px;font-size:.85rem;display:flex}.speed-wrap input[type=range]{width:100px;accent-color:var(--color-accent)}.preset-row{flex-wrap:wrap;align-items:center;gap:6px;max-width:1100px;margin:0 auto 8px;padding:0 24px;display:flex}.preset-label{color:var(--text-muted);margin-right:4px;font-size:.8rem}.btn-preset{background:var(--bg-card);color:var(--text-secondary);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;min-height:28px;padding:4px 8px;font-size:.75rem;font-weight:500;transition:border-color .2s,background .2s}.btn-preset:hover{border-color:var(--color-accent);background:var(--bg-card-hover)}.toggle-row{flex-wrap:wrap;align-items:center;gap:16px;max-width:1100px;margin:0 auto 12px;padding:0 24px;display:flex}.toggle-label{cursor:pointer;color:var(--text-secondary);align-items:center;gap:6px;font-size:.85rem;display:inline-flex}.toggle-label input[type=checkbox]{accent-color:var(--color-accent);width:16px;height:16px}.live-values{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px;max-width:1100px;margin:0 auto 24px;padding:0 24px;display:grid}@media (width<=600px){.live-values{grid-template-columns:repeat(2,1fr)}}.value-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);text-align:center;padding:14px 16px}.value-card-label{letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);margin-bottom:6px;font-size:.72rem;font-weight:700}.value-card-value{font-variant-numeric:tabular-nums;color:var(--text-primary);font-size:1.3rem;font-weight:700}#val-sine{color:var(--color-sine)}#val-cos{color:var(--color-cosine)}#val-angle{color:var(--color-wave)}#val-rad{color:var(--text-primary)}#val-mag{color:var(--color-hyp)}#val-vec-angle{color:var(--color-wave)}#val-x{color:var(--color-cosine)}#val-y{color:var(--color-sine)}.value-card--vectorb .value-card-value{color:var(--color-vec-b)}.value-card--resultant .value-card-value{color:var(--color-wave)}#val-mag-b,#val-angle-b{color:var(--color-vec-b)}#val-resultant-mag,#val-resultant-angle{color:var(--color-wave)}.value-card--dotproduct .value-card-value,#val-dot-product,#val-angle-between,#val-projection{color:var(--color-cyan)}.value-card--crossproduct .value-card-value,#val-cross-product,#val-cross-angle,#val-cross-area{color:var(--color-teal)}.value-card--dot .value-card-value,#dp-val-dot,#dp-val-angle,#dp-val-cos,#dp-val-proj{color:var(--color-sine)}.op-mode-group{gap:4px;margin-left:8px;display:flex}.btn-op-mode{border:1px solid var(--border);color:var(--text-muted);cursor:pointer;background:0 0;padding:4px 10px;font-size:.8rem;transition:all .2s}.btn-op-mode.active{background:color-mix(in srgb, var(--color-cyan) 15%, transparent);color:var(--color-cyan);border-color:var(--color-cyan)}.vec-b-controls,.vec-b-values{border-top:1px solid var(--border);padding-top:8px}.ohm-challenges{max-width:1100px;margin:0 auto 16px;padding:0 24px}.ohm-challenges-title{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin:0 0 8px;font-size:.9rem;font-weight:600}.challenge-list{gap:6px;margin:0;padding:0;list-style:none;display:grid}.challenge-item{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-primary);align-items:center;gap:10px;padding:10px 14px;font-size:.88rem;transition:border-color .3s,background .3s;display:flex}.challenge-status{text-align:center;width:20px;color:var(--text-muted);flex-shrink:0;font-size:1rem;transition:color .3s}.challenge-item.challenge-solved{border-color:var(--color-success);background:color-mix(in srgb, var(--color-success) 8%, var(--bg-card))}.challenge-item.challenge-solved .challenge-status{color:var(--color-success);font-weight:700}.challenge-text strong{color:var(--color-cosine)}.formula-box{max-width:1100px;margin:0 auto 24px;padding:0 24px}.formula-inner{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-primary);padding:18px 24px;font-family:Courier New,monospace;font-size:1rem}.bond-spectrum{max-width:1100px;margin:12px auto 8px;padding:0 24px}.bond-spectrum-bar{border-radius:var(--radius-pill);border:1px solid var(--border);background:linear-gradient(90deg,#40d080 0% 11.4%,#9060d0 11.4% 48.6%,#e06030 48.6% 100%);height:14px;position:relative}.bond-spectrum-marker{background:var(--text-primary);border-radius:2px;width:4px;height:22px;transition:left .15s ease-out;position:absolute;top:-4px;transform:translate(-2px);box-shadow:0 0 6px #fff6}.bond-spectrum-labels{color:var(--text-muted);text-align:center;justify-content:space-between;align-items:flex-start;margin-top:4px;font-size:.68rem;line-height:1.2;display:flex}.bond-spectrum-zone{flex:1}.bond-spectrum-zone--nonpolar{color:#40d080}.bond-spectrum-zone--polar{color:#9060d0}.bond-spectrum-zone--ionic{color:#e06030}.bond-spectrum-threshold{font-variant-numeric:tabular-nums;flex:none;padding:0 4px;font-weight:700}.formula-label{letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);font-size:.72rem;font-weight:700;font-family:var(--font);margin-bottom:8px}.formula-val{color:var(--color-sine);font-weight:700}.concept-stats-bar{max-width:1100px;color:var(--text-muted);justify-content:center;align-items:center;gap:16px;margin:0 auto;padding:8px 24px;font-size:.85rem;display:flex}.concept-stats-bar span{white-space:nowrap}.concept-stats-bar .quiz-comparison{color:var(--text-primary);font-weight:500}.share-bar{border-top:1px solid var(--border);align-items:center;gap:10px;max-width:1100px;margin:0 auto;padding:12px 24px;display:flex}.share-label{color:var(--text-muted);flex-shrink:0;font-size:.85rem}.share-btn{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-muted);font-size:.85rem;font-family:var(--font);cursor:pointer;white-space:nowrap;background:0 0;align-items:center;gap:6px;padding:6px 12px;text-decoration:none;transition:border-color .2s,color .2s;display:inline-flex}.share-btn:hover{border-color:var(--text-primary);color:var(--text-primary)}.steps-section{max-width:1100px;margin:0 auto 32px;padding:0 24px}.steps-section h2{text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);margin-bottom:20px;font-size:1rem;font-weight:700}.steps-list{flex-direction:column;gap:16px;display:flex}.step-item{border-left:3px solid #0000;align-items:flex-start;gap:16px;padding-left:calc(1.25rem - 3px);transition:background .3s,border-color .3s;display:flex}.step-num{border-radius:var(--radius-full);background:var(--bg-card);border:1px solid var(--border);width:28px;height:28px;color:var(--color-accent);flex-shrink:0;justify-content:center;align-items:center;font-size:.8rem;font-weight:700;display:flex}.step-content h3{margin-bottom:4px;font-size:.95rem;font-weight:600}.step-content p{color:var(--text-muted);font-size:.875rem}.step-item--active{border-color:var(--color-sine);background:#40d08014}.step-item--active .step-num{background:var(--color-sine);color:var(--bg-primary)}.resume-badge{border-radius:var(--radius-md);color:var(--color-sine);letter-spacing:.02em;background:#40d0801f;border:1px solid #40d0804d;margin-bottom:6px;padding:2px 7px;font-size:.7rem;font-weight:600;display:inline-block}.step-progress{align-items:center;gap:.75rem;margin-bottom:1rem;display:flex}.step-progress__bar{background:var(--border);border-radius:var(--radius-xs);flex:1;height:4px}.step-progress__fill{background:var(--color-accent);border-radius:var(--radius-xs);height:100%;transition:width .3s}.step-progress__label{color:var(--text-muted);white-space:nowrap;font-size:.8rem}@media (prefers-reduced-motion:reduce){.step-progress__fill{transition:none}}.mobile-step-nav{max-width:1100px;margin:0 auto 20px;padding:0}.msn-hidden,.msn-desktop-only{display:none!important}.msn-dots{flex-wrap:wrap;justify-content:center;gap:6px;margin-bottom:12px;display:flex}.msn-dot{border-radius:var(--radius-full);background:var(--border);cursor:pointer;border:none;width:10px;height:10px;padding:0;transition:background .2s,transform .2s}.msn-dot--active{background:var(--color-accent);transform:scale(1.3)}.msn-dot:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.msn-card{background:var(--bg-card);border:1px solid var(--border);border-left:3px solid var(--color-accent);border-radius:var(--radius-md);touch-action:pan-y;-webkit-user-select:none;user-select:none;align-items:flex-start;gap:14px;min-height:80px;padding:16px;display:flex}.msn-card-num{border-radius:var(--radius-full);background:var(--color-accent);width:30px;height:30px;color:var(--bg-primary);flex-shrink:0;justify-content:center;align-items:center;font-size:.85rem;font-weight:700;display:flex}.msn-card-body{flex:1;min-width:0}.msn-card-title{margin-bottom:4px;font-size:.95rem;font-weight:600}.msn-card-text{color:var(--text-muted);font-size:.875rem;line-height:1.5}.msn-nav-row{justify-content:space-between;align-items:center;gap:12px;margin-top:8px;display:flex}.msn-btn{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-primary);cursor:pointer;min-width:80px;min-height:40px;padding:8px 16px;font-size:.85rem;font-weight:600;transition:background .15s,border-color .15s}.msn-btn:not(:disabled):hover{background:var(--bg-secondary);border-color:var(--color-accent)}.msn-btn:disabled{opacity:.35;cursor:not-allowed}.msn-btn:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.msn-label{color:var(--text-muted);white-space:nowrap;font-size:.8rem}@media (width>=769px){.mobile-step-nav{display:none!important}.msn-desktop-only{display:block!important}}.takeaways-section{max-width:1100px;margin:0 auto 32px;padding:0 24px}.takeaways-section h2{text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);margin-bottom:20px;font-size:1rem;font-weight:700}.takeaways-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;display:grid}.takeaway-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);padding:18px}.takeaway-card h3{color:var(--color-accent);margin-bottom:6px;font-size:.9rem;font-weight:700}.takeaway-card p{color:var(--text-muted);font-size:.82rem;line-height:1.5}.connections-section{max-width:1100px;margin:0 auto 48px;padding:0 24px}.connections-section h2{text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);margin-bottom:20px;font-size:1rem;font-weight:700}.connections-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px;display:grid}.connection-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;color:inherit;padding:16px;text-decoration:none;transition:border-color .2s,transform .2s;display:block}.connection-card:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.connection-card:hover{border-color:var(--color-accent);transform:translateY(-2px)}.connection-card h3{color:var(--text-primary);margin-bottom:4px;font-size:.9rem;font-weight:700}.connection-card p{color:var(--text-muted);font-size:.8rem;line-height:1.45}.connection-card--disabled{opacity:.5;cursor:default}.connection-card--disabled:hover{border-color:var(--border);transform:none}.badge-coming-soon{color:var(--text-muted);border-radius:var(--radius-sm);vertical-align:middle;background:#ffffff14;margin-left:6px;padding:2px 7px;font-size:.65rem;font-weight:600}.completion-cta{text-align:center;max-width:1100px;margin:0 auto 32px;padding:0 24px}.completion-done{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-primary);align-items:center;gap:12px;padding:14px 24px;font-size:.95rem;display:inline-flex}.completion-check{color:var(--color-accent);font-size:1.2rem;font-weight:700}.bookmark-btn{border-radius:var(--radius-md);border:1px solid var(--border);width:28px;height:28px;color:var(--text-muted);cursor:pointer;background:0 0;flex-shrink:0;justify-content:center;align-items:center;padding:0;transition:border-color .2s,color .2s,background .2s;display:inline-flex}.bookmark-btn:hover,.bookmark-btn[aria-pressed=true]{border-color:var(--color-warning);color:var(--color-warning)}.saved-filter-wrap{margin-top:12px}.saved-filter-btn{border-radius:var(--radius-pill);border:1px solid var(--border);color:var(--text-muted);cursor:pointer;background:0 0;align-items:center;gap:6px;padding:4px 14px;font-size:.8rem;font-weight:500;transition:all .15s;display:inline-flex}.saved-filter-btn:hover{border-color:var(--color-warning);color:var(--color-warning)}.saved-filter-btn.active{border-color:var(--color-warning);color:var(--color-warning);background:color-mix(in srgb, var(--color-warning) 10%, transparent)}.clear-filters-wrap{margin-top:12px}.clear-filters-btn{border:1px solid var(--color-error);color:var(--color-error);border-radius:var(--radius-sm);cursor:pointer;opacity:.8;background:0 0;padding:4px 10px;font-size:.8rem}.clear-filters-btn:hover{opacity:1}.concept-card-thumb{position:relative}.card-bookmark-overlay{z-index:2;border-radius:var(--radius-sm);background:#00000080;justify-content:center;align-items:center;width:20px;height:20px;display:inline-flex;position:absolute;top:6px;right:6px}.btn-secondary{color:var(--text-muted);border-radius:var(--radius-md);border:1px solid var(--border);cursor:pointer;background:0 0;align-items:center;padding:6px 14px;font-size:.85rem;font-weight:600;transition:border-color .2s,color .2s;display:inline-flex}.btn-secondary:hover{border-color:var(--color-accent);color:var(--text-primary)}.btn-danger{color:#ef4444;border-color:#ef4444}.btn-danger:hover{color:#fff;background:#ef4444}.skip-link{background:var(--color-accent);color:#fff;z-index:9999;border-radius:0 0 8px 8px;padding:8px 16px;font-size:.9rem;font-weight:600;text-decoration:none;transition:top .2s;position:absolute;top:-100%;left:8px}.skip-link:focus{top:0}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.footer{border-top:1px solid var(--border);text-align:center;color:var(--text-muted);margin-top:auto;padding:24px 16px;font-size:.85rem}.footer-inner{flex-direction:column;align-items:center;gap:12px;max-width:960px;margin:0 auto;display:flex}.footer-links{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px 20px;display:flex}.footer-links a{color:var(--text-muted);text-decoration:none;transition:color .15s}.footer-links a:hover,.footer-links a:focus-visible{color:var(--color-accent);text-underline-offset:3px;text-decoration:underline}.footer-tagline{opacity:.7;margin:0;font-size:.8rem}.fullscreen-overlay{z-index:1000;background:var(--bg-primary);flex-direction:column;display:none;position:fixed;inset:0}.fullscreen-overlay.active{display:flex}.fullscreen-canvas-wrap{flex:1;min-height:0;position:relative}.fullscreen-canvas-wrap canvas{touch-action:none;width:100%;height:100%;display:block}.fullscreen-controls{border-top:1px solid var(--border);background:var(--bg-primary);flex-wrap:wrap;align-items:center;gap:16px;padding:12px 24px;display:flex}.fullscreen-values{flex-wrap:wrap;align-items:center;gap:20px;display:flex}.fs-val-item{align-items:baseline;gap:5px;display:flex}.fs-val-label{letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);font-size:.72rem;font-weight:700}.fs-val-num{font-variant-numeric:tabular-nums;color:var(--text-primary);font-size:1rem;font-weight:700}.fs-exit-btn{margin-left:auto}.kb-hints{max-width:1100px;margin:0 auto 16px;padding:0 24px}.kb-hints summary{cursor:pointer;color:var(--text-muted);-webkit-user-select:none;user-select:none;align-items:center;gap:6px;padding:4px 0;font-size:.85rem;list-style:none;transition:color .2s;display:inline-flex}.kb-hints summary::-webkit-details-marker{display:none}.kb-hints[open] summary,.kb-hints summary:hover{color:var(--text-primary)}.kb-grid{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);grid-template-columns:auto 1fr;gap:8px 14px;margin-top:8px;padding:12px 16px;display:grid}.kb-grid kbd{background:var(--bg-card-hover);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);white-space:nowrap;box-shadow:0 1px 0 var(--border);justify-content:center;align-self:center;align-items:center;padding:2px 8px;font-family:monospace;font-size:.78rem;display:inline-flex}.kb-grid span{color:var(--text-muted);align-self:center;font-size:.82rem}@media (pointer:coarse){.kb-hints,.kbd-hint{display:none}}.reduced-motion-note{color:var(--text-muted);background:var(--bg-card-hover);border:1px solid var(--border);border-radius:var(--radius-sm);max-width:480px;margin:6px 0 0;padding:6px 10px;font-size:.82rem}.path-page{flex:1;max-width:800px;margin:0 auto;padding:32px 24px 48px}.path-header{margin-bottom:32px}.path-header h1{margin-bottom:10px;font-size:2rem;font-weight:700}.path-header-desc{color:var(--text-muted);font-size:1.05rem}.path-cta{margin-bottom:36px}.btn-disabled{opacity:.5;cursor:default;pointer-events:none}.path-concepts{flex-direction:column;gap:12px;display:flex}.path-concept-item{border-radius:var(--radius-lg);border:1px solid var(--border);background:var(--bg-card);color:var(--text-primary);align-items:flex-start;gap:16px;padding:18px 20px;text-decoration:none;transition:background .2s,border-color .2s;display:flex}a.path-concept-item:hover{background:var(--bg-card-hover);border-color:var(--color-accent)}.path-concept-item--unavailable{opacity:.45;cursor:default}.path-concept-item--done{border-left:3px solid var(--color-sine)}.path-concept-num--done{background:var(--color-sine);color:#0a0a1a}.path-progress{border-radius:var(--radius-sm);background:var(--border);height:8px;margin-top:16px;overflow:hidden}.path-progress-bar{background:var(--color-sine);border-radius:var(--radius-sm);height:100%;transition:width .3s}.path-progress-label{color:var(--text-muted);margin-top:6px;font-size:.85rem;display:block}.path-time-estimate{color:var(--text-muted);margin-top:4px;font-size:.85rem;display:block}.path-complete-msg{color:var(--color-sine);margin-top:8px;font-size:.95rem;font-weight:600}.path-concept-num{border-radius:var(--radius-full);background:var(--color-accent);color:#fff;flex-shrink:0;justify-content:center;align-items:center;min-width:32px;height:32px;margin-top:2px;font-size:.85rem;font-weight:700;display:flex}.path-concept-num--disabled{background:var(--border);color:var(--text-muted)}.path-concept-info{flex-direction:column;gap:4px;display:flex}.path-concept-title{font-size:1rem;font-weight:600}.path-concept-subtitle{color:var(--text-muted);font-size:.88rem}.path-concept-meta{align-items:center;gap:8px;margin-top:4px;display:flex}.path-nav{border-top:1px solid var(--border);background:var(--bg-card);justify-content:space-between;align-items:center;gap:16px;padding:16px 24px;font-size:.9rem;display:flex}.path-nav-prev,.path-nav-next{color:var(--color-accent);flex:1;font-weight:500;transition:opacity .2s}a.path-nav-prev:hover,a.path-nav-next:hover{opacity:.8}.path-nav-next{text-align:right}.path-nav-badge{color:var(--color-accent);border-radius:var(--radius-pill);text-align:center;white-space:nowrap;background:#6b6bff26;flex:none;padding:4px 12px;font-size:.8rem;font-weight:600}.path-nav-disabled{color:var(--text-muted);opacity:.5;flex:1}.path-nav-disabled.path-nav-next{text-align:right}@media (width<=768px){.hero{padding:48px 16px 40px}.hero h1{font-size:1.8rem}.section{padding:32px 16px}.live-values{grid-template-columns:repeat(2,1fr)}.controls-row{gap:10px}.stats-bar-inner{gap:24px}.stat-item{min-width:80px}.stat-number{font-size:1.3rem}.hiw-grid{grid-template-columns:1fr;gap:16px}.hero--welcome-back{padding:32px 16px 24px}.wb-grid{grid-template-columns:1fr;gap:24px}.wb-heading{font-size:1.6rem}.wb-categories{order:2}.canvas-wrap canvas,.canvas-placeholder{height:min(50vh,380px)}.controls-row{padding:0 16px}.speed-wrap input[type=range]{width:120px;height:36px}.share-bar{-webkit-overflow-scrolling:touch;scrollbar-width:none;padding:12px 16px;overflow-x:auto}.share-bar::-webkit-scrollbar{display:none}.steps-section,.takeaways-section,.connections-section,.completion-cta{padding:0 16px}.completion-done{flex-wrap:wrap;justify-content:center;padding:14px 16px}.formula-box{padding:0 16px}.formula-inner{-webkit-overflow-scrolling:touch;padding:14px 16px;overflow-x:auto}.quiz-panel{padding:1.25rem}.concept-header,.up-next-section,.canvas-container,.kb-hints{padding:0 16px}}@media (width<=520px){.canvas-wrap canvas,.canvas-placeholder{height:min(45vh,300px)}.controls-row{flex-direction:column;align-items:stretch;gap:8px;padding:0 12px}.controls-row .btn-control{justify-content:center;width:100%}.speed-wrap{justify-content:center}.speed-wrap input[type=range]{flex:1;width:100%;min-width:0}.live-values{gap:8px;padding:0 12px}.value-card{padding:10px 12px}.value-card-label{font-size:.65rem}.value-card-value{font-size:1.1rem}.share-bar{gap:6px;padding:10px 12px}.share-label,.share-btn span{display:none}.share-btn{justify-content:center;min-width:40px;min-height:40px;padding:8px}.embed-btn span{display:none}.embed-btn{justify-content:center;min-width:40px;min-height:40px;padding:8px;display:inline-flex}.teach-btn span{display:none}.teach-btn{justify-content:center;align-items:center;min-width:40px;min-height:40px;padding:8px;display:inline-flex}.concept-header{padding:0 12px}.concept-header h1{font-size:1.4rem}.concept-header-sub{font-size:.9rem}.steps-section{margin-bottom:24px;padding:0 12px}.steps-section h2{margin-bottom:14px;font-size:.85rem}.step-item{gap:12px}.takeaways-section{margin-bottom:24px;padding:0 12px}.takeaways-grid{grid-template-columns:1fr}.connections-section{margin-bottom:32px;padding:0 12px}.connections-grid{grid-template-columns:1fr}.completion-cta{margin-bottom:24px;padding:0 12px}.completion-done{gap:8px;font-size:.88rem}.quiz-panel{margin-top:1rem;padding:1rem}.quiz-question{font-size:.95rem}.quiz-option{padding:.65rem .85rem;font-size:.88rem}.quiz-results-actions{flex-direction:column}.quiz-results-actions .btn-primary,.quiz-results-actions .btn-secondary,.quiz-results-actions .btn-accent{text-align:center;justify-content:center;width:100%}.quiz-prompt{flex-direction:column;align-items:stretch;gap:8px;display:flex}.quiz-prompt .btn-primary,.quiz-prompt .btn-secondary{text-align:center;justify-content:center;width:100%}.canvas-container,.formula-box,.up-next-section{padding:0 12px}.up-next-card{padding:14px 16px}.kb-hints{display:none}.hero{padding:36px 12px 32px}.hero h1{font-size:1.5rem}.hero-sub{margin-bottom:24px;font-size:.95rem}.stats-bar{padding:20px 12px}.stats-bar-inner{gap:16px}.stat-item{min-width:60px}.stat-number{font-size:1.1rem}.stat-label{font-size:.68rem}.featured-card-body{padding:16px}.featured-card-body h3{font-size:1.1rem}.cat-showcase{grid-template-columns:1fr;gap:12px}.cat-card{gap:8px;padding:16px}.start-here-grid{grid-template-columns:1fr;gap:12px}.start-here-card{padding:18px}.card-grid{grid-template-columns:1fr;gap:12px}.concept-card{gap:10px;padding:16px}.paths-list{max-width:100%}.path-item{padding:12px 14px}.continue-path-card{padding:16px}.concept-breadcrumb{padding:0 12px}.path-nav{flex-wrap:wrap;gap:8px;padding:12px;font-size:.82rem}.path-nav-badge{text-align:center;order:-1;width:100%}.fullscreen-controls{gap:10px;padding:10px 12px}.fullscreen-values{gap:12px}.explore-header{padding:36px 12px 16px}.explore-header h1{margin-bottom:16px;font-size:1.4rem}.category-tabs{-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-wrap:nowrap;gap:6px;padding-bottom:4px;overflow-x:auto}.category-tabs::-webkit-scrollbar{display:none}.cat-tab{flex-shrink:0;padding:6px 12px;font-size:.8rem}.difficulty-tabs{-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-wrap:nowrap;gap:6px;overflow-x:auto}.difficulty-tabs::-webkit-scrollbar{display:none}.diff-tab{flex-shrink:0;padding:4px 10px;font-size:.75rem}.duration-tabs{-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-wrap:nowrap;overflow-x:auto}.duration-tabs::-webkit-scrollbar{display:none}.sort-wrap{-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-wrap:nowrap;overflow-x:auto}.sort-wrap::-webkit-scrollbar{display:none}.sort-btn{flex-shrink:0;padding:4px 10px;font-size:.75rem}.search-wrap{gap:6px}.concept-search{font-size:.9rem}.concept-prerequisites{flex-wrap:wrap}}@media (pointer:coarse){.btn-control{min-width:48px;min-height:48px;padding:12px 20px}input[type=range]{height:40px}.quiz-option{min-height:48px;padding:.75rem 1rem}.tag-filter{align-items:center;min-height:36px;padding:6px 14px;font-size:.8rem;display:inline-flex}.pill{align-items:center;min-height:44px;padding:10px 20px;display:inline-flex}.step-item{padding-top:8px;padding-bottom:8px}.connection-card{padding:18px}.bookmark-btn{width:40px;height:40px}.nav-search-btn{min-height:40px;padding:8px 12px}.btn-explore{min-height:44px;padding:8px 16px}.concept-card:hover,.connection-card:hover,.hiw-step:hover,.path-item:hover{transform:none}}:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px;border-radius:var(--radius-sm)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.graph-header-section{padding-top:48px;padding-bottom:24px}.graph-header-section h1{margin-bottom:8px;font-size:2rem}.graph-subtitle{color:var(--text-muted);margin-bottom:20px;font-size:1rem}.graph-legend{flex-wrap:wrap;gap:16px;margin-bottom:8px;list-style:none;display:flex}.graph-legend-item{color:var(--text-muted);align-items:center;gap:6px;font-size:.82rem;display:flex}.graph-legend-dot{border-radius:var(--radius-full);flex-shrink:0;width:12px;height:12px}.graph-legend-dot--muted{background:var(--text-muted);opacity:.45;border:1px dashed #ffffff4d}.graph-wrap{width:100%;padding-bottom:32px;position:relative;overflow:hidden}.graph-scroll-wrap{-webkit-overflow-scrolling:touch;cursor:grab;max-width:100%;overflow:auto visible}.graph-scroll-wrap:active{cursor:grabbing}.graph-zoom-controls{justify-content:flex-end;gap:6px;padding:8px 12px;display:flex}.graph-btn{background:var(--bg-card);border:1px solid var(--border);color:var(--text-primary);border-radius:var(--radius-sm);cursor:pointer;justify-content:center;align-items:center;width:32px;height:32px;font-size:1.1rem;line-height:1;transition:background .15s,border-color .15s;display:flex}.graph-btn:hover{background:var(--bg-card-hover);border-color:var(--color-accent)}.graph-btn:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}#concept-graph{display:block}.graph-scroll-hint{text-align:center;color:var(--text-muted);padding:.25rem 0;font-size:.75rem;display:none}@media (pointer:coarse){.graph-scroll-hint{display:block}}.graph-col-header{fill:var(--text-muted);letter-spacing:.04em;text-transform:uppercase;font-size:12px;font-weight:600}.graph-edge-conn{stroke:var(--text-muted);stroke-width:1px;stroke-opacity:.25}.graph-edge-prereq{stroke:var(--text-muted);stroke-width:1.5px;stroke-opacity:.4;stroke-dasharray:5 4}.graph-node circle{transition:filter .15s}.graph-node-link{outline:none}.graph-node-link:focus-visible .graph-node circle,.graph-node:hover circle{filter:brightness(1.25)}.graph-node-link:focus{outline:none}.graph-node-link:focus-visible{outline:2px solid var(--color-accent);outline-offset:4px;border-radius:50%}.graph-node-link:focus circle,.graph-node-link:focus-visible circle{stroke:var(--color-focus,#60a5fa);stroke-width:3px}.graph-node--coming-soon{cursor:default;pointer-events:none}.graph-tooltip{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);pointer-events:none;z-index:200;max-width:200px;padding:10px 14px;font-size:.82rem;line-height:1.4;display:none;position:fixed;box-shadow:0 4px 16px #0006}.graph-tooltip strong{color:var(--text-primary);margin-bottom:3px;font-size:.88rem;display:block}.graph-tooltip-sub{color:var(--text-muted);font-size:.78rem;display:block}.graph-tooltip-soon{color:var(--text-muted);border-radius:var(--radius-sm);background:#ffffff0f;margin-top:4px;padding:1px 6px;font-size:.72rem;display:inline-block}@media (pointer:coarse){.graph-scroll-wrap{cursor:default}}.not-found-body{text-align:center;padding:64px 24px}.not-found-heading{margin-bottom:16px}.btn-inline-flex{display:inline-flex}.canvas-error{color:var(--text-muted);text-align:center;padding:16px}.viz-error{min-height:200px;color:var(--text-muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:1rem;display:flex}.viz-error button{border:1.5px solid var(--border);color:var(--text-muted);border-radius:var(--radius-md);cursor:pointer;background:0 0;align-items:center;padding:8px 20px;font-size:.9rem;font-weight:600;transition:border-color .2s,color .2s;display:inline-flex}.viz-error button:hover{border-color:var(--color-accent);color:var(--text-primary)}.explore-count{color:var(--text-muted);text-align:right;margin:0 0 4px;font-size:.85rem}.explore-no-results{color:var(--text-muted);grid-column:1/-1}.btn-link{color:var(--color-accent);cursor:pointer;font:inherit;background:0 0;border:none;padding:0;text-decoration:underline}.empty-state{text-align:center;color:var(--text-muted);grid-column:1/-1;padding:4rem 2rem}.empty-state h3{margin-bottom:.5rem;font-size:1.25rem}.empty-state__icon{margin-bottom:1rem;font-size:3rem}.btn-primary--self-start{align-self:flex-start}.btn-ghost{background:var(--bg-card)}.not-found-main{text-align:center;padding:80px 24px}.not-found-code{margin-bottom:16px;font-size:4rem}.not-found-h1{margin-bottom:12px}.not-found-desc{color:var(--text-muted);max-width:420px;margin-bottom:32px;margin-left:auto;margin-right:auto}.not-found-actions{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.not-found-search{text-align:center;max-width:420px;margin-top:32px;margin-left:auto;margin-right:auto}.not-found-search-hint{color:var(--text-muted);margin-bottom:12px;font-size:.9rem}.not-found-search-field{justify-content:center;display:flex}.not-found-search-field .concept-search{max-width:100%}.graph-legend-dot--trig{background:var(--color-cat-math)}.graph-legend-dot--calc{background:var(--color-cat-calc)}.graph-legend-dot--linalg{background:var(--color-cosine)}.graph-legend-dot--physics{background:var(--color-cat-physics)}.graph-legend-dot--cs{background:var(--color-cat-cs)}.graph-legend-dot--chem{background:var(--color-cat-chem)}.graph-legend-dot--bio{background:var(--color-cat-bio)}.graph-legend-dot--stats{background:var(--color-cat-stats)}.graph-legend-dot--done{background:var(--color-sine);box-shadow:0 0 4px color-mix(in srgb, var(--color-sine) 50%, transparent)}.graph-node--done circle{stroke:var(--color-sine);stroke-width:3px;filter:drop-shadow(0 0 6px color-mix(in srgb, var(--color-sine) 60%, transparent))}.graph-tooltip-done{color:var(--color-sine);background:color-mix(in srgb, var(--color-sine) 10%, transparent);border-radius:var(--radius-sm);margin-top:4px;padding:1px 6px;font-size:.72rem;display:inline-block}.graph-search-wrap{margin-bottom:20px}.graph-search{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);width:100%;max-width:360px;color:var(--text-primary);font-size:.95rem;font-family:var(--font);padding:9px 14px;transition:border-color .15s}.graph-search::placeholder{color:var(--text-muted)}.graph-search:focus{border-color:var(--color-accent);outline:2px solid color-mix(in srgb, var(--color-accent) 40%, transparent);outline-offset:0}.graph-filters{flex-wrap:wrap;gap:8px;margin-bottom:10px;display:flex}.graph-filters--paths{margin-bottom:16px}.graph-filter-btn{border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--bg-card);color:var(--text-muted);font-size:.85rem;font-family:var(--font);cursor:pointer;padding:5px 14px;transition:background .15s,color .15s,border-color .15s}.graph-filter-btn:hover{border-color:var(--color-accent);color:var(--text-primary)}.graph-filter-btn:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.graph-filter-btn.active{background:var(--color-accent);border-color:var(--color-accent);color:#fff}.graph-path-select{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-primary);font-size:.88rem;font-family:var(--font);cursor:pointer;max-width:280px;padding:6px 12px;transition:border-color .15s}.graph-path-select:focus{border-color:var(--color-accent);outline:2px solid color-mix(in srgb, var(--color-accent) 40%, transparent);outline-offset:0}.graph-node--dim circle,.graph-node--dim text{opacity:.2}.graph-node--dim{pointer-events:none}.graph-node-link:has(.graph-node--dim){pointer-events:none}.graph-node--highlight circle{filter:drop-shadow(0 0 8px var(--color-sine));stroke-width:3px}.graph-node--highlighted circle{stroke:var(--color-wave);stroke-width:3px;filter:drop-shadow(0 0 8px var(--color-wave))}.color-hyp{color:var(--color-hyp)}.color-sine{color:var(--color-sine)}.color-cosine{color:var(--color-cosine)}.color-wave{color:var(--color-wave)}.color-vec-b{color:var(--color-vec-b)}.color-teal{color:var(--color-teal)}.color-subtract{color:var(--color-subtract)}.color-tangent{color:var(--color-tangent)}.color-cyan{color:var(--color-cyan)}.controls-row--wrap{flex-wrap:wrap;gap:16px}.controls-row--compact{gap:6px;margin-top:8px}.formula-flex-row{flex-wrap:wrap;justify-content:center;gap:24px;display:flex}.ht-key-input{border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg-card);width:110px;color:var(--color-wave);font-size:.8rem;font-family:var(--font);padding:4px 8px}.viz-hint{opacity:.65;text-align:center;margin:8px 0 0;font-size:.82rem}.gravity-param-label{color:var(--text-muted);white-space:nowrap;font-size:.85rem}.planet-btn-group{flex-wrap:wrap;gap:6px;display:flex}.btn-planet{background:var(--bg-card);color:var(--text-muted);border:1px solid var(--border);border-radius:var(--radius-pill);cursor:pointer;white-space:nowrap;align-items:center;gap:4px;min-height:36px;padding:6px 14px;font-size:.8rem;font-weight:600;transition:border-color .18s,color .18s,background .18s;display:inline-flex}.btn-planet:hover{border-color:var(--color-accent);color:var(--text-primary);background:var(--bg-card-hover)}.btn-planet--active{border-color:var(--color-accent);color:var(--color-accent);background:var(--bg-card-hover)}.progress-heading{letter-spacing:-.02em;color:var(--text-primary);margin-bottom:8px;font-size:clamp(1.6rem,4vw,2.2rem);font-weight:800}.progress-stat-line{color:var(--text-muted);margin-bottom:16px;font-size:1rem}.progress-stat-line strong{color:var(--text-primary);font-weight:700}.streak-badge{background:color-mix(in srgb, var(--color-hyp) 15%, transparent);border:1px solid color-mix(in srgb, var(--color-hyp) 40%, transparent);color:var(--color-hyp);border-radius:var(--radius-pill);align-items:center;gap:6px;margin-bottom:16px;padding:4px 14px 4px 10px;font-size:.9rem;font-weight:600;display:inline-flex}.streak-flame{font-size:1rem;line-height:1}.streak-count{font-size:1.05rem;font-weight:700}.streak-label{font-weight:500}.streak-calendar{max-width:400px;margin-bottom:16px}.streak-cal-grid{grid-template-rows:repeat(7,1fr);grid-template-columns:20px repeat(8,1fr);gap:3px;display:grid}.streak-cal-label{color:var(--text-muted);justify-content:flex-end;align-items:center;padding-right:2px;font-size:.65rem;line-height:1;display:flex}.streak-cal-cell{border-radius:var(--radius-xs);width:16px;height:16px}.cal-0{background:color-mix(in srgb, var(--color-accent) 10%, transparent)}.cal-1{background:color-mix(in srgb, var(--color-accent) 40%, transparent)}.cal-2{background:color-mix(in srgb, var(--color-accent) 70%, transparent)}.cal-3{background:var(--color-accent)}@media (width<=600px){.streak-cal-cell{width:12px;height:12px}}.quiz-summary-row{flex-wrap:wrap;align-items:center;gap:8px 20px;margin-top:12px;margin-bottom:4px;display:flex}.quiz-summary-stat{color:var(--text-muted);font-size:.9rem}.quiz-summary-stat strong{color:var(--text-primary);font-weight:700}.quiz-weak-areas{margin-top:16px}.quiz-weak-heading{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin:0 0 8px;font-size:.85rem;font-weight:600}.quiz-weak-cards{flex-wrap:wrap;gap:10px;display:flex}.quiz-weak-card{border-radius:var(--radius-md);color:var(--text-primary);background:#c0882014;border:1.5px solid #c08820;align-items:center;gap:8px;padding:8px 14px;font-size:.85rem;text-decoration:none;transition:background .15s,border-color .15s;display:flex}.quiz-weak-card:hover{background:#c0882029;border-color:#d9a030}.quiz-weak-title{font-weight:600}.quiz-weak-score{color:var(--text-muted);font-size:.8rem}.quiz-weak-action{color:var(--color-accent);margin-left:auto;font-size:.8rem;font-weight:600}.quiz-breakdown-toggle{margin-top:16px}.quiz-breakdown-toggle>summary{cursor:pointer;color:var(--color-accent);-webkit-user-select:none;user-select:none;font-size:.88rem;font-weight:600;list-style:none}.quiz-breakdown-toggle>summary::-webkit-details-marker{display:none}.quiz-breakdown-toggle>summary:before{content:"▸ "}.quiz-breakdown-toggle[open]>summary:before{content:"▾ "}.quiz-breakdown-table{border-collapse:collapse;width:100%;margin-top:10px;font-size:.85rem}.quiz-breakdown-table th{text-align:left;color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em;border-bottom:1.5px solid var(--border);padding:6px 10px;font-size:.78rem;font-weight:600}.quiz-breakdown-table td{border-bottom:1px solid var(--border);color:var(--text-primary);padding:8px 10px}.quiz-breakdown-table tbody tr:nth-child(2n){background:#6c63ff08}.quiz-breakdown-table a{color:var(--text-primary);font-weight:500;text-decoration:none}.quiz-breakdown-table a:hover{color:var(--color-accent)}.quiz-score-bar-wrap{background:var(--border);border-radius:var(--radius-sm);vertical-align:middle;width:60px;height:8px;margin-right:6px;display:inline-block;overflow:hidden}.quiz-score-bar{border-radius:var(--radius-sm);height:100%;transition:width .3s}.quiz-score-bar--red{background:#e05252}.quiz-score-bar--yellow{background:#d9a030}.quiz-score-bar--green{background:#3cb371}.quiz-score-fraction{color:var(--text-muted);vertical-align:middle;font-size:.8rem}@media (width<=600px){.quiz-breakdown-table th:nth-child(3),.quiz-breakdown-table td:nth-child(3),.quiz-breakdown-table th:nth-child(4),.quiz-breakdown-table td:nth-child(4){display:none}.quiz-weak-cards{flex-direction:column}}.progress-bar{background:var(--border);border-radius:var(--radius-sm);height:10px;overflow:hidden}.progress-fill{background:var(--color-accent);border-radius:var(--radius-sm);height:100%;transition:width .4s}.progress-paths{gap:16px;display:grid}.progress-path-item{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);flex-direction:column;gap:12px;padding:20px 24px;display:flex}.progress-path-header{justify-content:space-between;align-items:baseline;display:flex}.progress-path-title{color:var(--text-primary);font-size:.95rem;font-weight:700}.progress-path-stat{color:var(--text-muted);font-size:.8rem}.progress-path-done{color:var(--color-accent);font-size:.85rem;font-weight:600}.progress-categories{gap:24px;display:grid}.progress-category{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px 24px}.progress-category-header{justify-content:space-between;align-items:baseline;margin-bottom:10px;display:flex}.progress-category-name{color:var(--text-primary);font-size:.95rem;font-weight:700}.progress-category-stat{color:var(--text-muted);font-size:.8rem}.progress-concept-list{flex-direction:column;gap:6px;margin-top:14px;list-style:none;display:flex}.progress-concept-item{display:flex}.progress-concept-link{border-radius:var(--radius-md);color:var(--text-muted);align-items:center;gap:10px;width:100%;padding:6px 8px;font-size:.9rem;text-decoration:none;transition:background .15s,color .15s;display:flex}.progress-concept-link:hover{background:var(--bg-card-hover);color:var(--text-primary)}.progress-concept-link--done{color:var(--text-primary)}.progress-concept-check{text-align:center;width:18px;color:var(--color-sine);flex-shrink:0;font-size:.85rem}.progress-concept-link:not(.progress-concept-link--done) .progress-concept-check{color:var(--border)}.progress-concept-name{flex:1}.progress-recent-list{flex-direction:column;gap:8px;list-style:none;display:flex}.progress-recent-item{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);color:inherit;flex-direction:column;gap:2px;padding:12px 16px;text-decoration:none;transition:border-color .2s,background .2s;display:flex}.progress-recent-item:hover{background:var(--bg-card-hover);border-color:var(--color-accent)}.progress-recent-title{color:var(--text-primary);font-size:.95rem;font-weight:600}.progress-recent-sub{color:var(--text-muted);font-size:.82rem}.progress-empty-state{flex-direction:column;gap:16px;padding:32px 0;display:flex}.progress-empty-msg{color:var(--text-muted);font-size:1rem}.progress-congrats{text-align:center;padding:40px 0}.progress-congrats-icon{margin-bottom:12px;font-size:3rem}.progress-congrats-title{color:var(--color-sine);margin-bottom:8px;font-size:1.5rem;font-weight:800}.progress-congrats-sub{color:var(--text-muted);max-width:480px;margin:0 auto}.progress-heading-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:8px;display:flex}.progress-heading-row .progress-heading{margin-bottom:0}.progress-export-btn{border:1px solid var(--color-accent);color:var(--color-accent);border-radius:var(--radius-md);cursor:pointer;white-space:nowrap;background:0 0;flex-shrink:0;padding:8px 16px;font-size:.875rem;font-weight:600;transition:background .15s,color .15s}.progress-export-btn:hover{background:var(--color-accent);color:#fff}.progress-toast{background:var(--bg-card);border:1px solid var(--color-accent);color:var(--text-primary);border-radius:var(--radius-md);z-index:9999;pointer-events:none;opacity:0;text-align:center;max-width:calc(100vw - 48px);padding:12px 20px;font-size:.9rem;transition:opacity .2s,transform .2s;position:fixed;bottom:24px;left:50%;transform:translate(-50%)translateY(16px)}.progress-toast--visible{opacity:1;transform:translate(-50%)translateY(0)}.progress-toast--error{border-color:var(--color-subtract);color:var(--color-subtract)}.export-fallback{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);margin-bottom:16px;padding:12px 16px}.export-fallback p{color:var(--text-muted);margin:0 0 8px;font-size:.9rem}.export-fallback-input{box-sizing:border-box;background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;color:var(--text-primary);padding:6px 8px;font-family:monospace;font-size:.8rem}.import-confirm-banner{background:color-mix(in srgb, #f0a500 12%, var(--bg-card));border-radius:var(--radius-md);border:1px solid #f0a500;margin-bottom:24px;padding:16px 20px}.import-confirm-msg{color:var(--color-wave);margin:0 0 14px;font-size:.95rem;line-height:1.5}.import-confirm-actions{flex-wrap:wrap;gap:10px;display:flex}.dot-formula-row{margin-top:6px}.recommend-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px;display:grid}.recommend-card{background:var(--bg-card);border:1px solid var(--color-accent);border-radius:var(--radius-md);color:inherit;padding:16px;text-decoration:none;transition:border-color .2s,transform .2s;display:block}.recommend-card:hover{border-color:var(--color-sine);transform:translateY(-2px)}.recommend-card:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.recommend-card-title{color:var(--text-primary);margin-bottom:4px;font-size:.95rem;font-weight:700}.recommend-card-sub{color:var(--text-muted);margin-bottom:8px;font-size:.82rem}.recommend-card-reason{color:var(--color-accent);font-size:.75rem;font-weight:600}.review-card{background:var(--bg-card);border:1px solid var(--color-warning);border-radius:var(--radius-md);color:inherit;padding:16px;text-decoration:none;transition:border-color .2s,transform .2s;display:block}.review-card:hover{border-color:var(--color-warning-dim);transform:translateY(-2px)}.review-card:focus-visible{outline:2px solid var(--color-warning);outline-offset:2px}.review-card-title{color:var(--text-primary);margin-bottom:4px;font-size:.95rem;font-weight:700}.review-card-sub{color:var(--text-muted);margin-bottom:8px;font-size:.82rem}.review-card-age{color:var(--color-warning);font-size:.75rem;font-weight:600}.review-card-urgency{margin-top:4px;font-size:.73rem;font-weight:700}.review-card-urgency--overdue{color:var(--color-error,#e74c3c)}.section-sub{color:var(--text-muted);margin:0 0 16px;font-size:.9rem}.up-next-section{flex-wrap:wrap;align-items:center;gap:16px;max-width:1100px;margin:0 auto 48px;padding:0 24px;display:flex}.up-next-label{text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);white-space:nowrap;font-size:.8rem;font-weight:700}.up-next-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);color:inherit;flex-direction:column;gap:2px;min-width:200px;max-width:420px;padding:12px 16px;text-decoration:none;transition:border-color .2s,transform .2s;display:flex}.up-next-card:hover{border-color:var(--color-accent);transform:translateY(-2px)}.up-next-card:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.up-next-title{color:var(--text-primary);font-size:.9rem;font-weight:700}.up-next-sub{color:var(--text-muted);font-size:.78rem}.next-up-section{max-width:1100px;margin:0 auto 48px;padding:0 24px}.next-up-section h2{color:var(--text-primary);margin-bottom:16px;font-size:1.15rem;font-weight:700}.next-up-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;display:grid}.next-up-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);color:inherit;flex-direction:column;gap:6px;padding:16px 20px;text-decoration:none;transition:border-color .2s,transform .2s,box-shadow .2s;display:flex;position:relative}.next-up-card:hover{border-color:var(--color-accent);transform:translateY(-2px);box-shadow:0 4px 12px #6b6bff1f}.next-up-card:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.next-up-card--connection{border-left:3px solid var(--color-accent)}.next-up-card--path{border-left:3px solid #10b981}.next-up-card--category{border-left:3px solid #f59e0b}.next-up-reason{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);font-size:.72rem;font-weight:600}.next-up-card--connection .next-up-reason{color:var(--color-accent)}.next-up-card--path .next-up-reason{color:#10b981}.next-up-card--category .next-up-reason{color:#f59e0b}.next-up-title{color:var(--text-primary);font-size:.95rem;font-weight:700;line-height:1.3}.next-up-sub{color:var(--text-muted);font-size:.8rem;line-height:1.4}.next-up-meta{align-items:center;gap:8px;margin-top:4px;display:flex}@media (width<=600px){.next-up-grid{grid-template-columns:1fr}}.quiz-prompt{flex-wrap:wrap;gap:.75rem;margin-top:1rem;display:flex}.quiz-panel{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);max-width:640px;margin-top:1.5rem;padding:1.5rem}.quiz-progress{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.75rem;font-size:.78rem}.quiz-question{color:var(--text-primary);margin:0 0 1.25rem;font-size:1.05rem;font-weight:600;line-height:1.45}.quiz-options{flex-direction:column;gap:.5rem;margin-bottom:1rem;display:flex}.quiz-option{border:1px solid var(--border);border-radius:var(--radius-md);text-align:left;color:var(--text-primary);cursor:pointer;background:0 0;padding:.7rem 1rem;font-size:.95rem;transition:background .15s,border-color .15s}.quiz-option:hover:not(:disabled){border-color:var(--color-accent);background:#ffffff0f}.quiz-option:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.quiz-option--correct{background:color-mix(in srgb, var(--color-success) 15%, transparent);border-color:var(--color-success);color:var(--color-success)}.quiz-option--incorrect{background:color-mix(in srgb, var(--color-error) 15%, transparent);border-color:var(--color-error);color:var(--color-error)}.quiz-feedback{min-height:1.4em;margin-bottom:.75rem;font-size:.9rem}.quiz-feedback--correct{color:var(--color-success)}.quiz-feedback--incorrect{color:var(--color-error)}.quiz-explanation{color:var(--text-muted);margin-top:.5rem;font-size:.82rem;line-height:1.5;display:block}.quiz-next{margin-top:.25rem}.quiz-results{flex-direction:column;gap:1rem;display:flex}.quiz-results-score{color:var(--text-primary);font-size:1.4rem;font-weight:700}.quiz-results-bar{border-radius:var(--radius-sm);background:#ffffff1a;height:8px;overflow:hidden}.quiz-score-fill{background:var(--color-accent);border-radius:var(--radius-sm);height:100%;transition:width .4s}.quiz-results-actions{flex-wrap:wrap;gap:.75rem;display:flex}.quiz-review{flex-direction:column;gap:1.25rem;display:flex}.quiz-review-heading{color:var(--text-primary);margin:0;font-size:1.2rem;font-weight:700}.quiz-review-item{border-bottom:1px solid var(--border-color);flex-direction:column;gap:.5rem;padding-bottom:1rem;display:flex}.quiz-review-item:last-of-type{border-bottom:none}.quiz-review-question{color:var(--text-primary);font-weight:600}.quiz-review-num{color:var(--text-secondary);margin-right:.25rem}.quiz-review-options{flex-direction:column;gap:.4rem;display:flex}.quiz-review-options .quiz-option{cursor:default;pointer-events:none}.btn-accent{background:linear-gradient(135deg, var(--color-accent), #a855f7);color:#fff;border-radius:var(--radius-md);cursor:pointer;border:none;align-items:center;gap:8px;padding:14px 28px;font-size:1rem;font-weight:600;transition:opacity .2s;display:inline-flex}.btn-accent:hover{opacity:.85}.btn-accent:disabled{opacity:.5;cursor:default}.quiz-score-badge{border-radius:var(--radius-pill);color:var(--text-muted);background:#ffffff14;align-items:center;margin-left:4px;padding:2px 8px;font-size:.82rem;display:inline-flex}.badge-score{border-radius:var(--radius-pill);color:var(--color-accent);white-space:nowrap;background:#6c63ff26;border:1px solid #6c63ff4d;align-items:center;gap:.25rem;padding:.15rem .5rem;font-size:.72rem;font-weight:600;display:inline-flex}mark{color:inherit;border-radius:var(--radius-xs);background:#f0c04059;padding:0 1px}#sw-update-banner{z-index:9999;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-primary);white-space:nowrap;align-items:center;gap:.75rem;padding:.6rem 1rem;font-size:.9rem;display:flex;position:fixed;bottom:1rem;left:50%;transform:translate(-50%);box-shadow:0 4px 20px #0006}#sw-update-banner span{flex:1}#sw-update-banner button{border-radius:var(--radius-sm);cursor:pointer;border:none;padding:.3rem .75rem;font-size:.85rem;font-weight:600;transition:opacity .15s}#sw-update-banner button:hover{opacity:.85}#sw-refresh-btn{background:var(--color-accent);color:#fff}#sw-dismiss-btn{color:var(--text-muted,#888);background:0 0;padding:.3rem .5rem;font-size:1rem}@media (width<=480px){#sw-update-banner{border-bottom:none;border-left:none;border-right:none;border-radius:8px 8px 0 0;justify-content:center;bottom:0;left:0;right:0;transform:none}}.onboarding-hint{color:#fff;border-radius:var(--radius-sm);pointer-events:none;z-index:10;white-space:nowrap;opacity:1;background:#000000bf;align-items:center;gap:6px;padding:8px 12px;font-size:.85rem;transition:opacity .3s;display:inline-flex;position:absolute}.onboarding-hint--out{opacity:0}.onboarding-hint__x{pointer-events:auto;color:#ffffffb3;cursor:pointer;font-size:1rem;line-height:1;font-family:var(--font);background:0 0;border:none;padding:0 0 0 4px}.onboarding-hint__x:hover{color:#fff}@media (prefers-reduced-motion:reduce){.onboarding-hint{transition:none}}.theme-toggle{border-radius:var(--radius-md);border:1px solid var(--border);width:36px;height:36px;color:var(--text-muted);cursor:pointer;background:0 0;flex-shrink:0;justify-content:center;align-items:center;transition:border-color .2s,color .2s,background .2s;display:flex}.theme-toggle:hover{border-color:var(--color-accent);color:var(--text-primary);background:var(--bg-card)}.theme-toggle:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.theme-icon--sun{display:none}.theme-icon--moon,[data-theme=dark] .theme-icon--sun{display:block}[data-theme=dark] .theme-icon--moon{display:none}[data-theme=dark]{--bg-primary:#0d0d1f;--bg-card:#13132a;--bg-card-hover:#1a1a35;--color-accent:#6b6bff;--color-sine:#40d080;--color-cosine:#4aabf7;--color-hyp:#ff5e5e;--color-wave:#f0c040;--color-tangent:#ffb432;--color-subtract:#ee5a6f;--color-vec-b:#c77dff;--color-teal:#40e0a0;--color-cyan:#00d4ff;--text-primary:#e8e8ff;--text-muted:#9098a8;--border:#22224a;--color-warning:#f59e0b;--color-warning-dim:#d97706;--color-success:#22c55e;--color-error:#ef4444}[data-theme=light]{--bg-primary:#f8f9ff;--bg-card:#fff;--bg-card-hover:#eef0fa;--text-primary:#0d0d1f;--text-muted:#4e4e78;--border:#d0d0e8;--color-accent:#4a4acc;--color-sine:#1a8048;--color-cosine:#1464b4;--color-hyp:#c22;--color-wave:#906000;--color-tangent:#a06000;--color-subtract:#cc1a2e;--color-vec-b:#7c3aed;--color-teal:#1a9060;--color-cyan:#007aa0;--color-warning:#d97706;--color-warning-dim:#b45309;--color-success:#16a34a;--color-error:#dc2626;--color-cat-cs:#16a34a;--color-cat-calc:#ea580c;--color-cat-stats:#d97706}[data-theme=light] .card-badge--done{color:#1a6640;background:#d4f4e2}[data-theme=light] .card-badge--progress{color:#1a4480;background:#dce8ff}[data-theme=light] .card-badge--updated{color:#7a6b00;background:#fef9c3}[data-theme=light] .value-card--vectorb .value-card-value,[data-theme=light] #val-mag-b,[data-theme=light] #val-angle-b{color:#7c3aed}[data-theme=light] .value-card--resultant .value-card-value,[data-theme=light] #val-resultant-mag,[data-theme=light] #val-resultant-angle{color:#906000}[data-theme=light] .value-card--dotproduct .value-card-value,[data-theme=light] #val-dot-product,[data-theme=light] #val-angle-between,[data-theme=light] #val-projection{color:#007aa0}[data-theme=light] .value-card--crossproduct .value-card-value,[data-theme=light] #val-cross-product,[data-theme=light] #val-cross-angle,[data-theme=light] #val-cross-area{color:#1a9060}[data-theme=light] .value-card--dot .value-card-value,[data-theme=light] #dp-val-dot,[data-theme=light] #dp-val-angle,[data-theme=light] #dp-val-cos,[data-theme=light] #dp-val-proj{color:#1a8048}[data-theme=light] .btn-op-mode.active{color:#007aa0;background:#007aa026;border-color:#007aa0}.cmdp-wrapper{z-index:3000;justify-content:center;align-items:flex-start;padding:15vh 16px 16px;display:flex;position:fixed;inset:0}.cmdp-backdrop{opacity:0;background:#0009;transition:opacity .15s;position:absolute;inset:0}.cmdp-wrapper--open .cmdp-backdrop{opacity:1}.cmdp-dialog{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-xl);opacity:0;flex-direction:column;width:100%;max-width:560px;max-height:70vh;transition:opacity .15s,transform .15s;display:flex;position:relative;overflow:hidden;transform:translateY(-8px)scale(.98);box-shadow:0 20px 60px #00000080}.cmdp-wrapper--open .cmdp-dialog{opacity:1;transform:translateY(0)scale(1)}.cmdp-header{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:14px 16px;display:flex}.cmdp-search-icon{color:var(--text-muted);flex-shrink:0}.cmdp-input{color:var(--text-primary);font-size:1rem;font-family:var(--font);background:0 0;border:none;outline:none;flex:1;line-height:1.5}.cmdp-input::placeholder{color:var(--text-muted)}.cmdp-esc{background:var(--bg-card-hover);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-muted);white-space:nowrap;box-shadow:0 1px 0 var(--border);flex-shrink:0;justify-content:center;align-items:center;padding:2px 8px;font-family:monospace;font-size:.72rem;display:inline-flex}.cmdp-results{max-height:calc(70vh - 110px);padding:6px;list-style:none;overflow-y:auto}.cmdp-empty{text-align:center;color:var(--text-muted);padding:24px 16px;font-size:.9rem}.cmdp-section-label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);padding:8px 12px 4px;font-size:.75rem;font-weight:600}.cmdp-result{border-radius:var(--radius-md);cursor:pointer;align-items:center;gap:12px;padding:10px 12px;transition:background .1s;display:flex}.cmdp-result--active{background:var(--bg-card-hover)}.cmdp-result-icon{border-radius:var(--radius-md);color:#fff;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.cmdp-cat-mathematics{color:var(--color-cat-math);background:#6b6bff33}.cmdp-cat-physics{color:var(--color-cat-physics);background:#4aabf733}.cmdp-cat-computer-science{color:var(--color-cat-cs);background:#22c55e33}.cmdp-cat-chemistry{color:var(--color-cat-chem);background:#f0c04033}.cmdp-cat-biology{color:var(--color-cat-bio);background:#ff5e5e33}.cmdp-cat-path{color:var(--color-teal);background:#40e0a033}.cmdp-cat-page{color:var(--text-muted);background:#757d8a33}.cmdp-cat-action{color:#f59e0b;background:#fbbf2433}.cmdp-result-text{flex-direction:column;gap:2px;min-width:0;display:flex}.cmdp-result-title{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:.9rem;font-weight:500;overflow:hidden}.cmdp-result-title mark{color:inherit;border-radius:var(--radius-xs);background:#6b6bff4d;padding:0 1px}.cmdp-done{color:var(--color-success);margin-left:6px;font-size:.75rem}.cmdp-result-meta{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:.75rem;overflow:hidden}.cmdp-footer{border-top:1px solid var(--border);align-items:center;gap:16px;padding:8px 16px;display:flex}.cmdp-hint{color:var(--text-muted);align-items:center;gap:4px;font-size:.72rem;display:flex}.cmdp-hint kbd{background:var(--bg-card-hover);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-muted);box-shadow:0 1px 0 var(--border);justify-content:center;align-items:center;min-width:20px;padding:1px 5px;font-family:monospace;font-size:.68rem;display:inline-flex}.nav-search-btn{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-muted);font-size:.8rem;font-family:var(--font);cursor:pointer;align-items:center;gap:6px;margin-right:4px;padding:5px 10px;transition:border-color .2s,color .2s;display:flex}.nav-search-btn:hover,.nav-search-btn:focus-visible{border-color:var(--color-accent);color:var(--text-primary)}.nav-search-btn kbd{background:var(--bg-card-hover);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-muted);box-shadow:0 1px 0 var(--border);align-items:center;padding:1px 5px;font-family:monospace;font-size:.68rem;display:inline-flex}@media (width<=520px){.cmdp-wrapper{padding:10vh 8px 8px}.cmdp-dialog{border-radius:var(--radius-lg);max-height:80vh}.cmdp-results{max-height:calc(80vh - 110px)}.cmdp-footer,.nav-search-btn kbd{display:none}.nav-search-btn{padding:5px 8px}}.shortcuts-wrapper{z-index:2000;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.shortcuts-backdrop{opacity:0;background:#0009;transition:opacity .2s;position:absolute;inset:0}.shortcuts-wrapper--open .shortcuts-backdrop{opacity:1}.shortcuts-modal{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-xl);opacity:0;width:100%;max-width:480px;max-height:90vh;transition:opacity .2s,transform .2s;position:relative;overflow-y:auto;transform:translateY(12px)scale(.97);box-shadow:0 20px 60px #00000080}.shortcuts-wrapper--open .shortcuts-modal{opacity:1;transform:translateY(0)scale(1)}.shortcuts-modal__header{border-bottom:1px solid var(--border);background:var(--bg-card);z-index:1;justify-content:space-between;align-items:center;padding:18px 20px 14px;display:flex;position:sticky;top:0}.shortcuts-modal__title{letter-spacing:.02em;color:var(--text-primary);margin:0;font-size:1rem;font-weight:700}.shortcuts-modal__close{color:var(--text-muted);border-radius:var(--radius-sm);background:0 0;border:none;padding:4px 8px;font-size:1.5rem;line-height:1;transition:color .15s,background .15s}.shortcuts-modal__close:hover,.shortcuts-modal__close:focus-visible{color:var(--text-primary);background:var(--bg-card-hover);outline:2px solid var(--color-accent);outline-offset:2px}.shortcuts-modal__body{flex-direction:column;gap:20px;padding:16px 20px 20px;display:flex}.shortcuts-group__label{letter-spacing:.1em;text-transform:uppercase;color:var(--color-accent);margin:0 0 10px;font-size:.72rem;font-weight:700}.shortcuts-grid{grid-template-columns:auto 1fr;gap:8px 16px;display:grid}.shortcuts-keys{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.shortcuts-keys kbd{background:var(--bg-card-hover);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);white-space:nowrap;box-shadow:0 1px 0 var(--border);justify-content:center;align-items:center;min-width:28px;padding:2px 8px;font-family:monospace;font-size:.78rem;display:inline-flex}.shortcuts-sep{color:var(--text-muted);font-size:.75rem}.shortcuts-action{color:var(--text-muted);align-self:center;font-size:.85rem}@media (width<=480px){.shortcuts-modal{border-radius:var(--radius-lg)}}.feedback-trigger{z-index:9000;background:var(--color-accent);color:#fff;border-radius:var(--radius-pill);border:none;align-items:center;gap:.4rem;padding:.55rem 1rem .55rem .85rem;font-size:.875rem;font-weight:600;transition:background .15s,transform .15s,box-shadow .15s;display:flex;position:fixed;bottom:1.5rem;right:1.5rem;box-shadow:0 4px 16px #00000059}.feedback-trigger:hover,.feedback-trigger:focus-visible{background:color-mix(in srgb, var(--color-accent) 80%, #fff 20%);outline:2px solid var(--color-accent);outline-offset:2px;transform:translateY(-2px);box-shadow:0 6px 20px #00000073}.feedback-modal{z-index:9100;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.feedback-modal[hidden]{display:none}.feedback-modal-inner{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);flex-direction:column;gap:1rem;width:90%;max-width:480px;padding:2rem;display:flex;position:relative}.feedback-modal-close{color:var(--text-muted);border-radius:var(--radius-sm);background:0 0;border:none;padding:4px 8px;font-size:1.5rem;line-height:1;transition:color .15s,background .15s;position:absolute;top:.75rem;right:.75rem}.feedback-modal-close:hover,.feedback-modal-close:focus-visible{color:var(--text-primary);background:var(--bg-card-hover);outline:2px solid var(--color-accent);outline-offset:2px}.feedback-modal-inner h2{color:var(--text-primary);margin:0;font-size:1.2rem}#feedback-form{flex-direction:column;gap:.75rem;display:flex}#feedback-form label{color:var(--text-muted);font-size:.875rem}.feedback-type-group{flex-wrap:wrap;gap:.5rem;display:flex}.feedback-type-group label{background:var(--bg-card-hover);border:1px solid var(--border);border-radius:var(--radius-pill);color:var(--text-primary);cursor:pointer;align-items:center;gap:.35rem;padding:.3rem .8rem;font-size:.82rem;transition:border-color .15s,background .15s;display:flex}.feedback-type-group label:has(input:checked){border-color:var(--color-accent);background:color-mix(in srgb, var(--color-accent) 15%, transparent);color:var(--color-accent)}.feedback-type-group input[type=radio]{accent-color:var(--color-accent)}#feedback-form textarea{resize:vertical;background:var(--bg-card-hover);border:1px solid var(--border);border-radius:var(--radius-md);min-height:100px;color:var(--text-primary);font-family:var(--font);width:100%;padding:.65rem .75rem;font-size:.875rem;line-height:1.5;transition:border-color .15s}#feedback-form textarea:focus{border-color:var(--color-accent);outline:2px solid color-mix(in srgb, var(--color-accent) 40%, transparent);outline-offset:0}.feedback-char-count{color:var(--text-muted);text-align:right;margin-top:-.5rem;font-size:.75rem}#feedback-form input[type=email]{background:var(--bg-card-hover);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-primary);font-family:var(--font);width:100%;padding:.55rem .75rem;font-size:.875rem;transition:border-color .15s}#feedback-form input[type=email]:focus{border-color:var(--color-accent);outline:2px solid color-mix(in srgb, var(--color-accent) 40%, transparent);outline-offset:0}.feedback-form-actions{justify-content:flex-end;display:flex}#feedback-status{border-radius:var(--radius-sm);min-height:1.2em;font-size:.85rem}.feedback-status--error{color:var(--color-error)}.feedback-status--success{color:var(--color-success)}@media (width<=600px){.feedback-modal-inner{width:calc(100% - 2rem);margin:1rem;padding:1.5rem}}.footer-feedback-link{color:var(--text-muted);font-size:inherit;cursor:pointer;background:0 0;border:none;padding:0;text-decoration:none;transition:color .15s}.nav-auth{flex-shrink:0;align-items:center;gap:.5rem;display:flex}.nav-auth-btn{border:1px solid var(--border);color:var(--text-muted);border-radius:var(--radius-pill);cursor:pointer;white-space:nowrap;background:0 0;padding:.3rem .75rem;font-size:.8rem;font-weight:500;transition:border-color .15s,color .15s,background .15s}.nav-auth-btn:hover,.nav-auth-btn:focus-visible{border-color:var(--color-accent);color:var(--color-accent);outline:2px solid var(--color-accent);outline-offset:2px;background:0 0}.nav-user-email{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;max-width:140px;font-size:.78rem;overflow:hidden}@media (width<=640px){.nav-user-email{display:none}.nav-auth{gap:0}}.auth-modal{z-index:9200;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.auth-modal[hidden]{display:none}.auth-modal-inner{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);flex-direction:column;gap:.9rem;width:92%;max-width:400px;padding:2rem;display:flex;position:relative}.auth-modal-close{color:var(--text-muted);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:none;padding:4px 8px;font-size:1.5rem;line-height:1;transition:color .15s,background .15s;position:absolute;top:.75rem;right:.75rem}.auth-modal-close:hover,.auth-modal-close:focus-visible{color:var(--text-primary);background:var(--bg-card-hover);outline:2px solid var(--color-accent);outline-offset:2px}.auth-tabs{border-bottom:1px solid var(--border);gap:.25rem;margin-bottom:.25rem;padding-bottom:.75rem;display:flex}.auth-tab{color:var(--text-muted);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:none;padding:.35rem .75rem;font-size:.9rem;font-weight:500;transition:color .15s,background .15s}.auth-tab--active{color:var(--text-primary);background:var(--bg-card-hover)}.auth-tab:hover:not(.auth-tab--active),.auth-tab:focus-visible{color:var(--text-primary);outline:2px solid var(--color-accent);outline-offset:2px}.auth-modal-title{color:var(--text-primary);margin:0;font-size:1.1rem}#auth-form{flex-direction:column;gap:.6rem;display:flex}#auth-form label{color:var(--text-muted);font-size:.82rem}#auth-form input[type=email],#auth-form input[type=password],#auth-form input[type=text],.reset-password-box input[type=password],.reset-password-box input[type=text]{background:var(--bg-card-hover);border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;color:var(--text-primary);box-sizing:border-box;padding:.55rem .75rem;font-size:.9rem;transition:border-color .15s}.password-field{align-items:center;display:flex;position:relative}.password-field input{padding-right:2.5rem}.password-toggle{cursor:pointer;color:var(--text-muted);border-radius:var(--radius-sm);background:0 0;border:none;justify-content:center;align-items:center;padding:.25rem;transition:color .15s;display:flex;position:absolute;right:.5rem}.password-toggle:hover{color:var(--text-primary)}.password-toggle:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}#auth-form input:focus{border-color:var(--color-accent);outline:2px solid color-mix(in srgb, var(--color-accent) 40%, transparent);outline-offset:0}.auth-submit{width:100%;margin-top:.25rem}#auth-status{min-height:1.2em;font-size:.82rem}.auth-status--error{color:var(--color-error)}.auth-status--success{color:var(--color-success)}.auth-divider{color:var(--text-muted);align-items:center;gap:.75rem;margin:.5rem 0;font-size:.8rem;display:flex}.auth-divider:before,.auth-divider:after{content:"";background:var(--border);flex:1;height:1px}.auth-google-btn{justify-content:center;min-height:44px;display:flex}.auth-privacy{color:var(--text-muted);text-align:center;margin:0;font-size:.75rem}.footer-feedback-link:hover,.footer-feedback-link:focus-visible{color:var(--color-accent);text-underline-offset:3px;text-decoration:underline}.teach-mode-bar{max-width:1100px;margin:0 auto;padding:12px 24px}.teach-exit-link{color:var(--text-muted);font-size:.875rem;transition:color .2s}.teach-exit-link:hover{color:var(--text-primary)}.teach-mode .concept-header h1{font-size:2.4rem}.teach-mode .step-content p{font-size:1.1rem}.teach-mode .canvas-container{min-height:70vh}.teach-btn{color:var(--text-muted);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;background:0 0;align-items:center;gap:6px;margin-left:auto;padding:6px 10px;font-size:.8rem;text-decoration:none;transition:color .2s,border-color .2s,background .2s;display:inline-flex}.teach-btn:hover{color:var(--text-primary);border-color:var(--color-accent);background:var(--bg-card-hover)}.teach-btn:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.embed-wrapper{background:var(--bg-primary);flex-direction:column;width:100vw;height:100vh;display:flex;overflow:hidden}.embed-canvas-area{flex:1;min-height:0;position:relative}.embed-canvas-area canvas{width:100%;height:100%;display:block}.embed-controls{background:var(--bg-card);border-top:1px solid var(--border);flex-shrink:0;align-items:center;gap:10px;padding:8px 12px;display:flex}.embed-controls .speed-wrap{color:var(--text-muted);align-items:center;gap:6px;font-size:.8rem;display:flex}.embed-controls .btn-control{padding:4px 10px;font-size:.8rem}.embed-branding{color:var(--text-muted);opacity:.7;margin-left:auto;font-size:.7rem;text-decoration:none;transition:opacity .2s}.embed-branding:hover{opacity:1;color:var(--color-accent)}.embed-error{height:100vh;color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:12px;font-size:.9rem;display:flex}.embed-error a{color:var(--color-accent)}.embed-btn{color:var(--text-muted);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;background:0 0;align-items:center;gap:6px;padding:6px 10px;font-size:.8rem;transition:color .2s,border-color .2s,background .2s;display:inline-flex}.embed-btn:hover{color:var(--text-primary);border-color:var(--color-accent);background:var(--bg-card-hover)}.embed-btn:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.insights-section{padding-top:0}.insights-toggle{cursor:pointer}.insights-toggle>summary{cursor:pointer;-webkit-user-select:none;user-select:none;list-style:none}.insights-toggle>summary::-webkit-details-marker{display:none}.insights-heading:after{content:" ▾";color:var(--text-muted);font-size:.7em}.insights-toggle:not([open]) .insights-heading:after{content:" ▸"}.insights-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-top:16px;display:grid}.insight-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px 24px}.insight-card--wide{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);margin-top:16px;padding:20px 24px}.insight-card-title{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px;font-size:.8rem;font-weight:600}.synced-badge{text-transform:none;letter-spacing:0;color:var(--color-accent);background:color-mix(in srgb, var(--color-accent) 12%, transparent);border-radius:var(--radius-pill);vertical-align:middle;margin-left:8px;padding:2px 8px;font-size:.65rem;font-weight:500;display:inline-block}.insight-card-value{color:var(--text-primary);font-size:2rem;font-weight:800;line-height:1}.insight-card-label{color:var(--text-muted);margin-top:4px;font-size:.85rem}.velocity-up{color:var(--color-success);font-weight:600}.velocity-down{color:var(--color-error);font-weight:600}.velocity-flat{color:var(--text-muted)}.heatmap-grid{grid-template-rows:repeat(7,14px);grid-auto-columns:14px;grid-auto-flow:column;gap:2px;margin-top:8px;display:grid}.heatmap-cell{border-radius:var(--radius-sm);background:var(--border);width:14px;height:14px}.heatmap-cell[data-intensity="1"]{background:color-mix(in srgb, var(--color-accent) 35%, var(--border))}.heatmap-cell[data-intensity="2"]{background:color-mix(in srgb, var(--color-accent) 65%, var(--border))}.heatmap-cell[data-intensity="3"]{background:var(--color-accent)}.insight-cat-row{align-items:center;gap:8px;margin-bottom:6px;display:flex}.insight-cat-label{color:var(--text-primary);flex-shrink:0;min-width:100px;font-size:.8rem}.insight-cat-bar-wrap{background:var(--border);border-radius:var(--radius-sm);flex:1;height:8px;overflow:hidden}.insight-cat-bar{background:var(--color-accent);border-radius:var(--radius-sm);height:100%;transition:width .4s}.insight-cat-stat{color:var(--text-muted);text-align:right;min-width:36px;font-size:.75rem}.difficulty-bars{flex-direction:column;gap:6px;display:flex}.difficulty-bar-row{align-items:center;gap:8px;display:flex}.difficulty-bar-label{color:var(--text-primary);flex-shrink:0;min-width:90px;font-size:.8rem}.difficulty-bar-wrap{background:var(--border);border-radius:var(--radius-sm);flex:1;height:8px;overflow:hidden}.difficulty-bar-fill{border-radius:var(--radius-sm);height:100%;transition:width .4s}.difficulty-bar-fill--beginner{background:var(--color-accent)}.difficulty-bar-fill--intermediate{background:color-mix(in srgb, var(--color-accent) 60%, var(--text-primary))}.difficulty-bar-fill--advanced{background:color-mix(in srgb, var(--color-accent) 30%, var(--text-primary))}.difficulty-bar-stat{color:var(--text-muted);text-align:right;min-width:36px;font-size:.75rem}.sparkline-svg{width:100%;max-width:200px;height:40px;margin:8px 0 4px}.insight-card--timeline .timeline-chart-svg{width:100%;height:auto;margin:8px 0 4px}.insight-card--timeline .timeline-chart-svg circle{cursor:pointer;transition:r .15s}.insight-card--timeline .timeline-chart-svg circle:hover{r:5;fill:var(--color-accent)}.timeline-chart-labels{color:var(--text-muted);justify-content:space-between;margin-bottom:4px;font-size:.7rem;display:flex}@media (width<=600px){.insights-grid{grid-template-columns:1fr}.insight-cat-label{min-width:72px}}@media print{.nav,.footer,.skip-link,.share-bar,.nav-toggle,.theme-toggle,.feedback-trigger,.feedback-modal,.scroll-to-top,.onboarding-hint,#sw-update-banner,.completion-cta,.canvas-container,#concept-controls,.fullscreen-overlay,.teach-btn,.bookmark-btn,.quiz-panel,.quiz-prompt,.shortcuts-modal,.shortcuts-wrapper,.shortcuts-backdrop,.auth-modal,.auth-modal-inner,.completion-done{display:none!important}:root,[data-theme=dark]{--bg-primary:#fff!important;--bg-card:#fff!important;--bg-card-hover:#f5f5f5!important;--text-primary:#000!important;--text-muted:#555!important;--border:#ddd!important;--color-accent:#4a4acc!important}body{max-width:100%;margin:0;padding:0;font-size:12pt;line-height:1.5;color:#000!important;background:#fff!important}*{box-shadow:none!important;text-shadow:none!important}.concept-header h1{margin-bottom:4pt;font-size:20pt}.concept-header-sub{color:#333;font-size:12pt}.steps-section{margin:12pt 0}.step-item{break-inside:avoid;page-break-inside:avoid;border-bottom:1px solid #ddd;padding:8pt 0;font-size:12pt}.step-item h3{margin-bottom:4pt;font-size:14pt}.takeaway-card{break-inside:avoid;page-break-inside:avoid;border:1px solid #ddd;margin-bottom:8pt;padding:10pt;background:#fff!important}.formula-box{break-inside:avoid;page-break-inside:avoid;border:1px solid #999;margin:10pt 0;padding:10pt;font-size:13pt;background:#f9f9f9!important}.connections-section{margin:12pt 0}.connection-card{break-inside:avoid;page-break-inside:avoid;border:1px solid #ddd;margin-bottom:6pt;padding:8pt;background:#fff!important}h1,h2,h3,h4{page-break-after:avoid;color:#000!important}h2{font-size:16pt}h3{font-size:14pt}a[href]:after{content:" (" attr(href) ")";color:#666;font-size:.8em}a.connection-card[href]:after,a.tag[href]:after,a.breadcrumb-link[href]:after,nav a[href]:after{content:none}.concept-page,.concept-content,main,#app{width:100%!important;max-width:100%!important;margin:0!important;padding:0!important}p,li{orphans:3;widows:3}}.scroll-to-top{z-index:8999;background:var(--bg-card);width:40px;height:40px;color:var(--text-primary);border:1px solid var(--border);cursor:pointer;opacity:0;visibility:hidden;border-radius:50%;justify-content:center;align-items:center;transition:opacity .2s,visibility .2s,background .15s,transform .15s;display:flex;position:fixed;bottom:5rem;right:1.5rem;box-shadow:0 2px 8px #00000026}.scroll-to-top--visible{opacity:1;visibility:visible}.scroll-to-top:hover,.scroll-to-top:focus-visible{background:var(--color-accent);color:#fff;outline:2px solid var(--color-accent);outline-offset:2px;transform:translateY(-2px)}@media (prefers-reduced-motion:reduce){.scroll-to-top{transition:none}}@media print{.scroll-to-top{display:none!important}}.reengagement-banner{background:var(--bg-card);border:1px solid var(--color-accent);border-radius:var(--radius-md);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem;padding:.75rem 1.25rem;display:flex}.reengagement-text{color:var(--text-primary);flex:auto;margin:0;font-size:.95rem}.reengagement-actions{flex-shrink:0;align-items:center;gap:.75rem;display:flex}.reengagement-btn{white-space:nowrap;border-radius:var(--radius-sm);padding:.4rem 1rem;font-size:.85rem;text-decoration:none}.reengagement-dismiss{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:.25rem;font-size:1.1rem;line-height:1}.reengagement-dismiss:hover{color:var(--text-primary)}.streak-toast{background:var(--bg-card);border:1px solid var(--color-warning);color:var(--text-primary);border-radius:var(--radius-md);opacity:0;z-index:9999;cursor:pointer;pointer-events:auto;padding:.75rem 1.25rem;font-size:.95rem;font-weight:500;transition:opacity .3s,transform .3s;position:fixed;bottom:1.5rem;left:50%;transform:translate(-50%)translateY(1rem);box-shadow:0 4px 20px #0000004d}.streak-toast--visible{opacity:1;transform:translate(-50%)translateY(0)}.streak-toast-flame{margin-right:.35rem}.analytics-heading{margin-bottom:.25rem;font-size:2rem}.analytics-note{color:var(--text-muted);margin-bottom:1.5rem;font-size:.85rem}.analytics-content{flex-direction:column;gap:2rem;display:flex}.analytics-loading{text-align:center;color:var(--text-muted);padding:3rem 0}.analytics-error{text-align:center;color:var(--color-error);padding:2rem}.analytics-empty{color:var(--text-muted);padding:1rem 0;font-style:italic}.analytics-section{border-bottom:1px solid var(--border);padding-bottom:1rem}.analytics-section:last-child{border-bottom:none}.analytics-section-title{margin-bottom:1rem;font-size:1.25rem}.analytics-cards{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:1rem;display:grid}.analytics-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);text-align:center;padding:1.25rem 1rem}.analytics-card--accent{border-color:var(--color-accent)}.analytics-card-value{color:var(--text-primary);margin-bottom:.25rem;font-size:1.75rem;font-weight:700}.analytics-card-value a{color:var(--color-accent);text-decoration:none}.analytics-card-value a:hover{text-decoration:underline}.analytics-card-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em;font-size:.8rem}.analytics-table-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}.analytics-table{border-collapse:collapse;width:100%;font-size:.9rem}.analytics-table th,.analytics-table td{text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;padding:.6rem .75rem}.analytics-table th{color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em;-webkit-user-select:none;user-select:none;font-size:.8rem;font-weight:600}.analytics-table th[data-sort]:after{content:" ↕";opacity:.3;font-size:.75rem}.analytics-table th.analytics-sort-asc:after{content:" ↑";opacity:1}.analytics-table th.analytics-sort-desc:after{content:" ↓";opacity:1}.analytics-table tbody tr:hover{background:var(--bg-card-hover)}.analytics-table a{color:var(--color-accent);text-decoration:none}.analytics-table a:hover{text-decoration:underline}.analytics-rate--green{color:var(--color-success);font-weight:600}.analytics-rate--yellow{color:var(--color-warning);font-weight:600}.analytics-rate--red{color:var(--color-error);font-weight:600}.analytics-dropoff-controls{align-items:center;gap:.5rem;margin-bottom:1rem;display:flex}.analytics-dropoff-controls label{font-size:.9rem;font-weight:500}.analytics-dropoff-controls select{background:var(--bg-card);color:var(--text-primary);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.4rem .6rem;font-size:.9rem}.analytics-bar-legend{color:var(--text-muted);gap:1rem;margin-bottom:.75rem;font-size:.8rem;display:flex}.analytics-legend-item{align-items:center;gap:.3rem;display:flex}.analytics-legend-swatch{border-radius:var(--radius-xs);width:12px;height:12px;display:inline-block}.analytics-legend-swatch--view{background:var(--color-accent)}.analytics-legend-swatch--exit{background:var(--color-error);opacity:.7}.analytics-bar-row{align-items:center;gap:.75rem;padding:.35rem 0;display:flex}.analytics-bar-row--warn{border-radius:var(--radius-sm);background:#ef44440f;padding-left:.5rem;padding-right:.5rem}.analytics-bar-label{min-width:4rem;color:var(--text-muted);flex-shrink:0;font-size:.8rem}.analytics-bar-track{background:var(--bg-card);border-radius:var(--radius-xs);flex:1;height:20px;display:flex;position:relative;overflow:hidden}.analytics-bar-fill{border-radius:var(--radius-xs);height:100%;transition:width .3s}.analytics-bar-fill--view{background:var(--color-accent)}.analytics-bar-fill--exit{background:var(--color-error);opacity:.7}.analytics-bar-stat{color:var(--text-muted);white-space:nowrap;min-width:6rem;font-size:.75rem}.analytics-badge{border-radius:var(--radius-pill);text-transform:uppercase;letter-spacing:.03em;vertical-align:middle;margin-left:.3rem;padding:.15rem .45rem;font-size:.7rem;font-weight:600;display:inline-block}.analytics-badge--warn{color:var(--color-error);background:#ef444426}.analytics-badge--gap{color:var(--color-warning);background:#f59e0b26}@media (width<=600px){.analytics-cards{grid-template-columns:repeat(2,1fr)}.analytics-card-value{font-size:1.35rem}.analytics-bar-stat{display:none}.analytics-bar-label{min-width:3rem}.analytics-heading{font-size:1.5rem}}
