.content-catalog{min-width:0;padding-bottom:var(--space-7)}.catalog-layout{width:min(calc(100% - 2.5rem), var(--content-max));gap:var(--space-4);margin:var(--space-4) auto 0;grid-template-columns:9rem minmax(0,1fr);display:grid}.catalog-sidebar{min-width:0}.catalog-sidebar nav{gap:var(--space-0);overscroll-behavior:contain;scrollbar-width:thin;flex-direction:column;max-height:calc(100dvh - 6rem);display:flex;position:sticky;top:4.5rem;overflow-y:auto}.catalog-sidebar a{min-height:var(--control-height);border-radius:var(--radius-sm);padding:0 var(--space-2);color:var(--color-muted);font-size:var(--text-sm);align-items:center;text-decoration:none;display:flex}.catalog-sidebar a:hover,.catalog-sidebar a[aria-current=true]{background:var(--color-panel-raised);color:var(--color-ink)}.catalog-main{min-width:0}.catalog-stage-picker{display:none}.catalog-title{margin-bottom:var(--space-3)}.catalog-title h1{font-size:var(--text-xl);font-weight:var(--weight-display);letter-spacing:var(--tracking-display);margin:0;line-height:1.25}.catalog-title p{max-width:48rem;margin:var(--space-1) 0 0;color:var(--color-muted);font-size:var(--text-sm)}.catalog-progress{align-items:center;gap:var(--space-2);margin-top:var(--space-2);border:1px solid var(--color-line);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);background:var(--color-panel-raised);display:flex}.catalog-progress strong{color:var(--color-prerequisite)}.catalog-progress a{color:var(--color-prerequisite);font-size:var(--text-sm);font-weight:var(--weight-display);margin-left:auto;text-decoration:none}.catalog-progress a:hover{text-decoration:underline}.catalog-progress a.catalog-mistakes-link{margin-left:var(--space-3);border:1px solid var(--color-error);border-radius:var(--radius-pill);color:var(--color-error);font-size:var(--text-xs);font-weight:var(--weight-display);white-space:nowrap;padding:.15rem .55rem;text-decoration:none}.catalog-progress a.catalog-mistakes-link:hover{background:color-mix(in oklch, var(--color-error) 10%, transparent);text-decoration:none}.catalog-painpoints{margin:var(--space-4) 0 var(--space-4);border:1px solid var(--color-line);border-radius:var(--radius-lg);background:var(--color-panel);padding:var(--space-3) var(--space-4)}.painpoints-header{align-items:center;gap:var(--space-2);margin-bottom:var(--space-2);flex-wrap:wrap;display:flex}.painpoints-badge{border:1px solid var(--color-accent);border-radius:var(--radius-pill);color:var(--color-accent-strong);font-family:var(--font-mono);font-size:var(--text-xs);font-weight:var(--weight-display);padding:.1rem .5rem}.painpoints-header p{color:var(--color-muted);font-size:var(--text-xs);margin:0}.painpoints-active-label{color:var(--color-ink);font-size:var(--text-xs);margin-left:auto}.painpoints-active-label strong{color:var(--color-accent-strong);font-family:var(--font-mono)}.btn-reset-filter{margin-left:var(--space-2);color:var(--color-quiet);font-size:var(--text-xs);cursor:pointer;text-underline-offset:.2em;background:0 0;border:none;text-decoration:underline}.btn-reset-filter:hover{color:var(--color-accent-strong)}.painpoint-chips{gap:var(--space-2);scrollbar-width:thin;padding-bottom:.25rem;display:flex;overflow-x:auto}.painpoint-chip{border:1px solid var(--color-line);border-radius:var(--radius-pill);background:var(--color-panel-raised);color:var(--color-ink);font-size:var(--text-xs);cursor:pointer;white-space:nowrap;transition:border-color var(--duration-quick), background-color var(--duration-quick);flex-shrink:0;align-items:center;gap:.35rem;padding:.3rem .75rem;display:flex}.painpoint-chip:hover{border-color:var(--color-control-border)}.painpoint-chip.active{border-color:var(--color-accent);background:var(--color-accent-wash);color:var(--color-accent-strong);font-weight:var(--weight-display)}.painpoint-chip small{color:var(--color-quiet);font-family:var(--font-mono)}.painpoint-chip.active small{color:var(--color-accent)}.learning-card[data-painpoint-match=true]{border-color:var(--color-accent);box-shadow:0 0 0 1px var(--color-accent);background:var(--color-panel-raised)}.learning-card[data-painpoint-dim=true]{opacity:.35;filter:grayscale(.6);transition:opacity var(--duration-quick)}.learning-card[data-answered=true]{border-color:color-mix(in oklch, var(--color-prerequisite) 42%, var(--color-line))}.catalog-section{margin-bottom:var(--space-5);scroll-margin-top:5.5rem}.catalog-section>header{gap:var(--space-2);margin-bottom:var(--space-2);align-items:baseline;display:flex}.catalog-section>header h2{font-size:var(--text-md);letter-spacing:var(--tracking-display);margin:0;line-height:1.4}.catalog-section>header span{color:var(--color-quiet);font-size:var(--text-xs)}.learning-card-grid,.case-card-grid{gap:var(--space-3);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.learning-card,.case-catalog-card{border:1px solid var(--color-line);border-radius:var(--radius-lg);background:var(--color-panel);min-width:0;min-height:19rem;box-shadow:var(--shadow-card);transition:border-color var(--transition-fast), box-shadow var(--transition-fast), transform var(--transition-fast);overflow:hidden}.learning-card:hover,.case-catalog-card:hover{border-color:color-mix(in oklch, var(--color-accent) 45%, var(--color-line));box-shadow:var(--shadow-hover);transform:translateY(-3px)}.learning-card:active,.case-catalog-card:active{transform:translateY(-1px)scale(.99)}.learning-card:focus-within,.case-catalog-card:focus-within{border-color:var(--color-focus);box-shadow:0 0 0 2px color-mix(in oklch, var(--color-focus) 24%, transparent)}.learning-card>a{height:100%;padding:var(--space-4);touch-action:manipulation;flex-direction:column;text-decoration:none;display:flex}.learning-card-heading,.case-card-heading{justify-content:space-between;gap:var(--space-2);align-items:baseline;display:flex}.learning-card-heading h4,.case-card-heading h2{color:var(--color-ink);font-size:var(--text-base);font-weight:var(--weight-display);letter-spacing:var(--tracking-display);margin:0;line-height:1.35}.learning-card-heading span,.case-card-heading span{color:var(--color-prerequisite);font-family:var(--font-mono);font-size:var(--text-xs);font-weight:var(--weight-body);flex:none}.learning-card-question,.case-card-objective{min-height:3.5rem;margin:var(--space-1) 0 var(--space-2);color:var(--color-muted);font-size:var(--text-sm);text-wrap:pretty;line-height:1.7}.learning-card-question:first-letter{color:var(--color-prerequisite)}.learning-card-preview,.case-card-preview{border-top:1px solid var(--color-line-soft);min-height:9.5rem;padding:var(--space-2) 0 0;flex-direction:column;flex:1;display:flex}.learning-card-preview p{color:var(--color-muted);font-size:var(--text-xs);-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:0;line-height:1.6;display:-webkit-box;overflow:hidden}.learning-card-preview p span{margin-bottom:var(--space-0);color:var(--color-quiet);font-family:var(--font-mono);font-weight:var(--weight-body);letter-spacing:var(--tracking-label);display:block}.learning-card-preview ul{gap:var(--space-1);margin:var(--space-2) 0;flex-wrap:wrap;padding:0;list-style:none;display:flex}.learning-card-preview li{border:1px solid var(--color-line);border-radius:var(--radius-pill);padding:var(--space-0) var(--space-1);background:var(--color-panel);color:var(--color-muted);font-size:var(--text-xs);line-height:1.45}.learning-card-preview strong{border-top:1px solid var(--color-line);padding-top:var(--space-2);color:var(--color-ink);font-size:var(--text-xs);margin-top:auto;line-height:1.6}@media (width<=1120px){.learning-card-grid,.case-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=760px){.catalog-layout{gap:var(--space-3);width:calc(100% - 2rem);margin-top:var(--space-3);grid-template-columns:1fr}.catalog-sidebar{display:none}.catalog-stage-picker{min-height:var(--control-height-mobile);align-items:center;gap:var(--space-2);margin-bottom:var(--space-3);border:1px solid var(--color-control-border);border-radius:var(--radius-md);padding-inline:var(--space-2);background:var(--color-panel);grid-template-columns:auto minmax(0,1fr);display:grid}.catalog-stage-picker span{color:var(--color-quiet);font-size:var(--text-xs)}.catalog-stage-picker select{min-width:0;min-height:var(--control-height-mobile);background:0 0;border:0}.catalog-title h1{font-size:var(--text-lg)}.catalog-section{scroll-margin-top:var(--space-2);margin-bottom:var(--space-4)}}@media (width<=680px){.learning-card-grid,.case-card-grid{grid-template-columns:minmax(0,1fr)}.learning-card,.case-catalog-card{min-height:0}.learning-card>a{padding:var(--space-3)}.learning-card-question{min-height:0;margin-bottom:0}.learning-card-preview{min-height:0;display:none}}.tier-nav{gap:var(--space-0);margin-bottom:var(--space-2);flex-direction:column;display:flex}.catalog-sidebar .tier-nav-head{color:var(--color-ink);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:var(--tracking-label)}.catalog-sidebar .tier-nav-head span{color:var(--color-accent);margin-right:.4rem}.tier-nav ul{gap:var(--space-0);padding:0 0 0 var(--space-2);border-left:1px solid var(--color-line-soft);flex-direction:column;margin:0;list-style:none;display:none}.tier-nav[data-open=true] ul{display:flex}.tier-nav[data-open=true] .tier-nav-head{color:var(--color-ink)}.tier-nav[data-open=true] .tier-nav-head span{color:var(--color-accent)}.tier-nav ul a{min-height:1.75rem;color:var(--color-quiet);font-size:var(--text-xs)}.tier-block{margin-bottom:var(--space-5);border-top:1px solid var(--color-line);scroll-margin-top:5.5rem}.tier-head{gap:var(--space-3);padding:var(--space-3) 0;cursor:pointer;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;list-style:none;display:grid}.tier-head::-webkit-details-marker{display:none}.tier-head:hover h2{color:var(--color-accent)}.tier-code{color:var(--color-accent);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:var(--tracking-label)}.tier-head h2{font-family:var(--font-display);font-size:var(--text-lg);font-weight:var(--weight-display);letter-spacing:var(--tracking-display);transition:color var(--transition-fast);margin:0;line-height:1.2}.tier-meta{gap:var(--space-3);white-space:nowrap;align-items:baseline;display:flex}.tier-count{color:var(--color-quiet);font-size:var(--text-xs)}.tier-count strong{color:var(--color-accent);font-family:var(--font-mono);font-size:var(--text-base);font-weight:var(--weight-body)}.tier-state{color:var(--color-quiet);font-family:var(--font-mono);font-size:var(--text-xs)}.tier-block[data-tier-state=complete] .tier-state{color:var(--color-accent-strong)}.tier-block[data-tier-state=active] .tier-state{color:var(--color-ink)}.tier-chevron{border-right:1px solid var(--color-quiet);border-bottom:1px solid var(--color-quiet);width:.5rem;height:.5rem;transition:transform var(--transition-fast);transform:rotate(45deg)translate(-1px,-1px)}.tier-block[open] .tier-chevron{transform:rotate(-135deg)translate(-1px,-1px)}.tier-body{padding-bottom:var(--space-4)}.tier-summary{max-width:var(--reading-max);color:var(--color-muted);font-size:var(--text-base);text-wrap:pretty;margin:0;line-height:1.75}.tier-goal{max-width:var(--reading-max);margin:var(--space-1) 0 var(--space-5);color:var(--color-quiet);font-size:var(--text-sm)}.module-block{margin-bottom:var(--space-4);scroll-margin-top:5.5rem}.module-block>header{gap:var(--space-2);margin-bottom:var(--space-2);align-items:baseline;display:flex}.module-block>header h3{color:var(--color-ink);font-size:var(--text-md);font-weight:var(--weight-display);letter-spacing:var(--tracking-display);margin:0;line-height:1.4}.module-block>header span{color:var(--color-quiet);font-size:var(--text-xs)}@media (width<=900px){.tier-head{row-gap:var(--space-1);grid-template-columns:auto minmax(0,1fr) auto}.tier-meta{grid-column:2/-1}}.competency-dashboard[data-astro-cid-4t7wby2k]{margin-bottom:var(--space-6);border:1px solid var(--color-line);border-radius:var(--radius-lg);background:var(--color-panel);padding:var(--space-5)}.dashboard-header[data-astro-cid-4t7wby2k]{gap:var(--space-5);border-bottom:1px solid var(--color-line-soft);padding-bottom:var(--space-4);grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);align-items:start;display:grid}.header-eyebrow[data-astro-cid-4t7wby2k]{align-items:center;gap:var(--space-2);margin-bottom:var(--space-1);display:flex}.eyebrow-tag[data-astro-cid-4t7wby2k]{color:var(--color-accent);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase}.rank-badge[data-astro-cid-4t7wby2k]{border:1px solid var(--color-accent);border-radius:var(--radius-pill);background:var(--color-accent-wash);color:var(--color-accent-strong);font-family:var(--font-mono);font-size:var(--text-xs);font-weight:var(--weight-display);letter-spacing:.05em;padding:.15rem .6rem}.dashboard-header[data-astro-cid-4t7wby2k] h2[data-astro-cid-4t7wby2k]{font-family:var(--font-display);font-size:clamp(1.4rem,2.5vw,1.85rem);font-weight:var(--weight-display);letter-spacing:var(--tracking-display);color:var(--color-ink);margin:0}.dashboard-desc[data-astro-cid-4t7wby2k]{margin:var(--space-2) 0 0;color:var(--color-muted);font-size:var(--text-sm);max-width:var(--reading-max);line-height:1.6}.header-score-card[data-astro-cid-4t7wby2k]{border:1px solid var(--color-line);border-radius:var(--radius-md);background:var(--color-panel-raised);padding:var(--space-3) var(--space-4)}.score-meta[data-astro-cid-4t7wby2k]{margin-bottom:var(--space-1);justify-content:space-between;align-items:center;display:flex}.score-label[data-astro-cid-4t7wby2k]{color:var(--color-quiet);font-size:var(--text-xs);font-family:var(--font-mono)}.score-rank-title[data-astro-cid-4t7wby2k]{color:var(--color-accent-strong);font-size:var(--text-sm);font-weight:var(--weight-display)}.score-number-wrap[data-astro-cid-4t7wby2k]{align-items:baseline;gap:var(--space-2);display:flex}.score-value[data-astro-cid-4t7wby2k]{color:var(--color-ink);font-family:var(--font-display);font-size:2.2rem;font-weight:var(--weight-display);font-variant-numeric:tabular-nums;line-height:1}.score-unit[data-astro-cid-4t7wby2k]{color:var(--color-quiet);font-size:var(--text-xs);font-family:var(--font-mono)}.score-desc[data-astro-cid-4t7wby2k]{margin:var(--space-2) 0 0;color:var(--color-muted);font-size:var(--text-xs);line-height:1.5}.dashboard-visual-grid[data-astro-cid-4t7wby2k]{gap:var(--space-5);padding-block:var(--space-4);border-bottom:1px solid var(--color-line-soft);grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);align-items:center;display:grid}.radar-stage[data-astro-cid-4t7wby2k]{justify-content:center;align-items:center;display:flex}.radar-wrapper[data-astro-cid-4t7wby2k]{aspect-ratio:1;width:100%;max-width:340px;position:relative}.radar-svg[data-astro-cid-4t7wby2k]{width:100%;height:100%;overflow:visible}.radar-grid-ring[data-astro-cid-4t7wby2k]{fill:none;stroke:var(--color-line);stroke-dasharray:2 2;stroke-width:1px}.radar-axis-line[data-astro-cid-4t7wby2k]{stroke:var(--color-line-soft);stroke-width:1px}.radar-data-polygon[data-astro-cid-4t7wby2k]{fill:color-mix(in oklch, var(--color-accent) 20%, transparent);stroke:var(--color-accent);stroke-width:2px;stroke-linejoin:round;transition:fill var(--duration-slow) var(--ease-smooth-out)}.radar-point-dot[data-astro-cid-4t7wby2k]{fill:var(--color-black);stroke:var(--color-accent-strong);stroke-width:2.5px;transition:stroke var(--duration-slow) var(--ease-smooth-out), fill var(--duration-slow) var(--ease-smooth-out)}.radar-axis-label[data-astro-cid-4t7wby2k]{fill:var(--color-muted);font-family:var(--font-sans);font-size:11px;font-weight:var(--weight-display);cursor:pointer;transition:fill var(--duration-quick) var(--ease-smooth-out)}.radar-axis-label[data-astro-cid-4t7wby2k]:hover{fill:var(--color-accent-strong)}.radar-hint[data-astro-cid-4t7wby2k]{text-align:center;margin-top:var(--space-1);color:var(--color-quiet);font-size:var(--text-xs)}.attack-vector-card[data-astro-cid-4t7wby2k]{border:1px solid var(--color-line);border-radius:var(--radius-md);background:var(--color-panel-raised);padding:var(--space-4);flex-direction:column;justify-content:center;display:flex}.vector-badge[data-astro-cid-4t7wby2k]{align-items:center;gap:var(--space-2);color:var(--color-accent-strong);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.06em;display:flex}.pulse-dot[data-astro-cid-4t7wby2k]{border-radius:var(--radius-pill);background:var(--color-accent);width:8px;height:8px;box-shadow:0 0 8px var(--color-accent)}.vector-title[data-astro-cid-4t7wby2k]{margin:var(--space-2) 0 var(--space-1);font-family:var(--font-display);font-size:var(--text-lg);font-weight:var(--weight-display);color:var(--color-ink)}.vector-reason[data-astro-cid-4t7wby2k]{color:var(--color-muted);font-size:var(--text-sm);margin:0;line-height:1.6}.vector-action-row[data-astro-cid-4t7wby2k]{margin-top:var(--space-3)}.vector-primary-btn[data-astro-cid-4t7wby2k]{align-items:center;gap:var(--space-2);border-radius:var(--radius-sm);background:var(--color-accent);color:var(--color-black);font-size:var(--text-sm);font-weight:var(--weight-display);transition:opacity var(--duration-quick) var(--ease-smooth-out);padding:.5rem 1.1rem;text-decoration:none;display:inline-flex}.vector-primary-btn[data-astro-cid-4t7wby2k]:hover{opacity:.92}.practice-stats-grid[data-astro-cid-4t7wby2k]{gap:var(--space-2);margin-top:var(--space-4);padding-top:var(--space-3);border-top:1px solid var(--color-line-soft);grid-template-columns:repeat(3,1fr);display:grid}.stat-cell[data-astro-cid-4t7wby2k]{flex-direction:column;display:flex}.stat-num[data-astro-cid-4t7wby2k]{color:var(--color-ink);font-family:var(--font-mono);font-size:var(--text-base);font-weight:var(--weight-display);font-variant-numeric:tabular-nums}.stat-label[data-astro-cid-4t7wby2k]{color:var(--color-quiet);font-size:var(--text-xs)}.decision-bridge-note[data-astro-cid-4t7wby2k]{margin-top:var(--space-3);background:var(--color-panel);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);border-left:2px solid var(--color-accent)}.decision-bridge-note[data-astro-cid-4t7wby2k] p[data-astro-cid-4t7wby2k]{color:var(--color-muted);font-size:var(--text-xs);margin:0;line-height:1.5}.note-badge[data-astro-cid-4t7wby2k]{border-radius:var(--radius-sm);background:var(--color-accent-wash);color:var(--color-accent-strong);font-size:var(--text-xs);font-weight:var(--weight-display);vertical-align:middle;margin-right:var(--space-1);padding:1px 6px;display:inline-block}.dimension-cards-grid[data-astro-cid-4t7wby2k]{gap:var(--space-3);margin-top:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(240px,1fr));display:grid}.dim-card[data-astro-cid-4t7wby2k]{border:1px solid var(--color-line);border-radius:var(--radius-md);background:var(--color-panel-raised);padding:var(--space-3) var(--space-4);flex-direction:column;justify-content:space-between;display:flex}.dim-card-head[data-astro-cid-4t7wby2k]{margin-bottom:var(--space-1);justify-content:space-between;align-items:center;display:flex}.dim-index[data-astro-cid-4t7wby2k]{color:var(--color-quiet);font-family:var(--font-mono);font-size:var(--text-xs)}.dim-score-badge[data-astro-cid-4t7wby2k]{color:var(--color-accent-strong);font-family:var(--font-mono);font-size:var(--text-xs);font-weight:var(--weight-display);font-variant-numeric:tabular-nums}.dim-title[data-astro-cid-4t7wby2k]{font-size:var(--text-base);font-weight:var(--weight-display);margin:0}.dim-title[data-astro-cid-4t7wby2k] a[data-astro-cid-4t7wby2k]{color:var(--color-ink);text-decoration:none}.dim-title[data-astro-cid-4t7wby2k] a[data-astro-cid-4t7wby2k]:hover{color:var(--color-accent)}.dim-summary[data-astro-cid-4t7wby2k]{margin:var(--space-1) 0 var(--space-3);color:var(--color-muted);font-size:var(--text-xs);line-height:1.5}.dim-progress-track[data-astro-cid-4t7wby2k]{border-radius:var(--radius-pill);background:var(--color-line-soft);width:100%;height:4px;margin-bottom:var(--space-2);overflow:hidden}.dim-progress-fill[data-astro-cid-4t7wby2k]{background:var(--color-accent);border-radius:var(--radius-pill);height:100%;transition:width .4s}.dim-meta-foot[data-astro-cid-4t7wby2k]{font-size:var(--text-xs);color:var(--color-quiet);border-top:1px solid var(--color-line-soft);padding-top:var(--space-2);justify-content:space-between;align-items:center;display:flex}.dim-reading-link[data-astro-cid-4t7wby2k]{color:var(--color-accent);text-decoration:none}.dim-reading-link[data-astro-cid-4t7wby2k]:hover{text-decoration:underline}@media (width<=840px){.dashboard-header[data-astro-cid-4t7wby2k],.dashboard-visual-grid[data-astro-cid-4t7wby2k]{grid-template-columns:1fr}}
