.sfc-page{--purple:var(--accent-primary);--cyan:var(--accent-secondary);--primary-violet:var(--accent-primary);--primary-violet-bright:var(--accent-primary-strong);--primary-violet-dim:var(--accent-primary-soft);--accent-cyan:var(--accent-secondary);--accent-cyan-bright:var(--accent-secondary-strong);--accent-cyan-dim:rgba(69,244,255,0.12);--attack-font-display:var(--font-display);--attack-font-body:var(--font-primary);--attack-font-mono:'IBM Plex Mono',var(--font-mono);--article-bg:var(--sch-base);--article-text:var(--sch-body);--article-text-bright:var(--sch-ink);--article-text-muted:var(--sch-dim);--sfc-radius-sm:10px;color:var(--sch-body)}.sfc-panel,.sfc-raised,.sfc-sunken{border:1px solid var(--sch-line);border-radius:var(--sch-radius-xl);box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}.sfc-panel{background:var(--sch-panel)}.sfc-raised{background:var(--sch-raised)}.sfc-sunken{background:var(--sch-sunken)}.sfc-panel--sm{border-radius:var(--sfc-radius-sm)}.sfc-card{background:var(--sch-panel);border:1px solid var(--sch-line);border-radius:var(--sch-radius-xl);box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;transition:border-color var(--sch-ease),transform var(--sch-ease)}.sfc-card::before,.sfc-card::after{content:none}.sfc-card:hover,.sfc-card:focus-within{border-color:var(--sch-line-strong);box-shadow:none;transform:translateY(-1px)}.sfc-card--current,.sfc-card--current:hover{border-color:var(--accent-primary)}.sfc-label{color:var(--sch-dim);font-family:var(--font-primary);font-size:13px;font-weight:600;letter-spacing:0.08em;line-height:1.4;text-transform:uppercase}.sfc-page h1,.sfc-title{color:var(--sch-ink);font-family:var(--font-display);font-weight:700;letter-spacing:-0.02em}.sfc-stats{display:grid;gap:var(--sch-space-4);grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.sfc-stat-value{color:var(--sch-ink);font-family:var(--font-display);font-size:32px;font-weight:700;letter-spacing:-0.02em;line-height:1.1}.sfc-stat-label{color:var(--sch-dim);font-size:12px;font-weight:500;letter-spacing:0.02em;margin-top:var(--sch-space-1)}.sfc-tabs{background:var(--sch-panel);border:1px solid var(--sch-line);border-radius:var(--sch-radius-pill);display:flex;flex-wrap:nowrap;gap:2px;-ms-overflow-style:none;overflow-x:auto;padding:4px;scrollbar-width:none;width:max-content;max-width:100%}.sfc-tabs::-webkit-scrollbar{display:none}.sfc-tab{background:transparent;border:1px solid transparent;border-radius:var(--sch-radius-pill);color:var(--sch-dim);cursor:pointer;flex:0 0 auto;font-family:var(--font-primary);font-size:14px;font-weight:500;line-height:1.2;padding:9px 18px;text-decoration:none;transition:background-color var(--sch-ease),color var(--sch-ease),border-color var(--sch-ease);white-space:nowrap}.sfc-tab:hover{background:var(--sch-raised);color:var(--sch-ink)}.sfc-tab.is-active,.sfc-tab[aria-selected="true"]{background:var(--sch-raised);border-color:var(--sch-line);color:var(--sch-ink);font-weight:700}.sfc-chip{align-items:center;background:var(--sch-raised);border:1px solid var(--sch-line);border-radius:var(--sch-radius-pill);color:var(--sch-body);display:inline-flex;font-family:var(--font-primary);font-size:12px;font-weight:600;gap:6px;letter-spacing:0.02em;line-height:1;padding:6px 12px;text-transform:none}.sfc-chip-dot{background:var(--sch-dim);border-radius:50%;display:inline-block;flex:0 0 auto;height:6px;width:6px}.sfc-chip--critical .sfc-chip-dot{background:#f87171}.sfc-chip--high .sfc-chip-dot{background:#fb923c}.sfc-chip--medium .sfc-chip-dot{background:var(--sch-gold)}.sfc-chip--low .sfc-chip-dot{background:#94a3b8}.sfc-chip--current .sfc-chip-dot{background:var(--accent-primary)}.sfc-progress{background:var(--sch-sunken);border-radius:var(--sch-radius-pill);height:6px;overflow:hidden;width:100%}.sfc-progress-fill{background:var(--accent-primary);border-radius:var(--sch-radius-pill);display:block;height:100%;min-width:3px;transition:width 400ms var(--sch-out)}.sfc-path{counter-reset:sfc-step;display:grid;gap:var(--sch-space-4);grid-auto-columns:1fr;grid-auto-flow:column;list-style:none;margin:0;padding:0}.sfc-path-step{position:relative}.sfc-path-step::before{background:var(--sch-line-strong);content:"";height:2px;left:20px;position:absolute;right:calc(-1 * var(--sch-space-4));top:9px}.sfc-path-step:last-child::before{content:none}.sfc-path-dot{background:var(--sch-panel);border:2px solid var(--sch-line-strong);border-radius:50%;box-sizing:border-box;display:block;height:20px;margin-bottom:var(--sch-space-3);position:relative;width:20px;z-index:1}.sfc-path-step.is-current .sfc-path-dot{background:var(--accent-primary);border-color:var(--accent-primary);box-shadow:0 0 0 5px var(--accent-primary-soft)}.sfc-path-step.is-done .sfc-path-dot{background:var(--sch-ink);border-color:var(--sch-ink)}.sfc-path-step.is-done::before{background:var(--sch-ink)}.sfc-path-label{color:var(--sch-ink);font-family:var(--font-display);font-size:15px;font-weight:700;letter-spacing:-0.01em}.sfc-path-step.is-locked .sfc-path-label{color:var(--sch-dim)}.sfc-path-note{color:var(--sch-dim);font-size:13px;line-height:1.5;margin-top:var(--sch-space-1)}.sfc-reader{background:var(--sch-panel);border:1px solid var(--sch-line);border-radius:var(--sch-radius-xl);box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;overflow:visible;padding:clamp(20px,4vw,48px)}.sfc-reader::before,.sfc-reader::after{content:none}.sfc-prose{color:var(--sch-body);font-family:var(--font-primary)}.sfc-prose h2,.sfc-prose h3,.sfc-prose h4{background:none;border:0;border-image:none;color:var(--sch-ink);font-family:var(--font-display);font-weight:700;letter-spacing:-0.02em;padding-left:0}.sfc-prose h2::before,.sfc-prose h2::after,.sfc-prose h3::before,.sfc-prose h3::after{content:none}.sfc-prose h2{font-size:1.6rem}.sfc-prose h3{font-size:1.25rem}.sfc-prose h4{font-size:1.05rem}.sfc-prose a:not(.sfc-btn):not(.sfc-btn--ghost):not(.sfc-chip){color:var(--accent-primary-strong);text-decoration:underline;text-decoration-color:var(--accent-primary-soft);text-decoration-thickness:1px;text-underline-offset:3px}.sfc-prose a:not(.sfc-btn):not(.sfc-btn--ghost):not(.sfc-chip):hover{text-decoration-color:var(--accent-primary-strong)}.sfc-prose pre,.sfc-prose pre[class*="language-"]{background:var(--sch-sunken);border:1px solid var(--sch-line);border-radius:var(--sch-radius-lg);box-shadow:none;font-family:var(--attack-font-mono);padding:var(--sch-space-5)}.sfc-prose pre::before,.sfc-prose pre::after,.sfc-prose pre[class*="language-"]::before,.sfc-prose pre[class*="language-"]::after{content:none}.sfc-prose:not(pre)>code{background:var(--sch-raised);border:1px solid var(--sch-line);border-radius:6px;color:var(--sch-ink);font-family:var(--attack-font-mono);padding:1px 6px}.sfc-prose blockquote,.sfc-prose .article-callout,.sfc-prose .ac-callout{background:var(--sch-raised);border:1px solid var(--sch-line);border-radius:var(--sch-radius-lg);box-shadow:none;color:var(--sch-body);margin:var(--sch-space-5) 0;padding:var(--sch-space-4) var(--sch-space-5)}.sfc-prose blockquote::before,.sfc-prose blockquote::after,.sfc-prose .article-callout::before,.sfc-prose .article-callout::after,.sfc-prose .ac-callout::before,.sfc-prose .ac-callout::after{content:none}.sfc-prose .sfc-kicker{color:var(--sch-dim);display:block;font-size:12px;font-weight:700;letter-spacing:0.08em;margin-bottom:var(--sch-space-2);text-transform:uppercase}.sfc-prose blockquote[data-callout-type="exploit"] .sfc-kicker,.sfc-prose .article-callout--danger .sfc-kicker,.sfc-prose .ac-callout--danger .sfc-kicker{color:#f87171}.sfc-prose .article-callout--warning .sfc-kicker,.sfc-prose .ac-callout--warning .sfc-kicker{color:var(--sch-gold)}.sfc-prose blockquote[data-callout-type="defense"] .sfc-kicker,.sfc-prose .article-callout--success .sfc-kicker,.sfc-prose .ac-callout--success .sfc-kicker{color:var(--accent-secondary)}.sfc-art{background:var(--sch-raised);border:1px solid var(--sch-line);border-radius:var(--sch-radius-lg);box-shadow:none;overflow:hidden;padding:var(--sch-space-4)}.sfc-art img{border-radius:var(--sch-radius-md);display:block;height:auto;max-width:100%;object-fit:contain;width:100%}.sfc-btn,.sfc-btn--ghost{align-items:center;border:1px solid var(--sch-ink);border-radius:var(--sch-radius-pill);box-shadow:none;cursor:pointer;display:inline-flex;font-family:var(--font-primary);font-size:15px;font-weight:700;gap:8px;justify-content:center;letter-spacing:-0.01em;line-height:1;min-height:44px;padding:12px 22px;text-decoration:none;transition:opacity var(--sch-ease),transform var(--sch-ease),border-color var(--sch-ease),background-color var(--sch-ease)}.sfc-btn{background:var(--sch-ink);color:var(--sch-base)}.sfc-btn::before,.sfc-btn::after,.sfc-btn--ghost::before,.sfc-btn--ghost::after{content:none}.sfc-btn svg,.sfc-btn--ghost svg{flex:0 0 auto;height:18px;stroke:currentColor;width:18px}.sfc-btn:hover{background:var(--sch-ink);color:var(--sch-base);opacity:0.88;transform:translateY(-1px)}.sfc-btn--ghost{background:transparent;border-color:var(--sch-line-strong);color:var(--sch-ink)}.sfc-btn--ghost:hover{background:var(--sch-raised);border-color:var(--sch-ink);color:var(--sch-ink);transform:translateY(-1px)}.sfc-page a:focus-visible,.sfc-page button:focus-visible,.sfc-page input:focus-visible,.sfc-page select:focus-visible,.sfc-page textarea:focus-visible,.sfc-page summary:focus-visible{border-color:var(--accent-primary);outline:2px solid var(--accent-primary-strong);outline-offset:2px}@keyframes sfc-rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.sfc-rise>*{animation:sfc-rise 520ms var(--sch-out) both}.sfc-rise>:nth-child(2){animation-delay:80ms}.sfc-rise>:nth-child(3){animation-delay:160ms}.sfc-rise>:nth-child(n+4){animation-delay:240ms}@media (max-width:700px){.sfc-path{grid-auto-flow:row}.sfc-path-step{padding-left:32px}.sfc-path-step::before{bottom:calc(-1 * var(--sch-space-4));height:auto;left:9px;right:auto;top:20px;width:2px}.sfc-path-dot{left:0;margin-bottom:0;position:absolute;top:0}.sfc-stat-value{font-size:26px}}@media (prefers-reduced-motion:reduce){.sfc-page *,.sfc-page *::before,.sfc-page *::after{animation:none !important;transition:none !important}.sfc-card:hover,.sfc-btn:hover,.sfc-btn--ghost:hover{transform:none}}
