.slide-notes{background:#fafaf8;border:1px solid var(--border, #d8d4c8);border-radius:8px;padding:18px 20px;margin-top:14px}.slide-notes-header{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:10px}.slide-notes-title{font-family:var(--mono, ui-monospace, SFMono-Regular, Menlo, monospace);font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink, #1a1814)}.slide-notes-author{font-family:var(--mono, ui-monospace, SFMono-Regular, Menlo, monospace);font-size:11px;color:var(--ink3, #7a7570)}.slide-notes-composer{display:flex;flex-direction:column;gap:6px}.slide-notes-textarea{width:100%;min-height:110px;padding:12px 14px;border:1px solid var(--border, #d8d4c8);border-radius:6px;font-family:var(--sans, system-ui, sans-serif);font-size:15px;line-height:1.55;background:#fff;resize:vertical}.slide-notes-textarea:focus{outline:none;border-color:var(--ink, #1a1814);box-shadow:0 0 0 3px #e8c87059}.slide-notes-composer-actions{display:flex;justify-content:space-between;align-items:center;gap:10px}.slide-notes-hint{font-family:var(--mono, monospace);font-size:11px;color:var(--ink3, #7a7570)}.slide-notes-submit{background:var(--ink, #1a1814);color:#fff;border:none;padding:8px 16px;border-radius:5px;font-family:var(--mono, monospace);font-size:12px;font-weight:600;letter-spacing:.04em;cursor:pointer;transition:background .15s,opacity .15s}.slide-notes-submit:hover:not(:disabled){background:#2a2620}.slide-notes-submit:disabled{opacity:.4;cursor:not-allowed}.slide-notes-list{list-style:none;margin:18px 0 0;padding:0;display:flex;flex-direction:column;gap:10px}.slide-notes-comment{background:#fff;border:1px solid var(--border, #d8d4c8);border-radius:6px;padding:10px 14px}.slide-notes-comment-header{display:flex;align-items:center;gap:10px;font-family:var(--mono, monospace);font-size:11px;margin-bottom:6px}.slide-notes-comment-author{color:var(--ink, #1a1814);font-weight:700;letter-spacing:.02em}.slide-notes-comment-time{color:var(--ink3, #7a7570)}.slide-notes-comment-edited{font-style:italic}.slide-notes-comment-actions{margin-left:auto;display:flex;gap:6px}.slide-notes-comment-actions button{background:transparent;border:1px solid var(--border, #d8d4c8);border-radius:3px;padding:2px 8px;font-family:inherit;font-size:10px;color:var(--ink3, #7a7570);cursor:pointer}.slide-notes-comment-actions button:hover{border-color:var(--ink, #1a1814);color:var(--ink, #1a1814)}.slide-notes-comment-body{margin:0;font-family:var(--sans, system-ui, sans-serif);font-size:14.5px;line-height:1.55;color:var(--ink, #1a1814);white-space:pre-wrap}.slide-notes-empty{margin:14px 0 0;font-family:var(--mono, monospace);font-size:12px;color:var(--ink3, #7a7570);font-style:italic}:root{--bg: oklch(1 0 0);--bg2: oklch(.97 0 0);--bg3: oklch(.985 0 0);--bg-card: oklch(1 0 0);--bg-popover: oklch(1 0 0);--border: oklch(.922 0 0);--border-soft: oklch(.95 0 0);--ring: oklch(.708 0 0);--ink: oklch(.145 0 0);--ink2: oklch(.32 0 0);--ink3: oklch(.556 0 0);--ink-inverse: oklch(.985 0 0);--primary: oklch(.205 0 0);--primary-fg: oklch(.985 0 0);--green: #16a34a;--green-light: #bbf7d0;--green-bg: #f0fdf4;--amber: #f59e0b;--amber-soft: #fef3c7;--blue: #2563eb;--blue-soft: #dbe7fb;--red: #dc2626;--purple: #7c3aed;--purple-soft: #ede4fb;--pink: #db2777;--teal: #0d9488;--orange: #ea580c;--chapter-q1: var(--blue);--chapter-q1-soft: var(--blue-soft);--chapter-q1-ink: #1d4583;--chapter-q2: var(--teal);--chapter-q2-soft: color-mix(in srgb, var(--teal) 18%, transparent);--chapter-q2-ink: #0a5d56;--display: "Fraunces", "Iowan Old Style", "Charter", Georgia, serif;--sans: "Inter Tight", ui-sans-serif, -apple-system, "Segoe UI", Roboto, sans-serif;--mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--shadow-xs: 0 1px 0 rgba(28,26,23,.04);--shadow-sm: 0 1px 2px rgba(28,26,23,.05), 0 0 0 1px rgba(28,26,23,.02);--shadow-md: 0 4px 12px rgba(28,26,23,.06), 0 1px 2px rgba(28,26,23,.04);--shadow-lg: 0 12px 28px rgba(28,26,23,.1), 0 2px 4px rgba(28,26,23,.05);--shadow-ring: 0 0 0 3px rgba(28,26,23,.08);--radius-xs: 4px;--radius-sm: 6px;--radius: 10px;--radius-lg: 14px;--radius-xl: 20px;--s1: 4px;--s2: 8px;--s3: 12px;--s4: 16px;--s5: 24px;--s6: 32px;--s7: 48px;--dep-cell-empty: #ffffff;--dep-cell-amber: #fbbf24;--dep-cell-mid: #4ade80;--dep-cell-confident: #16a34a;--dep-wash-amber: #fef3c7;--dep-wash-mid: #dcfce7;--dep-wash-confident: #bbf7d0}:root[data-theme=dark]{--bg: oklch(.08 0 0);--bg2: oklch(.3 0 0);--bg3: oklch(.2 0 0);--bg-card: oklch(.22 0 0);--bg-popover: oklch(.245 0 0);--border: oklch(.3 0 0);--border-soft: oklch(.245 0 0);--ring: oklch(.556 0 0);--ink: oklch(.985 0 0);--ink2: oklch(.78 0 0);--ink3: oklch(.556 0 0);--ink-inverse: oklch(.205 0 0);--primary: oklch(.922 0 0);--primary-fg: oklch(.205 0 0);--green: #4ade80;--green-light: #14532d;--green-bg: #0f2417;--amber: #fbbf24;--amber-soft: #2a2410;--blue: #60a5fa;--blue-soft: #16203a;--red: #f87171;--purple: #a78bfa;--purple-soft: #1f1830;--pink: #f472b6;--teal: #2dd4bf;--orange: #fb923c;--shadow-xs: 0 1px 0 rgba(0,0,0,.5);--shadow-sm: 0 1px 2px rgba(0,0,0,.5), 0 0 0 1px rgba(255,255,255,.04);--shadow-md: 0 4px 14px rgba(0,0,0,.55);--shadow-lg: 0 12px 28px rgba(0,0,0,.65);--shadow-ring: 0 0 0 3px rgba(255,255,255,.08);--dep-cell-empty: oklch(.205 0 0);--dep-cell-amber: #f59e0b;--dep-cell-mid: #16a34a;--dep-cell-confident: #22c55e;--dep-wash-amber: #2a2410;--dep-wash-mid: #14241c;--dep-wash-confident: #1a3022;color-scheme:dark}:root[data-theme=dark] body{background:var(--bg);color:var(--ink)}:root[data-theme=dark] .topnav,:root[data-theme=dark] .lesson-view-header,:root[data-theme=dark] .question-topbar,:root[data-theme=dark] .concept-page-topbar{background:var(--bg)}:root[data-theme=dark] .roadmap-step-action.primary,:root[data-theme=dark] .lesson-nav-row.active .lesson-nav-num,:root[data-theme=dark] .discussion-mini,:root[data-theme=dark] .discussion-post,:root[data-theme=dark] .cm-popup-go,:root[data-theme=dark] .exam-link.primary,:root[data-theme=dark] .marks-reset,:root[data-theme=dark] .topnav-account-avatar,:root[data-theme=dark] .account-btn.primary,:root[data-theme=dark] .account-avatar-lg,:root[data-theme=dark] .account-course-mark,:root[data-theme=dark] .next-question-btn,:root[data-theme=dark] .slide-modal-jump,:root[data-theme=dark] .summary-modal-pdf,:root[data-theme=dark] .question-topbar .start-test-btn,:root[data-theme=dark] .lesson-tile.confident,:root[data-theme=dark] .roadmap-step-check,:root[data-theme=dark] .auth-submit,:root[data-theme=dark] .landing-cta-primary,:root[data-theme=dark] .landing-nav-cta,:root[data-theme=dark] .profile-follow-btn:not(.following),:root[data-theme=dark] .catalog-enrol-btn:not(.on),:root[data-theme=dark] .catalog-card.is-enrolled .catalog-card-mark{color:var(--bg)}:root[data-theme=dark] .exam-link:hover,:root[data-theme=dark] .concept-card-lec:hover,:root[data-theme=dark] .concept-page-lec:hover{color:var(--bg)!important}:root[data-theme=dark] .discussion-section:nth-of-type(1),:root[data-theme=dark] .discussion-section:nth-of-type(2){background:var(--bg-card);border-color:var(--border)}:root[data-theme=dark] .discussion-comment{background:#1a2235;border-color:#2a3d6b}:root[data-theme=dark] .discussion-section:nth-of-type(1) .discussion-textarea{background:#1f1a10;border-color:#4a3a18;color:var(--ink)}:root[data-theme=dark] .discussion-section:nth-of-type(2) .discussion-textarea{background:#131a2c;border-color:#2a3d6b;color:var(--ink)}:root[data-theme=dark] .discussion-textarea::placeholder{color:var(--ink3)}:root[data-theme=dark] .discussion-textarea:focus{background:var(--bg-card);box-shadow:0 0 0 3px #ffffff0f}:root[data-theme=dark] mark{background:#5a4a14;color:var(--ink)}*{box-sizing:border-box}html,body,#root{margin:0;padding:0}body{font-family:var(--sans);font-feature-settings:"ss01","ss02","cv01","cv11";-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;background:var(--bg);color:var(--ink);font-size:15.5px;line-height:1.55;-webkit-font-smoothing:antialiased}.app-shell{max-width:1320px;margin:0 auto;padding:0 24px 48px}.app-shell.has-sidenav{display:grid;grid-template-columns:1fr 220px;grid-template-areas:"main side";column-gap:24px;padding-top:112px;padding-bottom:0}.app-shell.has-sidenav>.sidenav{grid-area:side}.app-shell.has-sidenav>.app-main{grid-area:main;min-width:0}.app-main{margin-top:18px}@media (max-width: 920px){.app-shell{padding-left:16px;padding-right:16px}.app-shell.has-sidenav{grid-template-columns:1fr;grid-template-areas:"side" "main";column-gap:0;row-gap:8px;padding-top:96px}.sidenav{position:static!important;max-height:none!important;width:100%!important;padding:8px!important;margin:0!important;overflow-x:auto}.sidenav-roadmap-label,.sidenav-section-title,.sidenav-ring,.sidenav-progress,.sidenav-foot{display:none!important}.sidenav-tabs{flex-direction:row!important;flex-wrap:nowrap;gap:4px!important;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:4px}.sidenav-tab{flex:0 0 auto;min-width:0;padding:6px 10px!important;font-size:13px!important;border-radius:6px;white-space:nowrap}.sidenav-label{font-size:13px}.sidenav-roadmap{padding:6px 10px!important;font-size:13px!important}}@media (max-width: 560px){.app-shell{padding-left:8px;padding-right:8px;padding-top:88px!important}.app-shell.has-sidenav{padding-top:88px}.sidenav-tab{padding:6px 8px!important}.sidenav-label,.topnav-search,.topnav-brand-name{display:none}}button{font-family:inherit}.topnav{position:fixed;top:0;left:0;right:0;z-index:50;height:88px;background:color-mix(in srgb,var(--bg-card) 88%,transparent);backdrop-filter:saturate(180%) blur(12px);-webkit-backdrop-filter:saturate(180%) blur(12px);color:var(--ink);display:flex;align-items:center;justify-content:space-between;gap:18px;padding:0 24px;border-bottom:1px solid var(--border);box-shadow:0 1px #1c1a170a}.topnav-left{display:inline-flex;align-items:center;gap:6px;height:100%;flex-shrink:0}.topnav-brand{display:inline-flex;align-items:center;gap:10px;height:100%;background:transparent;border:none;padding:0 4px;cursor:pointer;font:inherit;color:var(--ink);border-radius:var(--radius);flex-shrink:0;transition:background .12s}.topnav-brand:hover{background:var(--bg2)}.topnav-brand-mark{display:block;height:calc(100% - 12px);width:auto;object-fit:contain;flex-shrink:0}:root[data-theme=dark] .topnav-brand-mark{filter:invert(1)}.topnav-brand-name{display:inline-grid;grid-template-columns:auto auto;grid-template-rows:auto auto;font-family:var(--display);font-size:28px;font-style:italic;font-weight:400;font-variation-settings:"opsz" 144,"SOFT" 30;letter-spacing:-.025em;color:var(--ink);white-space:nowrap;line-height:.9}.topnav-brand-better{grid-row:1;grid-column:1;justify-self:start}.topnav-brand-moodle{grid-row:2;grid-column:2;justify-self:start;margin-left:-.25em}@media (max-width: 720px){.topnav-brand-name{display:none}}.auth-card-logo{display:block;max-width:280px;width:auto;height:112px;object-fit:contain;margin:0 auto 10px}:root[data-theme=dark] .auth-card-logo{filter:invert(1)}.course-switcher{position:relative;flex:0 0 auto;min-width:280px}.course-switcher-btn{display:inline-flex;align-items:center;gap:14px;width:100%;background:transparent;border:1px solid transparent;padding:10px 14px 10px 10px;border-radius:12px;cursor:pointer;font:inherit;color:var(--ink);transition:background .12s,border-color .12s}.course-switcher-btn:hover,.course-switcher-btn.open{background:var(--bg2);border-color:var(--border)}.course-switcher-mark{display:inline-flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:12px;background:var(--ink);color:var(--bg);font-family:var(--mono);font-size:16px;font-weight:700;letter-spacing:.02em;flex:0 0 auto}.course-switcher-text{display:flex;flex-direction:column;align-items:flex-start;line-height:1.15;flex:1;min-width:0}.course-switcher-code{font-family:var(--mono);font-size:18px;font-weight:700;letter-spacing:.04em;color:var(--ink)}.course-switcher-title{font-family:var(--sans);font-size:14px;color:var(--ink3);letter-spacing:0;text-transform:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.course-switcher-chev{color:var(--ink3);transition:transform .12s;flex:0 0 auto;width:18px;height:18px}.course-switcher-btn.open .course-switcher-chev{transform:rotate(180deg)}@media (max-width: 760px){.course-switcher{min-width:0}.course-switcher-btn{padding:6px 10px 6px 6px;gap:8px}.course-switcher-mark{width:28px;height:28px;font-size:10.5px}.course-switcher-title{display:none}}@media (max-width: 480px){.course-switcher-text{display:none}}.course-switcher-menu{position:absolute;top:calc(100% + 6px);left:0;z-index:220;min-width:320px;background:var(--bg-card);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-lg);padding:8px;animation:course-switcher-pop .12s ease}@keyframes course-switcher-pop{0%{transform:translateY(-4px);opacity:0}to{transform:translateY(0);opacity:1}}.course-switcher-menu-head{font-family:var(--mono);font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink3);padding:6px 10px 8px}.course-switcher-item{display:flex;align-items:center;gap:12px;width:100%;background:transparent;border:none;padding:8px 10px;border-radius:8px;cursor:pointer;text-align:left;font:inherit;color:var(--ink)}.course-switcher-item:hover:not(.disabled){background:var(--bg2)}.course-switcher-item.active{background:var(--bg2)}.course-switcher-item.disabled{opacity:.55;cursor:not-allowed}.course-switcher-item-mark{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:6px;background:var(--ink);color:var(--bg);font-family:var(--mono);font-size:11px;font-weight:700;flex:0 0 auto}.course-switcher-item-mark.plus{background:transparent;color:var(--ink2);border:1.5px dashed var(--border);font-size:18px}.course-switcher-item.disabled .course-switcher-item-mark{background:var(--bg3);color:var(--ink3)}.course-switcher-item-text{display:flex;flex-direction:column;line-height:1.2;flex:1;min-width:0}.course-switcher-item-code{font-family:var(--mono);font-size:12px;font-weight:700;letter-spacing:.04em;color:var(--ink)}.course-switcher-item.disabled .course-switcher-item-code{color:var(--ink3)}.course-switcher-item-title{font-size:12px;color:var(--ink3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.course-switcher-item-check{color:var(--ink);flex:0 0 auto}.course-switcher-menu-divider{height:1px;background:var(--border);margin:8px 4px}.course-switcher-item.add .course-switcher-item-code{color:var(--ink2)}.sidenav{position:fixed;top:112px;width:220px;padding:8px 0;z-index:40}.app-shell.has-sidenav>.sidenav{right:max(24px,calc((100vw - 1320px)/2 + 24px))}.sidenav-roadmap{display:flex;align-items:center;justify-content:center;gap:14px;width:100%;background:var(--ink);color:var(--ink-inverse);border:1px solid var(--ink);padding:18px 20px;border-radius:var(--radius-lg);font-family:var(--display);font-size:22px;font-weight:500;font-style:italic;letter-spacing:-.02em;cursor:pointer;margin-bottom:18px;box-shadow:var(--shadow-md);transition:transform .12s cubic-bezier(.2,.6,.2,1),box-shadow .12s ease,background .12s}.sidenav-roadmap:hover{transform:translateY(-1px);box-shadow:var(--shadow-lg);background:#000}.sidenav-roadmap:active{transform:translateY(0);box-shadow:var(--shadow-sm)}.sidenav-roadmap.active{background:var(--primary);border-color:var(--primary);color:var(--ink-inverse)}.sidenav-roadmap.active .sidenav-roadmap-icon{color:var(--ink-inverse)}.sidenav-roadmap-icon{color:var(--ink-inverse);flex-shrink:0}.sidenav-roadmap-label{font-family:var(--display);font-style:italic}.sidenav-tabs{display:flex;flex-direction:column;gap:4px}.sidenav-group-label{font-family:var(--mono);font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--ink3);padding:14px 8px 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidenav-group-label:first-child{padding-top:6px}.sidenav-tab{position:relative;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;background:transparent;border:1px solid transparent;padding:11px 14px;border-radius:var(--radius);font-family:var(--sans);font-size:15px;font-weight:500;letter-spacing:-.011em;color:var(--ink2);cursor:pointer;transition:color .14s ease,background .14s ease,border-color .14s ease;text-align:left}.sidenav-tab:before{content:"";position:absolute;left:-10px;top:50%;transform:translateY(-50%);width:3px;height:0;background:var(--primary);border-radius:0 2px 2px 0;transition:height .16s cubic-bezier(.2,.6,.2,1)}.sidenav-tab:hover{color:var(--ink);background:var(--bg2)}.sidenav-tab.active{color:var(--ink);background:var(--bg2);font-weight:600}.sidenav-tab.active:before{height:22px}.sidenav-icon{color:currentColor;flex-shrink:0}.sidenav-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidenav-ring{display:inline-flex;align-items:center;min-width:22px;justify-content:flex-end}.sidenav-ring:empty{display:none}.topnav-actions{display:inline-flex;align-items:center;gap:8px;flex-shrink:0}.topnav-iconbtn{display:inline-flex;align-items:center;gap:8px;background:transparent;border:1px solid transparent;color:var(--ink2);padding:8px 10px;border-radius:var(--radius);cursor:pointer;font:inherit;font-size:14px;transition:color .12s,background .12s,border-color .12s}.topnav-iconbtn:hover{color:var(--ink);background:var(--bg2)}.topnav-iconbtn:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.topnav-iconbtn-search{border-color:var(--border);background:var(--bg-card);padding-right:6px;min-width:240px;justify-content:flex-start}.topnav-iconbtn-search:hover{border-color:var(--ink);background:var(--bg2)}.topnav-search-label{flex:1;text-align:left;color:var(--ink3);font-size:14px}.topnav-iconbtn-search:hover .topnav-search-label{color:var(--ink2)}.topnav-kbd{display:inline-flex;align-items:center;justify-content:center;min-width:32px;height:22px;padding:0 6px;font-family:var(--mono);font-size:11px;font-weight:600;color:var(--ink3);background:var(--bg2);border:1px solid var(--border);border-radius:5px;letter-spacing:.02em}@media (max-width: 880px){.topnav-iconbtn-search{min-width:0;padding:8px 10px}.topnav-search-label,.topnav-kbd{display:none}}.topnav-avatar-wrap{position:relative}.topnav-avatar-btn{width:36px;height:36px;padding:0;border-radius:50%;border:1px solid var(--border);background:var(--bg-card);cursor:pointer;display:grid;place-items:center;transition:border-color .12s,transform .12s,box-shadow .12s}.topnav-avatar-btn:hover{border-color:var(--ink)}.topnav-avatar-btn.open{border-color:var(--ink);box-shadow:0 0 0 3px var(--bg2)}.topnav-avatar-circle{width:28px;height:28px;border-radius:50%;background:var(--ink);color:var(--bg-card);display:grid;place-items:center;font-family:var(--mono);font-size:13px;font-weight:700;letter-spacing:0}.topnav-menu{position:absolute;top:calc(100% + 6px);right:0;min-width:240px;z-index:220;background:var(--bg-popover);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:4px;animation:topnav-menu-pop .12s ease}@keyframes topnav-menu-pop{0%{transform:translateY(-4px);opacity:0}to{transform:translateY(0);opacity:1}}.topnav-menu-head{display:flex;align-items:center;gap:10px;padding:8px 8px 10px}.topnav-menu-avatar{width:38px;height:38px;border-radius:50%;background:var(--ink);color:var(--bg-card);display:grid;place-items:center;font-family:var(--mono);font-size:15px;font-weight:700;flex-shrink:0}.topnav-menu-id{display:flex;flex-direction:column;min-width:0;line-height:1.2}.topnav-menu-name{font-weight:700;color:var(--ink);font-size:14px}.topnav-menu-email{font-family:var(--mono);font-size:11.5px;color:var(--ink3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px}.topnav-menu-divider{height:1px;background:var(--border);margin:2px 4px}.topnav-menu-item{display:flex;align-items:center;gap:9px;width:100%;background:transparent;border:none;padding:6px 8px;border-radius:var(--radius-sm);cursor:pointer;font:inherit;font-size:13.5px;color:var(--ink2);text-align:left;transition:background .12s,color .12s}.topnav-menu-item:hover{background:var(--bg2);color:var(--ink)}.topnav-menu-item .icon{color:var(--ink3)}.topnav-menu-item:hover .icon{color:var(--ink)}.topnav-menu-item.danger{color:var(--red)}.topnav-menu-item.danger:hover{background:#dc262614;color:var(--red)}.topnav-menu-item.danger .icon{color:currentColor}.topnav-menu-head-btn{width:100%;background:transparent;border:0;cursor:pointer;text-align:left;border-radius:var(--radius-sm);transition:background .12s ease}.topnav-menu-head-btn:hover{background:var(--bg2)}.topnav-menu-theme{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:6px 8px;font-size:13.5px;color:var(--ink2)}.topnav-menu-theme-label{font-family:var(--mono);font-size:11.5px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--ink3)}.topnav-menu-theme-segment{display:inline-flex;align-items:center;background:var(--bg2);border:1px solid var(--border);border-radius:999px;padding:2px;gap:2px}.topnav-menu-theme-seg{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;cursor:pointer;display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:999px;font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--ink3);transition:background .15s ease,color .15s ease,box-shadow .15s ease}.topnav-menu-theme-seg .icon{color:currentColor}.topnav-menu-theme-seg:hover{color:var(--ink2)}.topnav-menu-theme-seg.active{background:var(--bg-card);color:var(--ink);box-shadow:0 1px 2px #00000014,0 0 0 1px var(--border)}[data-theme=dark] .topnav-menu-theme-seg.active{box-shadow:0 1px 2px #0006,0 0 0 1px #ffffff14}.auth-loading{display:flex;align-items:center;justify-content:center;height:100vh;font-family:var(--mono);color:var(--ink3)}.auth-shell{--bg: #f8f6f0;--bg2: #efeae0;--bg3: #ffffff;--bg-card: #ffffff;--ink: #1a1a1a;--ink2: #4a4a4a;--ink3: #7a7a7a;--ink-inverse: #ffffff;--border: #d8d4c8;--border-soft: rgba(0,0,0,.08);color-scheme:light;min-height:100vh;display:flex;align-items:center;justify-content:center;padding:32px 16px;background:linear-gradient(180deg,#f8f6f0,#efeae0);color:#1a1a1a}.auth-card{width:100%;max-width:420px;background:#fff;border:1px solid rgba(0,0,0,.08);border-radius:14px;box-shadow:0 24px 64px #0000001a,0 4px 16px #0000000f;padding:28px 28px 22px;color:#1a1a1a}@media (max-width: 480px){.auth-shell{padding:16px 12px}.auth-card{padding:22px 18px 18px;border-radius:12px}}.auth-card-head{text-align:center;margin-bottom:18px}.auth-card-head h1{font-size:22px;font-weight:700;margin:0 0 4px;letter-spacing:-.01em}.auth-card-head p{margin:0;font-size:13px;color:var(--ink3)}.auth-tabs{display:flex;gap:0;margin:16px 0 18px;border-bottom:1px solid rgba(0,0,0,.08)}.auth-tab{flex:1;background:transparent;border:none;padding:10px 0;font-family:var(--mono);font-size:11.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink3);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px}.auth-tab.active{color:var(--ink);border-bottom-color:var(--amber)}.auth-form{display:flex;flex-direction:column;gap:12px}.auth-field{display:flex;flex-direction:column;gap:4px}.auth-field span{font-family:var(--mono);font-size:10.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink3)}.auth-field input{padding:9px 12px;border:1px solid rgba(0,0,0,.14);border-radius:8px;font:inherit;font-size:14px;background:var(--bg3)}.auth-field input:focus{outline:none;border-color:var(--amber);background:var(--bg-card);box-shadow:0 0 0 3px #0000002e}.auth-error{background:#fdecec;border:1px solid #f3c2c2;color:#8a2222;padding:8px 12px;border-radius:8px;font-size:13px}.auth-info{background:#eef7ee;border:1px solid #c2dfc2;color:#225a22;padding:8px 12px;border-radius:8px;font-size:13px}.auth-confirm-pending{text-align:center;background:#eef7ee;border:1px solid #c2dfc2;border-radius:12px;padding:22px 22px 18px;margin:4px 0}.auth-confirm-mark{display:grid;place-items:center;width:84px;height:84px;border-radius:50%;background:#fff;color:#225a22;font-size:44px;line-height:1;margin:0 auto 14px;border:2px solid #c2dfc2}.auth-confirm-pending h3{font-family:var(--display);font-size:18px;margin:0 0 8px;color:#1d3a1d}.auth-confirm-pending p{margin:0 0 8px;font-size:13.5px;line-height:1.5;color:#2c4a2c}.auth-confirm-pending p strong{color:#1d3a1d}.auth-confirm-tip{font-size:12.5px!important;color:#4a684a!important;margin-bottom:0!important}.auth-submit{margin-top:4px;padding:11px 16px;border:none;border-radius:8px;background:var(--ink);color:var(--bg);font-family:var(--mono);font-size:12.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:filter .15s}.auth-submit:hover:not(:disabled){filter:brightness(1.08)}.auth-submit:disabled{opacity:.55;cursor:not-allowed}.auth-foot{margin-top:16px;font-size:13px;color:var(--ink3);text-align:center}.auth-link{background:transparent;border:none;color:var(--ink);font:inherit;text-decoration:underline;cursor:pointer;padding:0}.page-h{font-family:var(--display);font-size:clamp(32px,6vw,52px);font-weight:400;font-style:italic;font-variation-settings:"opsz" 144,"SOFT" 30;letter-spacing:-.035em;line-height:1.05;margin:28px 0 12px;color:var(--ink)}.page-sub{color:var(--ink2);font-size:15.5px;line-height:1.55;margin:0 0 24px;max-width:64ch}.page-empty{padding:24px;border:1px dashed var(--border);border-radius:6px;font-style:italic;color:var(--ink3);background:var(--bg3)}.back-link{background:transparent;border:1px solid var(--border);border-radius:6px;padding:5px 10px;font-family:var(--mono);font-size:11px;color:var(--ink3);cursor:pointer}.back-link:hover{border-color:var(--ink);color:var(--ink)}.lesson-group{margin:28px 0}.lesson-group-title{font-family:var(--sans);font-size:16px;font-weight:700;letter-spacing:-.01em;color:var(--ink);margin:0 0 14px;display:flex;align-items:baseline;gap:12px}.lesson-group-pct{font-family:var(--mono);font-size:11px;color:var(--ink3);font-weight:500;letter-spacing:.06em;text-transform:uppercase}.lesson-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}.lesson-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:16px;display:flex;flex-direction:column;gap:10px;transition:border-color .15s,transform .12s,box-shadow .15s;font-family:inherit;color:inherit;box-shadow:var(--shadow-sm)}.lesson-card:hover{border-color:var(--ink);transform:translateY(-2px);box-shadow:var(--shadow-md)}.lesson-card.expanded{transform:none}.lesson-card.mastered{background:var(--green-bg);border-color:var(--green-light)}.lesson-card-main{background:transparent;border:none;padding:0;margin:0;cursor:pointer;text-align:left;display:flex;flex-direction:column;gap:10px;font:inherit;color:inherit}.lesson-card-top{display:flex;justify-content:space-between;align-items:center}.lesson-card-tag{font-family:var(--mono);font-size:13px;font-weight:700;letter-spacing:.08em;background:var(--lec-bg, var(--bg2));color:var(--lec-ink, var(--ink));border:1px solid var(--lec-border, transparent);padding:4px 10px;border-radius:4px}.lesson-card-title{font-size:15px;font-weight:600;line-height:1.35}.lesson-card-meta{display:flex;justify-content:space-between;font-family:var(--mono);font-size:11px;color:var(--ink3)}.question-group-title{font-family:var(--sans);font-size:16px;font-weight:700;letter-spacing:-.01em;margin:24px 0 12px;color:var(--ink);display:flex;align-items:baseline;gap:14px}.question-group-title span{font-family:var(--mono);font-size:11px;color:var(--ink3);font-weight:500;letter-spacing:.08em}.question-list{display:flex;flex-direction:column;gap:8px}.question-row{display:grid;grid-template-columns:auto 1fr auto auto auto;align-items:center;gap:14px;padding:14px 18px;background:var(--bg-card);border:1px solid var(--border);border-radius:6px;text-align:left;cursor:pointer;font-family:inherit;color:inherit;transition:border-color .15s,transform .12s}.question-row:hover{border-color:var(--ink);transform:translate(2px)}.question-row-tag{font-size:12px;padding:4px 10px;letter-spacing:.08em}.question-row-title{font-size:15px;font-weight:600}.question-row-marks,.question-row-count{font-family:var(--mono);font-size:12px;color:var(--ink3)}.lesson-view-header{display:flex;align-items:stretch;gap:14px;flex-wrap:nowrap;margin:0 0 18px;color:var(--ink);background:transparent}.lesson-view-head-left{display:flex;flex-direction:column;gap:6px;flex-shrink:0;width:200px;align-self:stretch}.lesson-view-head-left .back-link,.lesson-view-head-left .lesson-view-share,.lesson-view-head-left .topbar-prevnext{width:100%;flex:1 1 0}.lesson-view-head-left .topbar-prevnext{display:flex;gap:6px}.lesson-view-head-left .topbar-prevnext .topbar-nav-btn{flex:1 1 0;height:100%}.lesson-view-head-left .back-link{display:flex;align-items:center;justify-content:center}@media (max-width: 760px){.lesson-view-header{flex-wrap:wrap}.lesson-view-head-left{flex-direction:row;width:auto;flex-wrap:wrap}.lesson-view-head-left .back-link,.lesson-view-head-left .lesson-view-share,.lesson-view-head-left .topbar-prevnext{width:auto}}.lesson-view-head-left .back-link{background:transparent;border-color:var(--border);color:var(--ink2)}.lesson-view-head-left .topbar-prevnext{gap:6px}.lesson-view-head-left .topbar-nav-btn{background:transparent;border-color:var(--border);color:var(--ink2)}.lesson-view-head-left .topbar-nav-btn:hover:not(:disabled){border-color:var(--ink);color:var(--ink);background:var(--bg2)}.lesson-view-head-card{flex:1 1 auto;display:flex;align-items:center;gap:14px;flex-wrap:wrap;background:var(--bg-card);border:1px solid var(--border);border-radius:8px;padding:16px 22px;box-shadow:var(--shadow-sm);min-width:0}.lesson-view-header .back-link{background:transparent;border-color:var(--border);color:var(--ink2)}.lesson-view-header .back-link:hover{color:var(--ink);border-color:var(--ink)}.lesson-view-title h2{margin:0;font-family:var(--display);font-size:40px;font-weight:700;color:var(--ink);letter-spacing:-.02em;line-height:1.1}.lesson-view-id{display:inline-flex;align-items:center;gap:10px;margin-top:8px;font-family:var(--mono);font-size:14px;color:var(--ink2)}.lesson-view-id-chip{display:inline-flex;align-items:center;height:26px;padding:0 10px;background:var(--lec-bg, var(--bg2));color:var(--lec-ink, var(--ink));border:1px solid var(--lec-border, var(--border));border-radius:6px;font-weight:700;font-size:13px;letter-spacing:.06em}.lesson-view-id-sep{color:var(--ink3);font-size:14px}.lesson-view-id-slides{display:inline-flex;align-items:baseline;gap:4px;color:var(--ink2)}.lesson-view-id-slides strong{font-weight:700;font-size:18px;color:var(--ink);font-variant-numeric:tabular-nums}.lesson-view-mastery{margin-left:auto;display:flex;align-items:center;gap:10px;font-family:var(--mono);font-size:12px;color:var(--ink2)}.lesson-view-mastery .dl-btn{background:transparent;border-color:var(--border);color:var(--ink)}.lesson-view-mastery .dl-btn:hover{border-color:var(--ink);background:var(--bg2)}.lesson-view-header .topbar-nav-btn{background:transparent;border-color:var(--border);color:var(--ink2)}.lesson-view-header .topbar-nav-btn:hover:not(:disabled){border-color:var(--ink);color:var(--ink);background:var(--bg2)}.lesson-view-body{display:grid;grid-template-columns:240px minmax(0,1.2fr) minmax(0,1fr);gap:24px;align-items:start}.lesson-view-body>*{min-width:0}.lesson-view-body.theatre{grid-template-columns:200px minmax(0,1fr);gap:20px}.lesson-view-body.theatre .lesson-concept-col{grid-column:2 / -1;margin-top:16px}.lesson-view-body.theatre .lesson-stage-frame{max-width:none;padding:0}.lesson-view-body.theatre .slide-stage-img{max-height:calc(100vh - 120px);max-width:100%;margin:0 auto;width:auto;height:auto;object-fit:contain;display:block}body.theatre-active .app-shell.has-sidenav{max-width:none;padding-left:16px;padding-right:70px;grid-template-columns:minmax(0,1fr);grid-template-areas:"main"}body.theatre-active .app-shell.has-sidenav>.sidenav{width:54px;right:8px}body.theatre-active .sidenav-label,body.theatre-active .sidenav-roadmap-label,body.theatre-active .sidenav-ring,body.theatre-active .sidenav-group-label,body.theatre-active .sidenav-section-title{display:none}body.theatre-active .sidenav-tab{grid-template-columns:1fr;justify-items:center;padding:10px 6px}body.theatre-active .sidenav-roadmap{padding:12px 6px;font-size:0;gap:0}body.theatre-active .lesson-view-header{margin:0 0 12px}.lesson-view.theatre .lesson-view-head-left .topbar-prevnext,.lesson-view.theatre .lesson-view-mastery .share-btn,.lesson-view.theatre .lesson-view-mastery .bulk-mastery,.lesson-view.theatre .lesson-view-mastery .bulk-mastery-ring,.lesson-view.theatre .lesson-view-mastery>span,.lesson-view.theatre .lesson-view-id-sep,.lesson-view.theatre .lesson-view-id-slides,.lesson-view.theatre .dl-btn:not(.active){display:none}.lesson-view.theatre .lesson-view-head-card{padding:8px 14px}.lesson-view.theatre .lesson-view-title h2{font-size:22px;line-height:1.2}@media (max-width: 1280px){.lesson-view-body{grid-template-columns:200px minmax(0,1fr)}.lesson-concept-col{grid-column:2 / -1}}@media (max-width: 760px){.lesson-view-body{grid-template-columns:1fr}.lesson-slide-nav{order:2}}.lesson-slide-nav{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);display:flex;flex-direction:column;max-height:calc(100vh - 120px);position:sticky;top:80px;box-shadow:var(--shadow-sm);overflow:hidden;z-index:4;isolation:isolate}.lesson-slide-nav-list{background:var(--bg-card)}.lesson-slide-nav-head{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;border-bottom:1px solid var(--border);background:var(--bg2);font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink2)}.lesson-slide-nav-count{color:var(--ink)}.lesson-slide-nav-list{overflow-y:auto;padding:4px;display:flex;flex-direction:column;gap:2px}.lesson-nav-row{display:grid;grid-template-columns:8px 32px 1fr;align-items:center;gap:10px;background:transparent;border:1px solid transparent;border-radius:4px;padding:6px 8px;cursor:pointer;text-align:left;font:inherit;color:inherit;transition:background .12s,border-color .12s}.lesson-nav-priority{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--priority, var(--ink3));align-self:center;justify-self:start}.lesson-nav-priority-high{--priority: var(--green, #16a34a)}.lesson-nav-priority-medium{--priority: var(--amber, #f59e0b)}.lesson-nav-priority-low{--priority: color-mix(in srgb, var(--ink3) 50%, transparent)}.lesson-skip-low{display:flex;align-items:center;gap:8px;padding:8px 12px;margin:8px 8px 4px;background:transparent;border:1px dashed var(--border);border-radius:6px;color:var(--ink2);font-family:var(--mono);font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;cursor:pointer;transition:background .12s,border-color .12s,color .12s}.lesson-skip-low:hover{border-color:var(--ink);color:var(--ink)}.lesson-skip-low.on{background:color-mix(in srgb,var(--green, #16a34a) 12%,transparent);border-color:var(--green, #16a34a);border-style:solid;color:var(--green, #16a34a)}.lesson-skip-low-mark{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;border-radius:3px;border:1.5px solid currentColor;font-size:11px;line-height:1}.lesson-skip-low.on .lesson-skip-low-mark{background:currentColor;color:var(--bg-card)}.lesson-nav-row:hover{background:var(--bg2)}.lesson-nav-row.active{background:var(--bg-card);border-color:var(--ink)}.lesson-nav-row.reviewed .lesson-nav-num{background:var(--amber);color:#1f1503;border-color:color-mix(in srgb,var(--amber) 80%,#000)}.lesson-nav-row.confident.active,.lesson-nav-row.reviewed.active{border-color:var(--ink)}.lesson-nav-num{font-family:var(--mono);font-size:11px;font-weight:700;background:var(--bg2);border:1px solid var(--border);border-radius:3px;padding:2px 0;text-align:center;color:var(--ink);letter-spacing:.04em}.lesson-nav-row.active .lesson-nav-num{background:var(--ink);color:#fff;border-color:var(--ink)}.lesson-nav-row.confident .lesson-nav-num{background:var(--green);color:#fff;border-color:var(--green)}.lesson-nav-concepts{display:flex;flex-direction:column;gap:2px;font-size:11.5px;line-height:1.25;color:var(--ink2);min-width:0}.lesson-nav-concept-line{display:flex;align-items:center;gap:6px;min-width:0;max-width:100%;overflow:hidden}.lesson-nav-concept-text{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lesson-nav-dot{flex-shrink:0;display:inline-block;width:8px;height:8px;border-radius:50%}.lesson-nav-empty{color:var(--ink3);font-style:italic}.lesson-stage-frame{position:relative;background:var(--bg-card);border:1px solid var(--border);border-radius:6px;display:grid;place-items:center;min-height:300px;overflow:hidden}.slide-stage-img{width:100%;height:auto;display:block}.slide-stage-nav{position:absolute;top:50%;transform:translateY(-50%);background:var(--bg-card);color:var(--ink);border:1px solid var(--border);width:40px;height:40px;border-radius:999px;font-size:22px;font-family:var(--mono);line-height:1;cursor:pointer;display:grid;place-items:center;box-shadow:var(--shadow-md);transition:background .15s,border-color .15s,color .15s,transform .12s}.slide-stage-nav:hover:not(:disabled){background:var(--ink);color:#fff;border-color:var(--ink);transform:translateY(-50%) scale(1.05)}.slide-stage-nav:disabled{opacity:.4;cursor:not-allowed;color:var(--ink3)}.slide-stage-nav.prev{left:12px}.slide-stage-nav.next{right:12px}.lesson-stage-meta{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;margin:10px 0;font-family:var(--mono);font-size:12px;color:var(--ink3)}.lesson-stage-meta>span:first-child{white-space:nowrap}.mastery-pills{display:flex;gap:6px}.mastery-pill{background:var(--bg-card);border:1.5px solid var(--border);border-radius:6px;padding:8px 16px;font-family:var(--mono);font-size:12.5px;font-weight:600;letter-spacing:.04em;color:var(--ink2);cursor:pointer;text-transform:lowercase;transition:background .15s,border-color .15s,color .15s,transform .1s;min-height:32px;display:inline-flex;align-items:center}.mastery-pill:hover{border-color:var(--ink);color:var(--ink);transform:translateY(-1px)}.mastery-pill.active.grey{background:var(--bg2);color:var(--ink);border-color:var(--ink2)}.mastery-pill.active.amber{background:#fff3cd;color:#6b4a00;border-color:#d8b34a}.mastery-pill.active.green{background:var(--green);color:#fff;border-color:var(--green);box-shadow:0 1px 3px #2c7a4a40}.mastery-pill.compact{width:26px;height:26px;min-height:26px;padding:0;font-size:11px;font-weight:700;letter-spacing:0;text-transform:uppercase;display:grid;place-items:center;border-width:1.5px}.lesson-stage-strip{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:14px}.lesson-tile{width:40px;min-height:44px;padding:4px 0 3px;border:1.5px solid var(--border);background:var(--bg-card);border-radius:5px;font-family:var(--mono);font-size:12px;font-weight:600;cursor:pointer;transition:border-color .15s,transform .1s;display:flex;flex-direction:column;align-items:center;justify-content:space-between;gap:4px;position:relative}.lesson-tile-num{display:block;text-align:center;line-height:1}.lesson-tile-bars{display:flex;gap:1.5px;width:84%;justify-content:center}.lesson-tile-bar{display:block;flex:1;height:4px;border-radius:2px;min-width:4px;max-width:14px}.lesson-tile:hover{border-color:var(--ink);transform:translateY(-1px)}.lesson-tile.active{border-color:var(--amber);border-width:2px;font-weight:700;box-shadow:0 0 0 2px #00000040}.lesson-tile.reviewed{background:#0006}.lesson-tile.confident{background:var(--green);color:#fff;border-color:var(--green)}.lesson-tile.confident .lesson-tile-bar{opacity:.85}.slide-concepts-here{margin:12px 0 4px;padding:10px 12px;background:var(--bg2);border-left:3px solid var(--amber);border-radius:0 4px 4px 0;display:flex;flex-wrap:wrap;gap:8px;align-items:center}.slide-concepts-here-label{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.06em;font-weight:700;color:var(--ink3)}.slide-concept-chip{background:var(--bg-card);border:1px solid var(--border);border-radius:4px;padding:5px 10px;font-family:var(--sans);font-size:12.5px;font-weight:500;color:var(--ink);cursor:pointer;transition:background .15s,border-color .15s}.slide-concept-chip:hover{background:var(--amber);border-color:var(--amber-deep)}.concept-panel-title{font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink2);margin:0 0 12px}.concept-entry{background:var(--bg-card);border:1px solid var(--border);border-radius:6px;padding:14px 16px;margin-bottom:12px;transition:border-color .15s,background .15s}.concept-entry.highlight{border-color:var(--ink);background:var(--bg-card)}.concept-entry.expanded{background:var(--bg-card)}.concept-entry-brief{padding:10px 12px;margin-bottom:8px}.concept-entry-brief .concept-entry-header{margin-bottom:6px;gap:8px}.concept-entry-brief .concept-mastery-pills{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.concept-entry-open{margin-left:auto;background:transparent;border:1px solid var(--border);color:var(--ink2);padding:4px 10px;border-radius:6px;font-family:var(--mono);font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;cursor:pointer;transition:color .12s,border-color .12s,background .12s}.concept-entry-open:hover{color:var(--ink);border-color:var(--ink);background:var(--bg2)}.concept-entry-header{display:flex;align-items:center;gap:10px;margin-bottom:8px}.concept-entry-header.clickable{cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:4px;padding:2px 4px;margin:-2px -4px 6px;transition:background .15s}.concept-entry-header.clickable:hover .concept-entry-chev{color:var(--ink)}.concept-entry-chev{display:inline-grid;place-items:center;width:36px;height:36px;font-size:30px;line-height:1;color:var(--ink2);transition:transform .18s ease,color .15s;flex-shrink:0}.concept-entry.expanded .concept-entry-chev{transform:rotate(90deg);color:var(--ink)}.concept-entry h4{margin:0;font-size:14px;font-weight:700;flex:1;min-width:0}.concept-expanded-body{margin-top:8px;display:flex;flex-direction:column;gap:10px}.concept-section-tag{display:inline-block;font-family:var(--mono);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ink3);margin-bottom:4px}.concept-examples ul{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:4px;font-size:13.5px;line-height:1.5}.concept-details p,.concept-plain p{margin:0;font-size:13.5px;line-height:1.5;color:var(--ink2)}.concept-plain{background:var(--bg3);border-left:1px solid var(--border);border-radius:0 4px 4px 0;padding:8px 12px}.concept-slide-jump{background:transparent;border:1px solid var(--border);border-radius:3px;font-family:var(--mono);font-size:10px;color:var(--ink3);padding:2px 8px;cursor:pointer}.concept-slide-jump:hover{border-color:var(--ink);color:var(--ink)}.concept-formal{font-family:var(--sans);font-size:13.5px;color:var(--ink);line-height:1.6;margin-bottom:8px}.concept-formal code{font-family:var(--mono);font-size:12px;background:var(--bg2);border:1px solid var(--border);padding:1px 5px;border-radius:3px}.concept-formal em{font-style:italic;font-weight:600}.concept-toggle{background:transparent;border:none;font-family:var(--mono);font-size:11px;color:var(--blue);letter-spacing:.04em;cursor:pointer;padding:0}.concept-plain{margin-top:8px;padding:10px 12px;background:var(--bg3);border-left:1px solid var(--border);border-radius:0 4px 4px 0;font-size:14px;line-height:1.55}.question-view-header{display:flex;align-items:center;gap:18px;margin:18px 0 14px}.question-view-title{display:flex;align-items:center;gap:12px}.question-view-tag{font-family:var(--mono);font-size:14px;font-weight:700;background:var(--amber);padding:5px 12px;border-radius:4px}.question-view-title h2{margin:0;font-size:22px;font-weight:700}.question-view-mastery{margin-left:auto;display:flex;align-items:center;gap:10px;font-family:var(--mono);font-size:12px;color:var(--ink3)}.question-view-section{background:var(--bg-card);border:1px solid var(--border);border-radius:6px;padding:18px 20px;margin-bottom:14px}.question-view-section h3{margin:0 0 10px;font-size:15px;font-weight:700}.dep-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}.dep-list a{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;padding:10px 12px;border:1px solid var(--border);border-radius:4px;text-decoration:none;color:inherit;font-size:14px}.dep-list a:hover{border-color:var(--ink);background:var(--bg3)}.dep-list a strong{font-family:var(--mono);font-size:12px;letter-spacing:.06em}.dep-pages{font-family:var(--mono);font-size:11px;color:var(--ink3)}.dep-papers{font-family:var(--mono);font-size:11px;color:var(--ink3);letter-spacing:.04em;padding-top:4px}.next-question-btn{display:block;width:100%;background:var(--ink);color:#fff;border:none;border-radius:6px;padding:14px 18px;font-family:var(--mono);font-size:13px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;margin-top:18px}.next-question-btn:hover{background:#000}.stub-page{padding:24px 0}.page-h-row{display:flex;align-items:baseline;justify-content:space-between;gap:14px}.print-btn,.dl-btn{background:transparent;border:1px solid var(--border);border-radius:4px;padding:6px 12px;font-family:var(--mono);font-size:12px;color:var(--ink2);cursor:pointer;transition:background .15s,border-color .15s}.print-btn:hover,.dl-btn:hover{border-color:var(--ink);background:var(--bg3)}.bulk-mastery{display:inline-flex;align-items:center;gap:4px}.bulk-mastery-pill{font-family:var(--mono);font-size:11px;font-weight:600;letter-spacing:.04em;padding:5px 10px;background:var(--bg-card);border:1px solid var(--border);border-radius:6px;color:var(--ink3);cursor:pointer;transition:background .12s,color .12s,border-color .12s,transform .08s}.bulk-mastery-pill:hover{color:var(--ink);border-color:var(--ink2);transform:translateY(-1px)}.bulk-mastery-pill.is-current.bulk-mastery-pill-unseen{background:var(--bg2);color:var(--ink);border-color:var(--ink)}.bulk-mastery-pill.is-current.bulk-mastery-pill-reviewed{background:var(--amber-soft);color:#6a4a00;border-color:var(--amber)}.bulk-mastery-pill.is-current.bulk-mastery-pill-confident{background:var(--green-bg);color:var(--green);border-color:var(--green)}.bulk-mastery-ring{display:inline-flex;align-items:center;justify-content:center;padding:0;background:transparent;border:0;border-radius:999px;cursor:pointer;margin-left:6px;transition:transform .12s ease}.bulk-mastery-ring:hover{transform:scale(1.08)}.bulk-mastery-ring:focus{outline:none}.bulk-mastery-ring:focus-visible{outline:2px solid var(--ink);outline-offset:2px;border-radius:999px}.topbar-prevnext{display:inline-flex;gap:2px}.topbar-nav-btn{background:transparent;border:1px solid var(--border);border-radius:6px;padding:0;width:28px;height:28px;display:grid;place-items:center;font-family:var(--mono);font-size:14px;font-weight:600;line-height:1;color:var(--ink2);cursor:pointer;transition:background .15s,border-color .15s,color .15s,transform .1s}.topbar-nav-btn:hover:not(:disabled){transform:translateY(-1px)}.topbar-nav-btn:hover:not(:disabled){border-color:var(--ink);color:var(--ink);background:var(--bg3)}.topbar-nav-btn:disabled{opacity:.35;cursor:not-allowed}.topbar-nav-btn.dark{background:transparent;border-color:#ffffff2e;color:#ffffffb3}.topbar-nav-btn.dark:hover:not(:disabled){border-color:#ffffff80;background:#ffffff14;color:#fff}.question-topbar{margin:0 0 18px;display:flex;align-items:flex-start;gap:14px;flex-wrap:nowrap;background:transparent;color:var(--ink)}.question-topbar-head-left{display:flex;flex-direction:column;gap:6px;flex-shrink:0;width:200px}.question-topbar-head-left .back-link,.question-topbar-head-left .share-btn,.question-topbar-head-left .topbar-prevnext{width:100%}.question-topbar-head-left .topbar-prevnext{display:flex;gap:6px}.question-topbar-head-left .topbar-prevnext .topbar-nav-btn{flex:1 1 0}@media (max-width: 760px){.question-topbar{flex-wrap:wrap}.question-topbar-head-left{flex-direction:row;width:auto;flex-wrap:wrap}.question-topbar-head-left .back-link,.question-topbar-head-left .share-btn,.question-topbar-head-left .topbar-prevnext{width:auto}}.question-topbar-head-card{flex:1 1 auto;display:flex;flex-direction:column;gap:8px;background:var(--bg-card);border:1px solid var(--border);border-radius:8px;padding:14px 20px;box-shadow:var(--shadow-sm);min-width:0}.question-topbar-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.question-topbar-pills-row{gap:10px}.question-topbar-actions{margin-left:auto;margin-top:0}.question-topbar .slot-id{font-family:var(--mono);font-size:13px;font-weight:700;letter-spacing:.06em;background:var(--bg2);color:var(--ink);border:1px solid var(--border);padding:4px 10px;border-radius:4px}.question-topbar .slot-title{margin:0;font-family:var(--display);font-size:28px;font-weight:700;letter-spacing:-.02em;line-height:1.15;color:var(--ink);flex:1;min-width:240px}.question-topbar .question-view-mastery{margin-left:0;color:var(--ink2);font-family:var(--mono);font-size:12px;display:flex;align-items:center;gap:10px}.question-view-mastery-label{text-transform:uppercase;letter-spacing:.06em;font-weight:600;color:var(--ink2)}.question-topbar-actions{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap}.question-topbar .back-link.dark{background:transparent;border-color:var(--border);color:var(--ink2)}.question-topbar .back-link.dark:hover{color:var(--ink);border-color:var(--ink)}.question-topbar .dl-btn,.question-topbar .start-test-btn{background:transparent;border:1px solid var(--border);color:var(--ink);font-family:var(--mono);font-size:12px;padding:7px 14px;border-radius:4px;cursor:pointer;letter-spacing:.04em}.question-topbar .dl-btn:hover{border-color:var(--ink);background:var(--bg2)}.question-topbar .start-test-btn{background:var(--ink);color:#fff;border-color:var(--ink);font-weight:700}.question-topbar .start-test-btn:hover{background:#000}.year-breakdown{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);margin:0 0 18px;overflow:hidden;box-shadow:var(--shadow-sm)}.year-breakdown[open]{box-shadow:var(--shadow-md)}.year-breakdown-summary{list-style:none;cursor:pointer;padding:12px 18px;display:flex;align-items:center;justify-content:space-between;gap:14px;font-family:var(--mono);font-size:13px;font-weight:600;letter-spacing:.04em;color:var(--ink);background:transparent;transition:background .15s}.year-breakdown-summary::-webkit-details-marker{display:none}.year-breakdown-summary:hover{background:var(--bg2)}.year-breakdown-title{font-family:var(--mono);font-size:14px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--ink)}.year-breakdown-meta{font-weight:500;color:var(--ink3);letter-spacing:.02em;font-size:12px}.year-breakdown-body{padding:18px 22px 22px;display:flex;flex-direction:column;gap:18px;background:var(--bg3);border-top:1px solid var(--border)}.yb-section{display:flex;flex-direction:column;gap:10px}.yb-section-title{margin:0;font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink3)}.yb-marks-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.yb-marks-cell{background:var(--bg-card);border:1px solid var(--border);border-radius:6px;padding:10px 8px;text-align:center;display:flex;flex-direction:column;gap:2px;align-items:center}.yb-marks-cell.absent{opacity:.4}.yb-marks-year{font-family:var(--mono);font-size:11px;font-weight:700;color:var(--ink3);letter-spacing:.04em}.yb-marks-num{font-family:var(--sans);font-size:22px;font-weight:700;color:var(--ink);line-height:1}.yb-marks-unit{font-family:var(--mono);font-size:10px;color:var(--ink3)}.yb-marks-summary{font-size:13px;color:var(--ink2);padding:6px 0 0}.yb-matrix{display:grid;grid-template-columns:minmax(220px,1fr) repeat(5,56px);background:var(--bg-card);border:1px solid var(--border);border-radius:6px;overflow:hidden}.yb-matrix-header,.yb-matrix-row{display:contents}.yb-matrix-row:hover .yb-matrix-cell{background:#00000014}.yb-matrix-cell{padding:11px 12px;border-bottom:1px solid var(--border-soft);border-right:1px solid var(--border-soft);font-size:13px;display:flex;align-items:center;background:var(--bg-card);transition:background .12s}.yb-matrix-row:last-child .yb-matrix-cell{border-bottom:none}.yb-matrix-row.yb-row-alt .yb-matrix-cell{background:var(--bg3)}.yb-matrix-row.yb-row-newgroup .yb-matrix-cell{border-top:2px solid var(--ink2);padding-top:13px}.yb-matrix-row.yb-row-newgroup:first-child .yb-matrix-cell{border-top:none;padding-top:11px}.yb-matrix-cell:nth-child(6n){border-right:none}.yb-matrix-header .yb-matrix-cell{background:var(--bg2);font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink2);border-bottom:1px solid var(--border)}.yb-matrix-yearhead{justify-content:center}.yb-matrix-yearhead.absent{color:var(--ink3);opacity:.6}.yb-matrix-row-label{font-size:13px;line-height:1.4;color:var(--ink);align-items:flex-start;padding-top:10px;padding-bottom:10px;flex-wrap:wrap}.yb-matrix-lead{font-weight:700;color:var(--ink);flex-shrink:0}.yb-matrix-body{color:var(--ink2);font-weight:400;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.yb-matrix-mark{justify-content:center;font-family:var(--mono);font-size:16px;font-weight:700;color:var(--border)}.yb-matrix-mark.present{color:var(--green);background:#6abf901f}.yb-matrix-mark.absent{background:var(--bg2);color:var(--ink3)}.yb-matrix-empty{font-style:italic;color:var(--ink3);padding:12px 0}@media (max-width: 700px){.yb-matrix{grid-template-columns:minmax(160px,1fr) repeat(5,44px);font-size:12px}.yb-matrix-row-label{font-size:12px}}.yb-prose{font-size:14px;line-height:1.55;margin:0;color:var(--ink);background:var(--bg3);border-left:1px solid var(--border);border-radius:0 4px 4px 0;padding:10px 14px}.yb-section-prose-top{background:var(--bg2);border:1px solid var(--border-soft);border-left:3px solid var(--amber);border-radius:8px;padding:12px 16px;display:flex;flex-direction:column;gap:6px}.yb-section-prose-top .yb-prose{margin:0;font-style:normal;font-size:15px;line-height:1.6;color:var(--ink);background:transparent;border-left:none;padding:0}.yb-rn{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:var(--ink);color:var(--bg-card);font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:0;margin:0 2px;vertical-align:-4px}.yb-year-inline{display:inline-flex;align-items:center;font-family:var(--mono);font-size:12px;font-weight:700;padding:2px 7px;border-radius:5px;background:var(--bg2);color:var(--ink);border:1px solid var(--border);margin:0 1px;vertical-align:1px;cursor:default}.yb-year-inline-2019{background:#ede4fb;color:#4a1ea0;border-color:color-mix(in srgb,#4a1ea0 30%,transparent)}.yb-year-inline-2021{background:#dbe7fb;color:#11317a;border-color:color-mix(in srgb,#11317a 30%,transparent)}.yb-year-inline-2022{background:#fef3c7;color:#5a3f00;border-color:color-mix(in srgb,#d97724 35%,transparent)}.yb-year-inline-2024{background:#dcfce7;color:#14532d;border-color:color-mix(in srgb,#14532d 30%,transparent)}.yb-year-inline-2025{background:#e0f2fe;color:#0c4a6e;border-color:color-mix(in srgb,#0c4a6e 30%,transparent)}.yb-section-matrix{display:flex;flex-direction:column;gap:10px}.yb-marks-uniform{display:inline-flex;align-items:center;justify-content:center;gap:12px;padding:12px 22px;background:linear-gradient(135deg,var(--amber-soft) 0%,var(--bg-card) 100%);border:1px solid color-mix(in srgb,var(--amber) 35%,var(--border));border-radius:10px;max-width:max-content;margin:0 auto}.yb-section:has(>.yb-marks-uniform){text-align:center}.yb-marks-uniform-num{font-family:var(--display);font-size:26px;font-weight:700;font-style:italic;font-variation-settings:"opsz" 144,"SOFT" 30;letter-spacing:-.03em;line-height:1;color:var(--ink);flex:0 0 auto}.yb-marks-uniform-text{font-size:14px;color:var(--ink);line-height:1.4;font-weight:400}.yb-marks-uniform-text strong{font-weight:700;color:var(--ink)}[data-theme=dark] .yb-marks-uniform{background:linear-gradient(135deg,var(--amber-soft) 0%,var(--bg-card) 100%)}.yb-marks-cell.peak{background:var(--amber);border-color:var(--amber-deep)}.yb-marks-cell.peak .yb-marks-num{color:var(--ink)}@media (max-width: 700px){.yb-marks-grid{grid-template-columns:repeat(3,1fr)}}.slot-pills{display:flex;gap:8px;flex-wrap:wrap;align-items:center;font-size:13px}.pill{font-family:var(--mono);font-size:13px;font-weight:500;padding:4px 11px;border-radius:14px;white-space:nowrap;letter-spacing:.01em;border:1px solid transparent}.pill.marks,.pill.parts,.pill.freq{background:var(--bg2);color:var(--ink);border-color:var(--border)}.pill.marks:before{content:"∎";opacity:.55;margin-right:6px;font-size:.85em}.pill.parts:before{content:"§";opacity:.55;margin-right:6px;font-size:.9em}.pill.freq:before{content:"↻";opacity:.55;margin-right:6px;font-size:.95em}.pill.marks.partial{background:#fff3cd;border-color:#d8b34a;color:#6b4a00}.pill.marks.done{background:var(--green);border-color:var(--green);color:#fff}.pill.var-lo,.pill.var-md,.pill.var-hi{font-weight:700;padding:3px 10px}.pill.var-lo{background:#ecf6f0;color:#1f6e2f;border-color:#b9d8c2}.pill.var-md{background:#fff3cd;color:#6b4a00;border-color:#d8b34a}.pill.var-hi{background:#fbe4de;color:#8a3320;border-color:#d8a08e}.pill.var-lo:before{content:"●";opacity:.7;margin-right:6px;font-size:.7em;vertical-align:.15em}.pill.var-md:before{content:"◐";opacity:.7;margin-right:6px;font-size:.85em;vertical-align:-.05em}.pill.var-hi:before{content:"○";opacity:.7;margin-right:6px;font-size:.7em;vertical-align:.15em}.legacy-html .eq-row{align-items:flex-start}.eq-marks-check{flex-shrink:0;width:20px;height:20px;border:2px solid var(--ink3);border-radius:4px;background:var(--bg-card);cursor:pointer;position:relative;margin-top:2px;transition:background .12s,border-color .12s}.eq-marks-check:hover{border-color:var(--green)}.eq-marks-check.checked{background:var(--green);border-color:var(--green)}.eq-marks-check.checked:after{content:"✓";position:absolute;top:-3px;left:2px;color:#fff;font-size:14px;font-weight:700}.eq-marks-value{font-family:var(--mono);font-size:11px;font-weight:600;color:var(--ink3);flex-shrink:0;align-self:flex-start;margin-top:4px}.slide-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000c7;display:grid;place-items:center;z-index:200;padding:32px}.slide-modal{background:var(--bg-card);border-radius:10px;width:min(1100px,92vw);max-height:86vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 24px 64px #00000073;position:relative}.slide-modal-close{position:absolute;top:10px;right:12px;background:#000000a6;color:#fff;border:none;width:36px;height:36px;border-radius:50%;font-size:22px;line-height:1;cursor:pointer;z-index:1}.slide-modal-img{display:block;width:100%;height:auto;max-height:calc(86vh - 56px);object-fit:contain;margin:0 auto;background:#f4f1ea}.slide-modal-footer{display:flex;align-items:center;justify-content:space-between;padding:12px 18px;border-top:1px solid var(--border);font-family:var(--mono);font-size:12px}.slide-modal-meta{color:var(--ink3);letter-spacing:.04em}.slide-modal-jump{background:var(--ink);color:#fff;border:none;border-radius:4px;padding:7px 14px;font-family:var(--mono);font-size:12px;cursor:pointer;letter-spacing:.04em}.slide-modal-jump:hover{background:#000}.slide-modal-jump.compact{padding:4px 10px;font-size:10.5px;letter-spacing:.04em;border-radius:3px;text-decoration:none;display:inline-block;line-height:1.4}.summary-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000c7;display:grid;place-items:center;z-index:200;padding:32px}.summary-modal{background:var(--bg-card);border-radius:12px;width:min(1200px,100%);max-height:calc(100vh - 32px);display:flex;flex-direction:column;overflow:hidden;box-shadow:0 24px 48px #0000008c;border:1px solid var(--border)}.summary-modal-header{display:flex;align-items:center;justify-content:space-between;padding:18px 24px;border-bottom:1px solid var(--border-soft);background:linear-gradient(180deg,#fdfbf6,#f7f3e8);gap:12px}.summary-modal-header h3{margin:0;font-size:18px;font-weight:700;letter-spacing:-.01em}.summary-modal-actions{display:flex;align-items:center;gap:8px}.summary-modal-pdf{background:var(--ink);color:#fff;border:none;border-radius:4px;padding:7px 14px;font-family:var(--mono);font-size:12px;cursor:pointer;letter-spacing:.04em}.summary-modal-pdf:hover{background:#000}.summary-modal-close{background:transparent;border:1px solid var(--border);width:32px;height:32px;border-radius:50%;font-size:20px;line-height:1;cursor:pointer;color:var(--ink2)}.summary-modal-close:hover{border-color:var(--ink);color:var(--ink)}.summary-modal-body{overflow:auto;padding:32px 40px;font-size:14.5px;line-height:1.65;color:var(--ink);background:#fdfcf7}.summary-modal-body h2{font-size:22px;font-weight:700;letter-spacing:-.01em;margin:24px 0 8px;padding-bottom:6px;border-bottom:1px solid var(--border)}.summary-modal-body h2:first-child{margin-top:0}.summary-modal-body h3{font-size:16px;font-weight:700;margin:18px 0 6px;color:var(--ink)}.summary-modal-body h4{font-size:14px;font-weight:700;margin:12px 0 4px;color:var(--ink)}.summary-modal-body .summary-meta{font-family:var(--mono);color:var(--ink3);font-size:11px;letter-spacing:.04em;text-transform:uppercase;margin-bottom:14px}.summary-modal-body .cols{column-count:2;column-gap:22px}@media (max-width: 700px){.summary-modal-body .cols{column-count:1}}.summary-modal-body .concept{break-inside:avoid;margin-bottom:14px;background:var(--bg-card);border:1px solid var(--border-soft);border-left:3px solid var(--amber);border-radius:4px;padding:10px 12px}.summary-modal-body .concept h4{margin-top:0}.summary-modal-body .concept .formal{font-family:var(--mono);font-size:12px;background:var(--bg3);padding:6px 9px;border-left:2px solid var(--ink3);border-radius:0 2px 2px 0;white-space:pre-wrap;margin:4px 0}.summary-modal-body .concept .plain{font-size:13px;margin-top:6px;color:var(--ink2)}.summary-modal-body .formula-block{font-family:var(--mono);font-size:12px;background:var(--bg3);padding:8px 10px;border-radius:4px;white-space:pre-wrap;margin:8px 0}.summary-modal-body hr{border:0;border-top:1px dashed var(--border);margin:22px 0}.summary-modal-body p{margin:0 0 8px}body.summary-modal-open{overflow:hidden}@page{size:A4 portrait;margin:14mm 14mm 16mm}@media print{body{background:var(--bg-card);color:#000}body.summary-printing>*:not(.summary-modal-backdrop){display:none!important}body.summary-printing .summary-modal-backdrop{position:static!important;background:#fff!important;padding:0!important;inset:auto!important;display:block!important}body.summary-printing .summary-modal{box-shadow:none!important;border-radius:0!important;border:none!important;max-height:none!important;width:100%!important;overflow:visible!important}body.summary-printing .summary-modal-header{display:none!important}body.summary-printing .summary-modal-body{overflow:visible!important;padding:0!important;max-height:none!important;font-size:10.5pt!important;line-height:1.45!important;background:#fff!important;color:#000!important}body.summary-printing .summary-modal-body h2{font-size:16pt!important;margin:14pt 0 4pt!important;border-bottom:.5pt solid #888!important;padding-bottom:3pt!important;page-break-after:avoid}body.summary-printing .summary-modal-body h3{font-size:12pt!important;margin:10pt 0 3pt!important;page-break-after:avoid}body.summary-printing .summary-modal-body h4{font-size:11pt!important;margin:8pt 0 3pt!important;page-break-after:avoid}body.summary-printing .summary-modal-body .cols{column-count:2!important;column-gap:14pt!important}body.summary-printing .summary-modal-body .concept,body.summary-printing .summary-modal-body .formula-block,body.summary-printing .summary-modal-body .step,body.summary-printing .summary-modal-body .eq-row,body.summary-printing .summary-modal-body .conn-row{break-inside:avoid;page-break-inside:avoid}body.summary-printing .summary-modal-body img{max-width:100%!important;height:auto!important;page-break-inside:avoid}body.summary-printing .summary-modal-body hr{page-break-before:always;border:0;margin:0}body.summary-printing .summary-modal-body a{color:#000!important;text-decoration:none!important}}.home-page{padding-top:6px}.home-page h2.page-h{margin-top:18px}.marks-board{margin-bottom:1.25rem;padding:14px 18px;background:var(--bg2);border:1px solid var(--border);border-radius:6px}.marks-board-row{display:flex;align-items:center;gap:18px;flex-wrap:wrap}.marks-overall{display:flex;flex-direction:column;gap:2px;flex-shrink:0}.marks-overall-label{font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink3)}.marks-overall-value{font-family:var(--sans);font-size:28px;font-weight:700;color:var(--ink);letter-spacing:-.01em;line-height:1}.marks-overall-total{color:var(--ink3);font-weight:500;font-size:18px;margin-left:2px}.marks-bar{flex:1;height:14px;min-width:200px;background:var(--bg-card);border:1px solid var(--border);border-radius:7px;overflow:hidden}.marks-bar-fill{height:100%;background:linear-gradient(90deg,#6abf90,#1a6040);transition:width .3s ease}.marks-section{display:flex;flex-direction:column;gap:2px;padding:4px 12px;background:var(--bg-card);border:1px solid var(--border);border-radius:4px;flex-shrink:0}.marks-section-label{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink3)}.marks-section-value{font-family:var(--mono);font-size:14px;font-weight:600;color:var(--ink)}.marks-reset{background:transparent;border:1px solid var(--border);border-radius:4px;padding:5px 12px;font-family:var(--mono);font-size:11px;color:var(--ink3);cursor:pointer;flex-shrink:0}.marks-reset:hover{background:#f5d8d0;color:var(--red);border-color:#e0a8a0}.marks-slots{margin-top:14px;padding-top:14px;border-top:1px solid var(--border);display:grid;grid-template-columns:repeat(5,1fr);gap:10px 14px}.marks-slot-cell{display:flex;flex-direction:column;gap:10px;cursor:pointer;-webkit-user-select:none;user-select:none;padding:14px 16px;border-radius:6px;background:var(--bg-card);border:1px solid var(--border);min-height:78px;transition:border-color .15s,background .15s,transform .12s;font:inherit;text-align:left}.marks-slot-cell:hover{border-color:var(--ink);background:#fafaf8;transform:translateY(-1px)}.marks-slot-cell.full{background:#ecf6f0;border-color:#6abf90}.marks-slot-top{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.marks-slot-label{font-family:var(--mono);font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink)}.marks-slot-value{font-family:var(--mono);font-size:13px;font-weight:500;color:var(--ink3)}.marks-slot-value .num{color:var(--ink);font-weight:700;font-size:16px}.marks-slot-bar{height:8px;background:var(--bg2);border-radius:4px;overflow:hidden}.marks-slot-bar-fill{height:100%;background:linear-gradient(90deg,#6abf90,#1a6040);transition:width .25s ease}@media (max-width: 900px){.marks-slots{grid-template-columns:repeat(2,1fr)}}.home-section{margin:28px 0}.home-section-title{font-family:var(--mono);font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink2);margin:0 0 12px}.home-progress-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}.home-progress-cell{background:var(--bg-card);border:1px solid var(--border);border-radius:6px;padding:12px 14px;display:flex;flex-direction:column;gap:8px;cursor:pointer;text-align:left;font:inherit;color:inherit;transition:border-color .15s,transform .12s}.home-progress-cell:hover{border-color:var(--ink);transform:translateY(-1px)}.home-progress-cell.full{background:#ecf6f0;border-color:var(--green-light)}.home-progress-top{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.home-progress-tag{font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.08em;background:var(--bg2);padding:2px 8px;border-radius:3px}.home-progress-frac{font-family:var(--mono);font-size:11px;color:var(--ink3)}.home-progress-title{font-size:13px;font-weight:600;line-height:1.3}.home-progress-bar{height:6px;background:var(--bg2);border-radius:3px;overflow:hidden}.home-progress-bar-fill{height:100%;background:linear-gradient(90deg,#6abf90,#1a6040);transition:width .3s ease}.what-to-learn{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:12px}.what-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px;display:flex;flex-direction:column;gap:8px;box-shadow:var(--shadow-sm)}.what-card-head{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center}.what-card-title{font-size:13px;font-weight:600;color:var(--ink);line-height:1.3;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.what-card-pct{font-family:var(--mono);font-size:12px;font-weight:700;color:var(--ink2);white-space:nowrap}.what-card-bar{height:6px;background:var(--bg2);border-radius:3px;overflow:hidden}.what-card-bar-fill{display:block;height:100%;background:linear-gradient(90deg,#6abf90,#1a6040);transition:width .25s ease}.what-card-lectures{display:flex;flex-wrap:wrap;gap:6px}.what-lec{display:inline-flex;align-items:center;gap:6px;background:var(--bg3);border:1px solid var(--border);border-radius:4px;padding:3px 8px;cursor:pointer;font:inherit;transition:background .15s,border-color .15s,transform .1s}.what-lec:hover{border-color:var(--ink);transform:translateY(-1px)}.what-lec.full{background:var(--green-bg);border-color:var(--green-light)}.what-lec-tag{font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.04em;color:var(--ink)}.what-lec-pct{font-family:var(--mono);font-size:10.5px;color:var(--ink3);font-weight:600}.what-lec.full .what-lec-pct{color:var(--green)}.home-maps-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}@media (max-width: 900px){.home-maps-row{grid-template-columns:1fr}}.home-map-card{background:var(--bg-card);border:1px solid var(--border);border-radius:8px;padding:12px 14px 10px;display:flex;flex-direction:column;gap:8px;text-align:left;font:inherit;cursor:pointer;transition:border-color .15s,transform .12s,box-shadow .15s}.home-map-card:hover{border-color:var(--ink);transform:translateY(-2px);box-shadow:0 4px 14px #00000014}.home-map-header{display:flex;justify-content:space-between;align-items:baseline;font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink2);font-weight:700}.home-map-open{color:var(--ink3);font-weight:500}.home-map-svg-wrap{background:var(--bg3);border:1px solid var(--border);border-radius:6px;padding:8px;aspect-ratio:16 / 7;display:grid;place-items:center}.home-map-svg-wrap svg{width:100%;height:100%}.exam-page .page-h-row{display:flex;justify-content:space-between;align-items:flex-end;gap:18px;margin-bottom:22px}.exam-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(420px,1fr));gap:18px}.exam-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;overflow:hidden;transition:border-color .15s,transform .12s,box-shadow .15s}.exam-card.is-closed:hover{border-color:var(--ink);transform:translateY(-2px);box-shadow:var(--shadow-md)}.exam-card.is-open{transform:none}.exam-card.is-open:hover{box-shadow:var(--shadow-md)}.exam-card-head{display:grid;grid-template-columns:auto auto 1fr auto;gap:12px;align-items:center;padding:14px 18px;background:var(--bg-card);color:var(--ink);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .15s;border-bottom:1px solid var(--border)}.exam-card.is-closed .exam-card-head{border-bottom-color:transparent}.exam-card-head:hover .exam-card-chev{color:var(--ink)}.exam-card-chev{display:inline-grid;place-items:center;width:36px;height:36px;font-size:30px;line-height:1;color:var(--ink2);transition:transform .18s ease,color .15s}.exam-card-chev.open{transform:rotate(90deg);color:var(--ink)}.exam-card.is-closed{box-shadow:var(--shadow-sm)}.exam-card-head .qtag{font-size:12px;padding:4px 10px}.exam-card-title{margin:0;font-size:15px;font-weight:700;letter-spacing:-.01em;color:var(--ink);line-height:1.3}.exam-card-stats{display:flex;align-items:center;gap:10px}.exam-card-marks{font-family:var(--mono);font-size:11px;letter-spacing:.04em;color:var(--ink2);background:var(--bg2);border:1px solid var(--border);padding:3px 8px;border-radius:3px}.exam-card-section{padding:14px 18px;border-bottom:1px solid var(--border-soft)}.exam-card-section:last-child{border-bottom:none}.exam-card-section-title{margin:0 0 10px;font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink3)}.exam-variation-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.exam-variation-row{display:grid;grid-template-columns:110px 1fr;gap:10px 12px;align-items:start;padding:10px 12px;background:var(--bg3);border-left:3px solid var(--border);border-radius:0 4px 4px 0;font-size:13px;line-height:1.4}.exam-variation-years{display:flex;flex-wrap:wrap;gap:3px}.exam-variation-years .yp-chip{font-family:var(--mono);font-size:10px;font-weight:700;background:var(--bg2);color:var(--ink);border:1px solid var(--border);padding:2px 6px;border-radius:3px;letter-spacing:.04em}.exam-variation-years .yp-chip-all{background:var(--bg-card);border-color:var(--ink);color:var(--ink)}.exam-variation-thumbs{grid-column:2 / -1;display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}.exam-variation-thumb{background:var(--bg-card);border:1px solid var(--border);border-radius:5px;padding:0;cursor:zoom-in;display:flex;flex-direction:column;width:200px;overflow:hidden;transition:border-color .12s,transform .1s,box-shadow .12s}.exam-variation-thumb:hover{border-color:var(--ink);transform:translateY(-1px);box-shadow:var(--shadow-md)}.exam-variation-thumb img{display:block;width:100%;height:auto;max-height:200px;object-fit:contain;background:var(--bg3)}.exam-variation-thumb-cap{font-family:var(--mono);font-size:10.5px;color:var(--ink2);padding:5px 8px;border-top:1px solid var(--border-soft);letter-spacing:.04em}.exam-variation-text strong{color:var(--ink);font-weight:700}.exam-variation-empty{font-style:italic;color:var(--ink3);padding:8px 0}.exam-template{font-size:13.5px;line-height:1.55;color:var(--ink);max-height:320px;overflow-y:auto;padding:8px 0}.exam-template .step{display:grid;grid-template-columns:24px 1fr;gap:8px;margin-bottom:6px;align-items:start}.exam-template .step-num{background:var(--ink);color:#fff;border-radius:50%;width:22px;height:22px;display:grid;place-items:center;font-family:var(--mono);font-size:11px;font-weight:700}.exam-template .warn{background:var(--amber-soft);border-left:3px solid var(--amber);padding:8px 12px;border-radius:0 4px 4px 0;margin:10px 0;font-size:13px}.exam-card-links{background:var(--bg3)}.exam-link-row{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-bottom:8px}.exam-link-row:last-child{margin-bottom:0}.exam-link-label{font-family:var(--mono);font-size:11px;color:var(--ink3);letter-spacing:.04em;margin-right:4px}.exam-link{background:var(--bg-card);border:1px solid var(--border);border-radius:4px;padding:5px 12px;font-family:var(--mono);font-size:11px;font-weight:600;letter-spacing:.04em;color:var(--ink2);cursor:pointer;transition:background .12s,border-color .12s,color .12s}.exam-link:hover{background:var(--ink);color:#fff;border-color:var(--ink)}.exam-link.primary{background:var(--ink);color:#fff;border-color:var(--ink);width:100%;text-align:center;padding:8px 12px;font-size:12px}.exam-link.primary:hover{background:var(--amber);color:var(--ink);border-color:var(--amber)}.roadmap-page{max-width:920px;margin:0 auto;padding-bottom:56px}.roadmap-page>.next-step-card{margin:0 0 14px;padding:12px 16px;gap:4px}.roadmap-page>.next-step-card .next-step-row{font-size:18px}.roadmap-page>.next-step-card .next-step-sub{font-size:12.5px}.roadmap-checkpoint{margin:6px 0;padding:14px 16px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);display:flex;flex-direction:column;gap:10px}.roadmap-checkpoint.is-passed{flex-direction:row;align-items:center;gap:10px;padding:10px 14px;background:color-mix(in srgb,var(--green) 8%,var(--bg-card));border-color:color-mix(in srgb,var(--green) 35%,var(--border));font-size:13.5px}.roadmap-checkpoint.is-passed .roadmap-checkpoint-tick{background:var(--green);color:#fff;border-color:var(--green);width:22px;height:22px;border-radius:50%;display:inline-grid;place-items:center;font-weight:700;flex:0 0 auto}.roadmap-checkpoint-text{color:var(--ink)}.roadmap-checkpoint-eyebrow{font-family:var(--mono);font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink3);display:block}.roadmap-checkpoint-title{font-family:var(--display);font-size:18px;font-weight:700;margin:2px 0 4px;color:var(--ink)}.roadmap-checkpoint-sub{margin:0;font-size:13px;color:var(--ink2);line-height:1.45}.roadmap-checkpoint-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.roadmap-checkpoint-item-btn{display:flex;align-items:center;gap:10px;width:100%;background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:6px 10px;font:inherit;font-size:13px;color:var(--ink);text-align:left;cursor:pointer;transition:border-color .12s,background .12s}.roadmap-checkpoint-item-btn:hover{border-color:var(--ink);background:var(--bg2)}.roadmap-checkpoint-item.is-fresh .roadmap-checkpoint-item-btn{border-color:color-mix(in srgb,var(--green) 45%,transparent);background:color-mix(in srgb,var(--green) 6%,var(--bg))}.roadmap-checkpoint-item .roadmap-checkpoint-tick{width:18px;height:18px;border-radius:50%;display:inline-grid;place-items:center;background:var(--bg2);color:var(--ink3);border:1px solid var(--border);font-family:var(--mono);font-size:10px;font-weight:700;flex:0 0 auto}.roadmap-checkpoint-item.is-fresh .roadmap-checkpoint-tick{background:var(--green);color:#fff;border-color:var(--green)}.roadmap-checkpoint-item-title{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.roadmap-checkpoint-item-arrow{color:var(--ink3);transition:transform .12s,color .12s}.roadmap-checkpoint-item-btn:hover .roadmap-checkpoint-item-arrow{color:var(--ink);transform:translate(2px)}.roadmap-checkpoint-pass{align-self:flex-start;background:var(--ink);color:var(--bg-card);border:1px solid var(--ink);padding:8px 14px;border-radius:8px;font-family:var(--mono);font-size:11.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;cursor:pointer;transition:background .12s,opacity .12s}.roadmap-checkpoint-pass:disabled{background:var(--bg2);color:var(--ink3);border-color:var(--border);cursor:not-allowed}.roadmap-checkpoint-pass:not(:disabled):hover{background:#000}.roadmap-recall{margin:0 0 14px;padding:12px 14px;background:color-mix(in srgb,var(--amber) 8%,var(--bg-card));border:1px solid color-mix(in srgb,var(--amber) 35%,var(--border));border-radius:var(--radius)}.roadmap-recall-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:8px}.roadmap-recall-eyebrow{font-family:var(--mono);font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--amber)}.roadmap-recall-sub{font-size:12.5px;color:var(--ink2)}.roadmap-recall-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.roadmap-recall-item{display:flex;align-items:center;gap:10px;width:100%;background:var(--bg-card);border:1px solid var(--border);border-radius:8px;padding:6px 10px;font:inherit;font-size:13px;color:var(--ink);text-align:left;cursor:pointer;transition:border-color .12s,background .12s}.roadmap-recall-item:hover{border-color:var(--ink);background:var(--bg2)}.roadmap-recall-title{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.roadmap-recall-since{font-family:var(--mono);font-size:11px;color:var(--ink3)}.roadmap-recall-arrow{color:var(--ink3);transition:transform .12s,color .12s}.roadmap-recall-item:hover .roadmap-recall-arrow{color:var(--ink);transform:translate(2px)}.roadmap-slot-bar{display:flex;flex-wrap:wrap;gap:4px;margin:0 0 14px}.roadmap-slot-bar-seg{position:relative;flex:1 1 0;min-width:56px;padding:8px 6px;font-family:var(--mono);font-size:11.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;border-radius:8px;border:1.5px solid var(--qtag-border, var(--border));background:var(--bg-card);color:var(--qtag-ink, var(--ink));cursor:pointer;overflow:hidden;transition:transform .12s ease,filter .12s ease,box-shadow .12s ease}.roadmap-slot-bar-seg:hover{transform:translateY(-1px);filter:brightness(1.04);box-shadow:0 2px 8px -2px color-mix(in srgb,var(--qtag-border, var(--ink)) 40%,transparent)}.roadmap-slot-bar-seg-fill{position:absolute;top:0;right:0;bottom:0;left:0;width:calc(var(--slot-pct, 0) * 100%);background:var(--qtag-bg);opacity:.85;pointer-events:none;transition:width .4s ease}.roadmap-slot-bar-seg-label{position:relative;z-index:1;mix-blend-mode:multiply}[data-theme=dark] .roadmap-slot-bar-seg-label{mix-blend-mode:normal}.roadmap-slot-bar-seg-confident{background:var(--qtag-bg);color:var(--qtag-ink)}.roadmap-slot-bar-seg-confident .roadmap-slot-bar-seg-fill{display:none}.roadmap-slot-bar-seg-unseen{color:var(--ink3)}.roadmap-slot-bar-seg.qtag-q1a{--qtag-bg: #fde9b8;--qtag-border: #d4a832;--qtag-ink: #5a3f00}.roadmap-slot-bar-seg.qtag-q1b{--qtag-bg: #ffd9b3;--qtag-border: #e08a3a;--qtag-ink: #5a2a00}.roadmap-slot-bar-seg.qtag-q1c{--qtag-bg: #ffc9c0;--qtag-border: #c84a32;--qtag-ink: #5a1a0c}.roadmap-slot-bar-seg.qtag-q1d{--qtag-bg: #f8c0d8;--qtag-border: #c83a78;--qtag-ink: #5a0c2c}.roadmap-slot-bar-seg.qtag-q1e{--qtag-bg: #e0c8f0;--qtag-border: #8838c0;--qtag-ink: #2c0a4a}.roadmap-slot-bar-seg.qtag-q2a{--qtag-bg: #c8e0f8;--qtag-border: #3a78c8;--qtag-ink: #0c2c5a}.roadmap-slot-bar-seg.qtag-q2b{--qtag-bg: #c0e8e0;--qtag-border: #2a8a78;--qtag-ink: #0c3a32}.roadmap-slot-bar-seg.qtag-q2c{--qtag-bg: #c8e8c0;--qtag-border: #3a8a3a;--qtag-ink: #0c3a0c}.roadmap-slot-bar-seg.qtag-q2d{--qtag-bg: #e0e8a8;--qtag-border: #8a9038;--qtag-ink: #2c3a0c}.roadmap-slot-bar-seg.qtag-q2e{--qtag-bg: #d8c8b0;--qtag-border: #8a6a3a;--qtag-ink: #3a2a0c}.roadmap-slot-bar-seg.qtag-q2f{--qtag-bg: #d8d0f0;--qtag-border: #5a4ab8;--qtag-ink: #1a0a4a}.roadmap-slot-bar-seg.qtag-q2g{--qtag-bg: #c8d0e8;--qtag-border: #3a4a78;--qtag-ink: #0a1a3a}.roadmap-head{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:16px}.roadmap-title{font-family:var(--display);font-size:32px;font-weight:400;font-style:italic;font-variation-settings:"opsz" 144,"SOFT" 30;letter-spacing:-.03em;line-height:1;margin:0 0 6px}.roadmap-sub{font-size:13px;line-height:1.5;color:var(--ink2);max-width:60ch;margin:0}.roadmap-progress{display:flex;align-items:center;gap:14px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:10px 14px;flex-shrink:0;box-shadow:var(--shadow-xs)}.roadmap-progress-stages{display:flex;flex-direction:column;align-items:flex-start;line-height:1}.roadmap-progress-stages-num{display:flex;align-items:baseline;gap:2px;font-family:var(--display);letter-spacing:-.04em;color:var(--ink)}.roadmap-progress-stages-done{font-size:28px;font-weight:700;font-style:italic;font-variation-settings:"opsz" 144,"SOFT" 30}.roadmap-progress-stages-of{font-family:var(--mono);font-size:13px;font-weight:500;color:var(--ink3);letter-spacing:0;margin-left:2px}.roadmap-progress-stages-label{font-family:var(--mono);font-size:9.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink3);margin-top:3px}.roadmap-progress-divider{width:1px;align-self:stretch;background:var(--border)}.roadmap-progress-pct{font-family:var(--mono);font-size:18px;font-weight:700;color:var(--ink);line-height:1}.roadmap-progress-frac{font-family:var(--mono);font-size:11.5px;color:var(--ink3);letter-spacing:.04em;margin-top:4px}.roadmap-timeline{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:36px}.roadmap-phase{display:flex;flex-direction:column;gap:12px}.roadmap-phase-head{border-bottom:1px solid var(--border);padding-bottom:10px}.roadmap-phase-title{font-family:var(--display, var(--sans));font-size:22px;font-weight:700;margin:0 0 4px;letter-spacing:-.015em}.roadmap-phase-sub{font-size:13px;color:var(--ink3);margin:0;line-height:1.5}.roadmap-q-list{position:relative;list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.roadmap-q-list:before{content:"";position:absolute;left:36px;top:28px;bottom:28px;width:2px;background:var(--border);border-radius:1px;pointer-events:none;z-index:0}.roadmap-q{position:relative;z-index:1;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-xs);transition:border-color .16s ease,box-shadow .16s ease}.roadmap-q:hover{box-shadow:var(--shadow-sm)}.roadmap-q.is-next{border-color:var(--ink);box-shadow:var(--shadow-md)}.roadmap-q.is-done .roadmap-q-num{background:var(--green);color:var(--bg-card);border-color:var(--green)}.roadmap-q.is-partial .roadmap-q-num{background:var(--amber);color:var(--bg-card);border-color:var(--amber)}.roadmap-q-head{display:grid;grid-template-columns:auto auto 1fr auto auto auto;align-items:center;gap:14px;width:100%;background:transparent;border:none;padding:16px 18px;font:inherit;text-align:left;cursor:pointer;color:var(--ink)}.roadmap-q-head.static{cursor:default}.roadmap-q-head:hover:not(.static){background:var(--bg2)}.roadmap-q-num{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background:var(--bg-card);border:2px solid var(--border);font-family:var(--mono);font-size:14px;font-weight:700;color:var(--ink2)}.roadmap-q.is-next .roadmap-q-num{border-color:var(--primary);background:var(--primary);color:var(--bg-card)}.roadmap-q-title{font-family:var(--display);font-size:22px;font-weight:400;font-style:italic;font-variation-settings:"opsz" 144,"SOFT" 30;letter-spacing:-.02em}.roadmap-q-stats{display:inline-flex;align-items:center;gap:10px;font-family:var(--mono);font-size:11.5px;color:var(--ink3)}.roadmap-q-frac{font-weight:700;color:var(--ink2)}.roadmap-q-marks{background:var(--bg2);padding:3px 8px;border-radius:4px;font-weight:700}.roadmap-q-chev{color:var(--ink3)}.roadmap-q-body{border-top:1px solid var(--border);padding:14px 18px 16px;background:var(--bg3);display:flex;flex-direction:column;gap:14px}.roadmap-section{display:flex;flex-direction:column;gap:6px}.roadmap-section-toggle{display:flex;align-items:center;gap:10px;padding:6px 8px;margin:0;background:var(--bg2);border:1px solid var(--border);border-radius:6px;cursor:pointer;text-align:left;width:100%;transition:background .15s,border-color .15s}.roadmap-section-toggle:hover{background:var(--bg3);border-color:var(--ink3)}.roadmap-section-toggle .roadmap-section-title{flex:1}.roadmap-section-caret{font-family:var(--mono);font-size:12px;color:var(--ink2);width:14px;flex-shrink:0}.roadmap-section-title{display:flex;align-items:center;gap:10px;margin:0;font-family:var(--mono);font-size:11.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink2)}.roadmap-section-num{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;background:var(--ink);color:#fff;font-size:10px;font-weight:700}.roadmap-section-num.muted{background:var(--bg3);color:var(--ink3);border:1px solid var(--border)}.roadmap-lec-list{display:flex;flex-direction:column;gap:8px}.roadmap-lec-list.compact{gap:4px}.roadmap-lec{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;overflow:hidden}.roadmap-lec.is-reused{background:#f7f7f4}.roadmap-lec.is-done{border-left:3px solid var(--green)}.roadmap-lec-head{display:grid;grid-template-columns:auto 1fr auto auto auto;align-items:center;gap:10px;width:100%;background:transparent;border:none;padding:10px 12px;font:inherit;text-align:left;cursor:pointer}.roadmap-lec-head:hover{background:var(--bg2)}.roadmap-lec-tag{font-family:var(--mono);font-size:10.5px;font-weight:700;background:var(--lec-bg, var(--bg2));color:var(--lec-ink, var(--ink));padding:2px 7px;border-radius:4px}.roadmap-lec-title{font-size:13.5px;font-weight:600;color:var(--ink)}.roadmap-lec-meta{display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:11px;color:var(--ink3)}.roadmap-lec-frac{font-weight:700;color:var(--ink2)}.roadmap-lec-chev{color:var(--ink3)}.roadmap-reuse-badge{font-family:var(--mono);font-size:9.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--ink3);background:transparent;padding:2px 6px;border:1px dashed var(--border);border-radius:4px}.roadmap-lec-body{border-top:1px solid var(--border);padding:12px;background:var(--bg3);display:flex;flex-direction:column;gap:10px}.roadmap-lec-actions{display:flex;gap:6px}.roadmap-q-actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.roadmap-q-pills{display:flex;flex-wrap:wrap;gap:6px;margin-left:auto}.roadmap-q-pill{font-family:var(--mono);font-size:10.5px;letter-spacing:.04em;background:var(--bg2);color:var(--ink2);padding:3px 8px;border-radius:4px}.roadmap-q-pill-diff{text-transform:uppercase;font-weight:700}.roadmap-q-pill-diff.is-easy{background:var(--green-bg);color:var(--green);border:1px solid color-mix(in srgb,var(--green) 35%,transparent)}.roadmap-q-pill-diff.is-medium{background:var(--amber-soft);color:#6a4a00;border:1px solid color-mix(in srgb,var(--amber) 50%,transparent)}.roadmap-q-pill-diff.is-hard{background:color-mix(in srgb,var(--red) 12%,transparent);color:var(--red);border:1px solid color-mix(in srgb,var(--red) 40%,transparent)}[data-theme=dark] .roadmap-q-pill-diff.is-medium{color:var(--amber)}.slot-checklist{list-style:none;margin:12px 0 0;padding:10px 12px;background:var(--bg);border:1px solid var(--border);border-radius:10px;display:flex;flex-direction:column;gap:4px}.slot-checklist-head{display:flex;align-items:center;justify-content:space-between;font-family:var(--mono);font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink3);margin-bottom:2px}.slot-checklist-head-count{color:var(--ink2)}.slot-checklist-item{display:block}.slot-checklist-btn{display:flex;align-items:center;gap:10px;width:100%;padding:6px 8px;background:transparent;border:1px solid transparent;border-radius:6px;font:inherit;font-size:13px;color:var(--ink2);text-align:left;cursor:pointer;transition:background .12s,border-color .12s,color .12s}.slot-checklist-btn:hover:not(:disabled){background:var(--bg-card);border-color:var(--border);color:var(--ink)}.slot-checklist-btn:disabled{cursor:default;opacity:.95}.slot-checklist-tick{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;background:var(--bg2);color:var(--ink3);border:1px solid var(--border);font-family:var(--mono);font-size:11px;font-weight:700;flex:0 0 auto}.slot-checklist-item.is-done .slot-checklist-tick{background:var(--green);color:#fff;border-color:var(--green)}.slot-checklist-item.is-done .slot-checklist-label{color:var(--ink3);text-decoration:line-through;text-decoration-color:color-mix(in srgb,var(--ink3) 60%,transparent)}.slot-checklist-label{flex:1 1 auto}.slot-checklist-arrow{color:var(--ink3);font-size:13px;transition:transform .12s,color .12s}.slot-checklist-btn:hover:not(:disabled) .slot-checklist-arrow{color:var(--ink);transform:translate(2px)}.slot-checklist-chev{color:var(--ink3);font-size:12px;margin-left:auto;transition:color .18s ease}.slot-checklist-btn[aria-expanded=true] .slot-checklist-chev,.slot-checklist-btn:hover .slot-checklist-chev{color:var(--ink)}.slot-checklist-item.is-open{background:var(--bg-card);border-radius:8px;box-shadow:var(--shadow-xs)}.slot-checklist-panel{padding:4px 16px 14px 56px;display:flex;flex-direction:column;gap:10px;border-top:1px solid var(--border);background:var(--bg3);border-radius:0 0 8px 8px}.slot-checklist-detail{margin:12px 0 0;font-size:13.5px;line-height:1.5;color:var(--ink2)}.slot-checklist-progress{margin:0;font-family:var(--mono);font-size:11px;color:var(--ink3);letter-spacing:.04em;text-transform:uppercase}.slot-checklist-action{align-self:flex-start;padding:8px 14px;background:var(--ink);color:var(--bg-card);border:1px solid var(--ink);border-radius:8px;font-family:var(--mono);font-size:11.5px;font-weight:700;letter-spacing:.04em;cursor:pointer;transition:filter .12s,transform .1s}.slot-checklist-action:hover{filter:brightness(1.15);transform:translateY(-1px)}.slot-checklist-action:disabled{opacity:.5;cursor:default}.roadmap-q-note{margin:0;font-size:13px;color:var(--ink2);line-height:1.55;background:var(--bg-card);border:1px solid var(--border);border-radius:8px;padding:10px 12px}.roadmap-q-mastery{display:flex;align-items:center;gap:14px;margin-top:12px;padding-top:12px;border-top:1px dashed var(--border);flex-wrap:wrap}.roadmap-q-mastery-label{font-family:var(--mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink3)}.roadmap-q-tail .roadmap-q-num{background:var(--bg2);color:var(--ink3);border-color:var(--border);font-size:18px}.roadmap-q-open{display:flex;align-items:center;gap:18px;width:100%;padding:18px 22px;border:none;border-radius:var(--radius-lg);font:inherit;cursor:pointer;text-align:left;color:#fff;background:var(--ink);transition:transform .12s ease,box-shadow .16s ease,filter .12s;box-shadow:var(--shadow-sm)}.roadmap-q-open:hover{transform:translateY(-1px);box-shadow:var(--shadow-md);filter:brightness(1.06)}.roadmap-q-open:active{transform:translateY(0);box-shadow:var(--shadow-xs)}.roadmap-q-open.qtag-q1a{background:#d4a017}.roadmap-q-open.qtag-q1b{background:#d97524}.roadmap-q-open.qtag-q1c{background:#d04428}.roadmap-q-open.qtag-q1d{background:#c83878}.roadmap-q-open.qtag-q1e{background:#8a3acc}.roadmap-q-open.qtag-q2a{background:#2f5fa6}.roadmap-q-open.qtag-q2b{background:#1f8a78}.roadmap-q-open.qtag-q2c{background:#2f7a3a}.roadmap-q-open.qtag-q2d{background:#76823a}.roadmap-q-open.qtag-q2e{background:#8a6a3a}.roadmap-q-open.qtag-q2f{background:#5a4ab8}.roadmap-q-open.qtag-q2g{background:#3a4a78}.roadmap-q-open-tag{display:inline-flex;align-items:center;justify-content:center;min-width:64px;height:44px;padding:0 14px;border-radius:var(--radius-sm);background:#00000040;color:#fff;font-family:var(--mono);font-size:16px;font-weight:700;letter-spacing:.06em;flex-shrink:0}.roadmap-q-open-text{display:flex;flex-direction:column;flex:1;min-width:0;line-height:1.2;color:#fff}.roadmap-q-open-lead{font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#ffffffc7;margin-bottom:4px}.roadmap-q-open-title{font-family:var(--display);font-size:22px;font-style:italic;font-weight:400;letter-spacing:-.02em;color:#fff}.roadmap-q-open-arrow{font-family:var(--mono);font-size:26px;font-weight:700;color:#fff;flex-shrink:0;opacity:.85}.roadmap-section-count{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:18px;padding:0 6px;margin-left:8px;background:var(--bg2);color:var(--ink2);border-radius:999px;font-size:11px;font-weight:700;letter-spacing:0;text-transform:none}.roadmap-misc-group+.roadmap-misc-group{margin-top:12px}.roadmap-misc-cat{font-family:var(--mono);font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink3);padding:4px 4px 6px}.roadmap-misc-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.roadmap-misc{display:flex;align-items:center;gap:10px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 10px;transition:border-color .12s,background .12s}.roadmap-misc:hover{border-color:var(--ink);background:var(--bg2)}.roadmap-misc.lvl-confident{border-left:3px solid var(--green)}.roadmap-misc.lvl-reviewed{border-left:3px solid #d4a832}.roadmap-misc-name{display:flex;flex-direction:column;flex:1;min-width:0;text-decoration:none;color:var(--ink);gap:2px}.roadmap-misc-name:hover .roadmap-misc-title{text-decoration:underline}.roadmap-misc-title{font-size:13.5px;font-weight:600;color:var(--ink)}.roadmap-misc-desc{font-size:11.5px;color:var(--ink3);line-height:1.35}.roadmap-misc-lvl{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.06em;padding:2px 6px;border-radius:3px;background:var(--bg2);color:var(--ink3);flex-shrink:0}.roadmap-misc-lvl.lvl-reviewed{background:#ffe7a8;color:#6b4f0e}.roadmap-misc-lvl.lvl-confident{background:var(--green);color:var(--bg)}.roadmap-steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.roadmap-step{position:relative;display:grid;grid-template-columns:44px 1fr;gap:14px;padding:6px 0}.roadmap-step:after{content:"";position:absolute;left:21px;top:44px;bottom:-6px;width:2px;background:var(--border)}.roadmap-step:last-child:after{display:none}.roadmap-step-marker{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;background:var(--bg-card);border:2px solid var(--border);font-family:var(--mono);font-size:13px;font-weight:700;color:var(--ink2);margin-top:2px}.roadmap-step.is-done .roadmap-step-marker{background:var(--green);border-color:var(--green);color:#fff}.roadmap-step.is-done .roadmap-step-num{display:none}.roadmap-step.is-next .roadmap-step-marker{border-color:#000;color:#000;background:var(--bg-card)}.roadmap-step-check{color:#fff}.roadmap-step-card{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;overflow:hidden;transition:border-color .12s}.roadmap-step.is-next .roadmap-step-card{border-color:#000;box-shadow:0 2px #000}.roadmap-step-toggle{display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:12px;width:100%;background:transparent;border:none;padding:12px 14px;font:inherit;text-align:left;cursor:pointer;color:var(--ink)}.roadmap-step-toggle:hover{background:var(--bg2)}.roadmap-step-tag{font-family:var(--mono);font-size:11px;font-weight:700;background:var(--bg2);color:var(--ink);padding:3px 8px;border-radius:4px;letter-spacing:.02em}.roadmap-step-tag.tag-papers{background:#efe6cf;color:#6b4f0e}.roadmap-step-tag.tag-automata{background:#d8e6f5;color:#1d4583}.roadmap-step-tag.tag-logic{background:#e9e5f5;color:#4a3478}.roadmap-step-title{font-size:15px;font-weight:600}.roadmap-step-badge{display:inline-flex;align-items:center;background:var(--primary);color:var(--ink-inverse);font-family:var(--mono);font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:3px 8px;border-radius:var(--radius-xs);box-shadow:0 0 0 3px var(--bg2)}.roadmap-step-meta{display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:11.5px;color:var(--ink3)}.roadmap-step-frac{font-weight:700;color:var(--ink2)}.roadmap-step-chev{color:var(--ink3)}.roadmap-step-body{border-top:1px solid var(--border);padding:14px 16px 16px;display:flex;flex-direction:column;gap:14px;background:var(--bg3)}.roadmap-step-actions{display:flex;gap:8px}.roadmap-step-action{background:transparent;color:var(--ink2);border:1px solid var(--border);padding:6px 12px;font-family:var(--mono);font-size:11.5px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;border-radius:6px;cursor:pointer}.roadmap-step-action:hover{color:var(--ink);border-color:var(--ink)}.roadmap-step-action.primary{background:var(--ink);color:var(--ink-inverse);border-color:var(--ink);box-shadow:var(--shadow-xs)}.roadmap-step-action.primary:hover{background:var(--primary);border-color:var(--primary)}.roadmap-step-section h4{margin:0 0 6px;font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink3)}.roadmap-step-concepts{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.roadmap-concept{display:flex;justify-content:space-between;align-items:center;background:var(--bg-card);border:1px solid var(--border);border-radius:6px;padding:6px 10px}.roadmap-concept.lvl-confident{border-left:3px solid var(--green)}.roadmap-concept.lvl-reviewed{border-left:3px solid #d4a832}.roadmap-concept-name{background:transparent;border:none;padding:0;font:inherit;font-size:13.5px;color:var(--ink);text-align:left;cursor:pointer;flex:1}.roadmap-concept-name:hover{color:var(--ink2);text-decoration:underline}.roadmap-concept-lvl{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.06em;padding:2px 6px;border-radius:3px;background:var(--bg2);color:var(--ink3)}.roadmap-concept.lvl-reviewed .roadmap-concept-lvl{background:#ffe7a8;color:#6b4f0e}.roadmap-concept.lvl-confident .roadmap-concept-lvl{background:var(--green);color:#fff}.roadmap-step-slots{display:flex;flex-wrap:wrap;gap:6px}.dep-matrix-wrap{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:14px;box-shadow:var(--shadow-sm);overflow:hidden}.dep-matrix-wrap.has-side{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,400px);gap:18px;align-items:flex-start}.dep-matrix-main{min-width:0;overflow:hidden}.dep-side{position:sticky;top:16px;align-self:flex-start}.dep-side .cm-popup-backdrop{display:contents}.dep-side .cm-popup{position:static;width:100%;max-width:none;max-height:none;box-shadow:var(--shadow-sm);animation:none}@media (max-width: 980px){.dep-matrix-wrap.has-side{grid-template-columns:1fr}}.dep-matrix{display:grid;gap:6px 8px;align-items:center;width:100%}.dep-cell{border:none;background:none;padding:0;margin:0;display:grid;place-items:center;height:24px;font-family:var(--mono);font-size:11px;color:var(--ink3);transition:background .12s}.dep-corner{height:28px}.dep-gap{width:8px}.dep-colhead{height:28px;cursor:pointer;font-weight:700;letter-spacing:.04em;color:var(--ink2);border-radius:4px;transition:background .12s,color .12s}.dep-colhead:hover,.dep-colhead.hover{background:var(--bg2);color:var(--ink)}.dep-rowhead{cursor:pointer;padding-right:8px;height:24px;justify-self:end;background:transparent}.dep-rowhead .qtag{padding:3px 8px;font-size:11px}.dep-rowring{padding-right:8px;display:flex;align-items:center;gap:8px;min-width:86px}.dep-rowring-stats{display:flex;flex-direction:column;align-items:flex-start;line-height:1.05;gap:1px}.dep-rowring-pct{font-family:var(--mono);font-size:13px;font-weight:700;color:var(--ink);letter-spacing:0}.dep-rowring-frac{font-family:var(--mono);font-size:10px;color:var(--ink3);letter-spacing:.02em}.dep-rowring-frac-conf{color:var(--ink);font-weight:700}.dep-rowring-frac-sep{margin:0 1px;opacity:.6}.dep-rowring-rev{font-family:var(--mono);font-size:9.5px;color:#b07d11;letter-spacing:.02em}.dep-mark{width:100%;max-width:28px;aspect-ratio:1;border-radius:6px;border:1.5px solid var(--border);cursor:pointer;transition:transform .12s ease,border-color .12s ease,box-shadow .12s ease}.dep-mark:hover{transform:scale(1.18);border-color:var(--ink);z-index:1}.dep-mark.highlight{box-shadow:0 0 0 2px #00000073;border-color:var(--ink)}.dep-empty{width:100%;max-width:22px;aspect-ratio:1;border-radius:5px;background:var(--bg3)}.dep-cell.dim{opacity:.72}.dep-matrix-legend{display:flex;flex-wrap:wrap;gap:14px;margin-top:14px;padding-top:12px;border-top:1px solid var(--border-soft);font-family:var(--mono);font-size:11px;color:var(--ink3);align-items:center}.dep-swatch{display:inline-block;width:14px;height:14px;border-radius:3px;margin-right:6px;vertical-align:middle}.cm-popup-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:transparent;pointer-events:none;z-index:200}.cm-popup{position:absolute;top:96px;right:24px;width:min(380px,92vw);max-height:calc(100vh - 120px);background:var(--bg-card);border:1px solid var(--border);border-radius:12px;display:flex;flex-direction:column;overflow:hidden;box-shadow:var(--shadow-lg);pointer-events:auto;animation:cm-popup-slide-in .18s ease}@keyframes cm-popup-slide-in{0%{transform:translateY(-6px);opacity:0}to{transform:translateY(0);opacity:1}}.cm-popup-head{display:flex;align-items:center;gap:12px;padding:14px 18px;background:var(--bg2);border-bottom:1px solid var(--border)}.cm-popup-head h3{margin:0;font-size:16px;font-weight:700;flex:1}.cm-popup-close{background:transparent;border:1px solid var(--border);width:28px;height:28px;border-radius:50%;font-size:18px;line-height:1;cursor:pointer}.cm-popup-close:hover{border-color:var(--ink)}.cm-popup-body{overflow:auto;padding:18px 20px;display:flex;flex-direction:column;gap:16px}.cm-popup-mastery{display:flex;align-items:center;gap:14px;padding:12px;background:var(--bg3);border-radius:6px}.cm-popup-stat-num{font-size:20px;font-weight:700;line-height:1}.cm-popup-stat-label{font-family:var(--mono);font-size:11px;color:var(--ink3);letter-spacing:.04em;margin-top:4px}.cm-popup-block h4{margin:0 0 6px;font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink3)}.cm-popup-block p{margin:0;font-size:13.5px;line-height:1.5}.cm-popup-qtags{display:flex;flex-wrap:wrap;gap:6px}.cm-popup-lec-list{display:flex;flex-direction:column;gap:4px}.cm-popup-lec{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;background:var(--bg3);border:1px solid var(--border-soft);border-radius:4px;padding:6px 10px;font:inherit;cursor:pointer;text-align:left}.cm-popup-lec:hover{border-color:var(--ink);background:var(--bg-card)}.cm-popup-lec-tag{font-family:var(--mono);font-size:11px;font-weight:700;background:var(--bg2);color:var(--ink);padding:2px 8px;border-radius:3px}.cm-popup-lec-tag.dark{background:var(--ink);color:var(--bg)}.cm-popup-lec-tag.dark.group-logic{background:#6a4ec3;color:#fff}.cm-popup-lec-tag.dark.group-automata{background:#2a5fb4;color:#fff}.cm-popup-lec-tag.dark.group-papers{background:#b07d11;color:#fff}.cm-popup-lec-tag.interactive{border:none;font:inherit;cursor:pointer;transition:transform .1s ease,box-shadow .1s ease,filter .12s}.cm-popup-lec-tag.interactive:hover{transform:translateY(-1px);box-shadow:0 2px 6px #0000002e;filter:brightness(1.06)}.cm-popup-lec-tag.interactive:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.cm-popup-lec-name{font-size:13px}.cm-popup-lec-pct{font-family:var(--mono);font-size:11px;color:var(--ink2);font-weight:600}.cm-popup-concept-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px;max-height:200px;overflow-y:auto}.cm-popup-concept{display:flex;justify-content:space-between;align-items:center;background:var(--bg-card);padding:6px 10px;border-radius:0 4px 4px 0;font-size:12.5px}.cm-popup-concept-name{background:transparent;border:none;padding:0;font:inherit;font-size:12.5px;color:var(--ink);text-align:left;cursor:pointer;flex:1;min-width:0}.cm-popup-concept-name:hover{color:var(--blue, #2a5fb0);text-decoration:underline}.cm-popup-lec-group{display:flex;flex-direction:column;gap:4px;margin-bottom:8px}.cm-popup-lec-concepts{list-style:none;margin:0 0 0 18px;padding:0;display:flex;flex-direction:column;gap:3px}.cm-popup-lec-concepts .cm-popup-concept{background:var(--bg3);font-size:12px;padding:4px 8px}.cm-popup-concept-lvl{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.06em;padding:2px 6px;border-radius:3px;background:var(--bg2);color:var(--ink3)}.cm-popup-concept-lvl.lvl-reviewed{background:#ffd76a;color:#6b4f0e}.cm-popup-concept-lvl.lvl-confident{background:var(--green);color:var(--bg)}.cm-popup-foot{padding:12px 18px;border-top:1px solid var(--border);display:flex;justify-content:flex-end;background:var(--bg3)}.cm-popup-go{background:var(--ink);color:#fff;border:none;border-radius:4px;padding:8px 16px;font-family:var(--mono);font-size:12px;letter-spacing:.04em;cursor:pointer}.cm-popup-go:hover{background:#000}.home-hero{display:grid;grid-template-columns:1fr auto;align-items:end;gap:18px;margin-top:16px;margin-bottom:22px;padding-bottom:16px;border-bottom:1px solid var(--border-soft)}.home-hero h2.page-h{margin:0 0 8px;font-size:56px;line-height:1.05;letter-spacing:-.025em}.home-hero .page-sub{margin:0;font-size:14px;color:var(--ink2)}.home-hero-stats{display:flex;align-items:center;gap:16px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:12px 18px;box-shadow:var(--shadow-sm)}.home-hero-stats .stat-num{font-size:28px;font-weight:700;letter-spacing:-.01em}.home-hero-stats .stat-label{font-family:var(--mono);font-size:11px;color:var(--ink3);text-transform:uppercase;letter-spacing:.06em;display:block}.home-section{margin:48px 0}.home-section-title{display:flex;align-items:baseline;flex-wrap:wrap;gap:10px;margin:0 0 12px;font-family:var(--display);font-size:clamp(20px,2.5vw,24px);font-weight:400;font-style:italic;font-variation-settings:"opsz" 144,"SOFT" 30;letter-spacing:-.02em;color:var(--ink);text-transform:none;line-height:1.2}.home-section-title .count{font-family:var(--mono);font-size:11px;color:var(--ink3);font-weight:500;letter-spacing:.06em;text-transform:uppercase}.home-section-sub{font-family:var(--sans);font-size:15px;font-weight:400;color:var(--ink3);letter-spacing:-.005em;text-transform:none;line-height:1.4}.home-section-blurb{margin:0 0 16px;max-width:78ch;font-size:14px;line-height:1.6;color:var(--ink2)}.home-section-blurb em{font-style:italic;color:var(--ink)}.home-progress-cell{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;display:flex;flex-direction:column;gap:8px;cursor:pointer;text-align:left;font:inherit;color:inherit;transition:border-color .15s,transform .12s,box-shadow .15s;box-shadow:var(--shadow-sm)}.home-progress-cell:hover{border-color:var(--ink);transform:translateY(-2px);box-shadow:var(--shadow-md)}.home-progress-cell.full{background:var(--green-bg);border-color:var(--green-light)}.qtag{display:inline-flex;align-items:center;font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.06em;background:#0000002e;color:var(--ink);border:1px solid rgba(0,0,0,.5);border-radius:3px;padding:2px 6px;text-transform:uppercase;white-space:nowrap}.qtag.interactive{cursor:pointer;transition:background .15s,border-color .15s,transform .12s}.qtag.interactive:hover{filter:brightness(.93);transform:translateY(-1px)}.qtag.qtag-q1a{background:#fde9b8;border-color:#d4a832;color:#5a3f00}.qtag.qtag-q1b{background:#ffd9b3;border-color:#e08a3a;color:#5a2a00}.qtag.qtag-q1c{background:#ffc9c0;border-color:#c84a32;color:#5a1a0c}.qtag.qtag-q1d{background:#f8c0d8;border-color:#c83a78;color:#5a0c2c}.qtag.qtag-q1e{background:#e0c8f0;border-color:#8838c0;color:#2c0a4a}.qtag.qtag-q2a{background:#c8e0f8;border-color:#3a78c8;color:#0c2c5a}.qtag.qtag-q2b{background:#c0e8e0;border-color:#2a8a78;color:#0c3a32}.qtag.qtag-q2c{background:#c8e8c0;border-color:#3a8a3a;color:#0c3a0c}.qtag.qtag-q2d{background:#e0e8a8;border-color:#8a9038;color:#2c3a0c}.qtag.qtag-q2e{background:#d8c8b0;border-color:#8a6a3a;color:#3a2a0c}.qtag.qtag-q2f{background:#d8d0f0;border-color:#5a4ab8;color:#1a0a4a}.qtag.qtag-q2g{background:#c8d0e8;border-color:#3a4a78;color:#0a1a3a}.home-progress-qtags,.lesson-card-qtags,.concept-qtags{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.concept-qtags{margin:4px 0 8px}.misc-page .page-h-row{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:22px}.misc-page .page-h{margin-top:18px}.misc-overall{display:flex;align-items:center;gap:12px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:10px 16px;font-family:var(--mono);font-size:12px;color:var(--ink2);box-shadow:var(--shadow-sm)}.misc-overall strong{color:var(--ink);font-size:16px}.misc-group{margin:28px 0}.misc-group-title{margin:0 0 12px;font-size:16px;font-weight:700;letter-spacing:-.01em;display:flex;align-items:center;gap:10px}.misc-group-title:after{content:"";flex:1;height:1px;background:var(--border-soft)}.misc-list{display:grid;gap:10px}.misc-row{display:flex;flex-direction:column;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;transition:border-color .15s,box-shadow .15s,transform .12s;box-shadow:var(--shadow-sm)}.misc-row.is-open{transform:none}.misc-row-main{display:grid;grid-template-columns:1fr auto;gap:18px;align-items:center}.misc-row-discussion{margin-top:12px;padding-top:12px;border-top:1px dashed var(--border)}.misc-row-answers{display:inline-flex;align-items:center;gap:4px;background:var(--bg2);border:1px solid var(--border);color:var(--ink2);font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.04em;padding:5px 10px;border-radius:999px;text-decoration:none;transition:border-color .15s,color .15s,background .15s,transform .12s}.misc-row-answers:hover{border-color:var(--ink);color:var(--ink);background:var(--bg-card);transform:translateY(-1px)}.misc-row-discuss{display:inline-flex;align-items:center;gap:5px;background:transparent;border:1px solid var(--border);color:var(--ink2);font:inherit;font-family:var(--mono);font-size:11.5px;font-weight:600;padding:5px 10px;border-radius:999px;cursor:pointer;transition:border-color .15s,color .15s,background .15s}.misc-row-discuss:hover{border-color:var(--ink);color:var(--ink)}.misc-row-discuss.active{background:var(--ink);color:var(--bg);border-color:var(--ink)}.misc-row-discuss-count{font-family:var(--mono);font-size:11px;font-weight:700}.misc-row:not(.is-open):hover{border-color:var(--ink);box-shadow:var(--shadow-md);transform:translateY(-2px)}.misc-row.is-confident{background:var(--green-bg);border-color:var(--green-light)}.misc-row.is-reviewed{background:#0000001a;border-color:#0006}.misc-row-link{display:flex;align-items:center;gap:14px;text-decoration:none;color:inherit;min-width:0}.misc-row-icon{width:36px;height:36px;flex-shrink:0;display:grid;place-items:center;background:var(--bg2);border-radius:6px;font-size:18px}.misc-row-tag{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;min-width:44px;height:28px;padding:0 8px;border-radius:6px;font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.06em;background:var(--bg2);color:var(--ink2);border:1px solid var(--border)}.misc-row-tag.tag-notes{background:#ede4fb;color:#5b21b6;border-color:#d4c1f5}.misc-row-tag.tag-slides{background:#dbe7fb;color:#1d4ed8;border-color:#b8cef0}.misc-row-tag.tag-exercises{background:#f5e9c5;color:#854d0e;border-color:#ead8a3}.misc-row-tag.tag-exam-review{background:#ffd9b3;color:#9a3412;border-color:#f3c499}.misc-row-tag.tag-ans{background:var(--green-bg);color:#166534;border-color:#b8d9c3}.misc-row-text{min-width:0}.misc-row-title{font-size:15px;font-weight:600;line-height:1.3}.misc-row-desc{font-size:13px;color:var(--ink3);margin-top:2px;line-height:1.4}.misc-row-side{display:flex;align-items:center;gap:12px}.lesson-card-expand-row{margin-top:6px;background:transparent;border:none;border-top:1px dashed var(--border);padding:8px 4px 2px;cursor:pointer;display:flex;align-items:center;justify-content:space-between;font-family:var(--mono);font-size:11px;font-weight:600;letter-spacing:.04em;color:var(--ink3);text-transform:uppercase;width:calc(100% + 8px);margin-left:-4px;margin-right:-4px;transition:color .15s}.lesson-card-expand-row:hover{color:var(--ink)}.lesson-card-expand-chev{display:inline-grid;place-items:center;width:24px;height:24px;font-size:18px;line-height:1;color:var(--ink2);transition:transform .18s ease}.lesson-card.expanded .lesson-card-expand-chev{transform:scale(1.1);color:var(--ink)}.lesson-card-expand-row:hover .lesson-card-expand-chev{color:var(--ink)}.lesson-concept-list{margin-top:6px;padding-top:8px;border-top:1px solid var(--border-soft);display:flex;flex-direction:column;gap:8px;max-height:380px;overflow-y:auto}.lesson-concept-item{display:flex;align-items:center;gap:10px;font-size:11.5px;padding:5px 0;border-bottom:1px solid var(--border-soft)}.lesson-concept-item:last-child{border-bottom:none}.lesson-concept-name{flex:1;font-weight:500;color:var(--ink2);line-height:1.3;font-size:11.5px}.lesson-concept-pills{display:flex;gap:4px;flex-shrink:0}.lesson-card-empty-concepts{font-style:italic;color:var(--ink3);font-size:12px;padding:6px 0}.concepts-page .page-h-row{display:flex;justify-content:space-between;align-items:flex-end;gap:18px;margin-bottom:18px}.concepts-overall{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:10px 16px;font-family:var(--mono);font-size:12px;color:var(--ink2);box-shadow:var(--shadow-sm)}.concepts-overall strong{color:var(--ink);font-size:18px}.concepts-controls{display:flex;gap:12px;align-items:center;margin-bottom:18px;flex-wrap:wrap}.concepts-filters{display:inline-flex;gap:4px}.concepts-filter{background:var(--bg-card);border:1px solid var(--border);border-radius:4px;padding:6px 14px;font-family:var(--mono);font-size:12px;color:var(--ink2);cursor:pointer;letter-spacing:.04em}.concepts-filter:hover{border-color:var(--ink);color:var(--ink)}.concepts-filter.active{background:var(--ink);color:#fff;border-color:var(--ink)}.concepts-search{flex:1;min-width:220px;padding:8px 12px;border:1px solid var(--border);border-radius:4px;font:inherit;font-size:13px;background:var(--bg-card)}.concepts-search:focus{outline:none;border-color:var(--ink)}.concepts-major-group{margin:28px 0 8px}.concepts-major-title{display:flex;align-items:baseline;gap:14px;margin:0 0 12px;font-family:var(--display);font-size:36px;font-weight:700;letter-spacing:-.02em;line-height:1.15;border-bottom:1px solid var(--border);padding-bottom:10px}.concepts-major-count{font-family:var(--mono);font-size:11px;color:var(--ink3);font-weight:500;letter-spacing:.06em;text-transform:uppercase}.concepts-group{margin:18px 0}.concepts-group-title{display:flex;align-items:center;gap:10px;width:100%;margin:0 0 12px;padding:6px 8px;border:none;background:transparent;font-size:14px;font-weight:700;color:var(--ink);text-align:left;cursor:pointer;border-radius:6px;transition:background .15s}.concepts-group-title:hover{background:var(--bg2)}.concepts-group-chev{display:inline-grid;place-items:center;width:36px;height:36px;font-size:30px;line-height:1;color:var(--ink2);transition:transform .18s ease;flex-shrink:0}.concepts-group-chev.open{transform:rotate(90deg);color:var(--ink)}.concepts-group-num{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:999px;background:var(--ink);color:var(--bg);font-family:var(--mono);font-size:11.5px;font-weight:700;letter-spacing:0;flex-shrink:0}.concepts-group-num.group-logic{background:#6a4ec3;color:#fff}.concepts-group-num.group-automata{background:#2a5fb4;color:#fff}.concepts-group-num.group-papers{background:#b07d11;color:#fff}.concepts-group-num.group-c{background:#d4575a;color:#fff}.concepts-group-num.group-haskell{background:#5fa86a;color:#fff}.concepts-group-name{flex:1;min-width:0}.concepts-group-name:after{content:"";display:inline-block;vertical-align:middle;margin-left:12px;width:50%;max-width:240px;height:1px;background:var(--border-soft)}.concepts-group-count{font-family:var(--mono);font-size:14px;color:var(--ink);font-weight:700;letter-spacing:.04em;background:var(--bg-card);border:1px solid var(--border);padding:4px 12px;border-radius:999px;min-width:30px;text-align:center;box-shadow:0 1px #0000000a}.concepts-group-title:hover .concepts-group-count{border-color:var(--ink)}.concepts-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));grid-auto-rows:1fr;gap:14px;align-items:stretch}.concept-card.is-uniform{min-height:168px;padding:0;overflow:hidden}.concept-card.is-uniform .concept-card-body{flex:1;display:flex;flex-direction:column;align-items:stretch;gap:8px;padding:14px 16px 10px;background:transparent;border:0;text-align:left;cursor:pointer;font:inherit}.concept-card.is-uniform .concept-card-body:hover .concept-card-title{color:var(--amber)}.concept-card.is-uniform .concept-card-blurb{font-family:var(--sans);font-size:13.5px;color:var(--ink2);line-height:1.45;margin:0;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.concept-card-foot{display:flex;align-items:center;gap:10px;padding:10px 14px 12px;border-top:1px solid var(--border-soft);background:var(--bg2)}.concept-card-lec-tag{font-family:var(--mono);font-size:10.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--lec-ink, var(--ink2));background:var(--lec-bg, transparent);padding:2px 7px;border-radius:4px}.concept-card-lec-tag .concept-card-slides{color:var(--ink3);font-weight:500}.concept-card-mastery-wrap{position:relative;margin-left:auto}.concept-card-mastery-btn,.concept-page-mastery-btn{background:transparent;border:0;padding:2px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;border-radius:999px}.concept-card-mastery-btn:hover,.concept-page-mastery-btn:hover{background:var(--bg-card)}.concept-page-mastery-wrap{position:relative;display:inline-flex}.concept-page-mastery-label{font-family:var(--mono);font-size:11px;letter-spacing:.04em;color:var(--ink2);text-transform:uppercase}.mastery-popover{position:absolute;top:calc(100% + 8px);right:0;z-index:60;background:var(--bg-card);border:1px solid var(--border);border-radius:10px;box-shadow:0 14px 36px #00000024;padding:8px;display:flex;flex-direction:column;gap:4px;min-width:160px;animation:mastery-popover-in .14s ease-out}@keyframes mastery-popover-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.mastery-popover-title{font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink3);padding:4px 8px 2px}.mastery-popover-btn{font-family:var(--sans);font-size:13px;font-weight:500;background:transparent;border:1px solid transparent;color:var(--ink);padding:8px 10px;border-radius:6px;text-align:left;cursor:pointer;display:flex;align-items:center;gap:8px}.mastery-popover-btn:before{content:"";width:10px;height:10px;border-radius:50%;background:var(--bg2);border:1px solid var(--border);flex:0 0 auto}.mastery-popover-btn-unseen:before{background:var(--bg2)}.mastery-popover-btn-reviewed:before{background:var(--amber);border-color:color-mix(in srgb,var(--amber) 80%,#000)}.mastery-popover-btn-confident:before{background:var(--green);border-color:color-mix(in srgb,var(--green) 80%,#000)}.mastery-popover-btn:hover{background:var(--bg2)}.mastery-popover-btn.is-current{background:var(--bg2);border-color:var(--ink);font-weight:600}.concept-entry-titlebtn{background:transparent;border:0;padding:0;margin:0;font:inherit;font-family:var(--display);font-size:17px;font-weight:600;color:var(--ink);text-align:left;cursor:pointer;flex:1;min-width:0}.concept-entry-titlebtn:hover{color:var(--amber);text-decoration:underline;text-underline-offset:3px}.concept-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px 16px;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:10px;transition:border-color .15s,transform .12s,box-shadow .15s}.concept-card:hover{border-color:var(--ink);transform:translateY(-2px);box-shadow:var(--shadow-md)}.concept-card.concept-confident{background:var(--green-bg)}.concept-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.concept-card-title{margin:0;font-size:15px;font-weight:700;line-height:1.3;color:var(--ink)}.concept-card-meta{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.concept-card-lec{background:var(--bg2);border:1px solid var(--border);border-radius:4px;padding:3px 8px;font-family:var(--mono);font-size:11px;font-weight:600;color:var(--ink);cursor:pointer;letter-spacing:.04em}.concept-card-lec:hover{background:var(--ink);color:#fff;border-color:var(--ink)}.concept-card-slides{color:var(--ink3);font-weight:400;margin-left:6px}.concept-card-qtags{display:inline-flex;gap:4px;flex-wrap:wrap}.concept-card-formal{font-family:var(--sans);font-size:13px;background:var(--bg3);border-left:2px solid var(--ink3);border-radius:0 4px 4px 0;padding:8px 10px;line-height:1.55;color:var(--ink)}.concept-card-formal code{font-family:var(--mono);font-size:11.5px;background:var(--bg);border:1px solid var(--border);padding:0 4px;border-radius:3px}.concept-card-formal em{font-style:italic;font-weight:600}.concept-card-plain{font-size:13px;line-height:1.5;color:var(--ink2)}.concept-card-plain summary{cursor:pointer;font-family:var(--mono);font-size:11px;color:var(--blue);letter-spacing:.04em;list-style:none;padding:4px 0}.concept-card-plain summary::-webkit-details-marker{display:none}.concept-card-plain summary:before{content:"▸ "}.concept-card-plain[open] summary:before{content:"▾ "}.concept-card-plain p{margin:4px 0 0}.concept-card-plain-text{background:var(--bg3);border-left:1px solid var(--border);border-radius:0 4px 4px 0;padding:8px 12px;font-size:13px;line-height:1.5;color:var(--ink2)}.concept-card-plain-text p{margin:4px 0 0}.concept-expanded-empty{font-style:italic;color:var(--ink3);font-size:12.5px;margin:0}.concept-card-pills{gap:4px}.concept-card-pills .mastery-pill{padding:5px 10px;min-height:26px;font-size:11px}.concept-card-head.clickable{cursor:pointer;border-radius:4px;margin:-4px -6px 0;padding:4px 6px;transition:background .12s}.concept-card-head.clickable:hover .concept-card-chev{color:var(--ink)}.concept-page{padding-bottom:24px}.concept-page-topbar{margin:0 0 18px;display:flex;align-items:stretch;gap:14px;flex-wrap:nowrap;background:transparent;color:var(--ink)}.concept-page-head-left{display:flex;flex-direction:column;gap:6px;flex-shrink:0;width:200px;align-self:stretch}.concept-page-head-left .back-link,.concept-page-head-left .concept-page-share,.concept-page-head-left .concept-page-nav{width:100%;flex:1 1 0;min-height:32px}.concept-page-head-left .back-link{display:flex;align-items:center;justify-content:center;box-sizing:border-box}.concept-page-head-left .concept-page-share{width:100%;box-sizing:border-box}.concept-page-head-left .concept-page-nav{display:flex;gap:6px;align-items:stretch}.concept-page-head-left .concept-page-nav-btn,.concept-page-head-left .concept-page-nav-pos{flex:1 1 0;width:auto;height:auto;min-height:100%;box-sizing:border-box}@media (max-width: 760px){.concept-page-topbar{flex-wrap:wrap}.concept-page-head-left{flex-direction:row;width:auto;flex-wrap:wrap}.concept-page-head-left .back-link,.concept-page-head-left .concept-page-share,.concept-page-head-left .concept-page-nav{width:auto}}.concept-page-head-card{flex:1 1 auto;display:flex;align-items:center;gap:14px;flex-wrap:wrap;background:var(--bg-card);border:1px solid var(--border);border-radius:8px;padding:16px 22px;box-shadow:var(--shadow-sm);min-width:0}.concept-page-topbar .back-link.dark{background:transparent;border-color:var(--border);color:var(--ink2)}.concept-page-topbar .back-link.dark:hover{color:var(--ink);border-color:var(--ink)}.concept-page-nav{display:inline-flex;align-items:center;gap:6px;margin-left:4px}.concept-page-nav-btn{font-family:var(--mono);font-size:14px;font-weight:700;line-height:1;width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;background:var(--bg-card);border:1px solid var(--border);border-radius:6px;color:var(--ink2);cursor:pointer;transition:border-color .15s,color .15s,background .15s,transform .1s}.concept-page-nav-btn:not(:disabled):hover{border-color:var(--ink);color:var(--ink);transform:translateY(-1px)}.concept-page-nav-btn:disabled{opacity:.35;cursor:not-allowed}.concept-page-nav-pos{font-family:var(--mono);font-size:11px;font-weight:600;color:var(--ink2);letter-spacing:.04em;min-width:50px;padding:4px 8px;border:1px solid var(--border);border-radius:6px;background:var(--bg-card);text-align:center;white-space:nowrap;display:inline-flex;align-items:center;justify-content:center}.concept-page-title-row{display:flex;align-items:center;gap:12px;flex:1;min-width:200px}.concept-page-color{display:inline-flex;align-items:center;justify-content:center;min-width:56px;height:48px;padding:0 14px;border-radius:10px;font-family:var(--mono);font-size:20px;font-weight:700;letter-spacing:.03em;color:#fff;text-shadow:0 1px 1px rgba(0,0,0,.18);flex-shrink:0}.concept-page-title{margin:0;font-family:var(--display);font-size:40px;font-weight:700;letter-spacing:-.02em;color:var(--ink);line-height:1.1}.concept-page-mastery{margin-left:auto;display:flex;align-items:center;gap:10px;font-family:var(--mono);font-size:12px;color:var(--ink2);text-transform:uppercase;letter-spacing:.04em}.concept-page-meta{display:flex;align-items:center;gap:14px;flex-wrap:wrap;background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);padding:10px 16px;margin-bottom:18px}.concept-page-lec{background:var(--bg-card);border:1px solid var(--border);border-radius:4px;padding:6px 12px;font:inherit;font-size:13.5px;cursor:pointer;text-align:left;color:var(--ink);transition:background .12s,border-color .12s}.concept-page-lec:hover{background:var(--ink);color:#fff;border-color:var(--ink)}.concept-page-slides{color:var(--ink3);margin-left:8px;font-family:var(--mono);font-size:12px}.concept-page-lec:hover .concept-page-slides{color:#ffffffb3}.concept-page-qtags{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.concept-page-qtags-label{font-family:var(--mono);font-size:11px;color:var(--ink3);letter-spacing:.04em;margin-right:4px}.concept-page-section{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:18px 22px;margin-bottom:14px;box-shadow:var(--shadow-sm)}.concept-page-section-title{margin:0 0 12px;font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink3)}.concept-page-formal{font-family:var(--mono);font-size:14px;background:var(--bg3);border-left:3px solid var(--ink2);border-radius:0 4px 4px 0;padding:12px 16px;white-space:pre-wrap;line-height:1.55;color:var(--ink)}.concept-page-prose{font-size:14.5px;line-height:1.6;margin:0;color:var(--ink)}.concept-page-examples{margin:0;padding-left:22px;display:flex;flex-direction:column;gap:6px;font-size:14px;line-height:1.55}.concept-page-slide-strip{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}.concept-page-slide{background:var(--bg-card);border:1px solid var(--border);border-radius:6px;cursor:zoom-in;overflow:hidden;padding:0;display:flex;flex-direction:column;transition:border-color .12s,transform .1s,box-shadow .12s}.concept-page-slide:hover{border-color:var(--ink);transform:translateY(-2px);box-shadow:var(--shadow-md)}.concept-page-slide img{display:block;width:100%;height:160px;object-fit:contain;background:var(--bg3)}.concept-page-slide-cap{font-family:var(--mono);font-size:11px;color:var(--ink3);padding:6px 10px;border-top:1px solid var(--border-soft);letter-spacing:.04em}.lesson-nav-bridge{display:flex;align-items:center;gap:6px;color:var(--ink2);font-size:12px;font-style:italic;letter-spacing:.01em;min-width:0;max-width:100%;overflow:hidden}.lesson-nav-bridge-text{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lesson-nav-bridge-text em{font-style:italic;color:var(--ink)}.lesson-nav-row.no-concept .lesson-nav-num{background:transparent;color:var(--ink3)}.paper-q-breakdown{margin-top:6px;padding-top:8px;border-top:1px solid var(--border-soft);display:flex;flex-direction:column;gap:4px;max-height:380px;overflow-y:auto}.paper-q-row{background:transparent;border:1px solid var(--border-soft);border-radius:6px;padding:6px 8px;display:grid;grid-template-columns:auto 1fr auto;grid-template-rows:auto auto;column-gap:8px;row-gap:4px;align-items:center;cursor:pointer;font:inherit;text-align:left;transition:background .15s,border-color .15s}.paper-q-row:hover{background:var(--bg3);border-color:var(--border)}.paper-q-row.full{background:var(--green-bg);border-color:var(--green-light)}.paper-q-row.absent{opacity:.45;cursor:pointer}.paper-q-row .qtag{font-size:10px;padding:2px 6px}.paper-q-title{font-size:11.5px;font-weight:500;line-height:1.25;color:var(--ink);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.paper-q-marks{font-family:var(--mono);font-size:11px;color:var(--ink3);font-weight:600;white-space:nowrap}.paper-q-bar{grid-column:1 / -1;height:4px;background:var(--bg2);border-radius:2px;overflow:hidden}.paper-q-bar-fill{display:block;height:100%;background:linear-gradient(90deg,#6abf90,#1a6040);transition:width .25s ease}.paper-breakdown{display:flex;flex-direction:column;gap:14px}.paper-breakdown-list{display:flex;flex-direction:column;gap:12px}.paper-breakdown-q{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px;box-shadow:var(--shadow-sm)}.paper-breakdown-q.absent{opacity:.55;background:var(--bg3)}.paper-breakdown-q.full{background:var(--green-bg);border-color:var(--green-light)}.paper-breakdown-head{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;margin-bottom:8px}.paper-breakdown-q-title{font-size:13px;font-weight:700;color:var(--ink);line-height:1.3}.paper-breakdown-q-marks{font-family:var(--mono);font-size:11px;color:var(--ink2);font-weight:700;letter-spacing:.04em;white-space:nowrap}.paper-breakdown-rows{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.paper-breakdown-row{display:grid;grid-template-columns:22px 1fr auto;gap:10px;align-items:flex-start;font-size:12.5px;line-height:1.4;padding:4px 0}.paper-breakdown-row.ticked .paper-breakdown-row-text{color:var(--ink)}.paper-breakdown-row.ticked{background:var(--green-bg);border-color:var(--green-light)}.paper-breakdown-row-text strong{font-weight:700}.paper-breakdown-row-marks{font-family:var(--mono);font-size:10.5px;color:var(--ink3);font-weight:600;white-space:nowrap}.paper-breakdown-open{background:transparent;border:1px solid var(--border);border-radius:4px;padding:6px 10px;margin-top:10px;font-family:var(--mono);font-size:11px;letter-spacing:.04em;color:var(--ink2);cursor:pointer;transition:background .15s,border-color .15s,color .15s}.paper-breakdown-open:hover{border-color:var(--ink);color:var(--ink);background:var(--bg3)}.discussion{display:flex;flex-direction:column;gap:18px;margin-top:14px;background:transparent;padding:0;border:none}.discussion-section{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:16px 18px 18px;position:relative;box-shadow:var(--shadow-sm)}.discussion-section:nth-of-type(1){background:var(--bg-card);color:var(--ink2);border-color:var(--border)}.discussion-section:nth-of-type(2){background:var(--bg-card);color:var(--ink2);border-color:var(--border)}.discussion-section:nth-of-type(1) .discussion-section-title{color:var(--ink)}.discussion-section:nth-of-type(2) .discussion-section-title{color:var(--ink)}.discussion-section-title{margin:0 0 12px;display:flex;align-items:center;gap:8px;font-size:15px;font-weight:700;letter-spacing:-.005em;color:var(--ink)}.discussion-section-title svg{color:var(--ink3);flex:0 0 auto}.discussion-section:nth-of-type(1) .discussion-section-title svg{color:var(--amber)}.discussion-section:nth-of-type(2) .discussion-section-title svg{color:var(--blue)}.discussion-section-count{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 6px;border-radius:999px;background:var(--bg2);color:var(--ink2);font-family:var(--mono);font-size:10.5px;font-weight:700;letter-spacing:0;margin-left:4px;border:1px solid var(--border)}.discussion-tabs{display:flex;gap:4px;margin-bottom:12px;border-bottom:1px solid var(--border)}.discussion-tab{display:inline-flex;align-items:center;gap:6px;background:transparent;border:none;padding:8px 12px;font-family:var(--mono);font-size:11.5px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--ink3);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px}.discussion-tab.active{color:var(--ink);border-bottom-color:var(--amber)}.discussion-tab-icon{font-size:13px}.discussion-tab-badge{background:var(--ink);color:#fff;font-size:10px;padding:1px 6px;border-radius:999px;margin-left:2px;letter-spacing:0}.discussion-textarea{width:100%;border:1px solid var(--border);border-radius:8px;padding:10px 12px;font:inherit;font-size:14px;background:var(--bg-card);resize:vertical;min-height:72px;box-sizing:border-box;color:var(--ink)}.discussion-section .discussion-textarea{background:var(--bg);border-color:var(--border)}.discussion-section .discussion-textarea:focus{border-color:var(--ink);outline:none}.discussion-textarea:focus{outline:none;border-color:currentColor;background:var(--bg-card);box-shadow:0 0 0 3px #00000014}.discussion-note-foot{display:flex;justify-content:space-between;align-items:center;margin-top:6px;font-size:12px;color:var(--ink3)}.discussion-note-status{font-family:var(--mono)}.discussion-note-actions{display:flex;gap:6px}.discussion-mini{background:var(--ink);color:#fff;border:none;border-radius:6px;padding:4px 10px;font:inherit;font-size:11.5px;font-family:var(--mono);font-weight:600;letter-spacing:.04em;text-transform:uppercase;cursor:pointer}.discussion-mini:disabled{opacity:.5;cursor:not-allowed}.discussion-mini.danger{background:transparent;color:var(--ink3);border:1px solid var(--border)}.discussion-mini.danger:hover{color:#8a2222;border-color:#c08080}.discussion-composer{margin-bottom:12px}.discussion-composer-actions{display:flex;justify-content:space-between;align-items:center;margin-top:6px;font-size:12px;color:var(--ink3)}.discussion-composer-hint{font-family:var(--mono)}.discussion-composer-hint strong{color:var(--ink);font-weight:600}.discussion-post{background:var(--ink);color:#fff;border:none;border-radius:6px;padding:6px 14px;font:inherit;font-size:11.5px;font-family:var(--mono);font-weight:600;letter-spacing:.06em;text-transform:uppercase;cursor:pointer}.discussion-post:disabled{opacity:.5;cursor:not-allowed}.discussion-empty{font-size:13px;color:var(--ink3);font-style:italic;padding:8px 0}.discussion-error{background:#fdecec;border:1px solid #f3c2c2;color:#8a2222;padding:8px 12px;border-radius:8px;font-size:13px;margin-top:8px}.discussion-list{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-direction:column;gap:10px}.discussion-comment{background:#fbfcff;border:1px solid #d6e0f1;border-left:3px solid #2a5fb4;border-radius:6px 8px 8px 6px;padding:10px 12px}.discussion-comment.mine{background:var(--bg-card);border-color:#2a5fb4;border-left-color:#1d4583;box-shadow:0 1px 2px #2a5fb414}.discussion-comment-head{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--ink3);margin-bottom:4px}.discussion-comment-author{display:inline-flex;align-items:center;gap:7px;background:transparent;border:none;padding:0;font:inherit;color:var(--ink);font-weight:600;cursor:pointer}.discussion-comment-author:hover{text-decoration:underline}.discussion-comment-time{font-family:var(--mono)}.discussion-comment-edited{font-style:italic}.discussion-comment-actions{margin-left:auto;display:flex;gap:6px}.discussion-comment-actions button{background:transparent;border:none;color:var(--ink3);font:inherit;font-size:11.5px;cursor:pointer;padding:2px 6px;border-radius:4px}.discussion-comment-actions button:hover{color:var(--ink);background:#0000000a}.discussion-comment-body{margin:0;font-size:14px;line-height:1.5;white-space:pre-wrap}.discussion-edit{margin-top:6px}.lessons-page.has-drawer{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:24px;align-items:start}.lessons-page-main{min-width:0}.lessons-side-drawer{position:sticky;top:50%;transform:translateY(-50%);align-self:start;max-height:calc(100vh - 140px);background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-md);padding:16px 16px 24px;overflow-y:auto;animation:lessons-drawer-in .18s ease}@keyframes lessons-drawer-in{0%{transform:translate(8px);opacity:0}to{transform:translate(0);opacity:1}}@media (max-width: 1100px){.lessons-page.has-drawer{grid-template-columns:minmax(0,1fr) 320px;gap:16px}}@media (max-width: 900px){.lessons-page.has-drawer{grid-template-columns:1fr}.lessons-side-drawer{position:relative;top:0;max-height:none}}.lessons-side-drawer-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding-bottom:12px;border-bottom:1px solid var(--border);margin-bottom:12px}.lessons-side-drawer-tag{display:inline-block;font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.06em;background:var(--lec-bg, var(--bg2));color:var(--lec-ink, var(--ink));border:1px solid var(--lec-border, var(--border));padding:2px 8px;border-radius:4px;margin-bottom:4px}.lessons-side-drawer-head h3{margin:0;font-size:16px;font-weight:700;letter-spacing:-.01em}.lessons-side-drawer-sub{margin:4px 0 0;font-family:var(--mono);font-size:11px;color:var(--ink3);letter-spacing:.04em;text-transform:uppercase}.lessons-side-drawer-close{background:transparent;border:none;color:var(--ink3);font-size:24px;line-height:1;cursor:pointer;padding:0 4px}.lessons-side-drawer-close:hover{color:var(--ink)}.lessons-side-drawer-actions{margin-bottom:14px}.lessons-side-drawer-open{width:100%;background:var(--ink);color:#fff;border:none;padding:9px 14px;border-radius:8px;font-family:var(--mono);font-size:11.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;cursor:pointer}.lessons-side-drawer-open:hover{background:#000}.lessons-side-drawer-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.lessons-side-drawer-item{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:6px}.lessons-side-drawer-item:hover{background:var(--bg2)}.lessons-side-drawer-name{flex:1;background:transparent;border:none;text-align:left;font:inherit;font-size:13.5px;line-height:1.35;color:var(--ink);cursor:pointer;padding:2px 0;min-width:0}.lessons-side-drawer-name:hover{text-decoration:underline}.lessons-side-drawer-pills{gap:3px;flex-shrink:0}.discussion-setup{padding:12px 14px;background:var(--bg2);border:1px dashed var(--border);border-radius:8px;font-size:13px;color:var(--ink2)}.discussion-setup strong{color:var(--ink)}.discussion-setup p{margin:4px 0 0;line-height:1.5}.discussion-setup code{background:var(--bg-card);padding:1px 6px;border-radius:4px;border:1px solid var(--border);font-family:var(--mono);font-size:12px}.concept-page-open-lesson{background:var(--ink);color:#fff;border:none;border-radius:6px;padding:8px 14px;font-family:var(--mono);font-size:12px;font-weight:600;letter-spacing:.04em;cursor:pointer;transition:background .15s}.concept-page-open-lesson:hover{background:#000}.concept-page-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:28px;align-items:start;margin-top:0}@media (max-width: 980px){.concept-page-layout{grid-template-columns:1fr}}html{scroll-behavior:smooth}.concept-article-section{scroll-margin-top:92px}.concept-article{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:28px 36px 36px;min-width:0}.concept-article-head{border-bottom:1px solid var(--border);padding-bottom:14px;margin-bottom:18px}.concept-article-title{margin:0 0 6px;font-family:var(--display);font-size:44px;font-weight:700;letter-spacing:-.02em;line-height:1.1}.concept-article-lede{margin:0;font-size:15px;line-height:1.55;color:var(--ink2);font-style:italic}.concept-article-section{margin:22px 0 4px}.concept-article-section h2{font-size:17px;font-weight:700;letter-spacing:-.005em;margin:0 0 10px;padding-bottom:4px;border-bottom:1px solid var(--border-soft);color:var(--ink)}.concept-article-section p{margin:0 0 10px;font-size:15px;line-height:1.65;color:var(--ink)}.concept-article-section p:last-child{margin-bottom:0}.concept-article-formal{background:var(--bg2);border-left:3px solid var(--ink);padding:14px 18px;font-family:var(--sans);font-size:15px;line-height:1.65;border-radius:0 6px 6px 0;overflow-x:auto;color:var(--ink)}.concept-article-formal code{font-family:var(--mono);font-size:13.5px;background:var(--bg-card);border:1px solid var(--border);padding:1px 5px;border-radius:3px;color:var(--ink)}.concept-article-formal em{font-style:italic;color:var(--ink);font-weight:600}.concept-article-examples{margin:0;padding-left:22px;font-size:15px;line-height:1.65}.concept-article-examples li{margin-bottom:6px}.concept-article-pills{gap:6px}.concept-infobox{position:sticky;top:180px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px 12px;font-size:13.5px;box-shadow:var(--shadow-sm);align-self:start}.concept-infobox-slides{margin-top:14px;padding-top:12px;border-top:1px solid var(--border)}.concept-infobox-slides .concept-infobox-label{margin-bottom:8px;display:block}.concept-page-slide-strip.compact{display:flex;flex-direction:column;gap:10px}.concept-page-slide-strip.compact .concept-page-slide{width:100%;padding:0;background:var(--bg-card);border:1px solid var(--border);border-radius:6px;overflow:hidden;cursor:zoom-in;transition:border-color .12s,transform .12s}.concept-page-slide-strip.compact .concept-page-slide:hover{border-color:var(--ink);transform:translateY(-1px)}.concept-page-slide-strip.compact .concept-page-slide img{display:block;width:100%;height:auto;border-radius:0}.concept-page-slide-strip.compact .concept-page-slide-cap{display:block;padding:5px 8px;font-family:var(--mono);font-size:10.5px;color:var(--ink3);border-top:1px solid var(--border);background:var(--bg3)}.concept-infobox-row{display:flex;flex-direction:column;gap:5px;padding:8px 0}.concept-infobox-row+.concept-infobox-row{padding-top:4px}.concept-infobox-label{font-family:var(--mono);font-size:10.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink3)}.concept-infobox-value{color:var(--ink)}.concept-infobox-link{display:inline-block;background:transparent;border:none;font:inherit;font-size:14px;color:var(--ink);text-align:left;padding:0;cursor:pointer;text-decoration:none;border-bottom:1px solid transparent;transition:border-color .12s,color .12s}.concept-infobox-link:hover{color:#000;border-bottom-color:var(--ink)}.lec-pill{display:inline-flex;align-items:center;gap:8px;padding:6px 10px 6px 6px;background:var(--bg-card);border:1px solid var(--lec-border, var(--border));border-radius:8px;font:inherit;font-size:13px;color:var(--ink);cursor:pointer;text-align:left;text-decoration:none;transition:border-color .12s,transform .1s,box-shadow .12s;max-width:100%;min-width:0;width:max-content;align-self:flex-start}.lec-pill .lec-pill-tag{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.04em;padding:3px 7px;border-radius:5px;background:var(--lec-bg, var(--bg2));color:var(--lec-ink, var(--ink))}.lec-pill .lec-pill-title{font-weight:500;letter-spacing:-.005em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.lec-pill.interactive:hover{border-color:var(--lec-bg, var(--ink));transform:translateY(-1px);box-shadow:0 2px 8px -3px color-mix(in srgb,var(--lec-bg, var(--ink)) 40%,transparent)}.slide-pill{display:inline-flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:11.5px;font-weight:700;letter-spacing:.04em;padding:4px 9px;border-radius:6px;background:var(--lec-bg, var(--bg2));color:var(--lec-ink, var(--ink));border:1px solid var(--lec-border, var(--border));cursor:pointer;transition:transform .1s,filter .12s}.slide-pill.interactive:hover{transform:translateY(-1px);filter:brightness(.95)}.slide-pill-sep{font-family:var(--mono);font-size:12px;color:var(--ink3);align-self:center}.concept-infobox-slide-pills{display:inline-flex;align-items:center;gap:5px;flex-wrap:wrap}.lec-pill.group-logic,.slide-pill.group-logic,.lesson-view-id-chip.group-logic,.roadmap-lec-tag.group-logic,.concept-card-lec-tag.group-logic,.what-lec-tag.group-logic,.cm-popup-lec-tag.group-logic{--lec-bg: #e9e5f5;--lec-border: #6a4ec3;--lec-ink: #4a3478}.lec-pill.group-automata,.slide-pill.group-automata,.lesson-view-id-chip.group-automata,.roadmap-lec-tag.group-automata,.concept-card-lec-tag.group-automata,.what-lec-tag.group-automata,.cm-popup-lec-tag.group-automata{--lec-bg: #d8e6f5;--lec-border: #2a5fb4;--lec-ink: #1d4583}.lec-pill.group-papers,.slide-pill.group-papers,.lesson-view-id-chip.group-papers,.roadmap-lec-tag.group-papers,.concept-card-lec-tag.group-papers,.what-lec-tag.group-papers,.cm-popup-lec-tag.group-papers{--lec-bg: #efe6cf;--lec-border: #b07d11;--lec-ink: #6b4f0e}.lec-pill.group-haskell,.slide-pill.group-haskell,.lesson-view-id-chip.group-haskell,.roadmap-lec-tag.group-haskell,.concept-card-lec-tag.group-haskell,.what-lec-tag.group-haskell,.cm-popup-lec-tag.group-haskell{--lec-bg: #d0ecdf;--lec-border: #2a8a5a;--lec-ink: #0c4a2c}.lec-pill.group-c,.slide-pill.group-c,.lesson-view-id-chip.group-c,.roadmap-lec-tag.group-c,.concept-card-lec-tag.group-c,.what-lec-tag.group-c,.cm-popup-lec-tag.group-c{--lec-bg: #ffd9b3;--lec-border: #e08a3a;--lec-ink: #5a2a00}[data-theme=dark] .lec-pill.group-logic,[data-theme=dark] .slide-pill.group-logic,[data-theme=dark] .lesson-view-id-chip.group-logic,[data-theme=dark] .roadmap-lec-tag.group-logic,[data-theme=dark] .concept-card-lec-tag.group-logic,[data-theme=dark] .what-lec-tag.group-logic,[data-theme=dark] .cm-popup-lec-tag.group-logic{--lec-bg: #2c2645;--lec-border: #6a4ec3;--lec-ink: #d4c8f5}[data-theme=dark] .lec-pill.group-automata,[data-theme=dark] .slide-pill.group-automata,[data-theme=dark] .lesson-view-id-chip.group-automata,[data-theme=dark] .roadmap-lec-tag.group-automata,[data-theme=dark] .concept-card-lec-tag.group-automata,[data-theme=dark] .what-lec-tag.group-automata,[data-theme=dark] .cm-popup-lec-tag.group-automata{--lec-bg: #1c2842;--lec-border: #4a78c8;--lec-ink: #c8d8f0}[data-theme=dark] .lec-pill.group-papers,[data-theme=dark] .slide-pill.group-papers,[data-theme=dark] .lesson-view-id-chip.group-papers,[data-theme=dark] .roadmap-lec-tag.group-papers,[data-theme=dark] .concept-card-lec-tag.group-papers,[data-theme=dark] .what-lec-tag.group-papers,[data-theme=dark] .cm-popup-lec-tag.group-papers{--lec-bg: #2c2415;--lec-border: #b07d11;--lec-ink: #e6c87a}[data-theme=dark] .lec-pill.group-haskell,[data-theme=dark] .slide-pill.group-haskell,[data-theme=dark] .lesson-view-id-chip.group-haskell,[data-theme=dark] .roadmap-lec-tag.group-haskell,[data-theme=dark] .concept-card-lec-tag.group-haskell,[data-theme=dark] .what-lec-tag.group-haskell,[data-theme=dark] .cm-popup-lec-tag.group-haskell{--lec-bg: #142c1f;--lec-border: #2a8a5a;--lec-ink: #b8e6c8}[data-theme=dark] .lec-pill.group-c,[data-theme=dark] .slide-pill.group-c,[data-theme=dark] .lesson-view-id-chip.group-c,[data-theme=dark] .roadmap-lec-tag.group-c,[data-theme=dark] .concept-card-lec-tag.group-c,[data-theme=dark] .what-lec-tag.group-c,[data-theme=dark] .cm-popup-lec-tag.group-c{--lec-bg: #2c1c10;--lec-border: #d96a2a;--lec-ink: #f0c8a8}.concept-infobox-qtags{display:flex;flex-wrap:wrap;gap:4px}.concept-infobox-toc{display:flex;flex-direction:column;gap:2px;margin-top:14px;padding-top:12px;border-top:1px solid var(--border)}.concept-infobox-toc .concept-infobox-label{margin-bottom:6px}.concept-infobox-toc a,.concept-infobox-toc-link{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:transparent;font:inherit;color:var(--ink);text-decoration:none;padding:8px 12px;font-size:14px;border-radius:6px;border:1px solid transparent;cursor:pointer;transition:background .12s,border-color .12s,color .12s}.concept-infobox-toc-link svg{color:var(--ink3);flex-shrink:0;transition:color .12s}.concept-infobox-toc-link span{min-width:0;overflow:hidden;text-overflow:ellipsis}.concept-infobox-toc a:hover,.concept-infobox-toc-link:hover{background:var(--bg2);border-color:var(--border);color:var(--ink)}.concept-infobox-toc-link:hover svg{color:var(--ink)}.concept-infobox-toc a:active,.concept-infobox-toc-link:active{background:var(--ink);color:#fff}.concept-infobox-toc-link:active svg{color:#fff}@media (max-width: 980px){.concept-infobox{position:relative;top:0}}.concept-infobox-pills{gap:4px;flex-wrap:wrap}.concepts-group-progress{display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:14px;letter-spacing:.02em}.concepts-group-stat{font-weight:700}.concepts-group-stat.green{color:var(--green-text, #1f6e2f)}.concepts-group-stat.amber{color:#a07118}.concepts-group-stat.grey{color:var(--ink3)}.concepts-group-stat-sep{color:var(--border);font-weight:400}.search-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000002e;z-index:250;display:flex;justify-content:center;align-items:flex-start;padding:60px 16px}.search-modal{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;width:min(680px,100%);max-height:calc(100vh - 120px);display:flex;flex-direction:column;overflow:hidden;box-shadow:var(--shadow-lg)}.search-modal-head{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--border)}.search-modal-icon{font-size:16px}.search-modal-input{flex:1;border:none;outline:none;font:inherit;font-size:15px;padding:6px 4px;background:transparent;color:var(--ink)}.search-modal-kbd{font-family:var(--mono);font-size:10.5px;color:var(--ink3);border:1px solid var(--border);border-radius:4px;padding:2px 6px}.search-modal-body{flex:1;overflow-y:auto;padding:8px 0}.search-modal-empty{padding:24px 18px;color:var(--ink3);text-align:center;font-size:14px}.search-modal-empty p{margin:4px 0}.search-modal-hint{font-size:12.5px}.search-modal-hint kbd{font-family:var(--mono);font-size:11px;border:1px solid var(--border);border-radius:3px;padding:1px 5px;margin:0 2px}.search-modal-results{display:flex;flex-direction:column}.search-modal-group{padding:4px 0 8px}.search-modal-group-title{display:flex;align-items:center;gap:6px;margin:6px 14px 4px;font-family:var(--mono);font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink3)}.search-modal-group-icon{font-size:12px}.search-modal-group-count{background:var(--bg2);color:var(--ink2);border-radius:999px;padding:1px 7px;margin-left:auto;font-size:10px}.search-modal-hits{list-style:none;margin:0;padding:0}.search-modal-hit{padding:8px 14px;cursor:pointer;border-left:3px solid transparent;transition:background .1s,border-color .1s}.search-modal-hit:hover,.search-modal-hit.active{background:var(--bg2);border-left-color:var(--ink)}.search-modal-hit-title{font-size:14px;font-weight:600;color:var(--ink)}.search-modal-hit-sub{font-family:var(--mono);font-size:11px;color:var(--ink3);margin-top:2px;letter-spacing:.04em}.search-modal-hit-snippet{font-size:12.5px;color:var(--ink2);margin-top:4px;line-height:1.4;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical}.search-modal-hit mark{background:var(--amber-soft);color:var(--ink);padding:0 1px;border-radius:2px}.topnav-account{display:flex;align-items:center;gap:8px;background:transparent;border:1px solid var(--border);border-radius:999px;padding:4px 10px 4px 4px;cursor:pointer;font:inherit;font-size:12.5px;color:var(--ink);transition:border-color .15s,background .15s}.topnav-account:hover{border-color:var(--ink);background:var(--bg2)}.topnav-account-avatar{width:24px;height:24px;border-radius:50%;background:var(--ink);color:#fff;display:grid;place-items:center;font-family:var(--mono);font-size:11px;font-weight:700}.topnav-account-name{font-family:inherit}.topnav-account-gear{color:var(--ink3);font-size:13px}.topnav-theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;cursor:pointer;color:var(--ink3);transition:color .12s,background .12s;margin-left:4px}.topnav-theme-toggle:hover{color:var(--ink);background:var(--bg2)}.topnav-theme-toggle:focus-visible{outline:2px solid var(--ink);outline-offset:1px}.account-page{max-width:760px;margin:0 auto;padding-bottom:56px}.account-head{display:flex;align-items:center;gap:14px;margin-bottom:18px}.account-avatar-lg{width:52px;height:52px;border-radius:50%;background:var(--ink);color:var(--bg);display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:22px;font-weight:700;flex-shrink:0}.account-avatar-wrap{position:relative;flex-shrink:0}.account-avatar-sync{position:absolute;bottom:-2px;right:-2px;width:22px;height:22px;border-radius:50%;background:var(--bg-card);color:var(--ink);border:1px solid var(--border);cursor:pointer;font-size:13px;line-height:1;display:grid;place-items:center;transition:background .12s,color .12s,border-color .12s,transform .18s ease;box-shadow:0 1px 3px #00000014}.account-avatar-sync:hover:not(:disabled){background:var(--ink);color:var(--bg-card);border-color:var(--ink);transform:rotate(180deg)}.account-avatar-sync:disabled{opacity:.6;cursor:not-allowed}.account-avatar-sync-link{background:transparent;border:0;padding:4px 0 0;font-family:var(--mono);font-size:11px;letter-spacing:.03em;color:var(--ink3);cursor:pointer;transition:color .12s}.account-avatar-sync-link:hover:not(:disabled){color:var(--ink)}.account-avatar-sync-link:disabled{opacity:.6;cursor:not-allowed}.account-title{font-family:var(--display, var(--sans));font-size:24px;font-weight:700;letter-spacing:-.02em;margin:0 0 2px;line-height:1.15}.account-email{margin:0;font-family:var(--mono);font-size:12.5px;color:var(--ink2)}.account-meta{margin:2px 0 0;font-size:12px;color:var(--ink3);display:inline-flex;align-items:center;gap:6px}.account-meta:before{content:"";width:3px;height:3px;border-radius:50%;background:var(--ink3);display:none}.account-section{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:14px 16px 16px;margin-bottom:12px}.account-section-title{margin:0 0 2px;font-family:var(--display, var(--sans));font-size:16px;font-weight:700;letter-spacing:-.005em;color:var(--ink)}.account-section-sub{margin:0 0 10px;font-size:12.5px;color:var(--ink3);line-height:1.45}.account-row{display:flex;align-items:flex-end;gap:10px;margin-top:10px}.account-row:first-child{margin-top:0}@media (max-width: 640px){.account-row{flex-direction:column;align-items:stretch;gap:8px}.account-row .account-btn{align-self:flex-end}}.account-field{display:flex;flex-direction:column;flex:1;gap:4px}.account-field span{font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink3)}.account-field input{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:7px 10px;font:inherit;font-size:13.5px;color:var(--ink)}.account-field input:focus{outline:none;border-color:var(--ink)}.account-field-wide{flex:1 1 100%}.account-textarea{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:8px 10px;font:inherit;font-size:13.5px;color:var(--ink);resize:vertical;min-height:56px;line-height:1.45}.account-textarea:focus{outline:none;border-color:var(--ink)}.course-switcher-empty{padding:12px 14px;color:var(--ink3);font-size:12.5px;text-align:center}.course-switcher-item-badge{margin-left:auto;font-family:var(--mono);font-size:9.5px;letter-spacing:.06em;text-transform:uppercase;background:var(--bg2);color:var(--ink3);padding:2px 6px;border-radius:4px}.account-btn{background:transparent;color:var(--ink2);border:1px solid var(--border);padding:6px 12px;font-family:var(--mono);font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;border-radius:7px;cursor:pointer;white-space:nowrap}.account-btn:hover{color:var(--ink);border-color:var(--ink)}.account-btn:disabled{opacity:.5;cursor:not-allowed}.account-btn.primary{background:var(--ink);color:var(--bg);border-color:var(--ink)}.account-btn.primary:hover{background:#000}.account-btn.danger:hover{color:var(--red);border-color:var(--red)}.account-btn.danger-strong{background:var(--red);color:#fff;border-color:var(--red)}.account-btn.danger-strong:hover{background:#b80f0f;border-color:#b80f0f;color:#fff}.account-danger-zone{margin-top:24px;padding-top:20px;border-top:1px solid color-mix(in srgb,var(--red) 30%,var(--border))}.account-danger-zone-title{font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--red);margin:0 0 6px}.account-danger-zone-blurb{margin:0 0 12px;font-size:13px;color:var(--ink2);line-height:1.5;max-width:60ch}.delete-account-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:color-mix(in srgb,#000 55%,transparent);display:flex;align-items:center;justify-content:center;z-index:1000;padding:24px;animation:dam-fade .18s ease}@keyframes dam-fade{0%{opacity:0}to{opacity:1}}.delete-account-modal{width:100%;max-width:460px;background:var(--bg-card);border:1px solid var(--border);border-top:4px solid var(--red);border-radius:12px;box-shadow:0 24px 64px -16px #0006;display:flex;flex-direction:column;animation:dam-pop .22s cubic-bezier(.22,1,.36,1)}@keyframes dam-pop{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.delete-account-modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:18px 20px 12px}.delete-account-modal-head h3{margin:0;font-family:var(--display);font-size:22px;font-weight:700;letter-spacing:-.01em;color:var(--red)}.delete-account-modal-close{background:transparent;border:none;font-size:24px;line-height:1;color:var(--ink3);cursor:pointer;padding:0 4px;transition:color .12s}.delete-account-modal-close:hover{color:var(--ink)}.delete-account-modal-close:disabled{opacity:.4;cursor:not-allowed}.delete-account-modal-body{padding:0 20px 16px;display:flex;flex-direction:column;gap:12px;font-size:14px;color:var(--ink2);line-height:1.5}.delete-account-modal-body p{margin:0}.delete-account-modal-body strong{color:var(--ink)}.delete-account-modal-label{display:flex;flex-direction:column;gap:4px;font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink3);margin-top:6px}.delete-account-modal-label code{font-family:var(--mono);font-size:12px;font-weight:500;letter-spacing:0;text-transform:none;color:var(--ink);background:var(--bg2);padding:4px 8px;border-radius:4px;align-self:flex-start}.delete-account-modal-input{font:inherit;font-family:var(--mono);font-size:13px;padding:10px 12px;background:var(--bg-card);border:1.5px solid var(--border);border-radius:8px;color:var(--ink);transition:border-color .15s,box-shadow .15s}.delete-account-modal-input:focus{outline:none;border-color:var(--red);box-shadow:0 0 0 3px color-mix(in srgb,var(--red) 18%,transparent)}.delete-account-modal-error{margin:0;font-family:var(--mono);font-size:11.5px;color:var(--red)}.delete-account-modal-foot{display:flex;justify-content:flex-end;gap:10px;padding:12px 20px 18px;border-top:1px solid var(--border);background:var(--bg3);border-radius:0 0 12px 12px}.account-msg{margin:8px 0 0;font-family:var(--mono);font-size:11.5px;color:var(--ink2)}.account-actions{display:flex;flex-wrap:wrap;gap:6px}.account-pw-block{margin:2px 0 10px;padding:10px 12px 12px;background:var(--bg);border:1px solid var(--border);border-radius:8px}.account-pw-lead{margin:0 0 8px;font-size:12px}.account-pw-row{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end}.account-pw-row .account-field{min-width:200px}@media (max-width: 640px){.account-pw-row{flex-direction:column;align-items:stretch}.account-pw-row .account-btn{align-self:flex-end}}.account-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:6px}.account-stat{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:8px 10px}.account-stat-num{font-family:var(--mono);font-size:18px;font-weight:700;color:var(--ink);line-height:1}.account-stat-of{color:var(--ink3);font-weight:500;font-size:12px}.account-stat-label{margin-top:3px;font-size:10.5px;color:var(--ink3);letter-spacing:.02em}.account-course-list{display:flex;flex-direction:column;gap:6px}.account-course{display:flex;align-items:center;gap:10px;background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:7px 10px;cursor:pointer;font:inherit;text-align:left;color:var(--ink)}.account-course:hover:not(.disabled){border-color:var(--ink)}.account-course.active{border-color:var(--ink);background:var(--bg2)}.account-course.disabled{opacity:.55;cursor:not-allowed}.account-course-mark{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:6px;background:var(--ink);color:var(--bg);font-family:var(--mono);font-size:11px;font-weight:700}.account-course.disabled .account-course-mark{background:var(--bg3);color:var(--ink3)}.account-course-text{display:flex;flex-direction:column;flex:1;line-height:1.2}.account-course-code{font-family:var(--mono);font-size:13px;font-weight:700}.account-course-title{font-size:12.5px;color:var(--ink3)}.account-course-check{color:var(--ink)}.account-course-badge{font-family:var(--mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink3);border:1px dashed var(--border);padding:2px 6px;border-radius:4px}.search-page{padding-bottom:64px}.search-page-head{margin-bottom:18px}.search-page-input-wrap{position:relative;display:flex;align-items:center;gap:12px;background:var(--bg-card);border:1px solid var(--border);border-radius:10px;padding:14px 18px;box-shadow:var(--shadow-sm);transition:border-color .15s,box-shadow .15s;margin-bottom:24px}.search-page-input-wrap:focus-within{border-color:var(--ink);box-shadow:var(--shadow-md)}.search-page-input-icon{font-size:20px;color:var(--ink2)}.search-page-input{flex:1;border:none;outline:none;background:transparent;font:inherit;font-size:18px;color:var(--ink);padding:4px 0}.search-page-input::placeholder{color:var(--ink3)}.search-page-clear{background:var(--bg2);border:1px solid var(--border);color:var(--ink2);width:28px;height:28px;border-radius:50%;font-size:16px;line-height:1;cursor:pointer;transition:background .12s,color .12s,border-color .12s}.search-page-clear:hover{background:var(--ink);color:#fff;border-color:var(--ink)}.search-page-empty{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;padding:32px 28px;text-align:center;color:var(--ink2)}.search-page-empty-lead{font-size:18px;font-weight:600;color:var(--ink);margin:0 0 8px}.search-page-empty p{margin:0 0 6px;line-height:1.55}.search-page-empty-hint{font-size:13px;color:var(--ink3);margin-top:12px!important}.search-page-empty kbd{font-family:var(--mono);font-size:12px;background:var(--bg2);border:1px solid var(--border);border-radius:4px;padding:2px 6px;margin:0 2px}.search-page-summary{font-family:var(--mono);font-size:12px;color:var(--ink3);letter-spacing:.04em;text-transform:uppercase;margin-bottom:18px}.search-page-summary strong{color:var(--ink)}.search-page-group{margin-bottom:28px}.search-page-group-title{display:flex;align-items:center;gap:10px;margin:0 0 12px;font-family:var(--display);font-size:24px;font-weight:700;letter-spacing:-.01em;color:var(--ink);border-bottom:1px solid var(--border);padding-bottom:8px}.search-page-group-icon{font-size:22px}.search-page-group-count{margin-left:auto;font-family:var(--mono);font-size:12px;font-weight:500;letter-spacing:.04em;background:var(--bg2);border:1px solid var(--border);color:var(--ink2);padding:2px 10px;border-radius:999px;text-transform:none}.search-page-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(420px,1fr));gap:12px}.search-page-card{display:grid;grid-template-columns:44px 1fr 24px;align-items:start;gap:14px;background:var(--bg-card);border:1px solid var(--border);border-radius:10px;padding:14px 16px;text-align:left;font:inherit;color:inherit;cursor:pointer;box-shadow:var(--shadow-sm);transition:border-color .12s,transform .12s,box-shadow .12s}.search-page-card:hover{border-color:var(--ink);transform:translateY(-2px);box-shadow:var(--shadow-md)}.search-page-card-icon{width:40px;height:40px;border-radius:8px;background:var(--bg2);display:grid;place-items:center;font-size:20px;flex-shrink:0}.search-page-card-body{min-width:0}.search-page-card-title{font-size:15px;font-weight:700;color:var(--ink);margin:0 0 2px;line-height:1.3}.search-page-card-sub{font-family:var(--mono);font-size:11.5px;color:var(--ink3);letter-spacing:.04em}.search-page-card-snippet{font-size:13px;color:var(--ink2);margin-top:6px;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.search-page-card-arrow{align-self:center;font-family:var(--mono);font-size:18px;color:var(--ink3)}.search-page-card:hover .search-page-card-arrow{color:var(--ink)}.search-page-card mark{background:linear-gradient(transparent 60%,color-mix(in srgb,var(--amber) 60%,transparent) 60%);color:inherit;padding:0;border-radius:0;font-weight:600}.avatar{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:var(--bg2);color:var(--ink);font-family:var(--display);font-weight:600;overflow:hidden;flex-shrink:0;border:1px solid var(--border);-webkit-user-select:none;user-select:none}.avatar.is-letter{background:var(--ink);color:var(--bg);border-color:var(--ink)}.avatar img{width:100%;height:100%;object-fit:cover;display:block}.auth-google{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;margin-top:14px;padding:11px 14px;background:var(--bg-card);border:1.5px solid var(--border);border-radius:8px;font:inherit;font-weight:600;color:var(--ink);cursor:pointer;transition:border-color .15s,transform .1s}.auth-google:hover:not(:disabled){border-color:var(--ink);transform:translateY(-1px)}.auth-google:disabled{opacity:.55;cursor:not-allowed}.auth-or{display:flex;align-items:center;gap:10px;margin:18px 0 6px;color:var(--ink3);font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase}.auth-or:before,.auth-or:after{content:"";flex:1;height:1px;background:var(--border)}.topnav-bell-wrap,.topnav-bell{position:relative}.topnav-bell-badge{position:absolute;top:4px;right:4px;min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:var(--red, #dc2626);color:#fff;font-family:var(--mono);font-size:9.5px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;line-height:1}.topnav-bell-panel{position:absolute;top:calc(100% + 8px);right:0;width:360px;max-width:90vw;background:var(--bg-card);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-lg, 0 12px 40px rgba(0,0,0,.18));overflow:hidden;z-index:60}.topnav-bell-head{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--border);font-weight:700;font-size:13px;color:var(--ink)}.topnav-bell-mark{background:transparent;border:none;color:var(--ink2);font:inherit;font-size:12px;cursor:pointer;text-decoration:underline}.topnav-bell-mark:hover{color:var(--ink)}.topnav-bell-empty{padding:20px 14px;color:var(--ink3);font-size:13px;text-align:center}.topnav-bell-list{list-style:none;margin:0;padding:4px 0;max-height:380px;overflow-y:auto}.topnav-bell-item.unread{background:var(--bg2)}.topnav-bell-btn{display:flex;align-items:center;gap:10px;width:100%;padding:10px 14px;background:transparent;border:none;cursor:pointer;text-align:left;font:inherit;color:var(--ink)}.topnav-bell-btn:hover{background:var(--bg2)}.topnav-bell-text{flex:1;min-width:0;font-size:13px;line-height:1.35}.topnav-bell-text strong{font-weight:700}.topnav-bell-time{font-family:var(--mono);font-size:10.5px;color:var(--ink3)}.topnav-bell-pinned{list-style:none;margin:0;padding:4px 0;border-bottom:1px solid var(--border);background:linear-gradient(135deg,#f59e0b14,#ec48990f)}.topnav-bell-item-pinned .topnav-bell-btn{padding:12px 14px}.topnav-bell-tutorial-mark{width:30px;height:30px;border-radius:999px;background:linear-gradient(135deg,#f59e0b,#ec4899);color:#fff;display:grid;place-items:center;font-size:16px;font-weight:700;flex:0 0 auto}.topnav-bell-sub{display:block;font-size:11.5px;color:var(--ink3);margin-top:2px}.topnav-bell-tag{font-family:var(--mono);font-size:9.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:3px 7px;border-radius:999px;background:var(--ink);color:var(--ink-inverse);flex:0 0 auto}.topnav-bell-foot{display:block;width:100%;padding:10px 14px;background:transparent;border:none;border-top:1px solid var(--border);font:inherit;font-size:12.5px;color:var(--ink2);cursor:pointer;text-align:center}.topnav-bell-foot:hover{background:var(--bg2);color:var(--ink)}.topnav-avatar-img{box-shadow:none}.profile-page{max-width:960px;margin:0 auto;padding:32px 24px 64px}.profile-head{display:grid;grid-template-columns:auto 1fr auto;gap:24px;align-items:start;padding:28px;background:var(--bg-card);border:1px solid var(--border);border-radius:16px;margin-bottom:20px}.profile-avatar{box-shadow:0 4px 12px #0000000f}.profile-name{margin:0 0 6px;font-family:var(--display);font-size:28px;color:var(--ink)}.profile-bio{margin:0 0 10px;color:var(--ink2);font-size:14px;line-height:1.5}.profile-meta{margin:0 0 14px;color:var(--ink3);font-size:12px;font-family:var(--mono)}.profile-stats{display:flex;gap:20px}.profile-stat-btn{background:transparent;border:none;color:var(--ink2);cursor:pointer;font:inherit;font-size:13px;padding:0}.profile-stat-btn strong{color:var(--ink);font-weight:700;margin-right:4px}.profile-stat-btn:hover{color:var(--ink)}.profile-follow-btn{padding:9px 18px;background:var(--ink);color:var(--bg);border:1.5px solid var(--ink);border-radius:8px;font:inherit;font-weight:600;cursor:pointer;white-space:nowrap}.profile-follow-btn:hover:not(:disabled){transform:translateY(-1px)}.profile-follow-btn.following{background:var(--bg-card);color:var(--ink)}.profile-follow-btn:disabled{opacity:.55;cursor:not-allowed}@media (max-width: 720px){.profile-page{padding:20px 14px 48px}.profile-head{grid-template-columns:auto 1fr;grid-template-areas:"avatar id" "actions actions";gap:16px;padding:18px}.profile-avatar{grid-area:avatar;width:64px!important;height:64px!important}.profile-head-id{grid-area:id;min-width:0}.profile-head-actions{grid-area:actions}.profile-name{font-size:22px}.profile-stats{gap:14px;flex-wrap:wrap}.profile-tabs{overflow-x:auto;flex-wrap:nowrap;gap:0}.profile-tab{white-space:nowrap;flex-shrink:0}}.profile-tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin-bottom:20px}.profile-tab{background:transparent;border:none;border-bottom:2px solid transparent;padding:10px 14px;font:inherit;font-size:14px;font-weight:600;color:var(--ink3);cursor:pointer;margin-bottom:-1px}.profile-tab:hover{color:var(--ink2)}.profile-tab.active{color:var(--ink);border-bottom-color:var(--ink)}.profile-comments{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}.profile-comment{padding:14px 16px;background:var(--bg-card);border:1px solid var(--border);border-radius:12px}.profile-comment-meta{display:flex;justify-content:space-between;align-items:center;font-family:var(--mono);font-size:11px;color:var(--ink3);margin-bottom:6px}.profile-comment-target{text-transform:uppercase;letter-spacing:.05em}.profile-comment-body{margin:0 0 8px;color:var(--ink);line-height:1.5;font-size:14px}.profile-comment-link{background:transparent;border:none;color:var(--ink2);font:inherit;font-size:12px;text-decoration:underline;cursor:pointer;padding:0}.profile-comment-link:hover{color:var(--ink)}.profile-courses{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.profile-course{display:flex;align-items:center;gap:14px;padding:12px 16px;background:var(--bg-card);border:1px solid var(--border);border-radius:10px}.profile-course-code{font-family:var(--mono);font-size:12px;font-weight:700;letter-spacing:.04em;color:var(--ink);background:var(--bg2);padding:4px 8px;border-radius:4px}.profile-course-title{flex:1;color:var(--ink2);font-size:14px}.profile-course-badge{font-family:var(--mono);font-size:10.5px;letter-spacing:.04em;background:var(--bg2);color:var(--ink3);padding:3px 8px;border-radius:4px;text-transform:uppercase}.profile-follow-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.profile-follow-row{padding:0}.profile-follow-row-btn{display:flex;align-items:center;gap:12px;width:100%;padding:10px 14px;background:var(--bg-card);border:1px solid var(--border);border-radius:10px;font:inherit;cursor:pointer;text-align:left}.profile-follow-row-btn:hover{border-color:var(--ink2)}.profile-follow-name{color:var(--ink);font-weight:600}.paywall-shell{min-height:100vh;display:flex;flex-direction:column;background:var(--bg)}.paywall-shell-head{display:flex;align-items:center;justify-content:space-between;padding:18px 28px;border-bottom:1px solid var(--border-soft)}.paywall-shell-brand{display:inline-flex;align-items:center;gap:10px;font-family:var(--display);font-size:18px;font-weight:600;color:var(--ink);text-decoration:none}.paywall-shell-mark{height:56px;width:auto}:root[data-theme=dark] .paywall-shell-mark{filter:invert(1)}.paywall-shell-signin{font-family:var(--mono);font-size:12px;font-weight:600;color:var(--ink);background:var(--bg-card);border:1px solid var(--border);padding:7px 14px;border-radius:6px;text-decoration:none;letter-spacing:.04em}.paywall-shell-signin:hover{border-color:var(--ink)}.paywall-shell-main{flex:1;display:flex;align-items:center;padding:32px 16px}.paywall-shell-main .paywall-card{margin:0 auto}.paywall-card{max-width:480px;margin:24px auto;padding:22px 24px;background:var(--bg-card);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow-md);text-align:center}.paywall-kicker{display:inline-block;font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--amber);background:var(--amber-soft);padding:6px 12px;border-radius:999px;margin-bottom:14px}.paywall-title{font-family:var(--display);font-size:22px;line-height:1.2;margin:0 0 8px;color:var(--ink)}.paywall-desc{font-size:13.5px;color:var(--ink2);margin:0 0 14px;line-height:1.5}.paywall-bullets{text-align:left;margin:0 auto 20px;max-width:440px}.paywall-bullets ul{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:6px;color:var(--ink2);font-size:14px}.paywall-bullets li::marker{color:var(--green)}.paywall-cta-row{display:flex;flex-direction:column;align-items:center;gap:8px}.paywall-cta{font:inherit;font-family:var(--display);font-size:15px;font-weight:600;padding:12px 24px;background:var(--ink);color:var(--bg);border:0;border-radius:10px;cursor:pointer;transition:transform .1s,opacity .15s}.paywall-cta:hover:not(:disabled){transform:translateY(-1px)}.paywall-cta:disabled{opacity:.6;cursor:not-allowed}.paywall-fine{font-family:var(--mono);font-size:11px;color:var(--ink3);letter-spacing:.04em}.paywall-error{color:var(--red);font-size:13px;margin-top:12px}.search-page-card-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:8px;background:var(--bg2);color:var(--ink2);flex-shrink:0}.search-page-card-icon.kind-lecture{background:#dbe7fb;color:#2563eb}.search-page-card-icon.kind-concept{background:#ede4fb;color:#7c3aed}.search-page-card-icon.kind-paper{background:#e0f2fe;color:#0284c7}.search-page-card-icon.kind-misc{background:var(--bg2);color:var(--ink2)}.exam-toolbar{margin-left:auto;display:flex;gap:8px;align-items:center}.exam-toolbar-btn{font:inherit;font-family:var(--mono);font-size:11.5px;font-weight:600;letter-spacing:.04em;padding:8px 14px;border:1px solid var(--border);background:var(--bg-card);color:var(--ink);border-radius:6px;cursor:pointer;transition:border-color .15s,background .15s}.exam-toolbar-btn:hover{border-color:var(--ink);background:var(--bg2)}.yb-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:6px}.yb-list-row{display:flex;align-items:flex-start;gap:10px;padding:8px 12px;background:var(--bg-card);border:1px solid var(--border);border-radius:8px;font-size:13px}.yb-list-row-all{grid-column:1 / -1;order:-1;border-left:3px solid var(--green)}.yb-list-year{flex:0 0 auto;font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.04em;padding:3px 7px;border-radius:4px;background:var(--bg2);color:var(--ink);white-space:nowrap;text-transform:uppercase;line-height:1.4;margin-top:1px}.yb-list-year-all{background:var(--green-bg);color:var(--green)}.yb-list-year-2019{background:#ede4fb;color:#4a1ea0}.yb-list-year-2021{background:#dbe7fb;color:#11317a}.yb-list-year-2022{background:#fef3c7;color:#5a3f00}.yb-list-year-2023{background:#fde2e2;color:#7a1212}.yb-list-year-2024{background:#dcfce7;color:#14532d}.yb-list-year-2025{background:#e0f2fe;color:#0c4a6e}.yb-list-text{font-size:12.5px;color:var(--ink);line-height:1.5;min-width:0}.yb-list-lead{font-weight:600;color:var(--ink)}.yb-list-body{color:var(--ink2)}.yb-matrix-empty{color:var(--ink3);font-size:13px;padding:8px 0}.landing-inline-badge-wrap{position:relative;display:inline-block}.landing-badge-preview{position:absolute;top:calc(100% + 10px);left:50%;transform:translate(-50%) translateY(-4px) scale(.97);width:max-content;max-width:min(340px,calc(100vw - 32px));background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:14px 16px;box-shadow:0 16px 40px #0000001f;display:flex;flex-direction:column;gap:6px;font-family:var(--sans);opacity:0;pointer-events:none;transition:opacity .15s ease,transform .18s ease;z-index:60;white-space:normal;text-align:left}.landing-badge-preview:before{content:"";position:absolute;top:-7px;left:50%;margin-left:-6px;width:12px;height:12px;background:var(--bg-card);border-left:1px solid var(--border);border-top:1px solid var(--border);transform:rotate(45deg)}.landing-badge-preview-tag{font-family:var(--mono);font-size:9.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink3)}.landing-badge-preview-title{font-family:var(--display);font-weight:600;font-size:16px;line-height:1.25;color:var(--ink);margin-bottom:2px}.landing-badge-preview-desc{font-size:13px;line-height:1.5;color:var(--ink2);font-weight:400}.landing-badge-preview-formula{display:inline-block;align-self:flex-start;font-family:var(--mono);font-size:13px;background:var(--bg2);border:1px solid var(--border);border-radius:5px;padding:4px 8px;color:var(--ink);margin:2px 0}.landing-badge-preview-bullets{margin:4px 0 0;padding-left:0;display:flex;flex-direction:column;gap:3px}.landing-badge-preview-bullets>span{font-size:12px;line-height:1.45;color:var(--ink2);position:relative;padding-left:14px}.landing-badge-preview-bullets>span:before{content:"·";position:absolute;left:4px;color:var(--ink3);font-weight:700}.landing-badge-preview-meta{font-family:var(--mono);font-size:10.5px;color:var(--ink3);letter-spacing:.04em;margin-top:6px;padding-top:8px;border-top:1px solid var(--border-soft)}.landing-badge-preview-cta{font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.04em;color:currentColor;margin-top:4px}.preview-ref{display:inline-flex;align-items:center;padding:1px 6px;border-radius:4px;font-family:var(--mono);font-size:10.5px;font-weight:700;letter-spacing:.03em;border:1px solid;margin:0 2px;vertical-align:1px;white-space:nowrap}.preview-ref-slot{background:#fef3c7;border-color:#f59e0b;color:#5a3f00}.preview-ref-lec{background:#dbe7fb;border-color:#2563eb;color:#11317a}.landing-inline-badge-preview-lec{border-color:var(--blue)}.landing-inline-badge-preview-concept{border-color:var(--purple)}.landing-inline-badge-preview-slot{border-color:var(--amber)}.landing-inline-badge-wrap:hover .landing-badge-preview,.landing-inline-badge-wrap:focus-within .landing-badge-preview{opacity:1;pointer-events:auto;transform:translate(-50%) translateY(0) scale(1)}.slotmap{background:var(--bg-card);border:1px solid var(--border);border-radius:14px;padding:6px 18px 18px;display:flex;flex-direction:column;gap:0;position:relative}.slotmap:before{content:"";position:absolute;top:36px;bottom:90px;left:36px;width:2px;background:linear-gradient(to bottom,var(--border-soft) 0%,var(--border) 50%,var(--border-soft) 100%);border-radius:1px}.slotmap-row{display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:start;gap:16px;padding:18px 0;position:relative;border-bottom:1px solid var(--border-soft)}.slotmap-row:last-of-type{border-bottom:0}.slotmap-step{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;padding-top:2px}.slotmap-step-num{display:grid;place-items:center;width:28px;height:28px;border-radius:999px;background:var(--bg-card);border:2px solid var(--border);font-family:var(--mono);font-weight:700;font-size:12px;color:var(--ink2);box-shadow:0 0 0 5px var(--bg-card)}.slotmap-row.is-active .slotmap-step-num{background:var(--amber);color:var(--ink);border-color:var(--amber)}.slotmap-row.is-done .slotmap-step-num{background:var(--green);color:#fff;border-color:var(--green)}.slotmap-content{display:flex;flex-direction:column;gap:10px;min-width:0}.slotmap-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.slotmap-tag{font:inherit;cursor:pointer;border:0;padding:5px 12px;border-radius:6px;font-family:var(--mono);font-weight:700;font-size:11.5px;letter-spacing:.04em;flex-shrink:0}.slotmap-tag:hover{transform:translateY(-1px)}.slotmap-title{font:inherit;font-family:var(--display);font-size:16px;font-weight:600;color:var(--ink);background:transparent;border:0;padding:0;cursor:pointer;text-align:left;flex:1;min-width:0}.slotmap-title:hover{color:var(--amber)}.slotmap-marks{font-family:var(--mono);font-size:10.5px;font-weight:700;letter-spacing:.04em;color:var(--ink3);background:var(--bg2);border-radius:4px;padding:4px 8px}.slotmap-progress{display:flex;align-items:center;gap:10px;font-family:var(--mono);font-size:11px}.slotmap-progress-bar{flex:1;height:6px;background:var(--bg2);border-radius:999px;overflow:hidden;min-width:80px}.slotmap-progress-fill{height:100%;background:linear-gradient(90deg,var(--amber) 0%,var(--green) 100%);border-radius:999px;transition:width .4s ease}.slotmap-progress-text{color:var(--ink3);white-space:nowrap}.slotmap-progress-text strong{color:var(--ink);font-weight:700}.slotmap-chips{display:flex;flex-wrap:wrap;gap:6px;min-width:0}.slotmap-empty{font-family:var(--mono);font-size:11px;color:var(--ink3)}.slotmap-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:6px;border:1px solid var(--border);background:var(--bg-card);cursor:pointer;transition:transform .1s ease,border-color .15s,background .15s,box-shadow .15s;font:inherit}.slotmap-chip-name{font-family:var(--sans);font-size:11px;font-weight:500;color:var(--ink2);max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.slotmap-chip:hover{transform:translateY(-1px);border-color:var(--ink)}.slotmap-chip-tag{font-family:var(--mono);font-size:10.5px;font-weight:700;letter-spacing:.03em;color:var(--ink);flex-shrink:0}.slotmap-chip:hover{box-shadow:0 4px 10px #0000000f}.slotmap-chip-empty{background:var(--bg-card);border-color:var(--border)}.slotmap-chip-empty .slotmap-chip-tag{color:var(--ink3)}.slotmap-chip-partial{background:var(--dep-wash-amber);border-color:var(--amber)}.slotmap-chip-partial .slotmap-chip-tag{color:#6a4a00}.slotmap-chip-half{background:var(--dep-wash-mid);border-color:var(--green)}.slotmap-chip-half .slotmap-chip-tag{color:var(--green)}.slotmap-chip-full{background:var(--green);border-color:var(--green)}.slotmap-chip-full .slotmap-chip-tag{color:#fff}.slotmap-row-meta{display:inline-flex;align-items:center;gap:6px}.slotmap-row-frac{font-family:var(--mono);font-size:11px;color:var(--ink3)}.slotmap-legend{display:flex;flex-wrap:wrap;gap:14px;margin-top:10px;padding-top:10px;border-top:1px solid var(--border-soft);font-family:var(--mono);font-size:11px;color:var(--ink3)}.slotmap-legend .dot{display:inline-block;width:10px;height:10px;border-radius:3px;vertical-align:-1px;margin-right:4px;border:1px solid var(--border)}.slotmap-legend .dot-full{background:var(--green);border-color:var(--green)}.slotmap-legend .dot-half{background:var(--dep-wash-mid);border-color:var(--green)}.slotmap-legend .dot-partial{background:var(--dep-wash-amber);border-color:var(--amber)}.slotmap-legend .dot-empty{background:var(--bg-card)}@media (max-width: 560px){.slotmap-row{grid-template-columns:56px minmax(0,1fr)}.slotmap-row-meta{grid-column:2 / 3;justify-content:flex-start;padding-left:0}}.navsearch{position:relative;flex:1 1 520px;min-width:280px;max-width:640px;margin:0}form.navsearch-form{display:flex!important;align-items:center;gap:10px;padding:10px 14px;background:var(--bg2)!important;border:1px solid var(--border)!important;border-radius:10px;margin:0;box-shadow:none;transition:border-color .15s,background .15s}form.navsearch-form:focus-within{border-color:var(--ink)!important;background:var(--bg-card)!important}.navsearch-icon{color:var(--ink3);flex-shrink:0}input.navsearch-input{flex:1 1 auto;background:transparent!important;border:0!important;outline:none!important;box-shadow:none!important;-webkit-appearance:none;-moz-appearance:none;appearance:none;font:inherit;font-size:15px;color:var(--ink);min-width:0;padding:4px 0;margin:0}input.navsearch-input::placeholder{color:var(--ink3)}input.navsearch-input::-webkit-search-cancel-button,input.navsearch-input::-webkit-search-decoration{display:none;-webkit-appearance:none}.navsearch-kbd{font-family:var(--mono);font-size:11px;color:var(--ink3);background:var(--bg-card);border:1px solid var(--border);border-radius:4px;padding:2px 6px;flex-shrink:0}.navsearch-dropdown{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:50;background:var(--bg-popover);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-lg);max-height:70vh;overflow:auto;padding:6px}.navsearch-empty{padding:14px 12px;color:var(--ink3);font-size:13px;text-align:center}.navsearch-group{padding:4px}.navsearch-group+.navsearch-group{border-top:1px solid var(--border-soft)}.navsearch-group-head{display:flex;align-items:center;gap:6px;padding:6px 10px 4px;font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.navsearch-group-count{margin-left:auto;background:var(--bg2);border-radius:999px;padding:1px 8px;color:var(--ink3);font-weight:600}.navsearch-group-list{list-style:none;margin:0;padding:0}.navsearch-hit{display:grid;grid-template-columns:4px 1fr auto;align-items:center;gap:8px;width:100%;background:transparent;border:0;padding:7px 10px;border-radius:6px;font:inherit;text-align:left;cursor:pointer;position:relative}.navsearch-hit:before{content:"";display:block;width:4px;height:22px;border-radius:999px;background:currentColor;opacity:.65}.navsearch-hit:hover,.navsearch-hit:focus-visible{background:var(--bg2)}.navsearch-hit-title{grid-column:2;font-size:13.5px;color:var(--ink);font-weight:500}.navsearch-hit-sub{grid-column:2;font-family:var(--mono);font-size:10.5px;color:var(--ink3);margin-top:1px}.navsearch-group[data-kind=lecture] .navsearch-group-head,.navsearch-group[data-kind=lecture] .navsearch-hit{color:#2563eb}.navsearch-group[data-kind=concept] .navsearch-group-head,.navsearch-group[data-kind=concept] .navsearch-hit{color:#7c3aed}.navsearch-group[data-kind=slot] .navsearch-group-head,.navsearch-group[data-kind=slot] .navsearch-hit{color:#d97706}.navsearch-group[data-kind=paper] .navsearch-group-head,.navsearch-group[data-kind=paper] .navsearch-hit{color:#0d9488}.navsearch-group[data-kind=misc] .navsearch-group-head,.navsearch-group[data-kind=misc] .navsearch-hit{color:var(--ink2)}.navsearch-group .navsearch-group-count{color:var(--ink3)}.navsearch-seeall{display:block;width:100%;margin-top:4px;padding:8px 10px;background:var(--ink);color:var(--bg);border:0;border-radius:6px;font:inherit;font-family:var(--mono);font-size:12px;font-weight:600;text-align:center;cursor:pointer}.navsearch-seeall:hover{opacity:.9}.lesson-stage-counter{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;background:var(--bg-card);border:1px solid var(--border);border-radius:6px;font-family:var(--mono);font-size:13px;font-weight:700;color:var(--ink);letter-spacing:.04em;font-variant-numeric:tabular-nums}.lesson-stage-counter-sep{color:var(--ink3);font-weight:400}.share-btn{display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:5px 10px;background:var(--bg-card);border:1px solid var(--border);border-radius:6px;font:inherit;font-family:var(--mono);font-size:11px;color:var(--ink2);cursor:pointer;transition:border-color .15s,color .15s,background .15s}.share-btn:hover{border-color:var(--ink);color:var(--ink)}.share-btn.is-copied{border-color:var(--green);color:var(--green)}img[data-img-broken=true]{background:linear-gradient(135deg,transparent 47%,var(--border) 49%,var(--border) 51%,transparent 53%),var(--bg2);background-size:100% 100%,100% 100%;object-fit:cover;min-height:80px;border:1px dashed var(--border);border-radius:6px}.evidence-thumb img[data-img-broken=true]{min-height:110px}.catalog-page{max-width:880px;margin:0 auto;padding:32px 24px 64px}.catalog-head{margin-bottom:28px}.catalog-title{margin:0 0 6px;font-family:var(--display);font-size:28px;color:var(--ink)}.catalog-sub{margin:0;color:var(--ink2);font-size:14px;line-height:1.55}.catalog-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}.catalog-card{display:grid;grid-template-columns:auto 1fr auto;gap:18px;align-items:center;padding:18px 20px;background:var(--bg-card);border:1px solid var(--border);border-radius:14px;transition:border-color .15s,transform .1s}.catalog-card:hover{border-color:var(--ink2);transform:translateY(-1px)}.catalog-card.is-locked{opacity:.85}.catalog-card-mark{width:56px;height:56px;display:grid;place-items:center;background:var(--bg2);border:1px solid var(--border);border-radius:10px;font-family:var(--display);font-size:18px;font-weight:600;color:var(--ink)}.catalog-card.is-enrolled .catalog-card-mark{background:var(--ink);color:var(--bg);border-color:var(--ink)}.catalog-card-text{min-width:0}.catalog-card-code{margin:0 0 2px;font-family:var(--mono);font-size:12px;font-weight:700;color:var(--ink3);letter-spacing:.04em}.catalog-card-title{margin:0 0 4px;font-family:var(--display);font-size:18px;color:var(--ink)}.catalog-card-note{margin:4px 0 0;color:var(--ink3);font-size:12.5px;line-height:1.45}.catalog-card-actions{display:flex;flex-direction:column;gap:6px;align-items:flex-end}.catalog-cta{display:inline-flex;align-items:center;gap:6px;padding:9px 18px;border-radius:8px;border:1px solid transparent;font:inherit;font-size:14px;font-weight:600;cursor:pointer;white-space:nowrap;transition:background .15s,border-color .15s,color .15s,transform .1s}.catalog-cta.primary{background:var(--ink);color:var(--bg);border-color:var(--ink)}.catalog-cta.primary:hover:not(:disabled){transform:translateY(-1px);background:var(--ink2);border-color:var(--ink2)}.catalog-cta.primary:disabled{opacity:.45;cursor:not-allowed}.catalog-cta.studying{background:var(--bg2);color:var(--ink);border-color:var(--ink);cursor:default}.catalog-cta.enrolled-only{background:transparent;color:var(--ink2);border-color:var(--border);cursor:default}.catalog-unenrol-link{background:none;border:none;padding:0;font:inherit;font-size:12px;color:var(--ink3);text-decoration:underline;text-underline-offset:2px;cursor:pointer}.catalog-unenrol-link:hover:not(:disabled){color:var(--ink)}.catalog-unenrol-link:disabled{opacity:.5;cursor:not-allowed}.catalog-enrol-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;background:var(--ink);color:var(--bg);border:1.5px solid var(--ink);border-radius:8px;font:inherit;font-weight:600;font-size:13px;cursor:pointer}.catalog-enrol-btn.on{background:var(--bg-card);color:var(--ink)}.catalog-enrol-btn:disabled{opacity:.55;cursor:not-allowed}.catalog-active-btn{padding:6px 12px;background:transparent;color:var(--ink2);border:1px solid var(--border);border-radius:6px;font:inherit;font-size:12px;cursor:pointer}.catalog-active-btn:hover:not(:disabled){border-color:var(--ink);color:var(--ink)}.catalog-active-btn.on{background:var(--bg2);color:var(--ink);border-color:var(--ink2);cursor:default}@media (max-width: 560px){.catalog-page{padding:20px 14px 48px}.catalog-card{grid-template-columns:auto 1fr;grid-template-areas:"mark text" "actions actions";gap:12px;padding:14px 16px}.catalog-card-mark{grid-area:mark;width:44px;height:44px;font-size:14px}.catalog-card-text{grid-area:text}.catalog-card-actions{grid-area:actions;flex-direction:row;justify-content:flex-end;align-items:center;gap:8px;padding-top:4px;border-top:1px solid var(--border)}.catalog-card-title{font-size:15.5px}}.notifications-page{max-width:720px;margin:0 auto;padding:32px 24px 64px}.notifications-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:24px}.notifications-title{margin:0 0 4px;font-family:var(--display);font-size:26px;color:var(--ink)}.notifications-sub{margin:0;color:var(--ink2);font-size:14px}.notifications-mark-all{background:transparent;border:1px solid var(--border);border-radius:8px;padding:8px 14px;font:inherit;font-size:13px;color:var(--ink2);cursor:pointer}.notifications-mark-all:hover{border-color:var(--ink);color:var(--ink)}@media (max-width: 560px){.notifications-page{padding:20px 14px 48px}.notifications-head{flex-direction:column;gap:8px}.notifications-mark-all{align-self:flex-end}.notification-btn{padding:10px 12px}}.notifications-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.notification.unread .notification-btn{background:var(--bg2)}.notification-btn{display:flex;align-items:center;gap:12px;width:100%;padding:12px 14px;background:var(--bg-card);border:1px solid var(--border);border-radius:10px;cursor:pointer;text-align:left;font:inherit;color:var(--ink);position:relative}.notification-btn:hover{border-color:var(--ink2)}.notification-text{flex:1;min-width:0;font-size:14px;line-height:1.45}.notification-text strong{font-weight:700}.notification-text em{font-style:normal;color:var(--ink2)}.notification-time{font-family:var(--mono);font-size:11px;color:var(--ink3)}.notification-dot{width:8px;height:8px;border-radius:50%;background:var(--red, #dc2626);position:absolute;top:12px;right:12px}.account-avatar-lg{box-shadow:0 4px 12px #00000014}.landing{min-height:100vh;color:var(--ink);position:relative;background:linear-gradient(180deg,#fff,#fff 6%,#fff7e6 14%,#fff3d4,#fffaf2 34%,#fdf3f7,#f4f7fb 58%,#f7f4fb,#fbf6ec 90%,#fbf6ec)}.launch-ticker{position:relative;z-index:3;overflow:hidden;background:linear-gradient(90deg,#fbbf24,#f59e0b,#fbbf24);color:#1a1300;border-bottom:1px solid #d97706;padding:8px 0;font-family:var(--mono);font-size:12.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;box-shadow:0 4px 14px -8px #f59e0b99}.launch-ticker-post{background:linear-gradient(90deg,#34d399,#10b981,#34d399);color:#052e1c;border-bottom-color:#047857}.launch-ticker-track{display:flex;width:max-content;animation:launchTickerScroll 38s linear infinite}.launch-ticker-half{display:flex;flex:0 0 auto}.launch-ticker-segment{display:inline-flex;align-items:center;gap:14px;padding:0 28px;white-space:nowrap}.launch-ticker-sparkle{font-size:13px;opacity:.85}.launch-ticker-text{letter-spacing:.06em}@keyframes launchTickerScroll{0%{transform:translate(0)}to{transform:translate(-50%)}}.launch-ticker:hover .launch-ticker-track{animation-play-state:paused}@media (prefers-reduced-motion: reduce){.launch-ticker-track{animation:none;transform:translate(0)}}.landing>*{position:relative;z-index:1}.landing-nav{position:relative;z-index:2}.landing-nav:before{content:"";position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%);width:100vw;background:#fff;z-index:-1;pointer-events:none}.landing-section#features,.landing-section#courses,.landing-section#pricing{max-width:none;padding-left:32px;padding-right:32px;background:transparent}.landing-section#features>*,.landing-section#courses>*,.landing-section#pricing>*{max-width:1100px;margin-left:auto;margin-right:auto;width:100%;box-sizing:border-box}.landing-section#courses>*{max-width:1320px}.landing-nav{display:flex;align-items:center;justify-content:space-between;padding:22px 32px;max-width:1200px;margin:0 auto}.landing-nav.landing-nav-secondary{padding:16px 24px;max-width:none;border-bottom:1px solid var(--border-soft)}.landing-brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);font-family:var(--display);font-size:20px;font-style:italic}.landing-brand img{height:72px;width:auto}:root[data-theme=dark] .landing-brand img{filter:invert(1)}.landing-brand-better{font-weight:600}.landing-brand-moodle{font-weight:400;opacity:.85;margin-left:2px}.landing-nav-links{display:flex;align-items:center;gap:28px}.landing-nav-links a{color:var(--ink2);text-decoration:none;font-size:14px;font-weight:500}.landing-nav-links a:hover{color:var(--ink)}.landing-nav-cta{background:var(--ink);color:var(--bg);border:none;border-radius:8px;padding:9px 16px;font-family:var(--mono);font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;cursor:pointer}.landing-nav-cta:hover{filter:brightness(1.1)}.landing-hero{display:grid;grid-template-columns:1.15fr .85fr;gap:56px;max-width:1200px;margin:0 auto;padding:64px 32px 96px;align-items:center}.landing-eyebrow{display:inline-block;font-family:var(--mono);font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink3);background:var(--bg2);border:1px solid var(--border);padding:6px 12px;border-radius:999px;margin-bottom:22px}.landing-title{font-family:var(--display);font-size:clamp(38px,5vw,60px);line-height:1.05;letter-spacing:-.02em;margin:0 0 22px;color:var(--ink)}.landing-title em{font-style:italic;color:var(--amber)}.landing-title-strike{text-decoration:line-through;text-decoration-thickness:3px;color:var(--ink3);font-weight:500}.landing-lede{font-size:16.5px;line-height:1.65;color:var(--ink2);margin:0 0 28px;max-width:580px}.landing-inline-badge{display:inline-flex;align-items:center;font-family:var(--mono);font-size:11.5px;font-weight:700;letter-spacing:.04em;padding:2px 7px;margin:0 3px;border-radius:4px;border:1px solid transparent;cursor:pointer;vertical-align:1px;transition:transform .1s,box-shadow .15s,background .15s}.landing-inline-badge:hover{transform:translateY(-1px);box-shadow:0 3px 10px -4px currentColor}.landing-inline-badge-lec{background:var(--blue-soft);color:var(--blue);border-color:var(--blue)}.landing-inline-badge-concept{background:var(--purple-soft);color:var(--purple);border-color:var(--purple)}.landing-inline-badge-slot{background:var(--amber-soft);color:#6a4a00;border-color:var(--amber)}.landing-hero-cta{display:flex;align-items:center;gap:18px;flex-wrap:wrap}.landing-cta-primary{background:var(--ink);color:var(--bg);border:none;border-radius:10px;padding:14px 26px;font:inherit;font-weight:600;font-size:15px;cursor:pointer;transition:transform .1s,filter .1s}.landing-cta-primary:hover{transform:translateY(-1px);filter:brightness(1.08)}.landing-cta-primary.block{width:100%;padding:14px;margin-top:10px}.landing-cta-secondary{color:var(--ink2);text-decoration:none;font-size:14px;font-weight:500}.landing-cta-secondary:hover{color:var(--ink)}.landing-hero-fineprint{margin:18px 0 0;color:var(--ink3);font-size:13px}.landing-hero-art{position:relative;aspect-ratio:1 / 1.05;min-height:400px}.landing-hero-card{position:absolute;background:var(--bg-card);border:1px solid var(--border);border-radius:14px;padding:16px 18px;box-shadow:0 12px 32px #00000014}.landing-hero-card-1{top:60px;left:0;width:70%;transform:rotate(-2deg)}.landing-hero-card-2{top:38%;right:0;width:64%;transform:rotate(2deg)}.landing-hero-card-3{bottom:0;left:0;width:60%;transform:rotate(-1deg)}.landing-hero-card{transition:transform .25s ease,box-shadow .25s ease;cursor:pointer;outline:none}.landing-hero-card:hover,.landing-hero-card.is-active,.landing-hero-card:focus-visible{transform:rotate(0) scale(1.06) translateZ(0);box-shadow:0 24px 56px #00000029,0 0 0 2px var(--ink);z-index:5}.landing-hero-card-detail{display:none!important}@media (max-width: 900px){.landing-hero-card-detail{display:none}}.landing-hero-card-detail-tag{font-family:var(--mono);font-size:9px;letter-spacing:.06em;text-transform:uppercase;color:var(--amber);font-weight:700}.landing-hero-card-detail-title{font-family:var(--display);font-size:12px;font-weight:600;margin:2px 0 4px;color:var(--ink);line-height:1.2}.landing-hero-card-detail-body{margin:0;font-size:11px;line-height:1.4;color:var(--ink2)}.vis-mastery-wrap{display:flex;flex-direction:column;gap:12px;width:100%}.vis-mastery-cells{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.vis-mastery-cell{aspect-ratio:1;border-radius:4px;background:var(--bg-card);border:1px solid var(--border);cursor:pointer;transition:transform .15s ease,background .18s ease,border-color .18s ease}.vis-mastery-cell:hover{transform:scale(1.18);z-index:2}.vis-mastery-cell.amber{background:var(--amber);border-color:var(--amber)}.vis-mastery-cell.green{background:var(--green, #2c7a4a);border-color:var(--green, #2c7a4a)}.landing-hero-card-tag{display:inline-block;font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.04em;background:var(--amber);color:#4a3a00;padding:3px 9px;border-radius:4px;margin-bottom:10px}.landing-hero-card-tag-h{background:var(--blue, #2563eb);color:#fff}.landing-hero-card-title{font-family:var(--display);font-weight:600;font-size:16px;margin-bottom:10px;line-height:1.3}.landing-hero-card-bar{height:6px;background:var(--bg2);border-radius:3px;overflow:hidden;margin-bottom:8px;position:relative}.landing-hero-card-bar span{display:block;height:100%;background:linear-gradient(90deg,var(--amber),var(--green, #2c7a4a))}.landing-hero-card-bar-interactive{height:10px;transition:height .15s ease}.landing-hero-card-bar-interactive>span{transition:width .06s linear}.landing-hero-card-scrub{cursor:pointer}.landing-hero-card-scrub:hover .landing-hero-card-bar-interactive,.landing-hero-card-scrub:focus-within .landing-hero-card-bar-interactive{height:12px}.landing-hero-card-meta{font-family:var(--mono);font-size:11px;color:var(--ink3)}.landing-hero-card-bullets{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--ink2)}.landing-hero-card-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-bottom:8px}.landing-hero-cell{aspect-ratio:1;background:var(--bg2);border-radius:4px}.landing-hero-cell.green{background:var(--green, #2c7a4a)}.landing-hero-cell.amber{background:var(--amber)}.landing-hero-card-grid-interactive .landing-hero-cell{border:0;padding:0;cursor:pointer;transition:transform .08s ease,background .15s ease,box-shadow .15s ease}.landing-hero-card-grid-interactive .landing-hero-cell:hover{transform:scale(1.08);box-shadow:0 0 0 2px var(--ink) inset}.landing-hero-card-grid-interactive .landing-hero-cell:active{transform:scale(.94)}.landing-hero-concept{display:flex;flex-direction:column;gap:6px}.landing-hero-concept-tabs{display:flex;gap:4px;flex-wrap:nowrap;white-space:nowrap}.landing-hero-concept-tab{--tab-color: var(--ink2);--tab-soft: var(--bg2);font-family:var(--mono);font-size:9.5px;font-weight:700;letter-spacing:.02em;padding:3px 6px;border-radius:4px;border:1px solid var(--border);background:var(--bg-card);color:var(--ink2);cursor:pointer;flex:0 0 auto;white-space:nowrap;transition:border-color .15s,background .15s,color .15s,box-shadow .15s}.landing-hero-concept-tab[data-color=blue]{--tab-color: var(--blue);--tab-soft: var(--blue-soft)}.landing-hero-concept-tab[data-color=green]{--tab-color: var(--green);--tab-soft: var(--green-bg)}.landing-hero-concept-tab[data-color=amber]{--tab-color: var(--amber);--tab-soft: var(--amber-soft)}.landing-hero-concept-tab:hover{border-color:var(--tab-color);color:var(--tab-color);background:var(--tab-soft)}.landing-hero-concept-tab.is-active{background:var(--tab-color);color:#fff;border-color:var(--tab-color);box-shadow:0 2px 8px -3px var(--tab-color)}.landing-hero-concept-body{--tab-color: var(--ink3);--tab-soft: var(--bg2);margin:0;font-family:var(--mono);font-size:11.5px;line-height:1.5;color:var(--ink2);background:var(--tab-soft);border-left:2px solid var(--tab-color);border-radius:0 4px 4px 0;padding:8px 10px;white-space:pre-wrap;min-height:64px;transition:background .2s ease,border-color .2s ease}.landing-hero-concept-body[data-color=blue]{--tab-color: var(--blue);--tab-soft: var(--blue-soft)}.landing-hero-concept-body[data-color=green]{--tab-color: var(--green);--tab-soft: var(--green-bg)}.landing-hero-concept-body[data-color=amber]{--tab-color: var(--amber);--tab-soft: var(--amber-soft)}.landing-section{max-width:1100px;margin:0 auto;padding:80px 32px}.landing-section#courses{max-width:1320px}.landing-section-tinted{background:var(--bg2);max-width:none;padding-left:32px;padding-right:32px}.landing-section-tinted>*{max-width:1100px;margin-left:auto;margin-right:auto;width:100%;box-sizing:border-box}.landing-section-tinted#courses>*{max-width:1320px}.landing-section-tinted>.landing-section-title,.landing-section-tinted>.landing-section-sub{text-align:center;display:block}.landing-section-title{font-family:var(--display);font-size:clamp(28px,3.5vw,40px);letter-spacing:-.01em;margin:0 0 36px;color:var(--ink);text-align:center}.landing-features{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px}.landing-feature{position:relative;background:var(--bg-card);border:1px solid var(--border);border-radius:14px;padding:22px 22px 24px;transition:transform .15s,border-color .15s,box-shadow .2s;overflow:hidden}.landing-feature:before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:linear-gradient(90deg,var(--amber),var(--green));opacity:.7;transition:opacity .2s}.landing-feature:hover{transform:translateY(-2px);border-color:var(--ink2);box-shadow:0 12px 30px -10px #0000001f}.landing-feature:hover:before{opacity:1}.landing-feature:nth-child(1):before{background:linear-gradient(90deg,var(--blue),var(--teal))}.landing-feature:nth-child(2):before{background:linear-gradient(90deg,var(--amber),#d97524)}.landing-feature:nth-child(3):before{background:linear-gradient(90deg,var(--green),#76823a)}.landing-feature:nth-child(4):before{background:linear-gradient(90deg,var(--purple),#c83878)}.landing-feature:nth-child(5):before{background:linear-gradient(90deg,var(--red),var(--amber))}.landing-feature:nth-child(6):before{background:linear-gradient(90deg,var(--teal),var(--blue))}.landing-feature-kicker{font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink3);font-weight:700}.landing-feature:nth-child(1) .landing-feature-kicker{color:var(--blue)}.landing-feature:nth-child(2) .landing-feature-kicker{color:var(--amber)}.landing-feature:nth-child(3) .landing-feature-kicker{color:var(--green)}.landing-feature:nth-child(4) .landing-feature-kicker{color:var(--purple)}.landing-feature:nth-child(5) .landing-feature-kicker{color:var(--red)}.landing-feature:nth-child(6) .landing-feature-kicker{color:var(--teal)}.landing-feature-title{font-family:var(--display);font-size:19px;line-height:1.25;margin:8px 0 10px;color:var(--ink);font-weight:600}.landing-feature-body{margin:0;color:var(--ink2);line-height:1.55;font-size:14.5px}.landing-courses{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:12px}.landing-course{display:flex;align-items:center;gap:14px;padding:16px 18px;background:var(--bg-card);border:1px solid var(--border);border-radius:12px}.landing-course-mark{width:52px;height:52px;display:grid;place-items:center;background:var(--bg2);border:1px solid var(--border);border-radius:10px;font-family:var(--display);font-weight:600;color:var(--ink);font-size:15px}.landing-course.is-live .landing-course-mark{background:var(--ink);color:var(--bg);border-color:var(--ink)}.landing-course-text{display:flex;flex-direction:column;min-width:0;flex:1}.landing-course-text strong{color:var(--ink);font-size:14.5px}.landing-course-text span{color:var(--ink3);font-size:12.5px;margin-top:2px}.landing-course-status{font-family:var(--mono);font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--green, #2c7a4a);font-weight:700}.landing-course-status.muted{color:var(--ink3)}.landing-pricing{display:grid;grid-template-columns:380px 1fr;gap:40px;align-items:center;max-width:880px;margin:0 auto}.landing-price-card{background:var(--bg-card);border:1px solid var(--border);border-radius:16px;padding:28px 26px;box-shadow:0 16px 40px #0000000f}.landing-price-card h3{font-family:var(--display);font-size:20px;margin:0 0 6px;color:var(--ink)}.landing-price{font-family:var(--display);font-size:44px;font-weight:700;margin:0;color:var(--ink)}.landing-price-per{font-size:16px;color:var(--ink3);font-weight:400;margin-left:4px}.landing-price-fine{color:var(--ink3);font-size:13px;margin:4px 0 18px}.landing-price-list{list-style:none;padding:0;margin:0 0 8px;display:flex;flex-direction:column;gap:8px}.landing-price-list li{padding-left:22px;position:relative;color:var(--ink2);font-size:14px;line-height:1.45}.landing-price-list li:before{content:"✓";position:absolute;left:0;color:var(--amber);font-weight:700}.landing-pricing-aside{color:var(--ink2);font-size:14.5px;line-height:1.6;max-width:380px}.landing-hero-mealdeal{position:absolute;top:-14px;right:-8px;display:flex;align-items:center;gap:12px;padding:10px 14px;background:var(--bg-card);border:1px solid var(--amber);border-radius:12px;text-decoration:none;color:var(--ink);box-shadow:var(--shadow-md);transform:rotate(2deg);transition:transform .2s ease,box-shadow .18s ease,border-color .18s ease;z-index:6;max-width:250px}.landing-hero-mealdeal{cursor:default;pointer-events:none}.landing-hero-mealdeal:hover{transform:rotate(0) translateY(-3px) scale(1.04);box-shadow:var(--shadow-lg);border-color:var(--ink);z-index:9}.landing-hero-mealdeal img{width:56px;height:44px;object-fit:contain}.landing-hero-mealdeal-text{display:flex;flex-direction:column;gap:2px}.landing-hero-mealdeal-eq{font-family:var(--display);font-size:16px;font-weight:700;color:var(--ink);line-height:1.1}.landing-hero-mealdeal-sub{font-family:var(--mono);font-size:10.5px;color:var(--ink2);letter-spacing:.02em}.landing-hero-mealdeal-foot{font-family:var(--mono);font-size:9.5px;color:var(--ink3);font-style:italic}.landing-hero-art{padding-top:18px}.landing-mealdeal-visual{display:block;width:320px;max-width:100%;height:auto;margin:0 0 14px;border-radius:8px}.landing-foot{border-top:1px solid var(--border);padding:24px 32px;background:var(--bg2)}.landing-foot-row{max-width:1100px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;font-size:13px;color:var(--ink3);gap:18px;flex-wrap:wrap}.landing-foot-row a{color:var(--ink2);text-decoration:none}.landing-foot-row a:hover{color:var(--ink)}@media (max-width: 920px){.landing-hero{grid-template-columns:1fr;gap:28px;padding:32px 20px 56px}.landing-hero-art{display:flex;flex-direction:column;gap:14px;max-width:460px;margin:0 auto;width:100%}.landing-pricing{grid-template-columns:1fr;gap:28px}.landing-nav-links{display:none}.landing-nav-burger{display:inline-flex}}.landing-nav-burger{display:none;width:40px;height:40px;align-items:center;justify-content:center;flex-direction:column;gap:4px;background:transparent;border:1px solid var(--border);border-radius:10px;cursor:pointer;padding:0;z-index:4}.landing-nav-burger span{width:18px;height:2px;background:var(--ink);border-radius:2px;transition:transform .18s,opacity .18s}.landing-nav.menu-open .landing-nav-burger span:nth-child(1){transform:translateY(6px) rotate(45deg)}.landing-nav.menu-open .landing-nav-burger span:nth-child(2){opacity:0}.landing-nav.menu-open .landing-nav-burger span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}.landing-nav-scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a73;z-index:3;animation:fadeIn .18s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.landing-nav-mobile{position:absolute;top:100%;right:12px;margin-top:8px;background:#fff;border:1px solid var(--border);border-radius:14px;padding:14px;display:flex;flex-direction:column;gap:6px;min-width:200px;box-shadow:0 18px 38px -10px #00000038;z-index:4;animation:onb-welcome-slide .22s cubic-bezier(.22,1,.36,1)}.landing-nav-mobile a{font-family:var(--sans);font-size:16px;font-weight:500;color:var(--ink);text-decoration:none;padding:10px 12px;border-radius:8px;transition:background .15s}.landing-nav-mobile a:hover{background:var(--bg2)}.landing-nav-mobile .landing-nav-cta{margin-top:4px;padding:12px 14px;text-align:center;font-size:14px}@media (max-width: 560px){.landing-hero{padding:28px 16px 48px}.landing-features,.landing-courses-detailed{grid-template-columns:1fr!important}.landing-course-detail{padding:16px!important}.landing-course-detail-stats{grid-template-columns:repeat(2,1fr)!important}}@media (max-width: 760px){.landing-hero-mealdeal{position:static!important;margin:12px auto 0;width:fit-content;max-width:100%}.landing-course-tabs{overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;padding-bottom:4px;scrollbar-width:none}.landing-course-tabs::-webkit-scrollbar{display:none}.landing-course-tab{scroll-snap-align:start;flex:0 0 auto;font-size:14px;padding:12px 18px}.landing-course-tab-tag{display:none}.pricing-mealdeal{grid-template-columns:1fr!important;gap:14px;padding:18px 20px}.pricing-mealdeal-eq{font-size:96px;margin:-4px 0 4px}.pricing-mealdeal-amount{font-size:48px}.pricing-mealdeal-currency{font-size:24px}.pricing-mealdeal-bullets{font-size:15px}.launch-ticker{font-size:11px;padding:6px 0}.launch-ticker-segment{padding:0 18px;gap:10px}.landing-course-showcase .landing-slot-active-title-text{white-space:normal;text-overflow:clip}.landing-hero-art{gap:10px}}@media (max-width: 480px){.landing-title{font-size:clamp(30px,9vw,44px)!important}.landing-section-title{font-size:clamp(24px,7vw,36px)!important}.landing-eyebrow{font-size:10.5px;padding:5px 10px}.landing-section{padding:56px 20px!important}.landing-foot-bold-inner{padding:64px 20px!important}.landing-hero-cta{gap:12px}.landing-cta-primary{padding:12px 18px;font-size:14px}.landing-hero{padding:20px 14px 36px!important}.landing-hero-mealdeal{gap:8px;padding:8px 10px}.landing-hero-mealdeal img{width:44px;height:36px}.landing-hero-mealdeal-eq{font-size:14px}.onb-card{max-width:100%}.onb-visual{height:160px;padding:16px}.onb-body{padding:20px 22px 4px}.onb-title{font-size:20px}.onb-text{font-size:13.5px}.onb-foot{padding:14px 22px 20px;flex-wrap:wrap;gap:10px}.landing-badge-preview{left:0;transform:translate(0) translateY(-4px) scale(.97)}.landing-badge-preview-active{transform:translate(0) translateY(0) scale(1)}}.auth-back{display:inline-block;margin-bottom:14px;color:var(--ink3);text-decoration:none;font-size:12.5px;font-family:var(--mono)}.auth-back:hover{color:var(--ink)}.legal{min-height:100vh;background:var(--bg);color:var(--ink)}.legal-article{max-width:760px;margin:0 auto;padding:48px 32px 96px;font-size:16px;line-height:1.65;color:var(--ink2)}.legal-head{margin-bottom:28px}.legal-head h1{font-family:var(--display);font-size:clamp(32px,4vw,44px);letter-spacing:-.02em;margin:0 0 6px;color:var(--ink)}.legal-meta{font-family:var(--mono);font-size:12px;color:var(--ink3);margin:0;letter-spacing:.04em;text-transform:uppercase}.legal-body h2{font-family:var(--display);font-size:22px;color:var(--ink);margin:36px 0 12px;letter-spacing:-.01em}.legal-body h3{font-family:var(--display);font-size:17px;color:var(--ink);margin:24px 0 8px;font-weight:600}.legal-body p,.legal-body ul{margin:0 0 14px}.legal-body ul{padding-left:22px;display:flex;flex-direction:column;gap:6px}.legal-body li{line-height:1.55}.legal-body a{color:var(--ink);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px}.legal-body a:hover{color:var(--amber)}.legal-body code{font-family:var(--mono);font-size:13px;background:var(--bg2);border:1px solid var(--border);padding:1px 6px;border-radius:4px;color:var(--ink)}.legal-body strong{color:var(--ink);font-weight:600}.legal-body em{color:var(--ink);font-style:italic}.legal-email{font-size:18px;margin:20px 0 24px}.legal-email a{font-family:var(--mono);font-weight:600;font-size:16px;background:var(--bg2);border:1px solid var(--border);padding:10px 16px;border-radius:8px;display:inline-block;text-decoration:none}.legal-email a:hover{border-color:var(--ink)}.legal-foot-links{display:inline-flex;gap:14px}.legal-toc{padding-left:22px;display:flex;flex-direction:column;gap:4px;margin:0 0 24px}.legal-toc li{line-height:1.5}.legal-toc a{font-size:14.5px}.legal-address{font-style:normal;background:var(--bg2);border:1px solid var(--border);border-radius:8px;padding:12px 16px;font-size:14px;line-height:1.6;display:inline-block}.pricing-page{max-width:720px;margin:0 auto;padding:56px 24px 96px}.pricing-head{text-align:center;margin-bottom:32px}.pricing-title{font-family:var(--display);font-style:italic;font-weight:500;font-size:clamp(32px,5vw,48px);line-height:1.05;letter-spacing:-.02em;margin:0 0 10px;color:var(--ink)}.pricing-sub{color:var(--ink2);font-size:15px;line-height:1.55;max-width:560px;margin:0 auto}.pricing-card{background:var(--bg-card);border:1px solid var(--border);border-radius:16px;padding:32px 28px;box-shadow:0 16px 40px #0000000f}.pricing-card-head{text-align:center;margin-bottom:22px}.pricing-card-head h3{font-family:var(--mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink3);margin:0 0 4px;font-weight:700}.pricing-card-price{font-family:var(--display);font-size:52px;font-weight:700;margin:0;color:var(--ink);letter-spacing:-.02em}.pricing-card-price span{font-size:18px;font-weight:400;color:var(--ink3);margin-left:4px}.pricing-card-fine{color:var(--ink3);font-size:13px;margin:4px 0 0}.pricing-card-list{list-style:none;padding:0;margin:22px 0;display:flex;flex-direction:column;gap:10px}.pricing-card-list li{padding-left:26px;position:relative;color:var(--ink2);font-size:14.5px;line-height:1.5}.pricing-card-list li:before{content:"✓";position:absolute;left:0;color:var(--amber);font-weight:700}.pricing-active{display:flex;flex-direction:column;gap:8px;align-items:center;text-align:center;padding:16px;background:var(--bg2);border-radius:10px;margin-bottom:12px}.pricing-active strong{color:var(--ink);font-size:16px}.pricing-active span{color:var(--ink3);font-size:13px}.pricing-error{background:var(--red-soft, #fdecec);color:var(--red, #b04141);border:1px solid var(--border);padding:10px 14px;border-radius:8px;margin-top:14px;font-size:13.5px}.pricing-finest{text-align:center;color:var(--ink3);font-size:12.5px;margin:18px 0 0}.checkout-success{min-height:70vh;display:grid;place-items:center;padding:32px 24px}.checkout-success-card{background:var(--bg-card);border:1px solid var(--border);border-radius:16px;padding:36px 32px;max-width:460px;width:100%;text-align:center;box-shadow:0 16px 40px #0000000f}.checkout-success-card h2{font-family:var(--display);font-size:clamp(22px,3vw,30px);margin:0 0 8px;color:var(--ink)}.checkout-success-lede{color:var(--ink2);line-height:1.55;margin:0 0 18px;font-size:14.5px}.checkout-success-price{display:inline-flex;flex-wrap:wrap;align-items:baseline;justify-content:center;gap:2px;margin:0 auto 22px;padding:18px 28px 14px;background:var(--bg2);border:1px solid var(--border);border-radius:16px;cursor:default;transition:transform .18s ease,box-shadow .18s ease,background .18s ease,border-color .18s ease;outline:none}.checkout-success-price:hover,.checkout-success-price:focus-visible{transform:translateY(-2px);background:var(--bg-card);border-color:var(--ink3);box-shadow:0 10px 28px #00000014}.checkout-success-price-currency{font-family:var(--display);font-size:28px;font-weight:600;color:var(--ink2);line-height:1;align-self:flex-start;margin-top:8px}.checkout-success-price-amount{font-family:var(--display);font-size:clamp(48px,9vw,64px);font-weight:700;line-height:1;letter-spacing:-.025em;color:var(--ink)}.checkout-success-price-period{font-family:var(--mono);font-size:13px;color:var(--ink2);margin-left:4px;letter-spacing:.02em}.checkout-success-price-note{flex-basis:100%;font-size:12.5px;font-family:var(--mono);color:var(--ink3);margin-top:8px;letter-spacing:.01em}.checkout-success-mark{display:inline-grid;place-items:center;width:56px;height:56px;border-radius:50%;background:var(--green-bg);color:var(--green);font-size:28px;font-weight:700;margin:0 auto 18px;border:2px solid var(--green)}.checkout-success-actions{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-bottom:18px}.checkout-success-cta{font:inherit;font-size:13.5px;font-weight:600;padding:10px 16px;border-radius:8px;border:1px solid var(--border);background:var(--bg-card);color:var(--ink);cursor:pointer;transition:background .15s,border-color .15s,transform .1s}.checkout-success-cta:hover{background:var(--bg2);transform:translateY(-1px)}.checkout-success-cta.primary{background:var(--ink);color:var(--bg-card);border-color:var(--ink)}.checkout-success-cta.primary:hover{background:var(--ink2);border-color:var(--ink2)}.checkout-success-modules{margin:4px 0 22px;padding:18px 18px 14px;background:var(--bg3);border:1px solid var(--border);border-radius:14px;text-align:left}.checkout-success-modules-title{font-family:var(--display);font-size:17px;margin:0 0 4px;color:var(--ink)}.checkout-success-modules-sub{margin:0 0 12px;font-size:13px;color:var(--ink2);line-height:1.45}.checkout-success-modules-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.checkout-success-module{margin:0;padding:0}.checkout-success-module-btn{display:flex;align-items:center;gap:12px;width:100%;padding:10px 14px;background:var(--bg-card);border:1px solid var(--border);border-radius:10px;text-align:left;cursor:pointer;transition:border-color .15s,background .15s,transform .1s;font:inherit;color:var(--ink)}.checkout-success-module-btn:hover{border-color:var(--ink3);transform:translateY(-1px)}.checkout-success-module-btn:disabled{opacity:.6;cursor:default;transform:none}.checkout-success-module.is-enrolled .checkout-success-module-btn{border-color:var(--green);background:var(--green-bg, #f1f9f3)}.checkout-success-module-mark{flex:0 0 auto;width:36px;height:36px;display:grid;place-items:center;border-radius:8px;background:var(--ink);color:var(--bg-card);font-family:var(--mono);font-size:13px;font-weight:700;letter-spacing:.04em}.checkout-success-module-text{flex:1 1 auto;display:flex;flex-direction:column;gap:2px;min-width:0}.checkout-success-module-code{font-family:var(--mono);font-size:11.5px;color:var(--ink3);letter-spacing:.05em}.checkout-success-module-title{font-size:14px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.checkout-success-module-state{flex:0 0 auto;font-family:var(--mono);font-size:11.5px;font-weight:600;color:var(--ink2);letter-spacing:.04em}.checkout-success-module.is-enrolled .checkout-success-module-state{color:var(--green)}.checkout-success-shortcuts{list-style:none;display:flex;flex-wrap:wrap;gap:6px;justify-content:center;padding:14px 0 0;margin:0;border-top:1px solid var(--border)}.checkout-success-shortcuts button{background:transparent;border:0;padding:4px 8px;font-family:var(--mono);font-size:11.5px;color:var(--ink3);cursor:pointer;border-radius:4px;transition:color .15s,background .15s}.checkout-success-shortcuts button:hover{color:var(--ink);background:var(--bg2)}.checkout-success-spinner{margin:0 auto 18px;width:36px;height:36px;border:3px solid var(--border);border-top-color:var(--ink);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.account-sub-status{display:inline-flex;flex-wrap:wrap;align-items:center;gap:8px;color:var(--ink2);font-size:13.5px;margin-top:4px}.account-sub-status.muted{color:var(--ink3)}.account-sub-pill{display:inline-flex;align-items:center;font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.04em;padding:2px 8px;border-radius:4px}.account-sub-pill.is-trial{background:var(--amber-soft);color:#6a4a00;border:1px solid var(--amber)}.account-sub-pill.is-active{background:var(--green-bg);color:var(--green);border:1px solid var(--green)}.account-sub-pill.is-referral{background:linear-gradient(135deg,#f3e8ff,#e0e7ff);color:#4c1d95;border:1px solid #c4b5fd}.account-sub-renew{color:var(--ink3);font-family:var(--mono);font-size:11px}.account-section-subscription{padding:10px 14px}.account-sub-row{display:flex;align-items:center;gap:16px}.account-sub-info{flex:1;min-width:0}.account-section-subscription .account-section-title{margin-bottom:0}.account-sub-actions{flex-shrink:0}@media (max-width: 560px){.account-sub-row{flex-direction:column;align-items:stretch;gap:10px}.account-sub-actions .account-btn{width:100%}}.landing-section-sub{text-align:center;color:var(--ink2);margin:-20px auto 36px;max-width:620px;font-size:15px;line-height:1.55}.landing-feature-visual{background:#fff;border:1px solid #eef2f7;border-radius:10px;padding:14px;margin-bottom:16px;min-height:140px;display:flex;align-items:center;justify-content:center;cursor:default}.landing-feature:hover .landing-feature-visual{background:#fff}.vis-priority{display:flex;flex-direction:column;gap:10px;padding:14px 16px;background:var(--bg-card);border:1px solid var(--border);border-radius:10px}.vis-priority-head{display:flex;align-items:center;gap:10px;font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink2)}.vis-priority-stat strong{font-family:var(--display);font-style:italic;font-size:24px;font-weight:700;margin-right:4px;color:var(--ink);letter-spacing:-.02em}.vis-priority-stat.highlight strong{color:var(--green, #16a34a)}.vis-priority-arrow{color:var(--ink3);font-size:14px}.vis-priority-rows{display:flex;flex-direction:column;gap:3px}.vis-priority-row{display:grid;grid-template-columns:8px 1fr 56px;align-items:center;gap:8px;padding:5px 8px;border-radius:6px;border:1px solid transparent;cursor:pointer;transition:background .18s ease,border-color .18s ease,transform .18s ease}.vis-priority-row:hover{background:color-mix(in srgb,var(--priority, var(--ink3)) 10%,transparent);border-color:color-mix(in srgb,var(--priority, var(--ink3)) 35%,transparent);transform:translate(2px)}.vis-priority-row:hover .vis-priority-bar{filter:brightness(1.05) saturate(1.15)}.vis-priority-row:hover .vis-priority-tier{color:var(--priority)}.vis-priority-dot{width:6px;height:6px;border-radius:50%;background:var(--priority, var(--ink3))}.vis-priority-bar{height:6px;border-radius:3px;background:color-mix(in srgb,var(--priority, var(--ink3)) 70%,transparent)}.vis-priority-tier{font-family:var(--mono);font-size:9.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink3)}.vis-priority-high{--priority: var(--green, #16a34a)}.vis-priority-medium{--priority: var(--amber, #f59e0b)}.vis-priority-low{--priority: color-mix(in srgb, var(--ink3) 50%, transparent);opacity:.6}.vis-priority-skip{display:inline-flex;align-self:flex-start;align-items:center;gap:6px;padding:5px 11px;background:var(--bg-card);border:1px solid var(--border);border-radius:6px;font:inherit;font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink3);cursor:pointer;transition:background .18s,color .18s,border-color .18s,transform .15s}.vis-priority-skip:hover{transform:translateY(-1px)}.vis-priority-skip.is-off{color:var(--ink3);border-color:var(--border)}.vis-priority-skip.is-off .vis-priority-skip-mark{background:color-mix(in srgb,var(--ink3) 28%,transparent);color:#fff}.vis-priority-skip.is-on{background:color-mix(in srgb,var(--green, #16a34a) 14%,transparent);border-color:var(--green, #16a34a);color:var(--green, #16a34a)}.vis-priority-skip.is-on .vis-priority-skip-mark{background:var(--green, #16a34a);color:#fff}.vis-priority-row{transition:max-height .28s ease,opacity .2s ease,margin .28s ease,transform .28s ease}.vis-priority-row.is-hidden{max-height:0;opacity:0;margin-top:-8px;pointer-events:none;transform:translate(-6px)}.vis-priority-skip-mark{display:inline-flex;align-items:center;justify-content:center;width:12px;height:12px;background:var(--ink3);color:var(--bg-card);border-radius:2px;font-size:10px;transition:background .18s,color .18s}.vis-lectures{display:flex;flex-direction:column;gap:6px;width:100%;position:relative}.vis-slide{display:flex;align-items:center;gap:8px;background:var(--bg-card);border:1px solid var(--border);border-radius:6px;padding:5px 8px;height:18px}.vis-slide{transition:transform .18s ease,border-color .18s ease,background .18s ease;cursor:pointer}.vis-slide:hover{transform:translate(4px) scale(1.03);border-color:var(--amber);background:linear-gradient(90deg,rgba(250,204,21,.18),transparent);z-index:2;position:relative}.vis-slide:hover .vis-slide-bar{background:var(--amber);opacity:.9}.vis-slide.is-active{border-color:var(--amber);background:linear-gradient(90deg,rgba(250,204,21,.12),transparent)}.vis-slide-num{font-family:var(--mono);font-size:9px;color:var(--ink3);width:12px}.vis-slide-bar{height:3px;background:var(--ink3);border-radius:2px;opacity:.4}.vis-slide-bar.small{background:var(--ink3);opacity:.25}.vis-slide-tag{margin-left:auto;background:var(--amber);color:#4a3a00;font-family:var(--mono);font-size:9.5px;padding:2px 7px;border-radius:3px;font-weight:700;white-space:nowrap;flex-shrink:0}.vis-papers{display:flex;flex-direction:column;gap:8px;width:100%}.vis-papers-grid{display:grid;grid-template-columns:26px repeat(3,1fr);gap:3px;max-width:200px}.vis-papers-corner{background:transparent}.vis-papers-yearhead{font:inherit;font-family:var(--mono);font-size:9px;font-weight:700;color:var(--ink3);text-align:center;padding:2px 0;border:0;background:transparent;cursor:pointer;transition:color .15s}.vis-papers-yearhead:hover,.vis-papers-yearhead.is-hover{color:var(--ink)}.vis-papers-slothead{font:inherit;font-family:var(--mono);font-size:8.5px;font-weight:700;color:var(--ink3);text-align:right;padding:0 5px 0 0;border:0;background:transparent;cursor:pointer;transition:color .15s}.vis-papers-slothead:hover,.vis-papers-slothead.is-active{color:var(--ink)}.vis-papers-cell{width:100%;aspect-ratio:1.5 / 1;border:1px solid transparent;border-radius:5px;background:var(--bg-card);cursor:pointer;transition:transform .15s,border-color .15s,filter .15s;font:inherit}.vis-papers-cell.on{background:var(--green, #2c7a4a)}.vis-papers-cell.wild{background:#f59e0b}.vis-papers-cell.off{background:var(--bg-card);border:1px dashed var(--border)}.vis-papers-cell.in-active-row{box-shadow:0 0 0 1px #0000000f}.vis-papers-cell.on:hover,.vis-papers-cell.is-active-cell.on,.vis-papers-cell.wild:hover,.vis-papers-cell.is-active-cell.wild{filter:brightness(1.12);border-color:var(--ink);transform:scale(1.04)}.vis-papers-cell.off:hover,.vis-papers-cell.is-active-cell.off{border-style:solid;border-color:var(--amber)}.vis-papers-readout{background:var(--bg-card);border:1px solid var(--border);border-radius:6px;padding:6px 8px;display:flex;flex-direction:column;gap:3px;min-height:48px}.vis-papers-readout-head{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.vis-papers-readout-slot{font-family:var(--mono);font-size:11px;font-weight:700;color:var(--ink);background:var(--bg2);padding:2px 6px;border-radius:4px}.vis-papers-readout-title{font-size:12px;font-weight:600;color:var(--ink);flex:1 1 auto}.vis-papers-readout-total{font-family:var(--mono);font-size:10px;color:var(--ink3)}.vis-papers-readout-row{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;font-size:11.5px;color:var(--ink2)}.vis-papers-readout-year{font-family:var(--mono);font-weight:700;color:var(--ink3)}.vis-papers-readout-lec{font-family:var(--mono);font-size:10px;font-weight:700;background:#dbe7fb;color:#11317a;padding:1px 5px;border-radius:3px}.vis-papers-readout-gist{flex:1 1 auto;min-width:100px}.vis-papers-readout-change{font-family:var(--mono);font-size:10px;color:#92400e;background:#fef3c7;padding:1px 5px;border-radius:3px}.vis-matrix{display:grid;gap:3px;width:100%}.vis-matrix-row{display:grid;grid-template-columns:30px repeat(5,1fr);gap:3px;align-items:center}.vis-matrix-head .vis-matrix-year{text-align:center;font-family:var(--mono);font-size:9px;color:var(--ink3)}.vis-matrix-slot{font-family:var(--mono);font-size:9px;color:var(--ink3);font-weight:700}.vis-matrix-cell{aspect-ratio:1;border-radius:3px;transition:transform .15s ease,box-shadow .15s ease,filter .15s ease;cursor:pointer}.vis-matrix-cell.on{background:var(--green, #2c7a4a)}.vis-matrix-cell.off{background:var(--bg-card);border:1px dashed var(--border)}.vis-matrix-cell:hover{transform:scale(1.35);z-index:3;position:relative;box-shadow:0 4px 14px #0000002e}.vis-matrix-cell.on:hover{filter:brightness(1.15)}.vis-matrix-cell.off:hover{background:var(--amber);border-color:var(--amber);border-style:solid}.vis-mastery{display:flex;align-items:center;justify-content:space-around;gap:16px;width:100%}.vis-mastery-pills{display:flex;gap:5px}.vis-mastery-pill{display:grid;place-items:center;width:26px;height:26px;border-radius:5px;background:var(--bg-card);border:1px solid var(--border);font-family:var(--mono);font-size:11px;font-weight:700;color:var(--ink2);transition:transform .15s ease,box-shadow .15s ease,filter .15s ease;cursor:pointer}.vis-mastery-pill:hover{transform:translateY(-2px) scale(1.12);box-shadow:0 4px 12px #00000026;z-index:2;position:relative}.vis-mastery-pill.amber{background:#facc1526;color:#856204;border-color:#facc1566}.vis-mastery-pill.amber.active{background:var(--amber);color:#4a3a00}.vis-mastery-pill.green{background:#2c7a4a26;color:var(--green, #2c7a4a);border-color:#2c7a4a66}.vis-mastery-pill.green.active{background:var(--green, #2c7a4a);color:#fff}.vis-mastery-ring{position:relative}.vis-mastery-num{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;font-family:var(--display);font-weight:700;font-size:18px;color:var(--ink)}.vis-cohort{display:flex;flex-direction:column;gap:8px;width:100%}.vis-comment{display:flex;gap:8px;background:var(--bg-card);border:1px solid var(--border);border-radius:8px;padding:8px 10px;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease;cursor:pointer}.vis-comment:hover{transform:translate(3px) scale(1.02);border-color:var(--ink);box-shadow:0 4px 12px #0000001a;z-index:2;position:relative}.vis-comment:hover .vis-avatar{transform:scale(1.1);transition:transform .18s ease}.vis-avatar{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:11px;color:#1a2235;flex-shrink:0}.vis-comment-body{font-size:11px;line-height:1.35;color:var(--ink2)}.vis-comment-body strong{color:var(--ink);display:block;font-size:11px}.vis-comment-body p{margin:1px 0 0}.vis-selftest{display:flex;flex-direction:column;gap:10px;width:100%}.vis-selftest-crop{background:var(--bg-card);border:1px solid var(--border);border-radius:8px;padding:10px;display:flex;flex-direction:column;gap:5px;position:relative;transition:transform .18s ease,border-color .18s ease;cursor:pointer}.vis-selftest-crop:hover{transform:scale(1.03);border-color:var(--ink)}.vis-selftest-crop:hover .vis-selftest-bar{background:var(--ink);opacity:.6}.vis-selftest-tag{position:absolute;top:-8px;left:8px;background:var(--ink);color:var(--bg);font-family:var(--mono);font-size:9px;padding:2px 6px;border-radius:3px;font-weight:700}.vis-selftest-bar{height:4px;background:var(--ink3);opacity:.3;border-radius:2px}.vis-selftest-crop-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.vis-selftest-marks{font-family:var(--mono);font-size:9px;font-weight:700;color:var(--ink3);letter-spacing:.04em}.vis-selftest-prompt{font-size:11px;color:var(--ink);line-height:1.4}.vis-selftest-formula{font-family:var(--mono);font-size:11.5px;font-weight:700;color:var(--ink);background:var(--bg2);padding:5px 8px;border-radius:4px;text-align:center;letter-spacing:.04em}.vis-selftest-confidence{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:11px;color:var(--ink3)}.vis-selftest-confidence-label{flex:1;min-width:0;line-height:1.3}.vis-selftest-pills{display:flex;gap:4px;flex:0 0 auto}.vis-selftest-pills .vis-mastery-pill{cursor:pointer;border:1px solid var(--border);background:var(--bg-card);font:inherit;font-family:var(--mono);font-weight:700;font-size:11px;width:24px;height:24px;border-radius:999px;display:inline-grid;place-items:center;color:var(--ink2);transition:background .15s,color .15s,border-color .15s,transform .15s}.vis-selftest-pills .vis-mastery-pill:hover{transform:translateY(-1px)}.vis-selftest-pills .vis-mastery-pill.amber{color:#92400e;border-color:#f59e0b}.vis-selftest-pills .vis-mastery-pill.green{color:#14532d;border-color:#16a34a}.vis-selftest-pills .vis-mastery-pill.active{background:var(--ink);color:var(--ink-inverse);border-color:var(--ink)}.vis-selftest-pills .vis-mastery-pill.amber.active{background:#f59e0b;color:#fff;border-color:#f59e0b}.vis-selftest-pills .vis-mastery-pill.green.active{background:#16a34a;color:#fff;border-color:#16a34a}.vis-selftest-reveal{background:var(--bg-card);border:1px solid var(--border);border-radius:8px;padding:0 12px;display:flex;flex-direction:column;gap:6px;max-height:0;opacity:0;overflow:hidden;transition:max-height .3s ease,opacity .25s ease,padding .25s ease}.vis-selftest-reveal.is-open{max-height:220px;opacity:1;padding-top:10px;padding-bottom:10px}.vis-selftest-reveal-head{display:flex;align-items:center;gap:6px}.vis-selftest-reveal-tag{font-family:var(--mono);font-size:9.5px;font-weight:700;color:var(--ink3);text-transform:uppercase;letter-spacing:.06em}.vis-selftest-reveal-steps{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:3px;font-size:11px;color:var(--ink2);line-height:1.4}.vis-selftest-reveal-steps li::marker{color:var(--ink3);font-weight:700}.vis-multi{display:flex;flex-direction:column;gap:5px;width:100%}.vis-course-row{display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:center;background:var(--bg-card);border:1px solid var(--border);border-radius:6px;padding:6px 9px;font-size:11px;color:var(--ink2);transition:transform .18s ease,border-color .18s ease,opacity .18s ease;cursor:pointer}.vis-course-row:hover{transform:translate(4px);border-color:var(--ink);z-index:2;position:relative;opacity:1}.vis-course-row.muted:hover{opacity:.85}.vis-course-row.active{border-color:var(--ink)}.vis-course-row.muted{opacity:.55}.vis-course-mark{font-family:var(--mono);font-size:9.5px;font-weight:700;background:var(--bg2);padding:2px 5px;border-radius:3px;color:var(--ink)}.vis-course-row.active .vis-course-mark{background:var(--ink);color:var(--bg)}.vis-course-status{font-family:var(--mono);font-size:8.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--green, #2c7a4a)}.vis-course-row.muted .vis-course-status{color:var(--ink3)}.landing-section-centered,.landing-section-centered .landing-section-title{text-align:center}.landing-section-centered .landing-section-sub{max-width:640px;margin:0 auto 28px;text-align:center;line-height:1.55}.landing-section-centered .landing-courses-detailed{text-align:left}.landing-courses-detailed{display:grid;grid-template-columns:repeat(auto-fit,minmax(440px,1fr));gap:18px;max-width:1280px;margin:0 auto}.landing-course-tabswrap{display:flex;flex-direction:column;gap:36px;max-width:1100px;margin:0 auto;text-align:left}.landing-course-tabs{display:flex;gap:14px;flex-wrap:nowrap;justify-content:center}.landing-course-tab{display:inline-flex;align-items:center;gap:16px;padding:18px 32px;min-width:0;flex:1 1 0;justify-content:flex-start;background:var(--bg-card);border:2px solid transparent;border-radius:22px;cursor:pointer;font:inherit;font-family:var(--sans);font-size:18px;font-weight:600;color:var(--ink2);position:relative;box-shadow:0 4px 14px -8px #0000002e;transition:background .18s,color .18s,border-color .18s,transform .18s,box-shadow .18s}.landing-course-tab .landing-course-tab-name{flex:1 1 auto}.landing-course-tab:hover{transform:translateY(-2px);box-shadow:0 12px 28px -10px #00000038}.landing-course-tab-0003{background:linear-gradient(135deg,#eef2ff,#dbe7fb);color:#1e3a8a;border-color:#c7d8f4}.landing-course-tab-0003:hover{border-color:#2563eb;color:#11317a}.landing-course-tab-0003.is-active{background:linear-gradient(135deg,#2563eb,#1d4ed8);color:#fff;border-color:#1e40af;box-shadow:0 14px 30px -10px #2563eb8c}.landing-course-tab-0002{background:linear-gradient(135deg,#fff1f2,#fde2e2);color:#7a1212;border-color:#f4cfcf}.landing-course-tab-0002:hover{border-color:#dc2626;color:#7a1212}.landing-course-tab-0002.is-active{background:linear-gradient(135deg,#dc2626,#b91c1c);color:#fff;border-color:#991b1b;box-shadow:0 14px 30px -10px #dc26268c}.landing-course-tab-mark{font-family:var(--mono);font-size:14px;font-weight:800;letter-spacing:.06em;background:#ffffffa6;padding:6px 10px;border-radius:8px;color:inherit}.landing-course-tab.is-active .landing-course-tab-mark{background:#ffffff2e;color:#fff}.landing-course-tab-name{letter-spacing:-.01em;white-space:nowrap}.landing-course-tab-tag{font-family:var(--mono);font-size:9.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:3px 12px;border-radius:999px;background:#ffffff8c;color:inherit;border:1px solid currentColor;white-space:nowrap;flex:0 0 auto}.landing-course-tab.is-active .landing-course-tab-tag{background:#ffffff38;border-color:#fff6;color:#fff}@media (max-width: 540px){.landing-course-tab{padding:12px 16px;font-size:15px}.landing-course-tab-tag{display:none}}.landing-course-showcase{background:var(--bg-card);border:1px solid var(--border);border-radius:14px;padding:22px 26px;box-shadow:var(--shadow-sm);max-width:760px;margin:0 auto}.landing-course-tabswrap>.landing-course-tabs{max-width:1100px;margin-left:auto;margin-right:auto}.landing-course-showcase .landing-course-detail{background:transparent;border:0;padding:0;border-radius:0;box-shadow:none}.landing-course-showcase .landing-course-detail-headtext h3{white-space:normal;overflow:visible;text-overflow:clip;font-size:19px}.landing-course-showcase .landing-course-stats{flex-wrap:wrap;overflow:visible;gap:6px}.landing-course-showcase .landing-course-stat{font-size:10.5px;padding:3.5px 9px}.landing-course-showcase .landing-slots-row{flex-wrap:wrap}.landing-course-showcase .landing-slot-active-title-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:15px;font-weight:600;display:block;margin-top:6px;flex:1 1 auto;min-width:0}.landing-course-showcase .landing-slots-pills-with-title{flex-wrap:nowrap;min-width:0}.landing-course-showcase .landing-slot-tryanswer .try-answer{padding:16px 18px}.landing-course-showcase .landing-slot-tryanswer .try-step-prompt{font-size:14px}.landing-course-detail{background:var(--bg-card);border:1px solid var(--border);border-radius:14px;padding:14px 16px}.landing-course-detail-head{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;margin-bottom:10px}.landing-course-detail-headtext{min-width:0}.landing-course-detail-headtext h3{margin:0 0 4px;font-family:var(--display);font-size:15.5px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.landing-course-stats{display:flex;flex-wrap:nowrap;gap:5px;overflow:hidden}.landing-course-stat{font-family:var(--mono);font-size:9.5px;font-weight:700;letter-spacing:.02em;padding:3px 7px;border-radius:999px;border:1px solid;text-transform:uppercase;white-space:nowrap;flex:0 0 auto;cursor:default;display:inline-flex;align-items:center}.landing-course-panel{background:var(--bg2);border:1px solid var(--border);border-radius:10px;padding:16px 18px;display:flex;flex-direction:column;gap:8px}.landing-course-panel h4{margin:0;font-family:var(--display);font-size:17px;font-weight:600;color:var(--ink)}.landing-course-panel p{margin:0;color:var(--ink2);font-size:13.5px;line-height:1.55}.landing-course-panel ul{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:4px;color:var(--ink2);font-size:13.5px}.landing-course-papers{display:flex;flex-wrap:wrap;gap:6px}.landing-course-paper-pill{font-family:var(--mono);font-size:11px;font-weight:700;padding:5px 10px;border-radius:6px;background:#e0f2fe;border:1px solid #0284c7;color:#0c4a6e}.landing-course-stat.stat-year{background:#ede4fb;border-color:#7c3aed;color:#4a1ea0}.landing-course-stat.stat-topic-logic{background:#dbe7fb;border-color:#2563eb;color:#11317a}.landing-course-stat.stat-topic-c{background:#fde2e2;border-color:#dc2626;color:#7a1212}.landing-course-stat.stat-lectures{background:#fef3c7;border-color:#f59e0b;color:#5a3f00}.landing-course-stat.stat-slots{background:#dcfce7;border-color:#16a34a;color:#14532d}.landing-course-stat.stat-papers{background:#e0f2fe;border-color:#0284c7;color:#0c4a6e}.landing-course-stage{display:block}.landing-course-dashboard{display:flex;flex-direction:column;gap:14px}.landing-course-dashboard-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.landing-course-panel-compact{padding:12px 14px;gap:8px}.landing-course-panel-h{margin:0;font-family:var(--display);font-size:13px;font-weight:600;color:var(--ink)}.landing-course-compact-groups{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.landing-course-compact-groups li{display:flex;justify-content:space-between;font-size:11.5px;font-family:var(--mono);color:var(--ink2);padding:4px 6px;border-radius:4px;background:var(--bg2)}.landing-course-compact-group-name{font-weight:600}.landing-course-compact-group-count{color:var(--ink3)}.landing-papers-mini{display:flex;flex-direction:column;gap:2px;font-family:var(--mono);font-size:9px}.landing-papers-mini-head,.landing-papers-mini-row{display:grid;grid-template-columns:22px repeat(5,1fr);gap:2px;align-items:center}.landing-papers-mini-year{text-align:center;color:var(--ink3);font-weight:700}.landing-papers-mini-slot{font-weight:700;color:var(--ink3);text-align:right;padding-right:4px}.landing-papers-mini-cell{height:12px;border-radius:2px}.landing-papers-mini-cell.on{background:#16a34a}.landing-lectures-grid-mini{grid-template-columns:repeat(auto-fill,minmax(40px,1fr));gap:3px;margin-top:2px}.landing-lectures-grid-mini .landing-lec-chip{font-size:9px;padding:5px 3px;cursor:default}.landing-course-panel-lede{color:var(--ink2);font-size:13px;line-height:1.5}.landing-course-panel-foot{color:var(--ink3);font-size:11.5px;font-style:italic}.landing-year-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:6px}.landing-year-cell{background:var(--bg-card);border:1px solid var(--border);border-radius:8px;padding:12px 8px;display:flex;flex-direction:column;align-items:center;gap:4px}.landing-year-num{font-family:var(--display);font-size:22px;font-weight:700;color:var(--ink)}.landing-year-cap{font-family:var(--mono);font-size:10px;text-transform:uppercase;color:var(--ink3);letter-spacing:.06em}.landing-topic-tabs{display:flex;gap:6px;flex-wrap:wrap;margin-top:4px}.landing-topic-tab{display:inline-flex;align-items:center;gap:6px;font:inherit;font-family:var(--mono);font-size:11px;font-weight:700;padding:5px 9px;border-radius:6px;border:1px solid var(--border);background:var(--bg-card);color:var(--ink2);cursor:pointer;transition:background .15s,color .15s,border-color .15s}.landing-topic-tab:hover{color:var(--ink);border-color:var(--ink)}.landing-topic-tab.is-active{background:var(--ink);color:var(--ink-inverse);border-color:var(--ink)}.landing-topic-tab-count{font-size:9.5px;padding:1px 5px;border-radius:99px;background:#00000014;color:inherit}.landing-topic-tab.is-active .landing-topic-tab-count{background:#ffffff2e}.landing-topic-list{list-style:none;margin:6px 0 0;padding:0;display:grid;grid-template-columns:1fr;gap:4px;max-height:280px;overflow-y:auto}@media (min-width: 640px){.landing-topic-list{grid-template-columns:repeat(2,1fr)}}.landing-topic-item{display:flex;align-items:baseline;gap:8px;padding:6px 8px;border-radius:6px;background:var(--bg-card);border:1px solid var(--border)}.landing-topic-item-num{font-family:var(--mono);font-size:10.5px;color:var(--ink3);font-weight:700;min-width:18px;flex:0 0 auto}.landing-topic-item-title{font-size:12.5px;color:var(--ink);line-height:1.4}.landing-lectures-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(56px,1fr));gap:4px;margin-top:4px}.landing-lec-chip{font:inherit;font-family:var(--mono);font-size:10px;font-weight:700;padding:8px 4px;border-radius:6px;border:1px solid var(--border);background:var(--bg-card);color:var(--ink2);cursor:pointer;transition:all .15s;text-transform:uppercase;letter-spacing:.04em}.landing-lec-chip:hover{transform:translateY(-1px)}.landing-lec-chip-logic{color:#11317a;border-color:#c7d8f4;background:#f0f5fc}.landing-lec-chip-logic.is-active{background:#2563eb;color:#fff;border-color:#2563eb}.landing-lec-chip-automata{color:#7a1212;border-color:#f4cfcf;background:#fdf3f3}.landing-lec-chip-automata.is-active{background:#dc2626;color:#fff;border-color:#dc2626}.landing-lec-chip-c{color:#7a1212;border-color:#f4cfcf;background:#fdf3f3}.landing-lec-chip-c.is-active{background:#dc2626;color:#fff;border-color:#dc2626}.landing-lec-chip-haskell{color:#4a1ea0;border-color:#d8c8f6;background:#f4eefc}.landing-lec-chip-haskell.is-active{background:#7c3aed;color:#fff;border-color:#7c3aed}.landing-lec-preview{margin-top:8px;padding:10px 12px;background:var(--bg-card);border:1px solid var(--border);border-radius:8px;display:flex;flex-direction:column;gap:4px}.landing-lec-preview-tag{font-family:var(--mono);font-size:10.5px;font-weight:700;color:var(--ink3);text-transform:uppercase;letter-spacing:.06em}.landing-lec-preview-title{font-size:14px;font-weight:600;color:var(--ink)}.landing-papers-grid{display:grid;grid-template-columns:56px repeat(5,1fr);gap:3px;margin-top:6px;background:var(--bg-card);border:1px solid var(--border);border-radius:8px;padding:10px}.landing-papers-grid-corner{background:transparent}.landing-papers-year{font-family:var(--mono);font-size:11px;font-weight:700;color:var(--ink3);text-align:center;display:flex;align-items:center;justify-content:center}.landing-papers-slot{font-family:var(--mono);font-size:10.5px;font-weight:700;color:var(--ink2);padding:0 6px;display:flex;align-items:center;justify-content:flex-end}.landing-papers-cell{border:1px solid transparent;border-radius:4px;background:var(--bg2);height:26px;cursor:pointer;transition:background .15s,transform .15s,border-color .15s;font:inherit}.landing-papers-cell.on{background:#16a34a}.landing-papers-cell.on:hover,.landing-papers-cell.is-hover{transform:scale(1.06);border-color:var(--ink);z-index:1}.landing-papers-preview{margin-top:8px;padding:10px 12px;background:var(--bg-card);border:1px solid var(--border);border-radius:8px;display:flex;flex-direction:column;gap:4px}.landing-papers-preview-tag{font-family:var(--mono);font-size:10.5px;font-weight:700;color:var(--ink3);text-transform:uppercase;letter-spacing:.06em}.landing-papers-preview-title{font-size:14px;font-weight:600;color:var(--ink)}.landing-course-detail-mark{width:48px;height:48px;border-radius:12px;display:grid;place-items:center;background:var(--ink);color:var(--bg);font-family:var(--display);font-weight:700;font-size:16px;letter-spacing:.02em;flex-shrink:0}.landing-course-detail-head h3{margin:0;font-family:var(--display);font-size:17px;color:var(--ink)}.landing-course-detail-meta{margin:4px 0 0;color:var(--ink3);font-size:12.5px;font-family:var(--mono)}.landing-course-detail-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:14px}.landing-course-detail-stats>div{background:var(--bg2);border-radius:8px;padding:10px 8px;text-align:center;display:flex;flex-direction:column}.landing-course-detail-stats strong{font-family:var(--display);font-size:22px;color:var(--ink)}.landing-course-detail-stats span{font-family:var(--mono);font-size:10.5px;color:var(--ink3);margin-top:2px;letter-spacing:.04em}.landing-course-detail-prose{color:var(--ink2);line-height:1.55;font-size:13.5px;margin:0 0 14px}.landing-slots-explorer--minimal{display:flex;flex-direction:column;gap:8px}.landing-slots-pills-with-title{display:flex;align-items:center;gap:10px;flex-wrap:nowrap;min-width:0}.landing-slots-explorer--minimal .landing-slots-row{display:flex;flex-wrap:nowrap;gap:4px;flex-shrink:0}.landing-slot-active-title-text{font-family:var(--display);font-size:13.5px;font-weight:600;color:var(--ink);min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.landing-title-narrative{position:relative}.landing-title-narrative .landing-title-pain,.landing-title-narrative .landing-title-gain{display:inline-block;cursor:help;outline:none;position:relative;z-index:1}.landing-title-narrative .landing-title-pain:hover,.landing-title-narrative .landing-title-pain:focus-visible,.landing-title-narrative .landing-title-gain:hover,.landing-title-narrative .landing-title-gain:focus-visible{z-index:40}.landing-title-pain-inner,.landing-title-gain-inner{display:inline-block;transition:transform .35s cubic-bezier(.34,1.56,.64,1)}.landing-title-narrative .landing-title-pain:hover .landing-title-pain-inner,.landing-title-narrative .landing-title-pain:focus-visible .landing-title-pain-inner,.landing-title-narrative .landing-title-gain:hover .landing-title-gain-inner,.landing-title-narrative .landing-title-gain:focus-visible .landing-title-gain-inner{transform:translateY(-2px)}.landing-title-narrative .landing-title-pain .landing-title-strike{text-decoration:line-through;text-decoration-thickness:4px;text-decoration-color:var(--ink2);color:var(--ink3);transition:text-decoration-color .3s ease,color .3s ease}.landing-title-narrative .landing-title-pain:hover .landing-title-strike,.landing-title-narrative .landing-title-pain:focus-visible .landing-title-strike{text-decoration-color:transparent;color:var(--red)}.landing-title-narrative .landing-title-gain em{position:relative;z-index:1}.landing-title-narrative .landing-title-gain:after{content:"";position:absolute;left:0;right:0;bottom:4px;height:10px;background:var(--amber);opacity:0;transform:scaleX(0);transform-origin:left;transition:opacity .25s ease,transform .55s cubic-bezier(.34,1.56,.64,1);z-index:0;border-radius:3px}.landing-title-narrative .landing-title-gain:hover:after,.landing-title-narrative .landing-title-gain:focus-visible:after{opacity:.35;transform:scaleX(1)}.landing-title-tip{display:block;position:absolute;z-index:200;top:100%;left:0;margin-top:0;width:min(460px,calc(100vw - 32px));max-width:100%;padding:14px 16px;background:var(--bg-card);border:1px solid transparent;border-radius:12px;box-shadow:0 18px 48px #0000;font-family:var(--sans);font-size:14px;font-weight:400;font-style:normal;color:var(--ink);line-height:1.5;letter-spacing:0;opacity:0;pointer-events:none;transform:translateY(-6px);transition:opacity .18s ease,transform .22s cubic-bezier(.22,1,.36,1),border-color .22s ease,box-shadow .22s ease}.landing-title-pain,.landing-title-gain{position:relative}.landing-title-pain.is-open,.landing-title-pain:hover,.landing-title-pain:focus-visible,.landing-title-gain.is-open,.landing-title-gain:hover,.landing-title-gain:focus-visible{z-index:150}.landing-title-tip:before{content:"";position:absolute;top:-7px;left:36px;right:auto;width:12px;height:12px;background:var(--bg-card);border-left:1px solid;border-top:1px solid;border-color:inherit;transform:rotate(45deg);opacity:0;transition:opacity .22s ease,border-color .22s ease}.landing-title-tip-pain:before{border-color:var(--red)}.landing-title-tip-gain:before{border-color:var(--green)}.landing-title-tip ul{margin:8px 0 0;padding:0 0 0 16px;display:flex;flex-direction:column;gap:4px}.landing-title-tip li{font-size:13.5px;color:var(--ink2)}.landing-title-tip-tag{font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink3);font-weight:600}.landing-title-tip-pain .landing-title-tip-tag{color:var(--red)}.landing-title-tip-gain .landing-title-tip-tag{color:var(--green)}.landing-title-tip-pain{border-color:var(--red)}.landing-title-tip-gain{border-color:var(--green)}.landing-title-pain:hover .landing-title-tip,.landing-title-pain:focus-visible .landing-title-tip,.landing-title-pain.is-open .landing-title-tip,.landing-title-gain:hover .landing-title-tip,.landing-title-gain:focus-visible .landing-title-tip,.landing-title-gain.is-open .landing-title-tip{opacity:1;pointer-events:auto;transform:translateY(0);border-color:var(--border);box-shadow:0 18px 48px #0000001f}.landing-title-pain-inner,.landing-title-gain-inner{display:inline}.landing-title-pain:hover .landing-title-tip-pain,.landing-title-pain:focus-visible .landing-title-tip-pain{border-color:var(--red)}.landing-title-gain:hover .landing-title-tip-gain,.landing-title-gain:focus-visible .landing-title-tip-gain{border-color:var(--green)}.landing-title-pain:hover .landing-title-tip:before,.landing-title-pain:focus-visible .landing-title-tip:before,.landing-title-gain:hover .landing-title-tip:before,.landing-title-gain:focus-visible .landing-title-tip:before{opacity:1}.landing-title-pain,.landing-title-gain{display:inline-flex;flex-direction:column;align-items:flex-start;position:relative;vertical-align:top;padding-bottom:14px;margin-bottom:-14px}@media (max-width: 980px){.landing-title-tip{display:none}}.landing-title-tip-rich{width:clamp(280px,26vw,360px);padding:10px 12px}.title-gain-demos{display:flex;flex-direction:column;gap:6px;margin-top:6px}.title-gain-demo{background:var(--bg2);border:1px solid var(--border-soft);border-radius:8px;padding:6px 8px;display:flex;flex-direction:column;gap:4px;transition:transform .18s ease,border-color .18s ease}.title-gain-demo:hover{transform:translate(2px);border-color:var(--green)}.title-gain-demo-head{display:flex;align-items:center;gap:6px}.title-gain-demo-num{display:inline-grid;place-items:center;width:16px;height:16px;border-radius:999px;background:var(--green);color:#fff;font-family:var(--mono);font-size:9.5px;font-weight:700}.title-gain-demo-title{font-family:var(--display);font-size:12px;font-weight:600;color:var(--ink)}.title-gain-demo-vis{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:10.5px}.tdemo-slide{font-family:var(--mono);font-size:11px;font-weight:700;background:var(--bg-card);border:1px solid var(--border);border-radius:6px;padding:6px 10px;color:var(--ink2)}.tdemo-arrow{font-family:var(--mono);font-size:14px;color:var(--ink3);font-weight:700}.tdemo-arrow-soft{color:var(--ink3);font-size:12px}.tdemo-concept{display:inline-flex;align-items:center;gap:8px;background:#ede4fb;border:1px solid #7c3aed;border-radius:6px;padding:5px 10px}.tdemo-concept-tag{font-family:var(--mono);font-size:10px;font-weight:700;color:#4a1ea0;letter-spacing:.04em}.tdemo-concept-text{font-size:12px;color:var(--ink)}.tdemo-matrix{gap:4px}.tdemo-cell{width:28px;height:28px;display:grid;place-items:center;border-radius:5px;font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.02em;border:1px solid var(--border)}.tdemo-cell-empty{background:var(--bg-card);color:var(--ink3)}.tdemo-cell-part{background:var(--dep-wash-amber);border-color:var(--amber);color:#5a3f00}.tdemo-cell-full{background:var(--green);border-color:var(--green);color:#fff}.tdemo-matrix-cap{font-family:var(--mono);font-size:10.5px;color:var(--ink3);margin-left:4px}.tdemo-pill{font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:4px 9px;border-radius:4px;border:1px solid}.tdemo-pill-unseen{background:var(--bg-card);border-color:var(--border);color:var(--ink3)}.tdemo-pill-reviewed{background:var(--amber-soft);border-color:var(--amber);color:#6a4a00}.tdemo-pill-confident{background:var(--green-bg);border-color:var(--green);color:var(--green)}.title-pain-demos{display:flex;flex-direction:column;gap:12px;margin-top:10px}.title-pain-demo{background:var(--bg2);border:1px solid var(--border-soft);border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:8px;transition:transform .18s ease,border-color .18s ease}.title-pain-demo:hover{transform:translate(2px);border-color:var(--red)}.title-pain-demo-head{display:flex;align-items:center;gap:8px}.title-pain-demo-num{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:999px;background:var(--red);color:#fff;font-family:var(--mono);font-size:11px;font-weight:700}.title-pain-demo-title{font-family:var(--display);font-size:13.5px;font-weight:600;color:var(--ink)}.title-pain-demo-vis{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.tdemo-pdf{font-family:var(--mono);font-size:11px;font-weight:700;background:var(--bg-card);border:1px dashed var(--border);border-radius:6px;padding:6px 10px;color:var(--ink3)}.tdemo-arrow-broken{color:var(--red);font-family:var(--mono);font-weight:700;font-size:13px}.tdemo-question{display:inline-flex;background:#fde2e2;border:1px solid var(--red);border-radius:6px;padding:5px 10px;font-family:var(--mono);font-size:11px;font-weight:700;color:#7a1212}.tdemo-cell-unknown{background:var(--bg-card);border-color:var(--border);color:var(--ink3)}.tdemo-blind-cap{font-family:var(--mono);font-size:10.5px;color:var(--red);margin-left:4px}.tdemo-jargon{gap:10px}.tdemo-formula{font-family:var(--mono);font-size:12px;color:var(--ink);background:var(--bg-card);border:1px solid var(--border);border-radius:6px;padding:6px 10px}.landing-page .landing-section{animation:landingSectionIn .7s cubic-bezier(.2,.8,.2,1) backwards}.landing-page .landing-section:nth-child(2){animation-delay:.05s}.landing-page .landing-section:nth-child(3){animation-delay:.1s}.landing-page .landing-section:nth-child(4){animation-delay:.15s}.landing-page .landing-section:nth-child(5){animation-delay:.2s}@keyframes landingSectionIn{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}.landing-hero-text>*{animation:heroIn .7s cubic-bezier(.2,.8,.2,1) backwards}.landing-hero-text>*:nth-child(1){animation-delay:.05s}.landing-hero-text>*:nth-child(2){animation-delay:.15s}.landing-hero-text>*:nth-child(3){animation-delay:.25s}.landing-hero-text>*:nth-child(4){animation-delay:.35s}.landing-hero-text>*:nth-child(5){animation-delay:.45s}@keyframes heroIn{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.landing-hero-card,.landing-hero-mealdeal{animation:heroCardIn .9s cubic-bezier(.2,.8,.2,1) backwards}.landing-hero-card-1{animation-delay:.55s}.landing-hero-card-2{animation-delay:.7s}.landing-hero-card-3{animation-delay:.85s}.landing-hero-mealdeal{animation-delay:1s}@keyframes heroCardIn{0%{opacity:0;transform:translateY(20px) rotate(0)}to{opacity:1}}@media (prefers-reduced-motion: reduce){.landing-page *,.landing-page *:before,.landing-page *:after{animation:none!important;transition:none!important}}.landing-foot-quip{font-family:var(--display);font-style:italic;font-size:24px;font-weight:500;color:var(--ink2);letter-spacing:-.01em;line-height:1.2}.landing-foot-bold{position:relative;background:var(--bg2);color:var(--ink);overflow:hidden;padding:0;margin-top:0;border-top:1px solid var(--border)}.landing-foot-bold-inner{position:relative;z-index:2;max-width:1200px;margin:0 auto;padding:96px 32px 56px;display:flex;flex-direction:column;gap:28px}.landing-foot-headline{font-family:var(--display);font-size:clamp(34px,5vw,64px);line-height:1.05;letter-spacing:-.02em;font-weight:600;color:var(--ink)}.landing-foot-headline-line{display:block}.landing-foot-headline-line+.landing-foot-headline-line{margin-top:6px}.landing-foot-strike{text-decoration:line-through;text-decoration-thickness:5px;text-decoration-color:var(--amber);color:var(--ink3);font-style:normal;margin-right:14px}.landing-foot-headline em{color:var(--amber);font-style:italic;font-weight:500;margin-right:12px}.landing-foot-headline-tail{color:var(--ink)}.landing-foot-quip-row{display:flex;flex-wrap:wrap;align-items:baseline;gap:14px;font-family:var(--display);font-style:italic;color:var(--ink2);font-size:26px}.landing-foot-bold .landing-foot-quip{color:var(--ink2);font-size:26px}.landing-foot-quip-aside{font-family:var(--mono);font-style:normal;font-size:16px;letter-spacing:.02em;color:var(--ink3)}.landing-foot-cta-row{display:flex;gap:18px;align-items:center;flex-wrap:wrap}.landing-foot-cta{font:inherit;font-family:var(--display);font-size:16px;font-weight:600;padding:14px 24px;background:var(--amber);color:var(--ink);border:0;border-radius:999px;cursor:pointer;transition:transform .15s ease,filter .15s}.landing-foot-cta:hover{transform:translateY(-2px);filter:brightness(1.05)}.landing-foot-cta-secondary{color:var(--ink2);text-decoration:none;font-family:var(--mono);font-size:13px;border-bottom:1px solid var(--border);padding-bottom:1px}.landing-foot-cta-secondary:hover{color:var(--amber);border-bottom-color:var(--amber)}.landing-foot-bottom{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px;padding-top:24px;border-top:1px solid var(--border);font-family:var(--mono);font-size:11.5px;color:var(--ink3);letter-spacing:.04em}.landing-foot-meta{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.landing-foot-links{display:flex;flex-wrap:wrap;gap:16px}.landing-foot-links a{color:var(--ink2);text-decoration:none}.landing-foot-links a:hover{color:var(--amber)}.landing-foot-bigword{position:absolute;left:0;right:0;bottom:-10vw;font-family:var(--display);font-weight:700;font-size:clamp(140px,22vw,320px);line-height:.85;letter-spacing:-.03em;text-align:center;color:#0000000a;pointer-events:none;-webkit-user-select:none;user-select:none;white-space:nowrap;z-index:1}:root[data-theme=dark] .landing-foot-bigword{color:#ffffff0d}.landing-foot-bigword-strike{text-decoration:line-through;text-decoration-thickness:14px;text-decoration-color:#f59e0b4d;color:inherit;margin-left:12px}.landing-roadmap-mini{display:flex;flex-wrap:wrap;gap:5px}.landing-roadmap-pill{font-family:var(--mono);font-size:10.5px;font-weight:700;background:var(--bg-card);border:1px solid var(--border);color:var(--ink3);padding:4px 7px;border-radius:4px}.landing-roadmap-pill.done{background:var(--green, #2c7a4a);color:#fff;border-color:var(--green, #2c7a4a)}.landing-roadmap-pill.active{background:var(--amber);color:#4a3a00;border-color:var(--amber)}.landing-slots-explorer{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:18px;align-items:start}.landing-slot-tryanswer{grid-column:1 / -1;margin-top:4px}.landing-slot-tryanswer .try-answer{margin:0;padding:10px 12px}.landing-slot-tryanswer .try-answer-head{margin-bottom:4px;gap:8px}.landing-slot-tryanswer .try-answer-title{font-size:13px;font-weight:700}.landing-slot-tryanswer .try-answer-step{font-size:9.5px}.landing-slot-tryanswer .try-answer-intro{display:none}.landing-slot-tryanswer .try-step{gap:8px}.landing-slot-tryanswer .try-step-prompt{font-size:12px;line-height:1.4}.landing-slot-tryanswer .try-blanks{padding:8px 10px;min-height:38px;gap:5px}.landing-slot-tryanswer .try-blank{min-width:32px;min-height:28px;padding:3px 7px;font-size:12px}.landing-slot-tryanswer .try-bank{gap:4px}.landing-slot-tryanswer .try-token{padding:4px 8px;font-size:12px}.landing-slot-tryanswer .try-actions{gap:8px}.landing-slot-tryanswer .try-btn{padding:5px 10px;font-size:12px}.landing-slot-tryanswer .try-verdict{font-size:11.5px}.landing-slot-tryanswer .try-explain{padding:8px 10px;gap:4px}.landing-slot-tryanswer .try-explain-label{font-size:9px}.landing-slot-tryanswer .try-explain-answer{font-size:12px;padding:2px 6px}.landing-slot-tryanswer .try-explain-body{font-size:12px;line-height:1.4}.landing-slot-detail{padding:10px 12px;min-height:0}.landing-slot-detail-head{margin-bottom:4px}.landing-slot-detail-title{font-size:13.5px}.landing-slot-detail-body{font-size:11.5px;line-height:1.4}.landing-slots-row{display:flex;flex-wrap:wrap;gap:6px;padding:4px 0}.landing-slot-pill{--slot-color: var(--purple);--slot-bg-soft: var(--purple-soft);display:inline-flex;align-items:center;gap:4px;font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.04em;background:var(--bg-card);border:1px solid var(--border);color:var(--ink2);padding:4px 8px;border-radius:6px;cursor:pointer;position:relative;overflow:hidden;transition:border-color .15s ease,transform .12s ease,background .15s ease,color .15s ease,box-shadow .15s ease}.landing-slot-pill[data-q="2"]{--slot-color: var(--teal);--slot-bg-soft: color-mix(in oklab, var(--teal) 14%, var(--bg-card))}.landing-slot-pill-q{font-size:8.5px;letter-spacing:.08em;color:var(--slot-color);opacity:.85;font-weight:800}.landing-slot-pill-letter{font-size:12px;font-weight:800;color:var(--ink);letter-spacing:0}.landing-slot-pill:hover{border-color:var(--slot-color);background:var(--slot-bg-soft);transform:translateY(-1px);box-shadow:0 2px 8px -4px var(--slot-color)}.landing-slot-pill.is-active{background:var(--slot-color);border-color:var(--slot-color);color:#fff;box-shadow:0 4px 12px -4px var(--slot-color)}.landing-slot-pill.is-active .landing-slot-pill-q,.landing-slot-pill.is-active .landing-slot-pill-letter{color:#fff}.landing-slot-pill.is-active .landing-slot-pill-q{opacity:.75}.landing-slot-pill.is-dim{opacity:.32;filter:saturate(.4)}.landing-slot-pill-shuffle{--slot-color: var(--amber);--slot-bg-soft: var(--amber-soft);font-size:14px;padding:4px 10px;border-style:dashed;color:var(--amber)}.landing-slot-pill-shuffle:hover{transform:translateY(-1px) rotate(90deg)}.landing-slot-detail{--slot-color: var(--purple);--slot-bg-soft: var(--purple-soft);background:linear-gradient(180deg,var(--slot-bg-soft) 0%,var(--bg-card) 60%);border:1px solid var(--border);border-left:3px solid var(--slot-color);border-radius:8px;padding:12px 14px;min-height:120px;position:relative;transition:border-color .2s ease,background .2s ease}.landing-slot-detail[data-q="2"]{--slot-color: var(--teal);--slot-bg-soft: color-mix(in oklab, var(--teal) 12%, var(--bg-card))}.landing-slot-detail-head{margin-bottom:8px;display:flex;flex-wrap:wrap;align-items:baseline;gap:8px}.landing-slot-detail-tag{display:inline-block;font-family:var(--mono);font-size:10px;letter-spacing:.08em;font-weight:800;background:var(--purple);color:#fff;padding:3px 8px;border-radius:4px;box-shadow:0 2px 6px -2px var(--purple)}.landing-slot-detail-tag[data-q="2"]{background:var(--teal);box-shadow:0 2px 6px -2px var(--teal)}.landing-slot-detail-marks{font-family:var(--mono);font-size:10.5px;font-weight:700;color:var(--amber);background:var(--amber-soft);padding:2px 7px;border-radius:3px;letter-spacing:.03em}.landing-slot-detail-title{margin:0;font-family:var(--display);font-size:15px;font-weight:600;color:var(--ink);line-height:1.3}.landing-slot-detail-pills{list-style:none;margin:0 0 8px;padding:0;display:flex;flex-wrap:wrap;gap:6px}.landing-slot-detail-pills li{font-family:var(--mono);font-size:10.5px;background:var(--bg2);color:var(--ink2);padding:3px 7px;border-radius:3px;letter-spacing:.03em}.landing-slot-detail-body{margin:0;color:var(--ink2);font-size:12.5px;line-height:1.45}.landing-slot-years{display:flex;flex-wrap:wrap;align-items:center;gap:5px;margin:0 0 10px}.landing-slot-year{font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.04em;padding:2px 6px;border-radius:3px;border:1px solid var(--border);background:var(--bg-card);color:var(--ink3);cursor:default;transition:transform .1s ease,border-color .15s ease,background .15s ease,color .15s ease}.landing-slot-year.is-on{background:linear-gradient(135deg,var(--green) 0%,color-mix(in oklab,var(--green) 70%,#fff) 100%);color:#fff;border-color:var(--green);box-shadow:0 1px 4px -1px var(--green)}.landing-slot-year.is-off{background:var(--bg2);color:var(--ink3);opacity:.65}.landing-slot-year.is-focus{transform:translateY(-1px);border-color:var(--amber);box-shadow:0 0 0 2px var(--amber-soft)}.landing-slot-year:hover{transform:translateY(-1px)}.landing-slot-year-hint{margin-left:4px;font-family:var(--mono);font-size:10.5px;color:var(--ink3);letter-spacing:.03em}@media (max-width: 700px){.landing-slots-explorer{grid-template-columns:1fr}}.landing-courses-foot{text-align:center;margin:24px auto 0;max-width:600px;color:var(--ink3);font-size:13.5px}.landing-pricing-mealdeal{background:var(--bg-card);border:1px solid var(--amber);border-left-width:4px;border-radius:10px;padding:14px 18px;font-family:var(--display);font-size:18px;color:var(--ink);margin:0 0 16px}.landing-pricing-mealdeal-eq{color:var(--amber);font-weight:700;margin-right:8px}.landing-pricing-mealdeal-fine{font-family:var(--sans);font-size:13px;color:var(--ink3);font-style:italic}.catalog-warn{background:var(--bg2);border:1px solid var(--border);border-left:3px solid var(--amber);padding:10px 14px;border-radius:8px;font-size:13.5px;color:var(--ink2);margin:0 0 16px}.catalog-warn a{color:var(--ink);text-decoration:underline}.try-answer{margin:22px 0;padding:18px 20px;background:var(--bg-card);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow-sm)}details.try-answer{padding:0;overflow:hidden}details.try-answer>summary.try-answer-head{list-style:none;cursor:pointer;margin:0;padding:14px 18px;border-bottom:1px solid transparent;transition:background .15s ease,border-color .15s ease}details.try-answer>summary.try-answer-head::-webkit-details-marker{display:none}details.try-answer[open]>summary.try-answer-head{border-bottom-color:var(--border)}details.try-answer>summary.try-answer-head:hover{background:var(--bg2)}details.try-answer>.try-answer-subhead,details.try-answer>.try-answer-intro,details.try-answer>.try-step,details.try-answer>.try-answer-empty-body{padding-left:18px;padding-right:18px}details.try-answer>.try-answer-subhead{padding-top:14px;padding-bottom:0}details.try-answer>.try-answer-intro{padding-top:12px}details.try-answer>.try-step{padding-bottom:18px}details.try-answer>.try-answer-empty-body{padding-top:14px;padding-bottom:16px;margin:0}.try-answer-toggle{flex:0 0 auto;font-size:12px;color:var(--ink3);transition:transform .18s ease,color .18s ease;margin-left:auto;font-family:var(--mono)}details.try-answer:not([open])>summary.try-answer-head .try-answer-toggle{transform:rotate(-90deg)}details.try-answer>summary.try-answer-head:hover .try-answer-toggle{color:var(--ink)}.try-answer-empty{background:var(--bg2);border-style:dashed;color:var(--ink2);font-size:13.5px}.try-answer-head{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;margin-bottom:8px}.try-answer-slotnav{display:inline-flex;gap:4px}.try-answer-slotnav-btn{width:30px;height:30px;display:inline-grid;place-items:center;border-radius:999px;border:1px solid var(--border);background:var(--bg-card);color:var(--ink2);font-family:var(--mono);font-size:18px;font-weight:700;cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease}.try-answer-slotnav-btn:hover:not(:disabled){background:var(--ink);color:var(--ink-inverse);border-color:var(--ink)}.try-answer-slotnav-btn:disabled{opacity:.4;cursor:default}.try-answer-title{margin:0;font-family:var(--display);font-weight:600;font-size:18px;color:var(--ink)}.try-answer-step{font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink3)}.try-answer-intro{margin:0 0 14px;color:var(--ink2);font-size:14px;line-height:1.5}.try-step{display:flex;flex-direction:column;gap:12px}.try-step-prompt{margin:0;font-size:14.5px;color:var(--ink);line-height:1.5}.try-blanks{display:flex;flex-wrap:wrap;gap:10px;padding:18px 20px;border-radius:10px;background:var(--bg2);border:1px dashed var(--border);min-height:76px;transition:background .18s ease,border-color .18s ease;align-items:center}.try-blanks.is-correct{background:var(--green-bg, #e6f4ec);border-color:var(--green, #2c7a4a)}.try-blanks.is-wrong{background:#fbe9e9;border-color:#c44b4b}.try-blank{min-width:72px;min-height:44px;padding:8px 14px;font-family:var(--mono);font-size:15px;background:var(--bg-card);border:1.5px solid var(--border);border-radius:8px;cursor:pointer;color:var(--ink);flex:0 1 auto;transition:border-color .12s ease,transform .12s ease,background .12s ease}.try-blank.is-empty{border-style:dashed;color:var(--ink3);cursor:default}.try-blank.is-filled:hover:not(:disabled){border-color:var(--ink);transform:translateY(-1px)}.try-blank:disabled{cursor:default;opacity:.9}.try-blank-pin{color:var(--ink3)}.try-bank{display:flex;flex-wrap:wrap;gap:6px}.try-token{padding:7px 11px;font-family:var(--mono);font-size:13.5px;background:var(--bg-card);color:var(--ink);border:1.5px solid var(--border);border-radius:6px;cursor:pointer;transition:border-color .12s ease,transform .12s ease,background .12s ease}.try-token:hover:not(:disabled){border-color:var(--ink);transform:translateY(-1px)}.try-token.is-used{opacity:.35;cursor:default}.try-token:disabled:not(.is-used){opacity:.6;cursor:default}.try-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.try-btn{padding:8px 14px;border-radius:6px;border:1px solid var(--border);background:var(--bg-card);color:var(--ink);cursor:pointer;font-family:inherit;font-size:13.5px;font-weight:600;transition:border-color .12s ease,background .12s ease,transform .12s ease}.try-btn:hover:not(:disabled){border-color:var(--ink);transform:translateY(-1px)}.try-btn:disabled{opacity:.5;cursor:not-allowed}.try-btn-primary{background:var(--ink);color:var(--bg);border-color:var(--ink)}.try-btn-primary:hover:not(:disabled){background:#000}.try-verdict{font-family:var(--mono);font-size:13px;font-weight:700;letter-spacing:.04em}.try-verdict.correct{color:var(--green, #2c7a4a)}.try-verdict.wrong{color:#c44b4b}.try-explain{margin-top:6px;padding:12px 14px;background:var(--bg2);border-left:3px solid var(--ink);border-radius:0 6px 6px 0;display:flex;flex-direction:column;gap:8px}.try-explain-row{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.try-explain-label{font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink3);font-weight:700}.try-explain-answer{font-family:var(--mono);font-size:13.5px;color:var(--ink);background:var(--bg-card);padding:4px 8px;border-radius:4px;border:1px solid var(--border)}.try-explain-body{margin:0;color:var(--ink2);font-size:13.5px;line-height:1.55}.next-step-card{display:flex;flex-direction:column;gap:6px;width:100%;margin:28px 0 0;padding:18px 22px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);text-align:left;cursor:pointer;transition:transform .15s ease,border-color .15s ease,background .15s ease,box-shadow .15s ease}.next-step-card:hover{transform:translateY(-1px);border-color:var(--ink);background:color-mix(in srgb,var(--bg-card) 92%,var(--ink));box-shadow:var(--shadow-md)}.next-step-card:active{transform:translateY(0)}.next-step-eyebrow{font-family:var(--mono);font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink3)}.next-step-row{display:flex;align-items:flex-start;flex-wrap:wrap;gap:10px;font-family:var(--display);font-size:19px;font-weight:600;letter-spacing:-.01em;color:var(--ink);line-height:1.2}.next-step-row .next-step-arrow{margin-left:auto}.next-step-tag{display:inline-flex;align-items:center;padding:3px 8px;border-radius:6px;font-family:var(--mono);font-size:12px;font-weight:700;letter-spacing:.04em;background:var(--bg2);color:var(--ink2);border:1px solid var(--border)}.next-step-tag-lec{background:color-mix(in srgb,var(--blue, #2563eb) 12%,transparent);color:var(--blue, #2563eb);border-color:color-mix(in srgb,var(--blue, #2563eb) 35%,transparent)}.next-step-tag-concept{background:color-mix(in srgb,var(--amber) 14%,transparent);color:#8a5800;border-color:color-mix(in srgb,var(--amber) 45%,transparent)}.next-step-label{flex:1 1 auto;min-width:0}.next-step-arrow{color:var(--ink2);flex-shrink:0}.next-step-card:hover .next-step-arrow{color:var(--ink);transform:translate(2px);transition:transform .15s,color .15s}.next-step-sub{font-family:var(--sans);font-size:13.5px;color:var(--ink2);line-height:1.45}.next-step-card-all-done{background:color-mix(in srgb,var(--green) 8%,var(--bg-card));border-color:color-mix(in srgb,var(--green) 35%,var(--border))}.next-step-card-all-done .next-step-eyebrow{color:var(--green)}.next-step-card-self-test{background:color-mix(in srgb,var(--amber) 7%,var(--bg-card));border-color:color-mix(in srgb,var(--amber) 35%,var(--border))}.next-step-card-self-test .next-step-eyebrow{color:#8a5800}.contact-page{max-width:640px;margin:0 auto;padding:24px 24px 40px;display:flex;flex-direction:column;gap:18px}.contact-eyebrow{font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink3)}.contact-title{font-family:var(--display);font-size:clamp(28px,4vw,40px);font-weight:600;letter-spacing:-.018em;line-height:1.15;margin:6px 0 12px;color:var(--ink)}.contact-lede{color:var(--ink2);font-size:16px;line-height:1.55;margin:0}.contact-direct{color:var(--ink2);font-size:14px;margin:6px 0 0}.contact-direct a{color:var(--amber);text-decoration:none;border-bottom:1px solid var(--amber)}.contact-direct a:hover{filter:brightness(1.08)}.contact-form{display:flex;flex-direction:column;gap:14px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:22px}.contact-field{display:flex;flex-direction:column;gap:6px}.contact-field span{font-family:var(--mono);font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--ink3)}.contact-field input,.contact-field textarea{font-family:var(--sans);font-size:15px;padding:10px 12px;background:var(--bg2);border:1px solid var(--border);border-radius:8px;color:var(--ink);resize:vertical}.contact-field input:focus,.contact-field textarea:focus{outline:none;border-color:var(--ink)}.contact-submit{align-self:flex-start;font-family:var(--display);font-style:italic;font-size:15px;font-weight:500;padding:10px 22px;border-radius:999px;background:var(--ink);color:var(--ink-inverse);border:0;cursor:pointer;transition:transform .15s ease,filter .15s ease}.contact-submit:hover{transform:translateY(-1px);filter:brightness(1.06)}.contact-fineprint{font-family:var(--mono);font-size:11.5px;color:var(--ink3);text-align:center}.widgets-preview{max-width:1100px;margin:24px auto 64px;padding:0 24px;display:flex;flex-direction:column;gap:28px}.widgets-preview-head h2{margin:0 0 4px;font-family:var(--display);font-size:28px;font-weight:600;letter-spacing:-.012em}.widgets-preview-head p{color:var(--ink2);margin:0;max-width:64ch;line-height:1.5}.widgets-preview-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(420px,1fr));gap:18px}.widgets-preview-card{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:18px;display:flex;flex-direction:column;gap:12px}.widgets-preview-title{margin:0;font-family:var(--mono);font-size:11.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink3)}.answer-mc-options{list-style:none;padding:0;margin:12px 0;display:flex;flex-direction:column;gap:8px}.answer-mc-opt{display:flex;align-items:center;gap:12px;padding:12px 14px;background:var(--bg-card);border:1.5px solid var(--border);border-radius:8px;text-align:left;cursor:pointer;width:100%;font:inherit;font-size:14.5px;color:var(--ink);transition:border-color .15s,background .15s,transform .12s}.answer-mc-opt:hover:not(:disabled){border-color:var(--ink);transform:translateY(-1px)}.answer-mc-opt:disabled{cursor:default}.answer-mc-opt.is-picked{border-color:var(--ink);background:var(--bg2)}.answer-mc-opt.is-correct{border-color:var(--green);background:var(--green-bg)}.answer-mc-opt.is-wrong{border-color:#c04020;background:#fbe9e9}.answer-mc-marker{width:18px;height:18px;border:1.5px solid var(--ink2);border-radius:50%;flex-shrink:0}.answer-mc-opt.is-picked .answer-mc-marker{background:var(--ink);border-color:var(--ink)}.answer-mc-opt.is-correct .answer-mc-marker{background:var(--green);border-color:var(--green)}.answer-mc-label{flex:1}.answer-truth-expr{font-family:var(--mono);font-size:14px;margin:6px 0 12px}.answer-truth-table{width:100%;border-collapse:collapse;font-family:var(--mono);font-size:14px}.answer-truth-table th,.answer-truth-table td{border:1px solid var(--border);padding:8px 10px;text-align:center}.answer-truth-table thead th{background:var(--bg2);color:var(--ink2);font-weight:700}.answer-truth-table tr.is-wrong td{background:#fbe9e9}.answer-truth-cell{width:32px;height:32px;border-radius:6px;border:1.5px solid var(--border);background:var(--bg-card);font:inherit;cursor:pointer}.answer-truth-cell:disabled{cursor:default;opacity:.95}.answer-truth-cell-true{background:var(--green-bg);border-color:var(--green);color:var(--green);font-weight:700}.answer-truth-cell-false{background:var(--bg2);border-color:var(--ink2);color:var(--ink);font-weight:700}.answer-truth-cell-empty{color:var(--ink3)}.answer-truth-correct{font-size:12px;margin-left:6px;color:var(--green)}.answer-ordered-list{list-style:none;padding:0;margin:12px 0;display:flex;flex-direction:column;gap:6px}.answer-ordered-row{display:grid;grid-template-columns:28px 1fr auto;gap:12px;align-items:center;padding:10px 12px;background:var(--bg-card);border:1.5px solid var(--border);border-radius:8px}.answer-ordered-row.is-correct{border-color:var(--green);background:var(--green-bg)}.answer-ordered-row.is-wrong{border-color:#c04020;background:#fbe9e9}.answer-ordered-num{font-family:var(--mono);font-size:12px;font-weight:700;color:var(--ink3);text-align:center}.answer-ordered-text{font-size:14px;color:var(--ink)}.answer-ordered-controls{display:inline-flex;gap:4px}.answer-ordered-controls button{width:26px;height:26px;border:1px solid var(--border);background:var(--bg-card);border-radius:4px;cursor:pointer;font-family:var(--mono);font-size:12px}.answer-ordered-controls button:disabled{opacity:.4;cursor:default}.answer-freetext-input{width:100%;font:inherit;font-size:14px;padding:12px 14px;background:var(--bg2);border:1px solid var(--border);border-radius:8px;resize:vertical}.answer-freetext-input:focus{outline:none;border-color:var(--ink)}.answer-freetext-model{margin-top:14px;padding:12px 14px;background:color-mix(in srgb,var(--green) 8%,var(--bg-card));border-left:3px solid var(--green);border-radius:0 8px 8px 0}.answer-freetext-model p{margin:0;line-height:1.55}.answer-freetext-checklist{margin-top:12px}.answer-freetext-checklist ul{list-style:none;padding:0;margin:8px 0 0;display:flex;flex-direction:column;gap:6px}.answer-freetext-check{display:flex;align-items:center;gap:10px;padding:8px 12px;background:var(--bg-card);border:1px solid var(--border);border-radius:6px;text-align:left;cursor:pointer;font:inherit;font-size:13.5px;color:var(--ink);width:100%}.answer-freetext-check span:first-child{display:inline-grid;place-items:center;width:18px;height:18px;border:1.5px solid var(--ink2);border-radius:4px;font-size:12px;font-weight:700;color:var(--green)}.answer-freetext-check.is-ticked{background:var(--green-bg);border-color:var(--green)}.answer-freetext-check.is-ticked span:first-child{background:var(--green);border-color:var(--green);color:#fff}.answer-freetext-label{font-family:var(--mono);font-size:11.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--ink3);margin-bottom:4px}.roadmap-streak{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;margin:0 0 14px;background:color-mix(in srgb,var(--amber) 18%,transparent);border:1px solid color-mix(in srgb,var(--amber) 40%,transparent);border-radius:999px;color:var(--ink);font-family:var(--mono);font-size:12.5px;letter-spacing:.04em;animation:streak-in .32s cubic-bezier(.34,1.56,.64,1)}.roadmap-streak strong{font-weight:700;color:var(--ink)}.roadmap-streak-flame{font-size:14px}@keyframes streak-in{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}.roadmap-chapter-li,.roadmap-milestone-li{list-style:none;position:relative;z-index:2}.roadmap-chapter:before{content:"";position:absolute;top:-8px;right:0;bottom:-8px;left:0;background:var(--bg);z-index:-1}.roadmap-chapter{position:relative}.roadmap-chapter{margin:24px 0 8px;padding:14px 20px;background:var(--bg2);border-left:4px solid var(--ink);border-radius:10px}.roadmap-q-list .roadmap-chapter-li:first-child .roadmap-chapter{margin-top:0}.roadmap-chapter.is-done{border-left-color:var(--green);background:color-mix(in srgb,var(--green) 6%,var(--bg2))}.roadmap-chapter-title{margin:0 0 4px;font-family:var(--display);font-size:22px;font-weight:600;letter-spacing:-.012em;color:var(--ink)}.roadmap-chapter-intro{margin:0;font-size:14px;line-height:1.5;color:var(--ink2);max-width:60ch}.roadmap-milestone{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;margin:8px 0 18px;background:color-mix(in srgb,var(--green) 14%,transparent);border:1px solid color-mix(in srgb,var(--green) 38%,transparent);color:var(--green);border-radius:999px;font-family:var(--display);font-style:italic;font-size:14px;font-weight:500}.roadmap-reuse-recall{background:color-mix(in srgb,var(--green) 12%,transparent);border-color:color-mix(in srgb,var(--green) 35%,transparent);color:var(--green)}.roadmap-callout-li{list-style:none;position:relative;z-index:2}.roadmap-callout{display:flex;align-items:center;gap:12px;padding:12px 16px;margin:8px 0 14px;background:color-mix(in srgb,var(--green) 8%,var(--bg-card));border:1px solid color-mix(in srgb,var(--green) 35%,var(--border));border-left:4px solid var(--green);border-radius:10px;animation:roadmap-callout-in .32s cubic-bezier(.34,1.56,.64,1)}.roadmap-callout-emoji{font-size:18px}.roadmap-callout-text{flex:1;font-size:14px;line-height:1.45;color:var(--ink)}.roadmap-callout-cta{font-family:var(--display);font-style:italic;font-size:13.5px;font-weight:500;padding:7px 14px;background:var(--ink);color:var(--ink-inverse);border:0;border-radius:999px;cursor:pointer;transition:filter .15s ease,transform .15s ease}.roadmap-callout-cta:hover{filter:brightness(1.06);transform:translateY(-1px)}.roadmap-callout-dismiss{background:transparent;border:0;font-size:18px;line-height:1;color:var(--ink3);cursor:pointer;padding:0 4px}.roadmap-callout-dismiss:hover{color:var(--ink)}@keyframes roadmap-callout-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion: reduce){.roadmap-callout{animation:none}}.mastery-toast{position:fixed;bottom:24px;right:24px;z-index:200;min-width:280px;max-width:360px;display:flex;align-items:flex-start;gap:12px;padding:12px 14px;background:var(--bg-card);border:1px solid var(--border);border-left:4px solid var(--ink);border-radius:10px;box-shadow:0 16px 40px #00000029;animation:mastery-toast-in .22s cubic-bezier(.34,1.56,.64,1)}.mastery-toast-confident{border-left-color:var(--green)}.mastery-toast-reviewed{border-left-color:var(--amber)}.mastery-toast-unseen{border-left-color:var(--ink3)}.mastery-toast-pill{font-family:var(--mono);font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink2);background:var(--bg2);padding:4px 8px;border-radius:4px;flex-shrink:0;margin-top:1px}.mastery-toast-confident .mastery-toast-pill{background:var(--green-bg);color:var(--green)}.mastery-toast-reviewed .mastery-toast-pill{background:color-mix(in srgb,var(--amber) 22%,transparent);color:#6a4a00}.mastery-toast-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.mastery-toast-label{font-family:var(--display);font-size:14.5px;font-weight:600;color:var(--ink);line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mastery-toast-blurb{font-size:12.5px;color:var(--ink2)}.mastery-toast-close{background:transparent;border:0;color:var(--ink3);font-size:18px;line-height:1;cursor:pointer;padding:0;margin-left:4px}.mastery-toast-close:hover{color:var(--ink)}@keyframes mastery-toast-in{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion: reduce){.mastery-toast{animation:none}}.notifications-empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;padding:56px 32px;border:1px dashed var(--border);border-radius:14px;background:var(--bg2);color:var(--ink2)}.notifications-empty-icon{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;background:var(--bg-card);border:1px solid var(--border);color:var(--ink3);margin-bottom:4px}.notifications-empty-title{margin:0;font-family:var(--display);font-size:22px;font-weight:600;color:var(--ink)}.notifications-empty-sub{margin:0 0 8px;max-width:360px;line-height:1.5}.notifications-empty-cta{font-family:var(--display);font-style:italic;font-size:14.5px;font-weight:500;padding:9px 18px;border-radius:999px;background:var(--ink);color:var(--ink-inverse);border:0;cursor:pointer;transition:transform .14s ease,filter .14s ease}.notifications-empty-cta:hover{transform:translateY(-1px);filter:brightness(1.06)}.notifications-error{display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:8px;background:#dc262614;border:1px solid rgba(220,38,38,.4);color:var(--red);font-size:13.5px;margin-bottom:12px}.notifications-error button{margin-left:auto;background:transparent;border:0;color:var(--red);font-size:18px;line-height:1;cursor:pointer}.notifications-skeleton .skeleton{display:grid;grid-template-columns:36px 1fr 64px;gap:12px;align-items:center;padding:12px 14px}.skeleton-avatar{width:36px;height:36px;border-radius:50%;background:linear-gradient(90deg,var(--bg2) 25%,var(--bg-card) 50%,var(--bg2) 75%);background-size:200% 100%;animation:skeleton-shimmer 1.1s linear infinite}.skeleton-line{height:12px;border-radius:4px;background:linear-gradient(90deg,var(--bg2) 25%,var(--bg-card) 50%,var(--bg2) 75%);background-size:200% 100%;animation:skeleton-shimmer 1.1s linear infinite}.skeleton-line.short{width:60px}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.app-foot{grid-column:1 / -1;margin-top:48px;padding:24px 24px 28px;background:var(--bg2);border-top:1px solid var(--border);display:flex;flex-direction:column;gap:12px}.app-foot-row{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;flex-wrap:wrap}.app-foot-brand-col{display:flex;flex-direction:column;gap:6px;min-width:0}.app-foot-brand{background:transparent;border:0;padding:0;display:inline-flex;align-items:center;gap:10px;font-family:var(--display);font-style:italic;font-size:22px;font-weight:400;letter-spacing:-.018em;color:var(--ink);cursor:pointer;line-height:1}.app-foot-brand:hover{color:var(--amber)}.app-foot-brand:hover .app-foot-mark{transform:rotate(-3deg)}.app-foot-mark{height:56px;width:auto;flex:0 0 auto;transition:transform .18s ease;mix-blend-mode:multiply}:root[data-theme=dark] .app-foot-mark{filter:invert(1);mix-blend-mode:screen}.app-foot-brand-name{display:inline-flex;align-items:baseline;gap:.18em}.app-foot-brand-better{font-weight:400}.app-foot-brand-moodle{margin-left:-.06em}.app-foot-fine{font-family:var(--display);font-style:italic;font-size:14px;color:var(--ink2);line-height:1.5}.app-foot-fine-aside{font-family:var(--mono);font-style:normal;font-size:11.5px;color:var(--ink3);letter-spacing:.02em;margin-left:4px}.app-foot-links{display:flex;gap:14px;align-items:center;flex-wrap:wrap;font-family:var(--mono);font-size:11.5px;letter-spacing:.04em;text-transform:uppercase}.app-foot-links a,.app-foot-signout{color:var(--ink2);text-decoration:none;background:transparent;border:0;padding:0;font:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer}.app-foot-links a:hover,.app-foot-signout:hover{color:var(--amber)}.app-foot-meta{font-family:var(--mono);font-size:11px;color:var(--ink3);letter-spacing:.04em;text-transform:uppercase;display:flex;justify-content:space-between;align-items:center;gap:12px}.app-foot-landing{font-family:var(--mono);font-size:10px;color:var(--ink3);letter-spacing:.04em;text-transform:uppercase;text-decoration:none;opacity:.55;transition:opacity .15s,color .15s}.app-foot-landing:hover{opacity:1;color:var(--ink)}@media (max-width: 720px){.app-foot-row{flex-direction:column;gap:14px}}.landing-section#pricing>.pricing-mealdeal{max-width:810px}.pricing-mealdeal{display:grid;grid-template-columns:1.2fr 1fr;gap:22px;max-width:810px;margin:24px auto 0;padding:22px 28px;background:linear-gradient(135deg,#fff7ed,#fef3c7 60%,#fde68a);border:1px solid #fcd34d;border-radius:16px;box-shadow:0 24px 48px -24px #f59e0b80;align-items:center}.pricing-mealdeal-side{display:flex;flex-direction:column;gap:14px}.pricing-mealdeal-tag{align-self:flex-start;font-family:var(--mono);font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:6px 14px;border-radius:999px;background:#ffffffa6;color:#92400e;border:1px solid #f59e0b}.pricing-mealdeal-price{display:flex;align-items:baseline;gap:4px;font-family:var(--display);color:var(--ink)}.pricing-mealdeal-currency{font-size:30px;font-weight:700}.pricing-mealdeal-amount{font-size:64px;font-weight:800;line-height:1;letter-spacing:-.02em}.pricing-mealdeal-per{font-family:var(--mono);font-size:14px;color:var(--ink2);margin-left:6px}.pricing-mealdeal-bullets{margin:0;padding:0 0 0 22px;display:flex;flex-direction:column;gap:6px;font-family:var(--display);font-size:17px;font-weight:700;color:#b45309;line-height:1.3;letter-spacing:-.01em}.pricing-mealdeal-bullets li::marker{color:#f59e0b;font-weight:700}.pricing-mealdeal-bullets li::marker{color:#f59e0b}.pricing-mealdeal-cta{align-self:flex-start;font:inherit;font-size:14px;font-weight:600;padding:10px 20px;border-radius:999px;border:0;background:var(--ink);color:var(--ink-inverse);cursor:pointer;margin-top:4px;transition:background .15s ease,transform .15s ease,box-shadow .15s ease}.pricing-mealdeal-cta:hover{background:#000;transform:translateY(-1px);box-shadow:0 12px 28px -10px #00000059}.pricing-mealdeal-compare{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center}.pricing-mealdeal-eq{font-family:var(--sans);font-size:160px;font-weight:600;color:#92400e;line-height:.6;letter-spacing:-.04em;margin:-18px 0 18px;padding:0}.pricing-mealdeal-compare img{width:220px;height:auto;max-height:180px;object-fit:contain;filter:drop-shadow(0 12px 28px rgba(0,0,0,.18))}.pricing-mealdeal-compare-text{display:flex;flex-direction:column;gap:2px}.pricing-mealdeal-compare-line{font-family:var(--display);font-size:28px;font-weight:700;color:var(--ink);letter-spacing:-.01em}.pricing-mealdeal-compare-foot{font-family:var(--mono);font-size:16px;color:var(--ink2);font-style:italic}@media (max-width: 720px){.pricing-mealdeal{grid-template-columns:1fr;padding:24px;gap:20px}.pricing-mealdeal-amount{font-size:52px}.pricing-mealdeal-compare img{width:160px}}.onb-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#0f172a8c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:grid;place-items:center;padding:20px;animation:onb-fade-in .18s ease-out}@keyframes onb-fade-in{0%{opacity:0}to{opacity:1}}.onb-card{background:var(--bg-card);border-radius:22px;box-shadow:0 30px 80px -20px #0006;width:100%;max-width:720px;overflow:hidden;display:flex;flex-direction:column;position:relative;animation:onb-slide-up .25s cubic-bezier(.22,1,.36,1)}@keyframes onb-slide-up{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.onb-close{position:absolute;top:12px;right:14px;width:32px;height:32px;border:0;border-radius:999px;background:#0000000f;color:var(--ink2);font-size:22px;line-height:1;cursor:pointer;z-index:2;transition:background .15s,color .15s}.onb-close:hover{background:#0000001f;color:var(--ink)}.onb-visual{height:240px;display:grid;place-items:center;background:linear-gradient(135deg,#f1f5f9,#e0e7ff);padding:28px}.onb-visual-roadmap{background:linear-gradient(135deg,#fef3c7,#fed7aa)}.onb-visual-lectures{background:linear-gradient(135deg,#dbe7fb,#c7d2fe)}.onb-visual-concepts{background:linear-gradient(135deg,#ede4fb,#ddd6fe)}.onb-visual-questions{background:linear-gradient(135deg,#dcfce7,#bbf7d0)}.onb-visual-mastery{background:linear-gradient(135deg,#fce7f3,#fbcfe8)}.onb-visual-account{background:linear-gradient(135deg,#e0f2fe,#bae6fd)}.onb-body{padding:28px 36px 8px;display:flex;flex-direction:column;gap:10px}.onb-step{font-family:var(--mono);font-size:10.5px;font-weight:700;color:var(--ink3);text-transform:uppercase;letter-spacing:.08em}.onb-title{margin:0;font-family:var(--display);font-size:28px;font-weight:700;color:var(--ink);letter-spacing:-.01em}.onb-text{margin:0;color:var(--ink2);font-size:15.5px;line-height:1.55}.onb-cta{align-self:flex-start;margin-top:6px;font:inherit;font-size:12.5px;font-weight:600;padding:7px 14px;border-radius:999px;border:1px solid var(--ink);background:var(--bg-card);color:var(--ink);cursor:pointer;transition:background .15s,color .15s}.onb-cta:hover{background:var(--ink);color:var(--ink-inverse)}.onb-foot{display:flex;justify-content:space-between;align-items:center;padding:18px 36px 26px;gap:16px}.onb-dots{display:inline-flex;gap:6px}.onb-dot{width:7px;height:7px;border-radius:999px;border:0;background:var(--bg2);cursor:pointer;padding:0;transition:background .15s,transform .15s}.onb-dot:hover{background:var(--ink3)}.onb-dot.is-active{background:var(--ink);transform:scale(1.3)}.onb-actions{display:inline-flex;gap:8px}.onb-btn{font:inherit;font-size:13px;font-weight:500;padding:7px 14px;border-radius:999px;border:1px solid var(--border);background:var(--bg-card);color:var(--ink2);cursor:pointer;transition:background .15s,color .15s,border-color .15s}.onb-btn:hover{color:var(--ink);border-color:var(--ink)}.onb-btn.onb-btn-primary{background:var(--ink);color:var(--ink-inverse);border-color:var(--ink)}.onb-btn.onb-btn-primary:hover{background:#000}.onb-vis-home{display:grid;gap:8px;width:200px}.onb-vis-home-card{display:flex;align-items:center;gap:10px;padding:8px 12px;background:#ffffffd9;border-radius:8px;font-family:var(--mono);font-size:11px;font-weight:700;color:var(--ink2)}.onb-vis-home-card span{min-width:36px}.onb-vis-home-card i{display:block;height:6px;background:#6366f1;border-radius:99px}.onb-vis-roadmap{display:flex;gap:6px}.onb-vis-roadmap-step{width:36px;height:36px;background:#ffffffd9;border-radius:8px;display:grid;place-items:center;font-family:var(--mono);font-size:10px;font-weight:700;color:var(--ink2)}.onb-vis-roadmap-step.is-active{background:#f59e0b;color:#fff;transform:scale(1.15);box-shadow:0 4px 12px #f59e0b73}.onb-vis-lectures{display:flex;flex-direction:column;gap:5px;width:200px}.onb-vis-lectures-row{height:8px;background:#fff6;border-radius:4px;overflow:hidden}.onb-vis-lectures-row span{display:block;height:100%;background:#4f46e5;border-radius:4px}.onb-vis-lectures-row.top span{background:#ec4899}.onb-vis-concepts{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;width:220px}.onb-vis-concepts-tab{padding:6px 10px;background:#fff9;border-radius:6px;text-align:center;font-family:var(--mono);font-size:10px;font-weight:700;color:var(--ink2)}.onb-vis-concepts-tab.is-active{background:#7c3aed;color:#fff}.onb-vis-concepts-body{grid-column:1 / -1;height:60px;background:#ffffff80;border-radius:6px}.onb-vis-questions{display:flex;gap:6px}.onb-vis-questions-col{display:flex;flex-direction:column;gap:4px;align-items:center}.onb-vis-questions-year{font-family:var(--mono);font-size:10px;color:var(--ink3);font-weight:700}.onb-vis-questions-cell{width:28px;height:38px;border-radius:5px}.onb-vis-questions-cell.on{background:#16a34a}.onb-vis-questions-cell.off{background:#ffffff8c;border:1px dashed rgba(0,0,0,.2)}.onb-vis-mastery{position:relative;display:grid;place-items:center;width:100px;height:100px}.onb-vis-mastery-num{position:absolute;font-family:var(--display);font-size:22px;font-weight:700;color:var(--ink)}.onb-vis-account{display:flex;flex-direction:column;gap:6px;width:220px}.onb-vis-account-row{display:flex;align-items:center;gap:10px;padding:8px 12px;background:#ffffffd9;border-radius:8px;font-size:12px;color:var(--ink2)}.onb-dock{position:fixed;bottom:24px;right:24px;z-index:920;width:360px;max-width:calc(100vw - 48px);background:var(--bg-card);border:1px solid var(--border);border-radius:16px;box-shadow:0 22px 50px -16px #00000047;overflow:hidden;display:flex;flex-direction:column;animation:onb-welcome-slide .3s cubic-bezier(.22,1,.36,1)}.onb-dock-visual{height:90px;display:grid;place-items:center;padding:12px}.onb-dock-visual>*{transform:scale(.7);transform-origin:center}.onb-dock-body{padding:12px 16px 14px;display:flex;flex-direction:column;gap:6px}.onb-dock-head{display:flex;align-items:center;gap:8px}.onb-dock-head .onb-step{flex:1 1 auto}.onb-dock-icon{width:26px;height:26px;border:0;border-radius:999px;background:#0000000d;color:var(--ink2);font-size:14px;line-height:1;cursor:pointer;transition:background .15s,color .15s}.onb-dock-icon:hover{background:#0000001a;color:var(--ink)}.onb-dock-title{margin:0;font-family:var(--display);font-size:16px;font-weight:600;color:var(--ink)}.onb-dock-text{margin:0;font-size:12.5px;color:var(--ink2);line-height:1.45}.onb-dock-cta{align-self:flex-start;font:inherit;font-size:12px;font-weight:600;padding:6px 12px;border-radius:999px;border:1px solid var(--ink);background:var(--bg-card);color:var(--ink);cursor:pointer;margin-top:4px;transition:background .15s,color .15s}.onb-dock-cta:hover{background:var(--ink);color:var(--ink-inverse)}.onb-dock-foot{display:flex;align-items:center;justify-content:space-between;margin-top:8px;gap:8px}.onb-dock-actions{display:inline-flex;gap:6px}.onb-dock-actions .onb-btn{padding:5px 10px;font-size:11.5px}@media (max-width: 540px){.onb-dock{right:12px;bottom:12px;left:12px;width:auto}}.onb-welcome{position:fixed;bottom:24px;right:24px;z-index:900;display:flex;align-items:flex-start;gap:12px;background:var(--bg-card);border:1px solid var(--border);border-radius:14px;box-shadow:0 18px 38px -12px #00000038;padding:16px 18px;width:320px;max-width:calc(100vw - 48px);animation:onb-welcome-slide .35s cubic-bezier(.22,1,.36,1)}@keyframes onb-welcome-slide{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.onb-welcome-mark{width:36px;height:36px;border-radius:999px;background:linear-gradient(135deg,#f59e0b,#ec4899);color:#fff;display:grid;place-items:center;font-size:18px;font-weight:700;flex:0 0 auto}.onb-welcome-body{display:flex;flex-direction:column;gap:4px;flex:1 1 auto;min-width:0}.onb-welcome-title{font-family:var(--display);font-size:14px;font-weight:600;color:var(--ink)}.onb-welcome-text{font-size:12.5px;color:var(--ink2);line-height:1.4}.onb-welcome-actions{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap}.onb-welcome-btn{font:inherit;font-size:12px;font-weight:500;padding:5px 10px;border-radius:999px;border:1px solid var(--border);background:var(--bg-card);color:var(--ink2);cursor:pointer;transition:background .15s,color .15s,border-color .15s}.onb-welcome-btn:hover{color:var(--ink);border-color:var(--ink)}.onb-welcome-btn.primary{background:var(--ink);color:var(--ink-inverse);border-color:var(--ink)}.onb-welcome-btn.primary:hover{background:#000}.onb-welcome-close{width:24px;height:24px;border:0;border-radius:999px;background:transparent;color:var(--ink3);font-size:18px;line-height:1;cursor:pointer;flex:0 0 auto;transition:background .15s,color .15s}.onb-welcome-close:hover{background:#0000000f;color:var(--ink)}@media (max-width: 600px){.onb-welcome{right:12px;bottom:12px;left:12px;width:auto}}.slot-blocks{display:flex;flex-direction:column;gap:24px;margin-bottom:24px;align-items:stretch}.slot-col{display:flex;flex-direction:column;gap:16px}.slot-block{background:var(--bg-card);border:1px solid var(--border);border-radius:6px;overflow:hidden;margin-bottom:12px}.slot-block:last-child{margin-bottom:0}.slot-block>summary.slot-block-header{list-style:none;cursor:pointer}.slot-block>summary.slot-block-header::-webkit-details-marker{display:none}.slot-block-header{background:transparent;color:var(--ink);border-bottom:1px solid var(--border);padding:12px 16px;display:flex;align-items:center;gap:10px}.slot-block:not([open])>.slot-block-header{border-bottom:0}.slot-block>.slot-block-header:hover{background:var(--bg2)}.slot-block-header h3{margin:0;font-size:14px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;font-family:var(--mono);color:var(--ink);flex:1 1 auto}.slot-block-toggle{flex:0 0 auto;font-size:12px;color:var(--ink3);transition:transform .18s ease,color .18s ease;margin-left:auto}.slot-block:not([open])>.slot-block-header .slot-block-toggle{transform:rotate(-90deg)}.slot-block>.slot-block-header:hover .slot-block-toggle{color:var(--ink)}.slot-block+.next-step-card,.next-step-card+.slot-block{margin-top:18px}.slot-block-emoji{font-size:16px}.slot-block-mark{width:4px;height:18px;border-radius:2px;background:var(--ink3);flex:0 0 auto}.slot-block-mark-lec{background:var(--blue)}.slot-block-mark-exam{background:var(--amber)}.slot-block-mark-connect{background:var(--purple)}.slot-block-mark-template{background:var(--green)}.slot-block-body{padding:16px 18px;background:var(--bg3)}.legacy-html{font-size:14.5px;line-height:1.55}.legacy-html p{margin:0 0 10px}.legacy-html strong{color:var(--ink)}.legacy-html em{color:var(--ink2)}.legacy-html a{color:var(--blue);text-decoration:none}.legacy-html a:hover{text-decoration:underline}.legacy-html .concept{border-left:3px solid var(--bg2);padding:6px 0 6px 14px;margin-bottom:14px;display:flow-root}.legacy-html .concept-name{font-weight:700;font-size:14.5px;margin-bottom:6px;display:block}.legacy-html .formula-block{display:inline-block;font-family:var(--mono);font-size:15px;line-height:1.6;background:var(--bg3);border:1px solid var(--border);border-radius:6px;padding:8px 16px;margin:8px 0;white-space:pre-wrap;overflow-x:auto;max-width:100%;vertical-align:top}.legacy-html .f{font-family:var(--mono);font-size:.95em;background:var(--bg2);padding:0 4px;border-radius:3px}.legacy-html .defn-table{border-collapse:collapse;margin:10px 0;width:100%}.legacy-html .defn-table td{padding:6px 10px;border-bottom:1px solid var(--border);vertical-align:top;font-size:14px}.legacy-html .defn-table td:first-child{font-family:var(--mono);font-size:13px;white-space:nowrap;background:var(--bg3)}.legacy-html .eq-row{display:flex;align-items:center;gap:10px;padding:8px 10px;margin:0 0 4px;background:var(--bg-card);border:1px solid var(--border);border-radius:8px;transition:border-color .12s,background .12s}.legacy-html .eq-row:hover{border-color:var(--ink)}.legacy-html .eq-row:last-child{margin-bottom:0}.legacy-html .year-pills{flex-shrink:0;display:flex;flex-direction:row;flex-wrap:wrap;gap:3px;max-width:130px}.legacy-html .yp{font-family:var(--mono);font-size:11px;font-weight:600;letter-spacing:.04em;padding:2px 8px;border-radius:3px;background:var(--bg2);color:var(--ink2);text-align:center}.legacy-html .yp.all{background:var(--ink);color:#fff}.legacy-html .yp.y2025{background:#6abf90;color:#fff}.legacy-html .yp.y2024{background:#1a6040;color:#fff}.legacy-html .yp.y2022{background:var(--blue);color:#fff}.legacy-html .yp.y2021{background:#888;color:#fff}.legacy-html .yp.y2019{background:#aaa;color:#fff}.legacy-html .eq-text{flex:1;min-width:0}.connect-fullrow{margin-bottom:24px}.connect-tabs{display:flex;flex-wrap:wrap;gap:4px;padding:10px 16px 0;border-bottom:1px solid var(--border);background:var(--bg3)}.connect-tab{background:transparent;border:1px solid transparent;border-bottom:none;border-radius:4px 4px 0 0;padding:8px 14px;font-family:var(--mono);font-size:12px;font-weight:600;letter-spacing:.04em;color:var(--ink3);cursor:pointer;display:inline-flex;align-items:center;gap:6px;margin-bottom:-1px;transition:color .15s,background .15s,border-color .15s}.connect-tab:hover{color:var(--ink);background:#0000000a}.connect-tab.active{color:var(--ink);background:#fff;border-color:var(--border);border-bottom-color:#fff}.connect-tab-count{font-size:10px;font-weight:700;background:var(--bg2);color:var(--ink2);padding:1px 6px;border-radius:8px;min-width:18px;text-align:center}.connect-tab.active .connect-tab-count{background:var(--ink);color:#fff}.connect-body{padding:20px 22px 26px;display:flex;flex-direction:column;gap:22px}.conn-row-v2{background:var(--bg3, #fafaf8);border:1px solid var(--border);border-radius:8px;padding:16px 18px;display:flex;flex-direction:column;gap:12px}.conn-row-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.conn-row-badge{font-family:var(--mono);font-size:13px;font-weight:700;background:#1a4a8a1f;color:var(--blue);padding:4px 12px;border-radius:4px;letter-spacing:.04em}.conn-row-refs{font-family:var(--mono);font-size:12px;color:var(--ink2);font-weight:600;letter-spacing:.02em}.conn-row-text{font-size:14.5px;line-height:1.55;color:var(--ink)}.conn-row-text p{margin:0 0 8px}.conn-row-text p:last-child{margin-bottom:0}.conn-carousel{position:relative;display:grid;grid-template-columns:36px 1fr 36px;align-items:center;gap:6px}.conn-carousel-strip{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;padding:4px 2px;scrollbar-width:none;-ms-overflow-style:none}.conn-carousel-strip::-webkit-scrollbar{display:none;height:0;width:0}.conn-carousel-nav{width:32px;height:100%;min-height:80px;background:#0000000a;border:1px solid var(--border);border-radius:6px;font-size:22px;color:var(--ink2);cursor:pointer;transition:background .15s,color .15s,opacity .15s,border-color .15s}.conn-carousel-nav:hover:not(:disabled){background:#f59e0b1f;color:var(--accent, #b45309);border-color:#f59e0b59}.conn-carousel-nav:disabled{opacity:.25;cursor:not-allowed}.legacy-html .evidence-thumb.conn-thumb-large,.evidence-thumb.conn-thumb-large{display:inline-flex;flex-direction:column;width:280px;flex-shrink:0;scroll-snap-align:start;margin:0;border:1px solid var(--border);border-radius:6px;background:#fff;text-decoration:none;cursor:zoom-in;overflow:hidden;transition:border-color .15s,transform .12s,box-shadow .15s}.evidence-thumb.conn-thumb-large:hover{border-color:var(--ink);transform:translateY(-1px);box-shadow:0 6px 18px #0000001f}.evidence-thumb.conn-thumb-large img{display:block;width:100%;height:180px;object-fit:cover;object-position:top}.evidence-thumb.conn-thumb-large .evidence-cap{font-family:var(--mono);font-size:11px;color:var(--ink2);padding:6px 10px;border-top:1px solid var(--border);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.legacy-html .conn-row{display:grid;grid-template-columns:auto 1fr;gap:10px 12px;padding:10px 0;border-bottom:1px solid var(--border)}.legacy-html .conn-row:last-child{border-bottom:none}.legacy-html .conn-lec{font-family:var(--mono);font-size:12px;font-weight:600;background:#1a4a8a14;color:var(--blue);padding:3px 10px;border-radius:4px;text-decoration:none;cursor:pointer;grid-column:1 / -1;justify-self:start}a.legacy-html .conn-lec,.legacy-html a.conn-lec{text-decoration:none}.legacy-html a.conn-lec:hover{background:#1a4a8a2e}.legacy-html .conn-arrow{font-family:var(--mono);font-size:18px;color:var(--green);font-weight:700;grid-column:1}.legacy-html .conn-text{grid-column:2;font-size:14px}.legacy-html .lec-ref{font-family:var(--mono);font-size:12px;background:#1a4a8a14;color:var(--blue);padding:2px 8px;border-radius:3px;text-decoration:none;cursor:pointer}.legacy-html .lec-ref:hover{background:#1a4a8a2e}.legacy-html .step{display:flex;gap:10px;padding:8px 0;align-items:flex-start}.legacy-html .step-num{flex-shrink:0;width:24px;height:24px;background:var(--ink);color:#fff;border-radius:50%;display:grid;place-items:center;font-family:var(--mono);font-size:12px;font-weight:700}.legacy-html .step-text{flex:1;min-width:0;font-size:14px}.legacy-html .warn{background:#fff7e0;border-left:3px solid var(--amber);padding:8px 12px;border-radius:0 4px 4px 0;margin:12px 0;font-size:13.5px}.legacy-html .evidence-thumb{display:inline-flex;flex-direction:column;float:right;clear:right;margin:4px 0 8px 12px;width:clamp(120px,38%,200px);border:1px solid var(--border);border-radius:6px;background:#fff;text-decoration:none;vertical-align:top;cursor:zoom-in;overflow:hidden;transition:border-color .15s,transform .12s,box-shadow .15s}.legacy-html .evidence-thumb:hover{border-color:var(--ink);transform:translateY(-1px);box-shadow:0 6px 18px #0000001f}.legacy-html .evidence-thumb img{display:block;width:100%;height:auto;max-height:200px;object-fit:contain;object-position:center top;background:var(--bg3)}.legacy-html .evidence-row .evidence-thumb{float:none;clear:none;margin:0;width:220px}.legacy-html .evidence-cap{font-family:var(--mono);font-size:11px;color:var(--ink2);padding:6px 10px;border-top:1px solid var(--border);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.legacy-html .evidence-row{display:flex;gap:12px;flex-wrap:wrap;margin:10px 0}.app-shell.in-self-test{padding:0;max-width:none}.app-shell.in-self-test .app-main{margin-top:0}.self-test{position:fixed;top:0;right:0;bottom:0;left:0;background:#fafaf8;z-index:100;display:flex;flex-direction:column}.self-test-header{display:flex;align-items:center;gap:18px;padding:14px 32px;background:#fff;border-bottom:1px solid var(--border)}.self-test-close{background:transparent;border:1px solid var(--border);border-radius:4px;padding:5px 12px;font-family:var(--mono);font-size:12px;color:var(--ink3);cursor:pointer}.self-test-close:hover{border-color:var(--ink);color:var(--ink)}.self-test-title{display:flex;align-items:baseline;gap:14px}.self-test-tag{font-family:var(--mono);font-size:13px;font-weight:700;letter-spacing:.08em;background:var(--amber);padding:4px 12px;border-radius:4px}.self-test-sub{color:var(--ink2);font-size:14px}.self-test-progress{margin-left:auto;font-family:var(--mono);font-size:13px;color:var(--ink3)}.self-test-progressbar{height:3px;background:var(--bg2);position:relative;overflow:hidden}.self-test-progressbar-fill{height:100%;background:linear-gradient(90deg,var(--amber),color-mix(in srgb,var(--amber) 75%,var(--green, #1f8b3f)));transition:width .32s cubic-bezier(.34,1.2,.64,1)}.self-test-dots{display:flex;gap:6px;justify-content:center;padding:12px 0 6px;background:#fff;border-bottom:1px solid var(--border-soft)}.self-test-dot{width:10px;height:10px;border-radius:50%;background:var(--bg2);border:1px solid var(--border);transition:transform .18s ease,background .18s ease,border-color .18s ease}.self-test-dot-got{background:var(--green, #1f8b3f);border-color:var(--green, #1f8b3f)}.self-test-dot-nearly{background:var(--amber);border-color:color-mix(in srgb,var(--amber) 80%,#000)}.self-test-dot-missed{background:#c04020;border-color:#c04020}.self-test-dot.is-current{transform:scale(1.45);border-color:var(--ink)}@keyframes self-test-card-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.self-test-card{animation:self-test-card-in .18s ease-out}@media (prefers-reduced-motion: reduce){.self-test-card{animation:none}.self-test-progressbar-fill,.self-test-dot{transition:none}}@keyframes self-test-step-in{0%{opacity:0;transform:translateY(-4px);max-height:0}to{opacity:1;transform:translateY(0);max-height:800px}}.answer-step.revealed{animation:self-test-step-in .22s ease-out}.self-test-flashcard.is-flipped .flashcard-prompt{display:none}.flashcard-context-link{margin-top:18px;background:transparent;border:0;padding:0;font-family:var(--mono);font-size:11.5px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--ink3);cursor:pointer}.flashcard-context-link:hover{color:var(--amber)}.self-test-rate-kbd{display:inline-grid;place-items:center;width:18px;height:18px;padding:0 4px;margin-left:6px;border-radius:4px;background:#0000000f;font-family:var(--mono);font-size:10.5px;font-weight:700;vertical-align:middle}.self-test-card-area{flex:1;display:grid;place-items:center;padding:32px;overflow-y:auto}.self-test-card{background:#fff;border:1px solid var(--border);border-radius:12px;padding:36px 40px;max-width:720px;width:100%;box-shadow:0 4px 24px #0000000d}.self-test-flashcard{cursor:pointer;min-height:240px}.flashcard-title{margin:0 0 14px;font-size:22px;font-weight:700}.flashcard-prompt{font-family:var(--mono);font-size:12px;color:var(--ink3);letter-spacing:.06em;margin:30px 0 0}.flashcard-formal{font-family:var(--mono);font-size:14px;line-height:1.6;background:var(--bg3);border-left:3px solid var(--ink2);padding:12px 16px;border-radius:0 6px 6px 0;margin-bottom:14px;white-space:pre-wrap}.flashcard-plain{background:#e8c8701a;border-left:3px solid var(--amber);padding:12px 16px;border-radius:0 6px 6px 0;font-size:15px;line-height:1.55}.self-test-question .question-prompt strong{font-size:16px;display:block;margin-bottom:8px}.question-prompt-intro{color:var(--ink2);font-size:14px;margin-bottom:14px}.answer-steps{list-style:none;padding:0;margin:16px 0 0}.answer-step{padding:12px 14px;margin-bottom:10px;border:1px solid var(--border);border-radius:6px;background:#fff;display:grid;grid-template-columns:auto 1fr;gap:10px}.answer-step.hidden{background:var(--bg3);border-style:dashed}.answer-step-num{font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.06em;color:var(--ink3);text-transform:uppercase}.answer-step-text{font-size:14.5px;line-height:1.55}.answer-step-blur{font-family:var(--mono);font-size:12px;color:var(--ink3);font-style:italic}.answer-warn{margin-top:14px}.self-test-prompt-finish{margin-top:18px;font-family:var(--mono);font-size:12px;color:var(--green);text-transform:uppercase;letter-spacing:.06em}.self-test-footer{background:#fff;border-top:1px solid var(--border);padding:18px 32px;display:flex;justify-content:center}.self-test-rate{display:flex;align-items:center;gap:12px}.self-test-rate-label{font-family:var(--mono);font-size:12px;color:var(--ink3);letter-spacing:.04em;margin-right:8px}.self-test-rate-btn{border:1px solid var(--border);background:#fff;border-radius:6px;padding:10px 16px;font-family:var(--mono);font-size:12px;font-weight:600;letter-spacing:.04em;cursor:pointer;transition:background .15s,border-color .15s,transform .12s}.self-test-rate-btn:disabled{opacity:.4;cursor:not-allowed}.self-test-rate-btn:not(:disabled):hover{transform:translateY(-1px)}.self-test-rate-btn.missed{border-color:#c04020;color:#c04020}.self-test-rate-btn.missed:not(:disabled):hover{background:#f8e0db}.self-test-rate-btn.nearly{border-color:var(--amber-deep);color:#8a5a00}.self-test-rate-btn.nearly:not(:disabled):hover{background:#e8c8702e}.self-test-rate-btn.got{border-color:var(--green);color:var(--green)}.self-test-rate-btn.got:not(:disabled):hover{background:#ecf6f0}.self-test-summary{max-width:480px;margin:60px auto;padding:36px;background:#fff;border:1px solid var(--border);border-radius:8px;text-align:center}.self-test-summary h2{margin:0 0 6px;font-size:22px}.self-test-summary p{color:var(--ink2);margin:0 0 18px;font-size:14px}.self-test-tally{list-style:none;padding:0;display:flex;flex-direction:column;gap:8px;font-family:var(--mono);font-size:14px;text-align:left;max-width:240px;margin:18px auto}.self-test-tally .dot{display:inline-block;width:12px;height:12px;border-radius:50%;margin-right:10px;vertical-align:middle}.self-test-tally .dot.got{background:var(--green)}.self-test-tally .dot.near{background:var(--amber)}.self-test-tally .dot.miss{background:#c04020}.self-test-summary-actions{display:flex;gap:10px;justify-content:center;margin-top:18px}.concept-mastery-pills{display:flex;gap:4px;margin-top:10px}.concept-entry.concept-confident{background:#6abf9014}.concept-entry.concept-reviewed{background:#e8c87014}.question-view-actions{display:flex;gap:8px}.start-test-btn{background:var(--amber);border:1px solid var(--amber-deep);color:var(--ink);border-radius:6px;padding:8px 14px;font-family:var(--mono);font-size:12px;font-weight:700;letter-spacing:.04em;cursor:pointer;transition:background .15s}.start-test-btn:hover{background:var(--amber-deep);color:#fff}.map-page{padding:8px 0 24px}.map-toggle{display:flex;gap:0}.map-toggle button{background:#fff;border:1px solid var(--border);padding:6px 14px;font-family:var(--mono);font-size:12px;font-weight:600;color:var(--ink2);cursor:pointer}.map-toggle button:first-child{border-radius:4px 0 0 4px}.map-toggle button:last-child{border-radius:0 4px 4px 0}.map-toggle button.active{background:var(--ink);color:#fff;border-color:var(--ink)}.map-svg-wrap{background:var(--bg3);border:1px solid var(--border);border-radius:8px;padding:18px;margin-top:14px}.map-svg-wrap svg{width:100%;height:auto;display:block}.map-node:hover circle{stroke-width:4;filter:drop-shadow(0 2px 6px rgba(0,0,0,.18))}.map-legend{display:flex;gap:18px;margin-top:14px;font-family:var(--mono);font-size:11px;color:var(--ink2)}.legend-dot{display:inline-block;width:12px;height:12px;border-radius:50%;margin-right:6px;vertical-align:-2px}.sim-start{max-width:480px;margin:60px auto;text-align:center;background:#fff;border:1px solid var(--border);border-radius:8px;padding:36px}.sim-start h2{margin:0 0 8px}.sim-year-buttons{display:flex;justify-content:center;gap:8px;margin-top:18px;flex-wrap:wrap}.sim-year{background:var(--ink);color:#fff;border:none;border-radius:6px;padding:12px 18px;font-family:var(--mono);font-size:14px;font-weight:700;cursor:pointer;transition:background .15s}.sim-year:hover{background:var(--blue)}.sim-run{padding:8px 0 36px}.sim-header{display:flex;align-items:center;gap:18px;background:#fff;border:1px solid var(--border);border-radius:6px;padding:14px 18px;margin-bottom:16px}.sim-year-tag{font-family:var(--mono);font-size:12px;font-weight:700;background:var(--bg2);padding:4px 10px;border-radius:4px;margin-right:8px}.sim-slot-tag{font-family:var(--mono);font-size:13px;font-weight:700;background:var(--amber);padding:4px 10px;border-radius:4px}.sim-slot-title{font-weight:600;margin-left:10px}.sim-timer{margin-left:auto;font-family:var(--mono);font-size:22px;font-weight:700;color:var(--green);letter-spacing:.04em}.sim-timer.low{color:var(--amber-deep)}.sim-timer.overtime{color:var(--red)}.sim-progress{font-family:var(--mono);font-size:12px;color:var(--ink3)}.sim-body{display:flex;flex-direction:column;gap:14px}.sim-prompt,.sim-answer,.sim-template{background:#fff;border:1px solid var(--border);border-radius:6px;padding:18px 20px}.sim-prompt h3,.sim-answer h3,.sim-template h3{margin:0 0 8px;font-size:14px;font-weight:700}.sim-prompt-details summary{cursor:pointer;color:var(--blue);font-size:13px;margin:8px 0}.sim-paper-context{margin-top:8px}.sim-textarea{width:100%;min-height:220px;padding:12px;border:1px solid var(--border);border-radius:6px;font-family:var(--sans);font-size:14.5px;line-height:1.55;resize:vertical}.sim-textarea:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 3px #e8c87059}.sim-textarea:disabled{background:var(--bg3)}.sim-summary{max-width:600px;margin:40px auto;background:#fff;border:1px solid var(--border);border-radius:8px;padding:30px 36px;text-align:center}.sim-summary h2{margin:0 0 6px}.sim-outcomes{list-style:none;padding:0;margin:14px auto;max-width:380px;text-align:left;font-family:var(--mono);font-size:13px}.sim-outcomes li{display:flex;justify-content:space-between;padding:6px 0;border-bottom:1px solid var(--border)}.sim-outcomes .tag{font-size:11px;padding:2px 8px;border-radius:3px}.sim-outcomes .tag.confident{background:var(--green);color:#fff}.sim-outcomes .tag.reviewed{background:var(--amber);color:var(--ink)}.sim-outcomes .tag.unseen{background:#f5d8d0;color:var(--red)}
