@font-face{font-family:Sora;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/sora/sora-700.woff2)format("woff2")}@font-face{font-family:Sora;font-style:normal;font-weight:800;font-display:swap;src:url(/fonts/sora/sora-800.woff2)format("woff2")}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg-primary:#fff;--bg-subtle:#f4f7fa;--bg-card:#fff;--bg-elevated:#f1f5f9;--text-primary:#0f172a;--text-secondary:#334155;--text-muted:#64748b;--text-faint:#94a3b8;--border-light:#e2e8f0;--border-subtle:#cbd5e1;--border-focus:#0186cc;--accent-primary:#0186cc;--accent-hover:#026aa3;--accent-light:#f0f9ff;--accent-border:#bae6fd;--accent-ring:#0186cc33;--accent-solid:#0186cc;--accent-solid-hover:#026aa3;--accent-on-solid:#fff;--accent-on-solid-soft:#fff;--surface-header:#fffffff2;--surface-glass:#ffffffeb;--surface-glass-strong:#fffffff0;--scrim:#0f172a66;--scrim-strong:#0f172a73;--bg-primary-fade:#fff0;--bg-subtle-fade:#f4f7fa00;--scroll-shadow:#0f172a29;--btn-contrast-bg:#0f172a;--btn-contrast-text:#fff;--toast-bg:#0f172aeb;--toast-text:#fff;--shadow-popover:0 10px 30px -4px #00000029, 0 4px 6px -2px #0000000d;--status-stable-bg:#f0fdf4;--status-stable-text:#166534;--status-stable-border:#bbf7d0;--status-warn-bg:#fffbeb;--status-warn-text:#92400e;--status-warn-border:#fde68a;--status-danger-bg:#fef2f2;--status-danger-text:#991b1b;--status-danger-border:#fecaca;--tint-green-bg:var(--accent-light);--tint-green-fg:var(--accent-primary);--tint-orange-bg:var(--accent-light);--tint-orange-fg:var(--accent-primary);--tint-purple-bg:var(--accent-light);--tint-purple-fg:var(--accent-primary);--tint-amber-bg:var(--accent-light);--tint-amber-fg:var(--accent-primary);--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;--font-display:"Sora", var(--font-sans);--max-width:1200px;--article-width:820px;--header-height:72px;--radius-sm:6px;--radius-md:10px;--radius-lg:18px;--shadow-sm:0 2px 8px -4px #0f233c1a;--shadow-md:0 8px 24px -12px #0f233c2e;--shadow-lg:0 24px 64px -24px #0f233c38}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg-primary:#111a2e;--bg-subtle:#0b1220;--bg-card:#111a2e;--bg-elevated:#1c2740;--text-primary:#f1f5f9;--text-secondary:#cbd5e1;--text-muted:#94a3b8;--text-faint:#64748b;--border-light:#253449;--border-subtle:#334155;--border-focus:#38bdf8;--accent-primary:#4cb8f5;--accent-hover:#7dd3fc;--accent-light:#16283d;--accent-border:#1e4b6b;--accent-ring:#4cb8f547;--accent-on-solid-soft:#ffffff8c;--status-stable-bg:#0d2a1c;--status-stable-text:#6ee7b7;--status-stable-border:#1c5137;--status-warn-bg:#2c2109;--status-warn-text:#fcd34d;--status-warn-border:#5c4410;--status-danger-bg:#2c1214;--status-danger-text:#fca5a5;--status-danger-border:#5c2226;--surface-header:#111a2eeb;--surface-glass:#1c2740e6;--surface-glass-strong:#1c2740f0;--scrim:#02061099;--scrim-strong:#020610ad;--bg-primary-fade:#111a2e00;--bg-subtle-fade:#0b122000;--scroll-shadow:#00000080;--btn-contrast-bg:#e2e8f0;--btn-contrast-text:#0b1220;--toast-bg:#e2e8f0f2;--toast-text:#0b1220;--shadow-sm:0 1px 2px 0 #0006;--shadow-md:0 4px 6px -1px #00000080, 0 2px 4px -2px #0006;--shadow-lg:0 10px 15px -3px #0000008c, 0 4px 6px -4px #0006;--shadow-popover:0 10px 30px -4px #0009, 0 4px 6px -2px #0006}}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg-primary:#111a2e;--bg-subtle:#0b1220;--bg-card:#111a2e;--bg-elevated:#1c2740;--text-primary:#f1f5f9;--text-secondary:#cbd5e1;--text-muted:#94a3b8;--text-faint:#64748b;--border-light:#253449;--border-subtle:#334155;--border-focus:#38bdf8;--accent-primary:#4cb8f5;--accent-hover:#7dd3fc;--accent-light:#16283d;--accent-border:#1e4b6b;--accent-ring:#4cb8f547;--accent-on-solid-soft:#ffffff8c;--status-stable-bg:#0d2a1c;--status-stable-text:#6ee7b7;--status-stable-border:#1c5137;--status-warn-bg:#2c2109;--status-warn-text:#fcd34d;--status-warn-border:#5c4410;--status-danger-bg:#2c1214;--status-danger-text:#fca5a5;--status-danger-border:#5c2226;--surface-header:#111a2eeb;--surface-glass:#1c2740e6;--surface-glass-strong:#1c2740f0;--scrim:#02061099;--scrim-strong:#020610ad;--bg-primary-fade:#111a2e00;--bg-subtle-fade:#0b122000;--scroll-shadow:#00000080;--btn-contrast-bg:#e2e8f0;--btn-contrast-text:#0b1220;--toast-bg:#e2e8f0f2;--toast-text:#0b1220;--shadow-sm:0 1px 2px 0 #0006;--shadow-md:0 4px 6px -1px #00000080, 0 2px 4px -2px #0006;--shadow-lg:0 10px 15px -3px #0000008c, 0 4px 6px -4px #0006;--shadow-popover:0 10px 30px -4px #0009, 0 4px 6px -2px #0006}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{font-family:var(--font-sans);color:var(--text-primary);background-color:var(--bg-subtle);scroll-behavior:smooth;-webkit-font-smoothing:antialiased;font-size:16px;line-height:1.6}body{flex-direction:column;min-height:100vh;display:flex}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid var(--accent-primary);outline-offset:4px}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.skip-to-content{z-index:9999;background:var(--accent-solid);color:var(--accent-on-solid);border-radius:0 0 var(--radius-md) var(--radius-md);padding:.75rem 1.5rem;font-size:.9rem;font-weight:700;text-decoration:none;transition:top .2s;position:absolute;top:-100%;left:50%;transform:translate(-50%)}.skip-to-content:focus{outline:none;top:0}.site-header{z-index:100;height:var(--header-height);background-color:var(--surface-header);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-bottom:1px solid var(--border-light);align-items:center;display:flex;position:sticky;top:0}.header-container{align-items:center;gap:1.25rem;width:100%;max-width:1480px;margin:0 auto;padding:0 1.5rem;display:flex}.brand-link{min-height:44px;color:var(--text-primary);letter-spacing:-.03em;flex:none;align-items:center;gap:.4rem;font-size:1.35rem;font-weight:800;text-decoration:none;display:flex}.brand-logo-img{object-fit:contain;flex:none;width:auto;height:48px}.brand-logo-dark,[data-theme=dark] .brand-logo-light{display:none}[data-theme=dark] .brand-logo-dark{display:block}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .brand-logo-light{display:none}:root:not([data-theme=light]) .brand-logo-dark{display:block}}.brand-link-footer .brand-logo-img{width:auto;height:68px}.brand-name{font-family:"Sora", var(--font-sans);white-space:nowrap}.brand-name-accent{color:var(--accent-primary)}.header-nav{flex:auto;align-items:center;gap:1rem;min-width:0;display:flex}.nav-link{color:var(--text-muted);white-space:nowrap;font-size:.85rem;font-weight:600;text-decoration:none;transition:color .15s,background-color .15s}.nav-link:hover,.nav-link.active{color:var(--text-primary)}.header-nav-list>.nav-item>.nav-link.active{color:var(--accent-primary);background:var(--accent-light);border-radius:var(--radius-md)}@media (min-width:769px){.header-nav-list>.nav-item>.nav-link{padding:.55rem .4rem}}.nav-toggle{border:1px solid var(--border-light);border-radius:var(--radius-md);background:var(--bg-primary);width:44px;height:44px;color:var(--text-primary);cursor:pointer;justify-content:center;align-items:center;font-size:.95rem;transition:all .15s;display:none}.nav-toggle:hover{border-color:var(--accent-border);color:var(--accent-primary)}.header-actions{flex:none;align-items:center;gap:.75rem;display:inline-flex}.header-search-icon-btn{border:1px solid var(--border-light);border-radius:var(--radius-md);background:var(--bg-primary);width:44px;height:44px;color:var(--text-secondary);cursor:pointer;justify-content:center;align-items:center;font-size:.95rem;transition:all .15s;display:none}.header-search-icon-btn:hover{border-color:var(--accent-border);color:var(--accent-primary);background:var(--bg-subtle)}.theme-toggle{border:1px solid var(--border-light);border-radius:var(--radius-md);background:var(--bg-primary);width:44px;height:44px;color:var(--text-secondary);cursor:pointer;-webkit-tap-highlight-color:transparent;flex:none;justify-content:center;align-items:center;font-size:.95rem;transition:color .15s,background .15s,border-color .15s;display:inline-flex}.theme-toggle:hover{border-color:var(--accent-border);color:var(--accent-primary);background:var(--bg-subtle)}.theme-toggle:focus-visible{border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-ring);outline:none}.header-nav-list{flex:auto;align-items:center;gap:.85rem;min-width:0;display:flex}.header-nav-list .nav-item.is-overflowed{display:none!important}.nav-overflow{flex:none;position:relative}.nav-overflow-trigger{border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;background:0 0;border:1px solid #0000;align-items:center;gap:.35rem;padding:.35rem .6rem;font-size:.925rem;font-weight:600;line-height:1;transition:all .15s;display:inline-flex}.nav-overflow-trigger:hover,.nav-overflow:hover .nav-overflow-trigger,.nav-overflow.is-open .nav-overflow-trigger{color:var(--accent-primary);background:var(--bg-subtle);border-color:var(--border-light)}.nav-overflow-dots{letter-spacing:.05em;align-items:center;font-size:1.15rem;line-height:1;display:inline-flex}.nav-overflow-dropdown{background:var(--bg-primary,#fff);border:1px solid var(--border-light,#e2e8f0);border-radius:var(--radius-lg,12px);min-width:220px;max-width:280px;box-shadow:var(--shadow-lg);opacity:0;visibility:hidden;pointer-events:none;z-index:125;padding:.45rem;transition:opacity .16s,transform .16s,visibility .16s;position:absolute;top:calc(100% + 8px);left:auto;right:0;transform:translateY(6px);overflow:visible!important}.nav-overflow:hover .nav-overflow-dropdown,.nav-overflow:focus-within .nav-overflow-dropdown,.nav-overflow.is-open .nav-overflow-dropdown{opacity:1!important;visibility:visible!important;pointer-events:auto!important;transform:translateY(0)!important}.nav-overflow-row{margin-bottom:2px}.nav-overflow-row:last-child{margin-bottom:0}.nav-overflow-group{position:relative}.nav-overflow-group:before{content:"";z-index:140;pointer-events:auto;width:18px;position:absolute;top:-8px;bottom:-8px;right:100%}.nav-overflow-group-trigger{align-items:center;width:100%;display:flex}.nav-overflow-main-link{flex:auto}.nav-overflow-caret{color:var(--text-faint);margin-left:auto;font-size:.65rem;transition:transform .15s,color .15s}.nav-overflow-group:hover .nav-overflow-main-link,.nav-overflow-group.is-open .nav-overflow-main-link{background:var(--accent-light,#f0f9ff);color:var(--accent-primary,#0284c7)}.nav-overflow-group:hover .nav-overflow-caret,.nav-overflow-group.is-open .nav-overflow-caret{color:var(--accent-primary,#0284c7);transform:translate(-2px)}.nav-overflow-sublist{background:var(--bg-primary,#fff);border:1px solid var(--border-light,#e2e8f0);border-radius:var(--radius-lg,12px);min-width:250px;max-width:340px;max-height:min(75vh,480px);box-shadow:var(--shadow-popover);z-index:150;padding:.45rem;display:none;position:absolute;top:-4px;left:auto;right:calc(100% + 6px);overflow-y:auto}.nav-overflow-sublist:after{content:"";pointer-events:auto;width:18px;position:absolute;top:0;bottom:0;left:100%}.nav-overflow-group:hover>.nav-overflow-sublist,.nav-overflow-group:focus-within>.nav-overflow-sublist,.nav-overflow-group.is-open>.nav-overflow-sublist{opacity:1!important;visibility:visible!important;pointer-events:auto!important;display:block!important;transform:none!important}.header-actions .nav-dashboard,.header-container .nav-dashboard{flex:none;align-items:center;display:inline-flex}.nav-dashboard-icon{border-radius:var(--radius-md);background:linear-gradient(180deg, var(--bg-card), var(--bg-subtle));width:38px;height:38px;color:var(--text-secondary);flex:none;justify-content:center;align-items:center;font-size:.95rem;transition:color .18s,transform .18s;display:inline-flex;position:relative}.nav-dashboard-icon:before{content:"";border-radius:var(--radius-md);background:conic-gradient(var(--accent-primary) calc(var(--progress,0) * 1%), var(--border-subtle) 0);-webkit-mask-composite:xor;padding:3px;transition:background .3s;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-position:0 0,0 0;mask-position:0 0,0 0;-webkit-mask-size:auto,auto;mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.nav-dashboard-icon:after{content:"";border:2px solid var(--bg-primary);z-index:2;background:#16a34a;border-radius:50%;width:10px;height:10px;position:absolute;bottom:0;right:0}.nav-dashboard:hover .nav-dashboard-icon{color:var(--accent-primary);transform:translateY(-1px)}.nav-dashboard.active .nav-dashboard-icon{color:var(--accent-primary)}.nav-item{position:relative}.nav-parent{align-items:center;display:inline-flex}.nav-caret{color:var(--text-faint);margin-left:.3rem;font-size:.62rem;transition:transform .15s}.nav-item:before{content:"";height:12px;position:absolute;top:100%;left:-12px;right:-12px}.nav-dropdown{background:var(--bg-primary);border:1px solid var(--border-light);border-radius:var(--radius-lg);min-width:264px;max-width:330px;max-height:min(70vh,480px);box-shadow:var(--shadow-lg);opacity:0;visibility:hidden;z-index:120;padding:.5rem;transition:opacity .18s,transform .18s,visibility .18s;position:absolute;top:calc(100% + 8px);left:50%;overflow-y:auto;transform:translate(-50%,6px)}.nav-item:hover .nav-dropdown,.nav-item:focus-within .nav-dropdown{opacity:1;visibility:visible;transform:translate(-50%)}.nav-item:hover .nav-caret{transform:rotate(180deg)}.nav-dropdown-wide{grid-template-columns:1fr 1fr;align-content:start;gap:.15rem;min-width:500px;max-width:580px;display:grid}.nav-drop-link{border-radius:var(--radius-md);color:var(--text-secondary);justify-content:space-between;align-items:center;gap:1rem;padding:.6rem .8rem;font-size:.88rem;font-weight:500;line-height:1.4;text-decoration:none;transition:background .12s,color .12s;display:flex}.nav-drop-link:hover{background:var(--accent-light);color:var(--accent-primary)}.nav-drop-count{color:var(--text-faint);background:var(--bg-subtle);border-radius:999px;flex:none;padding:.12rem .55rem;font-size:.72rem;font-weight:700}.nav-drop-link:hover .nav-drop-count{color:var(--accent-primary)}.mobile-nav-drawer{border:1px solid var(--border-light);background:var(--bg-primary);width:min(360px,100vw - 24px);max-width:none;height:calc(100dvh - 24px);max-height:calc(100dvh - 24px);color:var(--text-primary);box-shadow:var(--shadow-lg);overscroll-behavior:contain;border-radius:22px;margin:12px 12px 12px auto;padding:0 1.25rem 1.25rem;position:fixed;inset:0;overflow-y:auto}.mobile-nav-drawer::backdrop{background:var(--scrim-strong);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}body:has(.mobile-nav-drawer[open]){overflow:hidden}.mobile-nav-head{background:var(--bg-primary);z-index:1;border-bottom:1px solid var(--border-light);justify-content:space-between;align-items:center;gap:.75rem;min-height:76px;font-size:.9rem;font-weight:700;display:flex;position:sticky;top:0}.mobile-nav-head button,.mobile-subject-toggle{border-radius:var(--radius-md);background:var(--bg-subtle);width:44px;height:44px;color:var(--text-secondary);cursor:pointer;border:0;flex:none;place-items:center;display:grid}.mobile-nav-label{text-transform:uppercase;letter-spacing:.12em;color:var(--text-muted);margin:1.5rem 0 .55rem;font-size:.65rem}.mobile-nav-link{border-radius:var(--radius-md);min-height:46px;color:var(--text-secondary);align-items:center;gap:.8rem;padding:.7rem .5rem;font-size:.9rem;text-decoration:none;display:flex}.mobile-nav-link .icon{color:var(--accent-primary);width:1.1rem}.mobile-nav-link:hover{background:var(--bg-subtle);color:var(--text-primary)}.mobile-nav-subject-head{align-items:center;gap:.25rem;display:flex}.mobile-nav-subject-head>a{flex:1;min-width:0}.mobile-nav-subject.active>.mobile-nav-subject-head{background:var(--accent-light);border-radius:var(--radius-md)}.mobile-subject-toggle{background:0 0;font-size:.75rem}.mobile-subject-toggle[aria-expanded=true] .icon{transform:rotate(180deg)}.mobile-subject-series{border-left:1px solid var(--accent-border);margin-left:.75rem;padding:.25rem 0 .5rem 1rem}.mobile-subject-series a{min-height:44px;color:var(--text-secondary);border-radius:var(--radius-sm);justify-content:space-between;align-items:center;gap:.6rem;padding:.55rem .5rem;font-size:.8rem;text-decoration:none;display:flex}.mobile-subject-series a:hover{background:var(--accent-light);color:var(--accent-primary)}.mobile-subject-series span{color:var(--text-muted);font-size:.7rem}.mobile-nav-secondary{color:var(--text-muted);border-top:1px solid var(--border-light);margin-top:.75rem;padding-top:1rem}@media (max-width:768px){.header-container{gap:.6rem;padding:0 .85rem}.brand-logo-img{height:38px}.brand-link-footer .brand-logo-img{height:56px}.nav-toggle,.header-search-icon-btn{display:inline-flex}.header-actions{gap:.35rem;margin-left:auto}.header-nav{display:none}}@media (max-width:360px){.header-container{gap:.5rem;padding:0 .7rem}.brand-logo-img{height:32px}.header-actions{gap:.25rem}}.back-btn{color:var(--text-secondary);background:var(--bg-primary);border:1px solid var(--border-light);box-shadow:var(--shadow-sm);border-radius:999px;align-items:center;gap:.5rem;margin-bottom:1.25rem;padding:.45rem .95rem;font-size:.85rem;font-weight:600;text-decoration:none;transition:all .15s;display:inline-flex}.back-btn:hover{color:var(--accent-primary);border-color:var(--accent-border);background:var(--accent-light)}.module-hero{background:var(--bg-primary);border-bottom:1px solid var(--border-light);padding:4rem 1.5rem 3rem}.module-hero-container{max-width:860px;margin:0 auto}.module-badge-row{flex-wrap:wrap;gap:.5rem;margin-bottom:1rem;display:flex}.module-title{font-family:var(--font-display);color:var(--text-primary);letter-spacing:-.025em;margin-bottom:1rem;font-size:2.25rem;font-weight:800;line-height:1.2}.module-desc{color:var(--text-secondary);margin-bottom:2rem;font-size:1.1rem;line-height:1.6}.stat-label{color:var(--text-muted);font-size:.75rem;display:block}.module-content-container{max-width:908px;margin:0 auto;padding:3rem 1.5rem}@media (max-width:640px){.section-header .badge{white-space:normal;text-align:left;max-width:100%;line-height:1.45}}.search-trigger-btn{background:var(--bg-subtle);border:1px solid var(--border-light);min-width:180px;max-width:260px;height:38px;color:var(--text-muted);border-radius:var(--radius-md);cursor:pointer;white-space:nowrap;flex:0 210px;order:20;align-items:center;gap:.6rem;margin-left:auto;padding:0 .6rem 0 .85rem;font-family:inherit;font-size:.95rem;transition:all .15s;display:inline-flex;overflow:hidden}.search-trigger-btn .search-btn-text{text-align:left;text-overflow:ellipsis;flex:auto;min-width:0;overflow:hidden}.search-trigger-btn:hover{border-color:var(--accent-border);color:var(--text-secondary);background:var(--bg-primary);box-shadow:0 0 0 3px var(--accent-ring)}.search-trigger-btn:focus-visible{border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-ring);outline:none}.search-kbd-group{flex:none;align-items:center;gap:4px;margin-left:auto;display:inline-flex}.search-kbd{min-width:22px;height:22px;font-size:.72rem;font-weight:500;line-height:1;font-family:var(--font-mono);color:var(--text-muted);background:var(--bg-primary);border:1px solid var(--border-light);border-bottom-width:2px;border-radius:6px;justify-content:center;align-items:center;padding:0 5px;display:inline-flex}.search-trigger-btn:hover .search-kbd{background:var(--bg-subtle);border-color:var(--border-subtle);color:var(--text-secondary)}.main-content{flex:1;width:100%}.site-footer{background:var(--bg-primary);border-top:1px solid var(--border-light);margin-top:4rem;padding:2.5rem 1.5rem 2rem}.footer-container{max-width:var(--max-width);flex-direction:column;gap:1.5rem;margin:0 auto;display:flex}.footer-top{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:2rem;display:flex}.footer-desc{max-width:480px;color:var(--text-muted);margin-top:.5rem;font-size:.875rem}.footer-links{gap:2rem;display:flex}.footer-col .footer-heading{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin:0 0 .75rem;font-size:.8rem}.footer-col ul{flex-direction:column;gap:.5rem;list-style:none;display:flex}.footer-col a{min-height:32px;color:var(--text-secondary);align-items:center;font-size:.875rem;text-decoration:none;transition:color .15s;display:inline-flex}@media (max-width:768px){.footer-col a{min-height:44px}}.footer-col a:hover{color:var(--accent-primary)}.footer-note{align-items:center;gap:.4rem;display:inline-flex}.footer-bottom .footer-legal-link,.footer-bottom .footer-legal-link:visited{min-height:32px;color:var(--text-muted);align-items:center;text-decoration:none;display:inline-flex}.footer-bottom .footer-legal-link:hover{color:var(--accent-primary);text-decoration:underline}.footer-bottom{border-top:1px solid var(--border-light);color:var(--text-muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding-top:1.5rem;font-size:.8rem;display:flex}.footer-brand-text{font-family:"Sora", var(--font-sans);letter-spacing:-.03em;color:var(--text-primary);font-size:1.35rem;font-weight:800;display:inline-block}.back-to-top{z-index:92;border:1px solid var(--border-light);background:var(--bg-primary);width:44px;height:44px;color:var(--text-secondary);cursor:pointer;box-shadow:var(--shadow-md);opacity:0;pointer-events:none;-webkit-tap-highlight-color:transparent;border-radius:50%;justify-content:center;align-items:center;font-size:1rem;transition:opacity .25s,transform .25s,background .15s,color .15s,border-color .15s;display:inline-flex;position:fixed;bottom:2rem;right:2rem;transform:translateY(12px)}.back-to-top.visible{opacity:1;pointer-events:auto;transform:translateY(0)}.back-to-top:hover{background:var(--accent-solid);border-color:var(--accent-solid);color:var(--accent-on-solid);box-shadow:var(--shadow-lg)}@media (max-width:768px){.back-to-top{bottom:calc(1.25rem + env(safe-area-inset-bottom,0px));background:var(--surface-glass);-webkit-backdrop-filter:blur(10px);border-color:var(--border-light);width:42px;height:42px;font-size:.95rem;right:1.25rem;box-shadow:0 4px 14px #00000024}}.app-toast{background:var(--toast-bg);color:var(--toast-text);z-index:1000;opacity:0;pointer-events:none;-webkit-backdrop-filter:blur(8px);border-radius:9999px;align-items:center;gap:.5rem;padding:.55rem 1rem;font-size:.82rem;font-weight:500;transition:opacity .2s,transform .2s cubic-bezier(.16,1,.3,1);display:flex;position:fixed;bottom:2rem;left:50%;transform:translate(-50%)translateY(20px);box-shadow:0 10px 25px -5px #00000040}.app-toast.is-visible{opacity:1;transform:translate(-50%)translateY(0)}@media (max-width:768px){.app-toast{bottom:calc(4.5rem + env(safe-area-inset-bottom,0px));font-size:.8rem}}.search-modal{z-index:200;background:var(--scrim);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);justify-content:center;align-items:flex-start;padding:4rem 1.5rem;display:none;position:fixed;inset:0}.search-modal.active{display:flex}.search-dialog{background:var(--bg-primary);border-radius:var(--radius-lg);border:1px solid var(--border-light);width:100%;max-width:600px;box-shadow:var(--shadow-lg);overflow:hidden}.search-input-box{border-bottom:1px solid var(--border-light);align-items:center;gap:.75rem;padding:1rem 1.25rem;display:flex}.search-input{color:var(--text-primary);background:0 0;border:none;outline:none;flex:1;font-family:inherit;font-size:1.05rem}.search-close-btn{cursor:pointer;color:var(--text-muted);background:0 0;border:none;padding:.25rem;font-size:1.1rem}.search-results-list{max-height:380px;padding:.5rem;list-style:none;overflow-y:auto}.search-result-item{border-radius:var(--radius-md);cursor:pointer;padding:.85rem 1rem;text-decoration:none;transition:background .15s;display:block}.search-result-item:hover,.search-result-item.selected{background:var(--accent-light)}.search-result-title{color:var(--text-primary);margin-bottom:.25rem;font-size:.95rem;font-weight:600}.search-result-breadcrumb{color:var(--text-faint);white-space:nowrap;text-overflow:ellipsis;margin-bottom:.25rem;font-size:.75rem;overflow:hidden}.search-result-desc{color:var(--text-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.825rem;line-height:1.4;display:-webkit-box;overflow:hidden}.search-result-section-mark{color:var(--accent-primary);margin-right:.35rem;font-weight:700}.search-result-item mark.search-hit{background:var(--accent-ring);color:inherit;border-radius:3px;padding:0 2px}.search-empty{text-align:center;color:var(--text-muted);padding:2rem;font-size:.9rem}a.badge{text-decoration:none}a.badge:visited{color:inherit}a.badge-primary:visited{color:var(--accent-primary)}a.badge-secondary:visited{color:var(--text-secondary)}.badge{border-radius:var(--radius-sm);letter-spacing:.02em;align-items:center;padding:.2rem .55rem;font-size:.75rem;font-weight:600;display:inline-flex}.badge-primary{background:var(--accent-light);color:var(--accent-primary);border:1px solid var(--accent-border)}.badge-secondary{background:var(--bg-elevated);color:var(--text-secondary);border:1px solid var(--border-light)}@media (max-width:768px){.footer-links{flex-direction:column;gap:1.5rem}}.home-hero{background:var(--bg-primary);padding:4.5rem 1.5rem 0}.hero-container{grid-template-columns:1.15fr 1fr;align-items:center;gap:4rem;max-width:1152px;margin:0 auto;display:grid}.hero-copy{min-width:0}.hero-badge{color:var(--accent-primary);letter-spacing:.02em;align-items:center;gap:.55rem;font-size:.75rem;font-weight:600;display:inline-flex}.hero-title{font-family:var(--font-display);letter-spacing:-.065em;color:var(--text-primary);margin:1.3rem 0 1.4rem;font-size:clamp(2.75rem,4.25vw,4.1rem);font-weight:700;line-height:1.13}.hero-title>span{color:var(--accent-primary)}.hero-subtitle{color:var(--text-muted);max-width:490px;font-size:1.05rem;line-height:1.8}.hero-actions{flex-wrap:wrap;align-items:center;gap:1.4rem;margin:1.75rem 0;display:flex}.hero-text-link,.section-library-link{min-height:44px;color:var(--text-secondary);align-items:center;gap:.65rem;font-size:.85rem;font-weight:600;text-decoration:none;display:inline-flex}.hero-text-link:hover,.section-library-link:hover{color:var(--accent-primary)}.hero-footnote{color:var(--text-muted);margin-top:.8rem;font-size:.75rem}.hero-feature{color:#edf6ff;background:radial-gradient(at 65% 25%,#153957,#0c1c30 75%);border-radius:24px;min-width:0;padding:1.6rem;text-decoration:none;transition:transform .2s,box-shadow .2s;display:block;box-shadow:0 24px 50px -26px #051d3973}.hero-feature:hover{transform:translateY(-4px);box-shadow:0 30px 60px -24px #051d3980}.feature-topline{color:#9bb8d2;letter-spacing:.08em;justify-content:space-between;align-items:center;gap:1rem;font-size:.65rem;display:flex}.feature-topline>span:first-child{align-items:center;gap:.6rem;display:flex}.feature-index{font-family:var(--font-mono);font-size:.6rem}.feature-drawing{background-image:linear-gradient(#8dc7f509 1px,#0000 1px),linear-gradient(90deg,#8dc7f509 1px,#0000 1px);background-size:24px 24px;margin:1rem -.5rem 1.4rem}.feature-drawing svg{width:100%;display:block}.drawing-caption{text-align:center;font:.6rem var(--font-mono);color:#9bb8d2;letter-spacing:.12em;display:block}.feature-bottom{border-top:1px solid #8dc7f525;justify-content:space-between;align-items:center;gap:1rem;padding-top:1.25rem;display:flex}.feature-eyebrow{color:#83c5ff;font-size:.7rem}.feature-bottom h2{letter-spacing:-.025em;margin:.3rem 0;font-size:1.15rem;font-weight:600}.feature-bottom p{color:#9bb8d2;font-size:.8rem}.feature-arrow{color:#a3d4ff;background:#74bfff18;border-radius:50%;flex:none;place-items:center;width:40px;height:40px;display:grid}.hero-stats{border-top:1px solid var(--border-light);align-items:center;gap:3rem;max-width:1152px;margin:3.5rem auto 0;padding:1.5rem 0;display:flex}.hero-stats>div{align-items:baseline;gap:.6rem;display:flex}.hero-stats strong{letter-spacing:-.04em;font-size:1.4rem;font-weight:700}.hero-stats span{color:var(--text-muted);font-size:.8rem}.hero-stats>a{color:var(--text-secondary);align-items:center;gap:.7rem;margin-left:auto;font-size:.8rem;text-decoration:none;display:inline-flex}.hero-stats>a:hover{color:var(--accent-primary)}.home-study-banner{border-top:1px solid var(--border-light);align-items:center;gap:1.5rem;padding:2rem 0;display:flex}.study-banner-icon{color:var(--accent-primary);font-size:1.8rem}.home-study-banner h2{letter-spacing:-.035em;font-size:1.4rem;font-weight:600}.home-study-banner p:not(.section-tag){color:var(--text-muted);margin-top:.4rem;font-size:.9rem}.home-study-banner>a{flex-shrink:0;margin-left:auto}@media (max-width:1024px){.hero-container{gap:2rem}.hero-stats{flex-wrap:wrap;gap:1.5rem}.hero-stats>a{margin-left:0}.hero-actions{gap:1rem}}@media (max-width:768px){.home-hero{padding:2.5rem 1.25rem 0}.hero-container{grid-template-columns:1fr;gap:2.25rem}.hero-title{font-size:clamp(2.55rem,7vw,3.5rem)}.hero-subtitle{max-width:560px;font-size:1rem}.hero-feature{width:100%;max-width:560px;padding:1.25rem}.hero-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-top:2rem;display:grid}.hero-stats>div{flex-direction:column;gap:.15rem}.hero-stats span{font-size:.7rem}.hero-stats>a{grid-column:1/-1;padding-top:.6rem}.home-study-banner{flex-wrap:wrap;gap:1rem}.study-banner-icon{display:none}.home-study-banner>a{margin-left:0}}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.hero-search-bar{background:var(--bg-subtle);border:1px solid var(--border-light);border-radius:var(--radius-md);width:100%;max-width:500px;color:var(--text-muted);font:.85rem var(--font-sans);text-align:left;cursor:pointer;align-items:center;gap:.75rem;padding:.9rem 1rem;transition:border-color .2s,box-shadow .2s;display:flex}.hero-search-bar:hover{border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-ring)}.hero-kbd-group{flex:none;align-items:center;gap:4px;margin-left:auto;display:inline-flex}.hero-kbd{min-width:24px;height:24px;font-family:var(--font-mono);background:var(--bg-subtle);border:1px solid var(--border-light);border-bottom-width:2px;border-radius:6px;justify-content:center;align-items:center;padding:0 6px;font-size:.8rem;line-height:1;display:inline-flex}.hero-search-label{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.home-content-container{max-width:var(--max-width);flex-direction:column;gap:4rem;margin:0 auto;padding:3.5rem 1.5rem 1rem;display:flex}.home-section{scroll-margin-top:calc(var(--header-height) + 1.5rem);flex-direction:column;gap:1.25rem;display:flex}.home-library-controls{flex-wrap:wrap;align-items:center;gap:1rem;display:flex}.home-filters{flex-wrap:wrap;gap:.4rem;display:flex}.home-filters button{color:var(--text-muted);font:500 .8rem var(--font-sans);cursor:pointer;background:0 0;border:0;border-radius:999px;padding:.6rem .85rem}.home-filters button:hover{color:var(--text-primary);background:var(--bg-elevated)}.home-filters button[aria-pressed=true]{background:var(--accent-light);color:var(--accent-primary)}.home-filter-count{color:var(--text-muted);margin-left:auto;font-size:.75rem}.series-card[hidden]{display:none}.section-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem;display:flex}.section-tag{text-transform:uppercase;letter-spacing:.14em;color:var(--accent-primary);margin-bottom:.6rem;font-size:.65rem;font-weight:700}.section-heading{letter-spacing:-.045em;color:var(--text-primary);margin-bottom:.35rem;font-size:1.85rem;font-weight:600}.section-desc{color:var(--text-muted);max-width:680px;font-size:1rem}.btn-primary-action{background:var(--accent-solid);color:var(--accent-on-solid);border-radius:var(--radius-md);justify-content:center;align-items:center;gap:.75rem;padding:.85rem 1.25rem;font-size:.875rem;font-weight:600;text-decoration:none;transition:background .15s;display:inline-flex}.btn-primary-action:hover{background:var(--accent-solid-hover)}.btn-secondary-action{background:var(--bg-elevated);border:1px solid var(--border-light);color:var(--text-primary);border-radius:var(--radius-md);justify-content:center;align-items:center;gap:.75rem;padding:.65rem 1.25rem;font-size:.925rem;font-weight:600;text-decoration:none;transition:background .15s;display:inline-flex}.btn-secondary-action:hover{background:var(--bg-subtle)}.series-grid{grid-template-columns:repeat(3,minmax(0,1fr));column-gap:2.25rem;display:grid}.series-card{border-bottom:1px solid var(--border-light);align-items:flex-start;gap:.9rem;padding:1.5rem 0;text-decoration:none;transition:border-color .15s;display:flex}.series-card:hover{border-color:var(--accent-primary)}.series-card:hover .series-card-title{color:var(--accent-primary)}.series-card-icon{background:var(--accent-light);width:2.75rem;height:2.75rem;color:var(--accent-primary);border-radius:.8rem;flex:none;justify-content:center;align-items:center;font-size:1.2rem;display:inline-flex}.series-card-body{flex-direction:column;gap:.45rem;min-width:0;display:flex}.series-card-title{color:var(--text-primary);font-size:1rem;font-weight:600;line-height:1.5}.series-card-desc{color:var(--text-muted);-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:.85rem;line-height:1.7;display:-webkit-box;overflow:hidden}.series-card-meta{color:var(--accent-primary);align-items:center;gap:.35rem;margin-top:.3rem;font-size:.78rem;font-weight:700;display:inline-flex}.series-card-meta .icon{font-size:.7rem;transition:transform .15s}.series-card:hover .series-card-meta .icon{transform:translate(3px)}@media (max-width:1024px){.series-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:600px){.series-grid{grid-template-columns:minmax(0,1fr)}.home-content-container{gap:2rem;padding:2.5rem 1.25rem 1rem}}.icon{vertical-align:-.125em;fill:currentColor;flex:none;width:1em;height:1em}.dash-empty-icon .icon,.dash-continue-icon .icon,.lab3d-card-icon .icon,.series-card-icon .icon{width:1.25em;height:1.25em}svg.topic-figure-svg[data-gallery-diagram]{fill:var(--lightningcss-light,#203b4d)var(--lightningcss-dark,#cbd5dc);background-color:var(--lightningcss-light,#fff)var(--lightningcss-dark,#0b1721)}svg[data-gallery-diagram] [fill=\#edf3f6]{fill:var(--lightningcss-light,#edf3f6)var(--lightningcss-dark,#0e1c27)}svg[data-gallery-diagram] [fill=\#f7fafc]{fill:var(--lightningcss-light,#f7fafc)var(--lightningcss-dark,#0b1721)}svg[data-gallery-diagram] [fill=\#f8fafc]{fill:var(--lightningcss-light,#f8fafc)var(--lightningcss-dark,#0b1721)}svg[data-gallery-diagram] [fill=\#f8fbfd]{fill:var(--lightningcss-light,#f8fbfd)var(--lightningcss-dark,#0b1721)}svg[data-gallery-diagram] [fill=\#fff],svg[data-gallery-diagram] [fill=\#ffffff]{fill:var(--lightningcss-light,#fff)var(--lightningcss-dark,#16242f)}svg[data-gallery-diagram] [fill=\#b8c7d1]{fill:var(--lightningcss-light,#b8c7d1)var(--lightningcss-dark,#45545e)}svg[data-gallery-diagram] [fill=\#b9ccd6]{fill:var(--lightningcss-light,#b9ccd6)var(--lightningcss-dark,#41545e)}svg[data-gallery-diagram] [fill=\#b9cdda]{fill:var(--lightningcss-light,#b9cdda)var(--lightningcss-dark,#3b505e)}svg[data-gallery-diagram] [fill=\#b9ced9]{fill:var(--lightningcss-light,#b9ced9)var(--lightningcss-dark,#3c515d)}svg[data-gallery-diagram] [fill=\#bacdda]{fill:var(--lightningcss-light,#bacdda)var(--lightningcss-dark,#3c505d)}svg[data-gallery-diagram] [fill=\#c3d5df]{fill:var(--lightningcss-light,#c3d5df)var(--lightningcss-dark,#354852)}svg[data-gallery-diagram] [fill=\#cadbe5]{fill:var(--lightningcss-light,#cadbe5)var(--lightningcss-dark,#2c3e48)}svg[data-gallery-diagram] [fill=\#d6e3eb]{fill:var(--lightningcss-light,#d6e3eb)var(--lightningcss-dark,#25343d)}svg[data-gallery-diagram] [fill=\#d6e7ee]{fill:var(--lightningcss-light,#d6e7ee)var(--lightningcss-dark,#20333b)}svg[data-gallery-diagram] [fill=\#d7e4ea]{fill:var(--lightningcss-light,#d7e4ea)var(--lightningcss-dark,#26353c)}svg[data-gallery-diagram] [fill=\#d9e4eb]{fill:var(--lightningcss-light,#d9e4eb)var(--lightningcss-dark,#243038)}svg[data-gallery-diagram] [fill=\#dbe6ed]{fill:var(--lightningcss-light,#dbe6ed)var(--lightningcss-dark,#233039)}svg[data-gallery-diagram] [fill=\#dbe9ef]{fill:var(--lightningcss-light,#dbe9ef)var(--lightningcss-dark,#1f3037)}svg[data-gallery-diagram] [fill=\#dce7ed]{fill:var(--lightningcss-light,#dce7ed)var(--lightningcss-dark,#212e35)}svg[data-gallery-diagram] [fill=\#dce9ef]{fill:var(--lightningcss-light,#dce9ef)var(--lightningcss-dark,#1f2f36)}svg[data-gallery-diagram] [fill=\#dde8ed]{fill:var(--lightningcss-light,#dde8ed)var(--lightningcss-dark,#212e34)}svg[data-gallery-diagram] [fill=\#dee8f2]{fill:var(--lightningcss-light,#dee8f2)var(--lightningcss-dark,#1b2834)}svg[data-gallery-diagram] [fill=\#e1e9ee]{fill:var(--lightningcss-light,#e1e9ee)var(--lightningcss-dark,#202a30)}svg[data-gallery-diagram] [fill=\#e2edf3]{fill:var(--lightningcss-light,#e2edf3)var(--lightningcss-dark,#1a2830)}svg[data-gallery-diagram] [fill=\#e3eaf0]{fill:var(--lightningcss-light,#e3eaf0)var(--lightningcss-dark,#1d252d)}svg[data-gallery-diagram] [fill=\#e6edf2]{fill:var(--lightningcss-light,#e6edf2)var(--lightningcss-dark,#1a2329)}svg[data-gallery-diagram] [fill=\#e8edf0]{fill:var(--lightningcss-light,#e8edf0)var(--lightningcss-dark,#1d2327)}svg[data-gallery-diagram] [fill=\#e8f0f5]{fill:var(--lightningcss-light,#e8f0f5)var(--lightningcss-dark,#162127)}svg[data-gallery-diagram] [fill=\#e9edf0]{fill:var(--lightningcss-light,#e9edf0)var(--lightningcss-dark,#1d2226)}svg[data-gallery-diagram] [fill=\#e9f0f4]{fill:var(--lightningcss-light,#e9f0f4)var(--lightningcss-dark,#172126)}svg[data-gallery-diagram] [fill=\#eef2f7]{fill:var(--lightningcss-light,#eef2f7)var(--lightningcss-dark,#141b23)}svg[data-gallery-diagram] [fill=\#eef4f7]{fill:var(--lightningcss-light,#eef4f7)var(--lightningcss-dark,#141e23)}svg[data-gallery-diagram] [fill=\#bce8df]{fill:var(--lightningcss-light,#bce8df)var(--lightningcss-dark,#2c5b52)}svg[data-gallery-diagram] [fill=\#c6e7e2]{fill:var(--lightningcss-light,#c6e7e2)var(--lightningcss-dark,#2b4f4a)}svg[data-gallery-diagram] [fill=\#d5eaf2]{fill:var(--lightningcss-light,#d5eaf2)var(--lightningcss-dark,#1c353f)}svg[data-gallery-diagram] [fill=\#d5edf4]{fill:var(--lightningcss-light,#d5edf4)var(--lightningcss-dark,#19343d)}svg[data-gallery-diagram] [fill=\#d7ebf3]{fill:var(--lightningcss-light,#d7ebf3)var(--lightningcss-dark,#1a323b)}svg[data-gallery-diagram] [fill=\#d7ece8]{fill:var(--lightningcss-light,#d7ece8)var(--lightningcss-dark,#243e39)}svg[data-gallery-diagram] [fill=\#d9eaf2]{fill:var(--lightningcss-light,#d9eaf2)var(--lightningcss-dark,#1c303a)}svg[data-gallery-diagram] [fill=\#d9edf2]{fill:var(--lightningcss-light,#d9edf2)var(--lightningcss-dark,#1c343a)}svg[data-gallery-diagram] [fill=\#d9edf4]{fill:var(--lightningcss-light,#d9edf4)var(--lightningcss-dark,#1a333c)}svg[data-gallery-diagram] [fill=\#d9eeeb]{fill:var(--lightningcss-light,#d9eeeb)var(--lightningcss-dark,#213a37)}svg[data-gallery-diagram] [fill=\#dbeafe]{fill:var(--lightningcss-light,#dbeafe)var(--lightningcss-dark,#142030)}svg[data-gallery-diagram] [fill=\#dbeef4]{fill:var(--lightningcss-light,#dbeef4)var(--lightningcss-dark,#193037)}svg[data-gallery-diagram] [fill=\#dcecf4]{fill:var(--lightningcss-light,#dcecf4)var(--lightningcss-dark,#192d37)}svg[data-gallery-diagram] [fill=\#dceff7]{fill:var(--lightningcss-light,#dceff7)var(--lightningcss-dark,#152b34)}svg[data-gallery-diagram] [fill=\#dfedf4]{fill:var(--lightningcss-light,#dfedf4)var(--lightningcss-dark,#182932)}svg[data-gallery-diagram] [fill=\#e0edf5]{fill:var(--lightningcss-light,#e0edf5)var(--lightningcss-dark,#172832)}svg[data-gallery-diagram] [fill=\#e1eeed]{fill:var(--lightningcss-light,#e1eeed)var(--lightningcss-dark,#20302e)}svg[data-gallery-diagram] [fill=\#e1efeb]{fill:var(--lightningcss-light,#e1efeb)var(--lightningcss-dark,#1f302c)}svg[data-gallery-diagram] [fill=\#e2efec]{fill:var(--lightningcss-light,#e2efec)var(--lightningcss-dark,#1f302c)}svg[data-gallery-diagram] [fill=\#e2f0f6]{fill:var(--lightningcss-light,#e2f0f6)var(--lightningcss-dark,#15272f)}svg[data-gallery-diagram] [fill=\#e4f0f5]{fill:var(--lightningcss-light,#e4f0f5)var(--lightningcss-dark,#17262d)}svg[data-gallery-diagram] [fill=\#e4f3f7]{fill:var(--lightningcss-light,#e4f3f7)var(--lightningcss-dark,#15292f)}svg[data-gallery-diagram] [fill=\#e6f3f0]{fill:var(--lightningcss-light,#e6f3f0)var(--lightningcss-dark,#192a26)}svg[data-gallery-diagram] [fill=\#eaf7f3]{fill:var(--lightningcss-light,#eaf7f3)var(--lightningcss-dark,#152923)}svg[data-gallery-diagram] [fill=\#e5b780]{fill:var(--lightningcss-light,#e5b780)var(--lightningcss-dark,#74552f)}svg[data-gallery-diagram] [fill=\#e5e4c1]{fill:var(--lightningcss-light,#e5e4c1)var(--lightningcss-dark,#3f3f22)}svg[data-gallery-diagram] [fill=\#e6b488]{fill:var(--lightningcss-light,#e6b488)var(--lightningcss-dark,#744f2f)}svg[data-gallery-diagram] [fill=\#ecd6ae]{fill:var(--lightningcss-light,#ecd6ae)var(--lightningcss-dark,#68532b)}svg[data-gallery-diagram] [fill=\#eedcba]{fill:var(--lightningcss-light,#eedcba)var(--lightningcss-dark,#5b4825)}svg[data-gallery-diagram] [fill=\#f0cba8]{fill:var(--lightningcss-light,#f0cba8)var(--lightningcss-dark,#68482b)}svg[data-gallery-diagram] [fill=\#f0e8fa]{fill:var(--lightningcss-light,#f0e8fa)var(--lightningcss-dark,#1a1027)}svg[data-gallery-diagram] [fill=\#f3d9a6]{fill:var(--lightningcss-light,#f3d9a6)var(--lightningcss-dark,#68542b)}svg[data-gallery-diagram] [fill=\#f3e3c6]{fill:var(--lightningcss-light,#f3e3c6)var(--lightningcss-dark,#4e3e20)}svg[data-gallery-diagram] [fill=\#f4ddd9]{fill:var(--lightningcss-light,#f4ddd9)var(--lightningcss-dark,#3c1f1a)}svg[data-gallery-diagram] [fill=\#f4eee7]{fill:var(--lightningcss-light,#f4eee7)var(--lightningcss-dark,#2b2219)}svg[data-gallery-diagram] [fill=\#f5c984]{fill:var(--lightningcss-light,#f5c984)var(--lightningcss-dark,#745a2f)}svg[data-gallery-diagram] [fill=\#f5e0b9]{fill:var(--lightningcss-light,#f5e0b9)var(--lightningcss-dark,#574523)}svg[data-gallery-diagram] [fill=\#f8d59b]{fill:var(--lightningcss-light,#f8d59b)var(--lightningcss-dark,#6d542c)}svg[data-gallery-diagram] [fill=\#f8f0db]{fill:var(--lightningcss-light,#f8f0db)var(--lightningcss-dark,#342b15)}svg[data-gallery-diagram] [fill=\#fff0f0]{fill:var(--lightningcss-light,#fff0f0)var(--lightningcss-dark,#1e0c0c)}svg[data-gallery-diagram] [fill=\#fff3dc]{fill:var(--lightningcss-light,#fff3dc)var(--lightningcss-dark,#302614)}svg[data-gallery-diagram] [fill=\#fff5df]{fill:var(--lightningcss-light,#fff5df)var(--lightningcss-dark,#2b2312)}svg[data-gallery-diagram] [fill=\#fff5e7]{fill:var(--lightningcss-light,#fff5e7)var(--lightningcss-dark,#271d10)}svg[data-gallery-diagram] [fill=\#fff6e8]{fill:var(--lightningcss-light,#fff6e8)var(--lightningcss-dark,#271e10)}svg[data-gallery-diagram] [fill=\#fff7e5]{fill:var(--lightningcss-light,#fff7e5)var(--lightningcss-dark,#272010)}svg[data-gallery-diagram] [fill=\#fff7e8]{fill:var(--lightningcss-light,#fff7e8)var(--lightningcss-dark,#271f10)}svg[data-gallery-diagram] [fill=\#183247]{fill:var(--lightningcss-light,#183247)var(--lightningcss-dark,#c5d0d8)}svg[data-gallery-diagram] [fill=\#1e3a5f]{fill:var(--lightningcss-light,#1e3a5f)var(--lightningcss-dark,#d7dde4)}svg[data-gallery-diagram] [fill=\#203b4d]{fill:var(--lightningcss-light,#203b4d)var(--lightningcss-dark,#cbd5dc)}svg[data-gallery-diagram] [fill=\#344f62]{fill:var(--lightningcss-light,#344f62)var(--lightningcss-dark,#e4e9ec)}svg[data-gallery-diagram] [fill=\#597181]{fill:var(--lightningcss-light,#597181)var(--lightningcss-dark,#9bb4c5)}svg[data-gallery-diagram] [fill=\#5a7183]{fill:var(--lightningcss-light,#5a7183)var(--lightningcss-dark,#9bb3c5)}svg[data-gallery-diagram] [fill=\#819cad]{fill:var(--lightningcss-light,#819cad)var(--lightningcss-dark,#cad9e2)}svg[data-gallery-diagram] [fill=\#0b887c]{fill:var(--lightningcss-light,#0b887c)var(--lightningcss-dark,#4bddce)}svg[data-gallery-diagram] [fill=\#128579]{fill:var(--lightningcss-light,#128579)var(--lightningcss-dark,#4bddce)}svg[data-gallery-diagram] [fill=\#167da5]{fill:var(--lightningcss-light,#167da5)var(--lightningcss-dark,#69c0e2)}svg[data-gallery-diagram] [fill=\#197da5]{fill:var(--lightningcss-light,#197da5)var(--lightningcss-dark,#6ac0e1)}svg[data-gallery-diagram] [fill=\#75d8c9]{fill:var(--lightningcss-light,#75d8c9)var(--lightningcss-dark,#8cd9cd)}svg[data-gallery-diagram] [fill=\#7760ad]{fill:var(--lightningcss-light,#7760ad)var(--lightningcss-dark,#a797ce)}svg[data-gallery-diagram] [fill=\#7962b3]{fill:var(--lightningcss-light,#7962b3)var(--lightningcss-dark,#a797ce)}svg[data-gallery-diagram] [fill=\#86b1c8]{fill:var(--lightningcss-light,#86b1c8)var(--lightningcss-dark,#97bbce)}svg[data-gallery-diagram] [fill=\#9e8270]{fill:var(--lightningcss-light,#9e8270)var(--lightningcss-dark,#d2b8a7)}svg[data-gallery-diagram] [fill=\#b27c25]{fill:var(--lightningcss-light,#b27c25)var(--lightningcss-dark,#e0bd85)}svg[data-gallery-diagram] [fill=\#b77c23]{fill:var(--lightningcss-light,#b77c23)var(--lightningcss-dark,#e1bc84)}svg[data-gallery-diagram] [fill=\#bb5059]{fill:var(--lightningcss-light,#bb5059)var(--lightningcss-dark,#d19499)}svg[data-gallery-diagram] [fill=\#bb731c]{fill:var(--lightningcss-light,#bb731c)var(--lightningcss-dark,#e5b880)}svg[data-gallery-diagram] [fill=\#bd6740]{fill:var(--lightningcss-light,#bd6740)var(--lightningcss-dark,#d4a691)}svg[data-gallery-diagram] [fill=\#c84c57]{fill:var(--lightningcss-light,#c84c57)var(--lightningcss-dark,#d78e94)}svg[data-gallery-diagram] [fill=\#c9b18a]{fill:var(--lightningcss-light,#c9b18a)var(--lightningcss-dark,#ceb997)}svg[data-gallery-diagram] [fill=\#d2b77b]{fill:var(--lightningcss-light,#d2b77b)var(--lightningcss-dark,#d4bf91)}svg[data-gallery-diagram] [fill=\#d5a470]{fill:var(--lightningcss-light,#d5a470)var(--lightningcss-dark,#d8b48d)}svg[data-gallery-diagram] [fill=\#d6ad62]{fill:var(--lightningcss-light,#d6ad62)var(--lightningcss-dark,#dbbf8a)}svg[data-gallery-diagram] [fill=\#d87a7e]{fill:var(--lightningcss-light,#d87a7e)var(--lightningcss-dark,#d88d90)}svg[data-gallery-diagram] [fill=\#dba448]{fill:var(--lightningcss-light,#dba448)var(--lightningcss-dark,#e1bf84)}svg[data-gallery-diagram] [fill=\#e8a56d]{fill:var(--lightningcss-light,#e8a56d)var(--lightningcss-dark,#e5ad80)}svg[data-gallery-diagram] [fill=\#e8be72]{fill:var(--lightningcss-light,#e8be72)var(--lightningcss-dark,#e4c181)}svg[data-gallery-diagram] [fill=\#f2c44f]{fill:var(--lightningcss-light,#f2c44f)var(--lightningcss-dark,#e7c97e)}svg[data-gallery-diagram] [stroke=\#0b887c]{stroke:var(--lightningcss-light,#0b887c)var(--lightningcss-dark,#4bddce)}svg[data-gallery-diagram] [stroke=\#128579]{stroke:var(--lightningcss-light,#128579)var(--lightningcss-dark,#4bddce)}svg[data-gallery-diagram] [stroke=\#167da5]{stroke:var(--lightningcss-light,#167da5)var(--lightningcss-dark,#69c0e2)}svg[data-gallery-diagram] [stroke=\#183247]{stroke:var(--lightningcss-light,#183247)var(--lightningcss-dark,#c5d0d8)}svg[data-gallery-diagram] [stroke=\#197da5]{stroke:var(--lightningcss-light,#197da5)var(--lightningcss-dark,#6ac0e1)}svg[data-gallery-diagram] [stroke=\#1d7fb8]{stroke:var(--lightningcss-light,#1d7fb8)var(--lightningcss-dark,#80c0e5)}svg[data-gallery-diagram] [stroke=\#1e3a5f]{stroke:var(--lightningcss-light,#1e3a5f)var(--lightningcss-dark,#d7dde4)}svg[data-gallery-diagram] [stroke=\#203b4d]{stroke:var(--lightningcss-light,#203b4d)var(--lightningcss-dark,#cbd5dc)}svg[data-gallery-diagram] [stroke=\#597181]{stroke:var(--lightningcss-light,#597181)var(--lightningcss-dark,#9bb4c5)}svg[data-gallery-diagram] [stroke=\#5a7183]{stroke:var(--lightningcss-light,#5a7183)var(--lightningcss-dark,#9bb3c5)}svg[data-gallery-diagram] [stroke=\#668997]{stroke:var(--lightningcss-light,#668997)var(--lightningcss-dark,#b1c9d2)}svg[data-gallery-diagram] [stroke=\#6c8998]{stroke:var(--lightningcss-light,#6c8998)var(--lightningcss-dark,#b5c9d4)}svg[data-gallery-diagram] [stroke=\#6d8ba6]{stroke:var(--lightningcss-light,#6d8ba6)var(--lightningcss-dark,#bccddc)}svg[data-gallery-diagram] [stroke=\#6d8fa2]{stroke:var(--lightningcss-light,#6d8fa2)var(--lightningcss-dark,#b9ceda)}svg[data-gallery-diagram] [stroke=\#7299ac]{stroke:var(--lightningcss-light,#7299ac)var(--lightningcss-dark,#c1d6e1)}svg[data-gallery-diagram] [stroke=\#75d8c9]{stroke:var(--lightningcss-light,#75d8c9)var(--lightningcss-dark,#8cd9cd)}svg[data-gallery-diagram] [stroke=\#7760ad]{stroke:var(--lightningcss-light,#7760ad)var(--lightningcss-dark,#a797ce)}svg[data-gallery-diagram] [stroke=\#7962b3]{stroke:var(--lightningcss-light,#7962b3)var(--lightningcss-dark,#a797ce)}svg[data-gallery-diagram] [stroke=\#829eae]{stroke:var(--lightningcss-light,#829eae)var(--lightningcss-dark,#cad9e2)}svg[data-gallery-diagram] [stroke=\#8aa7b7]{stroke:var(--lightningcss-light,#8aa7b7)var(--lightningcss-dark,#c9dae3)}svg[data-gallery-diagram] [stroke=\#8ba3b3]{stroke:var(--lightningcss-light,#8ba3b3)var(--lightningcss-dark,#cad9e2)}svg[data-gallery-diagram] [stroke=\#91a8b6]{stroke:var(--lightningcss-light,#91a8b6)var(--lightningcss-dark,#cbd9e2)}svg[data-gallery-diagram] [stroke=\#94aeba]{stroke:var(--lightningcss-light,#94aeba)var(--lightningcss-dark,#cadbe2)}svg[data-gallery-diagram] [stroke=\#97aebb]{stroke:var(--lightningcss-light,#97aebb)var(--lightningcss-dark,#cad9e2)}svg[data-gallery-diagram] [stroke=\#9ab1bd]{stroke:var(--lightningcss-light,#9ab1bd)var(--lightningcss-dark,#cadae2)}svg[data-gallery-diagram] [stroke=\#9ab7c7]{stroke:var(--lightningcss-light,#9ab7c7)var(--lightningcss-dark,#c7dbe5)}svg[data-gallery-diagram] [stroke=\#9bb2bf]{stroke:var(--lightningcss-light,#9bb2bf)var(--lightningcss-dark,#cad9e2)}svg[data-gallery-diagram] [stroke=\#9caebb]{stroke:var(--lightningcss-light,#9caebb)var(--lightningcss-dark,#cbd8e1)}svg[data-gallery-diagram] [stroke=\#9db2c6]{stroke:var(--lightningcss-light,#9db2c6)var(--lightningcss-dark,#b3c2d0)}svg[data-gallery-diagram] [stroke=\#a5b9c8]{stroke:var(--lightningcss-light,#a5b9c8)var(--lightningcss-dark,#b5c4cf)}svg[data-gallery-diagram] [stroke=\#a7c2ce]{stroke:var(--lightningcss-light,#a7c2ce)var(--lightningcss-dark,#b2c8d1)}svg[data-gallery-diagram] [stroke=\#b27c25]{stroke:var(--lightningcss-light,#b27c25)var(--lightningcss-dark,#e0bd85)}svg[data-gallery-diagram] [stroke=\#b69559]{stroke:var(--lightningcss-light,#b69559)var(--lightningcss-dark,#cebb97)}svg[data-gallery-diagram] [stroke=\#b77c23]{stroke:var(--lightningcss-light,#b77c23)var(--lightningcss-dark,#e1bc84)}svg[data-gallery-diagram] [stroke=\#b9c6cf]{stroke:var(--lightningcss-light,#b9c6cf)var(--lightningcss-dark,#b7c4cd)}svg[data-gallery-diagram] [stroke=\#bb5059]{stroke:var(--lightningcss-light,#bb5059)var(--lightningcss-dark,#d19499)}svg[data-gallery-diagram] [stroke=\#bb731c]{stroke:var(--lightningcss-light,#bb731c)var(--lightningcss-dark,#e5b880)}svg[data-gallery-diagram] [stroke=\#bd6740]{stroke:var(--lightningcss-light,#bd6740)var(--lightningcss-dark,#d4a691)}svg[data-gallery-diagram] [stroke=\#bddbd2]{stroke:var(--lightningcss-light,#bddbd2)var(--lightningcss-dark,#b2d2c8)}svg[data-gallery-diagram] [stroke=\#c3d5df]{stroke:var(--lightningcss-light,#c3d5df)var(--lightningcss-dark,#b1c7d2)}svg[data-gallery-diagram] [stroke=\#c6a45c]{stroke:var(--lightningcss-light,#c6a45c)var(--lightningcss-dark,#d4bf91)}svg[data-gallery-diagram] [stroke=\#c7d6de]{stroke:var(--lightningcss-light,#c7d6de)var(--lightningcss-dark,#b3c6d0)}svg[data-gallery-diagram] [stroke=\#c84c57]{stroke:var(--lightningcss-light,#c84c57)var(--lightningcss-dark,#d78e94)}svg[data-gallery-diagram] [stroke=\#c9d9e2]{stroke:var(--lightningcss-light,#c9d9e2)var(--lightningcss-dark,#b1c6d2)}svg[data-gallery-diagram] [stroke=\#cbd8e0]{stroke:var(--lightningcss-light,#cbd8e0)var(--lightningcss-dark,#b4c5d0)}svg[data-gallery-diagram] [stroke=\#cddce4]{stroke:var(--lightningcss-light,#cddce4)var(--lightningcss-dark,#b1c7d2)}svg[data-gallery-diagram] [stroke=\#d1dfe7]{stroke:var(--lightningcss-light,#d1dfe7)var(--lightningcss-dark,#b1c6d3)}svg[data-gallery-diagram] [stroke=\#d5cae5]{stroke:var(--lightningcss-light,#d5cae5)var(--lightningcss-dark,#beafd5)}svg[data-gallery-diagram] [stroke=\#d7ece8]{stroke:var(--lightningcss-light,#d7ece8)var(--lightningcss-dark,#aed6ce)}svg[data-gallery-diagram] [stroke=\#d8bb81]{stroke:var(--lightningcss-light,#d8bb81)var(--lightningcss-dark,#d7bf8e)}svg[data-gallery-diagram] [stroke=\#d8c287]{stroke:var(--lightningcss-light,#d8c287)var(--lightningcss-dark,#d6c38f)}svg[data-gallery-diagram] [stroke=\#dbe6ec]{stroke:var(--lightningcss-light,#dbe6ec)var(--lightningcss-dark,#b1c7d3)}svg[data-gallery-diagram] [stroke=\#dce7ed]{stroke:var(--lightningcss-light,#dce7ed)var(--lightningcss-dark,#b0c7d3)}svg[data-gallery-diagram] [stroke=\#dceff7]{stroke:var(--lightningcss-light,#dceff7)var(--lightningcss-dark,#a8ccdc)}svg[data-gallery-diagram] [stroke=\#e1e9ee]{stroke:var(--lightningcss-light,#e1e9ee)var(--lightningcss-dark,#b2c5d1)}svg[data-gallery-diagram] [stroke=\#e2d2b7]{stroke:var(--lightningcss-light,#e2d2b7)var(--lightningcss-dark,#d9c8aa)}svg[data-gallery-diagram] [stroke=\#e4cfa8]{stroke:var(--lightningcss-light,#e4cfa8)var(--lightningcss-dark,#dccaa8)}svg[data-gallery-diagram] [stroke=\#e4edf2]{stroke:var(--lightningcss-light,#e4edf2)var(--lightningcss-dark,#afc8d5)}svg[data-gallery-diagram] [stroke=\#e8f4fa]{stroke:var(--lightningcss-light,#e8f4fa)var(--lightningcss-dark,#a8cadc)}svg[data-gallery-diagram] [stroke=\#edf3f6]{stroke:var(--lightningcss-light,#edf3f6)var(--lightningcss-dark,#b0c8d4)}svg[data-gallery-diagram] [stroke=\#efd6d9]{stroke:var(--lightningcss-light,#efd6d9)var(--lightningcss-dark,#daaaaf)}svg[data-gallery-diagram] [stroke=\#f7fafc]{stroke:var(--lightningcss-light,#f7fafc)var(--lightningcss-dark,#a9c7db)}svg[data-gallery-diagram] [stroke=\#fff],svg[data-gallery-diagram] [stroke=\#ffffff]{stroke:var(--lightningcss-light,#fff)var(--lightningcss-dark,#b7c4cd)}svg[data-gallery-diagram] [stop-color=\#b9dde5]{stop-color:var(--lightningcss-light,#b9dde5)var(--lightningcss-dark,#2f555e)}svg[data-gallery-diagram] [stop-color=\#e4f4f7]{stop-color:var(--lightningcss-light,#e4f4f7)var(--lightningcss-dark,#152b2f)}svg[data-gallery-diagram] [data-diagram-paint=screen]{fill:var(--lightningcss-light,#203b4d)var(--lightningcss-dark,#16242f)}svg[data-gallery-diagram] [data-diagram-paint=screen-ink]{fill:var(--lightningcss-light,#fff)var(--lightningcss-dark,#cbd5dc)}.topic-flowchart{border:1px solid var(--border-light);border-radius:var(--radius-md);background:var(--bg-primary);margin:1.5rem 0;overflow-x:auto}.topic-flowchart:focus-visible{outline:2px solid var(--border-focus);outline-offset:3px}svg[data-flowchart]{width:100%;min-width:var(--flowchart-width);height:auto;color:var(--text-primary);display:block;background:var(--bg-primary)!important;font-family:var(--font-sans)!important;border:0!important;border-radius:0!important;margin:0!important}svg[data-flowchart] text{fill:var(--text-primary);font-family:var(--font-sans)}svg[data-flowchart] tspan{fill:inherit;font-family:inherit}svg[data-flowchart] rect,svg[data-flowchart] circle,svg[data-flowchart] ellipse,svg[data-flowchart] polygon{fill:var(--bg-card);stroke:var(--border-subtle);stroke-width:1.5px}svg[data-flowchart] line,svg[data-flowchart] polyline,svg[data-flowchart] path{stroke:var(--accent-primary)}svg[data-flowchart] [fill=none]{fill:none}svg[data-flowchart] [stroke=none]{stroke:none}svg[data-flowchart] [data-flowchart-tone=accent]{fill:var(--accent-light);stroke:var(--accent-primary)}svg[data-flowchart] [data-flowchart-tone=warning]{fill:var(--status-warn-bg);stroke:var(--status-warn-border)}svg[data-flowchart] [data-flowchart-tone=danger]{fill:var(--status-danger-bg);stroke:var(--status-danger-border)}svg[data-flowchart] [data-flowchart-tone=note]{fill:var(--bg-subtle);stroke:var(--border-light)}svg[data-flowchart] text[data-flowchart-tone=warning],svg[data-flowchart] tspan[data-flowchart-tone=warning]{fill:var(--status-warn-text);stroke:none}svg[data-flowchart] text[data-flowchart-tone=danger],svg[data-flowchart] tspan[data-flowchart-tone=danger]{fill:var(--status-danger-text);stroke:none}svg[data-flowchart] text[data-flowchart-tone=note],svg[data-flowchart] tspan[data-flowchart-tone=note]{fill:var(--text-muted);stroke:none}svg[data-flowchart] [data-flowchart-part=background]{fill:var(--bg-primary);stroke:none}svg[data-flowchart] marker path,svg[data-flowchart] marker polygon,svg[data-flowchart] [data-flowchart-part=arrow]{fill:var(--accent-primary);stroke:var(--accent-primary)}.reading-progress-bar{top:var(--header-height);background:var(--accent-primary);z-index:99;width:0%;height:3px;transition:width .1s ease-out;position:fixed;left:0}body:has(.topic-page-layout) .header-container{max-width:1600px;padding:0 2rem}.topic-page-layout{grid-template-columns:minmax(0,1fr) 215px;align-items:start;gap:2rem;max-width:1120px;margin:0 auto;padding:2.25rem 2rem 4rem;display:grid}.topic-main-column{width:100%;min-width:0;max-width:800px;margin:0 auto}.topic-breadcrumbs{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:1.25rem;font-size:.8rem;line-height:1.5;display:flex}.topic-breadcrumbs a{color:var(--text-secondary);text-decoration:none;transition:color .15s}.topic-breadcrumbs a:hover{color:var(--accent-primary)}.topic-breadcrumbs .crumb-sep{color:var(--text-faint)}.toc-card-head{justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.85rem;display:flex}.toc-card-head .toc-title{margin-bottom:0}.panel-collapse{background:var(--bg-subtle);border:1px solid var(--border-light);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;flex:none;padding:.35rem .45rem;font-size:.78rem;transition:all .15s}.panel-collapse:hover{color:var(--accent-primary);background:var(--accent-light)}.sidebar-rail{z-index:90;background:var(--bg-card);border:1px solid var(--border-light);width:34px;height:68px;color:var(--text-muted);cursor:pointer;box-shadow:var(--shadow-sm);justify-content:center;align-items:center;font-size:.8rem;transition:all .15s;display:none;position:fixed;top:50%;transform:translateY(-50%)}.rail-right{border-right:none;border-radius:10px 0 0 10px;right:0}.sidebar-rail:hover{color:var(--accent-primary);border-color:var(--accent-border);background:var(--accent-light)}.topic-page-layout.no-right .rail-right{display:inline-flex}@media (max-width:1200px){.rail-right{display:none!important}}@media (max-width:992px){.sidebar-rail{display:none!important}}.topic-page-layout.no-right{grid-template-columns:minmax(0,1fr);max-width:960px}.topic-page-layout.no-right .topic-sidebar{display:none}.topic-page-layout.is-diagram-topic,.topic-page-layout[data-is-diagram=true],.topic-page-layout[data-page-topic-slug^=line-diagram]{max-width:1600px;grid-template-columns:minmax(0,1fr)!important}.topic-top-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.9rem;display:flex}.topic-top-bar .back-btn{border-radius:var(--radius-sm);color:var(--text-secondary);box-shadow:none;background:0 0;border:1px solid #0000;margin-bottom:0;padding:.5rem .85rem;font-size:.8rem;font-weight:600}.topic-top-bar .back-btn:hover{background:var(--bg-subtle);border-color:var(--border-subtle);color:var(--text-primary)}.topic-utility-actions{align-items:center;gap:.45rem;display:flex}.topic-browse-btn{margin-left:auto}.topic-actions-menu{position:relative}.topic-actions-menu>summary{list-style:none}.topic-actions-menu>summary::-webkit-details-marker{display:none}.topic-actions-menu .topic-utility-actions{z-index:97;border:1px solid var(--border-light);border-radius:var(--radius-md);background:var(--bg-card);min-width:160px;box-shadow:var(--shadow-md);flex-direction:column;align-items:stretch;padding:.4rem;position:absolute;top:calc(100% + .35rem);right:0}.topic-actions-menu:not([open]) .topic-utility-actions{display:none}.topic-actions-menu .topic-action-btn{min-height:44px}.topic-browser{overscroll-behavior:contain;width:min(560px,100% - 2rem);max-height:min(75vh,720px);color:var(--text-primary);background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);margin:auto;padding:1.25rem;overflow-y:auto}.topic-browser::backdrop{background:var(--scrim-strong)}.topic-browser-head{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem;display:flex}.topic-browser-head h2{margin:0;font-size:1.2rem}.topic-browser-head p{color:var(--text-muted);margin:.25rem 0 0;font-size:.85rem}.topic-browser .course-nav-list{padding:0}.topic-references{border-top:1px solid var(--border-light);color:var(--text-secondary);margin:2rem 0;padding-top:1.25rem;font-size:.9rem}.topic-references h2{color:var(--text-primary);font-size:1.2rem}.topic-references p{color:var(--text-muted);margin:.25rem 0 0}.topic-action-btn{color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;box-shadow:none;white-space:nowrap;-webkit-tap-highlight-color:transparent;background:0 0;border:1px solid #0000;align-items:center;gap:.42rem;padding:.5rem .75rem;font-family:inherit;font-size:.8rem;font-weight:600;line-height:1.35;transition:color .15s,border-color .15s,background-color .15s;display:inline-flex}.topic-action-btn:hover{color:var(--text-primary);border-color:var(--border-subtle);background:var(--bg-subtle)}.topic-action-btn.is-bookmarked{color:var(--accent-primary);border-color:var(--accent-border);background:var(--accent-light)}.topic-header{margin-bottom:2.75rem;padding:0}.topic-title{font-family:var(--font-display);letter-spacing:-.045em;color:var(--text-primary);text-wrap:balance;overflow-wrap:anywhere;width:100%;margin-bottom:0;font-size:2.75rem;font-weight:700;line-height:1.18}.topic-description{max-width:65ch;color:var(--text-secondary);margin:1.15rem 0 0;font-size:1.15rem;line-height:1.7}.topic-meta{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:.65rem 1rem;margin-top:1.5rem;font-size:.8rem;line-height:1.5;display:flex}.topic-meta-item{align-items:center;gap:.4rem;min-width:0;display:inline-flex}.topic-meta-item+.topic-meta-item{border-left:1px solid var(--border-light);padding-left:1rem}@media (max-width:768px){.topic-top-bar,.topic-top-bar .back-btn{margin-bottom:.5rem}}@media (max-width:640px){.table-wrap table{min-width:600px}.topic-table th,.topic-table td,.comparison-table th,.comparison-table td{padding:.55rem .65rem;font-size:.82rem}}.article-section>h2,.article-section>h3,.article-subsection>h2,.article-subsection>h3{font-family:var(--font-display);text-wrap:balance}.topic-top-bar .back-btn:focus-visible,.topic-action-btn:focus-visible,.panel-collapse:focus-visible,.sidebar-rail:focus-visible,.course-nav-link:focus-visible,.toc-link:focus-visible,.topic-nav-btn:focus-visible,.topic-actions-menu>summary:focus-visible,.mobile-toc-close:focus-visible,.mobile-toc-link:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}.article-section{scroll-margin-top:calc(var(--header-height) + 1.5rem);margin-bottom:3rem;transition:background-color .3s,box-shadow .3s}.article-section.is-anchor-target{border-radius:var(--radius-md);animation:2.4s cubic-bezier(.16,1,.3,1) forwards anchor-target-highlight}.article-subsection{scroll-margin-top:calc(var(--header-height) + 1.5rem);border-radius:var(--radius-md);transition:background-color .3s,box-shadow .3s}.article-subsection.is-anchor-target{animation:2.4s cubic-bezier(.16,1,.3,1) forwards anchor-target-highlight}@keyframes anchor-target-highlight{0%{background-color:#0186cc1f;box-shadow:0 0 0 10px #0186cc1f}60%{background-color:#0186cc0f;box-shadow:0 0 0 8px #0186cc0f}to{background-color:#0000;box-shadow:0 0 #0000}}.article-section h2{letter-spacing:-.02em;color:var(--text-primary);border-bottom:1px solid var(--border-light);margin-bottom:1.2rem;padding-bottom:.75rem;font-size:1.55rem;font-weight:700;line-height:1.35}.article-section h4{color:var(--text-primary);margin:1.5rem 0 .75rem;font-size:1.1rem;font-weight:600}.article-section p{color:var(--text-secondary);margin-bottom:1.25rem;font-size:1.0625rem;line-height:1.8}.article-section>p,.article-subsection>p{max-width:72ch}.article-section p a,.article-section li a{color:var(--accent-primary);text-underline-offset:2px;text-decoration:underline}.article-section p a:visited,.article-section li a:visited{color:var(--accent-primary)}.article-section p a:hover,.article-section li a:hover{color:var(--accent-hover)}.article-section a.cite-ref{white-space:nowrap;border:1px solid var(--accent-border);background:var(--accent-light);border-radius:999px;align-items:baseline;padding:.05em .5em .08em;font-size:.88em;font-weight:600;line-height:1.4;text-decoration:none;display:inline-flex}.article-section a.cite-ref:hover{background:var(--accent-solid);border-color:var(--accent-solid);color:var(--accent-on-solid)}.article-section ul,.article-section ol{color:var(--text-secondary);flex-direction:column;gap:.6rem;margin:0 0 1.5rem 1.5rem;font-size:1rem;line-height:1.6;display:flex}.article-section h3{color:var(--text-primary);margin:1.9rem 0 .75rem;font-size:1.18rem;font-weight:600;line-height:1.4}.article-section li{line-height:1.65}.article-section .topic-code{background:var(--bg-subtle);border:1px solid var(--border-light);border-radius:var(--radius-md);margin:1.25rem 0 1.75rem;padding:1rem 1.15rem;overflow-x:auto}.article-section .topic-code code{font-family:var(--font-mono);color:var(--text-primary);white-space:pre;font-size:.85rem;line-height:1.6;display:block}.article-section .topic-rule{border:0;border-top:1px solid var(--border-light);margin:2rem 0}.article-section div.formula-box{overflow-x:auto}.article-section blockquote{border-left:3px solid var(--accent-primary);background:var(--bg-subtle);border-radius:0 var(--radius-md) var(--radius-md) 0;box-shadow:var(--shadow-sm);color:var(--text-secondary);margin:1.5rem 0;padding:1rem 1.25rem;font-style:italic}.article-section blockquote p{margin-bottom:0;font-size:1rem}div.formula-box,.article-section div.formula-box{background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius-md);text-align:center;font-family:var(--font-mono);color:var(--text-primary);box-shadow:var(--shadow-sm);margin:1.25rem 0 1.5rem;padding:1rem 1.25rem;font-size:1.05rem;font-weight:600;display:block;overflow-x:auto}.article-section .frac{vertical-align:middle;text-align:center;flex-direction:column;margin:0 .25em;display:inline-flex}.article-section .frac .num{border-bottom:1.5px solid var(--text-primary);padding:0 .4em .08em}.article-section .frac .den{padding:.08em .4em 0}span.formula-box,span.formula-inline,.formula-inline,.article-section span.formula-box,.article-section span.formula-inline,.article-section .formula-inline{background:var(--bg-subtle);border:1px solid var(--border-light);font-family:var(--font-mono);font-size:.88em;font-weight:600;line-height:inherit;vertical-align:baseline;white-space:normal;box-shadow:none;text-align:initial;color:var(--text-primary);border-radius:4px;margin:0 .05em;padding:.08em .3em;display:inline}span.formula-box sub,span.formula-inline sub,.formula-inline sub,.article-section sub{vertical-align:baseline;font-size:.72em;line-height:0;position:relative;bottom:-.22em}span.formula-box sup,span.formula-inline sup,.formula-inline sup,.article-section sup{vertical-align:baseline;font-size:.72em;line-height:0;position:relative;top:-.38em}.article-section table.table-striped tbody tr:nth-child(2n) td{background:var(--bg-subtle)}.article-section .sqrt{vertical-align:middle;align-items:flex-start;display:inline-flex}.article-section .sqrt-symbol{margin-right:1px;font-size:1.35em;line-height:1.1}.article-section .sqrt-body{border-top:1.5px solid var(--text-primary);padding:.05em .25em 0;line-height:1.9}.comparison-table{border-collapse:collapse;background:var(--bg-primary);border-radius:var(--radius-md);border:1px solid var(--border-light);width:100%;margin:1.5rem 0;font-size:.925rem;overflow:hidden}.comparison-table th{background:var(--bg-elevated);text-align:left;color:var(--text-primary);border-bottom:1px solid var(--border-light);padding:.85rem 1rem;font-weight:600}.comparison-table td{border-bottom:1px solid var(--border-light);color:var(--text-secondary);padding:.85rem 1rem;line-height:1.5}.comparison-table tr:last-child td{border-bottom:none}.course-nav-card{background:0 0}.course-nav-count{color:var(--accent-primary);margin-bottom:.75rem;font-size:.78rem;font-weight:600}.course-nav-list{flex-direction:column;gap:.25rem;margin-bottom:1rem;list-style:none;display:flex}.course-nav-link{border-radius:var(--radius-sm);color:var(--text-secondary);border:1px solid #0000;align-items:flex-start;gap:.65rem;padding:.6rem .65rem;font-size:.85rem;line-height:1.5;text-decoration:none;transition:color .15s,border-color .15s,background-color .15s;display:flex}.course-nav-link:hover{background:var(--bg-subtle);border-color:var(--border-light);color:var(--text-primary)}.course-nav-link.active{background:var(--accent-light);border-color:var(--accent-border);color:var(--accent-primary);font-weight:600}.course-nav-index{color:var(--text-muted);justify-content:center;align-items:center;font-size:.7rem;font-weight:700;display:inline-flex;position:absolute;inset:0}.course-nav-link.active .course-nav-index{color:var(--accent-primary)}.course-nav-link.is-done .course-nav-index{color:#fff}.course-nav-ring{flex:none;width:30px;height:30px;margin-top:.05rem;position:relative}.course-nav-ring>svg{width:30px;height:30px;display:block;transform:rotate(-90deg)}.course-nav-index svg.icon{width:.75rem;height:.75rem;transform:none}.course-nav-ring .ring-track{fill:none;stroke:var(--border-light);stroke-width:3px}.course-nav-ring .ring-fill{fill:none;stroke:var(--border-subtle);stroke-width:3px;stroke-linecap:round;stroke-dasharray:81.68;stroke-dashoffset:81.68px}.course-nav-link.active .ring-fill{stroke:var(--accent-primary)}.course-nav-link.is-done .course-nav-ring{background:var(--accent-solid);border-radius:50%}.course-nav-link.is-done .ring-track{stroke:#ffffff59}.course-nav-link.is-done .ring-fill{stroke:var(--accent-on-solid-soft);stroke-dashoffset:0}.course-nav-link.is-done .course-nav-index{font-size:.62rem}.course-nav-text{overflow-wrap:anywhere;min-width:0}.course-nav-all{color:var(--accent-primary);border-top:1px solid var(--border-light);align-items:center;gap:.45rem;width:100%;padding-top:.85rem;font-size:.82rem;font-weight:600;text-decoration:none;display:inline-flex}.course-nav-all:hover{color:var(--accent-hover);text-decoration:underline}.topic-sidebar{top:calc(var(--header-height) + 2rem);max-height:calc(100vh - var(--header-height) - 4rem);max-height:calc(100dvh - var(--header-height) - 4rem);flex-direction:column;gap:1.5rem;display:flex;position:sticky}.toc-card{background:0 0;border:none;border-radius:0;padding:1.25rem}.toc-title{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.075em;color:var(--text-secondary);margin-bottom:.85rem;font-size:.72rem;font-weight:600}.toc-list{flex-direction:column;gap:.25rem;list-style:none;display:flex}.toc-link{color:var(--text-secondary);overflow-wrap:anywhere;border-left:2px solid #0000;border-radius:0;padding:.5rem .6rem;font-size:.85rem;line-height:1.5;text-decoration:none;transition:all .15s;display:block}.toc-link:hover{background:var(--bg-subtle);color:var(--text-primary)}.toc-link.active{border-color:var(--accent-primary);color:var(--accent-primary);background:0 0;font-weight:600}.toc-onpage-card{flex-direction:column;min-height:0;display:flex;overflow:hidden}.topic-sidebar .toc-onpage-card{padding:0}.topic-sidebar .toc-onpage-card .toc-card-head{margin-bottom:0;padding:.5rem .5rem .9rem}.topic-sidebar .toc-onpage-card .toc-list{margin:0 0 .7rem}.topic-sidebar .toc-onpage-card .toc-link{padding:.55rem .5rem}.toc-onpage{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--border-subtle) var(--bg-elevated);flex:auto;min-height:0;padding-right:.4rem;overflow-y:auto}.toc-onpage::-webkit-scrollbar{width:8px}.toc-onpage::-webkit-scrollbar-track{background:var(--bg-elevated);border-radius:999px}.toc-onpage::-webkit-scrollbar-thumb{background:var(--border-subtle);border-radius:999px}.toc-onpage::-webkit-scrollbar-thumb:hover{background:var(--text-faint)}.toc-list-scroll{scrollbar-width:thin;scrollbar-color:var(--border-subtle) var(--bg-elevated);background:linear-gradient(var(--bg-subtle) 30%, var(--bg-subtle-fade)) center top, linear-gradient(var(--bg-subtle-fade), var(--bg-subtle) 70%) center bottom, radial-gradient(farthest-side at 50% 0, var(--scroll-shadow), transparent) center top, radial-gradient(farthest-side at 50% 100%, var(--scroll-shadow), transparent) center bottom;background-repeat:no-repeat;background-size:100% 1.5rem,100% 1.5rem,100% .55rem,100% .55rem;background-attachment:local,local,scroll,scroll;max-height:22rem;padding-right:.4rem;overflow-y:auto}.toc-list-scroll::-webkit-scrollbar{width:8px}.toc-list-scroll::-webkit-scrollbar-track{background:var(--bg-elevated);border-radius:999px}.toc-list-scroll::-webkit-scrollbar-thumb{background:var(--border-subtle);border-radius:999px}.toc-list-scroll::-webkit-scrollbar-thumb:hover{background:var(--text-faint)}.topic-nav-footer{border-top:1px solid var(--border-light);justify-content:space-between;gap:1.5rem;margin-top:4rem;padding-top:2rem;display:flex}.topic-feedback{background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1.15rem;margin-top:2.5rem;padding:1.15rem 1.35rem;transition:border-color .15s,box-shadow .15s;display:flex}.topic-feedback:hover{border-color:var(--accent-border);box-shadow:var(--shadow-md)}.topic-feedback-head{flex:260px;align-items:flex-start;gap:.85rem;min-width:0;display:flex}.topic-feedback-icon{border-radius:var(--radius-md);background:var(--accent-light);width:36px;height:36px;color:var(--accent-primary);flex:none;justify-content:center;align-items:center;font-size:.95rem;display:inline-flex}.topic-feedback-body{min-width:0}.topic-feedback-title{color:var(--text-primary);margin:0;font-size:.95rem;font-weight:600;line-height:1.35}.topic-feedback-sub{color:var(--text-muted);margin:.2rem 0 0;font-size:.85rem;line-height:1.5}.topic-feedback-btn{cursor:pointer;font:inherit;border:1px solid var(--accent-solid);border-radius:var(--radius-md);background:var(--accent-solid);color:var(--accent-on-solid);white-space:nowrap;flex:none;align-items:center;gap:.5rem;padding:.6rem 1.1rem;font-size:.9rem;font-weight:600;transition:background .15s,border-color .15s;display:inline-flex}.topic-feedback-btn:hover{background:var(--accent-solid-hover);border-color:var(--accent-solid-hover)}.topic-feedback-btn:focus-visible{outline:2px solid var(--accent-ring);outline-offset:2px}@media (max-width:560px){.topic-feedback{flex-direction:column;align-items:stretch}.topic-feedback-btn{justify-content:center;width:100%}}.topic-nav-btn{background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius-md);min-width:0;max-width:360px;box-shadow:var(--shadow-sm);flex-direction:column;flex:1;gap:.6rem;padding:1.25rem 1.35rem;text-decoration:none;transition:border-color .15s,box-shadow .15s,background-color .15s;display:flex}.topic-nav-btn:hover{border-color:var(--accent-border);box-shadow:var(--shadow-md);background:var(--accent-light)}.topic-nav-next{text-align:right;margin-left:auto}.topic-nav-prev+.topic-nav-next{margin-left:0}.topic-nav-label{text-transform:uppercase;letter-spacing:.06em;color:var(--accent-primary);align-items:center;gap:.35rem;font-size:.75rem;font-weight:600;display:inline-flex}.topic-nav-next .topic-nav-label{justify-content:flex-end}.topic-nav-title{font-family:var(--font-display);color:var(--text-primary);overflow-wrap:anywhere;font-size:.95rem;font-weight:600;line-height:1.5}@media (max-width:1200px){.topic-page-layout{grid-template-columns:minmax(0,1fr);gap:2rem}.topic-sidebar{display:none}.topic-main-column{max-width:800px}.article-section{scroll-margin-top:calc(var(--header-height) + 48px + 1rem)}}@media (max-width:992px){.topic-page-layout{grid-template-columns:1fr;gap:2rem;padding:1.25rem 1.25rem 4rem}.topic-title{margin-bottom:0;font-size:2.25rem;line-height:1.3}.topic-header{margin-bottom:2.25rem}}@media (max-width:768px){.topic-page-layout{padding:.75rem 1rem 3.5rem}.topic-browse-btn{margin-left:0}.topic-actions-menu{margin-left:auto}.topic-meta-item+.topic-meta-item{border-left:0;padding-left:0}.back-btn{display:none!important}.topic-breadcrumbs{white-space:nowrap;-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-wrap:nowrap;gap:.35rem;margin-bottom:.45rem;font-size:.78rem;overflow-x:auto}.topic-breadcrumbs::-webkit-scrollbar{display:none}.topic-breadcrumbs:before{content:"←";color:var(--accent-primary);flex:none;margin-right:.2rem;font-size:.85rem;font-weight:700}.topic-breadcrumbs span:last-child,.topic-breadcrumbs .crumb-sep:last-of-type{display:none!important}.topic-title{letter-spacing:-.035em;margin-bottom:0;font-size:clamp(1.75rem,7vw,2.25rem);font-weight:700;line-height:1.25}.topic-header{margin-bottom:2rem}.topic-description{margin-top:.9rem;font-size:1.025rem;line-height:1.65}.topic-meta{gap:.5rem .75rem;margin-top:1.1rem;font-size:.75rem}.article-section{margin-bottom:2.25rem}.article-section h2{letter-spacing:-.02em;margin-bottom:.9rem;padding-bottom:.4rem;font-size:1.28rem;line-height:1.32}.article-section h3{margin:1.4rem 0 .6rem;font-size:1.08rem;line-height:1.38}.article-section h4{margin:1.2rem 0 .5rem;font-size:1rem;line-height:1.4}.article-section p{margin-bottom:1.15rem;font-size:1rem;line-height:1.75}.article-section ul,.article-section ol{gap:.5rem;margin:0 0 1.25rem 1.15rem;font-size:.96rem;line-height:1.6}.topic-nav-footer{border-top:1px solid var(--border-light);flex-direction:column;gap:.75rem;margin-top:2rem;padding-top:1.75rem;display:flex}.topic-nav-btn{border-radius:var(--radius-md);background:var(--bg-card);border:1px solid var(--border-light);gap:.3rem;width:100%;max-width:100%;padding:.9rem 1.1rem;text-align:left!important}.topic-nav-next{background:var(--bg-card);border-color:var(--border-light);text-align:left!important;margin-left:0!important}.topic-nav-next .topic-nav-label{justify-content:flex-start!important}.topic-nav-label{letter-spacing:.04em;color:var(--accent-primary);align-items:center;gap:.35rem;font-size:.72rem;font-weight:700;display:inline-flex}.topic-nav-title{color:var(--text-primary);font-size:.95rem;font-weight:600;line-height:1.4}.topic-end-series-nav{margin-top:1.75rem;margin-bottom:0}.topic-end-series-nav .toc-card{border-radius:var(--radius-md);padding:1.15rem}.topic-end-course-list{max-height:18rem}.topic-related-section{border-top:1px solid var(--border-light);margin-top:1.75rem;padding-top:1.75rem}.topic-related-header{justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:1rem;display:flex}.topic-related-heading{font-size:1.15rem;line-height:1.35}.topic-related-badge{padding:.2rem .55rem;font-size:.68rem}.topic-related-grid{grid-template-columns:1fr;gap:.75rem}.topic-related-card{border-radius:var(--radius-md);padding:.9rem 1.1rem}.topic-related-card-title{margin:.35rem 0 .4rem;font-size:.95rem}.topic-related-card-desc{-webkit-line-clamp:2;margin-bottom:.75rem;font-size:.82rem;line-height:1.45}}.topic-figure{background:var(--bg-primary);border:1px solid var(--border-light);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);margin:2rem 0 2.5rem;overflow:hidden}.topic-figure-img,.topic-figure-svg,.topic-figure>svg{background:#fff;width:100%;height:auto;display:block;border:none!important;border-radius:0!important;margin:0!important}.topic-figure figcaption{background:var(--bg-subtle);border-top:1px solid var(--border-light);color:var(--text-secondary);padding:.85rem 1.25rem;font-size:.85rem;line-height:1.5}.naval-flow-wrap{border:1px solid var(--border-light);border-radius:var(--radius-lg);background:var(--bg-subtle);max-width:100%;margin:1.25rem 0;overflow-x:auto}.naval-flow-wrap:focus-visible{outline:2px solid var(--border-focus);outline-offset:3px}.naval-flow-diagram{width:100%;min-width:680px;height:auto;font-family:system-ui,-apple-system,sans-serif;display:block}.naval-flow-diagram text{fill:var(--text-primary)}.naval-flow-diagram rect{fill:var(--bg-primary);stroke:var(--border-subtle)}.naval-flow-diagram line{stroke:var(--accent-primary)}.naval-flow-diagram marker path{fill:var(--accent-primary)}.naval-flow-diagram .naval-flow-result{fill:var(--accent-light);stroke:var(--accent-border)}.naval-flow-diagram .naval-flow-result-label{fill:var(--accent-hover)}.takeaway-bullet{color:var(--accent-primary);margin-right:.5rem;font-size:.85rem}.m3d{border:1px solid var(--border-light);border-radius:var(--radius-lg);background:var(--bg-primary);box-shadow:var(--shadow-sm);margin:2rem 0 2.5rem;overflow:hidden}.m3d-head{border-bottom:1px solid var(--border-light);background:linear-gradient(180deg, var(--accent-light), var(--bg-primary));padding:1rem 1.25rem}.m3d-title{color:var(--text-primary);align-items:center;gap:.5rem;font-size:.95rem;font-weight:700;display:flex}.m3d-sub{color:var(--text-muted);margin-top:.35rem;font-size:.83rem;line-height:1.55}.m3d-body{grid-template-columns:minmax(0,1fr) 286px;align-items:start;display:grid}.m3d.m3d-expanded{z-index:9999;background:var(--bg-primary);border:0;border-radius:0;flex-direction:column;margin:0;display:flex;position:fixed;inset:0}.m3d.m3d-expanded .m3d-head,.m3d.m3d-expanded .m3d-controls{flex:none}.m3d.m3d-expanded .m3d-body{flex:auto;grid-template-columns:minmax(0,1fr) 300px;height:100%;min-height:0}.m3d.m3d-expanded .m3d-panel{height:100%;min-height:0;max-height:none;display:block}.m3d.m3d-expanded .m3d-stage{height:100%;min-height:0;max-height:none}.m3d-stage{touch-action:none;background:radial-gradient(circle at 50% 28%,#fff 0%,#eef4fa 100%);height:560px;min-height:460px;max-height:72vh;position:relative;overflow:hidden}.m3d-canvas{width:100%;height:100%;display:block;position:absolute;inset:0}.m3d-fallback{text-align:center;color:var(--text-muted);justify-content:center;align-items:center;padding:1.5rem;font-size:.88rem;display:flex;position:absolute;inset:0}.m3d-labels{pointer-events:none;z-index:2;position:absolute;inset:0;overflow:hidden}.m3d-tag{border:1px solid var(--border-light);border-left:3px solid var(--tag-color,var(--accent-primary));color:var(--text-secondary);white-space:nowrap;letter-spacing:.01em;pointer-events:auto;cursor:pointer;background:#fffffff0;border-radius:999px;align-items:center;gap:.35rem;padding:.16rem .5rem .16rem .42rem;font-size:.68rem;font-weight:600;display:none;position:absolute;top:0;left:0;box-shadow:0 2px 6px -2px #0f172a40}.m3d-tag.on{display:inline-flex}.m3d-tag.on:hover{border-color:var(--accent-border);color:var(--text-primary);box-shadow:0 0 0 2px var(--accent-ring), 0 3px 8px -2px #0f172a4d}.m3d-tag.selected{color:var(--text-primary);box-shadow:0 0 0 2px var(--accent-ring), 0 3px 8px -2px #0f172a4d}.m3d-tag-dot{background:var(--tag-color,var(--accent-primary));border-radius:50%;width:7px;height:7px}.m3d-topbar{z-index:3;pointer-events:none;scrollbar-width:none;flex-direction:row;justify-content:flex-start;padding-bottom:.15rem;display:flex;position:absolute;top:.6rem;left:.7rem;right:.7rem;overflow-x:auto}.m3d-topbar::-webkit-scrollbar{display:none}.m3d-controls{border-top:1px solid var(--border-light);border-bottom:1px solid var(--border-light);background:var(--bg-subtle);flex-direction:column;align-items:flex-start;gap:.35rem;padding:.6rem .9rem;display:flex}.m3d-modes,.m3d-play{flex-wrap:wrap;gap:.3rem;display:flex}.m3d-mode,.m3d-action{white-space:nowrap;flex:none}.m3d-mode{-webkit-backdrop-filter:blur(8px);color:var(--text-secondary);cursor:pointer;background:#ffffffeb;border:1px solid #0f172a1f;border-radius:999px;padding:.32rem .65rem;font-size:.72rem;font-weight:600;transition:background .15s,color .15s,border-color .15s,box-shadow .15s;box-shadow:0 1px 4px -2px #0f172a40}.m3d-mode:hover{border-color:var(--accent-border);color:var(--accent-primary)}.m3d-mode.active{background:var(--accent-primary);border-color:var(--accent-primary);color:#fff;box-shadow:0 2px 8px -2px #2563eb8c}.m3d-bottombar{pointer-events:auto;border:1px solid var(--border-light);-webkit-backdrop-filter:blur(10px);background:#ffffffe0;border-radius:12px;flex-direction:column;align-items:flex-start;gap:.35rem;max-width:100%;padding:.45rem .55rem;display:flex;box-shadow:0 6px 18px -10px #0f172a59}.m3d-bottombar:empty{display:none}.m3d-dock{z-index:4;pointer-events:none;flex-direction:column;gap:.45rem;display:flex;position:absolute;bottom:.6rem;left:.7rem;right:.7rem}.m3d-dock>*{pointer-events:auto}.m3d-readout{border:1px solid var(--border-light);color:var(--text-secondary);scrollbar-width:thin;background:#fffffff0;border-radius:10px;flex-direction:column;gap:.2rem;max-height:7.2rem;margin:0;padding:.55rem .7rem;font-size:.74rem;line-height:1.5;display:flex;overflow-y:auto}.m3d-readout strong{color:var(--text-primary)}.m3d-readout.has-component{border-color:var(--accent-border);box-shadow:0 6px 16px -8px #0f172a59}.m3d-readout-title{color:var(--text-primary);align-items:center;gap:.4rem;font-size:.78rem;font-weight:700;display:flex}.m3d-readout-dot{border-radius:50%;flex:none;width:9px;height:9px;box-shadow:inset 0 0 0 1px #0f172a2e}.m3d-readout-text{color:var(--text-secondary);scrollbar-width:thin;min-height:0;max-height:4.6em;padding-right:.25rem;overflow-y:auto}.m3d-panel{border-left:1px solid var(--border-light);background:var(--bg-subtle);overscroll-behavior:contain;scrollbar-width:thin;height:560px;min-height:460px;max-height:72vh;padding:.85rem .9rem;overflow-y:auto}.m3d-list-head{color:var(--text-faint);letter-spacing:.07em;text-transform:uppercase;margin:.7rem 0 .3rem;font-size:.66rem;font-weight:700}.m3d-list-head:first-child{margin-top:0}.m3d-item{width:100%;color:var(--text-secondary);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:6px;align-items:center;gap:.5rem;padding:.3rem .4rem;font-size:.78rem;transition:background .15s,color .15s;display:flex}.m3d-item:hover,.m3d-item.active:hover{background:var(--accent-border);color:var(--accent-hover);cursor:pointer}.m3d-item.active{background:var(--accent-light);color:var(--accent-hover)}.m3d-swatch{border-radius:3px;flex:none;width:11px;height:11px;box-shadow:inset 0 0 0 1px #0f172a2e}.m3d-item-label{line-height:1.3}.m3d-toolbar{pointer-events:auto;flex-wrap:nowrap;gap:.3rem;margin-left:0;display:flex}.m3d-action{color:var(--text-secondary);cursor:pointer;background:#fff;border:1px solid #0f172a1f;border-radius:999px;padding:.3rem .65rem;font-size:.7rem;font-weight:600;transition:background .15s,color .15s,border-color .15s,box-shadow .15s;box-shadow:0 1px 3px -2px #0f172a40}.m3d-action:hover{border-color:var(--accent-border);color:var(--accent-primary);background:#fff}.m3d-action:active{transform:translateY(1px)}.m3d-action.is-on{background:var(--accent-primary);border-color:var(--accent-primary);color:#fff;box-shadow:0 2px 8px -2px #2563eb8c}.m3d-action.is-on:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:#fff}.m3d-play .m3d-action{color:#fff;background:#0f172a;border-color:#0f172a}.m3d-play .m3d-action:hover{color:#fff;background:#1e293b;border-color:#1e293b}.m3d-play .m3d-action.is-on{background:var(--accent-solid);border-color:var(--accent-solid);color:var(--accent-on-solid)}.m3d-noscript{color:var(--text-muted);padding:1rem 1.25rem;font-size:.84rem}[data-theme=dark] .m3d-stage{background:radial-gradient(circle at 50% 28%,#1c2740 0%,#0b1220 100%)}[data-theme=dark] .m3d-mode{border-color:var(--border-subtle);background:var(--surface-glass);color:var(--text-secondary);box-shadow:0 1px 4px -2px #00000080}[data-theme=dark] .m3d-mode:hover{border-color:var(--accent-primary);color:var(--accent-hover)}[data-theme=dark] .m3d-action{border-color:var(--border-subtle);background:var(--surface-glass);color:var(--text-secondary)}[data-theme=dark] .m3d-action:hover{border-color:var(--accent-primary);background:var(--surface-glass-strong);color:var(--accent-hover)}[data-theme=dark] .m3d-bottombar,[data-theme=dark] .m3d-readout{border-color:var(--border-subtle);background:var(--surface-glass-strong);color:var(--text-secondary)}[data-theme=dark] .m3d-tag{border-color:var(--border-subtle);background:var(--surface-glass-strong);color:var(--text-primary)}@media (max-width:860px){.m3d-body{grid-template-columns:1fr}.m3d-stage{height:60vh;min-height:360px}.m3d-panel{border-left:0;border-top:1px solid var(--border-light);height:auto;min-height:0;max-height:300px;overflow-y:auto}.m3d.m3d-expanded .m3d-body{grid-template-rows:minmax(0,1fr) auto;grid-template-columns:1fr;overflow-y:auto}.m3d.m3d-expanded .m3d-stage{height:52vh;min-height:46vh}.m3d.m3d-expanded .m3d-panel{border-top:1px solid var(--border-light);height:auto;max-height:34vh}.m3d-readout{font-size:.72rem}}@media (max-width:640px){.m3d-stage{min-height:320px}.m3d-topbar{-webkit-overflow-scrolling:touch;touch-action:pan-x;align-items:center;gap:.4rem;top:.5rem;left:.5rem;right:.5rem}.m3d-toolbar{flex-wrap:nowrap;flex:none}.m3d-mode,.m3d-action{white-space:nowrap;flex:none;padding:.26rem .55rem;font-size:.68rem}.m3d-dock{gap:.35rem;bottom:.5rem;left:.5rem;right:.5rem}.m3d-bottombar{padding:.35rem .45rem}.m3d-readout{max-height:3.6rem;padding:.4rem .55rem;font-size:.68rem;line-height:1.4;overflow:hidden}.m3d-readout-title{font-size:.72rem}.m3d-readout-text{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}}.m3d [hidden]{display:none!important}.m3d.m3d-learning{box-shadow:var(--shadow-md);margin-top:0}.m3d.m3d-learning .m3d-body{grid-template-columns:minmax(0,1fr) 320px;align-items:stretch}.m3d.m3d-learning .m3d-stage{height:clamp(460px,64vh,720px);min-height:460px;max-height:none}.m3d.m3d-learning .m3d-panel{background:var(--bg-primary);flex-direction:column;height:clamp(460px,64vh,720px);min-height:0;max-height:none;padding:0;display:flex;overflow:hidden}.m3d.m3d-learning .m3d-learn-tabs{border-bottom:1px solid var(--border-light);background:var(--bg-subtle);flex:none;gap:.25rem;padding:.55rem .6rem;display:flex}.m3d.m3d-learning .m3d-learn-tabs button{min-width:0;color:var(--text-secondary);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;flex:1 1 0;padding:.45rem .5rem;font-size:.8rem;font-weight:600;transition:background .15s,color .15s,border-color .15s}.m3d.m3d-learning .m3d-learn-tabs button:hover{color:var(--accent-primary);background:var(--bg-primary)}.m3d.m3d-learning .m3d-learn-tabs button[aria-pressed=true],.m3d.m3d-learning .m3d-learn-tabs button[aria-selected=true],.m3d.m3d-learning .m3d-learn-tabs button.is-active,.m3d.m3d-learning .m3d-learn-tabs button.active{background:var(--accent-primary);border-color:var(--accent-primary);color:#fff}.m3d.m3d-learning .m3d-learn-tabs button:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}.m3d.m3d-learning .m3d-lesson{overscroll-behavior:contain;scrollbar-width:thin;flex-direction:column;flex:auto;gap:.7rem;min-height:0;padding:1.05rem 1rem;display:flex;overflow-y:auto}.m3d.m3d-learning .m3d-lesson-kicker{color:var(--accent-primary);letter-spacing:.09em;text-transform:uppercase;margin:0;font-size:.68rem;font-weight:700}.m3d.m3d-learning .m3d-lesson h3{color:var(--text-primary);font-family:var(--font-display);margin:0;font-size:1.08rem;font-weight:700;line-height:1.3}.m3d.m3d-learning .m3d-lesson-copy{color:var(--text-secondary);margin:0;font-size:.88rem;line-height:1.65}.m3d.m3d-learning .m3d-lesson-copy>:first-child{margin-top:0}.m3d.m3d-learning .m3d-lesson-copy>:last-child{margin-bottom:0}.m3d.m3d-learning .m3d-lesson-copy p{margin:0 0 .55rem}.m3d.m3d-learning .m3d-lesson-copy ul,.m3d.m3d-learning .m3d-lesson-copy ol{margin:0 0 .55rem;padding-left:1.15rem}.m3d.m3d-learning .m3d-lesson-copy li{margin-bottom:.25rem}.m3d.m3d-learning .m3d-lesson-cue{border-left:3px solid var(--accent-primary);background:var(--accent-light);color:var(--text-secondary);border-radius:0 8px 8px 0;margin:0;padding:.55rem .65rem;font-size:.8rem;line-height:1.55}.m3d.m3d-learning .m3d-lesson-parts{flex-wrap:wrap;gap:.35rem;display:flex}.m3d.m3d-learning .m3d-lesson-parts button{border:1px solid var(--border-light);background:var(--bg-primary);max-width:100%;color:var(--text-secondary);cursor:pointer;border-radius:999px;padding:.28rem .6rem;font-size:.72rem;font-weight:600;transition:background .15s,color .15s,border-color .15s}.m3d.m3d-learning .m3d-lesson-parts button:hover{border-color:var(--accent-border);color:var(--accent-primary)}.m3d.m3d-learning .m3d-lesson-parts button[aria-pressed=true],.m3d.m3d-learning .m3d-lesson-parts button.is-active,.m3d.m3d-learning .m3d-lesson-parts button.active{border-color:var(--accent-primary);background:var(--accent-light);color:var(--accent-hover)}.m3d.m3d-learning .m3d-lesson-parts button:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}.m3d.m3d-learning .m3d-lesson-parts[aria-label="Knowledge check answers"]{flex-direction:column;align-items:stretch;gap:.4rem}.m3d.m3d-learning .m3d-lesson-parts[aria-label="Knowledge check answers"] button{text-align:left;border-radius:10px;width:100%;padding:.55rem .7rem;font-size:.8rem;font-weight:500;line-height:1.5}.m3d.m3d-learning .m3d-lesson-parts[aria-label="Knowledge check answers"] button[aria-pressed=true]{background:var(--accent-primary);border-color:var(--accent-primary);color:#fff}.m3d.m3d-learning .m3d-lesson-cue[role=status]{border-left-color:var(--accent-border);background:var(--bg-subtle);color:var(--text-muted);font-size:.78rem}.m3d.m3d-learning .m3d-lesson-nav{gap:.5rem;margin-top:auto;padding-top:.35rem;display:flex}.m3d.m3d-learning .m3d-lesson-nav button{border:1px solid var(--border-light);background:var(--bg-primary);min-width:0;color:var(--text-secondary);cursor:pointer;border-radius:10px;flex:auto;padding:.6rem .7rem;font-size:.84rem;font-weight:600;transition:background .15s,color .15s,border-color .15s}.m3d.m3d-learning .m3d-lesson-nav button:hover:not(:disabled){border-color:var(--accent-border);color:var(--accent-primary)}.m3d.m3d-learning .m3d-lesson-nav button:disabled{opacity:.45;cursor:default}.m3d.m3d-learning .m3d-lesson-nav button:last-child{background:var(--accent-primary);border-color:var(--accent-primary);color:#fff}.m3d.m3d-learning .m3d-lesson-nav button:last-child:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover);color:#fff}.m3d.m3d-learning .m3d-lesson h3:focus:not(:focus-visible){outline:none}.m3d.m3d-learning .m3d-lesson-nav button:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}.m3d.m3d-learning .m3d-lesson-progress{background:var(--bg-elevated);width:100%;height:6px;accent-color:var(--accent-primary);appearance:none;border:0;border-radius:999px;margin:0;display:block}.m3d.m3d-learning .m3d-lesson-progress::-webkit-progress-bar{background:var(--bg-elevated);border-radius:999px}.m3d.m3d-learning .m3d-lesson-progress::-webkit-progress-value{background:var(--accent-primary);border-radius:999px}.m3d.m3d-learning .m3d-lesson-progress::-moz-progress-bar{background:var(--accent-primary);border-radius:999px}.m3d.m3d-learning .m3d-explore{overscroll-behavior:contain;scrollbar-width:thin;flex-direction:column;flex:auto;gap:.35rem;min-height:0;padding:.85rem .9rem 1rem;display:flex;overflow-y:auto}.m3d.m3d-learning .m3d-explore .m3d-modes{flex-wrap:wrap;gap:.35rem;margin-bottom:.35rem;display:flex}.m3d.m3d-learning .m3d-explore .m3d-mode{border-radius:999px;padding:.36rem .7rem;font-size:.74rem}.m3d.m3d-learning .m3d-explore .m3d-list-head{margin-top:.75rem}.m3d.m3d-learning .m3d-explore .m3d-item{padding:.42rem .5rem;font-size:.82rem}.m3d.m3d-learning .m3d-readout{background:var(--bg-subtle);border-width:1px 0 0;border-radius:0;flex:none;max-height:9rem;margin:0}.m3d.m3d-learning .m3d-readout.has-component{border-top-color:var(--accent-border);box-shadow:none}.m3d.m3d-learning .m3d-readout-text{max-height:none;overflow-y:auto}@media (max-width:640px){.m3d.m3d-learning .m3d-readout,.m3d.m3d-learning .m3d-readout-text{max-height:none;overflow:visible}.m3d.m3d-learning .m3d-readout-text{display:block}}.m3d.m3d-learning .m3d-stage-tools{z-index:3;pointer-events:auto;gap:.35rem;display:flex;position:absolute;top:.6rem;right:.7rem}.m3d.m3d-learning .m3d-stage-tools .m3d-action[aria-pressed=true]{background:var(--accent-primary);border-color:var(--accent-primary);color:#fff;box-shadow:0 2px 8px -2px #2563eb8c}.m3d.m3d-learning .m3d-stage-hint{z-index:3;border:1px solid var(--border-light);-webkit-backdrop-filter:blur(8px);color:var(--text-muted);pointer-events:none;background:#ffffffe0;border-radius:999px;margin:0;padding:.25rem .6rem;font-size:.68rem;font-weight:600;position:absolute;bottom:.6rem;left:.7rem}[data-theme=dark] .m3d.m3d-learning .m3d-stage-hint{border-color:var(--border-subtle);background:var(--surface-glass-strong);color:var(--text-secondary)}.m3d.m3d-learning .m3d-tools{border-bottom:1px solid var(--border-light);background:var(--bg-subtle);flex-wrap:wrap;flex:none;align-items:center;gap:.55rem .9rem;padding:.75rem .9rem;display:flex}.m3d.m3d-learning .m3d-tools-label{color:var(--text-secondary);font-size:.8rem;font-weight:600}.m3d.m3d-learning .m3d-tools>.m3d-toolbar,.m3d.m3d-learning .m3d-tools>.m3d-play{flex-wrap:wrap;gap:.35rem;padding:0}.m3d.m3d-expanded.m3d-learning .m3d-body{grid-template-columns:minmax(0,1fr) 320px}.m3d.m3d-expanded.m3d-learning .m3d-stage{height:100%;min-height:0}.m3d.m3d-expanded.m3d-learning .m3d-panel{height:100%;max-height:none;display:flex}.m3d.m3d-expanded.m3d-learning .m3d-tools{flex:none}@media (max-width:900px){.m3d.m3d-learning .m3d-body{grid-template-columns:minmax(0,1fr)}.m3d.m3d-learning .m3d-stage{height:54vh;min-height:320px;max-height:60vh}.m3d.m3d-learning .m3d-panel{border-left:0;border-top:1px solid var(--border-light);height:auto;overflow:visible}.m3d.m3d-learning .m3d-lesson,.m3d.m3d-learning .m3d-explore{max-height:none;overflow:visible}.m3d.m3d-learning .m3d-readout{max-height:none}.m3d.m3d-expanded.m3d-learning .m3d-stage{height:46vh;min-height:46vh}.m3d.m3d-expanded.m3d-learning .m3d-body{grid-template-rows:minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr)}.m3d.m3d-expanded.m3d-learning .m3d-panel{border-left:0;border-top:1px solid var(--border-light);height:auto}}@media (max-width:480px){.m3d.m3d-learning .m3d-stage{height:44vh;min-height:260px}.m3d.m3d-learning .m3d-learn-tabs{padding:.45rem}.m3d.m3d-learning .m3d-learn-tabs button{padding:.45rem .35rem;font-size:.76rem}.m3d.m3d-learning .m3d-lesson{gap:.6rem;padding:.85rem .8rem .95rem}.m3d.m3d-learning .m3d-explore{padding:.7rem .75rem .85rem}.m3d.m3d-learning .m3d-lesson-nav button{padding:.6rem .5rem;font-size:.82rem}.m3d.m3d-learning .m3d-stage-hint{padding:.2rem .5rem;font-size:.64rem;bottom:.5rem;left:.5rem}.m3d.m3d-learning .m3d-stage-tools{top:.5rem;right:.5rem}.m3d.m3d-learning .m3d-tools{padding:.65rem .75rem}}.mobile-toc-bar,.mobile-toc-backdrop{display:none}@media (max-width:1200px){.mobile-toc-bar{top:var(--header-height);z-index:95;background:var(--surface-glass-strong);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--border-light);width:100%;box-shadow:var(--shadow-sm);display:block;position:sticky;left:0;right:0}.mobile-toc-bar-row{justify-content:space-between;align-items:center;width:100%;padding-right:.35rem;display:flex}.mobile-toc-bar-row .mobile-toc-trigger{cursor:pointer;text-align:left;min-width:0;color:var(--text-primary);-webkit-tap-highlight-color:transparent;background:0 0;border:none;flex:auto;justify-content:space-between;align-items:center;gap:.45rem;padding:.7rem .85rem;font-family:inherit;display:flex}.mobile-toc-trigger:hover{background:var(--accent-light)}.mobile-toc-trigger-left{flex:auto;align-items:center;gap:.4rem;min-width:0;display:flex;overflow:hidden}.mobile-toc-icon{color:var(--accent-primary);flex:none;font-size:.88rem}.mobile-toc-kicker{text-transform:none;letter-spacing:-.01em;color:var(--text-muted);white-space:nowrap;flex:none;font-size:.8rem;font-weight:600}.mobile-toc-sep{color:var(--text-faint);opacity:.6;flex:none;font-size:.85rem;font-weight:600}.mobile-toc-current{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;flex:auto;min-width:0;font-size:.86rem;font-weight:600;overflow:hidden}.mobile-toc-trigger-right{flex:none;align-items:center;padding-left:.2rem;display:flex}.mobile-toc-chevron{color:var(--text-muted);font-size:.74rem;transition:transform .22s cubic-bezier(.4,0,.2,1)}.mobile-toc-bar.is-open .mobile-toc-chevron{transform:rotate(180deg)}.mobile-toc-dropdown{background:var(--bg-card);border-bottom:1px solid var(--border-light);width:100%;box-shadow:var(--shadow-lg);overscroll-behavior:contain;z-index:96;max-height:min(65vh,440px);animation:.2s cubic-bezier(.16,1,.3,1) mobileTocSlide;position:absolute;top:100%;left:0;right:0;overflow-y:auto}@keyframes mobileTocSlide{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.mobile-toc-dropdown-inner{max-width:860px;margin:0 auto;padding:.75rem 1rem 1.25rem}.mobile-toc-head{border-bottom:1px solid var(--border-light);justify-content:space-between;align-items:center;margin-bottom:.6rem;padding-bottom:.5rem;display:flex}.mobile-toc-heading{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);align-items:center;gap:.45rem;font-size:.78rem;font-weight:700;display:flex}.mobile-toc-close{color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;padding:.25rem .5rem;font-size:.95rem;transition:color .15s,background-color .15s}.mobile-toc-close:hover{color:var(--text-primary);background:var(--bg-subtle)}.mobile-toc-list{flex-direction:column;gap:.3rem;margin:0;padding:0;list-style:none;display:flex}.mobile-toc-link{border-radius:var(--radius-md);color:var(--text-secondary);border:1px solid #0000;align-items:center;gap:.65rem;padding:.55rem .75rem;font-size:.85rem;font-weight:500;line-height:1.4;text-decoration:none;transition:background-color .15s,color .15s,border-color .15s;display:flex}.mobile-toc-link:hover,.mobile-toc-link:active{background:var(--bg-subtle);color:var(--text-primary)}.mobile-toc-link.active{background:var(--accent-light);color:var(--accent-primary);border-color:var(--accent-border);font-weight:600}.mobile-toc-num{border-radius:var(--radius-sm);background:var(--bg-subtle);border:1px solid var(--border-light);height:22px;color:var(--text-muted);flex:0 0 22px;justify-content:center;align-items:center;font-size:.7rem;font-weight:700;display:inline-flex}.mobile-toc-link.active .mobile-toc-num{background:var(--accent-solid);border-color:var(--accent-solid);color:var(--accent-on-solid)}.mobile-toc-text{overflow-wrap:anywhere;white-space:normal;flex:auto;min-width:0}.mobile-toc-backdrop{inset:0;top:calc(var(--header-height) + 42px);-webkit-backdrop-filter:blur(2px);z-index:94;background:#0f172a40;display:block;position:fixed}.mobile-toc-backdrop[hidden],.mobile-toc-dropdown[hidden]{display:none!important}}.topic-end-series-nav{margin-top:2.75rem}.topic-end-series-nav .toc-card{padding:1.25rem 1.25rem 1.5rem}.topic-series-count-badge{color:var(--accent-primary);background:var(--accent-light);border:1px solid var(--accent-border);border-radius:9999px;padding:.2rem .6rem;font-size:.75rem;font-weight:600;line-height:1.2}.topic-end-course-list{scrollbar-width:thin;max-height:26rem;margin-bottom:.85rem;padding-right:.35rem;overflow-y:auto}@media (min-width:993px){.topic-end-series-nav{display:none!important}}.lab3d-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem;margin-top:1rem;display:grid}.lab3d-card{border:1px solid var(--border-light);border-radius:var(--radius-lg,12px);background:var(--bg-primary);flex-direction:column;transition:border-color .15s,box-shadow .15s,transform .15s;display:flex;overflow:hidden}.lab3d-card:hover{border-color:var(--accent-border);transform:translateY(-2px);box-shadow:0 10px 24px -14px #0284c773}.lab3d-card-mini{flex-direction:column;align-items:stretch}.lab3d-card-icon{background:var(--accent-light);width:2.75rem;height:2.75rem;color:var(--accent-primary);border-radius:.8rem;justify-content:center;align-items:center;font-size:1.2rem;display:inline-flex}.lab3d-card-name{text-transform:uppercase;letter-spacing:.07em;color:var(--accent-primary);font-size:.7rem;font-weight:700}.lab3d-card-title{color:var(--text-primary);font-size:1.02rem;font-weight:700;line-height:1.4}.model3d-hero{padding:2rem 1.5rem 1.5rem}.model3d-hero .module-badge-row{margin-bottom:.75rem}.model3d-hero .module-title{margin-bottom:.6rem;font-size:clamp(1.6rem,1.15rem + 1.6vw,2.1rem)}.model3d-hero .module-desc{max-width:62ch;margin-bottom:0;font-size:1rem}.model3d-container{max-width:1180px;padding-top:1.75rem}.model3d-page .m3d{margin-top:0;margin-bottom:1.5rem}.model3d-page .model3d-section{max-width:76ch}@media (max-width:640px){.model3d-hero{padding:1.5rem 1.25rem 1.25rem}.model3d-container{padding-top:1.25rem}}.model3d-section{margin-top:2rem}.model3d-section h2{color:var(--text-primary);margin:0 0 .75rem;font-size:1.2rem}.model3d-section p{color:var(--text-secondary);font-size:.95rem;line-height:1.7}.model3d-section p a,.model3d-steps a{color:var(--accent-primary);text-underline-offset:2px;text-decoration:underline}.model3d-section p a:visited,.model3d-steps a:visited{color:var(--accent-primary)}.model3d-section p a:hover,.model3d-steps a:hover{color:var(--accent-hover)}.model3d-includes{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.model3d-includes li{border:1px solid var(--border-light);border-radius:var(--radius-md);background:var(--bg-primary);color:var(--text-secondary);align-items:center;gap:.55rem;padding:.55rem .75rem;font-size:.85rem;display:flex}.model3d-steps{color:var(--text-secondary);gap:.6rem;margin:0;padding-left:1.25rem;font-size:.92rem;line-height:1.6;display:grid}.model3d-faq{border:1px solid var(--border-light);border-radius:var(--radius-md);background:var(--bg-primary);margin-bottom:.6rem;padding:.75rem 1rem}.model3d-faq summary{color:var(--text-primary);cursor:pointer;font-size:.9rem;font-weight:700}.model3d-faq p{margin:.5rem 0 0;font-size:.88rem}.model3d-related{border-top:1px solid var(--border-light);margin-top:2.5rem;padding-top:1.5rem}.model3d-related h2{margin:0 0 1rem;font-size:1.15rem}.lab3d-grid-mini .lab3d-card-mini{gap:.4rem;padding:1rem;text-decoration:none}.model3d-prevnext{flex-wrap:wrap;justify-content:space-between;gap:.75rem;margin-top:1.25rem;display:flex}.model3d-prevnext a{color:var(--accent-primary);font-size:.85rem;font-weight:600;text-decoration:none}.model3d-prevnext a:hover{text-decoration:underline}.table-scroll-container{margin:1.25rem 0 1.75rem;position:relative}.table-scroll-container .table-wrap,.table-scroll-container .table-wrapper{margin:0}.table-scroll-container:before,.table-scroll-container:after{content:"";pointer-events:none;z-index:4;opacity:0;width:24px;transition:opacity .2s;position:absolute;top:1px;bottom:1px}.table-scroll-container:before{border-top-left-radius:calc(var(--radius-lg) - 1px);border-bottom-left-radius:calc(var(--radius-lg) - 1px);background:linear-gradient(to right, var(--bg-primary), transparent);left:1px}.table-scroll-container:after{border-top-right-radius:calc(var(--radius-lg) - 1px);border-bottom-right-radius:calc(var(--radius-lg) - 1px);background:linear-gradient(to left, var(--bg-primary), transparent);right:1px}.table-scroll-container.can-scroll-left:before,.table-scroll-container.can-scroll-right:after{opacity:1}.table-wrap,.table-wrapper{-webkit-overflow-scrolling:touch;border:1px solid var(--border-light);border-radius:var(--radius-lg);background:var(--bg-primary);margin:1.25rem 0 1.75rem;overflow-x:auto}.topic-table{border-collapse:collapse;width:100%;font-size:.9rem;line-height:1.55}.article-section table{border-collapse:collapse;width:100%;margin:1.25rem 0 1.75rem;font-size:.9rem;line-height:1.55}.table-wrap table,.table-wrapper table{background:0 0;border:0;border-radius:0;margin:0;display:table;overflow:visible}.table-wrap table thead,.table-wrap table tbody,.table-wrapper table thead,.table-wrapper table tbody{display:table-row-group}.table-wrap table thead,.table-wrapper table thead{display:table-header-group}.topic-table th,.topic-table td,.article-section table th,.article-section table td{border-bottom:1px solid var(--border-light);text-align:left;vertical-align:top;padding:.7rem .9rem}.topic-table thead th,.article-section table thead th{background:var(--bg-subtle);text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-size:.8rem}.topic-table tbody tr:last-child th,.topic-table tbody tr:last-child td,.article-section table tbody tr:last-child th,.article-section table tbody tr:last-child td{border-bottom:none}.figure-duo{grid-template-columns:1fr 1fr;gap:1rem;margin:1.5rem 0 2rem;display:grid}.figure-duo .topic-figure{margin:0}@media (max-width:640px){.figure-duo{grid-template-columns:1fr}}.topic-code{background:var(--bg-subtle);border:1px solid var(--border-light);border-left:3px solid var(--accent-primary);border-radius:var(--radius-md);font-family:var(--font-mono);color:var(--text-primary);tab-size:4;margin:1.1rem 0 1.5rem;padding:.9rem 1.15rem;font-size:.85rem;line-height:1.75;display:block;overflow-x:auto}.topic-code code{font-family:inherit;font-size:inherit;line-height:inherit;color:inherit;background:0 0;border:0;padding:0}.term-table td:first-child,.term-table th:first-child{white-space:nowrap;font-family:var(--font-mono);color:var(--text-primary);font-size:.85rem}.term-table td:last-child,.term-table th:last-child{color:var(--text-secondary)}@media (max-width:640px){.topic-code{padding:.75rem .85rem;font-size:.78rem}}.topic-related-section{border-top:1px solid var(--border-light);margin-top:3.5rem;padding-top:2rem}.topic-related-header{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.5rem;display:flex}.topic-related-title-wrap{flex-direction:column;gap:.2rem;display:flex}.topic-related-kicker{text-transform:uppercase;letter-spacing:.05em;color:var(--accent-primary);align-items:center;gap:.4rem;font-size:.75rem;font-weight:700;display:inline-flex}.topic-related-heading{font-family:var(--font-display);color:var(--text-primary);margin:0;font-size:1.25rem;font-weight:700}.topic-related-badge{color:var(--text-muted);background:var(--bg-subtle);border:1px solid var(--border-light);white-space:nowrap;border-radius:999px;padding:.2rem .55rem;font-size:.72rem;font-weight:600}.topic-related-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.25rem;display:grid}.topic-related-card{background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);flex-direction:column;justify-content:space-between;padding:1.25rem;text-decoration:none;transition:all .2s cubic-bezier(.16,1,.3,1);display:flex;position:relative}.topic-related-card:hover{border-color:var(--accent-border);box-shadow:var(--shadow-md);background:var(--bg-elevated);transform:translateY(-2px)}.topic-related-card-top{justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.65rem;display:flex}.topic-related-tag{color:var(--accent-primary);text-transform:uppercase;letter-spacing:.03em;text-overflow:ellipsis;white-space:nowrap;max-width:170px;font-size:.72rem;font-weight:600;overflow:hidden}.topic-related-time{color:var(--text-muted);white-space:nowrap;align-items:center;gap:.25rem;font-size:.75rem;display:inline-flex}.topic-related-card-title{font-family:var(--font-display);color:var(--text-primary);margin:0 0 .5rem;font-size:.98rem;font-weight:600;line-height:1.4}.topic-related-card-desc{color:var(--text-secondary);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0 0 1rem;font-size:.82rem;line-height:1.45;display:-webkit-box;overflow:hidden}.topic-related-card-footer{border-top:1px solid var(--border-light);justify-content:space-between;align-items:center;margin-top:auto;padding-top:.75rem;display:flex}.topic-related-link-text{color:var(--accent-primary);align-items:center;gap:.35rem;font-size:.78rem;font-weight:600;transition:transform .15s;display:inline-flex}.topic-related-card:hover .topic-related-link-text{transform:translate(4px)}@media (max-width:640px){.topic-related-grid{grid-template-columns:1fr}}@media print{.site-header,.site-footer,.topic-sidebar,.topic-browser,.topic-top-bar,.mobile-toc-bar,.mobile-toc-backdrop,.sidebar-rail,.topic-nav-footer,.topic-feedback,.topic-end-series-nav,.bottom-related,.reading-progress-bar,#back-to-top,.app-toast,.search-modal,[data-model3d-stage],.m3d-fallback{display:none!important}.topic-page-layout,.topic-main-column{max-width:100%!important;margin:0!important;padding:0!important;display:block!important}body,.article-section,.topic-header{color:#000!important;box-shadow:none!important;background:#fff!important}a{color:#000!important;text-decoration:none!important}figure,table,pre{break-inside:avoid}}.ld-formula-box{background:var(--bg-subtle);border:1px solid var(--border-light);border-left:3px solid var(--accent-primary);border-radius:var(--radius-md);text-align:center;margin:1.25rem 0;padding:1.25rem}.ld-formula-main{color:var(--accent-primary);justify-content:center;align-items:center;gap:.5rem;font-family:Georgia,Times New Roman,serif;font-size:1.3rem;font-weight:700;display:inline-flex}.ld-fraction{vertical-align:middle;text-align:center;flex-direction:column;padding:0 4px;font-size:1.1rem;line-height:1.15;display:inline-flex}.ld-frac-num{border-bottom:1.5px solid var(--accent-primary);padding-bottom:2px}.ld-frac-den{padding-top:2px}.ld-formula-sub{color:var(--text-secondary);margin-top:.65rem;font-size:.88rem}.ld-wrap{border:1px solid var(--border-light);border-radius:var(--radius-lg);background:var(--bg-card);box-shadow:var(--shadow-sm);margin:1.75rem 0;padding:1.25rem}.ld-toolbar{flex-wrap:wrap;align-items:center;gap:.65rem;margin-bottom:1rem;display:flex}.ld-btn{border:1px solid var(--border-light);background:var(--bg-card);color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;padding:.55rem .85rem;font-family:inherit;font-size:.82rem;font-weight:600;line-height:1.4;transition:background .15s,border-color .15s,color .15s}.ld-btn:hover{background:var(--accent-light);border-color:var(--accent-border);color:var(--accent-primary)}.ld-btn:focus-visible{outline:2px solid var(--accent-primary);outline-offset:3px}.ld-hint{color:var(--text-muted);font-size:.82rem}.ld-inspector{background:var(--bg-subtle);border:1px solid var(--border-light);border-radius:var(--radius-sm);color:var(--text-secondary);align-items:center;gap:.45rem;padding:.5rem .75rem;font-size:.82rem;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.ld-inspector.is-active{background:var(--accent-light);border-color:var(--accent-primary);color:var(--text-primary)}.ld-insp-tag{letter-spacing:.04em;background:var(--accent-solid);color:var(--accent-on-solid);text-transform:uppercase;border-radius:4px;padding:1px 6px;font-size:.68rem;font-weight:800}.ld-insp-name{color:var(--text-primary);font-weight:700}.ld-viewport{border:1px solid var(--border-light);touch-action:none;cursor:grab;background:#fff;border-radius:8px;position:relative;overflow:hidden}.ld-viewport.is-panning{cursor:grabbing}.ld-tooltip{pointer-events:none;z-index:1000;background:var(--bg-elevated);color:var(--text-primary);border-radius:var(--radius-md);box-shadow:var(--shadow-md);border:1px solid var(--border-subtle);opacity:0;visibility:hidden;max-width:320px;padding:10px 14px;font-family:inherit;transition:opacity 80ms;position:absolute}.ld-tooltip.is-visible{opacity:1;visibility:visible}.ld-tt-header{align-items:center;gap:8px;margin-bottom:2px;display:flex}.ld-tt-badge{letter-spacing:.04em;background:var(--accent-light);color:var(--accent-primary);text-transform:uppercase;white-space:nowrap;border-radius:4px;padding:1px 6px;font-size:.65rem;font-weight:800}.ld-tt-badge.is-closed{background:var(--status-danger-bg);color:var(--status-danger-text)}.ld-tt-badge.is-open{background:var(--status-stable-bg);color:var(--status-stable-text)}.ld-tt-title{color:var(--text-primary);font-size:.85rem;font-weight:700;line-height:1.25}.ld-tt-desc{color:var(--text-secondary);margin-top:3px;font-size:.75rem;line-height:1.35}.ld-inspector-panel{background:var(--bg-subtle);border:1px solid var(--border-light);border-radius:var(--radius-md);align-items:flex-start;gap:.85rem;margin-top:1rem;padding:1rem;transition:background .15s,border-color .15s;display:flex}.ld-inspector-panel.is-active{background:var(--accent-light);border-color:var(--accent-primary)}.ld-ip-badge{letter-spacing:.05em;border-radius:var(--radius-sm);background:var(--accent-solid);color:var(--accent-on-solid);text-transform:uppercase;flex-shrink:0;margin-top:1px;padding:3px 8px;font-size:.72rem;font-weight:800}.ld-ip-badge.is-closed{background:var(--status-danger-bg);color:var(--status-danger-text)}.ld-ip-badge.is-open{background:var(--status-stable-bg);color:var(--status-stable-text)}.ld-ip-content{flex:1;min-width:0}.ld-ip-title{color:var(--text-primary);font-size:.92rem;font-weight:700;line-height:1.3}.ld-ip-desc{color:var(--text-secondary);margin-top:2px;font-size:.82rem;line-height:1.45}.ld-svg{-webkit-user-select:none;user-select:none;width:100%;height:auto;display:block}.ld-pipe{stroke-width:3.5px;fill:none}.ld-node .ld-body{stroke-width:3px}.ld-pipe.f-bunk{stroke:#b45309}.ld-pipe.f-pur{stroke:#ea580c}.ld-pipe.f-hot{stroke:#dc2626}.ld-pipe.f-ret{stroke:#7c3aed}.ld-pipe.f-vent{stroke:#94a3b8;stroke-dasharray:6 5}.ld-pipe.f-air-main{stroke:#0284c7}.ld-pipe.f-air-pilot{stroke:#e11d48}.ld-pipe.f-air-ctrl{stroke:#16a34a}.ld-pipe.f-air-drain{stroke:#64748b;stroke-dasharray:6 5}.ld-pipe.f-sw{stroke:#0284c7}.ld-pipe.f-lt{stroke:#059669}.ld-pipe.f-ht{stroke:#ea580c}.ld-pipe.f-ovbd{stroke:#0d9488}.ld-pipe.f-lo{stroke:#ca8a04}.ld-pipe.f-lo-ret{stroke:#a16207;stroke-dasharray:6 5}.ld-pipe.f-lo-pur{stroke:#854d0e;stroke-dasharray:6 5}.ld-pipe.f-signal{stroke:#6366f1;stroke-dasharray:3 4;stroke-width:2px}.ld-pipe.f-bilge{stroke:#57534e}.ld-pipe.f-ows-out{stroke:#0d9488}.ld-pipe.f-sludge{stroke:#78350f;stroke-dasharray:6 5}.ld-pipe.f-fire{stroke:#dc2626}.ld-pipe.f-ballast{stroke:#0369a1}.ld-pipe.f-sea{stroke:#0891b2}.ld-pipe.f-hp{stroke:#b91c1c}.ld-pipe.f-lp{stroke:#1d4ed8}.ld-pipe.f-tele{stroke:#7c3aed;stroke-dasharray:6 5}.ld-pipe.flow{stroke-dasharray:10 8;animation:1s linear infinite ld-flow}.ld-pipe.f-vent.flow,.ld-pipe.f-air-drain.flow{stroke-dasharray:10 8}@keyframes ld-flow{to{stroke-dashoffset:-18px}}.ld-node{cursor:pointer;outline:none}.ld-node text{pointer-events:none}.ld-hit{fill:#fff;fill-opacity:.001;stroke:#0000;stroke-width:2px;pointer-events:all;transition:stroke .15s,fill .15s}.ld-ring{fill:#fff;fill-opacity:.001;stroke:#0000;pointer-events:all;transition:stroke .15s,fill .15s}.ld-node:hover .ld-hit,.ld-node.is-hover .ld-hit,.ld-node:focus .ld-hit{stroke:#0284c7!important;stroke-width:2.5px!important;stroke-dasharray:5 4!important;fill:#0284c7!important;fill-opacity:.09!important}.ld-node:hover .ld-ring,.ld-node.is-hover .ld-ring,.ld-node:focus .ld-ring{fill:#0284c70f;stroke:#0284c7!important;stroke-width:2px!important;stroke-dasharray:5 4!important}.ld-node:hover,.ld-node.is-hover,.ld-node:focus{filter:drop-shadow(0 0 8px #0284c773)}.ld-node:hover .ld-body,.ld-node.is-hover .ld-body,.ld-node:focus .ld-body{color:#0284c7!important;stroke:#0284c7!important}.ld-node:hover text,.ld-node.is-hover text,.ld-node:focus text{fill:#0284c7!important;font-weight:800!important}.ld-node.is-active .ld-hit{stroke:#0284c7!important;stroke-width:2.5px!important;fill:#0284c7!important;fill-opacity:.14!important}.ld-node.is-active .ld-body{color:#0284c7!important;stroke:#0284c7!important}.ld-node.is-active .ld-ring{stroke:#0284c7;stroke-width:2px;stroke-dasharray:5 4;fill:#0284c714}.ld-lbl{fill:#0f172a;font-size:15px;font-weight:700}.ld-sub2{fill:#475569;font-size:12px}.ld-arrow{fill:currentColor}.ld-tee-dot{fill:#0f172a}.ld-node .ld-body{color:#0f172a}.ld-node .ld-tag{fill:#0f172a;font-size:12px;font-weight:700}.ld-node .ld-sub{fill:#475569;font-size:10px}.ld-node.is-closed .ld-body{color:#dc2626!important;stroke:#dc2626!important}.ld-node.is-closed .ld-state{fill:#dc2626!important}.ld-state{fill:#16a34a;font-size:10px;font-weight:700}.ld-legend{color:var(--text-secondary);opacity:.9;flex-wrap:wrap;gap:.4rem 1rem;margin-top:.75rem;font-size:.78rem;display:flex}.pid-sym{width:100%;max-width:150px;height:auto}.topic-page-layout.is-diagram-topic,.topic-page-layout[data-is-diagram=true],.topic-page-layout[data-page-topic-slug^=line-diagram]{grid-template-columns:minmax(0,1fr)!important}.topic-page-layout.is-diagram-topic .topic-sidebar,.topic-page-layout.is-diagram-topic .sidebar-rail,.topic-page-layout[data-is-diagram=true] .topic-sidebar,.topic-page-layout[data-is-diagram=true] .sidebar-rail,.topic-page-layout[data-page-topic-slug^=line-diagram] .topic-sidebar,.topic-page-layout[data-page-topic-slug^=line-diagram] .sidebar-rail{display:none!important}.topic-page-layout.is-diagram-topic .topic-main-column,.topic-page-layout[data-is-diagram=true] .topic-main-column,.topic-page-layout[data-page-topic-slug^=line-diagram] .topic-main-column{width:100%;max-width:1040px;margin:0 auto}.dash-wrap{flex-direction:column;gap:1.75rem;max-width:1080px;margin:0 auto;padding:3rem 1.5rem 4rem;display:flex}.dash-hero{border-radius:var(--radius-lg);color:#fff;box-shadow:var(--shadow-lg);background:linear-gradient(120deg,#10263f 0%,#164563 65%,#1c5675 100%);justify-content:space-between;align-items:center;gap:2rem;padding:2.75rem 2.5rem;display:flex;position:relative;overflow:hidden}.dash-hero:after{content:"";pointer-events:none;background:#ffffff0d;border-radius:50%;width:280px;height:280px;position:absolute;top:-80px;right:-80px}.dash-kicker{text-transform:uppercase;letter-spacing:.08em;color:#bfd6e6;align-items:center;gap:.45rem;margin-bottom:.75rem;font-size:.75rem;font-weight:700;display:inline-flex}.dash-hero h1{font-family:var(--font-display);color:#fff;letter-spacing:-.025em;margin-bottom:.5rem;font-size:clamp(1.8rem,3vw,2.25rem);font-weight:700;line-height:1.25}.dash-sub{color:#d7e5ef;max-width:480px;margin-bottom:1.5rem;font-size:.95rem;line-height:1.6}.dash-hero-actions{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.dash-hero .btn-primary-action{color:#143750;background:#fff}.dash-hero .btn-primary-action:hover{background:#edf4f8}.dash-reset{color:#fff;border-radius:var(--radius-md);cursor:pointer;background:0 0;border:1px solid #ffffff59;align-items:center;padding:.65rem 1.1rem;font-family:inherit;font-size:.85rem;font-weight:600;transition:background .15s;display:inline-flex}.dash-reset:hover{background:#ffffff1a}.dash-hero-ring{flex:none;width:168px;height:168px;position:relative}.dash-hero-ring svg{width:100%;height:100%;transform:rotate(-90deg)}.dash-ring-track{fill:none;stroke:#ffffff40;stroke-width:11px}.dash-ring-fill{fill:none;stroke:#fff;stroke-width:11px;stroke-linecap:round;stroke-dasharray:376.99;stroke-dashoffset:376.99px;transition:stroke-dashoffset .6s}.dash-ring-label{text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.dash-ring-label strong{font-size:1.7rem;font-family:var(--font-display);font-variant-numeric:tabular-nums;font-weight:700;line-height:1.1}.dash-ring-label span{color:#bfd6e6;max-width:110px;font-size:.7rem;line-height:1.35}.dash-stats{grid-template-columns:repeat(4,1fr);gap:1rem;display:grid}@media (max-width:992px){.dash-stats{grid-template-columns:repeat(2,1fr)}}.dash-stat{background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);align-items:center;gap:.9rem;padding:1.25rem;display:flex}.dash-stat-icon{border-radius:var(--radius-md);background:var(--accent-light);width:2.75rem;height:2.75rem;color:var(--accent-primary);flex:none;justify-content:center;align-items:center;font-size:1.15rem;display:inline-flex}.dash-stat strong{font-variant-numeric:tabular-nums;color:var(--text-primary);font-size:1.3rem;font-weight:700;line-height:1.2;display:block}.dash-stat span{color:var(--text-muted);font-size:.78rem}.dash-continue{background:var(--bg-card);border:1px solid var(--accent-border);border-left:4px solid var(--accent-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);align-items:center;gap:1.25rem;padding:1.5rem;display:flex}.dash-continue-icon{background:var(--accent-light);width:3rem;height:3rem;color:var(--accent-primary);border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:1.25rem;display:inline-flex}.dash-continue-text{flex:1;min-width:0}.dash-continue-kicker{text-transform:uppercase;letter-spacing:.07em;color:var(--accent-primary);margin-bottom:.15rem;font-size:.72rem;font-weight:700}.dash-continue-text a{color:var(--text-primary);font-size:1.05rem;font-weight:700;line-height:1.4;text-decoration:none}.dash-continue-text a:hover{color:var(--accent-primary)}.dash-continue-text p{color:var(--text-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:.2rem;font-size:.85rem;line-height:1.5;display:-webkit-box;overflow:hidden}.dash-continue .btn-primary-action{white-space:nowrap;flex:none}.dash-filter{top:calc(var(--header-height) + .75rem);z-index:50;background:var(--surface-glass);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--border-light);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);gap:.5rem;padding:.5rem;display:flex;position:sticky;overflow-x:auto}.dash-tab{min-width:max-content;color:var(--text-secondary);border-radius:var(--radius-md);cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #0000;flex:1 1 0;padding:.65rem 1rem;font-family:inherit;font-size:.85rem;font-weight:600;transition:background .15s,color .15s,border-color .15s}.dash-tab:hover{background:var(--bg-subtle);color:var(--text-primary)}.dash-tab.is-active{background:var(--accent-solid);color:var(--accent-on-solid);box-shadow:var(--shadow-sm)}.dash-tab-count{opacity:.75;font-size:.78rem;font-weight:700}.dash-empty{text-align:center;background:var(--bg-card);border:1px dashed var(--border-subtle);border-radius:var(--radius-lg);color:var(--text-secondary);flex-direction:column;align-items:center;gap:.75rem;padding:2.5rem 1.5rem;font-size:.92rem;display:flex}.dash-empty-icon{background:var(--bg-subtle);width:3rem;height:3rem;color:var(--text-faint);border-radius:50%;justify-content:center;align-items:center;font-size:1.25rem;display:inline-flex}.dash-module[hidden],.dash-series[hidden],.dash-empty[hidden]{display:none}.dash-modules{flex-direction:column;gap:1.25rem;display:flex}.dash-module{background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:1.75rem 1.5rem 1.25rem}.dash-module-head{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.85rem;display:flex}.dash-module-head h3{font-family:var(--font-display);letter-spacing:-.025em;color:var(--text-primary);margin-bottom:.25rem;font-size:1.1rem;font-weight:600}.dash-module-head p{color:var(--text-muted);max-width:640px;font-size:.85rem;line-height:1.55}.dash-module-count{color:var(--accent-primary);background:var(--accent-light);border:1px solid var(--accent-border);white-space:nowrap;border-radius:999px;flex:none;padding:.25rem .7rem;font-size:.78rem;font-weight:700}.dash-bar{background:var(--bg-elevated);border-radius:999px;height:8px;margin-bottom:1.25rem;overflow:hidden}.dash-bar-fill{background:var(--accent-solid);border-radius:999px;height:100%;transition:width .6s;display:block}.dash-series{border-top:1px solid var(--border-light);padding:1rem 0 .25rem}.dash-series-head{justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:.5rem;display:flex}.dash-series-head h4{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);font-size:.85rem;font-weight:700}.dash-series-count{color:var(--text-faint);white-space:nowrap;font-size:.75rem;font-weight:600}.dash-lessons{flex-direction:column;list-style:none;display:flex}.dash-lesson{border-radius:var(--radius-md);align-items:center;gap:.75rem;padding:.75rem .6rem;text-decoration:none;transition:background .15s;display:flex}.dash-lesson:hover{background:var(--bg-subtle)}.dash-dot{border:2px solid var(--border-subtle);color:#0000;border-radius:50%;flex:none;justify-content:center;align-items:center;width:1.4rem;height:1.4rem;font-size:.6rem;transition:background .15s,border-color .15s;display:inline-flex}.dash-lesson.is-done .dash-dot{color:#fff;background:#16a34a;border-color:#16a34a}.dash-lesson.is-started .dash-dot{border-color:var(--accent-primary);background:var(--accent-light)}.dash-lesson.is-started .dash-lesson-done-at{color:var(--accent-primary)}.dash-lessons li[hidden]{display:none}.dash-lesson-title{min-width:0;color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:.92rem;font-weight:500;overflow:hidden}.dash-lesson:hover .dash-lesson-title{color:var(--accent-primary)}.dash-lesson.is-done .dash-lesson-title{color:var(--text-muted)}.dash-lesson-meta{color:var(--text-faint);flex:none;font-size:.75rem}.dash-lesson-done-at{color:var(--status-stable-text);flex:none;font-size:.72rem;font-weight:600}.dash-lesson-bookmark{color:var(--accent-primary);flex:none;margin-left:.25rem;font-size:.76rem}.dash-module.is-complete{border-color:var(--status-stable-border)}.dash-footnote{color:var(--text-faint);text-align:center;justify-content:center;align-items:center;gap:.45rem;font-size:.8rem;display:flex}@media (max-width:768px){.dash-wrap{padding:1.5rem 1rem 4rem}.dash-hero{text-align:center;flex-direction:column;padding:2rem 1.5rem}.dash-sub{margin-left:auto;margin-right:auto}.dash-hero-actions{justify-content:center}.dash-continue{flex-wrap:wrap}.dash-continue .btn-primary-action{justify-content:center;width:100%}.dash-lesson-title{white-space:normal}}@media (max-width:480px){.dash-stats{grid-template-columns:repeat(2,1fr);gap:.75rem}.dash-stat{gap:.6rem;padding:.9rem .75rem}.dash-stat-icon{width:2.25rem;height:2.25rem}}.syllabus-doc-container{background-color:var(--bg-subtle);min-height:100vh;color:var(--text-primary);padding:3rem 1.5rem 6rem}.syllabus-doc-wrapper{max-width:960px;margin:0 auto}.syllabus-doc-main-title{font-family:var(--font-display);color:var(--text-primary);letter-spacing:-.02em;margin-top:1rem;margin-bottom:1.25rem;font-size:2.2rem;font-weight:700;line-height:1.25}.syllabus-lead-text{color:var(--text-secondary);max-width:68ch;margin-bottom:2rem;font-size:1.05rem;line-height:1.75}.syllabus-doc-divider{border:none;border-top:1px solid var(--border-light);margin:2.5rem 0}.syllabus-doc-phase{background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);margin-bottom:2rem;padding:2rem}.syllabus-doc-phase h2{font-family:var(--font-display);color:var(--text-primary);letter-spacing:-.025em;margin-bottom:1.25rem;font-size:1.4rem;font-weight:600;line-height:1.4}.syllabus-doc-phase h3{color:var(--text-primary);border-bottom:1px solid var(--border-light);margin-top:1.5rem;margin-bottom:.85rem;padding-bottom:.65rem;font-size:1.1rem;font-weight:600}.syllabus-doc-checklist{flex-direction:column;gap:.5rem;margin:0 0 1.5rem;padding:0;list-style:none;display:flex}.syllabus-doc-checklist>li{flex-direction:column;gap:.35rem;padding:.65rem 0;display:flex}.syllabus-check-label{cursor:pointer;color:var(--text-primary);align-items:flex-start;gap:.8rem;font-size:1rem;line-height:1.65;display:flex}.syllabus-doc-check{opacity:0;width:0;height:0;position:absolute}.syllabus-doc-check-box{border:1.75px solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--bg-card);flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;margin-top:3px;transition:background .15s,border-color .15s;display:inline-flex}.syllabus-doc-check:checked+.syllabus-doc-check-box{background:var(--accent-solid);border-color:var(--accent-solid)}.syllabus-doc-check:checked+.syllabus-doc-check-box:after{content:"";border:solid var(--accent-on-solid);border-width:0 2px 2px 0;width:5px;height:9px;margin-top:-2px;transform:rotate(45deg)}.syllabus-doc-check:focus-visible+.syllabus-doc-check-box{outline:2px solid var(--accent-primary);outline-offset:3px}.syllabus-check-label:hover .syllabus-doc-check-box{border-color:var(--accent-primary)}.syllabus-item-content{justify-content:space-between;align-items:flex-start;gap:.75rem;width:100%;display:flex}.syllabus-item-content .syllabus-check-label{flex:1}.syllabus-topic-arrow{color:var(--accent-primary);border-radius:var(--radius-sm);vertical-align:middle;flex-shrink:0;justify-content:center;align-items:center;margin-left:.45rem;padding:.35rem .5rem;font-size:.8rem;text-decoration:none;transition:background .15s,color .15s;display:inline-flex}.syllabus-topic-arrow:hover{color:var(--accent-primary);background:var(--accent-light)}.syllabus-doc-questions-list{flex-direction:column;gap:.75rem;margin:0;padding-left:1.5rem;display:flex}.syllabus-doc-questions-list li{color:var(--text-primary);font-size:.985rem;font-weight:500;line-height:1.6}@media (max-width:768px){.syllabus-doc-container{padding:2rem 1rem 4rem}.syllabus-doc-main-title{font-size:1.75rem}.syllabus-doc-phase{padding:1.25rem}.syllabus-doc-subbullets{padding-left:1.5rem}.syllabus-doc-questions-list{padding-left:1.25rem}}.qbank{background-color:var(--bg-primary);min-height:100vh;color:var(--text-primary);padding:3rem 1.5rem 6rem}.qbank-wrap{max-width:1000px;margin:0 auto}.qbank-title{font-family:var(--font-display);letter-spacing:-.05em;margin:1rem 0;font-size:clamp(2rem,3.5vw,3rem);font-weight:700;line-height:1.25}.qbank-lead{color:var(--text-secondary);max-width:68ch;font-size:1.05rem;line-height:1.7}.qbank-lead code,.qbank-notes code{background:var(--bg-elevated);border-radius:4px;padding:.1rem .35rem;font-size:.9em}.qbank-section{margin-top:3rem}.qbank-section--muted{background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:1.75rem}.qbank-section--muted .qbank-section-title{margin-top:0}.qbank-section-title{font-family:var(--font-display);letter-spacing:-.025em;align-items:center;gap:.6rem;margin:0 0 .5rem;font-size:1.25rem;font-weight:600;line-height:1.4;display:flex}.qbank-section-title svg{color:var(--accent-primary);font-size:.9em}.qbank-section-note{color:var(--text-muted);max-width:72ch;margin:0 0 1.25rem;font-size:.95rem;line-height:1.65}.qbank-progress-panel{background:var(--bg-subtle);border-radius:var(--radius-lg);padding:1.5rem}.qbank-progress-panel .qbank-section-title{color:var(--text-primary)}.qbank-progress-panel .qbank-section-note{color:var(--text-secondary)}.qbank-progress-panel-row{margin-top:.75rem}.qbank-progress-panel-count{color:var(--text-secondary);align-items:baseline;gap:.5rem;font-size:1rem;display:flex}.qbank-progress-panel-count strong{font-size:1.6rem;font-family:var(--font-display);color:var(--accent-primary);font-variant-numeric:tabular-nums;font-weight:700;line-height:1}.qbank-progress-panel .qbank-bar{margin-top:.6rem;display:block}.qbank-continue{border:1px solid var(--accent-border);border-radius:var(--radius-md);background:var(--accent-light);color:var(--text-primary);align-items:center;gap:.75rem;margin-top:1rem;padding:.9rem 1rem;text-decoration:none;transition:background .15s,border-color .15s;display:flex}.qbank-continue:hover{background:var(--accent-light);border-color:var(--accent-primary)}.qbank-continue[hidden]{display:none}.qbank-continue .icon{color:var(--accent-primary);flex-shrink:0;font-size:1.1rem}.qbank-continue span{flex-direction:column;line-height:1.35;display:flex}.qbank-continue strong{font-size:1rem;font-weight:700}.qbank-continue em{color:var(--text-secondary);font-size:.85rem;font-style:normal}.qbank-row.is-resume-target{background:var(--accent-light);box-shadow:inset 3px 0 0 var(--accent-primary);border-radius:var(--radius-md)}.qbank-rank{border-radius:var(--radius-sm);background:var(--accent-light);min-width:2rem;height:2rem;color:var(--accent-primary);border:1px solid var(--accent-border);font-variant-numeric:tabular-nums;flex-shrink:0;justify-content:center;align-items:center;font-size:.85rem;font-weight:700;display:inline-flex}.qbank-question{color:var(--text-primary);align-items:baseline;gap:.75rem;margin:0;font-size:1.05rem;font-weight:600;line-height:1.6;display:flex}.qbank-meta{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:.5rem .9rem;margin:.5rem 0 0;font-size:.85rem;display:flex}.qbank-meta>span{align-items:center;gap:.35rem;display:inline-flex}.qbank-meta svg{color:var(--text-faint);font-size:.85em}.qbank-tier{letter-spacing:.02em;text-transform:uppercase;border:1px solid #0000;border-radius:999px;padding:.15rem .5rem;font-size:.7rem;font-weight:700}.qbank-tier--must-master{color:var(--accent-on-solid);background:var(--accent-solid);border-color:var(--accent-solid)}.qbank-tier--high{color:var(--accent-primary);background:var(--accent-light);border-color:var(--accent-border)}.qbank-tier--revise{color:var(--text-muted);background:var(--bg-elevated);border-color:var(--border-light)}.qbank-papers{min-height:44px;color:var(--accent-primary);align-items:center;padding:.35rem .5rem;font-weight:600;text-decoration:none;display:inline-flex}.qbank-papers:hover{text-decoration:underline}.qbank-inline-link{color:var(--accent-primary);align-items:center;gap:.4rem;margin-top:.5rem;font-size:.88rem;font-weight:600;text-decoration:none;display:inline-flex}.qbank-inline-link:hover{text-decoration:underline}.qbank-subject-links{flex-wrap:wrap;gap:.65rem;display:flex}.qbank-subject-links a{background:var(--bg-subtle);border-radius:var(--radius-md);color:var(--text-secondary);align-items:center;gap:.75rem;padding:.65rem .9rem;font-size:.85rem;text-decoration:none;display:inline-flex}.qbank-subject-links a:hover{background:var(--accent-light);color:var(--accent-primary)}.qbank-library-header{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.5rem;display:flex}.qbank-library-header>span{color:var(--text-muted);font-size:.8rem}.qbank-machine-search{background:var(--bg-subtle);border-radius:var(--radius-md);color:var(--text-muted);align-items:center;gap:.75rem;margin:1rem 0;padding:.8rem 1rem;display:flex}.qbank-machine-search:focus-within{outline:2px solid var(--accent-primary);outline-offset:2px}.qbank-machine-search input{width:100%;min-width:0;color:var(--text-primary);font:.9rem var(--font-sans);background:0 0;border:0;outline:0}.qbank-machine-empty{color:var(--text-muted);padding:2rem 0}.qbank-machine-empty button{color:var(--accent-primary);font:inherit;cursor:pointer;background:0 0;border:0;text-decoration:underline}.qbank-card[hidden],.qbank-machine-empty[hidden]{display:none}.qbank-cards{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));column-gap:1.75rem;display:grid}.qbank-card{border-bottom:1px solid var(--border-light);color:inherit;padding:1.25rem 0;text-decoration:none;transition:border-color .15s;display:block}.qbank-card:hover{border-color:var(--accent-primary)}.qbank-card:hover h3{color:var(--accent-primary)}.qbank-card-head{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.qbank-card h3{margin:0;font-size:.98rem;font-weight:700;line-height:1.5}.qbank-bar{background:var(--bg-elevated);border-radius:999px;flex-shrink:0;width:54px;height:6px;display:block;overflow:hidden}.qbank-bar-fill{background:var(--accent-solid);height:100%;display:block}.qbank-card-stats{color:var(--text-secondary);margin:.5rem 0 .15rem;font-size:.85rem}.qbank-card-flag{text-transform:uppercase;letter-spacing:.02em;color:var(--accent-primary);margin-left:.4rem;font-size:.7rem;font-weight:700;display:inline-block}.qbank-card-papers{color:var(--text-muted);margin:0;font-size:.78rem}.qbank-notes{color:var(--text-secondary);margin:0;padding-left:1.15rem;font-size:.93rem;line-height:1.7}.qbank-notes li{margin-bottom:.5rem}.qbank-theory{margin-top:2rem}.qbank-theory-links{flex-wrap:wrap;gap:.5rem;margin-top:.75rem;display:flex}.qbank-theory-link{border:1px solid var(--accent-border);background:var(--accent-light);color:var(--accent-primary);border-radius:var(--radius-md);align-items:center;gap:.45rem;padding:.6rem .9rem;font-size:.88rem;font-weight:600;text-decoration:none;display:inline-flex}.qbank-theory-link:hover{background:var(--accent-border)}.qbank-page-progress{border-bottom:1px solid var(--border-light);margin:1.5rem 0 1rem;padding:.75rem 0}.qbank-progress{color:var(--text-muted);font-variant-numeric:tabular-nums;flex-wrap:wrap;align-items:center;gap:.9rem;font-size:.82rem;display:flex}.qbank-reset{font:inherit;background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;padding:.35rem .65rem;font-size:.8rem}.qbank-reset:hover{color:var(--accent-primary)}.qbank-list{background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);margin:0;padding:0;list-style:none;overflow:hidden}.qbank-row{border-bottom:1px solid var(--border-light);border-left:3px solid #0000;gap:.9rem;padding:1.25rem 1.25rem 1.25rem 1rem;transition:border-color .15s,background .15s;display:flex}.qbank-row:last-child{border-bottom:none}.qbank-row[hidden]{display:none}.qbank-row.is-ticked{border-left-color:var(--accent-solid);background:var(--bg-subtle)}.qbank-row.is-ticked .qbank-question{color:var(--text-muted);text-decoration:line-through;-webkit-text-decoration-color:var(--border-subtle);text-decoration-color:var(--border-subtle)}.qbank-row-body{flex:1;min-width:0}.qbank-row-compact{align-items:center;gap:.75rem;padding:.5rem 1.25rem .5rem 1rem}.qbank-row-compact .qbank-question{flex:1;min-width:0;margin:0;font-size:.95rem;font-weight:500}.qbank-row-compact .qbank-check-label{padding-top:0}.qbank-list-compact{border-radius:var(--radius-md)}.qbank-section-meta{color:var(--text-muted);margin:0 0 .75rem;font-size:.85rem}.qbank-section-more{margin:.75rem 0 2rem;font-size:.9rem}.qbank-section-more a{min-height:44px;color:var(--accent-primary);align-items:center;gap:.35rem;font-weight:600;text-decoration:none;display:inline-flex}.qbank-section-title a{color:inherit;align-items:center;min-height:44px;text-decoration:none;display:inline-flex}.qbank-check-label{cursor:pointer;flex-shrink:0;padding-top:.25rem}.qbank-check{opacity:0;width:0;height:0;position:absolute}.qbank-check-box{border:2px solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--bg-card);width:1.15rem;height:1.15rem;transition:background .15s,border-color .15s;display:block}.qbank-check:checked+.qbank-check-box{background:var(--accent-solid);border-color:var(--accent-solid);position:relative}.qbank-check:checked+.qbank-check-box:after{content:"";border:solid var(--accent-on-solid);border-width:0 2px 2px 0;width:.3rem;height:.6rem;position:absolute;top:.08rem;left:.32rem;transform:rotate(45deg)}.qbank-check:focus-visible+.qbank-check-box{box-shadow:0 0 0 3px var(--accent-ring)}.qbank-also{color:var(--text-muted);margin:.45rem 0 0;font-size:.85rem;line-height:1.6}.qbank-also em{font-style:italic}.qbank-answer{color:inherit;background:0 0;border:none;margin-top:.35rem;padding:0}.qbank-answer-toggle{cursor:pointer;min-height:44px;color:var(--accent-primary);align-items:center;gap:.35rem;padding:.4rem 0;font-size:.82rem;font-weight:600;list-style:none;display:inline-flex}.qbank-answer-toggle::-webkit-details-marker{display:none}.qbank-answer-toggle:before{content:"+";font-weight:700}.qbank-answer[open] .qbank-answer-toggle:before{content:"–"}.qbank-answer-toggle svg{font-size:.8rem}.qbank-answer-toggle:hover{color:var(--accent-primary)}.qbank-answer-summary{color:var(--text-secondary);margin:.3rem 0 .4rem;font-size:.85rem;line-height:1.6}.qbank-answer-points{color:var(--text-secondary);margin:0 0 .4rem 1rem;padding:0;font-size:.85rem;line-height:1.6}.qbank-answer-points li{margin-bottom:.25rem}.qbank-answer-trap{color:var(--text-muted);margin:0 0 .4rem;font-size:.82rem;line-height:1.6}.qbank-answer .qbank-inline-link{margin-bottom:.4rem;font-size:.82rem;display:inline-block}.qbank-footnote{border-top:1px solid var(--border-light);color:var(--text-muted);margin-top:2.5rem;padding-top:1.25rem;font-size:.85rem;line-height:1.6}@media (max-width:640px){.qbank{padding:2rem 1rem 4rem}.qbank-title{font-size:1.6rem}.qbank-progress-panel,.qbank-section--muted{padding:1.25rem}.qbank-row{gap:.65rem;padding:1rem .85rem}}.library{width:min(100% - 3rem,1120px);color:var(--text-primary);margin:0 auto;padding:2rem 0 2.5rem}.library-header{padding-bottom:1.75rem}.library-eyebrow{color:var(--accent-primary);text-transform:uppercase;letter-spacing:.12em;margin-bottom:.4rem;font-size:.7rem;font-weight:650}.library-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.library-heading h1{font-family:var(--font-display);letter-spacing:-.045em;font-size:clamp(1.8rem,3vw,2.5rem);line-height:1.25}.library-heading>span{color:var(--text-muted);font-size:.75rem}.library-intro{color:var(--text-muted);margin-top:.65rem;font-size:.9rem;line-height:1.6}.library-actions{flex-wrap:wrap;gap:.6rem;margin-top:1rem;display:flex}.library-actions[hidden]{display:none}.library-actions button{border:1px solid var(--border-light);border-radius:var(--radius-sm);background:var(--bg-primary);min-height:40px;color:var(--text-secondary);font:500 .75rem var(--font-sans);cursor:pointer;padding:.5rem .8rem}.library-actions button:hover{color:var(--accent-primary);border-color:var(--accent-border)}.library-modules{border-top:1px solid var(--border-light)}.library-module{border-bottom:1px solid var(--border-light);position:relative}.library-module-overview{min-height:88px;color:var(--text-primary);align-items:center;gap:1rem;padding:1rem 180px 1rem 0;text-decoration:none;display:flex}.library-module-icon{color:var(--accent-primary);flex:0 0 30px;font-size:1.2rem}.library-module-copy{min-width:0}.library-module-copy h2{font-size:1.05rem;font-weight:600;line-height:1.45}.library-module-copy>span{color:var(--text-muted);margin-top:.3rem;font-size:.78rem;line-height:1.5;display:block}.library-module-overview:hover h2{color:var(--accent-primary)}.library-module-details>summary{position:absolute;top:1.4rem;right:0}.library summary{border-radius:var(--radius-sm);min-height:44px;color:var(--accent-primary);cursor:pointer;justify-content:center;align-items:center;gap:.7rem;padding:.5rem .65rem;font-size:.75rem;list-style:none;display:flex}.library summary::-webkit-details-marker{display:none}.library summary::marker{content:""}.library summary .icon{font-size:.65rem;transition:transform .15s}.library details[open]>summary .icon{transform:rotate(180deg)}.library summary:hover{background:var(--accent-light)}.library-module:has(>details[open]) .library-module-overview h2{color:var(--accent-primary)}.library-module-contents{background:var(--bg-primary);border-radius:var(--radius-md);margin:.25rem 0 1.5rem;padding:1.25rem 1.5rem}.library-topic-section+.library-chapter-section{margin-top:1.5rem}.library-topic-section>h3,.library-chapter-section>h3{color:var(--text-muted);text-transform:uppercase;letter-spacing:.1em;margin-bottom:.65rem;font-size:.65rem;font-weight:600}.library-topic-list{grid-template-columns:minmax(0,1fr);gap:.15rem;margin:0;padding:0;list-style:none;display:grid}.library-topic-list li{min-width:0}.library-topic-list a{color:var(--text-secondary);padding:.5rem 0;font-size:.82rem;line-height:1.55;text-decoration:none;display:block}.library-topic-list a:hover{color:var(--accent-primary);text-underline-offset:3px;text-decoration:underline}.library-chapter-groups{grid-template-columns:minmax(0,1fr);display:grid}.library-chapter-group{border-bottom:1px solid var(--border-light);min-width:0;position:relative}.library-chapter-overview{min-height:58px;color:var(--text-primary);align-items:center;padding:.85rem 115px .85rem 0;font-size:.84rem;line-height:1.5;text-decoration:none;display:flex}.library-chapter-overview h4{font:inherit;font-weight:600}.library-chapter-overview:hover{color:var(--accent-primary)}.library-chapter-details>summary{color:var(--text-muted);font-size:.7rem;position:absolute;top:.45rem;right:0}.library-chapter-details[open]>summary{color:var(--accent-primary)}.library-chapter-details>.library-topic-list{border-left:2px solid var(--accent-border);margin:.25rem 0 .9rem;padding:.5rem 1rem}.library :is(a,button,summary):focus-visible{outline:2px solid var(--accent-primary);outline-offset:3px}@media (max-width:640px){.library{width:calc(100% - 2rem);padding:1.5rem 0}.library-heading>span{font-size:.65rem}.library-intro{font-size:.82rem}.library-module-overview{gap:.65rem;min-height:80px;padding-right:125px}.library-module-icon{flex-basis:22px;font-size:1rem}.library-module-copy h2{font-size:.92rem}.library-module-copy>span{display:none}.library-module-details>summary{gap:.45rem;padding:.5rem .3rem;font-size:.68rem;top:1.15rem}.library-module-contents{padding:1rem .85rem}.library-chapter-overview{padding-right:95px}.library-chapter-details>summary{gap:.4rem;padding:.5rem .25rem;font-size:.65rem}.library-chapter-details>.library-topic-list{padding-left:.75rem;padding-right:0}}.learning-index{max-width:1120px;margin:0 auto;padding:2rem 1.5rem 1rem}.learning-index-header{border-bottom:1px solid var(--border-light);padding-bottom:1.75rem}.learning-breadcrumbs{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:.6rem;margin-bottom:1.5rem;font-size:.75rem;display:flex}.learning-breadcrumbs a{color:var(--text-secondary);text-decoration:none}.learning-breadcrumbs a:hover{color:var(--accent-primary)}.learning-breadcrumbs .icon{color:var(--text-faint);font-size:.55rem}.learning-index-heading{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem;display:flex}.learning-index-heading>div{min-width:0}.learning-index-heading h1{font-family:var(--font-display);letter-spacing:-.045em;text-wrap:balance;font-size:clamp(1.8rem,3vw,2.5rem);font-weight:700;line-height:1.25}.learning-index-total{color:var(--text-muted);white-space:nowrap;padding-bottom:.3rem;font-size:.75rem}.learning-index-description{max-width:85ch;color:var(--text-muted);margin-top:.9rem;font-size:.9rem;line-height:1.75}.learning-index-content{padding-top:1.5rem}.learning-index-list-title{letter-spacing:-.025em;margin-bottom:1rem;font-size:1.15rem;font-weight:600}.learning-index-entries{background:var(--bg-primary);border-radius:var(--radius-lg);padding:0 1.25rem}.learning-lesson,.learning-chapter{border-bottom:1px solid var(--border-light);color:var(--text-primary);align-items:center;gap:1rem;padding:1rem 0;text-decoration:none;display:flex}.learning-lesson:last-child,.learning-chapter:last-child{border-bottom:0}.learning-lesson:hover .learning-entry-title,.learning-chapter:hover .learning-entry-title{color:var(--accent-primary)}.learning-lesson-number{font:.75rem var(--font-mono);color:var(--text-faint);flex:0 0 2rem}.learning-entry-body{flex-direction:column;flex:1;gap:.3rem;min-width:0;display:flex}.learning-entry-title{font-size:.95rem;font-weight:600;line-height:1.45}.learning-entry-summary{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:.78rem;overflow:hidden}.learning-entry-meta{color:var(--text-muted);font-size:.65rem}.learning-entry-arrow{color:var(--text-faint);flex-shrink:0;font-size:.8rem}.learning-index-chapters{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 2rem;display:grid}.learning-chapter-icon{border-radius:var(--radius-md);width:38px;height:38px;color:var(--accent-primary);background:var(--accent-light);flex:0 0 38px;place-items:center;display:grid}.learning-index-footer{flex-wrap:wrap;justify-content:space-between;gap:1rem;padding-top:1.5rem;font-size:.75rem;display:flex}.learning-index-footer a{color:var(--text-muted);text-decoration:none}.learning-index-footer a:hover{color:var(--accent-primary)}@media (max-width:640px){.learning-index{padding:1.5rem 1rem .5rem}.learning-index-header{padding-bottom:1.25rem}.learning-breadcrumbs{margin-bottom:1.1rem}.learning-index-description{font-size:.85rem}.learning-index-entries{padding:0 .85rem}.learning-index-chapters{grid-template-columns:minmax(0,1fr)}.learning-lesson,.learning-chapter{gap:.7rem;padding:.85rem 0}.learning-lesson-number{flex-basis:1.4rem;font-size:.65rem}.learning-entry-title{font-size:.875rem}.learning-lesson .learning-entry-summary{display:none}.learning-entry-arrow{font-size:.7rem}}.model-gallery{max-width:var(--max-width);margin:0 auto;padding:2rem 1.5rem 4rem}.model-gallery [hidden]{display:none!important}.model-gallery-breadcrumbs{color:var(--text-muted);align-items:center;gap:.65rem;margin-bottom:1.75rem;font-size:.8rem;display:flex}.model-gallery-breadcrumbs a{color:var(--text-secondary);text-decoration:none}.model-gallery-heading{justify-content:space-between;align-items:center;gap:2rem;display:flex}.model-gallery-eyebrow{color:var(--accent-primary);letter-spacing:.1em;text-transform:uppercase;margin:0 0 .45rem;font-size:.72rem;font-weight:700}.model-gallery-heading h1{color:var(--text-primary);font-family:var(--font-display);letter-spacing:-.04em;margin:0;font-size:clamp(2rem,4vw,3rem);line-height:1.15}.model-gallery-intro{max-width:620px;color:var(--text-secondary);margin:.85rem 0 0;font-size:.98rem;line-height:1.65}.model-gallery-total{border-left:1px solid var(--border-light);color:var(--text-muted);flex-shrink:0;gap:.25rem;padding-left:2rem;font-size:.8rem;display:grid}.model-gallery-total strong{color:var(--text-primary);font-size:2.2rem;font-weight:600;line-height:1.1}.model-gallery-tools{background:var(--bg-subtle);border-radius:var(--radius-md);gap:1rem;margin-top:2rem;padding:1.25rem;display:grid}.model-gallery-search{border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--bg-primary);max-width:540px;color:var(--text-muted);align-items:center;gap:.75rem;padding:.75rem .9rem;display:flex}.model-gallery-search>span{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.model-gallery-search:focus-within{border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-ring)}.model-gallery-search input{width:100%;min-width:0;color:var(--text-primary);font:inherit;background:0 0;border:0;outline:0;padding:0;font-size:.92rem}.model-gallery-search input::placeholder{color:var(--text-muted)}.model-gallery-categories{flex-wrap:wrap;gap:.5rem;display:flex}.model-gallery-categories button{border:1px solid var(--border-light);border-radius:var(--radius-sm);background:var(--bg-card);min-height:40px;color:var(--text-secondary);font:inherit;cursor:pointer;justify-content:center;align-items:center;gap:.5rem;padding:.5rem .8rem;font-size:.8rem;font-weight:600;display:inline-flex}.model-gallery-categories button span{opacity:.75;font-variant-numeric:tabular-nums;font-size:.72rem}.model-gallery-categories button:hover{border-color:var(--accent-primary)}.model-gallery-categories button[aria-pressed=true]{border-color:var(--accent-solid);background:var(--accent-solid);color:var(--accent-on-solid)}.model-gallery-results{flex-wrap:wrap;align-items:baseline;gap:.5rem 1rem;margin:1.75rem 0 1rem;display:flex}.model-gallery-results h2{color:var(--text-primary);margin:0;font-size:1.05rem;font-weight:650}.model-gallery-results p{color:var(--text-muted);margin:0;font-size:.8rem}.model-gallery-reset{color:var(--accent-primary);font:inherit;cursor:pointer;text-underline-offset:3px;background:0 0;border:0;margin-left:auto;padding:.35rem 0;font-size:.8rem;font-weight:600;text-decoration:underline}.model-gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem;display:grid}.model-tile{border:1px solid var(--border-light);border-radius:var(--radius-md);background:var(--bg-card);flex-direction:column;min-width:0;display:flex;overflow:hidden}.model-tile:hover{border-color:var(--border-subtle)}.model-tile-preview{aspect-ratio:8/5;border-bottom:1px solid var(--border-light);background:#f4f7fa;text-decoration:none;display:block;overflow:hidden}.model-tile-preview img{object-fit:contain;width:100%;height:100%;display:block}.model-tile-body{flex-direction:column;flex:1;padding:1rem;display:flex}.model-tile-category{color:var(--text-muted);letter-spacing:.04em;text-transform:uppercase;margin:0 0 .4rem;font-size:.68rem;font-weight:600}.model-tile h3{color:var(--text-primary);margin:0;font-size:1.05rem;line-height:1.35}.model-tile-components{color:var(--text-secondary);margin:.5rem 0 .85rem;font-size:.8rem;line-height:1.5}.model-tile-launch{border:1px solid var(--accent-border);border-radius:var(--radius-sm);background:var(--accent-light);min-height:40px;color:var(--accent-primary);align-self:flex-start;align-items:center;gap:.75rem;margin-top:auto;padding:.5rem .8rem;font-size:.78rem;font-weight:600;text-decoration:none;display:inline-flex}.model-tile-launch .icon{font-size:.7rem}.model-tile-launch:hover{border-color:var(--accent-solid);background:var(--accent-solid);color:var(--accent-on-solid)}.model-gallery-empty{border:1px dashed var(--border-subtle);border-radius:var(--radius-md);text-align:center;color:var(--text-muted);padding:3rem 1rem}.model-gallery-empty h2{color:var(--text-primary);margin:1rem 0 .5rem;font-size:1.2rem}.model-gallery-empty p{margin:0;font-size:.9rem}.model-gallery-empty button{border-radius:var(--radius-sm);background:var(--accent-solid);min-height:44px;color:var(--accent-on-solid);font:inherit;cursor:pointer;border:0;margin-top:1.25rem;padding:.65rem 1rem;font-size:.88rem;font-weight:600}.model-gallery a:focus-visible,.model-gallery button:focus-visible{outline:3px solid var(--accent-primary);outline-offset:3px}@media (max-width:900px){.model-gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.model-gallery-total{display:none}}@media (max-width:560px){.model-gallery{padding:1.25rem 1rem 3rem}.model-gallery-breadcrumbs{margin-bottom:1.25rem}.model-gallery-intro{font-size:.88rem;line-height:1.55}.model-gallery-tools{gap:.75rem;margin-top:1.5rem;padding:.75rem}.model-gallery-categories{grid-template-columns:repeat(2,minmax(0,1fr));gap:.4rem;display:grid}.model-gallery-categories button{text-align:left;justify-content:space-between;min-height:44px;padding:.5rem;font-size:.71rem}.model-gallery-categories button span{font-size:.65rem}.model-gallery-results{margin-top:1.25rem}.model-gallery-results p{font-size:.73rem}.model-gallery-grid{grid-template-columns:minmax(0,1fr);gap:.75rem}.model-tile-body{padding:.75rem}.model-tile-category{font-size:.6rem}.model-tile h3{font-size:.94rem}.model-tile-components{margin:.35rem 0 .25rem;font-size:.72rem;line-height:1.45}.model-tile-launch{min-height:40px;font-size:.75rem}}.engine-room-page{width:min(100% - 2rem,1080px);color:var(--text-primary);margin:0 auto;padding:2.5rem 0 4rem}.engine-room-page *,.engine-room-page :before,.engine-room-page :after{box-sizing:border-box}.engine-room-hero,.engine-room-section{border:1px solid var(--border-light);border-radius:var(--radius-lg);background:var(--bg-elevated);min-width:0;margin-bottom:2rem;padding:clamp(1.1rem,3vw,2rem)}.engine-room-eyebrow{color:var(--accent-primary);letter-spacing:.1em;text-transform:uppercase;margin:0 0 .55rem;font-size:.75rem;font-weight:700}.engine-room-page h1{letter-spacing:-.04em;max-width:800px;margin:0;font-size:clamp(2rem,5vw,3.25rem);line-height:1.08}.engine-room-intro{max-width:760px;color:var(--text-secondary);margin:1rem 0;font-size:1.1rem;line-height:1.65}.engine-room-caution,.engine-room-safety{border-left:4px solid var(--accent-primary)}.engine-room-page p{overflow-wrap:anywhere;line-height:1.7}.engine-room-page a{color:var(--accent-primary)}.engine-room-page h2{margin:0 0 .8rem;font-size:clamp(1.35rem,3vw,1.8rem)}.engine-room-page h3{margin:0 0 .5rem;font-size:1.1rem}.engine-room-section>p{max-width:80ch;color:var(--text-secondary)}.engine-room-launch,.engine-room-lesson-launch{border:1px solid var(--accent-solid);border-radius:var(--radius-md);background:var(--accent-solid);color:#fff;max-width:100%;min-height:44px;font:inherit;text-align:center;cursor:pointer;justify-content:center;align-items:center;padding:.65rem 1rem;font-weight:650;display:inline-flex}.engine-room-launch:hover,.engine-room-lesson-launch:hover{background:var(--accent-solid-hover)}.engine-room-launch:focus-visible,.engine-room-lesson-launch:focus-visible{outline:3px solid var(--accent-primary);outline-offset:3px}.engine-room-lessons{counter-reset:none;gap:1rem;margin:0;padding:0;list-style:none;display:grid}.engine-room-lesson{border:1px solid var(--border-light);border-radius:var(--radius-md);background:var(--bg-subtle);min-width:0;padding:1rem;scroll-margin-top:1rem}.engine-room-lesson p{color:var(--text-secondary)}.engine-room-source{border-top:1px solid var(--border-light);color:var(--text-secondary);margin-top:1rem;padding-top:.7rem}.engine-room-source summary{color:var(--text-primary);cursor:pointer;font-weight:600}.engine-room-source ul{overflow-wrap:anywhere;padding-left:1.25rem}.engine-room-noscript{border:1px solid var(--border-light);border-radius:var(--radius-md);padding:1rem}@media (max-width:600px){.engine-room-page{width:min(100% - 1rem,1080px);padding-top:1rem}.engine-room-hero,.engine-room-section{padding:1rem}.engine-room-lesson{padding:.8rem}}
